It has happened to every vegetarian who has ever gone to group lunch/dinner with their friends, colleagues or family.
Here is the scene. You go to a nice Italian restaurant (Olive Garden..anyone ??). You have mix of vegetarian and non-vegetarian people in your group.
You decide to start with appetizers.You order Bruschetta (Vegetarian) and Silican Scampi (non-vegetarian). Guess what, Bruschetta shows up before Silican Scampi and everybody jumps on to Bruschetta. Then Silican Scampi shows up and its just non-vegetarian folks gulping it.
Outcome: Vegetarian are starved on appetizers.
Similar thing happens during the main course. Again vegetarian people have to order more food while non-vegetarian people cannot finish theirs (since they already gorged lot of vegetarian stuff and are now full).
Outcome: Lot of non-vegetarian food is wasted !!
I am sure you can empathize me on this, especially if you are vegetarian.
Sunday, December 23, 2007
Monday, December 03, 2007
Tuesday, November 27, 2007
Thursday, November 08, 2007
Dual boot your iPod
Yes, you can dual boot your iPod with open source firmware. Rockbox is an open source firmware for mp3 players. It supports may players from Apple, SanDisk, Archos, iRiver etc. You can play games, have screensavers, play other formats like ogg, divx etc on your iPod.
Wow..wonders of open source
Here is the link on CNET.
http://www.cnettv.com/9742-1_53-29035.html
Wow..wonders of open source
Here is the link on CNET.
http://www.cnettv.com/9742-1_53-29035.html
Tuesday, October 30, 2007
Sunday, October 28, 2007
Do you index or day trade ?
I think each time you make the index a smaller portion—I'm talking about the indexes that are now out in the ETF field, which seem to get narrower and narrower—you're offering more choices. We know that the investor is his or her own worst enemy. In the last 10 years, the average mutual fund in the market grew at about 10 percent a year. And the average mutual fund investor putting money into the wrong funds at the top, getting out at the wrong time, putting nothing in at the beginning of the bull market and pouring money in at the end, had a return, believe this or not, of about 3 percent. So in the last 10 years, if you compound those two mutual fund numbers, that 10 percent grows to 125 percent of whatever the number is that is being compounded, and that 3 percent grows to 30 percent. And that has something to do, I think, with how we look at risk.
I look at the stock market, I think correctly, as in the long run having very, very low risk. Because my view of investing is that you own the business, it has the capital, and that capital will ultimately grow over an investment lifetime. And when the market went down 50 percent in 1973 and '74, and 50 percent in 2000 and 2002, it doesn't even matter. You've got all this money at the end of the period, and you just put blinders on and ignore these foolish fluctuations. What the stock market is, quoting Shakespeare I think, is a tale told by an idiot, full of sound and fury, signifying nothing. And when you think about the daily machinations of the stock market … that's probably an understatement.
Quote by John Bogle in That Was Then, This Is Now from Journal of Indexes
I look at the stock market, I think correctly, as in the long run having very, very low risk. Because my view of investing is that you own the business, it has the capital, and that capital will ultimately grow over an investment lifetime. And when the market went down 50 percent in 1973 and '74, and 50 percent in 2000 and 2002, it doesn't even matter. You've got all this money at the end of the period, and you just put blinders on and ignore these foolish fluctuations. What the stock market is, quoting Shakespeare I think, is a tale told by an idiot, full of sound and fury, signifying nothing. And when you think about the daily machinations of the stock market … that's probably an understatement.
Quote by John Bogle in That Was Then, This Is Now from Journal of Indexes
Friday, October 26, 2007
The Day The Routers Died...
Lyrics
Featuring recording of the "The Day that Routers Died"
(Set to AMERICAN PIE, by Don McLean)
a long long time ago i can still remember when my laptop could connect elsewhere
and i tell you all there was a day the network card i threw away had a purpose - and worked for you and me.... But 18 years completely wasted with each address we've aggregated the tables overflowing the traffic just stopped flowing....
And now we're bearing all the scars and all my traceroutes showing stars... the packets would travel faster in cars... the day....the routers died
Chorus (ALL!!!!!)
So bye bye, folks at RIPE 55 Be persuaded to upgrade it or your network will die IPv6 just makes me let out a sigh But I spose we'd better give it a try I suppose we'd better give it a try
Now did you write an RFC That dictated how we all should be Did we listen like we should that day
Now were you back at RIPE fifty-four Where we heard the same things months before And the people knew they'd have to change their ways....
And we - knew that all the ISPs Could be - future proof for centuries
But that was then not now Spent too much time playing WoW
ooh there was time we sat on IRC Making jokes on how this day would be Now there's no more use for TCP The day the routers died... Chorus (chime in now)
So bye bye, folks at RIPE 55 Be persuaded to upgrade it or your network will die IPv6 just makes me let out a sigh But I spose we'd better give it a try I suppose we'd better give it a try
I remember those old days I mourn Sitting in my room, downloading porn Yeah that's how it used to be....
When the packets flowed from A to B via routers that could talk IP There was data..that could be exchanged between you and me....
Oh but - I could see you all ignore The fact - we'd fill up IPv4
But we all lost the nerve And we got what we deserved!
And while...we threw our network kit away And wished we'd heard the things they say Put all our lives in disarray
The day...the routers died... Chorus (those silent will be shot)
So bye bye, folks at RIPE 55 Be persuaded to upgrade it or your network will die IPv6 just makes me let out a sigh But I spose we'd better give it a try I suppose we'd better give it a try
Saw a man with whom I used to peer Asked him to rescue my career He just sighed and turned away..
I went down to the net cafe that I used to visit everyday But the man there said I might as well just leave...
And now we've all lost our purpose.. my cisco shares completely worthless...
No future meetings for me At the Hotel Krasnapolsky
and the men that make us push and push Like Geoff Huston and Randy Bush Should've listened to what they told us.... The day...the routers....died Chorus (time to lose your voice)
So bye bye, folks at RIPE 55 Be persuaded to upgrade it or your network will die IPv6 just makes me let out a sigh But I spose we'd better give it a try I suppose we'd better give it a try
Words and performance by Gary Feldman
Saturday, October 13, 2007
Wednesday, October 10, 2007
Vadodara shows cricket was never metro-dominated
From the article
......
Vadodara [cricket] players have always rubbed shoulders with the country's best and given its cricketing lineage one can safely say that they have not come second best.
....
....
So the next time someone says that players from small-town India can dream of making it to the national [cricket] team, just mention the name of Vadodara.
....
Read the full article at here.
....
......
Vadodara [cricket] players have always rubbed shoulders with the country's best and given its cricketing lineage one can safely say that they have not come second best.
....
....
So the next time someone says that players from small-town India can dream of making it to the national [cricket] team, just mention the name of Vadodara.
....
Read the full article at here.
....
Tuesday, October 09, 2007
My Bookmarks
I finally started bookmarking on del.icio.us
Here is the link http://del.icio.us/binarysemaphore
Don't come flaming if you find it geeky :-D
Here is the link http://del.icio.us/binarysemaphore
Don't come flaming if you find it geeky :-D
Friday, August 03, 2007
Total Stock Market Fund Vs S&P 500
If you are wondering what is the difference between total stock market fund (like VTSMX) and S&P 500, here is good list. Thanks to Valuethinker from http://www.diehards.org
1. tax efficiency - TSM should be much more tax efficient (because it only has to buy and sell on IPOs, M&A, bankruptcies etc.).
2. lower operating costs - for the same reason as 1, the amount of transactions (and therefore market impact costs and dealing costs and spreads) should be lower for TSM.
3. arbitrariness of the S&P500. This is a list of 'top stocks' chosen by a committee. This means it can be 'gamed'. And it is. It is a profitable hedge fund strategy to buy entry candidates, and short exit candidates, in the weeks leading up to a promotion/demotion announcement.
That performance comes at the expense of holders of the S&P500-- the index fund buys at too high an entry price, and sells at too low an exit price.
(smart index funds fight this, DFA certainly does. But in general, holders of the S&P500 will lose performance against this hedge fund strategy).
4. note the S&P500 doesn't just exclude SCV (or mid cap value), it actually has a marked tilt towards 'large cap growth'. That's in the nature of a capitalisation-weighted index (a dollar of profits in a high growth stock gets a much higher PE ratio, and hence market cap, than a dollar of profits in a 'value' stock).
5. theoretical completeness. If your goal is (as best as possible) to invest in the investable 'universe' of stocks, why eliminate 23% of that universe of stocks, from the start?
Note Burton Malkiel recommended TSM over an S&P500 fund, for reasons similar to above (having recommended S&P500 in the first 6 editions of his book).
1. tax efficiency - TSM should be much more tax efficient (because it only has to buy and sell on IPOs, M&A, bankruptcies etc.).
2. lower operating costs - for the same reason as 1, the amount of transactions (and therefore market impact costs and dealing costs and spreads) should be lower for TSM.
3. arbitrariness of the S&P500. This is a list of 'top stocks' chosen by a committee. This means it can be 'gamed'. And it is. It is a profitable hedge fund strategy to buy entry candidates, and short exit candidates, in the weeks leading up to a promotion/demotion announcement.
That performance comes at the expense of holders of the S&P500-- the index fund buys at too high an entry price, and sells at too low an exit price.
(smart index funds fight this, DFA certainly does. But in general, holders of the S&P500 will lose performance against this hedge fund strategy).
4. note the S&P500 doesn't just exclude SCV (or mid cap value), it actually has a marked tilt towards 'large cap growth'. That's in the nature of a capitalisation-weighted index (a dollar of profits in a high growth stock gets a much higher PE ratio, and hence market cap, than a dollar of profits in a 'value' stock).
5. theoretical completeness. If your goal is (as best as possible) to invest in the investable 'universe' of stocks, why eliminate 23% of that universe of stocks, from the start?
Note Burton Malkiel recommended TSM over an S&P500 fund, for reasons similar to above (having recommended S&P500 in the first 6 editions of his book).
Sunday, July 15, 2007
Computer Science Vs Information Techonology
The confusion prevails. According to Joe, I work in Information Technology (IT) sector (and certainly I do). But my job is not IT, it is in Computer Science (CS) field. I work (in team, of course) on development of products which are used by IT professionals. This is kind of similar to difference between Aeronautical Engineer (the one who makes airplanes) & Pilot (and one who makes them fly).
I don't blame Joe for this confusion. After all, I have Bachelors degree in IT and Masters degree in CS.
Here is an excellent discussion on the difference between CS and IT on slashdot.
Slashdot Link
Many on Slashdot think that CS is superset of IT. I concur.
I don't blame Joe for this confusion. After all, I have Bachelors degree in IT and Masters degree in CS.
Here is an excellent discussion on the difference between CS and IT on slashdot.
Slashdot Link
Many on Slashdot think that CS is superset of IT. I concur.
Friday, July 13, 2007
Memory Management Techniques
Just last week, I was discussing with my colleague about different memory management techniques and which one should be used (apart from vanilla malloc/free implementations).
Since malloc/free are implemented in user space library, it is beneficial to optimize (or change them entirely) their implementation to take advantage of program behavior & cache locality
IBM developer works has an excellent article on this, particularly comparison table at the end.
Since malloc/free are implemented in user space library, it is beneficial to optimize (or change them entirely) their implementation to take advantage of program behavior & cache locality
IBM developer works has an excellent article on this, particularly comparison table at the end.
Tuesday, June 05, 2007
Monday, May 21, 2007
A day without X
Nice article listing alternative console based applications (as opposed to X windows based).
A day without X
A day without X
Wednesday, May 16, 2007
Software Engineering Methodology
In the beginning was the plan
And then came the assumptions
And the assumptions were without form
And the plan was completely without substance
And the darkness was upon the face of workers
–Excerpt from The Plan, early Internet folklore
And then came the assumptions
And the assumptions were without form
And the plan was completely without substance
And the darkness was upon the face of workers
–Excerpt from The Plan, early Internet folklore
Sunday, April 29, 2007
What is spanning tree protocol ?
Algorhyme
I think that I shall never see
a graph more lovely than a tree.
A tree whose crucial property
is loop-free connectivity.
A tree that must be sure to span
so packet can reach every LAN.
First, the root must be selected.
By ID, it is elected.
Least-cost paths from root are traced.
In the tree, these paths are placed.
A mesh is made by folks like me,
then bridges find a spanning tree.
-Radia Perlman
I think that I shall never see
a graph more lovely than a tree.
A tree whose crucial property
is loop-free connectivity.
A tree that must be sure to span
so packet can reach every LAN.
First, the root must be selected.
By ID, it is elected.
Least-cost paths from root are traced.
In the tree, these paths are placed.
A mesh is made by folks like me,
then bridges find a spanning tree.
-Radia Perlman
Sunday, April 01, 2007
April Fools Day
Don't get fooled. Today is April 1st. Think before you believe :-). Here is the link to top 100 April fool's hoaxes of all time.
http://www.museumofhoaxes.com/hoax/aprilfool/
http://www.museumofhoaxes.com/hoax/aprilfool/
Thursday, March 08, 2007
Nerdcore
Get a taste of nerdcore hip-hop
http://www.monzy.com/intro/killdashnine_lyrics.html
Here is the video on youtube.
http://www.youtube.com/watch?v=Fow7iUaKrq4&mode=related&search=
http://www.monzy.com/intro/killdashnine_lyrics.html
Here is the video on youtube.
http://www.youtube.com/watch?v=Fow7iUaKrq4&mode=related&search=
Monday, February 19, 2007
Coder, Programmer or Engineer
I came across an article on digg which discussed about coder Vs programmer.
The article seems to suggest that coders are brainless code churning machine, programmers are thoughtful, intelligent and agile developers. Here is my take on this issue.
The article seems to ignore engineers. I believe engineers are at higher food chain than programmers. The word sfotware engineer is widelys misused. Anybody even remotely writing /doing something on computer considers himself/herself as software engineer.
Software engineer has to have expertise in following four disciplines.
1) Programming Langauge : It can be any language. Be it C, C++, Java, Perl, Python or more fundamental like LISP or Assembly. Programming language gives engineer all the necessary tools to implement ideas into working products. Engineer must be able to take advantage of some of the powerful abstractions provided by programming language.
2) Operating Systems: This does not mean that you know how to use an operating system. It means you understand the design & issues involved in designing an operating system and take them into consideration while writing a software. E.g If you know an OS scheduler is biased towards I/O jobs instead of processor intensive jobs, then you know that your routing protocol software computing shortest path algorithm will suffer. Hence you will set the expectations for the performance of your software.
3) Theoretical Computer Science (Data Structures & algorithms, TOC etc): You can write programs without knowledge of algorithms. But you can write good & efficient programs with knowledge of theoretical computer science. Writing a single threaded program might be the simplest way and anybody can write one. But to select between a finite state machine or multi-threaded master-slave approach requires sound understanding of theory.
4) Domain specific (Computer Networking, Databases, Compilers, AI, Robotics etc): This refers to your field of specialization in computer science. These domains are a layer above the first 3 disciplines.
If you are missing knowledge of any of the 2,3 or 4, then you are not an engineer. But just a programmer. Coder lacks knowledge of more disciplines than programmer.
This is just my opinion. YMMV.
The article seems to suggest that coders are brainless code churning machine, programmers are thoughtful, intelligent and agile developers. Here is my take on this issue.
The article seems to ignore engineers. I believe engineers are at higher food chain than programmers. The word sfotware engineer is widelys misused. Anybody even remotely writing /doing something on computer considers himself/herself as software engineer.
Software engineer has to have expertise in following four disciplines.
1) Programming Langauge : It can be any language. Be it C, C++, Java, Perl, Python or more fundamental like LISP or Assembly. Programming language gives engineer all the necessary tools to implement ideas into working products. Engineer must be able to take advantage of some of the powerful abstractions provided by programming language.
2) Operating Systems: This does not mean that you know how to use an operating system. It means you understand the design & issues involved in designing an operating system and take them into consideration while writing a software. E.g If you know an OS scheduler is biased towards I/O jobs instead of processor intensive jobs, then you know that your routing protocol software computing shortest path algorithm will suffer. Hence you will set the expectations for the performance of your software.
3) Theoretical Computer Science (Data Structures & algorithms, TOC etc): You can write programs without knowledge of algorithms. But you can write good & efficient programs with knowledge of theoretical computer science. Writing a single threaded program might be the simplest way and anybody can write one. But to select between a finite state machine or multi-threaded master-slave approach requires sound understanding of theory.
4) Domain specific (Computer Networking, Databases, Compilers, AI, Robotics etc): This refers to your field of specialization in computer science. These domains are a layer above the first 3 disciplines.
If you are missing knowledge of any of the 2,3 or 4, then you are not an engineer. But just a programmer. Coder lacks knowledge of more disciplines than programmer.
This is just my opinion. YMMV.
Saturday, February 10, 2007
Articles by C++ gurus
I am big fan of C++ language. Even though I code in C at work, I never miss an article about C++, if I happen to find one on Internet.
I found a good list of articles by C++ experts
I found a good list of articles by C++ experts
- Bjarne Stroustrup
- Scott Meyers
- Steve Dewhurst
- Andrei Alexandrescu
- Douglas Schmidt
- Herb Sutter
- Kevlin Henney
- Matthew Wilson
- Dan Saks
- Robert C. Martin
- Chuck Allison
- Andrew Koenig
- Nathan Myers
- James Coplien
- John Vlissides
Tuesday, February 06, 2007
Attributes of a programmer
With all the latest attention again on what does and doesn’t make a good programmer, I couldn’t help but put together my own top 10 list.
- Being a great problem solver.
- Being driven and lazy at the same time.
- Ability to understand other people’s code
- Having a passion for programming
- Loving learning for the sake of learning
- Being good at math
- Having good communications skills
- Strong debating skills
- Extreme optimism
- Extreme pessimism
Here is my addition to the list
11. Mind peaking at certain hours of the day. (Specially at nights for me)
12. Desire to implement in correct way (though sometimes infeasible due to timing constraints, rather than hacking few chunks of code.
13. Ability to not only understand other people's code, but find bugs thereby exposing other programmer's weakness :-) and get a feeling of superiority.
14. Strong tool preferences (Vim Vs Emacs, xterm Vs Konsole Vs gnome-terminal, less Vs more etc)
15. Jack of all languages, but master of only ONE :-).
Saturday, January 27, 2007
Must read personal finance & investment Books
Must read personal finance & investment books.
The Four Pillars of Investing : Lessons for Building a Winning Portfolio - William Bernstein
A Random Walk Down Wall Street - Burton G. Malkiel
Yes You Can Time The Market - Stein & DeMuth
Cash Flow Quadrant - Robert Kiyosaki
Stocks for the long run - Jeremy J. Siegel
Irrational Exuberence - Robert J. Shiller
Common Sense on Mutual Funds: New Imperatives for the Intelligent Investor - John C. Bogle
Useful links
Chris Farell's Tool-box
Speeches by Bogle
The Four Pillars of Investing : Lessons for Building a Winning Portfolio - William Bernstein
A Random Walk Down Wall Street - Burton G. Malkiel
Yes You Can Time The Market - Stein & DeMuth
Cash Flow Quadrant - Robert Kiyosaki
Stocks for the long run - Jeremy J. Siegel
Irrational Exuberence - Robert J. Shiller
Common Sense on Mutual Funds: New Imperatives for the Intelligent Investor - John C. Bogle
Useful links
Chris Farell's Tool-box
Speeches by Bogle
Wednesday, January 24, 2007
Vim 7.0 with tabs
I found good article on using Vim 7.0 using tabs. Since I use Vim for all my coding purpose, I found it very interesting.
http://applications.linux.com/article.pl?sid=07/01/11/2141259&tid=13
Here is another link making fun of MS office clippy
http://www.vim.org/images/vimassistant.gif
http://applications.linux.com/article.pl?sid=07/01/11/2141259&tid=13
Here is another link making fun of MS office clippy
http://www.vim.org/images/vimassistant.gif
Sunday, January 21, 2007
More video lectures online
Here is the link from RPI. High quality video lectures on computer networking
Networking Videos @ RPI
Here is a link of compiler construction course from University of Washington
Compiler Construction @ UW
Another one from programming language course from UW
Programming Language @ UW
You can keep checking PMP website on UW, if they keep updating it with more video lectures
http://pmp.cs.washington.edu/courses.shtml
Networking Videos @ RPI
Here is a link of compiler construction course from University of Washington
Compiler Construction @ UW
Another one from programming language course from UW
Programming Language @ UW
You can keep checking PMP website on UW, if they keep updating it with more video lectures
http://pmp.cs.washington.edu/courses.shtml
Wednesday, January 03, 2007
Subscribe to:
Posts (Atom)