Thursday, January 31, 2008

F@!#$ed up, yet again

... yes, I just don't seem to get along with keeping up on these birthdays thing :(

At times I get sucked up so much in my own little(???) (stupid) world, that I soon become disconnected from reality. WTF! Aaggrrhhh!!!! I forgot my sweetest little brother's birthday yesterday. In past 12+ years there wasn't a single birthday of his in which we didn't have a blast. And how the f!@$ can I forget it, all the while he was waiting that I'll call, or even better land up in India and give him the pleasantest of surprises! But alas, stupid me, completely forgot the day and finally he couldn't hold up himself any more and buzzed me to remind that it's his birthday.

Sometimes, we do stupid things... in our quest to make our closest happy, we completely forget the present moment and the small things that matter a lot :( But thank God, he's more forgiving than I am and so he has forgiven me, at least for the moment! Love you bro, muuaahh!

How dumb :'( How Cheap :'( How stupid :'( How !@#$ed up :'( I trust I'll soon become a legend on this :(

see also: Have I lost my minds?

.

Thursday, January 24, 2008

KOrganizer and Google Calendar Sync

Yet once again, due to compatibility issues, when my Thunderbird upgraded, Lightning stopped working!!! !@#$ and as usual, lost my calendar :( I was kinda liking the newer version of lightning for it looked more polished and had more controls, until it crashed.

Last time Shaw (aka Amit, but I prefer Shaw!) suggested using korganizer, it looked sleek but I wanted something that can now sync my calendar with online service, say Google Calendar. So if something crashes, I don't loose all my data. I failed to find a decent tutorial on how to do that. Until, today, totally frustrated, I Googl'ed harder. But this time around, it wasn't hard to find one. After failed attempts to get sync working with tips from 4-5 tutorials and already invested half a day in it, just before retiring the tought, I picked up one more tutorial. Just 2 para of how to get it working. DAMN! This seems cool!

So here I go.... and BINGO! Got the damn thing working! This means, even if my local app crashes, I would still have my online-calendar safe! Or so I think!

For the curious souls, here's an extremely short version of the original tutorial I read.
  1. Download, un[tar|zip] GCALDaemon (requires JRE >= 1.5)
  2. Execute /whatever_path/standalone-start.sh (if you are going to use it regularly, better add it to your startup scripts)
  3. Find your private iCal URL by going to Google Calendar by clicking Settings -> Calendars -> Your Calendar and clicking the ICAL button at the bottom.
  4. Replace http://www.google.com with http://localhost:9090
  5. Create a new KOrganizer calendar by going to the Calendar tab, clicking the Add button, selecting "Calendar in Remote File,"
  6. Past the private URL in the "Download to" and "Upload to" fields
  7. Check Automatic Reload -> Regular Interval
  8. Check Automatic Save -> On Every Change

From here on, the 2 calendars will be in sync! But note that it might take a few minutes to get the changes synced. But unlike what original tutorial mentioned, I could get all adds/mods/dels from both, KOrganizer and Google Calendar, working and reflected correctly!

Phew! Wish I don't have to loose my calendar anymore now!

For more details, you are directed to read Calendaring: Google Calendar and KOrganizer

Wednesday, January 09, 2008

Book Reviews: Dromey, TPOP, Art of Intrusion, Broker and CLR

During this winter break, I had the privilege of reading some of the most excellent, legendary and exciting books. I have been putting off some of these books for many years now! That's the best part of coming back to academia: you get a chance to read all the books you couldn't in good old schooling days!

Each of these books deserve their own posts, and this post might not do the justice to their value. But I'm too lazy to do it right now.

0. How to Solve it by Computer, by R.G. Dromey

The story dates back to 1999, during my second year of Engineering at PICT. I had the privilege to be taught by one of the most brilliant and talented faculties at PICT, Ramprasad Joshi (aka RaJo).

I would rate him as the _only_ person in PICT who knew _how_ to write an algorithm. And the only person back then at PICT who knew Unix. Always smiling, unlike other geeks you would get to see, spending most of his non-teaching time in what was known as 'The PICT Server Room' with his terminal and an assorted collection of exotic books. Wish I had spent more time with him then :( What came with this affluent personality was a store-house of good advices. Very few people had the knack and patience of grasping and coming to terms with his abstract ideas, a common problem amongst geeks. But for me and my chaddi-buddy, Anna (aka Arun), he unknowingly changed the way we would program for the rest of our lives.

During one of the lectures he made a very inconspicuous comment about the worth of this book. But I didn't miss it. The title was exciting to me, so the very next day I got hold of this book, never to open it until a few days back! For almost a decade it was lying in my collection. With hopes of getting an opportunity to read it, I packed it along my choicest books to get along from India. It wasn't until I read few pages I realized that this is one of the most under-appreciated computer books! Am glad I used my precious space and weight on this book.

Lucid and fluent, the algorithms and design notes on each of them are just perfect and very understandable. Finding square root of a number with O(lg n) complexity, finding all the prime factors of a given number, generating primes, generating all permutations of a given set, searching sorting, etc. Though this book is NOT a premier on algorithms, it most certainly is one of the best books on how to solve a lot of common everyday problems with computer, aptly, as the title suggests! Now I wish I should have read this book long back. I'm almost halfway through and have every intention of going through the very last page.

Each section solves a commonly encountered problem, and doesn't just thrusts algorithms at you, and leave you to wonder why certain choices were made. Rather, Dromey, starts with the most obvious-n-naive (and often most inefficient) solutions. He then, carefully eliminates each of the inefficiencies, making the algorithm more efficient and resilient. After multiple iterations through pages, what you get in end is the most efficient way to solve a problem! And since you have improved it along the way, when asked, you can say *exactly* why you made certain choices!

The only other book that I ever liked for algorithms was Data Structures and Algorithms, by Aho, Ullman and Hopcroft. Many people find this book to be too esoteric and incomprehensible. To me, this is the most lucid, concise and precise books on algorithms. Another excellent book on algorithms is Computer Algorithms by Horowitz and Shani. Both recommended to me by my senior Taklu.



1. The Practice of Programming, by Brian W. Kernighan, Rob Pike
This book, more conveniently referred to as TPOP, is one of the books that my senior, Talku suggested reading, again maybe in 1999s. An avid reader, I bought this book too on the first opportunity. And it lay in my collection, with only few of its pages ever touched. It wasn't until now that I read past through most of this legendary book on design principles.

How to write programs, how NOT to write them, common pitfalls, debugging tips, testing, performance, interface design, etc. This book has it all in a nice small package. A must must must must read for anyone who makes his living by programming, irrespective of his platform and language. Some of the examples from the book are so freaking concise and beautifully implemented, that I went back to the first chapter and starting taking my own notes, as The Programming Pearls! (Naah, I haven't yet read Programming Pearls, by Jon Bentley)

2. Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Commonly referred to as CLR, I should have read this book during my under grad days. I repent not doing so :( Too mathematical at times, this is a mini-bible for algorithm fanatics: detailed design and thorough analysis of each of the algorithms, second only to Knuth's classic and most authoritative work on algorithms: TAOCP.







3. The Art of Intrusion, by Kevin Mitnick
Getting down to lesser technically oriented books... This is a wonderful one of it's kind novel-like compilation of real world exploits that the real hackers from around the world have confided in to Mitnick. The best part about this book is that to enjoy it you don't have to be a computer geek. For most part, any layman can read it to understand what the heck is hacking all about, after all! For the technically oriented, it gives us an insight into the dark and elusive world of an art known as intrusion! A real page turner.


4. The Broker, by John Grisham
I took very long time to get through it, only because I started in middle of the semester. But it's a real page turner, and keeps you on toes about what's going to happen next. I wouldn't rate it above The Partner, but The Broker is an amazing novel nonetheless.










Damn! I wish I had read all of these books back in my engineering (under grad) days. It would have definitely helped me. So, if you get the chance, without missing a beat, jump on! Definitely worth all the time (and probably money) you would invest. I insist you buy these books, that way you would be more pressed to swift through them at least once. At which point they will definitely become irresistible!

Tuesday, January 01, 2008

New year bash!

A little humour for my technically oriented readers...
Situation: Atul talking to Vish...