Wednesday, July 23, 2014

When it comes to new features, “NO” should be your default answer.


As a tech lead I see my primary contribution as saying “no” to features that co-workers think are important but can’t justify. The real trick is knowing when a new feature adds linear complexity (its own weight only) or geometric complexity (interacts with other features). Both should be avoided, but the latter requires extra-convincing justification.

-Norris Numbers

Wednesday, July 9, 2014

D-day landings scenes in 1944 and now.


Peter Macdiarmid has taken photographs of locations in France and England to match with archive images taken before, during and after the D-day landings. The Allied invasion to liberate mainland Europe from Nazi occupation during the second world war took place on 6 June 1944. Operation Overlord was the largest seaborne invasion in military history, with more than 156,000 Allied troops storming the beaches of France.

The Guardian

Thursday, June 19, 2014

Friday, May 30, 2014

Learning to Learn


I have been teaching programming, software engineering one way or another since I have graduated. One thing I see again and again with bright kids. It is not they have good memory or high intelligence; it is that they have figured out how to learn. If I can teach my son only one thing, that would be this,

Learn to learn.

Thursday, May 15, 2014

Windows Phone 8.1 had my attention and lost it in 2 days.


I was a smart phone enthusiast long before smart phones became a norm. I had several Windows Phones in last 10 years including Palm Treo and HTC Dash. I even wrote few apps including one to track my expenses. User experience was not great so was the developer experience. I had to troll through several forums to get basic Bluetooth communication working.

Windows Phone had developers and users like me and some considerable amount of the Smart Phone market share in their plate. iPhone came and ate their share while Microsoft watching it helplessly. It was depressing to watch that happening as a Windows Phone and Microsoft developer. Though user and developer experience wasn’t great, it was one of the first smart phone I had and I was able to program and tweak it. I think, when you tweak something and make it yours, you develop some kind of bond with what ever the product you are using.

iPhone looked and functioned great and people were developing apps and making millions, I wasn’t ready to shell few thousand dollars to buy a Mac and and iPhone. After Google launched their first Android Phone, I jumped ship. I wrote few android getting started apps. When I started working in Android for my work, I started liking Android.

While all this going on with Android, I have been following Windows Phone. Couple of things stopped me getting series with Windows Phone,

  1. We have a baby and I don’t get lot of play time anymore.
  2. Android tooling was getting better and better.
  3. Microsoft had Windows 8 OS restriction if you wanted to write apps for Windows Phone.
  4. I am cheap, bought a Nexus S and wasn’t ready to spend another $300+ for new Windows Phone.

The only reason I bought Nexus phone was so that I can get faster OS updates, Google excluded Nexus S from KitKat, though KitKat is aimed for the devices like Nexus S. I had been running Cyanogenmod KitKat nightly build on my Nexus S. It was definitely faster than JellyBean, it still had performance issue. I could have waited another 6 months for Cyanogenmod to release a stable version of KitKat but decided to bite the bullet and buy a new phone. My options were terribly simple, either Nexus 5 for $350 some dollars or Nokia Lumia 925 for $200 some dollars.

I decided to take the road less travelled. I had been watching Build 2014 conferences and wanted to try Cortana and other couple of features they added in 8.1 release. So I bought the Lumia 925. Hardware spec is almost half as Nexus 5, dual core processor, 1GB ram and no support for Bluetooth 4.0, Nexus 5 came with quad core processor, 2 GB ram and Bluetooth 4.0 LE. But the price was 44% cheaper than Nexus 5. Not bad for the price I paid.

Windows Phone 8.1 UX is refreshingly clean and different. Live tiles are nice, came with One Drive. Few things I did not like, I am not patient enough to explore settings/apps. I want to search and be done. iPhone 5S has pull down and search anything from any home screen. Android has Google Now and Google Gesture Search. I can find, contacts, apps, even settings that are couple of levels deep. Almost anything. Windows phone has dedicated search button but search focuses on Bing web search. Phone search results are pushed down. This is a minor software tweak I hope they can fix it in coming versions.

Big turn off for me was, not surprisingly apps. I am not an app junkie, but I have few apps I use it regularly. YouTube for my son, Flipboard for my news, beautifully designed Yahoo Weather app Google Hangout for my students. Windows Phone doesn’t have YouTube, Google, remember “don’t be evil” slogan. Flipboard is working on a Windows Phone app for more than a year, still no release in sight. No Yahoo Weather app. But Microsoft weather app was decent.

Hopefully Microsoft figures out a way to turn around the apps gap in Windows Phone as they did with Windows Azure. I am going to wait for may be 6 months to a year to spend another 100-200 dollars for a Windows Phone. Hopefully things turnout for Windows Phone. It is good for me as consumer and a C# fan.

So I ended up choosing good old boring Android.