Ideas, Knowledge, Technology, Computer Science, Experience associated with my work and some geeky stuff I progressively encounter during my journey towards enlightenment. Read on…

  • RSS RSS Feed

    • Cloud Computing
      It’s been really long, since I last wrote a tech post. In this post, I’m just sharing few useful links to get started on Cloud Computing, whether you’re a developer, quality engineer, business leader, or a project manager intending to get started with Cloud Computing. I’m currently designing systems and services, for a platform that’s […]
    • The Pragmatic Programmer
      I finished reading The Pragmatic Programmer by Andrew Hunt and David Thomas. It’s not a new book in the market but I was curious to read this. The technology topics covered, are not any different from those found in most software engineering books, but the way they’re presented using Pragmatic Philosophy Approach, is remarkable. Code […]
    • 2013 in review
      The stats helper monkeys prepared a 2013 annual report for this blog. Here’s an excerpt: A San Francisco cable car holds 60 people. This blog was viewed about 1,200 times in 2013. If it were a cable car, it would take about 20 trips to carry that many people. Click here to see the […]
    • Goodbye, Ness!
      It had to happen sometime. I thought Feb 2013 was the right time. I quit Ness after a long 5 years and 4 months of stay, in Feb. I joined FICO (formerly, Fair Isaac) last Feb.  While I get an opportunity to work with many varied stakeholders like Scientists, Architect, Product Management, Peer Developers, PMO, Technical Publications and also […]
    • Meta: information retrieval from Tweets
      I pick significant problems randomly sometimes and enjoy solving them, or at least attempt designing api :-). Here’s one such problem! Problem: How’d you go about finding meta information about a person’s tweets? NOTE: a) Tweet == Twitter updates b) Meta information –> Loosely defined. You can interpret it anyway you want –> Frequency, topics, follower […]
  • Twitter Updates

Archive for the ‘Programming’ Category

The Pragmatic Programmer

Posted by sanstechbytes on March 16, 2014

I finished reading The Pragmatic Programmer by Andrew Hunt and David Thomas. It’s not a new book in the market but I was curious to read this.

The technology topics covered, are not any different from those found in most software engineering books, but the way they’re presented using Pragmatic Philosophy Approach, is remarkable. Code snippets used are not specific to a particular paradigm. It’s a rare book in the sense that the practical experience and wisdom of the authors is obvious in the way they’ve dealt with different software engineering topics. Any programmer can easily relate to the advice and analogies given by the authors throughout the text.  As an experienced developer, I could discover ‘right’ ways of approaching many finer aspects at various phases of SDLC, although I had learnt and have been practicing most of them over the last few years.

I’ll brief on some of the points elucidated by the authors –

When you’re asked about estimates, various ways to give estimate are: that you say, “I’ll get back to you by ….” Giving estimates in units of Days, if duration is in the range of 1-15 days, in Weeks, if it’s in in the range of 3-8 weeks, in Months, if it’s in the range of 8-30 Weeks and think hard before quoting an estimate, if it’s beyond 30+ Weeks. Talk to people in team, who have implemented similar features to help yourself give realistic estimates. 

When you’re designing a system, you adhere to Design by Contract methodology involving the need of Pre- and Post conditions. You take care of Orthogonality by designing systems that’re independent of each other, in their implementation. Database code should be orthogonal to user interface code. You separate ‘what’ from ‘how’ – design meta-data driven frameworks, sub-systems, to easily accommodate any architectural level changes in future.

When writing code, you use DRY principle (Don’t Repeat Yourself); avoid duplication caused by Imposition (Constrained  by design), Inadvertency (you don’t realize, you’re duplicating), Lack of Patience (you get lazy), Lack of active and frequent communication among developers that work in same team and write code for same module. Use Automation as far as possible, Code Generators, Test Frameworks, Modeling Tools etc. You evaluate the time and space complexity (Big-Oh – O(n)) before implementing the algos, choosing the data structures. When tuning for performance, don’t do premature optimization; the optimization has be done iteratively, improving upon the results obtained from each iteration. Most of the times, developers may say that, “We’re always under pressure to deliver code. So, we won’t be in a situation to adhere to these principles.” But, I would say, “If we inculcate the habit of writing good code right from the time we begin our careers, over a period of time, we’ll be able to deliver high-quality code, even under most demanding situations.”

When you’re debugging an issue, exploit the IDE’s like Eclipse, and other editors, to quicken. The quintessential need to effectively utilize widely used tools in many OS environments to enhance our productivity levels is the need of the hour. For routine work, have scripts for many tasks like starting / stopping a bunch of servers, consoles, setting ENV variables; opening your default no. of browser tabs (having a launcher file).

I must say that, the pragmatic philosophy is more relevant these days, than it was ever before. In the end, the authors have listed a very exhaustive list of internet resources for different tools, text references etc. I thoroughly enjoyed reading this and it’s a 5 out of 5, for me.     

Posted in Programming | Leave a Comment »

Free Video/Audio Lectures from MIT, Stanford, IIT/IISc, UC Berkely

Posted by sanstechbytes on September 25, 2011

Some of the video/audio lectures that I enjoy are (check out few video lectures embedded below as well) available at:  

My favorite is MIT OCW and it’s a great place for self-learners, educators across the globe.  

The interesting note is that you can download these world-class video/audio lectures covering topics like Art, Economics, Engineering, History, Literature, Medicine, Management, Math, Philosophy, Psychology, Science  etc, including other course materials for free!  Also, most of these are available on YouTube categorised under their respective University Channel or on

Enjoy the lectures!

MIT – Introduction to Algorithms:

Stanford – Machine Learning:

NPTEL – Data Mining:

UC Berkeley Search Engines:

Posted in Programming | Leave a Comment »

Ideone: Online IDE and Debugging tool

Posted by sanstechbytes on February 6, 2011

Ideone is an online IDE and debugging tool. You can paste your source code in 40 programming languages on a web page, compile, run and debug your code. It’s really great!

Posted in Programming | Tagged: | Leave a Comment »

10 Papers Every Programmer Should Read

Posted by sanstechbytes on January 12, 2011


Most are easy to read but some are rough going – they drop off into math after the first few pages. Take the math to tolerance and then move on. The ideas are the important thing.

  1. On the criteria to be used in decomposing systems into modules – David Parnas
  2. A Note On Distributed Computing – Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall
  3. The Next 700 Programming Languages – P. J. Landin
  4. Can Programming Be Liberated from the von Neumann Style? – John Backus
  5. Reflections on Trusting Trust – Ken Thompson
  6. Lisp: Good News, Bad News, How to Win Big – Richard Gabriel
  7. An experimental evaluation of the assumption of independence in multiversion programming – John Knight and Nancy Leveson
  8. Arguments and Results – James Noble
  9. A Laboratory For Teaching Object-Oriented Thinking – Kent Beck, Ward Cunningham
  10. Programming as an Experience: the inspiration for Self – David Ungar, Randall B. Smith

Posted in Programming | Tagged: | Leave a Comment »