David Patterson and John Hennessey
Thursday, December 28, 2006
Quote of the Day
The creation of standardized, vendor-independent operating systems, such as UNIX and its clone, Linux, lowered the cost and risk of bringing out a new architecture
Monday, December 25, 2006
A shortcut through time
Written by science writer George Johnson, this book talks about mans quest for the ultimate computing machine, the Quantum Computer.
The books begins with the basic of computing, the language used is quite amusing
"In a typical circuit, there were resistors that, true to their calling, resisted electricity, pinching the flow of electricity"
The book starts off with the authors experience with GENIAC, a mock clone of ENIAC. The author then explains, tinkertoy logic, the book helps the reader discover that computers are more about logic, more than semiconductors that are used to build them. Logic is more important than how it's actually implemented.
The book then dwells into physics, explaining how atoms spin, and how depending on the direction of spin, we can treat the spinning as a boolean quantity as 1, 0 or Φ. Φ represents the state of the atom, when it is spinning in both directions simultaneously.
The introduction to Quantum physics makes a good read and makes me wonder why I slept through Physics in school. Reading further through the book the author aptly states "Human brains are just not equipped to intuitively understand the subatomic rules". The author then takes you to the Aha! Moment, when you realize that the Quantum Computer is so powerful that it can carry out 2n computations simultaneously, where n is the number of computing bits.
The book then introduces the layman to the Turing Machine and computational complexity, followed by Cellular Automata, Shor's Factoring Algorithm and its application to the world of Quantum Computing. No mathematical proofs are included in the book, but the concepts are well illustrated with examples and supporting diagrams.
Cryptography is then introduced along with the challenge of decrypting code, the computational complexity of cryptanalysis and implications of a quantum computer on current security technology is discussed.
What follows is an elegant description of logic gates and reversible logic. The current and state of the art attempts made at building a quantum computer are described in detail. Quantum error correction, its need and challenges is also discussed.
The book closes with chapters on Quantum secrecy and describes how polarized photons are used to implement quantum cryptography. Real life examples of hard problems, like protein folding is discussed. The reader is introduced to the fact that protein folding is a hard problem to solve (see books on NP-Hard) and the mystery surrounding how nature is able to solve the problem so quickly is discussed.
In summary, this is a great book to read. If you know and understand computer science, it will expose you to how, some of the most complicated concepts can explained without the need for complex mathematics. If you do not understand Quantum computing, the concepts exposed will get you interested in the world of Quantum, where the laws of nature are different. Simple Newtonian physics cannot explain what goes on inside an atom. It is this randomness and uncertainty that can change the way we compute today.
The books begins with the basic of computing, the language used is quite amusing
"In a typical circuit, there were resistors that, true to their calling, resisted electricity, pinching the flow of electricity"
The book starts off with the authors experience with GENIAC, a mock clone of ENIAC. The author then explains, tinkertoy logic, the book helps the reader discover that computers are more about logic, more than semiconductors that are used to build them. Logic is more important than how it's actually implemented.
The book then dwells into physics, explaining how atoms spin, and how depending on the direction of spin, we can treat the spinning as a boolean quantity as 1, 0 or Φ. Φ represents the state of the atom, when it is spinning in both directions simultaneously.
The introduction to Quantum physics makes a good read and makes me wonder why I slept through Physics in school. Reading further through the book the author aptly states "Human brains are just not equipped to intuitively understand the subatomic rules". The author then takes you to the Aha! Moment, when you realize that the Quantum Computer is so powerful that it can carry out 2n computations simultaneously, where n is the number of computing bits.
The book then introduces the layman to the Turing Machine and computational complexity, followed by Cellular Automata, Shor's Factoring Algorithm and its application to the world of Quantum Computing. No mathematical proofs are included in the book, but the concepts are well illustrated with examples and supporting diagrams.
Cryptography is then introduced along with the challenge of decrypting code, the computational complexity of cryptanalysis and implications of a quantum computer on current security technology is discussed.
What follows is an elegant description of logic gates and reversible logic. The current and state of the art attempts made at building a quantum computer are described in detail. Quantum error correction, its need and challenges is also discussed.
The book closes with chapters on Quantum secrecy and describes how polarized photons are used to implement quantum cryptography. Real life examples of hard problems, like protein folding is discussed. The reader is introduced to the fact that protein folding is a hard problem to solve (see books on NP-Hard) and the mystery surrounding how nature is able to solve the problem so quickly is discussed.
In summary, this is a great book to read. If you know and understand computer science, it will expose you to how, some of the most complicated concepts can explained without the need for complex mathematics. If you do not understand Quantum computing, the concepts exposed will get you interested in the world of Quantum, where the laws of nature are different. Simple Newtonian physics cannot explain what goes on inside an atom. It is this randomness and uncertainty that can change the way we compute today.
Friday, December 01, 2006
Just my lucky day! (errata in The METAFONTbook)
I got this email as a reply for an errata report I sent out
thanks for your report.
I hope I am emailing the correct people for an errata I found in The MetaFont book Volume C, Page 159yes. you've come to the right place.
Original Text
For example, Appendix B says
def --- = .. tension infinity.. enddef .
Corrected Text (It should be)
For example, Appendix B says
def --- = .. tension infinity .. enddef;
(Note the change from . to ;)i've verified this; the reference in appendix b-- bb
is on p.262. i don't see any earlier reports on
this, so it looks like you're the first.
should this actually be the case, you will be due
a small reward. to deliver it, we'll need a
postal address. i've received word from knuth
that he expects to be looking at reports about
this time next year, so an address that will be
current at that time is what we'll need.
Thursday, November 30, 2006
Update: Balbir's Blog: Problem 4.2 Page 85, Introduction to Algorithms
I posted an entry about a possible errata in Introduction to Algorithms at
Balbir's Blog: Problem 4.2 Page 85, Introduction to Algorithms
Well, it's a part of the errata of the book now. Check out http://www.cs.dartmouth.edu/~thc/clrs-2e-bugs/bugs.php the errata reads
I have not yet figured out how the new solution works (with the new constraint), if anybody else thinks of it, please do comment on it here.
Balbir's Blog: Problem 4.2 Page 85, Introduction to Algorithms
Well, it's a part of the errata of the book now. Check out http://www.cs.dartmouth.edu/~thc/clrs-2e-bugs/bugs.php the errata reads
Page 85, Problem 4-2. Change the second paragraph of the problem to read, ``Show that if the only way to access information in array A is by this single-bit operation, we can still determine the missing integer in O(n) time. Any entire integer outside of A is still accessible in a single operation.''Severity level 3 is "A more significant technical or expository error"
Reported by Balbir Singh. Posted 29 November 2006.
Severity level: 3
To be corrected in the eighth printing.
I have not yet figured out how the new solution works (with the new constraint), if anybody else thinks of it, please do comment on it here.
Saturday, November 25, 2006
Is Dravid headed down the Ganguly lane?
An indifferent performance at Durban (a place with a good amount of Indian support) and in his last dozen matches, is Dravid headed down the Ganguly lane? Is captaincy and planning leaving no time to play and enjoy the game. Is the politics of Indian cricket along with the six thinking hats of Greg Chappell getting too hot for Rahul?
I for one am very skeptical of the Indian batting line up. Sehwag is too adamant to listen to anyone - that's his natural style right? Tendulkar, the poor guy sees everyone getting out and goes into a shell (and gets out!). Kaif and Yuvraj, have no technique while batting. Give them a venue that supports swing and they'll lollypop their wicket to the slips. Dhoni might be ranked high, but it's a miracle when he manages to play the ball where he intends to.
Let's not even discuss the tail-enders
Whenever India comes in to bat, nobody can predict how well they'll do? They are prone to collapsing, known to be panicky and have the killer instinct of a Sparrow. The one thing they are good at is acting, look at their advertisements and you'll see that all of them can almost act. May be the BCCI has an acting academy inside the sports complex.
Is the wall wearing out? I hope not to give up so soon, but I am very frustrated.
I am going to protest, not by not watching the cricket matches, but by not purchasing anything advertised by an Indian cricketer.
How's that???? (If the umpires are looking at this blog :))
Problem 4.2 Page 85, Introduction to Algorithms
Here's my first post that's actually a PDF article. It contains a lot of math and I thought it would be best to convert it to PDF and then post the link here.
Comments on Problem 4.2, Introduction to Algorithms
Enjoy!
Comments on Problem 4.2, Introduction to Algorithms
Enjoy!
Friday, November 24, 2006
Monday, November 20, 2006
Man vs Woman (In Pictures)
Monday, November 13, 2006
Mathematical Formulae
Ever wondered how large the jungle of Mathematics is? We'll I always loose my way in it, when I try to read through a paper. Mathematics, to me is the plain simple truth, that is put in abstract terms. You get reward points for being terse. It's elegant when you write a premise in one single step. I've been thinking about coming up with a list of simple theorems, I want these to serve as an aid for mapping the more inner paths of the Mathematics jungle.
I have been trying to study discrete mathematics for a while now. Here is one of the most important theorems (see The Art of Computer Programming, Volume 1, Page 41, Third Edition, D.E.Knuth) . The theorem is called Fermat's Theorem and states that
If p is a prime number then
For a good proof, see Knuth's book or Fermat's Little Theorem at Wolfram MathWorld
One of the most interesting applications of this theorem is the RSA algorithm. RSA is used quite extensively in public/private key based cryptosystems.
Checkout the RSA article on Wikipedia
I have been trying to study discrete mathematics for a while now. Here is one of the most important theorems (see The Art of Computer Programming, Volume 1, Page 41, Third Edition, D.E.Knuth) . The theorem is called Fermat's Theorem and states that
If p is a prime number then
For a good proof, see Knuth's book or Fermat's Little Theorem at Wolfram MathWorld
One of the most interesting applications of this theorem is the RSA algorithm. RSA is used quite extensively in public/private key based cryptosystems.
Checkout the RSA article on Wikipedia
Thursday, November 09, 2006
Ten top things to do after installing a new Linux Distribution
Even though most of distributions have gotten better with look & feel and integration of hardware with Linux, here are the top ten things I usually do after installing a new distribution
- Fix the bootloader to set the order of booting the OS
- Get the right fonts
- Download media players like real or helix and mplayer
- Download and install a DVD player
- Install Java and the Java Plugin
- Install Acrobat Reader
- Install Acrobat Flash Plugin
- Install TeX, Scribus, Xfig and Inkscape
- Install wxMaxima and Scilab
- Install development packages like Eric, Kdeveloper & Eclipse
Tuesday, November 07, 2006
Symmetry
The book Discover Physics by Benjamin Crowell, talks about symmetry in Physics and in Nature. Wikipedia defines symmetry as
"In formal terms, we say that an object is symmetric with respect to a given mathematical operation, if, when applied to the object, this operation does not change the object or its appearance. Two objects are symmetric to each other with respect to a given group of operations if one is obtained from the other by some of the operations (and vice versa)"
Of the various types of symmetry described in the article, I find the reflection symmetry and rotation symmetry, the easiest to understand.Reflective Symmetry
Rotation SymmetryThe interesting thing about symmetries is that they apply not only to nature, physics and mathematics, but to computing as well.Consider that you are writing an API or developing a programming language or a library. By design, you the code needs to be able to undo, what it's allowed to do.Consider a "C" programLet's say we carry out the following steps
1. Allocate memory
2. Copy from user
3. Open a file
4. Write to file
What happens in case there is an error in step 4?
We carry out the following steps
1. Close the file
2. Free the allocated memory
We need to do the same when our we are done writing to the file.
Now compare what we did with reflection symmetry. Did you find anything similar? I think we should as a guideline make our API/code symmetric with respect to reflection. In lay man's terms, the code should be able to undo its own effect.
Most programming languages and API are symmetric. "C" has malloc()/free(), open(), close(). "C++" has a constructor and a destructor for each class, so we are mostly good as far as this rule is concerned. "Java" on the other hand, provides a garbage collector to maintain the symmetry. Consider what would happen if you could just allocate memory and never free it up? Open files, but never close them? The system would soon become unstable, the weight would grow on one side (memory, descriptor leaks) and the system would crash.
The symmetry created by the garbage collector makes life easy for the lazy programmer, but losing control over symmetry can throw a system in a non-deterministic state. Consider the case where a system has a lot of memory, the garbage collector never kicks in (of-course a lot depends on the actual algorithm). When a critical application needs to run, it needs most of memory, but to get free memory, the garbage collector starts running, starving the critical application of CPU time, making it wait for its memory demand. All of this could have been avoided (the CPU time overhead), but being in control of symmetry and freeing the memory when not needed.
Coming to rotational symmetry, I am yet to find a good use case for it in computer science (for an average programmer). For those involved in graphical illustrations, we could exploit it to make it easier to draw illustrations.
Tuesday, October 24, 2006
Distracted
Have you ever felt that you don't have the time do what you want to do right away? You feel your holding yourself back, because there are other important things to be done first. Remember time management. Time Management is a emotionless old bloke, who won't let you enjoy your life as a lazy programmer.
Shifting focus across many things, especially when I do not have time to spare is becoming a common habit with me. I am writing this blog entry, when I have absolutely no time to do so :) The interesting part of this obsession to waste all the valuable time is that the moment I actually have time, to do everything I want to; I'll probably end up lazing around and wasting time.
The good thing about the distracted mind is that when I actually get back to doing "what I am supposed to be doing", I feel refreshed. It's like taking a break, a good one.
I have just one more complain. I think life has been extremely unfair on me. During all my exams in school and especially the important ones, there was something interesting going on around the world.
I have some interesting blog entries in draft stage, I hope to post them as soon as I get a little more free from my pressing workload. Who knows, I might decide to get crazy and post them instead of doing "what I am supposed to do" :)
Shifting focus across many things, especially when I do not have time to spare is becoming a common habit with me. I am writing this blog entry, when I have absolutely no time to do so :) The interesting part of this obsession to waste all the valuable time is that the moment I actually have time, to do everything I want to; I'll probably end up lazing around and wasting time.
The good thing about the distracted mind is that when I actually get back to doing "what I am supposed to be doing", I feel refreshed. It's like taking a break, a good one.
I have just one more complain. I think life has been extremely unfair on me. During all my exams in school and especially the important ones, there was something interesting going on around the world.
I have some interesting blog entries in draft stage, I hope to post them as soon as I get a little more free from my pressing workload. Who knows, I might decide to get crazy and post them instead of doing "what I am supposed to do" :)
Monday, September 25, 2006
I got here several times
I got to this page several times to write something new, but unfortunately each time I would get distracted by something else. This blog now looks like a toy that a kid grows out of. No, don't worry, I still love blogging and it's something I am passionate about.
While I am here, I might as well tell you that the second edition of the Dragon Book is out. I have admired Al Aho and J D Ullman all my life. I can't wait to get hold of the Indian Edition of the book.
While I am here, I might as well tell you that the second edition of the Dragon Book is out. I have admired Al Aho and J D Ullman all my life. I can't wait to get hold of the Indian Edition of the book.
Friday, August 11, 2006
My first Wiki Page
You might think that I have been up to no good these days; not updating my blog recently. I have been caught in a maze of work and studies. While, I did do a lot of things I want to blog about, I'll start by telling you about my first Wiki Page about the Linux ABI
Read it, enjoy it, complain about it, comment on it or update it. You have full control!
Read it, enjoy it, complain about it, comment on it or update it. You have full control!
Tuesday, July 25, 2006
Algorithms course and Video
There's an excellent audio and video presentation of the algorithms course at MIT's Open CourseWare. Don't miss the courses in Electrical Engineering and Computer Science and Mathematics
Friday, July 21, 2006
Blog outage and other updates
Blogspot has been unavailable in India since the last few days. I called up Airtel to find out when access to blogspot will be allowed again. I was told that "the site has been indefinitely blocked".
My growing frustration got me to look into Yahoo 360. I was pleasantly surprised with the blogging facility. I could post formatted HTML and it came out very nicely. As an experiment, I have uploaded my first python program. The really cool thing is that with every post, it is also possible to setup a mini-poll and see what people think.
Please visit my Yahoo 360 blog and give feedback. Through the poll and otherwise.
My growing frustration got me to look into Yahoo 360. I was pleasantly surprised with the blogging facility. I could post formatted HTML and it came out very nicely. As an experiment, I have uploaded my first python program. The really cool thing is that with every post, it is also possible to setup a mini-poll and see what people think.
Please visit my Yahoo 360 blog and give feedback. Through the poll and otherwise.
Sunday, July 16, 2006
First major contribution to the Linux Kernel
The code is now in linux-2.6.18-rc2 the feature is called per-task delay accounting. It gives me my first set of copyrighted files in the Linux kernel, download -rc2 and open up kernel/taskstats.c, include/linux/taskstats*, Documentation/accounting/getdelays.c
The Documentation/accounting directory has a lot of details on how to use and extend our feature. The review processes was very informative, learning and entertaining.
If you are interested in seeing how the review happened, the process, let me know and I'll post the relevant URL's. In case you are interested in what's happening in the Linux Kernel front, Andrew Morton gave a talk at OSDL Japan, about the new features and their current status.
The Documentation/accounting directory has a lot of details on how to use and extend our feature. The review processes was very informative, learning and entertaining.
If you are interested in seeing how the review happened, the process, let me know and I'll post the relevant URL's. In case you are interested in what's happening in the Linux Kernel front, Andrew Morton gave a talk at OSDL Japan, about the new features and their current status.
Wednesday, July 05, 2006
Learning a new language
I am usually faced with a problem while trying to learn something new, specially if it is a new computer language. The problem is that some basic language concepts and constructs are very obvious. What I am usually interested in is -- to become productive in the new language as quickly as possible and avoid learning things I already know. I have been trying to put together a language learning template. Here's the first draft of it
Phase 1
I am still working on what one could learn in Phase 2. I would appreciate comments, suggestions to make the list complete. Phase 2 is very language specific and its hard to come up with a good list of things to learn. I'll probably pick a language and see if I can follow Phase 1 and come up with a template for Phase 2.
Phase 1
- Learn simplest form of I/O (learn how to accept user input and display output)
- Learn how to write comments
- Learn about numeric types and numeric operators
- Learn about strings and arrays
- Learn the basic constructs of the language like if, while, for
- Learn about strings and arrays
- Learn about functions, classes, error handling
- Learn about simple File operations (open, read and close)
I am still working on what one could learn in Phase 2. I would appreciate comments, suggestions to make the list complete. Phase 2 is very language specific and its hard to come up with a good list of things to learn. I'll probably pick a language and see if I can follow Phase 1 and come up with a template for Phase 2.
Monday, July 03, 2006
Simple C tidbits (tasty morsels)
I cam across the term tasty morsels in the book Expert C Programming: Deep C Secrets by Peter Van Der Linden. I have been thinking of accumulating them myself, the challenge is to avoid duplicates and keep them interesting
My friend Phani Babu asked me a simple question
"Can we declare static variables in a struct, if no why; if yes where will it be stored?"
My answer was
"We cannot from what I know. struct is a data type declaration keyword, specifying storage might not be acceptable there. But the case for c++ is different where you can have static variables in the class and later on define them outside with the syntax [type]: [class]:[var] [= value]"
The requirements for both languages are clearly different. C being a structured language had no support for methods within a structure or a class. With the addition of classes came the concept of instances of a class. With instances came the need to share data across instances. This could be done using global variables, but it would be ugly. The solution was to allow shared per class data across instances.
Any add-ons will be credited and appreciated.
My friend Phani Babu asked me a simple question
"Can we declare static variables in a struct, if no why; if yes where will it be stored?"
My answer was
"We cannot from what I know. struct is a data type declaration keyword, specifying storage might not be acceptable there. But the case for c++ is different where you can have static variables in the class and later on define them outside with the syntax
The requirements for both languages are clearly different. C being a structured language had no support for methods within a structure or a class. With the addition of classes came the concept of instances of a class. With instances came the need to share data across instances. This could be done using global variables, but it would be ugly. The solution was to allow shared per class data across instances.
Any add-ons will be credited and appreciated.
Sunday, June 18, 2006
Finally they seem to be held together
Tuesday, June 13, 2006
Google Earth for Linux
Google earth for Linux is available for download . Beta 4 looks pretty impressive!
Thanks to Riaz for bringing this to my attention
Sunday, June 11, 2006
Books I want to buy
The first one is called Performance by Design. It looks like a really useful book for any computer programmer. Its a bit expensive (in terms of Indian currency), but I can't wait to buy and read it.
The second one is called Digital Typography. It explores the relationship between computers and typography. Again, its a bit expensive, but on the top of my buy and read list.
The second one is called Digital Typography. It explores the relationship between computers and typography. Again, its a bit expensive, but on the top of my buy and read list.
Tuesday, May 30, 2006
What's new and geeky on the web (30 May 2006)
- Jeff Ullman has put up new lecture notes on Advanced Compiling Techniques
- Chirstos Papadimitriou is working on an undergraduate book on Algorithms. Here is the preview
- Stroustrup has an article on Specifying C++ Concepts
- Bruce Eckel Interviews Software Luminaries: Thinking in Code
- Ronald L Rivest has an interesting set of links for cryptography
- Bruno R Preiss's collection of Data Structures and Algorithm keeps growing (PHP, Ruby, etc)
- Ulrich Drepper has an article on SELinux Memory Protection Tests
- Greg Kroah-Hartman has announced a new Linux Device Driver Kit
- Scilab has announced version 4.0
Think your stuck with a problem?
There are several ways of creatively solving problems. Here's a list of interesting links
If you've got any interesting links, send them across and I'll add them here
If you've got any interesting links, send them across and I'll add them here
Sunday, May 28, 2006
New web page (work in progress)
I am also trying to setup a web page at http://bsingharora.googlepages.com/
I plan to use it as a support site to this blog initially. The site would contain supplementary material, source code, papers, etc
I plan to use it as a support site to this blog initially. The site would contain supplementary material, source code, papers, etc
Saturday, May 27, 2006
Picasa on Linux
Picasa for Linux is available from google labs. Wow! way cool. Now I can edit and upload pictures from Linux itself (isn't that way cool)
The interesting part of the Linux distribution is that it runs on wine.
What are you waiting for go? Download it!
The interesting part of the Linux distribution is that it runs on wine.
What are you waiting for go? Download it!
Coke -- No more!
I am a big fan of diet coke and diet pepsi. I made the mistake of trying to chill my diet coke by putting it in the freezer. Why a mistake you wonder - look what happened
Yes, the cans exploded (almost ruining the freezer). Surprisingly, there is nothing on the can that says "Do not freeze"
My theory for what we saw is simple
The water froze, causing the gas mixed in the water to pressure out and explode the cans.
If anybody else has a better theory - I am all ears
Yes, the cans exploded (almost ruining the freezer). Surprisingly, there is nothing on the can that says "Do not freeze"
My theory for what we saw is simple
The water froze, causing the gas mixed in the water to pressure out and explode the cans.
If anybody else has a better theory - I am all ears
Friday, May 26, 2006
Now, it might be Linux's turn
The TCP Compound patch talks about a Microsoft research technical report from which the idea is being used. Don't know if it will get in, but its interesting to see ideas being shared.
Thursday, May 25, 2006
Tuesday, May 23, 2006
What have I been upto in pictures (Quiz)
These pictures show you what I've been upto today. The first person to guess it correct gets a treat from me (if you live in my city), else you get credits for getting it right. Seriously, it is not that hard. I need complete details of what I did, the more complete the details, the higher your chances of winnng and FCFS of-course (you win because you came to my blog earlier :-))
Hint: I am not violating any license agreement and the pictures themselves are links
Friday, May 19, 2006
Smart Browser Client Applications
I have almost migrated to using only Linux. Some of the biggest challenges I face with the migration are
It worked well with all browsers on Windows (including firefox) and it just would not work with firefox on Linux.
If you have the same problem, then add the following code to your $HOME/.mozilla/firefox/.../prefs.js
- Web Browsing
- Multimedia
It worked well with all browsers on Windows (including firefox) and it just would not work with firefox on Linux.
Message from internet banking
After debugging the problem for a couple of hours (thanks to the built-in javascript debugger that comes along with the mozilla suite). I finally figured out the exact cause of the problem. The problem was that the banking js code was trying to be smart in trying to support browsers.
After debugging the problem for a couple of hours (thanks to the built-in javascript debugger that comes along with the mozilla suite). I finally figured out the exact cause of the problem. The problem was that the banking js code was trying to be smart in trying to support browsers.
If you have the same problem, then add the following code to your $HOME/.mozilla/firefox/.../prefs.js
user_pref("general.appname.override", "Microsoft Internet Explorer");
user_pref("general.appversion.override", "4.0 (compatible; MSIE 6.0+;
Windows NT 5.1)");
user_pref("general.platform.override", "Win32");
What these preferences do is that they change the navigator.appName, navigator.platform and navigator.appVersion returned by the javascript code running in the browser.Login screen visible after making the changes suggested above
If you think of this as hacking, please read Forget Your Password: Be Google
for a very tempting hack.
Disclaimer: I do not advocate hacking for illegal purposes, hacking is supposed to be harmless, fun and learning experience.
If you think of this as hacking, please read Forget Your Password: Be Google
for a very tempting hack.
Disclaimer: I do not advocate hacking for illegal purposes, hacking is supposed to be harmless, fun and learning experience.
Interesting links
Here are a couple of must read interesting links (especially if you are fond of India)
Software for palaeograpy of Indic scripts (I met Harald at FOSS.IN, where he happend to mention the the same thing). I found the project to be really cool!
I got a linux kernel trend URL from Jaya Kumar. Also, check out the Processor (AMD, IA-32, IA-64, PowerPC, Xeon Trends. Isn't the trend analysis amazing?
If you are found of Photography, visit Sanjay Arora's work at flickr. Also check out Beyound Shotz.
I hope you love the links. They have been collected from other blogs I read of the internet, I hope you find them worthwhile.
If you like the concept, I can do this more often
Software for palaeograpy of Indic scripts (I met Harald at FOSS.IN, where he happend to mention the the same thing). I found the project to be really cool!
I got a linux kernel trend URL from Jaya Kumar. Also, check out the Processor (AMD, IA-32, IA-64, PowerPC, Xeon Trends. Isn't the trend analysis amazing?
If you are found of Photography, visit Sanjay Arora's work at flickr. Also check out Beyound Shotz.
I hope you love the links. They have been collected from other blogs I read of the internet, I hope you find them worthwhile.
If you like the concept, I can do this more often
Tuesday, May 16, 2006
Operating Systems interesting papers and slides
This is a small set of URLs I find useful to lookup any operating systems clarifications I need. This list also includes some current research papers I am reading. This blog entry will continue to grow. Please feel free to contribute links and keep this list healthy :-)
Deitel OS 3rd Edition Slides
William Stallings OS 5th Edition Resources
Virtual Time Round Robin Scheduler
Deitel OS 3rd Edition Slides
William Stallings OS 5th Edition Resources
Virtual Time Round Robin Scheduler
Sunday, May 14, 2006
New version of MMIX
Don Knuth's MMIX simulator has a March 2006 version. Download it and play around with it.
Microprocessor Manuals
Here are links to most commonly used processors and their technical manuals. Feel free to notify me if you need other processor manuals added.
Related Manuals (for programming on these processors)
Related Manuals (for programming on these processors)
Saturday, May 13, 2006
Friday, May 05, 2006
Balbir's Blog: RFC : Understanding components of the kernel
I promised to post some articles on the internals of the Linux (TM) Kernel in my blog post at Balbir's Blog: RFC : Understanding components of the kernel
I thought I could make up for the false promise by posting links on good articles on Linux. The first one is on the working of the Linux scheduler.
Here are a couple of links
I thought I could make up for the false promise by posting links on good articles on Linux. The first one is on the working of the Linux scheduler.
Here are a couple of links
- Scheduler improvements in 2.6
- Whats new in 2.6 scheduler
- Understanding the 2.6 scheduler (might be down currently, read using google cache)
Tuesday, May 02, 2006
Some interesting links
The busy virus seems to leave hard. Meanwhile, here are a few interesting links
delay account utilities
http://lwn.net/Articles/176543/
http://lwn.net/Articles/182133/
delay account utilities
http://lwn.net/Articles/176543/
http://lwn.net/Articles/182133/
Sunday, March 26, 2006
Installing another Linux distro (Fedora Core 5)
Fedora Core 5 is out and I could not wait to get my hands on it. For a relatively experienced user, I faced some problems. First of all, my upgrade from Fedora Core 4 failed. I think, it was due to the fact that I had vfat mounted partitions, but I am not 100% sure. So, I did the dumb thing and tried to reinstall it from scratch.
As fate would have it, some of CD's had bad sectors. This caused my installation to be terminated twice. I was surprised not to see the ignore option, for RPMS that failed to install. In any case, I did a minimal install to get Fedora Core 5 up and running. The development tools were completely missing.
I tried to use the new pirut tool, hoping that I would be able to install the remaining packages. To my surprise pirut uses yum as the backend and would not pickup any packages from my CDROM media. To fix this, I copied all the RPMS to a directory in /rpms. Used createrepo to create a yum repository of the RPMS. I then edited /etc/yum.conf to pick up RPMS only from /rpms. The next step was to find all RPMS not installed and install them with yum.
While, this was running in the background, I also installed the following
As fate would have it, some of CD's had bad sectors. This caused my installation to be terminated twice. I was surprised not to see the ignore option, for RPMS that failed to install. In any case, I did a minimal install to get Fedora Core 5 up and running. The development tools were completely missing.
I tried to use the new pirut tool, hoping that I would be able to install the remaining packages. To my surprise pirut uses yum as the backend and would not pickup any packages from my CDROM media. To fix this, I copied all the RPMS to a directory in /rpms. Used createrepo to create a yum repository of the RPMS. I then edited /etc/yum.conf to pick up RPMS only from /rpms. The next step was to find all RPMS not installed and install them with yum.
While, this was running in the background, I also installed the following
- Adobe Reader 7.0
- Java JDK 5.0
- Flash Plugin
- Kchmviewer (a chm viewer for Linux)
- mplayer
- Xen
- Systemtap
- KDE 3.5
- GNOME 2.14
- Eclipse (based on gij)
- Mono
Gopal's static block example
Gopal's example at C++ Static Blocks with better syntax highlighting.
using namespace std;
class Static
{
private:
static vector values;
public:
Static ()
{
vector::iterator b = values.begin ();
for (; b != values.end (); b++)
{
cout << *b << endl;
}
}
class VectorInitializer
{
public:
VectorInitializer ()
{
Static::values.push_back (20);
Static::values.push_back (40);
Static::values.push_back (60);
}
};
friend class Static::VectorInitializer;
};
vector
Static::values;
static
Static::VectorInitializer
initalizer; //initializes the vector.
int
main (void)
{
Static
x;
}
Thursday, March 23, 2006
Trivia
What cryptographically significant information has been published in every Sunday's New York Times since 1992?
Saturday, February 25, 2006
Bitten by the busy virus
I have been extremely busy to keep this blog upto date. Well, I have been bitten by the "busy" virus. Yes, I have been extremely busy and I have had no time for blah, blah, etc.
I will try and find more time to blog. Lets see if the busy virus is strong enough to prevent me from my temptation to blog.
I will try and find more time to blog. Lets see if the busy virus is strong enough to prevent me from my temptation to blog.
Tuesday, January 10, 2006
RFC : Understanding components of the kernel
I plan to start a series of articles explaining the Linux Kernel code as I understand it. I plan to cover some core ideas and subsystems. I do not intend to compete with LWN or other professional writers.
My biggest challenge would be to find a good drawing tool and keeping the documentation up to date.
My biggest challenge would be to find a good drawing tool and keeping the documentation up to date.
Analysis of the double wakeup problem in Linux
Some time back there was a discussion on lkml about mutex vs semaphores. Check out Goodbye Semaphores?. You might have to wait until 12 Jan 2006 to read it, if you do not have a LWN subscription.
The main reason Linus accepted Ingo's new patch is because semaphores did not perform as well as the new mutex code and of-course various other reasons. Linus and others quickly found the main cause of the performance hit to be the double wakeup problem.
If you are interested in this kind of stuff, I posted my analysis of the double wakeup issue on lkml. Here is the complete analysis
The main reason Linus accepted Ingo's new patch is because semaphores did not perform as well as the new mutex code and of-course various other reasons. Linus and others quickly found the main cause of the performance hit to be the double wakeup problem.
If you are interested in this kind of stuff, I posted my analysis of the double wakeup issue on lkml. Here is the complete analysis
Wednesday, January 04, 2006
When the past comes back with a surprise
Long long ago, I had posted a patch to lkml for O(1) estimation of slab size estimation.
Here is the original email and the thread. This morning, I saw the following threads
In the latest thread, both myself and Steven Rostedt have posted our analysis to prove that the O(1) algorithm works. Interested? Check all the three emails and their threads.
As usual comments are welcome, this time clarifications too!
Here is the original email and the thread. This morning, I saw the following threads
In the latest thread, both myself and Steven Rostedt have posted our analysis to prove that the O(1) algorithm works. Interested? Check all the three emails and their threads.
As usual comments are welcome, this time clarifications too!
Tuesday, January 03, 2006
Confession of a software programmer
Software programmers are known to be lazy and famous for writing buggy code. Well, not all programmers, some do write wonderful stuff. So good that its a pleasure to read the code and execute their program.
I feel that I belong to the lazy and buggy code writers category. So, this year (this month) I have decided to write some code, that I should have written a long time back. I plan to write the code with the following goals in mind
You must wonder how I will do all this and still develop code. Well, I have a plan of action
Use Karm (KDE's time tracking tool) to track how my time on the computer is spent. I think it should be an interesting exercise if followed honestly.
I feel that I belong to the lazy and buggy code writers category. So, this year (this month) I have decided to write some code, that I should have written a long time back. I plan to write the code with the following goals in mind
- Develop several test cases to prove that the code works
- Track Quality of code
- Keep track of every single mistake I make while writing it and time required to fix errors
- Track the number of compilations, crashes, the number of times the source code is edited and time required for each action
You must wonder how I will do all this and still develop code. Well, I have a plan of action
Use Karm (KDE's time tracking tool) to track how my time on the computer is spent. I think it should be an interesting exercise if followed honestly.
Screenshot of Karm
Sunday, January 01, 2006
New year advice (to myself)
Use a book (especially a technical one) as a guide.
Like a traveler would use a map to understand the city. The book being the map and the city being the subject. One cannot claim to have understood the city, by just having seen things on the map. It is critical to explore the city and use the map when lost or to reach some destination.
I understand that my blog has moved from being technical, but I hope to continue on the tech-mania this year.
Like a traveler would use a map to understand the city. The book being the map and the city being the subject. One cannot claim to have understood the city, by just having seen things on the map. It is critical to explore the city and use the map when lost or to reach some destination.
I understand that my blog has moved from being technical, but I hope to continue on the tech-mania this year.
Subscribe to:
Posts (Atom)
Ranking and Unranking permutations
I've been a big fan of Skiena's Algorithm Design Manual , I recently found my first edition of the book (although I own the third ed...
-
(Photo from http://content-usa.cricinfo.com/indvaus2008/content/current/player/28114.html) Dravid's dismal form continues in test crick...
-
I've been reading up on Fast Fourier Transform (FFT) from several books on algorithms that I have, TCLR, Tamassia, Sahni, Numerical Rec...
-
The book is almost out there . There is code and selected solutions as well. The book is supposed to be in full colour from what I heard....