Apps  Contact  Seminars 

Archive for August, 2011


August 27th, 2011

3 Best Quotes from Steve Jobs

by Amrinder

When you’re young, you look at television and think, There’s a conspiracy. The networks have conspired to dumb us down. But when you get a little older, you realize that’s not true. The networks are in business to give people exactly what they want. That’s a far more depressing thought. Conspiracy is optimistic! You can shoot the bastards! We can have a revolution! But the networks are really in business to give people what they want. It’s the truth.

Steve Jobs, in Wired, 1996.  Reading this quote alone is more fun than reading the entire interview.

Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

Steve Jobs @ Stanford, June 2005.

We think the Mac will sell zillions, but we didn’t build the Mac for anybody else. We built it for ourselves. We were the group of people who were going to judge whether it was great or not. We weren’t going to go out and do market research. We just wanted to build the best thing we could build.

When you’re a carpenter making a beautiful chest of drawers, you’re not going to use a piece of plywood on the back, even though it faces the wall and nobody will ever see it. You’ll know it’s there, so you’re going to use a beautiful piece of wood on the back. For you to sleep well at night, the aesthetic, the quality, has to be carried all the way through.

Steve Jobs, circa 1985, talking about importance of design



August 27th, 2011

Code Reviewers’ Pet Peeves

by Amrinder

As a code reviewer, certain things tend to bother you more than other things.  Here is the list of 3 things that bother the @*(# out of me.

  • Using code as the revision control system:  Developers tend to comment out code, not delete it.  Call it pride of authorship or something else, but it is difficult to delete that excellent, eloquent, functional piece of code that was relevant before your product/project manager decided to change the requirements completely (and completely out of blue, barely x hours after lauding your excellent work!).  The main justification that the developers tend to give is, “Well, what if we want to add that feature back?”  Well, Joe, no, we are never going to bring that feature back!  Never.  Never, ever.  Because we never change our mind.  But just in the slimmest possible lemon peel of a chance that we do bring that feature back, then we will use the RCS to go hunt for that piece of code, or better, you will redo it from scratch!  You wrote such good code the first time around, that I just shudder in awe of the future code that you will write when you have already written that once.  So, for now, stop using code as your RCS, be brave and delete the code.  If we have to give Developer Medals of Honor (DMoH), then, that should be awarded to the brave developers who have written something fabulous and deleted it from their code when requirements changed, thus relegating that phenomenal piece of code to the deathly hollows of the RCS, and done it without evincing pain.
  • Using naming conventions that are beyond wrong: This one causes no visible problems, other than sometimes befuddled customers or higgledy-piggledy users who are confused that the browser bar is showing “AddInvoice.jsp” or something similar, when they were clearly trying to edit an existing invoice.  Horror of horrors!  The customers are just not adept at recreating the thought process of the developer Alice when she was creating the page the very first time, before the first invoice existed at all!  So, Alice conveniently called it the AddInvoice page, and since she is a good developer who follows the reuse principle, Alice decided to reuse the same page for editing an invoice.  Alice, imaginative as she is, did not consider the possibility that a glasses, jeans/t-shirt wearing user would actually notice the URL when using a part of the application.  Clearly, there is no shortage of horror movies in the software world.
  • Using single liner if else blocks: This one is the easiest of the problems to fix.  Just make this a hall of shame qualifier in your team (or a compiler error in your IDE settings).

    No one should write if else logic that does not use curly braces to wrap the pieces of logic that go inside the if and the else blocks.  This really is just a code format issue, but the number of times that I have seen this cause sudden bugs to appear in the version X.0.1 when version X.0 seemed to run absolutely fine is far too many to let this go by.  Too many times, a developer will add a log statement to the first line of the else block, entirely changing the meaning of the block.  This one should be considered the one-liner joke equivalent of the software comedy genre.



August 19th, 2011

Review of Bloom Filters paper

by Amrinder

My review of the SPAA 11 paper “Understanding Bloom Filter Intersection for Lazy Address-Set Disambiguation” by Mark Jeffrey and Gregory Steffan has been published and is available here  (requires access to Computing Reviews).

Here is the list of other review activities that I am usually involved with.



August 13th, 2011

Is the era of the desktop applications over?

by Amrinder

Almost a month after starting my migration to a new computer, I put a closure on it today, essentially by giving up on installing Dragon Naturally Speaking.  The new OS is Windows 7 64-bit, and DNS is not too happy to install successfully on it.  While I could wade through 22,900,000 Google results for “install dragon naturallyspeaking 10 windows 7 64-bit”, the question that looms in my mind is if the era of desktop applications is just coming to an end.  There are too many operating systems, too many variations, and if we can get the universal turing maching (aka, the browser) to run on it, why do we have to get each individual turing machine.

That debate goes in many different directions.  Just a few days ago, I was comparing a few BI enterprise dashboard applications, and noted that Tableau, NXmonitor  and MicroStrategy were similar in many respects, but Tableau requires a desktop designer.  Is the cost of installing that on the desktops and maintaining that ever going to be justified?

Tags: ,


August 11th, 2011

School of Life (or, Life in School at 18)

by Amrinder

Had an excellent meeting yesterday with a tech superstar (let us call him Dave). Dave has worked in (and sold) many companies, designed a real time operating system, developed a programming language currently in use, designed uber cool software components still being used by a big name ERP software provider.  When I asked him about his educational background, Dave casually mentioned that he didn’t have much. Really, no big surprise there – some very big names in software have come from all kinds of schools, and some very big names have been dropouts etc, and some never stepped inside school to begin with.  The value of school of life is well understood.

Also well understood is that there are many aspects of formal education which helps many people have a better grasp of their work. Some concepts are easier learnt in a structured program (at least for many people), than in a work environment.

In a certain respect, direct high school -> college -> graduate school -> job route can be considered to be a bottom up approach.  Students have a structured path of learning, and they learn all the base steps and continue to build on those blocks, and are then ready for a super job.  (Does this approach look similar to Dynamic Programming to you?)  Along the path, students may question the relevance of certain classes, and can get a bit frustrated if neither the professor’s lucid explanations and war stories, nor the associate dean’s topological sort dependency diagram of classes are readily available.

The alternate route, high school -> job -> undergraduate -> job -> graduate route can be considered to be a top down, or greedy approach.  Students start by learning what they can at their job, figure out what more they need to learn, go back to school to get their undergrad.  Some go for masters after they have been working for a while, and benefit from what they learn.  They have learnt the processes at work, are aware (somewhat) of the gaps that they have in their knowledge, and are now interested in filling those gaps.

[Umm, and there is also the slight issue of expectations.  A person with the title of a senior developer with a graduate degree under his belt walks into his new job and everyone is aghast to find out that he doesn't even know how to use subversion - "Holy BSD!!"  There aren't many graduate schools in the world that are going to teach someone how to use version control, and that is also not something that hard to learn, but you do have to learn it.  A kid out of high school walks in, and everyone is happy to help him check it out.]

The alternate route is the part where I have picked some of my own arguments with the rest of the academic community.  Everyone learns differently, and thus either of these routes may be the right path for someone.  The kids shouldn’t just go to college by default when they finish the high school.  In my opinion, the freshmen are generally thinking along these lines:

I could be flipping burgers at the King
Touring the Amazon, the pyramids and the sphinx
Working a bit, saving a bit
Climbing the mountains and walking along the Ganges.

Instead, I am in this classroom
The professor knows nothing, the college feels like a hoax
The PhD Dude can’t even remember my name
But at least I am four hours away from my folks.

Currently, “living by yourself” has become a very significant portion of the college life, so much so, that everyone says - “Of course, that is a part of the college experience.” That may be the case, but if we can change a situation a bit, the kids can learn to live on their own, as well as, use the college for the kind of education experience that it was meant to provide.  Kids can work a bit after high school, travel a bit, study a bit. Maybe go for an Associates degree.  Then, when they are 21 or so, maybe then they feel like extending that Associates into a complete Baccalaureate, perhaps graduating when they are 23/24.  That is 2 years behind the norm now, but by that time, they would have gotten some work experience, have smaller student loans and have wider perspectives on life and the world – what’s  not to like about that?

——————————————

Do you have an opinion on this matter?

When should kids go to college?

View Results

Loading ... Loading ...


Switch to our mobile site