Saturday, April 10, 2010

What I am studying these days

So this one's about some key stuff that I am studying these days. I think I will maybe try to write some short posts summarizing some very specific stuff. I plan to write very brief summary of topics in these things (statistics, machine learning, multi-threaded programming, algorithms), as you have better sources than me to learn them. More importantly, I would like to write my experiences and things that occurred to me during my study.

I have been studying the following stuff lately :

  • Statistics : My aim is to gain a good solid understanding of machine learning (aka statistical inference). I am educating myself these days in the basics of statistics (and probability, I plan to write something soon in next posts on this). More importantly, I am trying to practice the problems and get a good intuitive feeling. I guess its pointless to go for advanced statistical methods and models, unless you have a good grounding in the basics. I am reading from the awesome book named Statistics, by Freedman, Pisani and Purves. This book doesn't have a lot of equations and that kind of stuff but its an awesome book in that it teaches you to think like a good statistician. Lots of case studies, interesting problems and nice cartoons :)

  • Concurrent Programming : using Java, that is. Now, I have read a lot of stuff how Java is not so good for it, but I still think that Java has one of the best support for concurrent programming. I am studying from two books : Java Concurrency in Practice (Doug Lea, Josh Bloch et al) and The Art of Multiprocessor Programming (Herlihy, Shavit). JCIP is a book that builds upon the framework supplied by Java while TAOMP also goes into the very core of how this framework is built (how these building blocks and synchronization primitives are built themselves, the algorithms and data structures). I try to code both examples showing the correct way and those showing flawed methods, and see the truth for myself. It really helps to clear things up, and build a good understanding. I am trying to get as good as I can as the future is going to be based on multi-core and not many programmers understand it enough to develop good multi-threaded software.

  • Algorithms : Well, this one's the usual thing but you need to keep revising, practicing and learning new ones. It always helps to be good at algorithms. Sometimes, you can suddenly recognize a situation that is perfectly fine to apply certain algorithm, if you keep in touch with algorithms. It feels really satisfying when you can solve something like that, and also inspires your co-workers to do some of their own study. Spread the word !

That's it for now. I hope to come back soon and write about some interesting cool stuff.

We need better managers in Indian software industry

I decided to keep writing on my blog and write frequently. However, its been really difficult to stick to that decision because of the constant and huge amount of work that keeps coming up and is definitely on a higher priority. I will keep trying though :)

One of the things that I have been fed up with in the past few months is how it seems like this "disease" is spread almost in the whole of Indian software industry. The disease is : bad managers.

Some of the traits I can gather about these managers are :

  • they have lost touch with programming and hence lost respect among developers. In more worse situations, they are complete 'fuck-ups' with really poor programming skills. And still they choose to show off their "knowledge" at times ! seriously, you bastard !

  • they keep using these buzzwords, business jargon too much. I am fine with the fact that you choose good words to express yourself, but if you overdo it you sound like an idiot, show-offish guy. And the developers get pissed off and the natural reaction is "Fuck off you idiot! you are screwing my precious time".

  • they don't understand that they need to trust good developers and encourage them, and moreover prevent less skilled ones coming into the team.

  • they are too servile to foreign colleagues. This is so disgusting ! I mean c'mon you assholes, we are a free nation now, we work for them, we aren't their slaves !

I feel a lot of this is because of the way Indian software has been evolving since its inception. We started out as a cheap outsourcing destination, then services industry and now there are some people bringing in the product development aspect. As we have more and more product development and skilled programmers rise up the chain, we can expect things to change. I am not very sure about this but I hope it happens :)

Saturday, December 19, 2009

Finding Clojure

For the past week I have started learning Clojure. I have read quite a few articles talking about how Lisp is a language every programmer should learn, notably the articles by Paul Graham. For those of you who don't know, Clojure in a nutshell is Lisp on top of JVM.

I recently read a great post, which lists out 10 programming languages worth checking out. I do most of my work in Java these days and there are areas where I do believe that Java sucks. I am always happy to learn a new programming language, never mind the harsh reality being the lack of time. I had been mulling over Ruby and Scala, but then I found Clojure and also noticed how some cool startups like FlightCaster have been using it.

Now since Clojure is built on top of JVM, you have access to Java and all kinds of Java libraries and frameworks. This is a very good thing, as Java is one of those languages that have libraries and frameworks for almost anything you would want to do.

The other thing I like about Clojure is that the code is concise, shorter and simpler. A very good example illustrated in the book Programming Clojure by Stuart Holloway, was Java code for testing a blank string and the equivalent Clojure code. Less code means less to test and debug.

Clojure has lots to offer as they say ... functional programming, Software Transactional Memory(this one is really interesting, a new way to handle concurrency instead of the traditional locking approach), macros etc. I will be writing more as I keep on learning. Till then, happy hacking !

Tuesday, November 3, 2009

Back to Blogging

Its been a long time since I wrote anything here. Lots of things that prevented me from writing anything, like my laziness :), workload from workplace and my own stuff and newfound love with Facebook and Twitter.

So I have decided now that I will try to put in short posts, at a more frequent rate. However, I will also write some elaborate posts when I feel like and I have the time for it. If you come to think about it, there are so many things you want to write about, but its more important to get into them rather than necessarily find the time to write about them.

This is what I am into now these days.

Technology/Programming : Hadoop, Apache Mahout, CouchDB, Tapestry, Bixo, java.util.concurrent :)

Music : Lots of trance music lately, with a bit of classical. Looking for a good blues collection. Also planning upon listening a couple of Hindustaani classical ragas more intently and learning their intricacies. Found some good ear training software too.

Fitness : Started gymming today with a new determination to get into shape as soon as possible, long Diwali break broke the rhythm and ate upon past improvements :(

Financial Clarity : Planning to get familiar with basics of financial instruments and share market and assess my financial situation with plans for future.

Whoa ! big list that was ... but yes writing it out is a good way to organize thought processes. Well, time to conclude and come back with a new post later this week !

Saturday, August 9, 2008

Blogging from Manhattan through a MacBook !

Its been almost five months since I posted anything on my blog. I have been through a wide range of experiences in this period, from extremely bitter to really wonderful and pleasant. I hope to be able to put in articles more consistently now, as things seem to be settling down now.

Its been 23 days since I set my foot on the American soil. I am writing this post currently from my apartment in Manhattan, New York and my happiness is doubled by the fact that I am using a MacBook ! ... I have long awaited to understand the loyalty of Mac fans and though I am very new to the fraternity (just a week), I am beginning to see why is it so. I have been to quite a few places in New York now and I have walked a lot here, which is a big change from Bangalore. This place is a sort of jungle of skyscrapers :) ... with so many people moving both above and below the roads. New York certainly deserves to be called one of the greatest cities of the world if not the greatest, which it perhaps is at present. There is so much energy moving around in this city, a place where people are living to get something done. Manhattan is a very safe place too, you can see girls walking around in streets at midnight. There are "thelaas" like we have in Indian cities, just more sophisticated. And you can see a lot of rickshaws at Times Square and in Central Park, just more sophisticated :) designer rickshaws infact ! ... a bicycle here is something which sets you apart from the crowd, just the reverse of what we have in India.

There are so many observations which I want to put down, but it will take many posts so I will keep them for later posts.

I intend to put some interesting stuff regarding Linux memory management, compilers and some ideas I have. The thing is that I want to put stuff that's my own hack (as I would like to call it) rather than something which you can find on technology sites or Wikipedia. I can't do it today but I hope I can start with something soon.

Its been a very happy feeling to return back to my blog and I hope to do better this time :)

Sunday, March 16, 2008

Driver, where you taking us ?

Its a special day for me, my birthday :) ... nothing much happened today except I was able to pray in the famous Dakshineshwar temple here in Kolkata, after a long, slow walk from outside the temple premises to inside. It was a surprise for me as I had expected it to be an easy-going affair, I would be done in about half an hour, I had thought ... it took more than 2 hours, which I am thankful for, as it could have been more.

So, here I am, 26 years of my life complete today and I am in a strange state. I feel happy, I feel sad, I feel confused, hopeful and sometimes I feel blank. It seems that this has been triggered because of my thoughtful, introspective mood that I entered yesterday night. There are so many things I have thought about since. Family, friends, studies, career ... And each of these topics makes me feel a lot of things as I have said earlier ... happy, sad, confused, hopeful, blank.

I am not however, going to discuss (most of) my thoughts here. I rather thought of writing out some of the thoughts that I have for my blog though :)

Well, this is a summary of what I think I would do with my blog this year :
1) I feel like I need to write more articles that are geek-ish ;) ... what I mean to say is that, I want to write more articles that are not of a philosophical/intellectual mode ... I would like to put more concrete articles this year.
2) I would like to put a lot of small math posts that would be relatively easier for people to grasp and fun too.
3) As for programming, I would like to pick specific language features from those I know and discuss what I know and maybe that could help some new people ... maybe also invite the wrath of experts :D ... but I am ready for that, that's the way to grow !
4) Put more material on data structures as used in Linux, material on Linux scheduler and Linux memory management.
5) Some algorithms that are beautiful and less-known.
6) Cryptography - Posts introducing readers to basics of cryptography, encryption schemes, some practical and wonderful aspects of cryptography.

Hope, I can do justice to this list this year. Happy blogging to all of you and happy birthday to me ;-)

Tuesday, March 11, 2008

A whining post

Missed February 2008 in my blogging career, busy with exams and other stuff. I have three to four topics on which I would love to write something as soon as possible. However, it looks like even March is going to be unsparing. So, with not much time at hand, I thought of writing a post where I would list many of my recent dislikes (it feels so good to criticize ;) ... and hence I call this a whining post :)

Well, here they are in no particular order or importance :

1) Indian cricket team has created history in Australia with their sensational 2-0 thrashing of Australia in the triangular series finals. Moreover, they won the historic test in Perth which had become a holy grail of sorts for the Australians. And, the fact that India did this was even more breathtaking. The sad part is India could have won the test series also, had it not been some 'obnoxious umpiring' in the Sydney test. What irritates me now is the attitude of Indian media and some Indian fans. There are still a lot of people who dismiss Indian victory as fluke ... c'mon now, what do you want ? Indian team came back after a major mental setback in the Sydney test to beat Australia, in nowhere else but Perth ! isn't that awesome ? Beating world champs in ODI versions 2-0 in triangular series finals emphasized the domination of Australia by India. The drama by Indian media is sickening, ridiculous, irritating, over-hyped, emotionally exploiting and what not ... the post-victory shows on leading news channels like Aaj Tak and Star News was senseless. They were blowing things out of proportion, I mean let the team relax, don't play with the sentiments of people for your ratings ... these same channels will not leave a stone unturned the next time Dhoni and gang fail ... the way they projected the clash between Harbhajan and Symonds, Hayden was shameful ... yes, Australians are bad losers but you got to be sensible with national broadcasts. The Indian media looks to me like a bunch of a**holes who flush the ethics with their shit.

2) I love Ubuntu, this is the most satisfying Linux distro I've laid my hands upon (well, definitely some people won't agree but that's ok with me, you got your reasons to stick with your distro, have fun). However, there are somethings I would like to be improved. Firstly, and I am talking about Ubuntu 7.04, why is the shutdown so ugly ? On Windows XP, the application windows get closed one by one in a clean manner, the shutdown on Ubuntu is like a mad rush to wipe out the window graphics from the screen (you get white rectangles all overlapping, some colours too and then suddenly to the black screen, the sound is broken and sometimes there is no sound !). I have done a bit of searching and come across some links that I am not sure are talking about the same problem ... I would post about this if I can get it fixed. Secondly, why isn't there a group by name or group by type option in the Nautilus window manager in GNOME (even KDE doesn't have it) ... this is a comparison to Windows XP but that feature helps to make the folder view look more organized.

3) There's this hand gesture that I see all the time when I am at some rock band show (be it in Bangalore or Kolkata) that really irritates me. A lot of young people do it, this is done basically by closing your two fingers just before the little finger along with the thumb, so that the index and little finger are pointing forward ... it's meant to show your appreciation to the band, but I intuitively feel that most of these people are bullshitting, they don't even understand the music. I am not a big guru of music but I would rather stay calm and clap when I have enjoyed some good music from the band ... it makes more sense because you are more likely to be awed and happy by a good/excellent performance rather than 'yo man'ing the performance ;) ... and I find more support for my theory because you can find these people behaving in the same fashion over a crap performance.

4) The obsession of newspapers and media with politics and celebrities is disgusting ... what do millions of people who are working hard for their meals every day care about Britney Spears' baldness, Paris Hilton's exploits or Kareena-Saif romance ? Go to hell ... I wish there would be a lightning some day that would crack on each of these media people and these narcissistic celebrities who occupy unnecessary attention.

I feel like I would spit out a lot more whining if I continue ... so I am cutting it short now and switching to work.