Friday, January 30, 2009

Announcing www.arnab-deka.com!

So I finally agreed to all the people/articles and am moving from blogger . Taking that opportunity, I got my own domain. So my blog now on will be hosted on my own site!

So now on I won't be posting anymore here - although I'll leave the existing ones here (and I have imported all of them - so you can see them in my site too).

Here it is - www.arnab-deka.com (bye bye blogger - will miss you). Go over to my site to read a blog about why - http://www.arnab-deka.com/posts/2009/01/so-this-is-my-new-blog (and feel freeto quiz me why I moved)


Thursday, December 25, 2008

Missing the spam from me?

I love feeding on bits of information. The world is full of interesting things and the Internet has a thousand ways of feeding you all that.

If you are not this type of a person - and like to live in your own shell (nothing bad with that) - you can stop reading now - and use your time well doing something else. Like living in your own shell.

Back to the topic - I do skim most of the info dished out at me. Some I keep in my "hmmm" folder of my brain (you guessed it - doesn't stick long), some I delicious-mark. The rest are the really interesting ones - I find it hard to not share with people I know.

Like this - http://bit.ly/17q25 written by @zen_habits
(this article is on how to use twitter well - I have a truckload, or maybe a trainload of people I know, who tell me - "What is twitter anyway? Just another Social Media Platform? Why would I want to go to yet another site? Is Facebook/Orkut/MySpace/insert-your-fav-social-media-network not enough already?" This is an
excellent article on why and how twitter.)

How can I not make my friends read this? :-)

Now if it was 3 months ago, I would have snapped the link up in an e-mail and sent it to all of you, hoping that you'll also read it and like it and apply it. This group of people would include at least all interesting folks I know in India, NY and Seattle - that's a lot of people right? And most probably won't even read it (yeah I know - it's ok)

No more - I just twit it now - with the knowledge that whoever wants to eat info-blurbs like I do will follow me and read it.

That's why I urge you my friends/social-beings/netizens, give the article above a read - here it is again for effect -
http://bit.ly/17q25

If you do get convinced that twitter is a big idea, can be useful to you and actually help in reducing spam, get an account fast.

You can follow me if you like -
http://twitter.com/arnab_deka
Or check out the people I follow - there are some interesting folks - and follow them instead.

And finally, here are some interesting/info on why/how etc. of twitter: http://delicious.com/arnab.deka/twitter

If you are still not convinced and take nothing else from this blog, take this back - you can rest assured that you'll get spam from one less person now on.

Wednesday, December 24, 2008

On RubyRef - Ruby Doc on iPhone

Just learnt from @IndianGuru's tweet about RubyRef - it's an iPhone app for Ruby Doc.

Sound like a nice idea - however redundancy was already a thought by the time I went to the Appstore to check it out. However I am spoilt by free iPhone app already - and seeing a tag of $0.99 I didn't care to even try it. Here's why -

1) There's hardly any time I am coding Ruby/Rails I am not online. And there's really great free doc (rubybrain, railsbrain, and the excellent one stop shop gotapi). When I have these at a keypress away, why will I turn to the iPhone?

2) I find myself copy-pasting most of the time I am looking up some obsecure Ruby functionality. Agreed, Ruby makes it concise. It's not like you have to a) code up an Iterator, b) have a while loop to go thru it c) and finally iterate, like in some other languages - Ruby is good at being concise. But still, you gotta cut-paste sometimes right?

3) I find myself working with different Ruby/Rails versions all the time. Ruby 1.8.7/Rails 2.2 at home, Ruby 1.8.6/Rails 1.2 at work (don't get it started on why) - so I find rubybrain/railsbrain very useful for this purpose. I haven't tried RubyRef yet - but looking at the screenshots it probably supports one version. Especially with Rails evolving all the time, we definitely need something like that

4) I haven't talked about ri/irb combo yet - I find them very useful for Ruby docs. Right in the shell, no context switch to move to the browser/phone. Even if you don't use them, having a downloaded copy of the doc (from rubybrain for example) will probably be much more easier to refer to than the iPhone.

I mean, I don't see myself coding Ruby/Rails without a computer (at least now). As long as I have a computer won't ri/irb/rubybrain/downloaded-doc be easier to refer than the iPhone?

I had all the intentions of trying the app out - but given so many good, free alternatives I don't think I'll try a 99 cent app.

What about you?

A take on 2008...

So I have not blogged for the 2-3 months now... That consistently keeps going the other way of my resolution to blog more frequently. Twitter has not helped either - http://twitter.com/arnab_deka

I find that twitter adequately satisfies my urge to burp out bits of info effectively... and thousands of other excuses... So lets stop that thread right there and concentrate on how the year was instead.

At the start of the year, I had just moved into a new city. Another 2000-3000 miles away from home. And at least another 1500 miles away from anyone I could call a friend with an honest face (so that takes out Social Networking Online pals). Agreed I knew Diganta (from college) here - and he was a cool guy to hang with. But he lived in Bellevue (10 miles from Seattle) - I did not have a car and we probably met once in 2 weeks. And he moved back to India in Feb! I had moved from the safety and security of an Indian company into an entirely different kind of organization (I moved from Infosys to Amazon.com in Dec/Jan).

Looking back - it wasn't a such a bad decision after all -

1) By now I have made a group of good friends - ok - you can't make college buddies after starting work - but these are a cool bunch of guys. Apart from other things, playing cricket with this lot will be a memory to treasure. The feeling of doing consistently good in a sport is cool (our team, Eagles, finished 3rd in the Cricket league this year - and got promoted to the next division for the next season starting in Feb. And (to a bit of my surprize) I did really well!

2) No regrets about my job - actually with each passing day, I am liking it more and more. I think Amazon and the bunch of incredible enginners have opened me up to a new world. I always knew I loved tech - but not how much. It is definitely an experience to work in such an energetic company and work with such geeky (no offense at all) brilliant people.

3) Got exposed to Ruby! For me, getting exposed to Ruby was by pure chance. The group that I joined was heavily into Ruby and was probably in a handful of Ruby-pro teams in the company at that time. I was open to experiencing a new technology while joining but did not know that it will change how I think about programming. Ruby is now mainstream and by no means I am an early adopter - but I am thankful that I joined the boat early. I was thrilled when I had started to play with Java and all the cool stuff with it (Unit testing, Continous build/integration etc.) - but Ruby has fundamentally changed the way I think about Programming. It is a joy for me now - I think I am a better coder now and I am making the right moves in my career.

4) And most of all - I met this beautiful person - Ujwala. If there is such a thing, she definitely fits me! And the happiness is doubled when she also gives back as much as you do... (We are getting married in summer'09)

I could probably come up with a few other things - but these are the highlights. So, all in all, not a bad year at all. In fact, it could be the turning point of my career/life - time will tell when I revisit this in 5/10/15 years from now!

So -signing off on 2008 for now!

Friday, September 26, 2008

Grand Coulee Dam Trip

Update on 12/24 - finally updated the photos. They have come out really well!
Here's one of the sunset - http://tinyurl.com/ArnabPicsSunsetGC. And another one of the highway along the hauntingly beautiful landscape - http://tinyurl.com/ArnabHighwayGC.

View the full smugmug gallery: http://tinyurl.com/ArnabAlbumGC




My Maa is here for a month. Reached here this week.

This weekend we (Maa, Ujwala and me) are off to Grand Coulee Dam - the biggest concrete dam in North America - generates about 6500 Mega Watts - the highest for any dam in the world.

The drive from Seattle is beautiful - it passes through the Seattle hills/lakes, the Snoqualmie area (water falls, snow-capped mountains and passes), beautiful farm-lands and then on to the arid eastern Washinton area. The route follows the Columbia river and there are some really amazing viewpoints over the gorges along the way. There is a sound and laser show on the dam every evening from 8:30 PM (May-September) - the lasers use the dam as the screen! It is supposedly the largest such sound and light show in the world! The Columbia rivers history is depicted - so all that this weekend.

and the trip weather looks good: weatherbonk link

Friday, September 12, 2008

iPhone 2.1 upgrade crashes!


Now I seriously didn't expect this from Apple. I was so-waiting for the 2.1 update to iPhone - and iTunes couldn't install it or me! :-)

and look at the awesome error message!

Go Apple!


Update after fighting for 20 min or so:
I did a restart of Windows and iTunes - still got the same error.

iTunes documentation says I might need to upgrade my iTunes. So I go and click Check for latest version - and hey I am already on the latest one (iTunes 8).

Then I tried to upgrade iPhone to 2.1 again - and this time it worked. I have to agree to one of my colleagues - is Apple going the Microsoft way???

Saturday, September 6, 2008

Mariners vs Yankees at Safeco field


Went to the Mariners game vs the Yankees last night. Was at Safeco Field, right next to my office.

It was a win-win for me any way, cause I love the Yankees and cause of the NY connection; and of course Mariners are from Seattle! Mariners don't win often (and this season had not won any yet) - however they command a lot of local support.

Matter of fact, A-Rod was getting booed big time (A-Rod used to play at the start of his career with the Mariners). I was on the handful side of the Yankees supporters, with a Yanks t-shirt and all...

And guess what - Mariners won 3-1... Their yound pitcher Morrow was awesome... read more here.

On the whole - loved it. The atmosphere was awesome... and so was the view of Seattle as a backdrop against the ballpark - with the sunset and everything.

Here are a couple of pics, one before sunset and one at night...

Bumbershoot'08


Bumbershoot is Seattle's Arts and Music festival. It takes place during the Labor Day weekend (September first weekend usually) every year at the Seattle Center.

Me and Ujwala had gone for day-2, last Sunday... Quite a few shows on. We saw School of Rock (Paul Green) - really amazing how great kids are! School kids rocking with electric guitars, drums and amazing powerful vocals. Loved it!

Heard Paramore from the sidelines and saw a few other things as well.

The other highlight was Offspring - I always wanted to go to one of their concerts. It was fast and good! They even called the fest much bigger than Bumbershoot - it was "BumberSHIT" :-)

Here's a pic from the Offspring concert...

Sunday, August 24, 2008

Some pics of my cricket team Eagles

taken with the new iPhone! After the win this saturday.

League details here: http://arcl.org/Pages/UI/TeamStats.aspx?team_id=1235&league_id=8&season_id=13

Saturday, August 23, 2008

iPhone 3G!!!

yay! yay! yay!

My T-mobile contract got over end of July and I finally gave in to the temptation - I got the iPhone 3G today!!! :-) (yes in spite of all the bad things ppl are saying about the battery and Exchange integration). I get 14 days to return it so why not try it!

Only two problems till now:

1) Yahoo mail won't sync! I figured it was the non alphanumeric characters in my password! So apple could not figure out this advanced piece o technology - people do have passwords with non-alphanumeric characters in them. Well it's only been, umm, 20 years since this "technology" started! :-)

2) While setting up the phone, it crashed my OS twice. A-ha - Windows XP. So it's a classic case of Microsoft v. Apple :-) And apple slam-dunked you twice Windows! :-)

But other than that, I love the phone!

Thursday, July 31, 2008

Weather Bonk

So I want to drive from Seattle to NYC. No really I want to do that once. Coast to coast.
Well I'll leave that dream to come true in another blog. It's a different topic I wanna talk about right now.

So I wanna start at 6 PM from Seattle, let Google Maps (or some other maps) decide the way for me, AND, AND tell me hows the weather gonna be all the along the way.

Now look at this rad site: http://weatherbonk.com/weather/routeWeather.jsp?
Start from Seattle, at 6 PM today, and reach NYC in 3 days. And it tells me how the weather's gonna be along the way. Isn't that cool?

And there are loads of other options! Cool. Now check out their home page: http://weatherbonk.com
I know all this is there in weather.com too but, this is like, presenting all the relevant data in the relevant manner!

Wednesday, July 30, 2008

Burma Shave Slogans

Don't stick
Your elbow
Out so far
It might go home
In another car.

This is a Burma Shave Slogan. So it this:

Passing cars,
When you can't see,
May get you,
A glimpse,
Of eternity.

I was reading Head First HTML and CSS - I really like the presentation style of Head First books. It's fun and their way really works (with me at the least).

And I came across these interesting things called Burma Shave Signs. Very interesting...

Burma Shave was a company that made brushless shaving cream in the 1920s and 30s. They used to advertise their products with roadside signs and that turned out to be very popular. There would be a group of 4-6 signs one after the other on the roadside, each with just one line from a slogan. The last sign would almost always be the name of their product, Burma Shave.

At one point, they had 7,000 of these signs on the roads throughout the US. Now most are gone, but the book says there are still a few left. Maybe I can see one before I leave the US...

Now, I had seen these kinda signs in ads on TV, in skits in school etc. But never knew that they originated from this Burma Shave cream! :-)

It's funny right? And to read this stuff in a technical book is even more fun (the book even explains in a note what these signs are)

Anyway, do explore more. They have funny ones there:

Wikipedia on Burma Shave: http://en.wikipedia.org/wiki/Burma-Shave
Another page that shows how it looks like: http://www.fiftiesweb.com/burma.htm

Monday, July 28, 2008

Got API

I used the Sun Java API Docs online when I used to code in Java: http://java.sun.com/javase/6/docs/api/

And the for Ruby, Ruby Brain is a nice place - http://www.rubybrain.com/ and http://www.railsbrain.com/

Even for DB, the MySQL API docs are good: http://dev.mysql.com/doc/refman/5.1/en/index.html

But today I was introduced to Got API!
You get most of the stuff you are looking for, all in one place. They have CSS/XML/Javascript, even the famous AJAX libraries, C++, Java, Ruby/Rails... you name it! And a nice interface too.

Check it out: http://www.gotapi.com

Infra Recorder

Infra Recorder is a free, open-source (GPL) CD/DVD burning app (sadly, only on Windows).
http://infrarecorder.sourceforge.net

I haven’t tried burning DVDs but CDs work just fine.

(BTW, I came across this while I was downloading the Ubuntu live disk)

Friday, July 18, 2008

Ruby private class method

The follwing is just so I can remember it... You need not read all this.

In Java, if you need a class whose constructor is private - so you can’t instantiate it from anywhere else (.but not a Singleton too) , you'd do:

public class AClass {
private int a;
private AClass(int a){
super();
this.a = a;
}
}

In Ruby, it's a bit different. The why will come later (dynamism of Ruby), but just hiding the initialize method is not enough. You can still create an object coz you are actually calling the new method:
irb(main):001:0> class AClass
irb(main):002:1> attr_reader :a
irb(main):003:1> private
irb(main):004:1> def initialize(a)
irb(main):005:2> @a = a
irb(main):006:2> end
irb(main):007:1> def some_other_method
irb(main):008:2> "ha"
irb(main):009:2> end
irb(main):010:1> end
=> nil
irb(main):011:0> obj = AClass.new(100)
=> #
irb(main):012:0> obj.a
=> 100
irb(main):013:0> obj.some_other_method
NoMethodError: private method `some_other_method' called for #
from (irb):13
from :0
irb(main):014:0>


You'd have to hide the new method:

class AClass
attr_reader :a
def initialize(a)
@a = a
end
def self.test
"test"
end
private_class_method :test
end

puts AClass.test


that shows:
test.rb:12: private method `test' called for AClass:Class (NoMethodError)

Thursday, July 17, 2008

zembly super!!!

Ok Ok Ok... I've not been posting regularly. Mostly a fault of companies like BMW, Nintendo and Amazon...

Yeah, so since my last blog, I got a BMW 3-series, an Amazon Kindle (as a gift, that too!) and a Wii. So life's been busy... driving, reading new stuff and playing fun games! Oh and the introduction of a new person... who keeps me, let's say, engaged? :-)

So all that and stuff like what-I'm-going-to-write-about now is basically what is keeping me from writing more blogs... Believe me, I hardly get to stop a think a moment nowadays... Time's just flying... what with nice increase in office work too. Thank God I like it - I would have stopped coming to office otherwise. No, really!

So I have turned to micro-blogging... Don't get me worng, I love to write here... but where's the time? So I turned to twitter recently. If you haven't seen that yet - try it out - it's the latest fad. Like sms-ing and blogging... It's called Twitting! I mean it - go to twitter right now and see the demo video. It's cool... and as most people believe, it's the future... of smsing/blogging/mailing all-in-one.

So if you still wanna see my updates - whatever handful you are anyway - get on to twitter and find me (arnab_deka) and follow me. I'll still continue to write blogs, but they will be rare - like this.

So today I came across this new shiny thing called zembly.

I think I blogged about : http://heroku.com/ The first online IDE I saw... but that won't interest most of you as it was only for RubyOnRails.

Look at the new zembly: http://zembly.com/

Visual-coding in Javascript in a nice IDE (read Visual Studio, but much nicer, AJAXy and with lots less errors. AND FREE!).

and the IDE is online! Get APIs for free (like, from, Yahoo, Google, Amazon, Flickr etc.) and publish your WebService/idget/app for free! Quick and easy...

Here's a Hello-world type WebService I created (I should say it created for me - it was so damn easy):
http://zembly.com/things/a7085d0638fb4ec799379ab499eefe71;exec?

and put your name in and see:
http://zembly.com/things/a7085d0638fb4ec799379ab499eefe71;exec?name=[your%20name%20here]

Never thought it would be so easy to craete a web-service! :-)

BTW, they are open for beta users now - check it out, it's nice...

Tuesday, April 1, 2008

Awesome gmail!

Now you'll really know why love gmail so much - send mails from your past! What a rad concept!
Check it out here.


And hey this is my first post in April'08!

Monday, March 31, 2008

Xobni

You guys know my love for gmail - I just love the cool features it gives me - shortcuts, awesome search features and the like - I love doing things fast and without ever touching the mouse. But I do use Outlook in office, let's say for the lack of a better or maybe more popular e-mail client? I tried some Linux clients for some time but I am so used to Outlook that I will have to wait for Gmail's corporate adoption before I switch.

I agree outlook is an awesome app and very popular at that, but like most Microsoft products, it is intended for the layman, not the developer. Just as Firefox (with it's addons and the hundreds of GreaseMonkey free scripts) compares to IE! You just can't do things fast enough without these things. And Dialog Boxes (with questions like "Do you REALLY want to exit?" I mean, come on!) or views to navigate which you must use the mouse are common.

But to come to the topic of this post, Xobni does not add these things to Outlook (and so these things still remain on my wish-list for Outlook). It does something else - Just check out the awesome demo video the Xobni folks have created.

I bet you'll love it. Yeah it probably does not make Outlook anymore developer friendly (and that probably will never happen anyway) - but it does make it cool! It brings the elements of social networking to Outlook (among other things). And when you get to work/play with fun/cool things you are happier (and so more productive).

The whole point is, it looks like it can make Outlook fun. Oh wait, that's not the whole point, wait, wait, wait!

I usual have good motivating factors for writing blogs, and most of the time they are selfless. You agree? So once in a blue moon I am allowed to do something for myself? Right, read on.

Xobni is in beta right now and is invite-only. You can sign up and you will _eventually_ (you know how eventually usually goes with free, cool and fun?) get it. Or you can advertise it and if enough (that you figure out) people use your advertising to get to Xobni you get it faster.

Yeah that's the whole deal - So go ahead. I have put a Xobni widget right there on the right side of my blog (and that too on top of "About me") . Please click it and add yourself to the beta list. "Show me some love", as they say :-)

The faster you do it, the faster I get to try it - so help me out. And remember if you get onto the Xobni beta list any other way (other than clicking my idget and signing up) I get nada! So please, guys.

And that's the whole point of this blog :-)

And yeah in case you still have not figured it out, Xobni is... you guessed it now, Inbox reversed!

Sunday, March 23, 2008

An ultimate Web 2.0 experience


So I had lots of ideas for Friday night - called up lots of people to accompany me into movie, tennis or just-going-somewhere. But no one was free - everyone wanted to do either Saturday and Sunday - which is fine.

So I settled down with a nice movie. And I felt like pizza - last time I had was in New York! Long time...

Checked out Domino's and Pizza Hut (I usually like Pizza Hut better - and that they serve Pepsi helps - my close friends know I'd pick Pepsi over Coke any day - although now I hardly have any of them!). But soon figured out that Pizza Hut cannot deliver at my place - which is odd, considering I am smack in the middle of Seattle downtown! Anyway saw that Domino's did.

And then the cool experience started. Just use their Web order process once - even if you are not a fan of Pizzas!

Ordering was cool! You could edit your pizza in all sorts of cool ways (add this topping only to l/right/all sides, add that too etc.) Nice!

But the best part was after ordering - Just after I confirmed the order a "Tracker" dashboard appeared. And it showed five stages - Order Placed, Prep, Bake, Box and Delivery.

Each stage had a width proportonate to the time it would take (estimated). And as soon as a stage is done it turns Green, the next stage starts blinking and a status message appears at the bottom saying something like "Matthew put your pizza into the oven at 9:03 PM"


Cool ha? Don't believe me - see the attached screen shots - I was so amazed I had to take the screen shots!

Of course there was a glitch with it - after the 4th stage it went back to the 3rd! And I was not so worried about the pizza as I was helping out these guys carry this super idea. So I called them up (and the direct number just flashes on screen - no searching for it) and let them know.

Definitely one of the best web experiences I'hve had in the recent times. Now that I work in a web-based company I've started noticing these things and have become a good netizen!

So this definitely counts among the better Web 2.0 experiences I've had recently. Others include Google Map's public transport times. So you just enter the Source and the Destination (which I have got stored) and click the "take public transport" - voila - it shows you for the current time 3 options for you to take. Like go to this bus stop (walk 2 min) take the bus # 522 at 8:32 PM and get down at this stop (at 8:43 PM), walk home (1 min) and you are done!

And Amazon's "we'll-call-you-back" thing! Everyone whose tried calling customer care anywhere knows how much a pain it is to wait for someone to answer (after all the music or the mech voices _heliping_ you out). So you go to Amazon's customer care page - and they'll say - ok you can call us here at this number (and then identify yourself and give the customer care dude your 12-digit Order #). Or give us a number (or most of the time just select it from a drop down) and we'll call you back! Right now.

And I was amazed - my phone started ringing the moment I clicked "call me" - and since I had used that feature the dude knew who I was and which order I was talking about. Less hassle everyone!

Things like these make me feel good about what I do - it's exciting to be part of the Web 2.0 experience and specially when you are a part of making it!

Which reminds me - voting for the Best 100 Web 2.0 apps is on (alas I did not see Domino's there) - but you can vote for your best apps. It ends March 31st - so go do it now!

Thursday, March 20, 2008

An interesting talk I attended today - Consensus in distributed systems

Went to an incredible talk today and was so damn impressed with the presentation and the concepts behind. So wanted to share it with you...

Basically the talk was on Consensus among Distributed Systems. So if you have a Master DB and two Slaves - and if the master dies, how do you choose which Slave to promote, automatically?

Or consider you have some sort of a pool of managers who decide what to do and a bigger pool of workers who do what the managers say. Let's say a manager dies - how do you choose which worker to promote to a manager? Because all of them might be equally eligible to get promoted (we are talking about systems here not humans).

The simple way is - go for the majority. So every worker votes and one of them is elected. But then take in some factors such as message losses, network disturbance and partial network failure - now your vote might not have been so accurate after all ha?

Good Robust systems built to be successful must be fault-tolerant and self-healing. It has to take care of its own - if some process fails, it has to figure out a way to fix it by itself - no human intervention - coz that takes time and money - which is not always easy or affordable. Now if it's just one system you could somehow make it think of these situations. But make a distributed system where each worker has its own mind! The group (distributed system) has to come to _correct_ decision somehow right?

To build such (distributed) systems we need to be able to solve this problem of consensus. A few people have started or already have implemented this (including Google Chubby, Microsoft Autopilot, Amazon S3 etc.)


So this talk was about all this - must say it was done in a very lively manner - with a skit showing the different parts of the system, the network (where volunteers passed messages and took parts of the system - some _crashed_ too ). Was fun!


The idea stems from ancient ages and has been modeled to meet the requirements we have today. It's called Paxos Protocol. Do read up on it - very interesting... You will definitely have nothing but appreciation for the great minds that created the mathematical model in those ancient times and the other great minds who translated it to modern day distributed systems and the other minds who have/are implementing these ideas!

Here are some links: