October 8, 2011

BBC World Have Your Say: The death of Steve Jobs

Filed under: Blog — krkhan @ 2:15 am

I recall three distinct things about my visit to BBC’s Islamabad Studios today. Kamil’s very friendly support (he kept reassuring me that everyone gets nervous for their first live appearance on television), a minor car accident right beneath the balcony I was standing in and prevalent general confusion about what to do with my hands when I’m on air (I wasn’t sure if they were on screen so couldn’t decide whether to stuff them in my pockets or not). In any case, it was ultra fun:

Tags: , , , , , , , ,

June 15, 2011

BBC World Have Your Say: Cyber War

Filed under: Blog — krkhan @ 2:53 am

Xavier graciously invited me to BBC’s Islamabad Studios again today for discussing the recent developments on the cyber crime landscape. You can listen to the podcast directly or use the player below to stream the audio:

[audio:] Tags: , , , , ,

April 28, 2011

BBC World Have Your Say: Sony Playstation Network Hacked

Filed under: Blog — krkhan @ 4:12 am

I was invited to BBC’s Islamabad studios today to participate in their World Have Your Say program regarding Sony’s Playstation Network being hacked. It was really fun, and while I was a little nervous about going on-air live on BBC World Service I tried to explain the difference between PSN and console-homebrew hackers as well as the importance of educating the users about their security. You can listen to the podcast directly or use the player below to stream the audio:

[audio:] Tags: , , , , , , , , ,

February 26, 2010

Facebook Friends Graph v0.2 — Deb and RPM packages for Ubuntu and Fedora

Filed under: Blog — krkhan @ 2:36 am

Thanks to Christoph Korn, Ubuntu users can now install the package with a single click from the GetDeb repository. The Deb file itself is available on the release page here, along with an RPM for Fedora users.

The looks:

Facebook Friends Graph v0.2 Screenshot

And the hooks:


  • Fixed:
    • Bug #522735: Facebook: Application Request Limit Reached
    • Bug #523378: Connection reset by peer
    • Bug #522487: Facebook Friends Graph fails when friends have a dash in their name [patch by Little Jawa]
Tags: , , , , , , , , , , , , , , ,

February 19, 2010

Facebook Friends Graph on Ubuntu

Filed under: Blog — krkhan @ 12:04 am

I never really thought anyone other than me would be interested in seeing gargantuan graphs of their friends’ connections until I found out through this post on the OMG! Ubuntu! blog that my application was included in the GetDeb repository for Ubuntu users. I have not used Ubuntu myself since about never, but apparently you can now install the application on Karmic Koala with just a few clicks.

Edit: I have now tested the installation on Karmic myself and can guarantee that it indeed works without any fuss. Gotta love Launchpad/Ubuntu.

The application itself was in a pretty much skeletal state of being so I was a little taken aback by the exposure. Nevertheless, I was reminded of the famous aphorism apropos of open source development:

“Release early, release often.” — Linus Torvalds

And indeed, the bug reports that came from users were a valuable byproduct of the Ubuntu push as I had stopped development on the script after it started working fine for me.

Tags: , , , , , , , , , , , , , , ,

February 7, 2010

Faking User-Agent with PyS60

Filed under: Blog — krkhan @ 12:00 am

“Anyone who slaps a ‘this page is best viewed with Browser X’ label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.” — Tim Berners-Lee in Technology Review, July 1996

People never learn. Slapping such labels is one thing, they even go as far as adopting brain-dead practices of checking user-agent strings and refusing service to any browser not originating from Redmond. For example, Opera Mobile — the sexiest mobile application on planet — works astonishingly well for Javascript websites. Nevertheless, when trying to browse my university’s academic management portal on it I am presented with a big ugly “We’re dumb, you need to open this page with Internet Explorer 6.0 or later because it uses JAVASCRIPTXX0RZ.” Even though Opera does allow spoofing of user-agent strings, the fake strings still contained “Symbian” as the operating system which still resulted in incompatibility errors.

As ever, Python came to the rescue. Firing up the Twisted framework, I created a simple HTTP proxy which modifies the user-agent string on the fly. Peaches:

Opera Mobile User Agent Spoofed
User-Agent Proxy Screeshot

The script is still very quirky and is the farthest thing from what you’d call a stable solution. You can download the inital release here. The zip file contains the tiny proxy server script as well as Twisted and Zope dependencies. Good luck with trying to counter retards who’re doing everything they can to avoid compatibility. Yes, even 14 years after Sir Tim’s veracious proclamation.

Tags: , , , , , , , , , , ,

November 29, 2009

Webhost migration — Part 3/3: Nexus of resellar webhosting’s evils

Filed under: Blog — krkhan @ 3:09 pm

You decide on buying a web-hosting package for your website, scan various web-hosts for competing features and then decide on one. Never taking into consideration that the particular web-host chosen by you might be based on reseller web-hosting. Why would that matter anyway?

Well, it does matter and after spending 3 years paying for my decision to stick with one such web-host, I can assure you that it matters a lot. Here’s why:

The Problem

First of all, let’s define what reseller web-hosts are (with help from Wikipedia):

Reseller hosting is a form of web hosting wherein the account owner has the ability to use his/her allotted hard drive space and bandwidth to host websites on behalf of third parties.

Simply put: If you’re buying your web-hosting package from a reseller host, they have in turn bought it from a different host. Ultimately, the technology, hardware and the control of your website belongs to a 3rd-party with whom you never have direct contact. Instead, you deal with the “middle” man, the one who sold you the package.

Inherently, that brings an extraneous level of management-oriented redirection in a product that is already a jumbled up mess of technology and business. The result: Whenever you have a technical issue with your website, you’re left hanging in between the “real” troubleshooters and the people who sold you the packages. An example would portray these issues more accurately.

Case Study: Nexus Technologies

Testimonials from John Doe

In November of 2006, I needed a domain name for my blog. In Pakistan, the most prominent web-hosts at the time were Nexus Technologies. While the packages they offered had very little webspace and bandwidth compared to foreign offerings, I decided to stick with them since their office was only a couple of blocks away from my home. I was deluded by the prospect of visiting their office and having my website hitches solved quickly if any occur. Also, I have to admit that the “anonymous” testimonials from their website, such as this one, got to me:

“I wanted to thank you again for helping me with my database problem. I could not ask for better service.” — Shahnawaz

Who the f*** is Shahnawaz? If he is one of their happier customers, why couldn’t they link back to his website? Didn’t occur to me back then, and I took the risk.

The lost backups

I started my blog in January of the next year. And within a couple of months I encountered my first bothersome issue. My website had “rolled back” to a month-old state. That is, in March 2007 I discovered that all the blog posts created in the previous month are lost and the latest post surviving is from early February.

Attempts to contact the “24/7” support didn’t work at all for 2 whole days. Prompting me to proclaim in the ticket:

The 24/7 technical support claim on the home page of Nexus is just another in the series of bogus promotional materials conjured by its marketing department. Most probably, the 24/7 means support for 7 hours per day for 24 days of a month.

And I couldn’t have been more right about the support schedule. Three days after I raised the issue, I was granted a backup from mid-February. The guy on help-line told me that it was the most that they could do since the latest weekly backup “got corrupted”. Classic stuff.

The 2-month long support ticket — setting Guinness records for incompetence

Somehow, through all the regular downtimes and support f***-ups, I renewed my hosting package with Nexus twice since I didn’t want to go through the troubles of migration. Then, on 18th of August this year I noticed that statistics stopped working on my domain. For such a harmless little issue like this one, I created an equally harmless ticket:

Posted On: 18 Aug 2009 10:34 PM by Kamran Riaz Khan
None of the statistics software are working on my domain. All of them show zero-ed stats for everything after 4th August, 2009. If I try to download raw access logs, they contain nothing but thousands of repetitions of “combined”.

Three days of inactivity, and I tried to follow up:

Posted On: 21 Aug 2009 04:31 PM by Kamran Riaz Khan
In the new CPanel log manager, it says that stats programs are locked out by the administrator.

The reply reeking of corporate lingo and technical ineptitude:

Posted On: 21 Aug 2009 06:09 PM by Fawad Alam
Thank you for contacting Nexus.

I have forwarded your request to the concerned department, they’ll reply to this ticket as soon as possible.

Your patience on this issue is appreciated.

The next day:

Posted On: 22 Aug 2009 09:04 AM by Farooq
Thank you for contacting Nexus.

kindly let us know from where you are checking your stats,we have checked your stats and Awstats are working and showing properly,you can check out your stats in control panel in Logs section.

If you have any question, Please don’t hesitate to contact us again.

And my support ticket was closed regardless of the fact that I hadn’t confirmed yet that the issue had been resolved. A little annoyed, I reopened it:

Posted On: 22 Aug 2009 01:06 PM by Kamran Riaz Khan
I have had my share of being handled by poor customer support but this takes the cake.

First of all, attached are the screenshots and the raw access log:

1) cPanel X – Choose Log Programs.png
2) Awstats – Statistics for (2009-08) – main.png
3) Webalizer – Usage Statistics for – August 2009.png
4) accesslog_inspirated.com_8_22_2009

As evident from everything, nothing’s working after 4th August. But, let me go through the support I’ve been given by Nexus:

1) No reply at all for days after opening of ticket.
2) When someone did notice the issue, they couldn’t track it down.
3) Instead of keeping the ticket open until I confirmed the status, they closed the ticket on their own.

I have been a disgruntled customer of Nexus for the past 3 years. So summarizing my experience with your tech support all this time, my next ticket will hopefully be about changing the nameservers on my domain.

And the deja vu response:

Posted On: 22 Aug 2009 01:36 PM by Huma Zafar
Thank you for contacting Nexus.

Please note that we have rectify the problem and forwarded it to the Senior Technical Administrator,you will be updated as soon as he will resolve it.

We are sorry for the inconvenience you faced for this issue.

If you have any question, Please don’t hesitate to contact us again.

Translate it as: “We have absolutely f*** all idea about what we’re doing here, so we have asked the people who sold us reseller hosting to save our unprofessional selves”.

Almost two-weeks later, the “Senior Technical Administrator” jumped in:

Posted On: 08 Sep 2009 08:14 AM by Sam
Thank you for contacting Nexus.

I apologize for the delayed response from our send. This issue was raised with our control panel company, and till date no response has been received from them.

We would like to try and move your account to another server which has working stats which would hopefully resolve whatever issue is causing stats to fail on your current server.

Kindly send us an appropriate time for this to be carried out and I shall ensure this is taken care of on a priority basis.

Regardless of the fact that I found it highly amusing that a “Senior Technical Administrator” is referring to a customer problem as “whatever issue is causing to fail”, I responded politely:

Posted On: 08 Sep 2009 08:41 PM by Kamran Riaz Khan
Thanks for the reply. I have two questions I would like answered before I choose a migration time:

A) Is the issue only on my account or is it being reported by other shared accounts on the Aiur server too?
B) How long will the migration take.

And a decent response than the ones I had before:

Posted On: 09 Sep 2009 04:30 AM by Sam
Thank you for contacting Nexus.

The issue is on a limited number of accounts at this time.

The migration process should take no more then 30 minutes and your site will not be offline during this process. Since there will be a change in IP address of your site, it is recommend that this be carried out in the later half of the day.

Kindly let us know how to proceed.

Fed-up with the non-working stats, I wanted the whole thing to be over as soon as possible:

Posted On: 09 Sep 2009 07:37 PM by Kamran Riaz Khan
Okay, do it at any time you consider to be suitable for such process. Just notify me beforehand so that you don’t end up with another ticket about downtime.

On a “priority basis”, nothing happened for 17 days:

Posted On: 27 Sep 2009 12:00 PM by Kamran Riaz Khan
Awaiting a reply.

Five days later:

Posted On: 02 Oct 2009 10:18 AM by S. Ali
Thank you for contacting Nexus.

You reported an issue with the Statistics for your website, kindly check now the issue has been fixed now.

We are sorry for the inconvenience.

If you have any question, Please don’t hesitate to contact us again.

And the ticket was closed, again. Vexed, I put it simply:

Posted On: 03 Oct 2009 12:19 AM by Kamran Riaz Khan
The issue is present with the exact same behavior.

To which, I was treated with the same old “we’re douchebags without a hint of what’s happening” response:

Posted On: 03 Oct 2009 11:30 AM by S. Ali
Thank you for contacting Nexus.

We are sorry for the inconvenience, as there is still a problem with the stats.

We are in contact with the Cpanel team to look into this issue ans resolve it as soon as possible.

If you have any question, Please don’t hesitate to contact us again.

I really didn’t care about the morons or their support anymore. So, I never replied until two weeks later I got this:

Posted On: 15 Oct 2009 03:56 PM by S. Ali
Thank you for contacting Nexus.

Kindly note that the Web Stats does not get generated as your hosting space is almost full i.e 140.76/150 MB

Once you upgrade your account to next package or delete some of the files from server the issue should get resolved.

If you have any question, Please don’t hesitate to contact us again.

The whole thing had just become unbelievable. Really, really unbelievable. After 2 months of clumsy substandard support, I was being given the upgrade-your-account treatment. A casual customer would probably have been duped by this tactic, I was furious:

Posted On: 15 Oct 2009 10:01 PM by Kamran Riaz Khan
Nice way of marketing your packages.

I delete all the files in /tmp, the account uses 119.96 MBs now and still, no logs.

I don’t know of a logs program which needs more than 30 MBs just to start.

And the attached screenshot clearly shows the “logs locked by admin” message still in the panel.

You people have annoyed me to a point where I’m forced to use an expletive just for the sake of it.

Here it is: F*** your support and its attempts to misguide the customers and save their own asses.

And four days later — on October 18 — the issue was resolved by migrating the server.

“Everything we sell is gold”

Still, when my registration with Nexus was expiring I thought of checking out their newer plans. This time, I found out that there were “Personal” packages which offered tens of times more features and storage space than “Business” packages in the same price-range. Just for fun, I decided to call their help-line and ask for the difference between the two plans. Intriguingly, they could come up with none.

When I asked why Personal packages have crazy amount of features compared to their Business counterparts, the reply I got was: “Business packages are when you need reliability, Personal otherwise”. Logically, this implied that personal packages were not as much reliable as Business ones. When I paraphrased that to the support guy, he replied: “No sir, Personal packages have a 99.99% of uptime”.


Never opt for web-hosts which are dependent on reseller hosting. Go for Dreamhost, Go Daddy, Host Gator or any of the thousand others but be sure that they have the technical expertise and control to cope up with any possible technical issues that you’ll encounter. Also, never trust anonymous testimonials. Ask around other customers of a web-host for a general impression, especially those who have had some technical troubles with their websites.

Also, maintain a distance of at least three-clicks from Nexus Technologies (ignoring the link on this page, of course).

Tags: , , , , ,

November 27, 2009

Webhost migration — Part 2/3: Google Apps

Filed under: Blog — krkhan @ 5:15 pm

After migrating my webhost to Go Daddy a month ago, I found out that their hosting packages offer as much emailing features as insight provided by a third grader’s homework on quantum mechanics. Namely, none. Only a hundred MB of email storage for all email accounts that I would create on my domain. Plus, no IMAP or POP support. When I contacted their support over the issue of IMAP, I got the classic response of you-need-to-upgrade-your-package. What baffled me is that even free web hosts offer much better email, so I had no idea as to what Go Daddy was thinking when it decided on those features. Perhaps those WWE divas from the ads were the ones who came up with the hosting plans, which would explain a lot.

Anyways, my only affordable option was to migrate the emailing infrastructure to Google Apps. Quite surprisingly, the process took only about 10 minutes as I had to change a few CNAME and MX records on my domain. After that, I had a sexy new Gmail login at

Inspirated on Google Apps

7+ GB of email per account and the best spam filter on planet. You can’t ask for more than that. It is also possible to link a Google Apps account with a Google Account, but that messes up the Gmail account associated with your Google Account. Didn’t understand that? Good. The general suggestion is to keep a Google Apps and Google Accounts at a safe distance. Didn’t understand the distinction either? Better. The more general suggestion is to never think about it.

I’ve heard horror stories about Google Apps going horribly wrong when Google decides that something illegal has been done through your accounts but for the time being, I’m happy with the experience. Email just isn’t fun until it hits that G-[spot].

Tags: , , , , ,

November 21, 2009

Facebook Friends Graph v0.1

Filed under: Blog — krkhan @ 12:01 am

The motivation behind obsession with these manically large graphs is explained in this previous post of mine. The current post’s purpose is to instead link to the (finally) working code for generating the graphs. I have created a project page at Launchpad for this little application. The trunk contains the most recent code, which is still in its nascent form but works pretty well given an installation of PyGTK, Python GtkMozembed and pydot. I might port the application to Windoze in future provided I get the time for it.

Starting with the tradition of linking to Inspirated Code subsection, latest updates about the application shall be posted on this page.

And as is the custom, the image itself:

Facebook Friends Graph
(Click on the thumbnail for larger version.)
(Warning: The larger version is a gigantic 32 MB PNG image with a resolution of 16517x13808 (even larger than the last time). If you want to view it, I recommend downloading it to your hard-disk first and then opening it outside your web browser.)

Tags: , , , , , , , , , , , , ,

November 13, 2009

Webhost migration — Part 1/3: Go Daddy

Filed under: Blog — krkhan @ 8:52 pm

As Inspirated’s domain name was about to expire in mid November, I finally did what I had been planning to do for about two years now: migrate my webhost. I will elaborate more on reasons behind this decision in part 3/3 of webhost migration blogposts where I will recount the bellyaches caused by my previous webhost.

The process of migrating the webhost took almost a week. Still, the process is not as intimidating as I initially thought it would be. To summarize, I had to:

  1. Buy a webhosting package on Go Daddy.
  2. Ask the support the nameservers which I need to point my domain to.
  3. Ask my current web hosts to change the nameservers to the new ones.

    At this point, emails for Inspirated stopped working and the website went down.

  4. Setup hosting account through the Go Daddy interface.
  5. Setup email and restore files and databases from previous website.

    From this point onwards, everything worked smoothly as the rest of the migration process took no toll on the site’s uptime itself. In fact, migrating the web host was the technically hard part (e.g., database restoring process got stuck because of a weird, weird Unicode issue). After it was done, migration of domain name was more of a responsibility of the domain registrars than me.

  6. Sign up for a Go Daddy domain transfer.
  7. Ask the losing registrar for domain’s EPP key.
  8. Authorize the transfer on Go Daddy’s website using the EPP key as well as the security code and transaction ID received in the email sent by Go Daddy to the administrative contact of the domain.
  9. Once authorized, wait for the transfer to complete. Since folks at the losing registrar had to be as much of a b**** as they possibly could, they did not approve the transfer. Luckily, according to ICANN rules, the transfer automatically went through after 5-7 days of authorization.

Done and dusted. I actually fell in love with Go Daddy’s Total DNS Control. Which, by the way, was a great shift for me since my previous hosts were bunch of wanna-bes who had f*** all idea about what to do with their reseller hosting accounts. What I genuinely dislike about GD though is its monster of a website. Seriously, it looks like it was specifically designed to eat lesser internet connections and choke processors which do not overclock on at least 8 GHz. Providentially, they do provide SSH access which is a sigh of relief for me since I can use that black and white bloat-less terminal to manage my account.

Part 2/3 will detail my experience with setting up Google Apps on Inspirated. Needless to say, G’s love.

Tags: , , ,
Next Page »