Fastly’s CDN accessible once again from Pakistan.

Three days ago I wrote about a particular subnet of Fastly.com’s CDN network becoming null-routed in Pakistan. Since the affected subnet was from which Fastly served content to users from Pakistan, websites, such as GitHub, Foursquare, The Guardian, Apache Maven, The Verge, Gawker, Wikia, even Urban Dictionary and many others, which off-load their content to Fastly’s CDN networks stopped opening for users inside Pakistan.

However, as of today, I can see that the null-route previously in place has been lifted as mysteriously as it was placed. The subnet in question, 185.31.17.0/24, is once again accessible. I have tested from behind both TransWorld and PTCL. While I don’t know why it was blocked in the first place and why it has been made accessible again, whether it was due to an ignorant glitch on someone’s part, or whether it was intentional, I am glad that the CDN is visible again.

If you are observing evidence otherwise, please feel free to let me know.

185.31.17.0/24 subnet of Fastly’s CDN null-routed in Pakistan?

I rely heavily on GitHub and Foursquare every day, the former for work and pleasure, and the latter for keeping a track of where I go through the course of a day. Since yesterday, though, I have been noticing that pages on GitHub have been taking close to an eternity to open, if not completely failing. Even when the page loads, all of the static content is missing, and many other things aren’t working. With FourSquare, I haven’t been able to get a list of places to check in to. Yesterday, I wrote them off as glitches on both Foursquare and GitHub’s network.
 
It was only today that I realized what’s going on. GitHub and Foursquare both rely on Fastly’s CDN services. And, for some reason, Fastly’s CDN services have not been working within Pakistan.
 
The first thing I did was look up Fastly’s website and found that it didn’t open for me. Whoa! GitHub’s not working, Foursquare’s not loading, and now, I can’t get to Fastly.
 
I ran a traceroute to Fastly, and to my utter surprise, the trace ended up with a !X (comms administratively prohibited) response from one of the level3.net routers.
 
$ traceroute fastly.com
traceroute: Warning: fastly.com has multiple addresses; using 216.146.46.10
traceroute to fastly.com (216.146.46.10), 64 hops max, 52 byte packets
[...]
 6 xe-8-1-3.edge4.frankfurt1.level3.net (212.162.25.89) 157.577 ms 158.102 ms 166.088 ms
 7 vlan80.csw3.frankfurt1.level3.net (4.69.154.190) 236.032 ms
 vlan60.csw1.frankfurt1.level3.net (4.69.154.62) 236.247 ms 236.731 ms
 8 ae-72-72.ebr2.frankfurt1.level3.net (4.69.140.21) 236.029 ms 236.606 ms
 ae-62-62.ebr2.frankfurt1.level3.net (4.69.140.17) 236.804 ms
 9 ae-22-22.ebr2.london1.level3.net (4.69.148.189) 236.159 ms
 ae-24-24.ebr2.london1.level3.net (4.69.148.197) 236.017 ms
 ae-23-23.ebr2.london1.level3.net (4.69.148.193) 236.115 ms
10 ae-42-42.ebr1.newyork1.level3.net (4.69.137.70) 235.838 ms
 ae-41-41.ebr1.newyork1.level3.net (4.69.137.66) 236.237 ms
 ae-43-43.ebr1.newyork1.level3.net (4.69.137.74) 235.998 ms
11 ae-91-91.csw4.newyork1.level3.net (4.69.134.78) 235.980 ms
 ae-81-81.csw3.newyork1.level3.net (4.69.134.74) 236.211 ms 235.548 ms
12 ae-23-70.car3.newyork1.level3.net (4.69.155.69) 236.151 ms 235.730 ms
 ae-43-90.car3.newyork1.level3.net (4.69.155.197) 235.768 ms
13 dynamic-net.car3.newyork1.level3.net (4.53.90.150) 236.116 ms 236.453 ms 236.565 ms
14 dynamic-net.car3.newyork1.level3.net (4.53.90.150) 237.399 ms !X 236.225 ms !X 235.870 ms !X

Now, that, I thought, was most odd. Why was level3 prohibiting the trace?

I went looking for a support contact at Fastly to try and get anything that could explain what was going on. I found their IRC chat room on FreeNode (I spend a lot of time on FreeNode), and didn’t waste time dropping into it. The kind folks there told me that they’d had reports of one of their IP ranges being null-blocked in Pakistan. It was the 185.31.17.0/24 range. I did some network prodding about, and confirmed that that indeed was the subnet I couldn’t get to from within Pakistan.

$ ping -c 1 185.31.18.133
PING 185.31.18.133 (185.31.18.133): 56 data bytes
64 bytes from 185.31.18.133: icmp_seq=0 ttl=55 time=145.194 ms
--- 185.31.18.133 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 145.194/145.194/145.194/0.000 ms

$ ping -c 1 185.31.16.133
PING 185.31.16.133 (185.31.16.133): 56 data bytes
64 bytes from 185.31.16.133: icmp_seq=0 ttl=51 time=188.872 ms
--- 185.31.16.133 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 188.872/188.872/188.872/0.000 ms

$ ping -c 1 185.31.17.133
PING 185.31.17.133 (185.31.17.133): 56 data bytes
--- 185.31.17.133 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss

They also told me they’d had reports of both PTCL and TWA where the range in question was null-routed. They said they didn’t know why it had been null-routed but would appreciate any info the locals could provide.

This is ludicrous. After Wi-Tribe filtering UDP DNS packets to Google’s DNS and OpenDNS servers (which they still do), this is the second absolutely preposterous thing that has pissed me off.

iPad mini retina image retention

I first read about image retention on iPad mini retina on Marco Arment’s blog. His iPad mini retina had a slight case of image retention which he discovered by [creating and] running an image retention test on his iPad. I used the word slight to describe Marco’s case because his was a minor problem, something had he not run the test explicitly would not have noticed during normal use. Because it didn’t seem something that would get in the way of enjoying the beautiful screen of the new iPad mini, I didn’t give it much thought.

The very first thing, after hooking it up online, I did on my new iPad mini retina was run Marco’s image retention test. It passed, which elated me and squashed what little fears I had. In hindsight I forgot to run the test for ten minutes, hastily choosing a minute instead. I basked in the magnificence of the retina screen and the weightlessness of the device for two whole weeks. It was the perfect tablet: light-weight, just the right size, with a beautifully sharp and crisp screen, a lot of computing power packed inside a small form factor, and a lovely OS to make it all work seamlessly. Then, one unfortunate night after work when I pulled out the iPad from inside the drawer I keep it in when away, I was dreadfully shocked to look at the mess the screen had become. The image retention clearly visible on the screen was horrible. There were crooked lines everywhere, and swiping on the screen caused them to flicker grotesquely. If Marco saw it, he would jump up his chair.

Home screen on my iPad mini with severe image retention.

Home screen on my iPad mini with severe image retention.

I managed to get the iPad returned to Apple. To my surprise, and a little disappointment, Apple outright refunded me the device.

Macro in his post explained why he thought the issue was there. Apple buys retina panels from a couple of manufacturers. Panels from at least one manufacturer exhibit image retention. I think Apple is fully aware of it, and it’s the reason why iPad mini with retina displays are in short supply.

I loved that thing. I cannot emphasise that enough. I will buy it again, when the next batch from manufacturing hits the market.

→ Don’t ask a non-drinker why they don’t drink

storm_cloaks, commenting on a Reddit thread:

As a non-drinker, answering the “why don’t you drink?” question is always annoying. Generally speaking, I think it’s poor etiquette to ask someone why they don’t drink, and it saddens me that most people don’t feel the same. First, its really none of their business. Second, asking someone to justify a personal choice at a party is a total killjoy, and it clearly creates a separation between the non-drinker and the drinker that’s asking. Going out of your way to point out the fact that someone’s different from you, *especially in a situation that’s supposed to be festive is totally ridiculous, if not offensive. I understand the curiosity, but it would be rude and odd if I asked people at a party “why do you drink?”

I love that explanation. I couldn’t have put it any better myself. On several occasions I have been asked by friends and acquaintances why I don’t drink. 90% of the those times, I have been made fun of and called a pussy for not drinking. I have never understood why people who drink or want to drink feel compelled to ask why the people around them don’t. It’s OK to offer somebody a drink, but not at all OK to ask them why they don’t. It is OK if you are truly curious why somebody doesn’t drink, but I feel that people who drink don’t honestly care about the reason why somebody doesn’t drink. I mean, are they looking for reasons to justify quitting? Or looking for lack of justifiable reasons to justify their drinking?

Change, and adversity, and a goodbye to 2013!

Early morning WordPress sent me that email they send once every year underlining all the special stats about your blog from the year that is about to pass. I didn’t open the email until very late in the day. I was shocked to see that I had written and published only two posts the entire year. I thought that was a rather sad and unfortunate state of affairs. I love writing. I wrote a lot what would be safe to call once upon a time. To think, no, to know for a fact that things had gone this bad, shook me.

That in part explains why I felt compelled at the very last minutes before the year rolled over to write this. I am going to try and see this till the finish.

If I were to describe this year in two words, I would carefully choose those words to be: “change” and “adversity”. I think those two words are not only powerful, but also the kind that exude meaning. They describe the kind of experiences you read about in books or in people’s anecdotes or watch in movies, and feel a special force moving you from within. You feel compelled to take in the moment, and while you are reading or watching those experiences, you play them in your head around you, if only to know how it would feel to live those experiences.

Someone once said I’m risk-averse. It’s economic lingo. But it is also true. I don’t take risks unnecessarily, and I prefer to not take risks at all. It’s nothing wrong. A lot of people are risk-averse. A lot of people detest change. I think it is largely due to our personal inertia that we exert on life as we live through life. It takes a great amount of force to get oneself to embrace change. For most people, it is easier to just resist change.

Uncharacteristically, I embraced several changes this year. Some were huge changes for me. Some, not so. But none were any less meaningful than the rest.

After working four and a half years from home, I decided, I don’t know how, to quit. Quitting from anything is a monstrous challenge for me. It always has been for as long as I have remembered to notice it. Sure, I feel the urge to run away from things from time to time, but quitting comes hard to me.

Not only did I quit, but I also got myself a job at a place where I had to go every day to an office and work from there. I hadn’t worked in an office in under five years. I didn’t know whether I could do it — if I’d be able to do it. I didn’t know whether I could survive it long enough. Unless you have experienced both, you cannot know how entirely different working from home is from working from an office. You have to get up on time in the morning, dress up semi-properly (if you want, you could just as well work in your underpants from home, you know), and commute to work. Oh yes, there’s always the long commute in rush hour to dread every day. You have to spend eight to nine hours straight in the office where you can’t take a nap or watch TV to take a long break away from everything. All in all, you lose a great deal of freedoms that you enjoy working from home. And who wants to give up their freedoms. The majority of people who found out that I worked from home thought it was a luxury I was lucky enough to afford. And I agree. Not everyone can afford to work from home. You are really lucky if you can. Despite all that, I decided to quit. In spite of all that, I quit. I quit because over four years is a long time. I wanted change. I wanted change in my routine, the kind of change I couldn’t bring about by altering anything else in my life without giving up working from home. I felt my life had become stagnant and that I wasn’t moving ahead at all. In fact, to the contrary, I felt I was being sucked into a dark, depressing place, and it frustrated me and caused me uncontrollable anxiety. I had to change things. I had to quit. And so, just like that, I did.

It has been seven months since quitting home job. I’m still working from the same office I get up every morning to drive to.

I changed tennis clubs. If you know me personally or semi-personally, you’ll know that I am crazy about playing tennis. I would go as far as to say that tennis is the love of my life. I started playing tennis four years ago at a country club which housed two shabbily built hard courts in the open. There was a rather dejected and disgruntled squash-cum-tennis coach in the club who helped me get on my feet. As I transitioned past the amateur level, I signed up in the local tennis circuits and started playing tennis tournaments. I earned a worthwhile ranking for a player like myself. However, the only place I could practice was the country club. And that club had major issues that got in the way of my practising and improving my game. I will keep myself from going into those, but I will say that they boiled up to a point where they started to really frustrate me and hamper my ability to excel. On top of that, there were hardly any players to play against at the club, much less good players. You cannot improve until you can hit with a better player.

I had been eyeing a professional tennis club for a while, but several fears that I molded  as convenient excuses kept me from making the jump. That club was far away. I didn’t think I could take a break that long to drive all the way and back. I was afraid of all the new people there. I was afraid whether I’d be able to find anyone to play with. In hindsight, it was mostly only fear of taking on a big change. It would’ve been big for me.

We always need that impetus, that push, to jump off the plank and see what’s out there. My changing jobs was that push. Incidentally, the office I was going to join was closer to that professional tennis club. I quit my previous club the very first day I joined the new office. I am glad I did.

I sold my car and bought a new one. For a lot of people, selling and buying cars is trivial. But normal people buy and sell cars once in a while. After all, my dad still owns and drives his two really old cars. I bought my very own car four years ago, brand new. I loved it. I love and treasure all of my possessions. However, three years later I felt I needed to upgrade it, and get something more comfortable. But selling a car felt so much of a nuisance. There was inertia kicking in all over again. Even if I did sell it, I thought, looking for another car to buy would be another troublesome affair I didn’t want to go through. I needed another push. And it came a year and a half later.

My changing jobs and my changing tennis clubs became that impetus. When I look closely at how things often unfold, it amuses me. I wonder whether there really is a time and place for everything. And for change. But that is a topic for philosophical musings, and I shouldn’t get sucked into that since I’ve promised myself to see this piece through to the end.

Adversity tests you and the people around you in ways you cannot consciously imagine otherwise. It shows you how weak and frail you are, and it shows you how strong and resilient you can be. It shows you who you thought didn’t love you really loves you, and it shows you who you thought didn’t care much about you actually cares for you more than others. Adversity is like that pair of glasses which when you wear them strips everybody including yourself off of their layers and facades, and lays them bare, in their true forms, for you to see.

My father fell acutely ill several times in succession later this year. He’s a diabetic of thirty long years, a heart patient with several allergies and a heart doctor himself. We had to rush him into emergency twice. He had to stay in critical care units for a total of twenty or so days, at the end of which he was diagnosed with two main blocked arteries, with his heart unable to pump blood into half of his body. He nearly kissed death, and survived. It was the toughest time of my life, and the hardest thing I had to deal with. I wrote a painful account of it but only got myself to publish it anonymously. I’m sorry but I couldn’t share it here.

I am thankful deeply to the few people who were around when I needed help and support the most. And I am thankful to God for being able to withstand and overcome adversity. It wasn’t easy.

When the year started, I set myself up for a 2013 reading challenge on Goodreads. I set myself an achievable goal of ten books. To my utter surprise, I crossed that goal in the next three months. I had to re-arrange the goal to 30 books instead. However, as I close off the year, it is only with sadness that I try to reconcile the fact that I only managed to read a total of fifteen books over the year. That is fifty percent of the goal. I finished the fifteenth book a night before new year’s eve. It was Mark Haddon’s incredibly cute and creative “The curious incident of the dog in the night-time.” It of course comes highly recommended. If you’d like to read about the other fourteen books I read, you could look them up here: My Goodreads 2013 Reading Challenge.

One of my gripes with the passing year is that I couldn’t play much tennis, despite switching tennis clubs. I also couldn’t play any tournaments. Owing to the office job, I cannot take out time during the afternoon and day to play tournaments. And because I don’t have so much freedom now as I did when I worked from home, I can’t take a break from work and drive by the courts to play, which is the reason I couldn’t play a lot of tennis this year. It is something I dearly wish to change in the coming year. Because, after all, not being able to play tennis is a cause of much panic and frustration for me.

I have dispensed with the little things while writing this account of the year. I only focused on what I felt were big things for me that shaped my life in 2013. And, also, I had to finish this, and I couldn’t allow it to stretch any longer, because that would risk giving me an excuse to not see it through the end.

My best wishes for 2014!

Django Login Session ID Extractor Script

In the not too distant past, I worked on an interesting web project in which my participation lasted a brief period. I enjoyed the time I spent working on it. It was a project based on Django and Python, two technologies that I simply love working with. The last tasks I worked on had to do with benchmarking the performance of the Django web application, as well as the webserver it was powered on, which was Apache.

I had to use the excellent and extensive Apache Benchmark utility, also commonly known as simply ab. If you’re not familiar with ab, I recommend you check it out. The problem I faced was not being able to benchmark views that required an authenticated web session. Simply put, I wasn’t able to use ab against views that were login protected. In order to solve this limitation and also to automate the process, I threw together a BASH shell script which I called The Django Login Session ID Extractor. It used a combination of Linux tools to log into the Django application via the login view, and extract out the SESSION ID thus created. This SESSION ID, then, could be passed to the ab command in order for it to hit login protected views.

This script proved really useful during testing, and would’ve even more had I continued to work on it. However, I decided to make the script available on GitHub for the world to use. I am hoping someone might make use of it.

Disabling auto-correct on TweetBot for Mac

My favourite Twitter client on iOS is TweetBot. It is there on both my iPhone and my iPad. I simply love it. There can probably be no comparison between the Twitter for iPhone/iPad (or any other third-party Twitter app) and TweetBot. The only little downside is that it is not free. It has to be bought separately on both the iPhone and iPad. But, it is a small price for an awesome piece of app.

Naturally, I wanted something as good as TweetBot on Mac. TweetBot wasn’t for Mac, and Twitter for Mac became a pain to use. I tried TweetDeck but couldn’t stand the sight of it. And then, TweetBot for Mac came along. It came as Alpha first, and remained Alpha for a while and was free to download and use. It then turned to Beta, and finally, it was released. There was a price tag on the final version, and I happily bought it off the Mac App Store. There were bugs here and there, but overall, it worked solidly. It was every bit as good as its iOS counterparts.

iOS has an “Auto Correct” functionality–which can be turned off from the settings, but which you shouldn’t do if you want to be able to type/tap text at ease on your device–which is smart enough to automatically detect what you’re typing that isn’t correct, suggest a correction, and then correct it. It is so unbelievably good that once you get used to, which takes very little time, you cannot simply live without it. At all. The same auto-correct feature is available on the latest OS X versions on the Mac as well. However, unlike the auto-correct on iOS which pops up a visible suggestion giving you an option to select or discard it, the auto-correct on Mac isn’t so effective because when you are typing fast on a keyboard, and as you type away, the auto-correct applies the suggested corrections without your really noticing them. The end result is that you end up with text with certain words that you did not remember typing at all and which, while are correct, don’t really make sense in the context. This becomes really very annoying.

While it is possible to globally disable “auto-correct” on OS X via settings, a lot of the apps unfortunately still override the setting. For those apps, the setting can be manually disabled from the “Edit > Spelling and Grammar” menu.

The same is the case with TweetBot for Mac. With one catch: you can manually disable the auto-correct from the menu bar, but not permamently. Every time you open a new compose tweet window, the setting is overriden once again. That’s annoying as hell.

Not having found any solution, I wrote to Tapbots (the authors of TweetBot) about it. They confirmed that indeed it was a bug in the current version and that it would be fixed in the new release. However, for the meantime, they suggested a temporary fix for the auto-correct that requires running a command on the Terminal. It’s pretty easy. All you have to do is open up Terminal, and run the following command:

defaults write com.tapbots.TweetbotMac TextAutoCorrect -bool NO

That’s it! Auto-correct will be permanently disabled for TweetBot for Mac. Bliss!

I would like to thank the Tapbots guys for kindly providing the fix and acknowledging the problem.

iPad 2 WiFi greyed-out (N/A)

I purchased an Apple iPad 2 over half an year ago. I bought a Rilakkuma smart cover with it. The iPad was tugged inside the cover in the shop, and I never felt the need to take it out since. However yesterday the iPad gave me a scare.

It had been rather hot and humid the past couple of days, more humid than hot. Despite the temperature being around the 35-36C bracket, it felt as though it was actually over 40C. I had been using the iPad as a content consumption device heavily, but of late, I had only been reading books on it, thus keeping the WiFi disabled. Yesterday, however, I had issues with the WiFi scanning for networks. It couldn’t find any. I had given the problem to some rogue setting on the WiFi router (the WiFi, alledgedly, on iPad is sensitive to WiFi routers). But today, to my utter shock, I found the WiFi option under Settings disabled (greyed-out). What shocked me more was finding “N/A” listed next to WiFi under Settings > About, which meant that the OS didn’t find any WiFi chip/interface on the iPad.

That freaked me out. My first assumption was the WiFi chip had died. Reading a couple of posts on forums about the issue (there weren’t many covering the issue) confirmed that. However, someone suggested cooling down the iPad before powering it on again. Since I had already assumed the worst, I thought it wouldn’t hurt if I tried that suggestion.

I took the iPad out of its cover for the first time since purchasing it. I turned on the airco, powered off the iPad, and left it directly under the airco to let it cool off. After around twenty minutes, when the Aluminium backside of the iPad felt chilled to the touch, I crossed my fingers, and powered it on. Voila! The WiFi option was no longer greyed-out, and the Settings > About no longer showed a frightening N/A.

I heaved a deep sigh of relief.

I am lost as to the exact cause of the problem. I do know that high humidity (coupled with heat) plays havoc with electronics. And the iPad had been left around in closed, hot rooms every now and then (with other electronics, I must point out). Nevertheless, I’m glad it is working now.

A look at the year that went by!

There is little at least, if not a lot, to be gained from having an optimistic outlook towards life. I’ll be honest when I say I haven’t ever believed that entirely in my life. But from being pessimistic and negative for the most part, I’ve come to realise painfully the absence of optimism and how much it has the potential to scar you emotionally. It would also be wrong to say that it doesn’t hurt to be optimistic. Disappointment from something you had strong hopes for, can hurt you in a very real way. But, that is a price you can usually afford to pay.

Lying in bed, trying to think of what if anything phenomenal I accomplished throughout the year that is no more I am forced to draw nothing. I can’t remember anything significant I did. That doesn’t mean I didn’t do anything worthwhile or significant to any extent. I just can’t remember. It’s probably due to the cracking headache I’m having. I don’t know.

The year passed by so quick, it’s hard to say where it went. I’m not the kind of person, as much as I try to be otherwise, who makes clear, real goals and lives by them. That doesn’t mean I’ve no goals. I do. I’m just not obsessed with the whole goal-setting thing. Although a lot of times I think that things around me simply unfold themselves, and I naturally flow through them.

Work wise, this was the year where I tackled many different projects, of varying complexities and sizes. I learned a lot of new things. Of import were my exercises in finding ways to deploy both Django and web.py Python frameworks on IIS on Windows. I went on to write a guide to deploying web.py on IIS which got accepted into the official cookbook documentation for the web.py project.

Insofar as tech gadgets are concerned, I was lucky enough to upgrade to the high-end Apple’s MacBook Pros, especially since my previous MacBook had developed several faults. Very late in the year I made what was perhaps the best decision in terms of buying anything when I bought the iPad2. It would be an understatement to say that it has had an impact on my life. The iPad has had a phenomenal impact on my life. If it is any testament to that statement, I’m writing this post on the Elements app on the iPad and will publish it using the WordPress app. I’m so glad I made the decision to buy it after much deliberation.

This year saw a lot by way of reading. I bought more books in paperback and committed myself to reading more. Not only that, I also forced myself to reading, daily, two dozen different interesting feeds. With the coming of the iPad, my reading saw an exponential increase, not only in the form of ebooks but many online feeds and content sources. A man must read, in order to survive. I believe strongly in that.

On the personal side, there were certain events that shook my life. It didn’t affect anyone’s but my own life, but they had a huge impact on me, and not sadly in positive ways. My emotional self took a battering. I also played a small part in helping save a friend’s life from half way across the globe. Thankfully, this year saw family bonds getting a little stronger, which I am very grateful for.

With regards to tennis, this was a great year for me. My game improved by leaps and bounds and I played some of the best tennis of my life. I have been more and more in love with tennis every passing day. Sometimes I think that that is the only true love left in my life.

All in all, I can’t say that the year was bad for me, nor would I want to say it was great. It was a balanced mix of both good and bad. Regardless, I’m thankful for everything and everything. I’ve been blessed beyond what I care to realise. You only need look at someone less fortunate than yourself to realise what you have been given. I do that almost everyday. And I feel bad about those severely less fortunate in particular. Yet I’m also guilty of forcing myself in a bubble at times that hides away the outside from me. I should always realise. I should always be grateful.

My best wishes to each and everyone of you. Please stay safe and be well! A very happy new year to you.

Thank you!

Switching over to Wi-Tribe WiMAX Broadband service

Last week, I hastily switched Internet service provider to Wi-Tribe. They are new in town, and provide Wireless Broadband Internet through the WiMAX technology.

Faithful readers may remember that I had already been using Wireless Broadband Internet services from Wateen Telecom. They also offer a similar, which I had been using, WiMAX service.

I switched because I had been having issues with Wateen’s service. I faced no problems as far signal strength or area coverage is concerned. However, the latency in their network, which is introduced by their outrageously, needlessly complex NAT configuration, directly impacted the overall Internet experience. Also, their occasional, unannounced down-times, though bearable earlier on, started to become an annoyance. Additionally, the requirement of verifying credentials every time the CPE powers up and connects with a nearby base station, in order to be able to use Internet, did not sit well with me (I have heard that for an additional cost, one can apply for a static, public IP address, which gets rids of the fore-mentioned requirement).

With Wi-Tribe, I am currently using a 512-kbps package with an 8-GB modest cap. The tariff prices are almost comparable to those offered by Wateen. The latency is considerably lower. I do not have to verify or log in at all in order to use Internet. The Motorola CPE is slim, and almost completely silent. In contrast, the Motorola CPE I have for Wateen WiMAX groans like a Boeing 747 engine during take-off.

Though secondary, but with my previous provider, I had been having issues with Mail.app and my various IMAP accounts playing well together. Almost all of the day, I would have the email client cry at me about how it couldn’t fetch email, or synchronise the mailbox. It had started to get on my nerves. Thankfully, with Wi-Tribe, I am facing no such annoyances.

Wi-Tribe touts a 67% area coverage in Karachi. Luckily, my area is thoroughly covered. The CPE in one corner of my closed room registers 100% signal with excellent strength. The customer care and sales representation who I had dealt with at the franchise and later met at my home where he had come to install the service, was absolutely benign and fun to chat with. My experiences with Wateen in that respect were utterly unpleasant. The Wi-Tribe outlet, at a walking distance from my home, is nothing short of being haute — it won’t probably do justice to not make a passing mention of the rather hot staff they have there.

It has hardly been over two weeks since I got the service. I am content with it so far. I am keeping my fingers crossed that things only see the prettier side of the coin from here on.

Omelette paratha, and cold coffee

Omelette paratha, and cold coffee.

Not a perfect combination of drink to go with the snack, but nonetheless pleasingly savoury.

I was sitting next to a table occupied by three young guys dressed resplendently in haute kameez and kurta. They were conversing in Sindhi. I thought I had heard them talk more about politics than anything else, but in times such as we live in, anyone can be found talking about politics.

My friend pulled over, wincing that his company has to launch before the elections. I asked, twice, what they want to launch. Before he could answer, the guy nearest to me on the table next to ours was rattled at the word “elections”, and asked “which elections?“. I had not noticed that all of them had taken interest suddenly. When my friend said, “elections in Afghanistan“, they all let out a sigh followed by a good, heavy laugh. The one who had asked the question quipped, when my friend stated that in Afghanistan there are over forty presidential candidates fighting for a single position, about our Great President being practically the only candidate over here and joked about him being an unbearable burden on everyone. They all burst into mirth. I remained quiet, for some reason. My friend felt like carrying on the conversation, something I thought exceedingly needless.

We were the only two customers left in the cafe. It was half past one in the dead of a humid night. As we walked out, we saw a flashy Parado parked outside, with a heavy police escort waiting next to it. There could have been no doubt it was theirs.

They spoke in Sindhi, got nervous at hearing the word elections, and made fun at the expense of the president. The road outside was deserted, and it was late at night. And the men waiting outside glared straight at us as we strapped our seat belts and drove off.

Of digital cameras and photography

In our house, we had two polaroid cameras. Brother and I, being young, were never allowed to touch them, but we saw parents use them often. On every birthday party, every gathering, we’d have a lot of pictures taken and then developed — you know how it used to be and is with polariod cameras.

Then one miserable day when I was still in school, some miscreants broke into our house and stole the cameras. Ever since, we have been deprived of cameras.

We do have digital cameras in our cell phones now. Brother is obsessed with taking pictures of himself with his cell phone all the time, while dad enjoys snapping cats when they aren’t looking. And mine’s just not good enough (at slightly more than 0.3 Mpx (mega pixels), you can hardly dream about becoming a photographer). But, that’s the conundrum: these cameras are just not up to the task. Granted, I could probably invest in a sophisticated cell phone equipped with a better camera that might cost me an arm and a leg, but cell phones don’t appeal to me. Furthermore, if you are from around here, you already know the perils of keeping an expensive cell phone. And, it is not like you can separate out the camera from the cell phone without decapitating it completely.

All these years I have waited for occasions where friends would bring their cameras, to take snaps of myself. That may probably paint me as desperate, come to think of it. I have also been to some exotic places and wished dearly that I had had a cam.

Finally, last week I decided to reach out on a limb and buy a proper, standalone digital camera. A friend from Down Under, Grant, helped narrow down the choices of cameras, constraint by my self-imposed budget, to the Canon PowerShot A580, and the Nikon Coolpix L16. I nearly went for the A580, but on the day I was going to place an order for it, I had a reeking afternoon (which I may if I feel up to it blather about another time), and decided to settle on the Nikon L16, overkill features and therefore price being the reasons for turning down the A580.

I have been playing with the Nikon L16 since the last week. I am no seasoned camera owner or photographer to be able to expertly judge how well the camera fares, but I find it satisfactory. The product page is here, so you can check out the features of the camera without having to rely on my words. I have been playing with different shooting modes, exposure settings, flash settings, and whatnot. These are all novel to me, and I am enthralled by what something so small as this camera is capable of. The fruits of my toying with the camera are on display on my flickr account. The camera works seamlessly with the MacBook. The installation CD that came with the camera has a Nikon Transfer utility and a copy of Panorama Maker 4 for OS X.

As an aside, people who frequent my blog will have have noticed instantly that I have reverted back to the simple, clean theme for the blog. The previous theme was neat, if you can put it that way, and I have tried some other themes too, but I always find myself at home coming back to this theme.

Stay safe, folks!

Internet outage: Undersea cables severed off again

As many as five undersea cables have been damaged AGAIN, affecting Internet and Telecom tubes of over fourteen countries. One has to wonder whether incidents like these are purely accidental in nature, or there is more to them than meets the eye. As Ansar pointed out in our discussion earlier today, of the thousand of kilometers the ocean spans, how is it that a ship manages to drop its anchor at the exact spot.

Whingingly yours

People who have worked with me know that I tend to whine a lot. I bitch about the smallest of things—not having a proper desk to work on, a comfortable chair to sit on, a powerful machine to work with, LCD to look at without straining my eyes, copious space to park my car, a peaceful ride to and from work, or even if ridiculously, continuous supply of power to do anything, etc.

I don’t complain for the heck of it, or because I am a disgruntled individual pissed at almost everything in life all the time. I want to be the best and most effective in what I do. To be that, I must somehow be productive. I can give way to productivity only when I am at peace with myself and everything around me to concentrate on the work at hand. And for that to be, I have to not worry about the desk on which I work being an inconvenience because perhaps it isn’t big enough to have half of what I need on it at any given time or wasn’t designed with ergonomics in mind, the chair on which I sit for the most part of the day to cause backache, the machine on which I work my finger to the bone to be sluggish and agonizing for that alone adds to your frustration more than any other single factor, the monitor to cause repeated headaches and eye-aches, circling the area outside round and round to find some place to park my car and finding subsequently that someone bumped your car at or the traffic police morons towed it away from the seemingly cramped up place you found to park it on because of lack of a proper parking spot, getting stuck in rush hour traffic for hours at ends amidst impatient idiot drivers honking and squeezing their cars where a bike won’t fit only to exacerbate the traffic jam thereby causing you to end up with almost no energy to do any work on top of carrying a frustrated mood, sitting in dark with no power, etc.

Did you lose track of what I started with?

Joel, in his article `The Development Abstraction Layer`, has it down an order of a magnitude more aptly and eloquently than I can ever myself.

MacBook, OS X, some cool softwares, and happy me!

I have always dreamt of having a MacBook one day. Last week was nothing short of a dream coming true (much thanks to you know who you are). I got my first brand-new, shiny spanking white MacBook. It’s got a 2.1-GHz core 2 duo processor. I bumped up the RAM from the standard 1-GB to a whooping 4-GB. The screen is smaller than my Dell, about 13.1 inches. The entire laptop, in fact, is much smaller than the Dell. But doubtless it is nothing short of being a beauty. It is running the latest iteration of Mac OS X, Leopard, 10.5.5.

I wanted to mention some of the softwares I have downloaded and/or installed separately. Some of them are what I believe those that any first-time Mac user would want to have on their Mac. Do note that I’ve never earnestly used a Mac before, which pretty much makes me a first-time user.

IM

  • Adium Adium is a multi-protocol IM software for Mac. Being multi-protocol, it supports a two dozen different protocols. I use it mostly for MSN, Yahoo, and GTalk. The interface resembles very much, if you have used it, Pidgin. It is stable, and works very reliably.
  • Mac Messenger There is also a free port of MSN Messenger available on Mac called the Mac Messenger. It isn’t exactly like the Windows counterpart in terms of UI and features, but for those of you who want a similar experience, it is the best thing that comes the closest.
  • X-Chat Aqua Yes. That is X-Chat on Mac. It is an awesome IRC client for Mac. I have used it on Windows and Linux before.
  • Skype You know what Skype is. Best for voice and video chat on Mac with all your friends who don’t own a Mac–those who do, I would highly recommend the built-in Mac application iChat. Excellent stuff.
  • Colloquy This is an advanced IRC client for Mac that supports both IRC and SILC (if you’ve ever used that before).

Office Productivity

  • OpenOffice.org for Mac I needn’t say anything. It is great.
  • Microsoft Office for Mac There is also the famous Microsoft Office for Mac, but, you guessed it, it isn’t free of cost.
  • FreeMind An excellent Java-based mind mapping tool. Great for brain-storming and generally anything that requires you to create mind maps.

Browser

  • Firefox How can I not mention that? Safari, Apple’s premier browser, is great, but Firefox is greater.

Package Management
If you are migrating from a Linux background, as I am, you will find the following two tools indispensable. They are the equivalents of tools you might be in love with on Linux, such as, ‘apt-get’, ‘yum’, etc.

Development

  • XCode and Mac Dev Tools XCode is Apple’s development environment on Mac. Not merely an IDE, it constitutes the entire development tool chain, including gcc, gdb, make, etc, along with the Cocoa and Carbon frameworks and tools for development in Objective-C. Even if you don’t require the IDE or the frameworks, you may still need the development tool chain, if you ever plan to build software from source (not least your favourite open source softwares).
  • iPython If you hack often on the Python shell, it goes without saying that you MUST get iPython. You will never look back. It is an excellent wrapper over the bare Python shell, providing countless convenience features and lots of colourful eye-candy.
  • pysqlite Mac comes with the SQLite DB and client pre-installed. For the Python SQLite binding, you have to compile and install pysqlite from scratch. There may also be binary packages available.

SCM

  • Git If you want to move onto a feature-rich, robust and reliable distributed source code management system, do give Git a go.
  • Subversion (SVN) SVN comes pre-installed with Mac. For a non-distributed SCM, I’d pick SVN any day.

Right, that’s all for now. I’ll be droning on about everything Mac quite often now.

On someone’s requests, I made a five minutes un-boxing video of my Mac. I have it available in private on youtube. If you’d like to take a peek at it, please email me your YouTube account ID at ayaz -at- ayaz.pk and I’ll send you the link.