Tuesday, December 28, 2010

Another knock against the "Multitasking is good" argument

Doing several things at once is a trick we play on ourselves, thinking we're getting more done. In reality, our productivity goes down by as much as 40%. We don't actually multitask. We switch-task, rapidly shifting from one thing to another, interrupting ourselves unproductively, and losing time in the process.
No one is exempt from this, but some people are better at switch-tasking than others. For my part, I try to put my all into whatever I am doing, ergo I am a big proponent of single-tasking.

Thursday, December 16, 2010

The Chaos Monkey

One of the first systems our engineers built in AWS is called the Chaos Monkey. The Chaos Monkey’s job is to randomly kill instances and services within our architecture. If we aren’t constantly testing our ability to succeed despite failure, then it isn’t likely to work when it matters most – in the event of an unexpected outage.

Wednesday, December 15, 2010

Firefox's new Infallible memory allocators

When working on Windows, we were trained to write and test code under low memory conditions to ensure that code was resilient to allocation failures and the like. The question that always came up was, "What is the apt behavior when an allocation fails?"

Well, the good folks at Mozilla have given us one answer - crash.

How can memory allocation be infallible?

The term "infallible" means that your memory allocation request is guaranteed to succeed: your code can never see a failed request, and so doesn't need to check for failure.

Inside the allocation routine, the situation is different. Under extreme memory conditions, it's possible that the allocation will fail; however, the allocation routine will not, in this scenario, return to your code. Instead, the application will terminate. This should be rare, because the memory management system will do everything it can to find the memory you've asked for.

Choosing a memory allocator

As you write new code that needs to allocate memory, there are some simple rules to follow to help you decide whether to use a fallible or an infallible memory allocator:

If you're allocating what may be a large chunk of memory, you should allocate the memory fallibly (using moz_malloc() for example), and check the result to be sure it's not null. You should do this for large memory allocations because in extremely low memory conditions, as described in How can memory allocation be infallible?, the application may terminate if an infallible allocator can't find the memory you requested.

If you don't know whether or not the memory will be large, use the standard malloc() routine, which is currently fallible but will eventually become infallible. Be sure to check the result for null.

When instantiating objects, the new operator creates them infallibly by default. If you want to allocate them fallibly, use the syntax new (fallible_t()) Foo().
When in doubt, use the infallible allocator and don't null check.
Interesting concept in my opinion, as long as the application has a chance to log its state, failure code, and die "gracefully".

Tuesday, November 16, 2010

File under engineer makes something that no one needs: Facebook messaging

This solution doesn't actually solve any user problem. Humans were successfully texting, IMing, and emailing each other, before SmartEngineer came along & decided to slam them all together into a mixed up mess, in the name of "abstracting away the transport."
Way to have your finger on the pulse of your users.

Thursday, November 11, 2010

Comprehensive Windows Phone 7 review

There’s a lot of complaints in this blog post and that is indicative of this being version one of Windows Phone – I used the word “unfinished” a couple of times and that sums up the whole phone pretty well. Happily the majority of these irksome foibles are not core to the phone and can be easily fixed and I’m sure that will happen in the not too distant future. I don’t want to give the impression that I’m not enjoying the phone –I am, I’m loving it- but be aware of its shortcomings before you decide to jump in!
All of the complaints were issues in the original iPhone as well. We all know how that cookie crumbled, so let's hope that Microsoft is serious about this platform and ready to ride the wave of good press its unique Metro interface is garnering. They need to innovate early, often and if the stars align, they will become not just pioneers but the leaders in this space.

Saturday, November 06, 2010

You like cheese?

Americans now eat an average of 33 pounds of cheese a year, nearly triple the 1970 rate. Cheese has become the largest source of saturated fat; an ounce of many cheeses contains as much saturated fat as a glass of whole milk.


Consider the Taco Bell steak quesadilla, with cheddar, pepper jack, mozzarella and a creamy sauce. “The item used an average of eight times more cheese than other items on their menu,” the Agriculture Department said in a report, extolling Dairy Management’s work — without mentioning that the quesadilla has more than three-quarters of the daily recommended level of saturated fat and sodium.
Still? Time for a rethink... And for people to stop hating so much on Whole Milk!

Cutting taxes for the rich truly boggles my mind

The richest 0.1 percent of taxpayers would get a tax cut of $61,000 from President Obama. They would get $370,000 from Republicans, according to the nonpartisan Tax Policy Center. And that provides only a modest economic stimulus, because the rich are less likely to spend their tax savings.

At a time of 9.6 percent unemployment, wouldn’t it make more sense to finance a jobs program? For example, the money could be used to avoid laying off teachers and undermining American schools.
I think the American people need to understand one simple fact - taxes form the main revenue stream for the government. The government uses part of this money to fund programs all over the country. More importantly, taxes serve to reduce the national budget deficit. I have heard politicians talk about lowering taxes and lowering the budget/trade deficit in the same breath; this is a mathematical impossibility. It is, I repeat, IMPOSSIBLE.

Republicans complain that income redistribution - the act of taxing the rich and distributing the taxes among the poor - isn't in the Constitution. I agree. But, vetoing and blanket dismissing initiatives that increase taxes on the rich using the fear of "Income Redistribution" is specious and misleading. The revenues from such tax increases can be put to other uses.

Update: Gruber has an interesting take on this as well

Tuesday, November 02, 2010

iOS in MacOS

Dave Winer posted about a "eureka" moment he had when using his iPad yesterday: Angry Birds on Macbook Air

Well, I predicted the addition of this feature to MacOS 10.7 maybe a week prior to the OSX Lion announcement :here:.

Just setting the record straight...

Tuesday, October 26, 2010

webOS 2.0 review -- Engadget

"If Palm wants to survive in this game -- let alone truly compete -- it needs to push killer hardware into the marketplace now. The faithful are dwindling, and the smartphone race is getting more crowded every day -- webOS 2.0 is a big improvement, but if this and the Pre 2 are Palm's hail mary, they just lost the game."
What he wanted to say, "Even Windows Phone 7 will overtake Palm in the smartphone biz." :-)

Monday, October 25, 2010

The Windows Phone 7 review - Andy Ihnatko

High praise for the new Windows phone platform.
With Windows Phone 7, Microsoft has created the first really fresh and successful approach to a mobile platform since the iPhone. They’re competing with iOS and Android the same way Apple chose to compete with Blackberry, PalmOS and Windows Mobile in January of 2007: by not competing at all. They didn’t build a knockoff: they built something new.
The next 18 months are going to be some of the most exciting months for all phone owners looking to upgrade. It remains to be seen what Microsoft comes up with for its fledgling platform, but from what I have heard, there is reason to be optimistic. If Microsoft can avoid its tendency to mire its successful products in a quagmire created by egos, politicking and internecine rivalries, I believe this platform is a genuine threat to iOS and Android. Microsoft, I am rooting for you, if only so that MSFT goes past 30 again.

How to avoid becoming a victim of your own success?

Here's one idea - reinvent the space you're working in.

Another? Sell your company before your stock becomes worthless.

A third - I'm outta ideas... The firebug folks might know a thing or two about this. They were pioneers in the field of live web development and debugging. Now, Firebug has been eclipsed by the tools built into Chrome and Safari - read more :here:

The Long Tail Principle and Monopolies

To continue a thought that I conveyed in a previous post - we are slowly arriving at the point, if we aren’t there already, where the iPhone is the de facto mobile development platform, in the same way that Windows is the development platform for desktop apps. In any space, the established leaders maintain their position because of the “Long Tail principle”. The rest of the competition that has been pushed to the fringes, has to pick a particular area and excel at it in order to stay relevant. The conventional wisdom is that it’s better to be everything to someone than something to everyone. This is what Bing needs to do if it is to compete with Google, how Apple has carved a niche for itself and stayed relevant despite the Microsoft juggernaut, how squashgear.com competes with Amazon, etc. Once there is an established leader, only specialty/niche-players can compete because they become everything for a small subset of the population.

Thursday, October 21, 2010

Windows Phone 7 Review: TechCrunch

"Might I recommend buying a Windows Phone 7 handset? Yes — but not right now. Between iOS and the myriad Android phones available, there are simply way too many good options out there that have fewer or none of these shortcomings. If Microsoft can quickly crack away at these gaps whilst managing to not slip behind in other ways, I could quite easily see myself toting a Windows Phone in the future — but for now, at the end of the day, all WP7 really has to offer over the competition is a pretty face."

Tsk. Tsk.

Saturday, October 09, 2010

So what's next for Mac OSX?

I've been using Macs for a long time now; for the last couple years, a Mac has been my primary machine. Let me start with this so you don't think I am either a Mac fanboy or an apologist. I am not under any misconceptions about the Mac platform in the Enterprise - a Mac is as frustrating to use in a corporate environment as Windows is to use at home. The primary driver for the frustration is the lack of tools and services designed to be used with anything other than Windows. That these corporate services are made by Microsoft might have something to do with this, but that's how Microsoft makes money - one division rubs the others' back. Support for other platforms is an after-thought, and rightly so - Windows owns 90% of the enterprise. I forgive Microsoft for this "protectionism"; what baffles me is Open Source applications don't work on Mac as well as they sometimes do on Windows.

Let's take Eclipse for example. Or Firefox. Or, well name an Open Source app that is cross-platform that actually treats the Mac as a first class citizen. New Firefox features are first designed for Windows. Eclipse is a DOG on my Mac (it has 4GB of RAM and a 2.2 GHz processor). NetBeans, Wireshark, etc.; the list is endless. You must wonder why I endure rather than get a PC...

Well, I have started having a crisis of confidence in my choice too. For many people like me that have used Windows 7, the gap between the 2 platforms is fast closing. My Mac is almost 5 years old, which means it will soon be time for me to buy a new laptop. With what I know about Windows, the $500 plus dollars I can save at the checkout register by picking PC (Sony Vaio for instance) is tempting. The buzz around Windows 8 is slowly picking up too, and I don't know much about what's going to be in there, but that team has the wind behind its sails. It's not like Steven Sinofsky to squander the momentum that the Windows team has picked up with the 7 release (he ran Office, and we know that's a slam-dunk). I want Apple to give me a sign, to show me something that keeps me from jumping ship. What does that sign need to be? Glad you asked; here's my categorized wish list for Mac OS 10.7:

I. Platform features
1. Resiliency
A single rogue application shouldn't bring the OS to its knees. Flash in Firefox and Eclipse both have a way of deadlocking my Mac to the point where I have to hard reset my box. If an application does get into an unusable state, there needs to be an always available "Force Quit" menu or a magic key combination like Ctrl+Alt+Del that lets me identify and kill the hung app.

2. Crash Recovery
I made this suggestion to the Windows team a few years ago but they had bigger fish to fry - Application hibernation. The feature has been implemented to some degree in iOS and Android - this is how the state of background applications is saved and how crashed applications are restored. The idea is simple - periodically, the state of all your currently executing applications is saved (usually on your hard drive) so that if they unexpectedly crash or the machine reboots or they need to be forcefully killed, you can recover all the information and resume from where you last left off. How many of you have lost that all important presentation or document or paper due to a reboot. This video might resonate with you:

Ellen Feis is a cult figure for all the wrong reasons, but her point remains. An OS crash shouldn't make me lose all my work.

3. Integration with Cloud services
Either Apple's new cloud services or those of a provider like AWS (Apple is not about to get in bed with Azure). It's about time that I can backup my data via Time-Machine to S3 or equivalent service. I don't want to entrust a 3rd party with this task; I trust Apple more than I trust some Joe-Schmo development house.

4. Reduced boot time < 5sec Load only the absolutely essential services at boot-up. Opportunistically load the other services based on the user's usage. By streamlining boot-up, fewer people will feel the need to leave their Macs running (even in Sleep mode, the Mac consumes power). If boot-up was almost instantaneous, and the state of all my apps was saved so that I could resume from where I left off, I would never leave my Mac on.

5. Better Java support
Apple, in its infinite wisdom, has decided to vet all Java releases rather than let Sun release the Java Virtual Machine for Mac along with its releases for Windows and Linux. What this means is that the Mac platform usually lags behind its counterparts when it comes to Java support. Apple, stop trying to do too much; let Sun/Oracle release Virtual Machines for Mac. With HotSpot, they definitely know what they are doing. Focus on your core competency - building great UI for the classes.

II. iOS, Mac OS. How does it matter?
Bring a few cool features of the iOS platform to Mac OS. Enable a few features that allow the 2 operating systems to talk to one another seamlessly. Blur the lines so that customers of either can barely tell them apart.

1. Wifi Sync - I should be able to sync my content over Wifi between my laptop and iOS devices and vice-versa. Even I have the Internet now, and even when I didn't, I had not one but two wireless routers in my house. The Zune had Wifi Sync Circa 2008!

2. Native iOS Emulation/iOS Virtual Machine
Like Classic Mode and Rosetta, OS X.7 should have an iOS mode that can run iOS applications. This would enable the native execution of all my iOS applications in a specialized virtual machine. Apple could engineer this Virtual Machine to be aware of its host operating system and apply a slew of optimizations that make the iOS mode run at > 90% efficiency. Can you imagine playing Angry Birds or some of the EA games you downloaded for your iPad with enhanced graphics? I have numerous friends who swear by their iPad applications, RSS readers and the like. With iOS applications costing a fraction of their Mac OS counterparts, people will buy apps rather than pirating them, enabling more sales from the App Store. And Profit.

3. Facetime for Mac OS
'Nuff said.

4. Backup and Restore from an older version a la iPhone backup
Tied to the Cloud Sync services, I should be able to save an image of my operating system to either the cloud or to a backup drive. In the event that I get hit by a virus or I get a new hard-drive, I should be able to restore my entire computer to an older, known good state. It's unclear whether this option exists in Time Machine today, but it isn't surfaced enough for a computer nerd like me to know of it.

I almost made it to 10. What features would you like to see in the next Mac OS?

Friday, September 24, 2010

Great early morning reading

Sontag believed that it was up to novelists to create “a stipulated shrinking of the world as it really is — both in space and in time.” I think it’s journalists who need to take up that challenge — to learn how to spin something coherent and absorbing and contained and in-the-moment and satisfying from the chaos of the world around us. Think of it as a New Urbanism for news: a retrenchment from endless sprawl, the construction of concentrated experiences, a new consciousness of how we obtain and consume. A new shrinking of the world.
I used to suffer from content overload until I stopped logging in to my rss reader. All I read these days is news from the bbc and the nytimes, and I listen to the radio every night before passing into the nether world. And yes, the economist. How many news sources do you consume daily?

Thursday, September 23, 2010

Nifty extension for Firefox: Link Target Display

I hate every browser's Status Bar. That's right, I said it. Give me back my screen real estate. Why show the status of things like, "Hey dude, the page you wanted to see is done loading", in the status bar when I am smart enough to see that the "Reload" button is now visible? Well, I'll give you at least one reason why we still need the status bar: to get a quick look at the URL that you're about to visit when clicking on a link.

I scratched my head for a long time (and no, that's not why I am bald) to find another reason for the Status Bar; I couldn't conjure one up. Yet, Firefox and IE persist with the decision to have a Status Bar occupy valuable screen real estate. If I could figure out that the bar is superfluous, why couldn't their crack team of designers? Browser users everywhere continued to put with their screen being occupied by something they needed only momentarily and not that often - come on now, I'm not always hovering over links! And then, we all got a reprieve...

The folks building Chrome blazed a trail - like they were reading my mind, they figured that the Status Bar was useless and did away with it all together. To satisfy my desire to view URLs before I click on a link, they came up with a nifty solution - URLs appeared in a small toaster like window at the bottom-left corner of the screen. If I moved my mouse away, the toaster disappeared. Q.E.D. I tried to build an extension that did this myself, but got sidetracked by Elasticfox. Then I got busy with the .NET SDK. Yet, like a loyal dog, I didn't quit using Firefox; the browser had been good to me through the years that IE languished. I commented and voted on the bug to bring Chrome-like functionality to Firefox to no avail. Finally, someone out there heard the requests of the masses and built an extension that did just what I wanted.

It is: Link Target Display, built by Dão G. He's the man. Everyone, give this man the praise he deserves. And of course, install the extension so that you can "Take Back Your Screen!"

Friday, September 17, 2010

Sacrifices made at the altar of the bottom line

It was my younger brother's birthday yesterday, and all my attempts at getting in touch with him came to naught. Being away from family to be employed overseas has started to take its toll on me, and though the cracks aren't apparent, I get maudlin around this time of year. It eventually passes, but a part of me doesn't recover from the enveloping sadness of being quasi-orphaned.

Since I couldn't reach out to him, I wrote him a letter. I was sad when I started writing it, but the act of putting my thoughts down transformed my mood and gave me hope for the future. I hope this letter helps you somehow:

My dear Nikhil,

Today is the first day of the 31st year of your life. I wasn't thinking about this specifically, but it dawned on me this evening that it was 15 years ago that I left for Pilani. That's half your life! It has been that long since I celebrated your birthday with you. Of course, I am not counting that first trip you made to Pilani as a birthday surprise for me, and the one time I came back home and we had a party at Karma. I do wish that some day, hopefully soon, we'll live near each other and can celebrate some joyous occasions together. But this isn't a time for regrets or remonstrations; instead, this is a time for celebration, so let me banish such pointless thoughts and get on with what I wanted to say to you.

In the interest of being transparent, I want to admit - there was a time when I was worried about what you would do with yourself. Don't get me wrong - I always knew you to be a standout person of good character. Where I thought you were lacking was in your willingness to succeed, to persevere and see a task to completion. I make long-term bets, and I was hoping that you would be one of those late bloomers - start slow, but finish strong. And I can say with a measure of confidence that you have just about hit your stride; couldn't have been better timing...

Nikhil, it has brought me immense satisfaction and filled me with pride to see you become the man you have. I saw the transition take place before my very eyes, and it vindicated the faith everyone had bestowed in your innate abilities. I have said, and I maintain, that you're the better man among the two of us. You are loyal, trusting and honest, and if you believe your best interests are taken care of, you endeavor selflessly. These qualities are the mark of a dying breed of men - gentlemanly yet worldly. Stay on this path; you might not get as far ahead as some of your contemporaries, but you'll be happy when you arrive at your destination, as will be the souls you have touched along the way.

The first 15 years of your life were spent in school. The next 15 in becoming a man. I am not going to ask you to invest the next 15 in any pursuits that anyone else believes you should undertake. Instead, I suggest you use the upcoming years to chart a map of the rest of your life. I believe the time has come for Nikhil to decide what he wants to become. It's time he asked himself some difficult questions because the answers will inform the decisions he makes going forward. Why? Because you're at a crossroads Nikhil; where you go from here is entirely up to you. You're not going to be alone though. Rest assured that I will be there for you, in all the ways I have been in the past, and in every conceivable way I can be in the future.

All my love,

Thursday, September 16, 2010

Change is hard

Whenever I embark on a new journey or try something I didn't think I could do, something I learned years ago fills me with hope and inspiration: "Human beings have the unique trait of being infinitely adaptable." Sometime later whilst experimenting and experiencing, I realize that the truth is far from that ideal. In no part of my job is that realization brought to bear more often than in User Interface Design.

Firefox was the first mainstream browser to introduce Tabs in its interface. The innovation is credited to Opera, but with its infinitesimal market share... The Internet Explorer 9 team posits that the average number of tabs used by a customer is 8; they get this number by crunching a lot of user information. Hmm, I wonder if I signed up for my information to be relayed back to Microsoft! Back to the User Interface - IE9's new interface is beautiful and minimal. Microsoft has taken a page out of Apple's playbook and removed UI features while adding tons of under the covers functionality that makes IE a viable browser again.

At the other end of the spectrum, Firefox is in a quagmire of its own creation. It's no longer seen as the browser at the cutting edge, but rather viewed as an example of what bureaucracy can do to innovation. I think Firefox 4 is the company's last chance at redemption, but they might have bitten off more than they can chew with 4. For example, a lot of basic user interactions have changed. One that bites me to the day - and I've been using the beta release for a month - is the *new* position of the "Open in New Tab" entry in the right-click context-menu. The Firefox team has prioritized all Tab activities over Window activities. Ergo, Tabs are front and centre in this release; existential question - can a Tab exist without a Window? But I digress. Here is why this is a problem. Over four years, I've grown accustomed to the following flow:

1. Find a link on a page that piques my interest
2. Right-Click
3. Scroll to the 2nd entry in the list, Left-Click
4. Link opens in a new tab.

Today, the 2nd entry is - "Open in New Window". Muscle memory is a bad thing - I don't even read the contents of the menu any more. But now that the Firefox team has changed the ordering of the menu, I have to teach my programmed muscles something new. What's even more annoying is that all the other browsers order the entries like the old Firefox did, adding yet another inconsistency between browsers. Geez!

Away from User Interface complaints, I am proud to say that after trying to change my sleep schedule for a few years now, I finally succeeded this past week. By making an effort to get into bed a few minutes earlier every night, I finally got my conscious brain to switch off around 11:30 last night. Getting out of bed at 7am this morning wasn't hard any more, and staying awake didn't require an infusion of caffeine. We'll see how long this lasts, but as the adage goes, I have adapted. Eventually, I'll adapt to the browsers as well. Or, I'll switch to IE9 on my Mac. Wait...

Sunday, September 12, 2010

In the battle between Movies and TV shows, why the latter is winning

Look back over the past decade. How many films have approached the moral complexity and sociological density of “The Sopranos” or “The Wire”? Engaged recent American history with the verve and insight of “Mad Men”? Turned indeterminacy and ambiguity into high entertainment with the conviction of “Lost”? Addressed modern families with the sharp humor and sly warmth of “Modern Family”? Look at “Glee,” and then try to think of any big-screen teen comedy or musical — or, for that matter, movie set in Ohio — that manages to be so madly satirical with so little mean-spiritedness.

I swear, I’m not trying to horn in on my colleagues’ territory. But the traditional relationship between film and television has reversed, as American movies have become conservative and cautious, while scripted series, on both broadcast networks and cable, are often more daring, topical and willing to risk giving offense.
I agree wholeheartedly. Besides Inception and The Dark Knight, both Chris Nolan blockbusters, I can't remember the last time I went to a movie theatre and enjoyed what I was watching. For all of you thinking Avatar should be in this distinguished list, I disagree. My review: movie - too long, story - threadbare.

Monday, August 30, 2010

Fix for the "Upgrade are failed" error when upgrading Linksys firmware

Almost everyone I know - even those that I don't really know - are shocked when they find out that I don't have an Internet connection at home. The responses span the gamut from, "What kind of techie are you?" to "How do you survive?" Let me tell you this - not only have I survived, but I have thrived. I am no longer an insomniac, I don't wake up more tired than I was when I went to bed, and I don't think I have read as many books in my life as I did these past 17 months. In my eyes, this experiment was a resounding success.

Alas, like all experiments, this one has to come to an end. The process of returning back to being online started with me finding a roommate who is perennially oncall. To facilitate his work, I picked up a Clear Internet connection device from my friend Shari's store in Bellevue at the start of August. Given how much he needs the Internet and that my Wireless router was with Jyot, I let him have the wired connection in his room. I thought I'd hold out for a little longer...

It all ends today. That's right ladies and gents, I am once again among the online netizens of the world. Being offline is dead. Long live being offline! Like everything else this past month, the transition wasn't without its share of trials and tribulations. I plugged my Linksys WRT54G in, reset the settings, and setup my wireless network with the right security settings. At this point, it was brought to my attention that the firmware on my router was a few years old. Old isn't good, right? Like a good techie, I downloaded the latest firmware, and pointed the router to the new firmware file using my trusty Firefox installation. Bad idea!!

Here's why:
1. Firefox is known to cause firmware upgrade issues for Linksys routers. Avoid using it at all costs
2. If you get an error message that says, "Upgrade are failed", searching through the Linksys forums will not provide you with any answers to fix your router. The most dire news you can get is that you have officially bricked your router. Don't believe the hype, or in this case, the bad news. This is just opinion, not fact!

After spending an hour trawling the web for information, I got what I needed at a Linksys "jailbreaking"/modding site. In hindsight, I should've started my search there because these guys surely know what their doing. So, here is the fix:

1. Download the appropriate firmware for your router's version. My router is a Linksys WRT54G V8. The V8 is KEY.
2. Connect your computer via an Ethernet cable to port 1 of your router (the order of the buttons and ports from the Left is: Reset Button, Internet (Connection to your modem), Port 1, Port 2, 3, 4, Power).
3. Manually configure the connected computer's IP settings to be:
  IP Address:
  Subnet Mask:
  No DHCP configuration
4. Unplug your router's power cord
5. Unplug the cable that connects the router to the modem
6. With a pen, press down on the Reset button. The button is recessed, so please ensure that the button is actually pressed.
7. Plug the router's power cord back in
8. Keep the Reset button pressed for about 25 seconds
9. Open up Safari or Internet Explorer
10. Browse to

You should be presented with a screen that says "Management Mode Firmware Upgrade". Follow the prompts and upgrade your router's firmware with the downloaded .bin file's contents!

If you need images or have any other questions, follow the more detailed instructions :here:

Monday, August 16, 2010

Working week: Day -1: Flying to my destination

The samba beat ringing true in my ears, I sit in a tiny cafe by the beach. A long walk on the beach with the warm sun baking the sand was exactly the change I needed from a hectic two months of ceaseless and unrelenting pressure at work. Moving to a new team is hard, but none of my moves in the past have been anything like this one.

The flow of events changed when I touched down in Dallas. Nishant is a great host and an able partner in crime, and this meeting didn't disappoint. The craziness started on the ride back to his place, continued at this really cool bar a stone's throw from his apartment, sputtered through the taqueria food we chowed down while inebriated, and ended with a viewing of The Soup. Juggy style driving was on full display, and being back in The Lone Star State reminded why I love it so much. Texans are proud of who they are, comfortable in their skin, and extremely friendly. That part about Southern Hospitality: it's true.

Back to the present. The positive energy emanated by the people of this place is recharging my cells. I had completely stopped writing; the rigors of my routine taking a toll on my ability to look at things as an observer rather than a participant. People are milling about without a care on their minds, going in and out of conversation with complete strangers with ease and abandon. Nothing seems scripted or orchestrated here, and best of all, I am not worried about responding to the next pressing email from someone, anyone!

My tendency to take things as they come has been an aid through my travels this past year. My last trip to the East Coast, my sojourn in India and now this journey; the unexpected is at every corner if you expect just the basics. My aim is to embrace the unexpected, mingle with the local folk wherever I go, and make merry as the sun shines. Who knows when I'll be back to gray skies in Seattle...

Thursday, July 01, 2010

Jailbreak and Unlock your iPhone 3g on Windows

Previous generation iPhones, 3g in particular, are available for cheap these days. If you got your hands on one of these devices and don't want to be tied down to either AT&T or deal with Apple's walled garden, you're going to want to Jailbreak and/or Unlock your newly acquired device. I've tried to distill the information from a plethora of websites so that you can accomplish said goals. Read on...

FWIW, these instructions only allow you to have iPhone OS 3.1.2 on your 3g device. If you want to have 3.1.3, these instructions might work, but caveat emptor.

The Prerequisites
I. Download the necessary files
1. The Apple iPhone Firmware: http://www.iclarified.com/entry/index.php?enid=750
a. For 3.1.2, get this file: http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw

2. Recboot: http://www.sebby.net/443-recboot-final-release/

3. Redsnow 0.9.2: http://wikee.iphwn.org/howto, http://xs1.iphwn.org/rs/redsn0w-win_0.9.2.zip

Download all these files to a location that you can easily access again. I used: c:\temp\iPhoneUnlock\

II. Cellular Network or Wifi Connectivity
Ensure that you have either a SIM card in your phone or have it connected to a WiFi network. I can't stress the importance of having some sort of network connectivity when you are jailbreaking your iPhone.

Now, for the real work; you need to do three things in order to unlock your iPhone 3g:

1. Follow the instructions on how to Downgrade to 3.1.2 from: http://lifehacker.com/5572003/how-to-downgrade-your-iphone-3g%5Bs%5D-from-ios-4-to-ios-313
- Only difference is you need to downgrade to 3.1.2

2. Jailbreak the iphone firmware using redsn0w.
a. Launch the RedSn0w application
b. Point it to the ipsw (Apple Firmware file) for 3.1.2 that you downloaded earlier (c:\temp\iPhoneUnlock\iPhone1,2_3.1.2_7D11_Restore.ipsw)
c. RedSn0w downloads some files and patches the iPhone Kernel. After it is done, it asks you to switch off your iPhone and ensure that it is plugged in to your machine. Do this!
d. Follow the onscreen prompts to put your device into DFU mode
e. Once your device is in DFU mode, redsn0w will do the rest. When the RedSn0w application moves to the next screen, you can stop pushing down the "Home" button.
f. If you get a "Flashing NOR" screen on your iPhone, the correct process has been initiated. Sit back, relax and enjoy your soon-to-be-jailbroken iPhone.

a. Launch Cydia
b. Upgrade or update any packages it prompts you to update
c. Install ultrasnow using cydia: http://www.redmondpie.com/unlock-iphone-3.1.3-3g-3gs-with-ultrasn0w/
- You don't need to specify a new repository url. The latest version of Cydia locates ultrasnow 0.93 automatically.

Once ultrasnow is installed, your device will reboot and you will see the Pineapple logo. After your device does start up, it will be carrier unlocked!

Jailbreak and Unlock your iPhone 3.1.3 on a Mac

The instructions are pretty detailed. Unfortunately, the tool is currently Mac-only. I'll put up some detailed instructions on how to do this for Windows shortly.

Tuesday, April 27, 2010

HTTP Headers are a multi-map

RFC 2616:
Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma.
Today, I found and fixed a cool bug in the AmazonCloudFront client for .NET. The original implementation of the client used the System.Net.WebHeaderCollection.Add() method to specify headers for a CloudFront request. An example of one of the request headers is If-Match - this header uniquely identifies a CloudFront distribution, and the value associated with this header is the ETag specified for the request.

Using the Add method is fine if a new request object is created for every CloudFront request; the issue arises when an attempt is made to reuse an existing SetDistributionConfigRequest object to perform another CloudFront request, albeit with new parameters. In the reuse case, the new header values will be appended to the existing headers' values.

Let's take the case of If-Match: when the request was sent over HTTP, CloudFront received a comma-separated value for If-Match containing all the ETags specified during the lifetime of the request object. When CloudFront received this string, it couldn't verify the identity of the distribution, and rejected the request.

The fix: Use the WebHeaderCollection's [] accessor to set a unique value for every request header. Fixing this bug makes it now possible for the same request object to be reused for multiple calls.

Friday, April 02, 2010

Critiquing the iPad, and getting it wrong!

I like Cory Doctorow, especially his unique take on technology and all things geek. In fact, Boing Boing was the first RSS feed I subscribed to, ever! His latest piece on why he dislikes the iPad is a miss though; he doesn't get some basic tenets of why the iPad will succeed.
if you can't open it, you don't own it.
I consider myself to be quite the technophile, but when it comes to unscrewing the back off my laptop and fiddling with its innards, I *seriously* consider my alternatives. Most people that own computers panic when it runs slowly, panic even more when they get a Virus alert, and suffer a melt-down when their computer crashes or their hard drive fails. You think the average computer owner can bring out their screwdriver set and start tinkering with their computer? A laptop or desktop, as open as a hardware platform as can be, is still very intimidating to a regular Joe.

The iPhone was criticized for being a closed hardware and software platform. Did this stop the really inclined tinkerers from peeking inside and figuring out how these devices worked? No! For proof of this phenomenon, you don't have to go farther than Mumbai's grey market. For a very fair price (10 - 20 US$), you can pick from a number of "technicians" who can open your iPhone, replace your battery, tweak the hardware settings on the LCD, jailbreak the device, et al. Mumbai, Delhi, Moscow, Seattle - hardware geeks everywhere know everything they need to repair an iPhone, to hack an iPhone, to replace the software on the iPhone. What's that about not being able to customize the device?
The way you improve your iPad isn't to figure out how it works and making it better. The way you improve the iPad is to buy iApps. Buying an iPad for your kids isn't a means of jump-starting the realization that the world is yours to take apart and reassemble; it's a way of telling your offspring that even changing the batteries is something you have to leave to the professionals.
Isn't that what you do with a car, or a TV, or a DVD player, or a clock radio, or ... Why is this a bad thing? Why is it such a blasphemy that a device is locked down so as to enable scenarios that make it simpler to use and interact with than any other device available? In this age of information overload, the iPad offers me the ability to never have to learn how to make it work other than pressing its power button. Brain cells saved only to be wasted on something else that might help me find a job or improve my life!

What made me write this post though was this paragraph:
But with the iPad, it seems like Apple's model customer is that same stupid stereotype of a technophobic, timid, scatterbrained mother as appears in a billion renditions of "that's too complicated for my mom" (listen to the pundits extol the virtues of the iPad and time how long it takes for them to explain that here, finally, is something that isn't too complicated for their poor old mothers).
My mother isn't stupid, but she does struggle with using a computer. When did our measure of stupidity become proficiency with a computer? My mother could whoop most people's behinds when it comes to most things not related to using her computer; that she can't use her computer is not so much her fault as it is the fault of Microsoft or Apple or the other software makers. But I would buy the iPad for her, like I would buy an iPhone for her. She took to my iPhone and my Macbook Pro like a duck takes to water. In fact, my mom doesn't know how to use Copy/Paste and until a few days ago, didn't even think she needed such functionality!

April 3rd is tomorrow, and let me tell you something - the iPad will sell, and the 2nd version of the device will outsell its predecessor, and so on. When I used to walk around the 1st Gen iPhone, my friends used to mock me. These same friends now connect to the world with said iPhone. We have severe technological amnesia - being critical of something today doesn't preclude owning the thing tomorrow (or a year from now). I hope Cory wakes up and smells the coffee at some point; the rest of us common folk have already seen the light.

Friday, March 26, 2010

Mobile platform multi-tasking revisited

Everyone is clamoring for multi-tasking on their mobile smartphones. android has it, windows mobile has it but the iPhone and the new dangle windows phone 7 don't. This isn't that hard of a ponlem to solve you would think, but it really is. Reason - constrained resources on the phone and no good user interaction model for users to kill rogue applications.

The biggest issue with multi-tasking on phones though is reduced battery life. Right now, my iPhone barely gives me 5 hours of usage; I shudder to think what my battery life will reduce to once multi-tasking becomes du jour. Single-tasking is plain not good enough because switching to another app means all context is lost in the current app. There are times when I am listening to an episode of fresh air in my browser and the phone rings - bam, need to start the episode from scratch! So we are at an impasse, unless...

Yes, there is a third solution; an idea which is more of a hybrid approach - application hibernation. Switching to another app puts the current app into a form of suspended animation, kinda like the pause button for media playback. The application's state is saved to persistent storage and room is made for the new application. It would be trivial to provide a list of "suspended"/paused applications, with a cool ui that allows a user to literally press Play on the application they want to turn "On". It's going to be really interesting to see what strategy the 3 leading mobile platforms will adopt.  

Tuesday, March 23, 2010

Is High Fructose Corn Syrup good for you? The debate rages on...

I happened to switch on the TV last Thursday around the time of ABC’s nightly news programme. Under normal circumstances, I would have switched to a recorded program or to another channel, but the story being featured was on the deleterious effects of Fructose on our body. It turns out that the food industry has been lying to us, repeatedly; imagine my shock and horror! Even food dubbed healthy is full of fructose – probiotics, fruit juice, yoghurt, Special-K; the list is endless. Unlike sucrose, fructose tampers with the body’s Leptin production , which results in the lack of appetite regulation (we continue to feel hungry even after our body has received the necessary nutrients).

Of course, the Corn Growers lobby in Washington was also mentioned. Corn is pure starch, and it is the most abundant crop in America; some Corn in my food is to be expected. Was it really *some* thought? I had to know exactly how prevalent the grain was though, so I conducted a small “Corn” experiment this weekend at the grocery stores I frequent. I have a list of maybe 20 items I buy on a regular basis – some from Safeway but most from Trader Joe’s. I went down my list and read through the ingredients of the processed foods (including the unfrozen kind) - mostly juice, yoghurt, cereal, veggie patties, peanut butter pretzels, etc. It’s hard to get exact amounts of individual ingredients, so I just put a check against items that contained Corn or Fructose on the list; my findings were eye-opening!

Regardless of provenance and seller, about 75% of all processed food I purchase contain corn in one form or another (syrup, powder or whole). Fructose came in at a slightly lower 54%, the remaining 46% contained sugar. You should know this – I am a careful, anal even, shopper and read the ingredients before buying anything. Even I haven’t staved off the corn growers onslaught on my system. I guess the cost of healthy eating is a lifetime of vigilance.

What am I going to do now that I have this information? My findings suggest I need to eat more real food, less fruit juice, more fruit pulp, and cook more. I’m going to see how long this latest revelation makes me cook fresh meals before I succumb to the convenience of packaged food. Stay tuned.

Saturday, March 20, 2010

Being profligate in a recession - NYC sports teams

In this time of recession, it seems profligate, reckless even, for American sports teams to be erecting billion dollar pantheons for their respective sports. Take the professional baseball and football teams of New York City for instance.
At the same time, the Jets and the Giants are moving to yet another new stadium in the Meadowlands, which will replace a perfectly good Giants Stadium, to accommodate shrimp-and-wine tastes. The new place will still hold major soccer matches, particularly if the United States is chosen to host the 2018 or 2022 World Cup.
Parts of the world are so in debt and in need of funds that people don't have enough to put two square meals on the table. These teams are/were playing in perfectly functioning stadiums and ball parks; such excess!

Friday, March 19, 2010

System.Uri constructor makes the host lower-case

I stumbled upon this cool property of the System.Uri class today; the .NET Framework's Uri class knows that DNS names are case-insensitive. If you pass a string to a Uri constructor with mixed or upper case letters, the constructor will make the DNS/host part of the string lower-case.


Uri uri = new Uri("http://WWW.YAHoo.com/FoO");
will print: "www.yahoo.com"

will print: "FoO"

Thursday, March 18, 2010

Apple might be setting itself up for a Mobile Search Fail

APPLE and Google remain partners in certain areas. Google pays Apple millions of dollars annually to make its search engine the default on Apple’s Web browser, on the iPhone and soon, perhaps, on the iPad.

But there is wide speculation in technology circles that Apple is preparing to give Google a public black eye: by making Microsoft’s offering, Bing, the preferred search engine on the iPad, and perhaps even on the iPhone. One Apple employee says that Qi Lu, the president of Microsoft’s online services division, was recently seen visiting Apple’s campus in Cupertino to discuss such a deal. Microsoft declined to comment.
At the time of this writing, there is no physical device that runs Windows Phone 7 Series, but the initial buzz around the new platform and devices is frenzied. The devices are going to have an application store and an SDK out of the gates, and all of the Windows 7 phones will have Bing as their default search engine. If the platform catches on, and Android continues its onward march at the steady clip it is today, the default search engine on Apple will no longer be a priority for either Google or Microsoft. Why would either of the two companies pay a third almost a billion dollars to feature its search engine on *another* mobile phone platform?

Thinking about this some more, Microsoft might still make such a deal with the *perceived* devil, simply because it is the underdog in search. So yes, Apple will give Google a black eye, but really, will it even make a dent in Google's armor? In true Google style, it might just yank out the blackened eye and replace it with another commodity eye it bought for cheap on the open market!

Wednesday, March 17, 2010

Thoughts on the iPad

My friend Ishmeet and I had a spirited discussion on the iPad a few weeks ago. The linked article was sent my way by Ishmeet earlier today; reading it literally broke the dam holding back my thoughts; it is time I let my opinion join the steady stream of opinions and conjecture on the device. Bear in mind, this is based on an email response I wrote to him on my iPhone.
The author makes some good arguments - Apple is trying to define a new market segment, which is difficult; the $499 price point might be prohibitive for some; we are in the throes of a recession. But I think the rest of his arguments and scenarios fall flat. In particular, his logic on the whole "connectivity aspect and 3g" is specious. We live in an infinitely connected world - I can't go to a single place these days without my phone finding at least one open wireless access point. The need for 3g connectivity is so minimal and the available 3g network is so clogged (at least AT&T's), that watching movies would be more of a problem with 3g and shouldn't be a problem without the 3g device. Also, his point about content consumption vs creation is only partially valid. Content creation seems conceptually harder on the iPad than it would be on a traditional netbook, but that's what they said about typing on a touch only iPhone keyboard. We know how that claim has been debunked. To wit: it took me about 10 minutes to type this out on my iPhone and I chose to use this keyboard even though I am sitting in front of my laptop. The difference in typing time is insignificant enough to even be a factor. Regardless, there is a Bluetooth and tethered keyboard accessory available that should mitigate a lot of the content creation issues, if not all of them.

The issues that the author hasn't touched upon are the ones that concern me more - expandability, peripheral support, camera and screen. Software shortcomings are easier to overcome than hardware oversights. There is another tablet out there, developed by an Indian company, that is the clear choice when compared to the iPad. It remains to be seen whether the technical superiority of the Indian innovation will translate into real sales; my hope is that other hardware vendors will take cues from the Indian outfit and build a viable competitor to the iPad. This shouldn't be a 1 horse race, and Microsoft's answer isn't that far along in development to factor into this conversation.

To Apple's credit though, there is no doubting the brilliance of the iPad's software interface. Herein lies the true gem, and the real reason people other than loyalists will buy the device. Finally, there is a computing device that is larger than a phone that actually gets out of it's own way and let's a user do what they want. Granted that a user can only do a few things today, but the possibilities are limitless. For further proof of this, read the initial press coverage that the iPhone received. Apple got a lot of feedback from the early adopters, incorporated the feedback in subsequent releases, which further fed the frenzy around the iPhone. I think this is an appropriate moment to say, "the rest is history"...
My stake in the ground is that the v2 product will address a lot of the issues raised by the early reviewers and adopters. The v1 for my mom? Maybe!

Led by Energy, U.S. Wholesale Prices Fall - NYTimes.com

"In subdued economic conditions, there just isn’t the demand to support higher prices,” said Paul Dales, an economist for Capital Economics in Toronto. "Companies have to cut prices to survive.”

The Labor Department will release its barometer of consumer prices on Thursday."
The market is going to be volatile tomorrow and Friday, but one thing's for sure - it's not going to start way higher than the previous night's close as it did this morning.

Monday, March 15, 2010

My thoughts on the 2010 F-1 season opener

This is culled from an email exchange with one of my close friends Karan.

Every time the FIA come up with new regulations, it does little to change the trend started by Schumacher. Once a person takes off at the start, it’s well nigh impossible to overtake at the front unless the leader has a reliability problem. The new breed of *good* drivers is very accomplished, and there is very little that separates these drivers from one another. Mind you, I am only talking about the cream of today's crop - Vettel, Hamilton, Alonso, Massa, and their ilk. In other words, it has boiled down to the car – how else would you explain Jenson Button winning last year after 10 years of stagnation, and Alonso’s win after a season in which he didn’t win a single race or sit on pole? The argument that changing regulations help with lowering costs is specious at best. Take KERS for example – billions of dollars were spent by multiple teams to integrate KERS and test it in the cars last year, to what end? As regards Schumacher, it’s only his first race back. It would be fool-hardy on anyone’s part to expect him to return to his form of yore immediately upon locking his seatbelt into a new formula-1 car. Comebacks are hard for a reason!

Speaking of trends, a similar trend is emerging in MotoGP races – the Ducati bike is so much more superior than the rest of the pack that if their main driver, Casey Stoner, is healthy, he almost always wins. Rossi wins by the sheer force of his indefatigable will and some good fortune. Be that as it may, some races are still very close; two come to mind immediately – 2008 race at Laguna Seca and the breathtaking battle at Catalunya last year. I do foresee a day when the MotoGP races will become as boring as today’s F-1 races, but that day isn’t here yet. You know the lack of overtaking is one of the biggest reasons for the sport waning in popularity, especially in markets like the US where people want to see real competition and no holds barred driving. Hate it or love it, stock car racing has a surfeit of both those elements...

Best online music service - Grooveshark

Move over Pandora, this service is hands down the best I have used. You can control:
- Songs in your playlist
- Go back a song
- Skip a song
- Search for specific songs and add them to to your list
- Like that last line in the current song - rewind :)
- Create playlists
- Radio mode!
- Social networking built-in

Even though Apple won't approve their iPhone application, this is simply the best desktop music application out there. As regards Apple and its walled garden, that's a whole new can of worms; this certainly adds more fuel to the fire brewing over Apple vs Android. In related news, the latest salvo in the Apple vs Android battle was fired by Tim Bray, a prominent developer who has defected to the Android camp. Details :here:

Thursday, March 11, 2010

Are Smart Brake Pedals the answer?

They just might not be. You can make the pedals as smart as you want; they are only as smart and safe as the driver using them.
But based on my experience in the 1980s helping investigate unintended acceleration in the Audi 5000, I suspect that smart pedals cannot solve the problem. The trouble, unbelievable as it may seem, is that sudden acceleration is very often caused by drivers who press the gas pedal when they intend to press the brake.

From the mid-1980s until 2000, thousands of incidents of sudden acceleration were reported in all makes and models of cars (and buses, tractors and golf carts). Then, as now, the incidents were relatively rare among car crashes generally, but they were nevertheless frequent and dangerous enough to upset automakers, drivers and the news media.

What is a brand?

Wise words that provide the missing answer to a huge question:
"A brand is not a logo. It’s not a slogan. It’s not a product.

A brand is the soul of who you are and what you’re doing and it pervades every aspect of your business from your attitude to your interactions with customers. A great brand inspires other people with its passion. But you knew that already."

improving JavaScript performance with J�gerMonkey ✩ Mozilla Hacks – the Web developer blog

Here's the latest salvo in the browser Javascript wars - Mozilla's new Jagermonkey engine. Highlights:

1. Tracing
2. Nanojit
3. Nitro assembler

all used in conjunction to create screaming Javascript performance. This is all great news, but in this Javascript-arms race, we're soon going to hit a wall. I believe it is time for browser vendors to start looking for the next performance goldmine. From current trends, Google Chrome might be the first one to hit the mother-lode, but I know that Firefox and Safari won't be too far behind. These are great times for us consumers of web browser technology.

On a somewhat related and otherwise tangential note, I was listening to an interview this morning in which a scientist was expostulating the view that soon, the browser in its current avatar won't exist for much longer. Reaching out to the web will become so intertwined with our daily activities that the "obtrusive" and "unintuitive" browser intermediary will be replaced by something else. My thought is the browser will become the only way to interact with our computers and phones, albeit with a dramatically modified and enriched interface.

Wednesday, March 10, 2010

Good Artists Copy, Great Artists Steal

Jonathan Schwartz, has this interesting insight into the ramifications of Apple suing HTC/Google over the infringement of iPhone patents:
Having watched this movie play out many times, suing a competitor typically makes them more relevant, not less. Developers I know aren’t getting less interested in Google’s Android platform, they’re getting more interested – Apple’s actions are enhancing that interest.
I tweeted a similar thought when news first broke about the lawsuit, which I believe is not just frivolous but unnecessary gamesmanship on Apple's part. Ir remains to be seen whether the suit will actually go to court, but something needs to be done with the whole Patents shenanigans in the software world. To wit: It all started somewhere, so live and let live; thrive and let thrive.

Thursday, March 04, 2010

Berkshire Hathway's 2009 Annual Report

Insightful as always; Mr Buffett's style is inimitable. If you want to learn about making the right trading decisions, these Annual Reports are a must-read.


Wednesday, March 03, 2010

How Firefox has fallen...

The linked discussion thread is about plugins running in their own process in Firefox. Internet Explorer has had this feature since the launch of IE8, Google Chrome has had this feature since as far as I can remember, and even Safari, with its negligible market share, has this feature. I am using an unheralded browser on the Mac called Stainless - even that browser's team of maybe 10 developers has figured out a way to do not just plugins, but tabs in their own process. Whither Firefox?

I started using Phoenix 0.1 back in the day because I was sick of IE being stagnant, slow and bloated. Phoenix/Firebird/Firefox's claim to fame was it innovated faster vis-a-vis IE. Ironic isn't it - Firefox is the IE of today - slow, bloated and almost stagnant. Almost because it is the slowest innovator; Chrome is innovative, Firefox is derivative. Sad!

Tuesday, March 02, 2010

Windows Phone 7 - interesting observation

Best to use the words of someone else when they state everything you wanted to, only better!

The big three mobile platforms right now are iPhone, BlackBerry, and Android. (Feel free to add Nokia as a fourth.) I think Windows Phone 7 is most competitive with Android, because that’s the one with the same business model: licensing the OS to OEM hardware makers. They’re even competing for attention from the very same hardware makers, especially HTC. Google’s been undercutting Microsoft with free (or nearly free) services for a few years now: Google Docs against Office, Gmail for Business against Exchange, and soon, Chrome OS against Windows. But this one, Android vs. Windows Mobile, is the first one where Google seems poised to take the lead. Windows Phone 7 doesn’t just have to be better than Android, it has to be better enough to convince handset makers that it’s worth the licensing fees.

Thursday, February 18, 2010

Specify a (Default) value for a registry key in an MSI

After reading a few interesting posts about why there is a (Default) value for a key in the Windows registry, I got down to the task of specifying a REG_SZ value for said (Default). I got a clue of how to do this when I read the following:
To read the unnamed (default) registry value, enter the key path without name (with trailing backslash character). For example: "Software\Microsoft\Windows\"
Bearing this in mind, I followed these steps to specify a (Default) value for a key in the MSI I am building via Visual Studio:

1. Right Click on the Setup project -> Select View -> Registry
2. Construct the path to your registry key. In this case, I was creating a new key for the AWSSDK assembly as HKLM\Software\Microsoft\.NETFramework\AssemblyFolders\AWSSDK.
3. Right click on the AWSSDK node and select "String Value"
4. Leave the "Name" field blank in the properties window but specify the correct value; in this case, it was the installation path for the SDK.

When you have entered a value, you will notice that the empty name field gets replaced by (Default).

This is a good explanation of why there is a (Default) value for registry keys: Why do registry keys have a default value?

Also, the Microsoft Orca tool is a great aid when debugging MSI issues. You can get Orca by downloading and installing the package from :here:

Wednesday, February 10, 2010

Visual Web Developer Express Download Link

For those like me who don't want to deal with downloading the Visual Studio Web Platform Installer just to get their hands on Web Developer 2008 Express, here is the file you need to download: http://download.microsoft.com/download/A/5/4/A54BADB6-9C3F-478D-8657-93B3FC9FE62D/vwdsetup.exe

Enjoy building new ASP.NET applications!

Friday, February 05, 2010

The Best Cameras $300 or Less Can Buy - David Pogue

The Fujifilm F70EXR is superior in low light (and has that 10X zoom). The Panasonic Lumix ZS3 takes great hi-def movies (12X zoom). (The Nikon S8000 is extremely similar, but costs more.)
There, I did the reading for you so you can jump straight to the best part.

Monday, February 01, 2010

Great advice for budding authors

I'm a three-time (soon to be four-time) published author. When aspiring authors learn this, they invariably ask what word processor I use. It doesn't fucking matter! I happen to write in Emacs. I also code in Emacs, which is a nice bonus. Other people write and code in vi. Other people write in Microsoft Word and code in TextMate+ or TextEdit or some fancy web-based collaborative editor like EtherPad or Google Wave. Whatever. Picking the right text editor will not make you a better writer. Writing will make you a better writer. Writing, and editing, and publishing, and listening -- really listening -- to what people say about your writing. This is the golden age for aspiring writers. We have a worldwide communications and distribution network where you can publish anything you want and -- if you can manage to get anybody's attention -- get near-instant feedback. Writers just 20 years ago would have killed for that kind of feedback loop. Killed! And you're asking me what word processor I use? Just fucking write, then publish, then write some more. One day your writing will get featured on a site like Reddit and you'll go from 5 readers to 5000 in a matter of hours, and they'll all tell you how much your writing sucks. And most of them will be right! Learn how to respond to constructive criticism and filter out the trolls, and you can write the next great American novel in edlin.
And like everything else on the web, if you happen to get to this link, the advice is free...

Thursday, January 14, 2010

This is how bad the TSA's screening process is...

"Myth: The No-Fly list includes an 8-year-old boy.

Buster: No 8-year-old is on a T.S.A. watch list.

“Meet Mikey Hicks,” said Najlah Feanny Hicks, introducing her 8-year-old son, a New Jersey Cub Scout and frequent traveler who has seldom boarded a plane without a hassle because he shares the name of a suspicious person. It’s not a myth."
No wonder the TSA officials never catch the terrorist carrying a bomb in his undies!

Can California's problems boil down to something so simple?

To quote an oft-used principle in deductive analysis, Occam's Razor states that "entities must not be multiplied beyond necessity" and the conclusion thereof, that the simplest explanation or strategy tends to be the best one. With this in mind, this simple hypothesis could be the root cause of California's ailings:
"The simple tragedy of California is that its tax and budgeting restrictions — voted in by citizens’ initiatives — make it impossible to pay for the prison, school and health mandates OK’d by those same people."

Tuesday, January 12, 2010

Another day of honest labor completed

Time to go home, recharge a little and then workout until it's too late to do anything else. Good start to this week - challenging bug fixes, some good refactoring and the satisfaction that with each iteration, this product's appeal is widening.

My constant stream of updates have stopped since I decided to unplug myself from the world once I leave work. Not having the Internet at home has been a boon, and though I miss blogging, I have found an outlet for my immediate thoughts on Twitter. I have resolved to write more often just before leaving work this year - hopefully your readership will make me want to keep that resolution.


Sorting a List with a specific String Comparer like Ordinal

Sorting strings is always a tricky issue and a cause of subtle bugs that are hard to unearth until a customer encounters a weird corner case. The AWS SDK for .NET had a bug that resulted in S3 metadata being incorrectly sorted because the SDK used the default String Comparison algorithm. The fix was two fold:
1. Change the ArrayList into a List
2. Specify the correct StringComparer - Ordinal in this case.
            List list = new List(headers.Count);
            foreach (string key in headers.AllKeys)
                string lowerKey = key.ToLower();
                if (lowerKey.StartsWith("x-amz-"))
            // Using the recommendations from: 
            // http://msdn.microsoft.com/en-us/library/ms973919.aspx

Friday, January 08, 2010

Amazing writeup on the rumored Apple Tablet

Then again ...

... And, of course, assuming there’ll even be an Apple Tablet, or an iSlate, or whatever we think they’re going to call it.

My course is clear. My airfare is non-refundable. During the final week of January, I hope to be sitting in an auditorium at Yerba Buena Gardens learning about the Apple Tablet.

If I fly out there and Apple doesn’t hold their rumored launch event, then I’ll drive down to Cupertino. I’ll stand outside the Apple campus in a trenchcoat holding a boombox over my head, playing a Peter Gabriel song up at the upper windows until Steve Jobs is so touched by this romantic gesture that he sends me away with an engineering sample.

Dammit, something needs to be done. This frustrating state of affairs simply can’t continue.
Some day, I wish I can conjure up a single idea that moves the press to wax poetic and yearn for just an *Engineering* sample...

Tuesday, January 05, 2010

Nexus One won't work with AT&T 3G

U.S. users can also use the unlocked phone with AT&T, although the phone’s radio isn’t able to use AT&T’s 3G network.