A new experience on my bike. I’ve been to touring-style CAM rides, random commutes, but a timed, marathon-like populaire was a first.
Populaires seem to be a starter course to their longer versions called the brevets — which are timed, marathon-like rides starting at 200km. The time-limit for a brevet is based on a simple formula which assumes the rider to be able to maintain a 15km/h average speed for the entire distance. Populaires organised by the IISc randonneures group are of 55, 100 and 150km.
I woke up at 4AM yesterday and was ready to leave by 0430 to reach the IISc gymkhana gate which is approximately 17km from my home. We were expected to be there by 0530 in order to start off at 0600 for the populaire. The previous day I had commuted to work just to make sure my cycle and I were in a state fit for this populaire. Instead of riding to the start point, I decided to put the bike into my car and drive instead. Wasn’t sure about the route and the time it’d take and not to mention, the dogs. Had I company, I would’ve chosen to ride along as a group.
I was handed a populaire card where the details of the check-points and timings had to be written. A stamp would be pressed and actual arrival times would be written at adjacent boxes when one reaches the checkpoints in the “PLACE” column below.
More details (the route-map, the cue-sheet, etc.) are located here.
I started off on time and tried to keep up the folks in front of me until the first check-point. A few roadies who were ahead of me (and the one that went past me in the initial 5 minutes) were nowhere to be spotted hereafter. I noticed in the checkpoint official’s record sheet that some had reached that place at least half an hour before the three-person group I was closely following as to not loose sight of them.
I didn’t have a printed cue-sheet but I had a copy open in my phone’s browser. The populaire website warned that the route-map is not “official”. And best of all, we weren’t on city roads at all for the bulk of the ride and trying to look for landmarks was pointless.
We went past a lot of government research institutes that researched on poultry of various kind: emus, ostriches; and even frozen semen. There was a research institute for poultry feed too. A younger co-rider who was on a BSA mach flatbar roadie showed me an ostrich in one of these compounds.
The route was very scenic. Flowers on the trees of various colours, grasslands, comfortable weather (I guess this is largely owing to the fact that were riding these stretches between 0600 and 0800 when the sun isn’t fierce.) This wasn’t a tour but a timed-marathon. I saw nobody stop to take a break of more than a few minutes. And breaks weren’t taken in locations that were photogenic. So the best I could capture was when I got a chance to slow down because of the terrain while still trying to keep a group of cyclists in sight in front of me whom I was relying on to know the routes.
I had lost track of the people in front of me after the 40km mark when I entered some controlled farmlands which had fields of various kinds of vegetables growing in them. Luckily, I found the 3rd checkpoint, got the stamp and moved on. But at the fork, I took the wrong turn and lost quite a bit of time before I got on track to head to the end. I think I realise the importance of being fit enough to keep with those who have a clue or be lost with at least a company.
Loaded my bike back into my car and left the gates of IISc gymkhana by 1010. Took me close to an hour and forty-five minutes to reach home cruising through the traffic as if I was carrying a heavy load. My bum was sore and I couldn’t sit still in the car. After I got back home, I took a good shower and headed to the nearby Cafe for a brunch and finished up Edgar Burrough’s “A Princess of Mars”.
I have a feeling that I’m going to be doing more of these. There’s something about this brevet-style of riding when compared to a relaxed trek. There are 100 and 150km populaires in the coming months. If I conquer those, I’ll definitely be eyeing the brevet. Hopefully, I should have a roadie with me by then.
Commuting in Bangalore can be a soul-draining adventure for some of us. After all, it ranks in the top-10 worst cities in the world’s worst cities for commuting. Public transport is sparse, over-provisioned (i.e. runs with more people per bus than it should), terribly slow, and generally lacking in many routes.
Size and numbers
Ten years ago, it was a big two-wheeler scene. One could spot the various Bajaj and Kinetic Honda scooters. And motorbikes like Bajaj Calibre. Nowadays, it’s a huge four-wheeler scene — starting from a humble Tata Nano going all the way up to the Porsches and Audis that cost more than 3 decent residential flats. What hasn’t changed is the road capacity. The number of vehicles has surely increased (hundreds of new vehicles enter the roads each day) and so has the size each occupies in the streets.
This growth has not only affected commute times, but also: pollution levels, anxiety and stress levels.
One of the major failings of the traffic system here is the fact that driving licenses are given out without sufficiently satisfying tests that demonstrate one’s ability to follow traffic rules — which are there for good reasons. Traffic rules provide a protocol of behaviours one is expected to follow on the roads. Without them, it takes time for interacting entities on the road to figure out what to do in a new type of situation they’ve encountered, affecting those around them as a result. This exact behaviour may not even be reproducible were a similar initial condition to arise again. Rules cut down on time and produce standard operating procedures to follow at appropriate initial conditions.
False assumptions and enforced safety
There seems to be a general misunderstanding with how the brakes of a vehicle are to be operated. Many think that applying the front brakes is asking for trouble because it might topple them forward and therefore never apply the front brakes and depend solely on those on the back. This results in skids. Manufacturers that aren’t myopic (i.e., the ones that think “maybe if we build an image of producing safe vehicles, we might get more customers in the long run”) do things like: a. offer full safety features on all of their models and not just the “top-end” ones. (Honda does this, Indian manufacturers such as Tata or Mahindra don’t), b. shunt the front brakes too with the back brake levers so that the back brake levers never operate alone and always applies the front brakes too. (Honda’s two-wheelers do this: see picture)
The players: two wheelers, three wheelers (auto-rickshaws with a handler-bar steering), four wheelers (cars and upto buses), and the traffic police.
Nineteen out of twenty people wouldn’t use the rear-view mirrors when breaking their straight, onward path. Some make attempts to look back before shifting their directions on the road, but why not just use the rear view mirrors and be aware of what’s happening of the front too at the same time? This is a general problem with all of them.
Two wheelers have a tendency to take sudden zig-zag paths on the road with complete disregard to those behind them. Some can be found texting or speaking on their phones in one hand while handling their two wheelers with just the one other hand.
Four wheelers, too, sometimes perform the similar sudden zig-zag movements, but not as much as the two wheelers. Cars are generally okay to bear except the cabs who are similar to the three wheelers. Buses are not the way they once were — gracious.
The three wheelers are probably the most irritating of them all because their primary prerogative on the road is to be on the road and not to reach some destination and get off the wheels and on with their lives. The three wheelers work is to be on the road, for hire. When they’re on hire, exhibit the agile zig-zagging behaviours similar to the two wheelers while also being more dangerous because of the width of space they occupy. When they’re not on hire, they tend to slow down everybody else by sticking to the middle or the right most lanes and not using the left most one instead. They barely use indicators, if ever.
Everybody plays the game of tetris on the road. Many do not use indicators when wanting to take a turn or to stop, let alone using the rear-view mirrors to ascertain whether to do so is safe in the first place. Vehicles are parked just about anywhere with utter disregard to how it might be affecting others.
It’s just downright horrendous. tiring and grossly representative of a mindset that doesn’t respect or value others’ safety, if not their own.
I just wish all driving licenses were invalidated and everyone made to start all over again with stricter tests.
A post to record list of changes that were made to the configuration to get networking to work within the VZ containers on a managed hardware node.
Softlayer provisions CentOS machines with two bonded network interfaces: bond0 connected to their private network and bond1 to the public. We got a “portable” private network subnet and got them converted to “routed to subnet” so that all IPs in that subnet are usable (instead of 3 of them getting reserved into a broadcast IP, gateway IP and broadcast IP).
OpenVZ sends ARP requests when it’s trying to initialise a container and the interface to which the requests are to be sent has to be explicitly specified in this multi-network case. So, fix the
NEIGHBOUR_DEVS variable in
/etc/vz/vz.conf before you pick IPs from your portable subnet pool and start assigning it to your containers.
With that, you should be able to ping these containers from other nodes in your primary private subnet and vice versa. But you won’t be able to ping public IPs from within the containers yet. This doesn’t require you to assign public IPs to the containers too. A NAT rule on the host node should fix this:
iptables -t nat -A POSTROUTING -o bond1 -j MASQUERADE
Took me a while to recall/realise that the lack of ARP requests in SL’s network was necessary. The NAT rule was something I found later on on the internet.
In the past few months, we’ve heard of Zynga acquire DrawSomething, and more recently, Facebook acquiring Instagram for huge sums of money. Both Zynga and Facebook might be doing it for the user base acquisition. Or they might simply be doing it to "nip it in the bud."
What attracts these huge businesses to the userbase? Sales in terms of ads? Probably. It’s still mind-boggling to think that the circle of folks I’ve known over the past 6 years (who have all been using those ad-blocking plugins on browsers and have probably clicked ads only by accident) are the minority. Most people are constantly being lied to (through marketing) over radios, televisions, and billboards (Sao Paulo is an exception) out in the streets while they’re stuck in traffic.
What differentiates these from the internet is that they lack ad-filters. And yet, internet-based businesses that serve ads make it big.
Sidebar: It should be noticeable by now how tech stocks have been underwritten in the past few years (with entities like certain powerful investment banks out there).
So, what we have today is a huge internet userbase made by businesses that offer questionably silly services that are later turned into yet another ad market. Why? Because a lot of people still click ads.
The NYTimes maybe operating for over a 100 years and may be valued well under a billion. Many may not even know what the Tesla corp does. Big dreaming tech companies are getting rarer by the day.
I’ve had the privilege of experiencing customer service first-hand as a customer over the past year with multiple service providers — consumer banking, internet, mobile, and online/offline retail. In this post, I’ll describe my experiences and point some fingers.
Back in early 2011, ICICI’s netbanking barely worked during the day. One had to use it early morning or late at night. It’s come a long way now and the customer service has been quite satisfactory.
Since late 2011, I’ve had to deal with HDFC bank. Enabling a taken-for-granted service such as paying bills through its netbanking portal requires one to submit applications manually. Netbanking (third-party transfer, specifically) didn’t work for me on a couple of occasions and when I vented out on twitter (that’s normal right?) somebody from HDFC spotted that and got in touch from me.
That was a pleasant surprise. It appears there’s a dedicated department that proactively scours the internet and tries to mend the damage caused (if any) called "HDFC-talktous <firstname.lastname@example.org>."
The second point of comparison is the over-the-phone customer service. While ICICI can be annoying with their long-winded IVR process, HDFC bank gets you in touch with a real person quite quickly. But the quality differs (that’s probably a tradeoff: automate and use few good people or don’t automate and use a lot of not-so-good people; perhaps different target audiences too). Couple of the HDFC folks I spoke to over the phone had trouble comprehending and were just too quick to a "I understand, sir." Fortunately, the email@example.com folk are quite open to listening to you.
While on phone with the customer service, it takes a couple of hops with ICICI to reach a person who knows his stuff (example: 4-digit CVV codes of Amex vs. 3-digit Mastercard/VISA) whereas in the case of HDFC, the hop hasn’t happened the first time and always through the talktous@ folks.
I’ve posted about this extensively in the past. To quickly summarise, Airtel has been a disappointment. Reliance has turned out to be quite reliable — in fact, so reliable that I haven’t had to call their customer service up since I got a connection from them back in September.
I’ve been with Vodafone for nearly 8 years now. They’re the ones who used a dog in their TV adverts while every other mobile service provider used some movie actor or a sports champ. Their ads were simple, modest, and most of all, not annoying.
After procuring an iPhone 4S, I had to get a micro-SIM. Walked into a Vodafone outlet at Koramangala on a Saturday evening. Got a queue-token from the token vending machine, gave a 5-second description of what I wanted, got a light-looking, large-fonted form with limited fields to enter details into that I managed to fill in under 20-seconds, went over to the other counter and got a micro-SIM right there (for free), submitted the stamped form back to the person who gave me the form and was told that my number would move onto the new in an hour’s time. And it did.
A friend’s friend had experienced weird issues with the 4S and other service providers’ networks, my experience with Vodafone’s so far has been smooth. (Too bad they tie up with Airtel for 3G in B’lore, but that’s another story.)
My respect for Vodafone has only increased with time.
Flipkart has been a growing name over the past few years and I’ve made several purchases. I’ve had no complains except for one case where the steam iron had a scratch on the ironing surface. Wasn’t so bad that it had to be replaced but I expected at least a QC pass. There are multiple online retailers cropping up now. Naturally, in the sea of mediocrity and poor service, I expect only the best to survive (is that too obvious?)
Some of the household names such a BigBazaar when they first arrived stocked up all sorts of stuff. With time, the range has definitely come down. There are newer brands of supermarkets that crop up here and there, they all face a similar challenge. I don’t have much to say here.
Shoppers’ Stop provides these cards where whatever you shop – regardless of the branch – gets accounted into a central database. To relate an experience, I purchased a trackpant at the Koramangala branch, noticed a stitch-issue couple of days later, took it to the Bannerghatta road branch and produced my card so they could confirm that this was bought by me (I wasn’t carrying the bill with me) and got it mended there for no additional cost. Experiences like these are pleasant (and a new thing) to many in these parts of the world.
Back at college, the prof. who spoke about competition in the organisational psychology class was right about many things. What we have here is a large population where providing good services makes it profitable only when there are multiple competitors. Had there been just One Internet Service Provider or One Big Bazaar this definitely wouldn’t have been the case.
A typical use-case is when we have a couple (or more) web servers independent of each other (say, webmail web servers: webmail.mydomain.com), I’d add multiple A records for the same domain so that DNS resolution happens in a round-robin manner at the client’s end. i.e.,
dig +short webmail.mydomain.com 184.xx.yy.154 184.xx.yy.155
The client uses the first IP it gets during resolution and as the number of clients that are resolving your domain (and making HTTP requests) grow, you’ll start seeing a more or less equitable distribution of HTTP requests hitting each of your hosts.
These IPs are meant to float and be handled by your spread/wackamole tools. (i.e., they’re not hard-configured into network config files like permanent configs: i.e. /etc/sysconfig/networking/ifcfg-*). Say, the .154 IP was on host A and .155 on host B, host B goes down, spread daemon on host A detects that host B isn’t responding to "are you alive?" requests and instructs wackamole daemon on host A to take over the IP that host B had (.155). Sometimes – depending on the router in your environment – one might have to send a gratuitous ARP packet to the router and hook this up with wackamole’s "post-up" action.
This post is about how I couldn’t find usable RPMs for spread/wackamole (and was in a time crunch to shave that yak) and looked for an alternative.
Pacemaker and Keepalived are known entities in the market. So is UCARP (as userland implementation of BSD’s CARP for Linux). Being on a time crunch and noticing how the former options seemed a little complex at first sight, I settled on deploying UCARP.
The configurations on the Internet typically show how one IP is floated around between two hosts. Now this doesn’t let me have DNS-based round-robin’d "load" balanced incoming requests. So here’s how I configured UCARP on host A (assuming you have installed from EPEL repo as `yum install ucarp’):
[root@web02-dal07 nvenkateshappa]# cat /etc/ucarp/vip-001.conf # Virtual IP configuration file for UCARP # The number (from 001 to 255) in the name of the file is the identifier # In the simple scenario, you want a single virtual IP address from the _same_ # network to be taken over by one of the routers. ID="001" VIP_ADDRESS="184.xx.yy.154" PASSWORD="love" BIND_INTERFACE="eth1" SOURCE_ADDRESS="184.xx.yy.179" # In more complex scenarios, check the "vip-common" file for values to override # and how to add options.
And on host B:
[root@web01-dal07 nvenkateshappa]# cat /etc/ucarp/vip-001.conf # Virtual IP configuration file for UCARP # The number (from 001 to 255) in the name of the file is the identifier # In the simple scenario, you want a single virtual IP address from the _same_ # network to be taken over by one of the routers. ID="001" VIP_ADDRESS="184.xx.yy.154" PASSWORD="love" BIND_INTERFACE="eth1" SOURCE_ADDRESS="184.xx.yy.180" OPTIONS="--shutdown --preempt --advskew=10" # In more complex scenarios, check the "vip-common" file for values to override # and how to add options.
The above vip-001.conf on the two hosts is for managing the first floating IP, and the following are for the second: vip-002.conf
Copy over the same configs on each host, change ID to 002, VIP_ADDRESS to 184.xx.yy.155 and swap the OPTIONS line.
The –advskew option (advertisement skew) is what gives a sense of affinity for your virtual IPs.
Let me know in what other interesting use-cases you’ve used UCARP in.
Those of you who’ve tried building RPMs for c5 on a c6 machine might’ve faced the symptoms described in http://samixblog.blogspot.com/2011/11/yum-errno-3-error-performing-checksum.html
The cause seems to involve a couple of things: 1. c6 having adopted a stronger file digest algorithm (sha256 as opposed to md5 in c5) and 2. compressing the payload with xz (as opposed to nothing in c5).
This is easily remedied by passing relevant options to `rpmbuild’ and `createrepo’.
--rpm-rpmbuild-define '_source_filedigest_algorithm md5' \ --rpm-rpmbuild-define '_binary_filedigest_algorithm md5' \ --rpm-rpmbuild-define '_source_payload nil' \ --rpm-rpmbuild-define '_binary_payload nil' \
And invoke createrepo as `createrepo -d -s sha1 –update /path/to/rpms/for/c5′
fpm now supports quick shortcuts to the above:
% fpm --help [...] --rpm-digest sha512|md5|sha384|sha256|sha1 (rpm only) Select a digest algorithm. md5 works on the most platforms. (default: "md5") --rpm-compression xz|gzip|bzip2 (rpm only) Select a compression method. gzip works on the most platforms. (default: "gzip")