Here is an article which explains how to write good code (which you can understand later :-D)
Link
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
Friday, December 15, 2006
Computer Networking Videos Online
Here is the link of Computer Networking lectures online by Prof. Raj Jain at Washington University, St. Louis.
I found this while googling for a queuing theory (ok..i will tell you..i was googling for Markov process and M/M/1 queue). Look for Computer Systems Analysis on Professor's homepage.
Awesome find !!.
I found this while googling for a queuing theory (ok..i will tell you..i was googling for Markov process and M/M/1 queue). Look for Computer Systems Analysis on Professor's homepage.
Awesome find !!.
Saturday, October 28, 2006
Arch Linux
I installed Arch Linux on my machine after FreeBSD ports system were broken on my PIII machine (ironically hostnamed rocketfuel) for more than 3 weeks. Two distros contesting to rule rocketfuel were Xubuntu 6.10 and Arch Linux 0.7.2.
My first impression of Arch Linux is that it is an excellent distribution for that legacy hardware. I installed XFCE and my machine is flying now - blazing fast. The package management system called "pacman" is working very well.
Also, Arch is i686 optimized. Hence it can leech out last bit of performance out of my legacy processor. Xubuntu has software compiled for i386.
The drawback of Arch is that there are no automatic hardware detection while installation as one might expect with X/K/Ubuntu. I had to spent some time configuring my xorg.conf file.
Though there are some glitches with sound card (entries created by udev for sound system are required to be chmod'd to 777 for regular user to use sound card), remaining hardware is firing all cylinders.
It looks like Arch will rule rocketfuel for some time to come :-)
My first impression of Arch Linux is that it is an excellent distribution for that legacy hardware. I installed XFCE and my machine is flying now - blazing fast. The package management system called "pacman" is working very well.
Also, Arch is i686 optimized. Hence it can leech out last bit of performance out of my legacy processor. Xubuntu has software compiled for i386.
The drawback of Arch is that there are no automatic hardware detection while installation as one might expect with X/K/Ubuntu. I had to spent some time configuring my xorg.conf file.
Though there are some glitches with sound card (entries created by udev for sound system are required to be chmod'd to 777 for regular user to use sound card), remaining hardware is firing all cylinders.
It looks like Arch will rule rocketfuel for some time to come :-)
Monday, October 23, 2006
Today's Fortune
"In God we trust; all others must pay cash"
I read this online somewhere today and found really funny :-)
I read this online somewhere today and found really funny :-)
Saturday, October 21, 2006
Free Computer Science Lectures
I am posting after looooooong time... But here is a cool link I found last month from www.digg.com
Free Computer Science Videos
Yes free computer science lectures !!!
Geek in me is crying to download these ... Here comes RocketFuel (my FreeBSD machine)...the bandwidth sucker...
Free Computer Science Videos
Yes free computer science lectures !!!
Geek in me is crying to download these ... Here comes RocketFuel (my FreeBSD machine)...the bandwidth sucker...
Tuesday, November 15, 2005
Worst Software Bugs
Here is an link to interesting article describing the worst software bugs ever found. This article made me wonder how fatal software bugs can be.
Thank God I don't work on life critical softwares. Bugs in proxies aren't life threatening :-)
Thank God I don't work on life critical softwares. Bugs in proxies aren't life threatening :-)
Thursday, October 20, 2005
OpenOffice.org 2.0 Available
Finally, after almost 1 year of testing and debugging, OpenOffice.org (OOO) folks have released 2.0. You can download software from here.
I think this is a very good release. I have been using OOO since 2 years now. I consider it as an excellent alternative to commercial office suits. For most of the people, it contains all the office functionalities they will ever need.
OOO 2.0 also has Base,which is counterpart of MS Access. Another feature of OOO 2.0 is the support of OpenDocument from OASIS. I hope OpenDocument format really picks up so that there are no file format compatibilities issues
I think this is a very good release. I have been using OOO since 2 years now. I consider it as an excellent alternative to commercial office suits. For most of the people, it contains all the office functionalities they will ever need.
OOO 2.0 also has Base,which is counterpart of MS Access. Another feature of OOO 2.0 is the support of OpenDocument from OASIS. I hope OpenDocument format really picks up so that there are no file format compatibilities issues
Monday, October 17, 2005
Unix Internals
Today I read a very good article comparing Solaris, Linux and FreeBSD kernel internals. Here is the link for that article.
Subscribe to:
Posts (Atom)