5 things I learnt at Amazon

September 13, 2007 ravehanker 5 comments

It’s been a exhilarating four months at Amazon, or atleast it will be in another eight days!

Coming fresh out of college, I learnt a lot about the difference between being just a programmer and a software development engineer. A programmer is someone who just codes what you tell him to; a code monkey, so to say. But a software development engineer is “a biological machine that automatically converts coffee and beer into code”!

This big lesson apart, here are a few other things I learnt so far,

  1. Your 10K+ code with all it’s fancy architecture and flawless implementation is worth nothing if it’s not solving the business problem that it was needed for. Understand the context of the problem before jumping to conclusions.
  2. Sending your code review without proper comments is *much* worse than walking naked on the streets
  3. 5 minutes of extra thought at design time is 5 hours in dev time. Sketch up a rough design even if your writing a script.
  4. 1 hour into reading the fine manual is otherwise 10 in writing your own code.
  5. Using an unstable library is like shaving in the dark. You’re bound to cut yourself if you don’t know what you’re laying your hands on

At the end of the day, work is a lot of fun (and a lot of TT :-D ). I find it hard to go home :)

Categories: Technology

Hackzor debriefing session

September 12, 2007 ravehanker 8 comments

I’m planning to have a little tutorial session on how Hackzor works and how it should be working on Saturday. My juniors Alagappan and Vijay have already guaranteed their presence.

If you’re interested in developing Hackzor, just drop me line so that I know your coming. I’m primarily looking at my college juniors (CEGians) to take this further(since CEG is our only customer for now :-D )but others are welcome too!

Place: Cafe Coffee Day at Ascendas
Time: 3:00 PM on September 15th (Saturday)

P.S: For the uninitiated, Hackzor is the little mess that Prashanth and me wrote for the online programming contests at Kurukshetra and Abacus

Categories: College

A five pointer on Hpricot Vs REXML

September 11, 2007 ravehanker Leave a comment

I’ve been learning to parse XML in Ruby for a while now using Hpricot and REXML. And here’s essentially what you should know if you are going through the same path

  1. Hpricot(as of this writing) is still *very* incomplete! It’s doesn’t support everything that you would want to do in Xpath. I had to jumps through hoops to get a few things done. REXML on the other hand works like a charm. Hpricot also behaves weirdly(and unpredictably) at places.
  2. Hpricot has parts of its implementation in C and way faster than REXML.
  3. I like the Hpricot syntax, which seemed more natural than what REXML uses
  4. REXML is very adament about content errors and would refuse to parse a document having a single misplaced ‘&’. Hpricot never complained.
  5. REXML is in the standard library
Categories: Ruby, Technology

Ruby from a Newbie

July 23, 2007 ravehanker 4 comments

A presentation I gave after learning the language for about a week.
Comments on accuracy and presentation and content are most welcome.

Ruby Talk Slides
Ruby Talk Source

Categories: Ruby, Technology

Java for C++ folks

June 17, 2007 ravehanker 1 comment

I’ve been learning Java for a while now, and I’m trying to highlight the major differences between Java and C++ here. This is for all you C++ people who’ve always wanted to look into Java.

Readers are encouraged to comment on the things that I’ve missed.

Note to the newbie : Don’t try to understand what I’m trying to say, This is more like a table of contents. Google for what they all mean!

  1. Each file should be named after a public class in the file
  2. All non-local variables get initialized. All objected references get initialized to null
    Also: Its an error to declare a variable and not initialize it within Java methods.(Thanks vijay03)
  3. Objects need not be explicitly deleted. All variables are garbage collected
  4. Local Variables override scope in c++. It’s simply an error to do so in Java.
    eg:

    void foo() {
        int a=2;
        {
            int a;
            a = 4;
        }
    }

    Valid in C++, Invalid in Java
    PS: Doing this is EVIL!

  5. All objects (NOT primitive types) are passed by reference. All variables in Java act like C++ aliases.
  6. Methods of the subclass *always* override superclass methods in Java. That is, All methods in Java behave simply like virtual methods in C++
  7. The default scope of any member/method of a class is package scope
  8. protected members in Java can be accessed by any code that’s in package scope of the class and by inheriting classes.
  9. Java doesn’t have templates. But then i heard they had something called generics that is close to templates. I haven’t personally gone through them
  10. Java doesn’t have multiple inheritance and you can apparently get away by using interfaces
Categories: Java

Blah Blah Blog Update Blah

May 25, 2007 ravehanker 5 comments

Abstract:

  • Updating blog[1] after finishing college formalities
  • Finished Final year Project[2] Report
  • Joined Amazon on 21st

Bleh:
Blah Blah Blah Blah Final Year Project Blah Blah Blah Blah Blah crap about your project Blah Blah Blah Blah fill 50 pages Blah Blah Blah Blah Blah Blah finish college Blah Blah Blah Must blog Blah Blah Blah Join Amazon Blah Blah Blah Blah Blah Blah Meet smart, cool, great} people Blah Blah Blah must blog Blah Blah Blah

Conclusion
Preparing a final year report, at the end of the day showed me that preparing documentation and explaining things clearly to others is as hard/important as working on the code itself. <hindsight> I should have paid better attention and devoted more time to it </hindsight>. More on my first week at Amazon in a few days. Stay tuned!

References :
[1] Blah blah blah Leopard delay
[2] Storage and Print solutions about SOHOs

Categories: College

Passwords are like underwear

March 27, 2007 ravehanker 1 comment

As hilarious as this is, I came across this while studying(!) for my “Componentware Architecture” course assessment. It was in a pdf(presentation) titled “Introduction to Computer Security” under the topic “Password Security”

Passwords are like Underwear!

  • Don’t leave yours lying around
  • Don’t Share them with friends
  • The longer the better (cold weather)
  • Change yours often

P.S : I didn’t _actually_ read this until Pradeep, my classmate pointed this out me. But Now, I’m all interested :D

Categories: College, humour

A* Algorithm for 8/15 Puzzle

March 7, 2007 ravehanker Leave a comment

For an excellent explanation of the A* algorithm wrt to the 8 puzzle :

Visit the A* algorithm tutorial

For those who don’t know what the A* algorithm is about, A* is one of the best path-finding algorithms that uses heuristics to search faster.

More on that in Wikipedia
Incidentally, I also found out that Dijkstra’s algorithm is actually a special case of the A* algorithm.

Categories: links

Talk about optimistic!

March 1, 2007 ravehanker Leave a comment

Scott Adams never ceases to amuse me. I’ve started following his blog lately and this is a little post about optimism was just too good ignore

Read the Dilbert Blog

Categories: links

Emacs Vs Vim

February 25, 2007 ravehanker Leave a comment

This is the best Vim Vs Emacs article i’ve come across so far

Read the article here….

Categories: links