<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1746745451277571533</id><updated>2012-01-04T16:03:09.676+05:30</updated><category term='Unix'/><category term='distributed'/><category term='Microsoft'/><category term='file recovery'/><category term='Internet'/><category term='Novell'/><category term='security'/><category term='programming'/><category term='Gmail'/><category term='OpenOffice'/><category term='careers'/><category term='Windows'/><category term='command'/><category term='Apple'/><category term='links'/><category term='general'/><category term='salary'/><category term='Google'/><category term='Computer'/><category term='C++'/><category term='UltraSparc T2'/><category term='OpenSolaris'/><category term='Niagara'/><category term='Sun'/><category term='Firefox'/><category term='shell'/><category term='software'/><category term='tips'/><category term='Linux'/><category term='kernel'/><category term='Solaris'/><category term='Mac OS X'/><category term='Ubuntu'/><category term='JavaScript'/><category term='review'/><category term='software engineer'/><category term='Video'/><category term='teaching'/><category term='ZFS'/><category term='humor'/><title type='text'>Computers, programming and Operating Systems</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-9162368909627661996</id><published>2010-04-26T13:17:00.002+05:30</published><updated>2010-04-26T13:22:08.498+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Deleted Linux partition! How to get back into Windows?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Recently one of my computers' Linux partition was deleted by mistake. As the Linux partition held the multi-boot information, it made the computer stuck at grub prompt with no way of knowing where to load the OS images from.  I think that is  known as grub stage 2.  I was able to find grub commands and successfully booted into Windows XP. So, if Linux partition of your multi-boot system is inadvertently deleted and you are stuck at grub prompt without access to Windows cd, then try this list of commands at grub prompt&lt;br /&gt;grub&gt;&lt;br /&gt;&lt;br /&gt;grub&gt; root(hd0, 0)&lt;br /&gt;grub&gt;makeactive&lt;br /&gt;grub&gt;chainloader +1&lt;br /&gt;grub&gt;boot&lt;br /&gt;&lt;br /&gt;Note the first command " root(hd0, x) "here x could be a different number on your system...mine worked for 0.&lt;br /&gt;This booted the Windows XP on the computer. But each time the computer is restarted after this, it's stuck at grub prompt and you have to follow the same list of commands.  Another search and I found and installed a very nice utility called "mbrfix". Booted Windows and ran the utility; it created the master boot record (MBR) for Windows and fixed the problem and I could reboot without any problem.&lt;br /&gt;&lt;br /&gt;Alternatively, I have read that if you have access to Windows  cd, booting from it and running command "fixmbr" also does the trick.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-9162368909627661996?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/9162368909627661996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=9162368909627661996&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/9162368909627661996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/9162368909627661996'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2010/04/deleted-linux-partition-how-to-get-back.html' title='Deleted Linux partition! How to get back into Windows?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1983608799649757357</id><published>2010-03-29T12:02:00.008+05:30</published><updated>2010-03-29T16:32:18.789+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Wubi and Ubuntu</title><content type='html'>&lt;div style="text-align: justify;"&gt;I was trying out Wubi installer for Ubuntu. What it does basically is install Ubuntu on a Windows file system. It creates a windows file and makes it look like a hard disk to Ubuntu i.e. a virtual hard disk. So, while Ubuntu is installing on windows file system (loopback mounting), Windows need not boot if we want to work on Ubuntu. We are using Windows file system but not booting Windows as a host. Ubuntu is running on its own.The installation creates an entry in boot.ini file so that Ubuntu can be booted up as a separate OS just like a dual-boot system. Also, the installation shows up as an installed application on Windows, so if you need to remove Ubuntu, remove it as any Windows program. This is good for newbies as it saves them from the hassles of partitioning the disk.&lt;br /&gt;&lt;br /&gt;Another cool thing about having Ubuntu on the system is that I can use my mobile broadband that is available in modem right out of the box. No need to configure or install any extra softwares.&lt;span style=""&gt;  &lt;/span&gt;Just go to network connections, select the provider from the list, and the Ubuntu is ready to use the usb modem. Just enable it with a click of mouse. Very neat!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1983608799649757357?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1983608799649757357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1983608799649757357&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1983608799649757357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1983608799649757357'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2010/03/wubi-and-ubuntu.html' title='Wubi and Ubuntu'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1867005428963009852</id><published>2010-02-26T11:02:00.006+05:30</published><updated>2010-02-26T11:22:10.310+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed'/><title type='text'>A probabilistic solution to the Two Generals problem</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;Here is a probabilistic solution to the two General's problem; it gives a high probability of succcess if the number of messages(messengers) is kept high.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The two General's problem is a problem of synchronization between two army Generals. They have surrounded an enemy&lt;/span&gt;&lt;span style="font-size:85%;"&gt; army that is more powerful than any one of  the two armies. But together the two armies outnumber the enemy and can win. The problem is that the two Generals are far enough from each other  and can't communicate with each other except by sending messengers. The messengers have to move through enemy line. The messengers can either get caught or reach the other General with a message.How would the army Generals agree on a time to attack? If they don't synchronize their attack, the enemy will win.  The receiver General has to send an acknowledgment back to the first General now. The acknowledgment has to be sent through a messenger. The messenger again has a possibility of getting caught by the enemy. To acknowledge the receipt of acknowledgment, a messenger has to be sent again. Thus, the cycle of acknowledgments will continue...&lt;br /&gt;&lt;br /&gt;Let's make some assumptions before discussing a solution to this problem:&lt;br /&gt;&lt;br /&gt;Assumptions:&lt;br /&gt;&lt;br /&gt;A1- Each messenger has 50% chance of reaching the other General with the message.&lt;br /&gt;A2- We will expect a 99.999 % chance of agreement between the Generals as sufficient enough.&lt;br /&gt;A3- Each General sends an equal number of messengers.&lt;br /&gt;&lt;br /&gt;Now, the chance of a messenger reaching the other General is 50%; it means the chance of failure is also 50%. If a General sends N messengers, the probability that none of them will reach the other General is (0.5)^N. So, the probability that at least one of the messengers will reach the other General is 1-(0.5)^N.&lt;br /&gt;&lt;br /&gt;So, the probability that at least one messenger from each General will reach the other General is (1 - (0.5)^N)^2. When at least one messenger from a General reaches the other General with a time to attack, and an acknowledge from the other General reach the first one the message+acknowledgment is complete and there is an agreement.&lt;br /&gt;&lt;br /&gt;We are taking the probability of 99.999% as success.&lt;br /&gt;So, (1-(0.5)^N)^2 &gt; 0.99999&lt;br /&gt;or, (1-(0.5)^N) &gt; 0.999995 (thanks to the calculator that is present in Google search, "square root of .99999" and search)&lt;br /&gt;or, 0.5^N &gt; 0.000005&lt;br /&gt;or, N = 17&lt;br /&gt;&lt;br /&gt;So, if a General sends 17 messengers one after the other with a message, and the other General  replies with 17 messengers with acknowledgment, we have a greater than 99.999% probability of an agreement on the time to attack. Increasing the number of messengers increase this probability even more.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1867005428963009852?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1867005428963009852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1867005428963009852&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1867005428963009852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1867005428963009852'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2010/02/probabilistic-solution-to-two-generals.html' title='A probabilistic solution to the Two Generals problem'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-870479429109924194</id><published>2009-07-23T13:02:00.000+05:30</published><updated>2009-07-23T13:04:31.629+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><title type='text'>Redirection and 2&gt;&amp;1</title><content type='html'>&lt;div style="text-align: justify;"&gt;In Unix, one often finds a input and output redirection "&lt;", "&gt;", "&gt;&gt;". These are simple to understand.&lt;br /&gt;&lt;br /&gt;Users can also do redirect one stream into another stream. This is done by using standard file descriptors. So, if someone wants to redirect all standard errors to whereever standard output is going, add 2&gt;&amp;amp;1 in the end of the command. 2&gt;&amp;amp;1 means send the standard errors to where standard output is going.  2 is the default file descriptor for stderr and 1 for stdout. If certain command is redirecting stdout to, say some file, stderr still goes to default screen. If you want stderr also to be sent to the file where stdout is going, use 2&gt;&amp;amp;1.&lt;br /&gt;Similarly, you can also redirect stdout to whereever stderr is going by 1&gt;&amp;amp;2.&lt;br /&gt;&lt;br /&gt;Also, remember that "some unix command &gt; some_file 2&gt;&amp;amp;1" is different from "some unix command  2&gt;&amp;amp;1 &gt; some_file". The first one redirects stderr to some_file, whereas the second won't.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-870479429109924194?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/870479429109924194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=870479429109924194&amp;isPopup=true' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/870479429109924194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/870479429109924194'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2009/07/redirection-and-2.html' title='Redirection and 2&gt;&amp;1'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-986313829934623102</id><published>2009-07-11T11:54:00.005+05:30</published><updated>2009-07-22T11:18:25.477+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><title type='text'>A tutorial on setuid and sticky bits in Unix</title><content type='html'>&lt;div style="text-align: justify;"&gt;Unix users are sometimes confused with setuid and sticky bit permissions on files and directories. Below is a small tutorial on the most common use of setuid and sticky bits.&lt;br /&gt;&lt;br /&gt;There are certain files or devices that are writable only by root. Nevertheless, ordinary users often have to use root-owned programs that try to write to those files. Since these files are writable only by root, how would a non-root user run the program that writes into that file. The solution in Unix is setuid bit. When this bit is set on a root-owned program, the program gets the effective privileges of root even when run by non-root user. This happens only for setuid programs i.e. for programs that have setuid bit set by owner/root. Example is passwd program that modifies the password files that are writable only by root. Since passwd program is setuid id, any non-root user can run this program and modify his/her password. Another example is ping program that is also setuid since ordinary users also run the ping program that accesses network devices.&lt;br /&gt;&lt;br /&gt;In the file permission listing found by command “ls –l” setuid programs have the s in place of x. This means the program is both executable by owner and setuid. Another possibility is S in place of x which means the program is setuid but NOT executable. The program permissions could look like&lt;br /&gt;&lt;br /&gt;rwsr-xr-x ( executable by root and setuid; what matters for setuid bit is the third letter)&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;rwSr-xr-x ( hmmm…does it make sense !?)&lt;br /&gt;&lt;br /&gt;One can make a program setuid by&lt;br /&gt;&lt;br /&gt;chmod u+s prog_name&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;chmod 4755 prog_name&lt;br /&gt;&lt;br /&gt;Although the explanation above was specific to root-owned files, it could apply to any owner. So any user can make a program owned by himself/herself setuid and let others modify some of the owner’s files by this program.&lt;br /&gt;&lt;br /&gt;Another related special permission setting for a program is setgid bit which is similar to above, but is useful only to the owner’s group. The setuid and setgid bits have different meanings when applied to directories. setgid bit on directory "d" means that any file or directory created under it would get the group id of "d". Remember that normally the group id of any newly created directory is the group id of the user who created it.&lt;br /&gt;&lt;br /&gt;Yet another special permission is the sticky bit. Now-a-days, it is mainly used for directories. Let us first understand what directory permissions mean. Some directories are writable by all users. That means all users can create files as well as delete files inside such directories. Execute permission for a directory means search permission into that directory. So, execute permission is necessary to descend into that directory.&lt;br /&gt;&lt;br /&gt;An example of directory with sticky bit set is /tmp. This directory stores temporary data that is created by user programs. Since these directories are writable by all, any user can delete any file! Even those files that are owned by others! To fix this state, such directories have sticky bit set. Now only the owners can delete any file in such directories.&lt;br /&gt;&lt;br /&gt;Directories with sticky bit set have t letter in the execute permission set for others, as seen by the output of “ls –l”.&lt;br /&gt;&lt;br /&gt;rwxrwxrwt ( sticky bit is set and execute permission for others)&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;rwxrwxrwT ( sticky bit set but no execute permission for others)&lt;br /&gt;&lt;br /&gt;Capital T means that others don’t have execute permission for that directory, so they can’t search into it.&lt;br /&gt;&lt;br /&gt;update: Added setgid directory explanation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-986313829934623102?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/986313829934623102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=986313829934623102&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/986313829934623102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/986313829934623102'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2009/07/tutorial-on-setuid-and-sticky-bits-in.html' title='A tutorial on setuid and sticky bits in Unix'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-6085990485100430451</id><published>2009-05-19T16:39:00.002+05:30</published><updated>2009-05-21T12:17:19.655+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>How Unix shell executes commands</title><content type='html'>&lt;div style="text-align: justify;"&gt;Unix shell runs all the commands in a new forked child process.  It means, the shell in which the command is invoked becomes the parent that creates a child process ( a shell process). The child in turn exec's the command by overlaying itself with the command's image. Why would the  new process be created for executing the command? Can't the shell run the command in the same process. The answer is:&lt;br /&gt;If the shell overlays itself with the command's process image, it would have nowhere to return when the command finishes executing. This would close the parent shell. Running "exec command_name" effectively does this i.e. runs the command that evetually closes the shell when the command execution is over. To avoid closing the invoking shell itself, all commands are run in a new child process  by the shell.&lt;br /&gt;&lt;br /&gt;We can use "strace" utility to track down the child process creation and execution system calls. Note that doing strace on the command will only trace the command after fork i.e. the output will show execve(...) followed by other syscalls ending with some exit call. This is so because we are tracing only the command which really is in the child process. To trace how the shell has created a new child process by fork() (clone() family in Linux), do strace on the current shell in a separate terminal and then run a command in the current shell.&lt;br /&gt;&lt;br /&gt;PS: edited off the 'subshell' part as that is a different beast altogether...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-6085990485100430451?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/6085990485100430451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=6085990485100430451&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6085990485100430451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6085990485100430451'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2009/05/how-unix-shell-executes-commands.html' title='How Unix shell executes commands'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-8281592592510318670</id><published>2009-01-02T20:50:00.005+05:30</published><updated>2009-01-02T21:38:55.833+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='careers'/><category scheme='http://www.blogger.com/atom/ns#' term='teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineer'/><category scheme='http://www.blogger.com/atom/ns#' term='salary'/><title type='text'>Software engineering vs teaching</title><content type='html'>&lt;div style="text-align: justify;"&gt;I faced a reality check last week. I always wondered why anyone, competent and educated in the field of computers, would pursue a career in teaching and not join a company as software engineer. It was perhaps the inability of the person to cope up with the demanding environment in the software field. That could be the reason anyone leaves a better paying job and settles for lowly-paid teaching career - or so I thought.&lt;br /&gt;&lt;br /&gt;Last week I sat down and tried to list the pros and cons of the two careers.&lt;br /&gt;Here's what I got from my "findings".&lt;br /&gt;&lt;br /&gt;Let's tackle the salary part first. Since a teaching career asks for a formal degree, preferably a post graduation, let's assume the person is a post graduate in Computers.&lt;br /&gt;&lt;br /&gt;Now, if the person choses to join an IT career, he has to devote at least 40 hours a week for work; in reality it could be much more if one takes into account the unpaid "late-nights". Assuming a 30 days month, and a good INR 50,000 a month in salary, the person makes about INR 285/hr.&lt;br /&gt;&lt;br /&gt;On the other hand, a teacher at an engineering institute has about 18 hrs a week of teaching load. For INR 40,000 a month, the teacher would be making about INR 500/hr on average - a full 215/hr more on average than his counterpart!&lt;br /&gt;&lt;br /&gt;Other pros of a teaching job vs software engineering -&lt;br /&gt;&lt;br /&gt;- no late-night unpaid overtime work that one is expected to do&lt;br /&gt;- better quality of life, better family life as well; a teacher can spend much more time with family&lt;br /&gt;- no continuous sitting-in-front-of-computer-screen until you visit your doc for back-pain; backache    is known to be a common ailment with IT professionals&lt;br /&gt;- less stress; no deadlines&lt;br /&gt;- stability; none of those pink-slip days inspite of very good performance. It's not uncommon to find star-achievers, poster-boys being given a boot if the head honchos make company wide cost-cutting   plans&lt;br /&gt;&lt;br /&gt;Taking all the above into account, I wonder why anyone would prefer IT career over teaching if given a choice. Is it for that extra few thousands? Consider this! IT companies are located mostly in places where the extra salary of a software professional would be spent on rent and other costs. A teacher can take up consultancy work and could earn even more ...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-8281592592510318670?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/8281592592510318670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=8281592592510318670&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8281592592510318670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8281592592510318670'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2009/01/software-engineering-vs-teaching.html' title='Software engineering vs teaching'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-16925553807682190</id><published>2008-12-16T13:59:00.003+05:30</published><updated>2008-12-20T13:18:00.653+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>C++ inheritance - public, private, protected</title><content type='html'>&lt;div style="text-align: justify;"&gt;Inheritance in C++ could be public, private, or public. It could be confusing for a beginner to find out accessibility of members and objects of these classes. Though public inheritance is mostly used, especially if there are virtual functions in the base class, other two types of inheritance have their uses as well. Here's an example program to make it clear how the 3 of them work i.e. public inheritance, private inheritance, and protected inheritance.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include&lt;iostream&gt;&lt;iostream&gt;&lt;br /&gt;&lt;br /&gt;class B{&lt;br /&gt;char a;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;char b;&lt;br /&gt;&lt;br /&gt;protected:&lt;br /&gt;char c;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// public inheritance&lt;br /&gt;&lt;br /&gt;class D:public B{&lt;br /&gt;&lt;br /&gt;// private members of B can't be accessed&lt;br /&gt;//can access public and protected members of B&lt;br /&gt;&lt;br /&gt;char d;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;&lt;br /&gt;void f(){&lt;br /&gt;   //can't do this&lt;br /&gt;   // d = a;&lt;br /&gt; &lt;br /&gt;   d = b; // works&lt;br /&gt;   d = c; // works&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;// class D has the following additional members inherited from B&lt;br /&gt;// public: char b&lt;br /&gt;// and&lt;br /&gt;// protected: char c&lt;br /&gt;// this means that any class derived from D can access both b and c&lt;br /&gt;// b is accessible by objects of derived class, c is not (#1)&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// private inheritance&lt;br /&gt;&lt;br /&gt;class E:private B{&lt;br /&gt;&lt;br /&gt;// private members of B can't be accessed...&lt;br /&gt;// can access public and protected members of B&lt;br /&gt;&lt;br /&gt;char d;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;void f(){&lt;br /&gt;   //can't do this&lt;br /&gt;   // d = a;&lt;br /&gt;   d = b; // works&lt;br /&gt;   d = c; // works&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// class E has the following additional data members inherited from B&lt;br /&gt;// private:char b&lt;br /&gt;// and&lt;br /&gt;// private: char c&lt;br /&gt;// this means that any class derived from E can't access any of the above derived data&lt;br /&gt;// members, nor are they accessible to objects of derived class, public functions&lt;br /&gt;// though are accessible to objects of this class (#2)&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// protected inheritance&lt;br /&gt;&lt;br /&gt;class F:protected B{&lt;br /&gt;  &lt;br /&gt;// private members of B can't be accessed in this class as above, so&lt;br /&gt;// can access public and protected members of B&lt;br /&gt;&lt;br /&gt;char d;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;&lt;br /&gt;void f(){&lt;br /&gt;   //can't do this&lt;br /&gt;   // d = a;&lt;br /&gt;   d = b; // works&lt;br /&gt;   d = c; // works&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;// class F has following additional members inherited from B&lt;br /&gt;// protected:char b&lt;br /&gt;// and&lt;br /&gt;// protected: char c&lt;br /&gt;// this means that any class derived from F can access&lt;br /&gt;// the above members, but they can't be accessed from&lt;br /&gt;// derived class objects (#3)&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;class DF: public F{&lt;br /&gt;char d;&lt;br /&gt;  &lt;br /&gt;public:&lt;br /&gt;void g(){&lt;br /&gt;   d = b; // works from #3 above&lt;br /&gt;   d = c; // works from #3&lt;br /&gt;   }&lt;br /&gt;};&lt;br /&gt;              &lt;br /&gt;         &lt;br /&gt;&lt;br /&gt;int main(){&lt;br /&gt;&lt;br /&gt;char i;&lt;br /&gt;&lt;br /&gt;B b;&lt;br /&gt;D d;&lt;br /&gt;E e;&lt;br /&gt;F f;&lt;br /&gt;&lt;br /&gt;// these won't work by definition&lt;br /&gt;// b.c = i;&lt;br /&gt;// b.a = i;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// for object d of publicly derived class&lt;br /&gt;// this works from (#1)&lt;br /&gt;d.b = i;&lt;br /&gt;// this won't work from (#1)&lt;br /&gt;// d.c = i;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// for object e of privately derived class&lt;br /&gt;// these won't work from (#2)&lt;br /&gt;// e.b = i;&lt;br /&gt;// e.c = i;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// for object f of protected-ly derived class&lt;br /&gt;// these won't work from (#3)&lt;br /&gt;// f.b = i;&lt;br /&gt;// f.c = i;&lt;br /&gt;&lt;br /&gt;return 0;&lt;br /&gt;}&lt;/iostream&gt;&lt;/iostream&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-16925553807682190?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/16925553807682190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=16925553807682190&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/16925553807682190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/16925553807682190'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2008/12/c-inheritance-public-private-protected.html' title='C++ inheritance - public, private, protected'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-6235934053432166740</id><published>2008-10-26T21:28:00.003+05:30</published><updated>2008-10-26T21:36:06.994+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>Small company or MNC</title><content type='html'>One of my friends has recently graduated and is in a dilemma on which among the two offers to accept. An offer he has is from a multi-billion, multi-thousand-employees product MNC where he would be using C language and Unix at work that is about debugging one of the company products. The other offer is from a small EDA company where he would be using C++ and Windows as a developer of EDA tools for engineers. The smaller company has less than 50 people on roll. The CEO himself interviewed my friend and has suggested that the friend would have more opportunities to learn and grow in a smaller company like his one. &lt;br /&gt;&lt;br /&gt;On the other hand, the big MNC's salary offer is more than twice that of the smaller company's.&lt;br /&gt;&lt;br /&gt;Friend is in a dilemma and is seeking my advice. Which company should he join?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-6235934053432166740?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/6235934053432166740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=6235934053432166740&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6235934053432166740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6235934053432166740'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2008/10/small-company-or-mnc.html' title='Small company or MNC'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3613724710231579368</id><published>2008-10-24T20:27:00.003+05:30</published><updated>2008-10-24T20:32:33.845+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>pointer pitfall</title><content type='html'>Some C pointer fundamentals manage to fox even seasoned programmers.&lt;br /&gt;For example, what is wrong with the following piece of code:&lt;br /&gt;&lt;br /&gt;func() {&lt;br /&gt;&lt;br /&gt;char *c;&lt;br /&gt;c = "this is a string.";&lt;br /&gt;*c = 'T';&lt;br /&gt;printf("%s", c);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code tries to capitalize the first letter of the string. It looks correct at first glance, but is not. It might even compile without any error, but will throw out an error when run.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3613724710231579368?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3613724710231579368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3613724710231579368&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3613724710231579368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3613724710231579368'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2008/10/pointer-pitfall.html' title='pointer pitfall'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3348889508258619272</id><published>2007-11-28T22:34:00.001+05:30</published><updated>2007-11-30T16:48:56.863+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Fun with JavaScript</title><content type='html'>&lt;a href="http://www3.webng.com/redtophank/cit.html"&gt;This &lt;/a&gt;is a  &lt;span style="font-weight: bold;"&gt;JavaScript &lt;/span&gt;I found while stumbling.&lt;a href="http://www3.webng.com/redtophank/cit.html"&gt;&lt;dil; dis="DI[" position="'absolute';" left="Math.sin(R*x1+i*x2+x3)*x4+x5;" top="Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5"&gt;&lt;br /&gt;&lt;/dil;&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;It works like this. Just search for an image in Google. Once it shows up images as the result of your search, enter the script (without quotes) in the address bar of your browser. It will rotate the images around. If you keep pressing enter again and again, the speed of rotation keeps increasing as well.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3348889508258619272?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3348889508258619272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3348889508258619272&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3348889508258619272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3348889508258619272'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/11/fun-with-javascript.html' title='Fun with JavaScript'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-905561399514048731</id><published>2007-08-09T19:41:00.000+05:30</published><updated>2007-08-09T19:48:29.565+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='UltraSparc T2'/><category scheme='http://www.blogger.com/atom/ns#' term='Niagara'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><title type='text'>UltraSparc T2 : Mainframe-on-a-chip?</title><content type='html'>&lt;div style="text-align: justify;"&gt;In my &lt;a href="http://osgeek.blogspot.com/2007/08/niagara-2-ie-ultrasparc-t2.html"&gt;previous post&lt;/a&gt;, I wondered whether Niagara 2 (ULtraSparc T2) could run 64 different OS instances or were they just Solaris Zones (containers). It is confirmed that it could indeed run 64 OS instances using LDom built-in technology in T2. I found this &lt;a href="http://blogs.sun.com/ash/resource/flashdemos/64-ldoms-on-t2.html"&gt;Sun blog post&lt;/a&gt; that demonstrates 64 instances of Solaris running in 64 T2 threads. In &lt;a href="http://blogs.sun.com/ash/resource/flashdemos/linux-ldom.html"&gt;another post&lt;/a&gt; it goes further and shows Solaris and Ubuntu running simultaneously. That makes T2 one helluva multicore chip!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-905561399514048731?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/905561399514048731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=905561399514048731&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/905561399514048731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/905561399514048731'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/08/ultrasparc-t2-mainframe-on-chip.html' title='UltraSparc T2 : Mainframe-on-a-chip?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5593598873533913776</id><published>2007-08-08T18:37:00.000+05:30</published><updated>2007-08-08T18:44:48.671+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><title type='text'>Niagara 2 i.e. UltraSparc T2</title><content type='html'>&lt;div style="text-align: justify;"&gt;It's very sad that most of the processor news in the world is confined to x86 only. When I &lt;a href="http://osgeek.blogspot.com/2006/12/trends-in-cpu-design_11.html"&gt;commented &lt;/a&gt;on processors last year, I mentioned Niagara chip ie UltraSparc T1. Now Sun has come out with the second version of the energy efficient Niagara 2, officially named UltraSparc T2. With 8 cores in the chip and 8 threads per core it will have a total of 64 hardware threads. The 8 threads in each core would run in an I/O multiplexed way i.e. at any time only 1 thread can run and another thread will switch in if the running thread enters I/O cycle. That means at any point of time, 8 threads will be running simultaneously in the chip. UltraSparc T1 was similar but had 4 threads per core, for a total of 32 threads.&lt;br /&gt;&lt;br /&gt;From the webcast on Sun's page, I found the following interesting information on T2 chip:&lt;br /&gt;&lt;br /&gt;One major difference between T2 and T1 is that T2 has a floating point unit on each core. T1 had one such unit for the entire chip that made it practically useless for floating-point intensive tasks. T2 thus seems to have taken care of that limitation. T2 threads run at 1.4 GHz.&lt;br /&gt;&lt;br /&gt;For crypto intensive tasks there is a cryptographic processor unit on each core. Also, there are two PCI express I/O ports on the chip as well as integrated 10 Gb Ethernet.&lt;br /&gt;&lt;br /&gt;Sun aims to sell this chip to other vendors as well if they want to use it in their servers. This is a departure from its earlier policy where it used its chips only in its servers and sold those servers.&lt;br /&gt;&lt;br /&gt;This chip seems great for multi-threaded applications written in languages such as Java.&lt;br /&gt;&lt;br /&gt;One thing that was funny in the webcast was that T2 was getting marketed as the fastest processor at 89.6 GHz. It was simply calculated by multiplying 64 by 1.4 GHz.&lt;br /&gt;It was like saying a train with 10 coaches running at 100 miles/hr the fastest vehicle at 1000 km/hr!&lt;br /&gt;&lt;br /&gt;A few times during the webcast it was mentioned that 64 Operating systems could run simultaneously in 64 threads due to LDom technology. I think they were talking about zones, and not really different OS's. Or is it possible to really run different OS's in that way? I think not but correct me if I am wrong.&lt;br /&gt;&lt;br /&gt;UltraSparc T2 sure is a great chip with energy efficiency and should give good throughput for well written applications, at a very low form-factor in a data center.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5593598873533913776?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5593598873533913776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5593598873533913776&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5593598873533913776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5593598873533913776'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/08/niagara-2-ie-ultrasparc-t2.html' title='Niagara 2 i.e. UltraSparc T2'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1345548269487826947</id><published>2007-08-05T00:45:00.000+05:30</published><updated>2007-08-05T00:50:13.197+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Gmail'/><title type='text'>Preventing Gmail cookie stealing</title><content type='html'>&lt;p style="margin-bottom: 0in; text-align: justify;"&gt;There has been a news of a vulnerability from the use of cookies by email sites like Gmail at Wi-Fi hotspots. Cookies can be stolen by using sniffing softwares and entire session can be hijacked to do malicious things on the target accounts. A simple method to stop such attacks is to use SSL for the entire session, not just for login that gmail does by default.  A nice add-on from &lt;a href="http://www.customizegoogle.com"&gt;CustomizeGoogle &lt;/a&gt; can be used for making sessions use SSL. In addition, there are many other cool features we get on installing this add-on to Firefox browser. These features can be selected from Tools menu of Firefox and includes options such as making ads invisible in gmail and google search results. Also, links to search results from Yahoo and other popular search engines can be added for the same search string in Google search.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1345548269487826947?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1345548269487826947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1345548269487826947&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1345548269487826947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1345548269487826947'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/08/preventing-gmail-cookie-stealing.html' title='Preventing Gmail cookie stealing'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1891828382355401246</id><published>2007-07-25T00:20:00.000+05:30</published><updated>2007-07-25T00:40:54.257+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Find specific files like mp3 from Google search</title><content type='html'>It seems old tip but I found this only recently. To search files like mp3 or other smaller files from Google - &lt;span style="font-style: italic;"&gt;e.g.&lt;/span&gt; if you want to find mp3 for a certain song, say, "hips don't lie", do&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;intitle:index.of + "mp3" + "hips don't lie" &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To get results having no *.htm or *.html files, you can do&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;intitle:index.of + "mp3" + "hips don't lie" -htm -html&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The results give a lot of locations to download the files from, sites that are normally hard to find.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1891828382355401246?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1891828382355401246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1891828382355401246&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1891828382355401246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1891828382355401246'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/07/find-specific-files-like-mp3-from.html' title='Find specific files like mp3 from Google search'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3466889602270755485</id><published>2007-06-18T21:10:00.000+05:30</published><updated>2007-06-18T21:45:04.704+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>SysAdmin mag &amp; How to write unmaintainable code</title><content type='html'>&lt;div style="text-align: justify;"&gt;June's issue of &lt;span style="font-weight: bold;"&gt;SysAdmin &lt;/span&gt;magazine, has some interesting Q&amp;A's on Solaris. Questions on &lt;span style="font-weight: bold;"&gt;superblock&lt;/span&gt;, alternative methods for &lt;span style="font-weight: bold;"&gt;patching&lt;/span&gt;, etc. are given along with answers. It can be &lt;a href="http://www.samag.com/documents/s=10128/sam0706g/0706g.htm"&gt;read here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Found &lt;a href="http://www.web-hits.org/txt/codingunmaintainable.html"&gt;this &lt;/a&gt;hilarious take on unmaintainable code written some time back when it was &lt;span style="font-weight: bold;"&gt;slashdotted&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3466889602270755485?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3466889602270755485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3466889602270755485&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3466889602270755485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3466889602270755485'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/sysadmin-mag-how-to-write.html' title='SysAdmin mag &amp; How to write unmaintainable code'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1411434054107883008</id><published>2007-06-16T17:34:00.001+05:30</published><updated>2007-06-16T18:43:05.905+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Which "for loop" works better/faster</title><content type='html'>&lt;div style="text-align: justify;"&gt;I was asked this question in an interview long ago and thought I would post it here.&lt;br /&gt;Which of the following &lt;span style="font-style: italic;"&gt;for loop&lt;/span&gt; works better assuming no special compiler play, just on programming logic. Will both code pieces execute equally fast?&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;1 - &lt;span&gt;&lt;br /&gt;for ( i=0; i &lt;10; i++)&lt;br /&gt;for (j=0; j&lt;100; j++)&lt;br /&gt;printf("hello\n");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2 - &lt;span&gt;&lt;br /&gt;for (j=0; j&lt;100; j++)&lt;br /&gt;for ( i=0; i &lt;10; i++)&lt;br /&gt; printf("hello\n");&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1411434054107883008?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1411434054107883008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1411434054107883008&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1411434054107883008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1411434054107883008'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/which-for-loop-works-better.html' title='Which &quot;for loop&quot; works better/faster'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-6079007748889367109</id><published>2007-06-15T05:03:00.000+05:30</published><updated>2007-06-15T06:11:39.184+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='file recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><title type='text'>How file recovery software works</title><content type='html'>&lt;div style="text-align: justify;"&gt;I discussed about a &lt;a href="http://www.file-recovery.net/"&gt;File recovery tool&lt;/a&gt; in one of my &lt;a href="http://osgeek.blogspot.com/2007/06/active-file-recovery-tool.html"&gt;earlier posts&lt;/a&gt; and deferred the discussion on how such tools work for some future post. Today I will discuss how &lt;span style="font-weight: bold;"&gt;file recovery software&lt;/span&gt; actually works.&lt;br /&gt;&lt;br /&gt;Files in a computer  have a &lt;span style="font-weight: bold;"&gt;volume table&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;directory table&lt;/span&gt;) that contains, among other things, an entry for each file in the hard disk along with the address of the location where the file is stored. When a file is deleted, a small part of the table for that entry is modified marking the space as free. The data still remain in the disk until it is overwritten at some later time. Now two possibilities arise:&lt;br /&gt;&lt;br /&gt;1) The table entry for a deleted file is intact. In this case, it will still contain the pointer to the file. A quick reading of volume table by the &lt;span style="font-weight: bold;"&gt;file recovery software&lt;/span&gt; followed by looking at the location for the file may recover data if it is not overwritten by that time. This is &lt;span style="font-weight: bold;"&gt;QuickScan &lt;/span&gt;option in the tool in &lt;a href="http://bp0.blogger.com/_ix33dCo9t8Q/RmK-6gMeYYI/AAAAAAAAAJU/Fj0VommaQkk/s1600-h/active-file-recovery.JPG"&gt;the figure&lt;/a&gt; of &lt;a href="http://osgeek.blogspot.com/2007/06/active-file-recovery-tool.html"&gt;earlier post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;2) The table entry itself is overwritten, &lt;span style="font-style: italic;"&gt;i.e.&lt;/span&gt; some other file entry has replaced the free'd file's entry. In this case, the &lt;span style="font-weight: bold;"&gt;file recovery software&lt;/span&gt; uses &lt;span style="font-weight: bold;"&gt;Advance mode&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;SuperScan &lt;/span&gt;option in &lt;a href="http://bp0.blogger.com/_ix33dCo9t8Q/RmK-6gMeYYI/AAAAAAAAAJU/Fj0VommaQkk/s1600-h/active-file-recovery.JPG"&gt;the figure&lt;/a&gt;). In this mode, it scans the whole disk reading each block and matches the files there with entries in the table. That is the reason this option takes a long time. If the file in any block has an associated entry in the table, it means the file is still alive &lt;span style="font-style: italic;"&gt;i.e.&lt;/span&gt; not deleted, and it skips to next file and its entry. If a file has no corresponding entry in the table, it means this file has been deleted and so the tool marks this as "Found".&lt;br /&gt;&lt;br /&gt;The most important step in &lt;span style="font-weight: bold;"&gt;data recovery&lt;/span&gt; after a file is accidentally deleted is to make sure that the disk is immediately detached if one wants to recover the file. Otherwise, the data might get overwritten and not recoverable by such tools. It also means that just deleting a file doesn't ensure the data is gone. One needs a proper tool to erase data. Such tools overwrite the whole data in the disk with random bit patterns many times over rendering it pattern-less and non-recoverable. Hardware techniques also exist to erase data such as &lt;span style="font-weight: bold;"&gt;degaussing &lt;/span&gt;which basically erases data in a disc magnetically.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-6079007748889367109?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/6079007748889367109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=6079007748889367109&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6079007748889367109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6079007748889367109'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/how-file-recovery-software-works.html' title='How file recovery software works'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-9028109051430566226</id><published>2007-06-14T05:05:00.000+05:30</published><updated>2007-06-15T05:20:15.181+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSolaris'/><title type='text'>Linus likes ZFS, but</title><content type='html'>&lt;div style="text-align: justify;"&gt;Online world is abuzz with discussions on &lt;a href="http://lkml.org/lkml/2007/6/12/232"&gt;the mail&lt;/a&gt; that &lt;span style="font-weight: bold;"&gt;Linus Torvalds&lt;/span&gt; sent to lkmk.org with some seemingly incendiary anti-Sun remarks, and a more cool-headed &lt;a href="http://blogs.sun.com/jonathan/entry/one_plus_one_is_fifty"&gt;response &lt;/a&gt;by the &lt;span style="font-weight: bold;"&gt;Sun &lt;/span&gt;CEO Jonathan Schwartz.  It has sent all the Paris Hilton front page stories down to page 5 to bite the dust. Some things this all seems to imply:&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;OpenSolaris &lt;/span&gt;has surely begun to ruffle some feathers; even Linus says OpenSolaris' &lt;span style="font-weight: bold;"&gt;ZFS &lt;/span&gt;is something which could make &lt;span style="font-weight: bold;"&gt;Linux &lt;/span&gt;to change its license. That is something!&lt;br /&gt;&lt;br /&gt;-  The only thing most Linux developers including Linus think OpenSolaris needs Linux for are drivers. Does it imply that if a user can get a machine working with OpenSolaris, there'd be no need to install Linux?&lt;br /&gt;&lt;br /&gt;- Linux users want ZFS. Linux developers have started to realize its importance as a Filesystem, but are diverting the issue with licensing and patent issues. Why not directly talk to Sun and implement the stuff? Surely. if &lt;span style="font-weight: bold;"&gt;FreeBSD &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;Mac OS X&lt;/span&gt; can implement it, so can Linux. It could be that it is harder to port it to Linux and the developers have become lazy.&lt;br /&gt;&lt;br /&gt;- Somehow Linus seems to know that "Linux code is _better_". Does it mean he already has peeked into OpenSolaris code and compared it with the Linux before coming to conclusion? That is interesting, and as illuminating as his assertion.&lt;br /&gt;&lt;br /&gt;I have a great respect for Linus as is evidenced by one of my &lt;a href="http://osgeek.blogspot.com/2006/12/linux-on-gpl-kernel-modules.html"&gt;earlier posts&lt;/a&gt;. But &lt;a href="http://lkml.org/lkml/2007/6/12/232"&gt;mails like this&lt;/a&gt; are uncharacteristic of him. I even feel that it could have been rebuked as FUD-spreading if it had come from someone other, say Microsoft. Hopefully, in the future, Linux and OpenSolaris will be living at peace and users will have choice of an OS not dictated by the license.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-9028109051430566226?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/9028109051430566226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=9028109051430566226&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/9028109051430566226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/9028109051430566226'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/linus-likes-zfs-but.html' title='Linus likes ZFS, but'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-285474010813577682</id><published>2007-06-13T00:18:00.000+05:30</published><updated>2007-06-13T01:33:28.412+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Sun'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>ZFS flavor of the month</title><content type='html'>&lt;div style="text-align: justify;"&gt;A week after &lt;span style="font-weight: bold;"&gt;Sun &lt;/span&gt;CEO Jonathan Schwartz commented that &lt;span style="font-weight: bold;"&gt;ZFS &lt;/span&gt;would be in Leopard, an &lt;span style="font-weight: bold;"&gt;Apple &lt;/span&gt;executive said, "ZFS is not happening", when questioned about ZFS's inclusion in Leopard. Without ZFS announcement in the Apple WWDC, Mac developers would be disappointed and some reporters said they felt sleepy during the keynote.&lt;br /&gt;&lt;br /&gt;(&lt;span style="font-weight: bold;"&gt;Update &lt;/span&gt;: Apple has denied the executive's claims and is clarifying that ZFS will be available as a limited option in OS X. See comments on &lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=199903281&amp;cid=RSSfeed_IWK_News"&gt;t&lt;/a&gt;&lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=199903281&amp;amp;cid=RSSfeed_IWK_News"&gt;he original story&lt;/a&gt; for details.)&lt;br /&gt;&lt;br /&gt;ZFS seems to be flavor of the month. While many were expecting Apple to announce it was adding ZFS to Mac OS X, it doesn't seem likely after reading the Apple executive's comment. At least not in the forthcoming release.&lt;br /&gt;&lt;br /&gt;In other news, &lt;a href="http://www.infoworld.com/article/07/06/07/23TCzfs_1.html"&gt;ZFS was reviewed&lt;/a&gt; very positively in an &lt;span style="font-weight: bold;"&gt;InfoWorld &lt;/span&gt;article. The editor reviewing the ZFS was all praise for it. "&lt;span style="font-style: italic;"&gt;It’s not every day that the computer industry delivers the level of innovation found in Sun's ZFS. More and more advances in the science of IT are based on simply multiplying the status quo. ZFS breaks all the rules here, and it arrives in an amazingly well-thought-out and nicely implemented solution&lt;/span&gt;."&lt;br /&gt;Ok that makes up for "late by a year review." One thing that I've observed is that though Sun says ZFS doesn't stand for Zettabyte File System anymore, most reporters still make it a point to expand ZFS that way.&lt;br /&gt;&lt;br /&gt;Then, &lt;span style="font-weight: bold;"&gt;eWEEK &lt;/span&gt;gave an &lt;a href="http://www.eweek.com/slideshow_viewer/0,1205,l=&amp;s=25951&amp;amp;amp;amp;amp;amp;amp;a=209331&amp;amp;po=7,00.asp?p=y"&gt;Excellence award to ZFS&lt;/a&gt; in the E-Business Foundations category. ZFS deserves many such awards and kudos. It has made a big difference in the world of File systems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-285474010813577682?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/285474010813577682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=285474010813577682&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/285474010813577682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/285474010813577682'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/zfs-flavor-of-month.html' title='ZFS flavor of the month'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-4802660806072487424</id><published>2007-06-12T00:57:00.001+05:30</published><updated>2007-06-12T00:59:17.705+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Informative slide</title><content type='html'>From the net:&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=33834&amp;doc=shift-happens-23665" height="348" width="425"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=33834&amp;amp;doc=shift-happens-23665"&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-4802660806072487424?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/4802660806072487424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=4802660806072487424&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4802660806072487424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4802660806072487424'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/informative-slide.html' title='Informative slide'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-8984241716842602908</id><published>2007-06-10T23:58:00.000+05:30</published><updated>2007-06-11T00:14:54.196+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><title type='text'>Links and symlinks - Unix and Windows</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Hard links &lt;/span&gt;in &lt;span style="font-weight: bold;"&gt;Unix &lt;/span&gt;are files that have different names and can possibly different directories, but they have same &lt;span style="font-style: italic;"&gt;inode &lt;/span&gt;&lt;span style="font-style: italic;"&gt;i.e&lt;/span&gt;.&lt;span style="font-style: italic;"&gt; &lt;/span&gt;the file is stored at any one place in the hard disk. All the hard links to any file point to that location. One can delete a hard link but it won't delete the file if there is any other link to it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Symbolic links or symlinks&lt;/span&gt; on the other hand are small file that contain the pointer to another file. They are different from the actual file they are pointing to. So deleting a symbolic link won't delete the actual file. The implementation of symbolic links in Unix is transparent to the user. If a user opens and edits a symbolic link, he actually is editing the file the symbolic link points to. The symbolic link remains just a pointer to the actual file.&lt;br /&gt;&lt;br /&gt;While &lt;span style="font-weight: bold;"&gt;Windows &lt;/span&gt;have &lt;span style="font-weight: bold; font-style: italic;"&gt;shortcuts &lt;/span&gt;that are nearest thing to symbolic links, if someone edits a shortcut file, it actually gets changed and so it is not as transparent to the user as Unix. I read somewhere that Windows &lt;span style="font-weight: bold;"&gt;Vista &lt;/span&gt;has introduced transparent symbolic links similar to Unix.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-8984241716842602908?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/8984241716842602908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=8984241716842602908&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8984241716842602908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8984241716842602908'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/links-and-symlinks-unix-and-windows.html' title='Links and symlinks - Unix and Windows'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-8364663332952759427</id><published>2007-06-09T22:31:00.000+05:30</published><updated>2007-06-09T23:10:09.580+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='command'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Core Solaris kernel paths</title><content type='html'>&lt;div style="text-align: justify;"&gt;Sometime back I was searching online the path for core kernel binaries for &lt;span style="font-weight: bold;"&gt;Solaris &lt;/span&gt;but the information was hard to find and it was not exhaustive. Finally I was able to find the information in &lt;a href="http://tinyurl.com/yr7dzw"&gt;&lt;span style="font-weight: bold;"&gt;Solaris Internals&lt;/span&gt;&lt;/a&gt; book. The paths for core Solaris kernel binaries are:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/kernel/genunix&lt;/span&gt; - Platform independent core kernel for non-UltraSparc based systems  resides in this binary. All non-UltraSparc based systems load this genunix during boot time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/platform/sun4u/kernel/genunix&lt;/span&gt; - optimized binary for UltraSparc, but it is independent of the system type. This binary is loaded during boot time only by UltraSparc systems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/platform/&lt;arch&gt;&lt;architecture&gt;{arch}/&lt;/architecture&gt;&lt;/arch&gt;&lt;/span&gt;&lt;arch&gt;&lt;span style="font-weight: bold;"&gt;kernel/unix&lt;/span&gt; - Platform dependent component of the core kernel resides here. &lt;span style="font-weight: bold;"&gt;{arch}&lt;/span&gt; is the architecture of the system.&lt;br /&gt;&lt;br /&gt;The other kernel modules get loaded on demand later &lt;span style="font-style: italic;"&gt;i.e.&lt;/span&gt; when an application requires them. They reside under the &lt;span style="font-weight: bold;"&gt;/usr&lt;/span&gt; directory tree.&lt;br /&gt;&lt;br /&gt;All these binaries contain various low level kernel services that are needed to run the system. The command to find all the kernel modules in a system is&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# modinfo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It will give as output the loaded modules in a running system.&lt;br /&gt;&lt;br /&gt;&lt;/arch&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-8364663332952759427?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/8364663332952759427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=8364663332952759427&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8364663332952759427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8364663332952759427'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/core-solaris-kernel-paths.html' title='Core Solaris kernel paths'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5674344034247521267</id><published>2007-06-08T20:24:00.000+05:30</published><updated>2007-06-08T20:34:42.403+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Going from JDS to CDE</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have started using &lt;span style="font-weight: bold;"&gt;CDE &lt;/span&gt;now for &lt;span style="font-weight: bold;"&gt;Solaris&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;JDS &lt;/span&gt;was becoming a pain with its sluggish pace. It was eating a lot of memory, too. CDE seems lightweight in this regard as compared to JDS. There are a lot of things in CDE that I wish were more JDS-like. I will try to configure and see how friendly I can make it for general pupose use. It will be used for web-browsing and mails.&lt;br /&gt;&lt;br /&gt;The main difference between CDE and JDS when one begins using CDE after a long time with other desktops is how the minimize windows feature works, and icons on the desktop that are absent in CDE. On minimizing any window, it appears as an icon on the desktop, unlike JDS's "go to bottom panel behavior."&lt;br /&gt;&lt;br /&gt;The responsiveness of CDE is much better than JDS though and that is what sets it apart.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5674344034247521267?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5674344034247521267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5674344034247521267&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5674344034247521267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5674344034247521267'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/going-from-jds-to-cde.html' title='Going from JDS to CDE'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-2176073656966266963</id><published>2007-06-05T05:28:00.000+05:30</published><updated>2007-06-05T05:41:42.488+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Creating a dynamic library - example</title><content type='html'>&lt;div style="text-align: justify;"&gt;We all use library functions in the programs we write. An example of library that is always used in Solaris and Unix like Operating systems is libc.so. But how to create a library? It is not hard. A dynamic library can be easily created as shown in the following example.&lt;br /&gt;&lt;br /&gt;Let's say we want to create a library called libgeek.so. It will contain an example function called my_library_func() that we will use in our program. We will create a simple program called geek.c that has the function we wanted. We will compile this as a library and call it libgeek.so (library names begin with lib) :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cat geek.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;my_library_func()&lt;br /&gt;{&lt;br /&gt;  printf("Inside my library function");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The above is a library function we wanted to create. We then compile it into a dynamic library by giving a -G option to compiler :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cc -o libgeek.so -G geek.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, we can use the generated library libgeek.so in our programs like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cat hellolibrary.c&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;  my_library_func();&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now, we can compile our program and tell the linker to link to the library we created for my_library_func() :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cc hellolibrary.c -L/home/osgeek -R/home/osgeek -lgeek&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L and R tell linker the path to look up during link-time and run-time to find library libgeek.so. The library libgeek.so is used with "lib" part removed and "l" prefixed as "lgeek".&lt;br /&gt;&lt;br /&gt;When we run this program, the output would look like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ a.out&lt;/span&gt;&lt;br /&gt;Inside my library function&lt;br /&gt;&lt;br /&gt;That's it. We created a library and used it in a program.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-2176073656966266963?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/2176073656966266963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=2176073656966266963&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2176073656966266963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2176073656966266963'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/creating-dynamic-library-example.html' title='Creating a dynamic library - example'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5271205820568980389</id><published>2007-06-03T18:39:00.001+05:30</published><updated>2008-10-24T23:24:49.567+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='file recovery'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Active File Recovery tool</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today, I'll talk about a tool for Windows. Under Windows, [Shift]+[Delete] deletes files without sending them to recycle bin, so we can't get it back. Similarly, if a disk is formatted, the data is lost and we can't get it back, normally. Data loss can also be a result of virus attack. Well, the data itself is not lost. We can actually recover data that is accidentally or unintentionally deleted. How a data is actually not lost, and how it can be recovered in theory will be a topic of some future post. Today I will review a product that practically recovers lost or deleted data from a PC with Windows Operating System.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;This product is called &lt;a href="http://www.file-recovery.net/"&gt;Active File Recovery&lt;/a&gt; and it recognizes the most common types of file and filesystems to recover.&lt;br /&gt;&lt;br /&gt;There is a demo version of the software that one can download and try. It recovers files of only upto 65 KB. The full version has no size limit on the files it can recover. I downloaded the demo version for this review to see how it works. The download was quick - a little over 2.4 MB, and installed quickly. On launch, the options menu was clear and easy to navigate and I quickly scanned my whole drive. The software detected a lot of deleted files. Unfortunately, the limit of 65 KB didn't allow me to recover (for testing purpose) some songs and movie clips I had deleted, but it did recover some small pics that were smaller than 65 KB.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_ix33dCo9t8Q/RmK-6gMeYYI/AAAAAAAAAJU/Fj0VommaQkk/s1600-h/active-file-recovery.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_ix33dCo9t8Q/RmK-6gMeYYI/AAAAAAAAAJU/Fj0VommaQkk/s400/active-file-recovery.JPG" alt="" id="BLOGGER_PHOTO_ID_5071826042656547202" border="0" /&gt;&lt;/a&gt;One would be surprised how much data remains in the disk and is recoverable. It can be months since you deleted certain files that show up and could be recovered. Just proves that one can't delete a data and handover the hard disk to someone or sell it (Ebay sellers better be careful). One has to erase the data with a good software for a certain amount of assurance that the data can't be recovered. Even then, there is some chance of the data getting recoverd with good quality software like Active file recovery. Imagine some person getting hold of your bank accounts and passwords!&lt;br /&gt;&lt;br /&gt;The software has other features as well. It can also recover data from memory cards that was formatted. For Windows Vista users, there's an Enterprise edition of Active File Recovery which can recover data from an unbootable system. For this they have a lightweight Windows Vista version WinPE 2.0 that boots and runs in RAM. From there, one can run Active File Recovery software to recover the data in the drives.&lt;br /&gt;&lt;br /&gt;The recovery tool will be useful for anyone who has accidentally deleted files. A demo version can be be downloaded from this &lt;a href="http://www.file-recovery.net/download.htm"&gt;Active File Recovery&lt;/a&gt; site.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;I've received a full version of the software and have done some testing with it. Unfortunately, I don't have extra drive needed to test recovery of movies and other bigger files, but I managed to rescue some deleted photos, about 1 MB in size. Trying to recover a bigger file within a drive overwrites some of the file's header data that makes it impossible to open the file, or worse, makes the Windows explorer crash when the folder containing the file is opened.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5271205820568980389?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5271205820568980389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5271205820568980389&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5271205820568980389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5271205820568980389'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/active-file-recovery-tool.html' title='Active File Recovery tool'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_ix33dCo9t8Q/RmK-6gMeYYI/AAAAAAAAAJU/Fj0VommaQkk/s72-c/active-file-recovery.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-2019723475106207519</id><published>2007-06-02T15:50:00.000+05:30</published><updated>2007-06-02T16:02:23.601+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox Add-on - Split browser</title><content type='html'>&lt;div style="text-align: justify;"&gt;I've recently started using &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4287"&gt;Split browser&lt;/a&gt; Add-on for &lt;span style="font-weight: bold;"&gt;Firefox browser&lt;/span&gt; and am greatly impressed with it. It adds value to my browsing experience. No need to switch to another tab when I want to reference something in a different page. I can look at both pages together by splitting the current browser window in any way I want - Left, Right, Top, Bottom. Once done, I can gather all the split windows to old style tabs. Tab that is currently open can also be split horizontally or vertically.&lt;br /&gt;&lt;br /&gt;On a related note, I un-installed the &lt;span style="font-weight: bold;"&gt;Cooliris Add-on&lt;/span&gt; I had installed about a month ago. While it did look useful in the beginning, it was becoming too obtrusive and an annoyance, especially when there were links very near to each other. Trying to open a link would bring up a preview of another link. Also, I was using it less and less. Good-bye &lt;span style="font-weight: bold;"&gt;Cooliris&lt;/span&gt;, Hi, &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4287"&gt;Split broswer&lt;/a&gt;!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-2019723475106207519?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/2019723475106207519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=2019723475106207519&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2019723475106207519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2019723475106207519'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/firefox-addon-split-browser.html' title='Firefox Add-on - Split browser'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-6640300941690261129</id><published>2007-06-01T23:57:00.000+05:30</published><updated>2007-06-02T04:21:46.994+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>How to find address of stack top : C</title><content type='html'>&lt;div style="text-align: justify;"&gt;In technical interviews, sometimes candidates are asked how they would  find the address of the top of the &lt;span style="font-weight: bold;"&gt;stack &lt;/span&gt;in their system by &lt;span style="font-weight: bold;"&gt;programming in C&lt;/span&gt;. One simple &lt;span style="font-weight: bold;"&gt;program &lt;/span&gt;that should work mostly is:&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;   int i;&lt;br /&gt;   printf("Top of  the stack is %p", &amp;i);&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;As &lt;span style="font-weight: bold;"&gt;local variables&lt;/span&gt; are stored on stack, this would give an approximate top of stack. There can be variations of this program that are also few-liners like above and give more accurate results. Any more example piece of code to find stack top?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-6640300941690261129?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/6640300941690261129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=6640300941690261129&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6640300941690261129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6640300941690261129'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/06/how-to-find-address-of-stack-top-c.html' title='How to find address of stack top : C'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3334199181469930058</id><published>2007-05-30T18:11:00.000+05:30</published><updated>2007-05-30T18:15:15.319+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>LaMacchia Loophole</title><content type='html'>&lt;div style="text-align: justify;"&gt;Year 1993. A 21 year-old student at MIT named &lt;span style="font-weight: bold;"&gt;David LaMacchia&lt;/span&gt; set up a bulletin board system called "&lt;span style="font-weight: bold;"&gt;Cynosure&lt;/span&gt;." It generated a lot of traffic worldwide. People used this service to download software they wanted or upload what they had. It was online for about six weeks before being taken down by the authorities. Software companies claimed that they lost one million dollars from Cynosure. Federal grand jury charged LaMacchia with 'one count of conspiring with unknown persons to violate the wire-fraud statute'. What LaMacchia did wasn't criminal conduct under the Copyright Act. The infringement was not for the purpose of commercial advantage. So, the charge was dismissed . The lawmakers had not thought that someone might engage in these types of activities with a non-financial motive. In 1997, Congress closed this loophole with NET (&lt;span style="font-weight: bold;"&gt;No Electronic Theft&lt;/span&gt;) Act.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3334199181469930058?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3334199181469930058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3334199181469930058&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3334199181469930058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3334199181469930058'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/lamacchia-loophole.html' title='LaMacchia Loophole'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-4403872467313291011</id><published>2007-05-27T20:11:00.000+05:30</published><updated>2007-05-29T04:39:00.518+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>No archives (*.a ) in Solaris anymore</title><content type='html'>&lt;div style="text-align: justify;"&gt;While discussing &lt;span style="font-weight: bold;"&gt;static libraries&lt;/span&gt; in one of my &lt;a href="http://osgeek.blogspot.com/2007/05/static-linking-library-options-in.html"&gt;previous posts&lt;/a&gt;, I commented that &lt;span style="font-weight: bold;"&gt;libm &lt;/span&gt;is provided as both &lt;span style="font-weight: bold;"&gt;dynamic library&lt;/span&gt; ( &lt;span style="font-weight: bold;"&gt;libm.so&lt;/span&gt; ) as well as &lt;span style="font-weight: bold;"&gt;static archive&lt;/span&gt; ( &lt;span style="font-weight: bold;"&gt;libm.a&lt;/span&gt; ).&lt;br /&gt;&lt;br /&gt;Well, that is not true for Solaris anymore. &lt;span style="font-weight: bold;"&gt;Solaris 10&lt;/span&gt; doesn't ship with a single static library.&lt;br /&gt;Doing&lt;br /&gt;ls -la |grep *.a&lt;br /&gt;in /usr/lib where libraries are usually present returned no results. Tried in some more directories with same result.&lt;br /&gt;I don't know when static libraries  were dropped from Solaris.  My guess is that  it was Solaris 10, but any pointers to information would be welcome.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-4403872467313291011?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/4403872467313291011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=4403872467313291011&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4403872467313291011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4403872467313291011'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/no-archives-in-solaris-anymore.html' title='No archives (*.a ) in Solaris anymore'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-7839209336262369803</id><published>2007-05-27T01:16:00.000+05:30</published><updated>2007-05-29T04:39:53.967+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>FLV to MPEG converter</title><content type='html'>&lt;div style="text-align: justify;"&gt;Many times we come across videos on net we want to download but can't as they are in &lt;span style="font-weight: bold;"&gt;FLV format&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;flash video&lt;/span&gt;. There is an online opensource tool to download such online videos from sites such as YouTube. The tool converts the &lt;span style="font-weight: bold;"&gt;FLV &lt;/span&gt;files into &lt;span style="font-weight: bold;"&gt;MPEG &lt;/span&gt;format online, which can then be saved to a computer. The &lt;a href="http://vixy.net/"&gt;online FLV converter&lt;/a&gt;  is a very useful tool. I downloaded this hilarious video clip from YouTube using this online tool.&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/GX5gJRhKw9s"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/GX5gJRhKw9s" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The quality of download was very good and it was fast. &lt;a href="http://vixy.net/"&gt;Try it out&lt;/a&gt;!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-7839209336262369803?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/7839209336262369803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=7839209336262369803&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7839209336262369803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7839209336262369803'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/flv-to-mpeg-converter.html' title='FLV to MPEG converter'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-2256693634322804980</id><published>2007-05-25T19:11:00.000+05:30</published><updated>2007-05-29T04:40:22.220+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Wanted computer engineers</title><content type='html'>Found this fun advertisement on net today:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.extremefunnyhumor.com/pics/job_advertisement.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.extremefunnyhumor.com/pics/job_advertisement.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.extremefunnyhumor.com/pics/job_advertisement.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-2256693634322804980?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/2256693634322804980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=2256693634322804980&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2256693634322804980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2256693634322804980'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/wanted-computer-engineers.html' title='Wanted computer engineers'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5934004339621587152</id><published>2007-05-23T18:40:00.001+05:30</published><updated>2007-05-29T04:40:57.807+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='review'/><title type='text'>Clicky Web Analytics - a good web analysis tool</title><content type='html'>I've been using &lt;a style="font-weight: bold;" href="http://getclicky.com/479"&gt;Clicky Web Analytics&lt;/a&gt; for my blog for about 6 months now and have been very satisfied. It's been a great tool to gather data on the visits to my blog. I'm using the basic free service from them which has many unique features that are not present in other services such as &lt;span style="font-weight: bold;"&gt;Google Analytics&lt;/span&gt; or &lt;span style="font-weight: bold;"&gt;Feedburner&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;It has most of the features expected in an &lt;span style="font-weight: bold;"&gt;analytic tool&lt;/span&gt; and many more. I can see how many people have visited my site, at what time, from what IP address, from which country and city (can also see that on a google map), which browser and Operating System they used, which website they came from, which pages they visited, what actions were performed by them on the blog and how long they stayed on my blog. I can also see how many people have come through search and what search keywords were used.&lt;br /&gt;&lt;br /&gt;The display for &lt;span style="font-weight: bold;"&gt;Clicky &lt;/span&gt;website is pretty neat. I can see the referral websites in a descending order in time for any given day. The history of all visits is saved for two weeks as I have a free membership. For paid members, the complete history to the website's use is saved, so one can see what was the pattern on a certain day many months ago.&lt;br /&gt;&lt;br /&gt;The free utility service that I am using has a limit of max 3 on the number of websites I can submit for analysis. To get more, one has to get a paid account which is not expensive with a nominal charge per month. For a website with a lot of hits, a paid membership would be useful. The paid account, called premium account has other features like 'spy' which shows live data to the visits to your website in real time.&lt;br /&gt;&lt;br /&gt;The website itself is very easy to navigate with good layout and provides most information on my site available with just a click. Another good thing I liked about &lt;span style="font-weight: bold;"&gt;Clicky &lt;/span&gt;was that the script to put into my blog was very simple and small. No other tweaks needed to my blog's source code.&lt;br /&gt;&lt;br /&gt;The only downside of using such an analytics for blogs is that one would want to go see the data all the time. It gets almost addictive! &lt;a href="http://getclicky.com/479"&gt;Try it out&lt;/a&gt; if you haven't already or even if you've been using other analytics tools.&lt;br /&gt;&lt;center&gt; &lt;!-- Begin BidVertiser code --&gt;&lt;br /&gt;&lt;script language="JavaScript1.1" src="http://bdv.bidvertiser.com/BidVertiser.dbm?pid=46037&amp;amp;bid=107750" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;noscript&gt;&lt;a href="http://www.bidvertiser.com"&gt;internet advertising&lt;/a&gt;&lt;/noscript&gt;&lt;br /&gt;&lt;!-- End BidVertiser code --&gt; &lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5934004339621587152?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5934004339621587152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5934004339621587152&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5934004339621587152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5934004339621587152'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/clicky-web-analytics-good-web-analytics.html' title='Clicky Web Analytics - a good web analysis tool'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3949940590926454216</id><published>2007-05-19T18:55:00.000+05:30</published><updated>2007-05-29T04:42:27.922+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Static linking : library options in command line</title><content type='html'>In my last post I asked why it's advised that library options be the last in the &lt;span style="font-weight: bold;"&gt;command line&lt;/span&gt; in case of &lt;span style="font-weight: bold;"&gt;static linking&lt;/span&gt;.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Here is the explanation:&lt;br /&gt;The symbols on the command line are resolved from left to right.&lt;br /&gt;Stating linking looks through the &lt;span style="font-weight: bold;"&gt;static library&lt;/span&gt; for "undefined" symbols when it is processed.&lt;br /&gt;Now in case of&lt;br /&gt;&lt;br /&gt;cc -lfoo hello.c&lt;br /&gt;&lt;br /&gt;there are no undefined symbols when &lt;span style="font-weight: bold;"&gt;libfoo.a &lt;/span&gt;gets processed and so nothing gets extracted from it. When the object file is processed,  it doesn't find any symbol and it gives an error "&lt;span style="font-weight: bold;"&gt;Undefined symbol&lt;/span&gt;"&lt;br /&gt;If &lt;span style="font-weight: bold;"&gt;hello.c&lt;/span&gt; is put before -lfoo as in&lt;br /&gt;&lt;br /&gt;cc hello.c -lfoo&lt;br /&gt;&lt;br /&gt;there are undefined symbols when libfoo gets processed and so they get extracted. This works fine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dynamic linking&lt;/span&gt; doesn't have this issue as all symbols are available through the virtual address space of the output file.&lt;br /&gt;Static libraries have other issues like bigger executable size, and lack of ABI ( application needs to be relinked with each new version of the library).&lt;br /&gt;One advantage of having static libraries is that the executables linked to them are somewhat faster at runtime because all the linking occurs before loadtime. This helps in benchmarking. Math library libm is provided as a shared object (libm.so) as well as static library (archive libm.a) since benchmarking makes a heavy use of this library.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3949940590926454216?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3949940590926454216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3949940590926454216&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3949940590926454216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3949940590926454216'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/static-linking-library-options-in.html' title='Static linking : library options in command line'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-495503036401716644</id><published>2007-05-18T18:22:00.000+05:30</published><updated>2007-05-29T04:41:39.800+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>quirk of static linking</title><content type='html'>&lt;div style="text-align: justify;"&gt;A question related to &lt;span style="font-weight: bold;"&gt;linking &lt;/span&gt;today.&lt;br /&gt;&lt;/div&gt;Why is it advised to put the library options at the end of &lt;span style="font-weight: bold;"&gt;command line&lt;/span&gt; for &lt;span style="font-weight: bold;"&gt;compilation&lt;/span&gt;?&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;Hint: If we have a &lt;span style="font-weight: bold;"&gt;static library&lt;/span&gt;, say libfoo.a which we want to link to our program hello.c&lt;br /&gt;&lt;br /&gt;cc hello.c -lfoo&lt;br /&gt;rather than&lt;br /&gt;&lt;/div&gt;cc -lfoo hello.c&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;-l option tells the compiler to link to library [lib]foo. Note that "lib" from libfoo is dropped and only "foo" part is given with -l.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-495503036401716644?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/495503036401716644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=495503036401716644&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/495503036401716644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/495503036401716644'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/quirk-of-static-linking.html' title='quirk of static linking'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-926557966982794567</id><published>2007-05-18T01:56:00.000+05:30</published><updated>2007-05-29T04:44:05.234+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>How Nerdy are you?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Took this &lt;span style="font-weight: bold;"&gt;Nerd test&lt;/span&gt; and was worried I was going to score a "less &lt;span style="font-weight: bold;"&gt;nerdy&lt;/span&gt;" type. But the result were pleasantly surprising. It said "&lt;span style="font-family:Arial,Helvetica,sans-serif;"&gt;    All hail the monstrous nerd.  You are by far the SUPREME NERD GOD!!!"&lt;/span&gt;&lt;br /&gt;Perhaps, my score was helped by a few dirty clothes in my room, and &lt;span style="font-weight: bold;"&gt;Solaris&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-family:Arial,Helvetica,sans-serif;"&gt;For now, I am in heaven!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.nerdtests.com/nq_ref.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.nerdtests.com/nq_ref.html"&gt;&lt;img src="http://www.nerdtests.com/images/badge/9328f4791b5326f2.gif" alt="I am nerdier than 95% of all people. Are you a nerd? Click here to find out!" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-926557966982794567?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/926557966982794567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=926557966982794567&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/926557966982794567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/926557966982794567'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/how-nerdy-are-you.html' title='How Nerdy are you?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1524753797813543341</id><published>2007-05-17T00:33:00.000+05:30</published><updated>2007-05-29T04:45:08.104+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>RAID Primer</title><content type='html'>&lt;div style="text-align: justify;"&gt;Found a brief and good online paper on different types of &lt;span style="font-weight: bold;"&gt;RAID &lt;/span&gt;( &lt;span style="font-weight: bold;"&gt;Redundant Array of Independent Discs&lt;/span&gt; ). It explains &lt;span style="font-weight: bold;"&gt;RAID &lt;/span&gt;concepts with a  brief explanation of each type along with their pros and cons.&lt;br /&gt;&lt;a href="http://www.finitesystems.com/PRODUCT/raid/raidlevel.htm"&gt;The paper can be read here&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1524753797813543341?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1524753797813543341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1524753797813543341&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1524753797813543341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1524753797813543341'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/raid-primer.html' title='RAID Primer'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-828802237093718619</id><published>2007-05-15T23:17:00.000+05:30</published><updated>2007-05-29T04:45:33.397+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Top 10 funniest gadgets</title><content type='html'>While surfing the net today, I stumbled upon this list of &lt;a href="http://www.techeblog.com/index.php/tech-gadget/top-10-funniest-gadgets"&gt;&lt;span style="font-weight: bold;"&gt;top 10 funniest gadgets&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;My favorite are DVD rewinder and USB powered butt cooler. What are yours?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-828802237093718619?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/828802237093718619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=828802237093718619&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/828802237093718619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/828802237093718619'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/top-10-funniest-gadgets.html' title='Top 10 funniest gadgets'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5284435894632137460</id><published>2007-05-15T01:14:00.000+05:30</published><updated>2007-05-29T04:47:19.917+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Novell'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenOffice'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft threatens Linux with patents</title><content type='html'>According to a news article, &lt;span style="font-weight: bold;"&gt;Microsoft&lt;/span&gt; has alleged that &lt;span style="font-weight: bold;"&gt;Linux &lt;/span&gt;and other &lt;span style="font-weight: bold;"&gt;Open Source&lt;/span&gt; software violate its patents. This includes 42 by Linux &lt;span style="font-weight: bold;"&gt;kernel &lt;/span&gt;alone and many by &lt;span style="font-weight: bold;"&gt;OpenOffice&lt;/span&gt;, totalling 235 patents in all.&lt;br /&gt;&lt;br /&gt;Looks like an open source arm-twisting effort by &lt;span style="font-weight: bold;"&gt;MS &lt;/span&gt;directly related to their deal with &lt;span style="font-weight: bold;"&gt;Novell&lt;/span&gt; last year.&lt;br /&gt;&lt;br /&gt;More at :&lt;br /&gt;&lt;a href="http://money.cnn.com/magazines/fortune/fortune_archive/2007/05/28/100033867/index.htm"&gt;CNN&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.crn.com/software/199501735"&gt;CRN&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5284435894632137460?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5284435894632137460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5284435894632137460&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5284435894632137460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5284435894632137460'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/05/microsoft-threatens-linux-with-patents.html' title='Microsoft threatens Linux with patents'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-7776804723145992233</id><published>2007-01-03T03:55:00.000+05:30</published><updated>2007-05-29T04:48:03.022+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Memory Overcommit and the OOM Killer</title><content type='html'>&lt;div style="text-align: justify;"&gt;Linux has a feature called &lt;span style="font-weight: bold;"&gt;memory overcommit&lt;/span&gt;. Put simply, it means kernel allocates memory even if it doesn't have enough. This happens  when a new process is created using &lt;span style="font-weight: bold;"&gt;fork()&lt;/span&gt;. This effectively copies the parent's &lt;span style="font-weight: bold;"&gt;address space&lt;/span&gt;, and so requires twice the parent process' memory once the new process (child) is created. The memory overcommit feature means that fork() always returns a success. Even if there is not enough memory to create a new child process!&lt;br /&gt;The idea behind a memory overcommit feature of Linux is that the child process rarely uses all the memory allocated to it. fork() is followed by &lt;span style="font-weight: bold;"&gt;exec()&lt;/span&gt; which overlays the child address space with some exectutable. Once the exec() is done, the child process exits and the parent process (which goes into &lt;span style="font-weight: bold;"&gt;wait()&lt;/span&gt; after creation of child) resumes.&lt;br /&gt;Failing to allocate enough memory when it is needed by the child results in another process being invoked. This process is called &lt;span style="font-weight: bold;"&gt;Out Of Memory (OOM) killer&lt;/span&gt;. The job of this process is to select a process to kill so that the memory requirements after fork() can be satisfied. Not a very desirable feature, but it is necessary to keep memory overcommit feature of Linux. This made OOM killer infamous. How to select a process to kill is tricky. It might happen that some important processes (e.g. &lt;a style="font-weight: bold;" href="http://www.postgresql.org/docs/current/static/kernel-resources.html"&gt;a database&lt;/a&gt;) gets killed by &lt;span style="font-weight: bold;"&gt;OOM killer&lt;/span&gt;. Analogies &lt;a style="font-weight: bold;" href="http://lwn.net/Articles/104185/"&gt;like this&lt;/a&gt; show how serious the situation is when killer is invoked.&lt;br /&gt;It seems that during 2.4, OOM killer's favourite process to kill was the Netscape browser. The browser would crash all of a sudden and you'd have no idea why.&lt;br /&gt;The memory overcommit along with OOM is not an example of a good design feature, but has even made its way into AIX. With 2.6 the memory overcommit feature can be suppressed using some variables, but by default the feature is present.&lt;br /&gt;Fortunately, it doesn't exist in Solaris. Solaris never used memory overcommit. First it was vfork() instead of fork() to prevent the failure of process creation. In Solaris 10, posix_spawn() is used instead of vfork() since vfork() is not MT-safe.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-7776804723145992233?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/7776804723145992233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=7776804723145992233&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7776804723145992233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7776804723145992233'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2007/01/memory-overcommit-and-oom-killer.html' title='Memory Overcommit and the OOM Killer'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-1735535474335261732</id><published>2006-12-24T19:33:00.000+05:30</published><updated>2007-05-29T04:48:35.163+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Search from Firefox address bar</title><content type='html'>I've been using &lt;span style="font-weight: bold;"&gt;Google toolbar&lt;/span&gt; for &lt;span style="font-weight: bold;"&gt;Firefox&lt;/span&gt; for a long time. There is a Firefox feature which can make the use of the toolbar reduntant by doing Google search from Firefox address bar. For a single word search, Firefox takes us to the homepage of the first search result found. It is like the "&lt;span style="font-weight: bold;"&gt;I'm feeling lucky&lt;/span&gt;" feature of Google search. Just like the infamous "&lt;a href="http://googleblog.blogspot.com/2005/09/googlebombing-failure.html"&gt;&lt;span style="font-weight: bold;"&gt;failure&lt;/span&gt;&lt;/a&gt;" or "&lt;a href="http://googleblog.blogspot.com/2005/09/googlebombing-failure.html"&gt;&lt;span style="font-weight: bold;"&gt;miserable failure&lt;/span&gt;&lt;/a&gt;" and "I'm feeling lucky" combination does. But if we enter more than one word string in the Firefox address bar, it is like normal &lt;span style="font-weight: bold;"&gt;Google search&lt;/span&gt;, and makes installing Google toolbar unnecessary.&lt;br /&gt;A cool feature of Firefox which many are not aware of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-1735535474335261732?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/1735535474335261732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=1735535474335261732&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1735535474335261732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/1735535474335261732'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/search-from-firefox-address-bar.html' title='Search from Firefox address bar'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3059526226569983519</id><published>2006-12-22T03:50:00.000+05:30</published><updated>2007-05-29T04:49:14.079+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><title type='text'>The toilet</title><content type='html'>1- Say, there is a common toilet with many doors.&lt;br /&gt;2- A person can enter from only one of these doors at any time i.e. the door to enter is fixed for him.&lt;br /&gt;3- A door can be used for entry into the toilet by many persons i.e. it is a common entrance for some persons.&lt;br /&gt;4- Only one person can use the toilet at a time.&lt;br /&gt;5- There is a toilet supervisor whose job is to see that persons behave properly.&lt;br /&gt;6- The supervisor gives each of the persons who use that toilet a number so he can recognize them when they come to use the toilet.&lt;br /&gt;7-The higher the number the higher the chance of the person getting to use the toilet.&lt;br /&gt;8- If a person is using the toilet and another person comes up whose number is bigger, the supervisor kicks the first person out and lets the second person to use the toilet. The kicked one get to use the toilet once the bigger number person is finished. The same fate awaits the second person if another person with even bigger number comes. In this case however, the first kicked person has to wait even longer. If the small number person is one unlucky guy he will find all persons coming with numbers bigger than his and he never gets to use the toilet or may have to wait for too long.&lt;br /&gt;9- Seeing the plight of persons with small numbers the supervisor decides to help them out. He now puts a lock on each door. A person with small number now has option to lock as many doors from inside as he wants.&lt;br /&gt;10- A door is open unless someone is using the toilet and has locked it from inside.&lt;br /&gt;11- Any person can enter if his door is not locked and no higher number person is using the toilet. If a smaller number person is using the toilet when higher number comes and the door is not locked, the supervisor kicks the smaller person out and the higher number person uses it. The smaller person can reenter once the higher number person is done.&lt;br /&gt;Now the supervisor is happy. The person who got small numbers can happily use the toilet if they lock the doors. But the person using the toilet often don't lock all the doors, so they still get kicked out by higher number person whose door they didn't lock.&lt;br /&gt;This also cause another problem. Now sometimes the higher number person can't use the toilet because his door is locked by smaller number person who got kicked up by another person with a number somewhat in the middle of the other two. The highest number person should be using the toilet but the door is locked so he can't. Instead the middle person is using it. The supervisor didn't like it but he can't do anything with present rules so he does something else to help out the highest number person in such cases.&lt;br /&gt;12- Now when a smaller number person goes in the toilet and locks a door, and a higher number person comes to that door, the supervisor exchanges the numbers of the two persons for the time while the small number person is using the toilet.&lt;br /&gt;13- Once the person using the toilet is done, the two get their numbers back. The smaller person opens the door and comes out. And the higher number person enters the toilet.&lt;br /&gt;14- If a person with a number somewhere in the middle comes before the (original) small number person finishes, he sees that a bigger number person is using the toilet since smaller and higher guys have exchanged their numbers. After the guys is done, the real higher number guy gets his number back and enters the toilet. So the middle guy has to wait for both the other two persons and gets a chance to use the toilet after them.&lt;br /&gt;&lt;br /&gt;Now substitute the toilet with processor, supervisor with &lt;span style="font-weight: bold;"&gt;scheduler&lt;/span&gt;, persons with &lt;span style="font-weight: bold;"&gt;processes&lt;/span&gt;, and numbers with &lt;span style="font-weight: bold;"&gt;priorities&lt;/span&gt;. 1- to 8- describe the &lt;span style="font-weight: bold;"&gt;priority based scheduling&lt;/span&gt; with &lt;span style="font-weight: bold;"&gt;preemption&lt;/span&gt;. 8- is known as &lt;span style="font-weight: bold;"&gt;process starving&lt;/span&gt;.  9, 10, and 11- constitute what is known as &lt;span style="font-weight: bold;"&gt;priority inversion&lt;/span&gt;.&lt;br /&gt;12, 13, and 14- are examples of &lt;span style="font-weight: bold;"&gt;priority inheritance&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The analogy isn't perfect though, and there might be some loopholes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3059526226569983519?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3059526226569983519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3059526226569983519&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3059526226569983519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3059526226569983519'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/toilet.html' title='The toilet'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-8307372298503583149</id><published>2006-12-21T00:39:00.000+05:30</published><updated>2007-05-29T04:49:39.496+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSolaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Outstanding OpenSolaris questions by James McGovern</title><content type='html'>&lt;a href="http://duckdown.blogspot.com/"&gt;James&lt;/a&gt; left a comment to one of my earlier posts and suggested I answer some of the &lt;a href="http://duckdown.blogspot.com/2006/02/outstanding-questions-on-opensolaris.html"&gt;outstanding questions&lt;/a&gt; he posted on his blog sometimes back. Though I am not an authority on this, I will try to answer some of them as per my understanding. I was thinking of replying in comments section but it became too long, so here is a reply to James comment.&lt;br /&gt;&lt;br /&gt;Hi James,&lt;br /&gt;Unfortunately I have little information related to SPARC chips. It's an open architecture and anyone can see the specification and is free to implement.&lt;br /&gt;I don't think Sun produces SPARC chips for appliances as they are a server-focussed company.&lt;br /&gt;Maybe Fujitsu does it. I have heard of SPARC chips in some cameras, but you'd have to google search to find out more.&lt;br /&gt;Regarding OpenSolaris, I believe OpenSolaris.org community is much more capable to answer those queries. e.g. I searched Xen community list there and it seems they have some working Xen code for OpenSolaris. Of course, Xen itself is not yet complete, so Xen for OpenSolaris would take time. Looking at the activity there, it seems Xen is the future of OpenSolaris virtualization.&lt;br /&gt;Headless/Diskless clients under Solaris have been supported for quite sometime.&lt;br /&gt;About legal implications of running OpenSolaris, I know none that exist. You are free to distribute your product with an OpenSolaris distribution as long as the existing files you have used from the community and modified are open sourced under CDDL. If you've added any new files, you are free to choose whatever license you want for your files if that license permits it. CDDL is less viral in this regard.&lt;br /&gt;That's my understanding. I'd suggest to throw these questions to OpenSolaris list. They'd sure give you detailed and authentic reply.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-8307372298503583149?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/8307372298503583149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=8307372298503583149&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8307372298503583149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/8307372298503583149'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/james-left-comment-to-one-of-my-earlier.html' title='Outstanding OpenSolaris questions by James McGovern'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-7208253737470939006</id><published>2006-12-20T00:02:00.000+05:30</published><updated>2007-05-29T04:50:09.617+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><title type='text'>Virtualization is where the action is !</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Virtualization &lt;/span&gt;is the buzzword in the world of Operating Systems these days. Recently &lt;span style="font-weight: bold;"&gt;KVM - Kernel based Virtual Machine&lt;/span&gt; capability was introduced into Linux. When completed, it would make it possible to run Windows ( maybe other OS too) as a guest OS on top of Linux in the newer Intel and AMD processors that have support for virtualization.&lt;br /&gt;KVM is virtualization specific to Linux. Other virtualization technologies also exist some of which like &lt;span style="font-weight: bold;"&gt;VMware &lt;/span&gt;are very advanced and allow many more OS's as hosts and guests.&lt;br /&gt;Another virtualization technology under development is &lt;span style="font-weight: bold;"&gt;Xen&lt;/span&gt; which will be a real competitor of VMware as it will have support for many OS's just like VMware and can be used with older processors as well. Xen is an open source project unlike VMware which is proprietary.&lt;br /&gt;Then there's hardware virtualization which allows one set of hardware to run many OS's. UltraSparc T1 aka Niagara is supposed to get &lt;span style="font-weight: bold;"&gt;Logical Domain&lt;/span&gt; ( &lt;span style="font-weight: bold;"&gt;LDom ) &lt;/span&gt;support in the near future which will allow one Niagara processor to run many different versions of Solaris OS simulaneously.&lt;br /&gt;IBM and Sun have had hardware virtualization in their big iron for a long time but now even smaller machines can have it. Solaris for example allows a form of virtualization with &lt;span style="font-weight: bold;"&gt;Zones &lt;/span&gt;where a machine with Solaris 10 or some OpenSolaris distro can run dozens of virtualized instances of the the OS. Each Zone is a secure virtual OS instance on which applications can run which can be compromised without compromising other zones in the same system.&lt;br /&gt;With all these different virtualization techniques in Unix, Linux, Mac OS X and even in Windows, user today is the king! What was unthinkable a few years back is now possible thanks to all the advances in technology, be it open or proprietary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-7208253737470939006?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/7208253737470939006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=7208253737470939006&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7208253737470939006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/7208253737470939006'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/virtualization-is-where-action-is.html' title='Virtualization is where the action is !'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-4488847434372394338</id><published>2006-12-19T02:49:00.000+05:30</published><updated>2007-05-29T04:50:40.326+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='humor'/><title type='text'>Sun to release iPod like player !</title><content type='html'>Heard a rumour that Sun has finished working on a killer mp3 player. It'll be on offer for a free 60 day trial once the tussle between engineers and marketing is resolved. Engineers are opposing marketing people's move to name it Sun Java Secure Media Pocket Player, but they're willing to accept if the name is shortened to SJSMPP as long as no one knows what it stands for after its release.&lt;br /&gt;&lt;br /&gt;Well, that was a joke by my insider-friend. Wondering if such a player if ever released would be able to run on minimized version of Solaris.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-4488847434372394338?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/4488847434372394338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=4488847434372394338&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4488847434372394338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4488847434372394338'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/sun-to-release-ipod-like-player.html' title='Sun to release iPod like player !'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3487204496791827632</id><published>2006-12-17T20:34:00.000+05:30</published><updated>2007-05-29T04:51:12.348+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='OpenSolaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>GNU/Solaris ?</title><content type='html'>Sometimes back, The Register had an article titled &lt;a href="http://www.theregister.co.uk/2006/11/30/sun_gnu_solaris/"&gt;"&lt;/a&gt;&lt;a href="http://www.theregister.co.uk/2006/11/30/sun_gnu_solaris/"&gt;Is 'GNU/Solaris' emerging from Microsoft-Novell deal?&lt;/a&gt;&lt;a href="http://www.theregister.co.uk/2006/11/30/sun_gnu_solaris/"&gt;"&lt;/a&gt;&lt;br /&gt;But &lt;a href="http://gnusolaris.org/"&gt;GNU/Solaris&lt;/a&gt; is already there, even with OpenSolaris under CDDL which is not GPL but another open source license. Maybe the reporter didn't do the homework right! Or perhaps he meant something else when he said GNU/Solaris.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3487204496791827632?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3487204496791827632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3487204496791827632&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3487204496791827632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3487204496791827632'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/gnusolaris.html' title='GNU/Solaris ?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-4602769308903166907</id><published>2006-12-17T16:33:00.000+05:30</published><updated>2007-05-29T04:51:58.573+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>ZFS in Mac OS X ?</title><content type='html'>Seems it wasn't just a rumour. ZFS is going to be in the upcoming MacOS X! Very cool to know ZFS is being ported to other OSs. It is already being ported to FreeBSD, along with DTrace. Porting ZFS to other OS is good for them as well as Solaris and Operating systems in general. It gives more visibility to such great technologies and innovation that they rightly deserve. It also gets other OS users to experience and use such powerful stuff. That would definitely attract more users to Solaris also, mainly those who still have to know how different Solaris 10 and OpenSolaris are to prior releases, and their capabilities.&lt;br /&gt;The story and screenshot of ZFS in OS X was first broken here:&lt;br /&gt;&lt;a href="http://mac4ever.com/news/27485/zettabyte_sur_leopard/"&gt;http://mac4ever.com/news/27485/zettabyte_sur_leopard/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some blogs discussing it are at:&lt;br /&gt;&lt;a href="http://loop.worldofapple.com/archives/2006/12/17/zfs-file-system-makes-it-to-mac-os-x-leopard/"&gt;http://loop.worldofapple.com/archives/2006/12/17/zfs-file-system-makes-it-to-mac-os-x-leopard/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rom.feria.name/blog/2006/12/17/zfs-on-mac-os-x-105/"&gt;http://rom.feria.name/blog/2006/12/17/zfs-on-mac-os-x-105/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://colindw.blogspot.com/2006/12/w00t-zfs-on-leopard.html"&gt;http://colindw.blogspot.com/2006/12/w00t-zfs-on-leopard.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.c0t0d0s0.eu/archives/2406-Its-official-ZFS-in-Leopard.html"&gt;http://www.c0t0d0s0.eu/archives/2406-Its-official-ZFS-in-Leopard.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-4602769308903166907?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/4602769308903166907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=4602769308903166907&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4602769308903166907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/4602769308903166907'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/zfs-in-osx.html' title='ZFS in Mac OS X ?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5723148163215963219</id><published>2006-12-14T14:43:00.000+05:30</published><updated>2007-05-29T04:52:25.101+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Linus Torvalds on GPL kernel modules</title><content type='html'>It's no news that Linus is a very good software programmer. There are other aspects of his character that are admirable. On the Linux mailing list today he stressed on why it is not good on the part of developers or open source zealots to force people to use software only the way developers want.&lt;br /&gt;Responding to a suggestion that a time limit be set ( 12 months was suggested) after which kernel won't be allowed to load non- GPL tagged module, he said &lt;span style="font-weight: bold;"&gt;users &lt;/span&gt;should be allowed to use software the way &lt;span style="font-weight: bold;"&gt;they &lt;/span&gt;want. He tries to make the difference between &lt;span style="font-weight: bold;"&gt;use &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;distribution &lt;/span&gt;clear.&lt;br /&gt;Software developers can only force people to distribute software the way developers want. How they use it should be left to the individuals.&lt;br /&gt;Linus says, "There's a big difference between "copy" and "use". It's exatcly the same issue whether it's music or code. You can't re-distribute other peoples music (becuase it's _&lt;u&gt;their&lt;/u&gt;_ copyright), but they shouldn't put limits on how you personally _&lt;u&gt;use&lt;/u&gt;_ it (because it's _&lt;u&gt;your&lt;/u&gt;_ life)."&lt;br /&gt;He further makes it clear that he hates the idea of forcing on people the GPL way,&lt;br /&gt;"In other words, you guys know my stance. I'll not fight the combined opinion of other kernel developers, but I sure as hell won't be the first to merge this, and I sure as hell won't have _&lt;u&gt;my&lt;/u&gt;_ tree be the one that causes this to happen.&lt;br /&gt;So go get it merged in the Ubuntu, (Open)SuSE and RHEL and Fedora trees first. This is not something where we use my tree as a way to get it to other trees. This is something where the push had better come from the other direction.&lt;br /&gt;Because I think it's stupid. So use somebody else than me to push your political agendas, please."&lt;br /&gt;Well said!&lt;br /&gt;List archived at:&lt;br /&gt;&lt;a href="http://lkml.org/lkml/2006/12/13/370"&gt;http://lkml.org/lkml/2006/12/13/370&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5723148163215963219?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5723148163215963219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5723148163215963219&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5723148163215963219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5723148163215963219'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/linux-on-gpl-kernel-modules.html' title='Linus Torvalds on GPL kernel modules'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-5482065757170516267</id><published>2006-12-14T01:44:00.000+05:30</published><updated>2007-05-29T04:52:52.133+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Live Upgrade</title><content type='html'>Solaris OS has a pretty cool technology if we want to upgrade our computer to some later release of the OS. It is called Live Upgrade. It basically works like this:&lt;br /&gt;When you first install Solaris on your computer, you leave some disk space free for the future. It is not a problem since disks are cheap now. Only thing is to remember to set aside some space during first installation. When at some later time a new release of the operating system comes up and you want to install it without having to shut down your system, you can use Live Upgrade. It basically is really Live Upgrade. No downtime while upgrading. Now how many OSs have such cool stuff!&lt;br /&gt;Ok so you are ready to upgrade. You just make a copy of your existing operating system boot image. It's just a command away and the empty disk space has the copy of existing Solaris. Another command and the copy gets upgraded to whatever newer release you have. Once the upgrade is over, simply set the newly upgraded space as the boot option and just one reboot after this you are running the latest bits of the OS. See? The downtime is just one reboot. All the time the system was upgrading you were using the system while the upgrade was going in the background. It just made your system a bit slower, that's all!&lt;br /&gt;Though an individual can afford to waste a couple of hours in upgrading the system by shutting it down, data centers don't have such luxury. That's why they use Live Upgrade. The downtime when they want to use the latest OS is just one reboot time. It has an additional advantage. If for some reason the upgrade fails and you can't reboot into the newly upgraded partition, just revert back to the old working disk partition as your boot OS and it will work fine!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-5482065757170516267?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/5482065757170516267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=5482065757170516267&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5482065757170516267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/5482065757170516267'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/live-upgrade.html' title='Live Upgrade'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-915265762664671593</id><published>2006-12-12T13:41:00.000+05:30</published><updated>2007-05-29T04:53:13.866+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><title type='text'>Solaris 10 update 3 released</title><content type='html'>Solaris 10 update 3 seems to have been released and is available for download. I have Solaris 10 update 2 which I installed mainly to learn the new cool ZFS (which I love, btw...thanks for making filesystem management so easy, guys!).&lt;br /&gt;Time to get a hand on update 3 soon, before heavy traffic hits the download sites. Wonder if it has any new features for an individual user like me. It'll have bug fixes so worth getting it.&lt;br /&gt;Thanks to &lt;a href="http://milek.blogspot.com/"&gt;milek&lt;/a&gt; and &lt;a href="http://uadmin.blogspot.com/"&gt;uadmin&lt;/a&gt; for the heads up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-915265762664671593?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/915265762664671593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=915265762664671593&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/915265762664671593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/915265762664671593'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/solaris-10-update-3-released.html' title='Solaris 10 update 3 released'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-2133370402415085499</id><published>2006-12-12T00:41:00.001+05:30</published><updated>2007-05-29T04:53:41.687+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><title type='text'>Trends in CPU design</title><content type='html'>For the past few years, in the processor field, the trend has been slowly shifting from a single high Hz CPU to multicore  processors. Intel has Xeon dual core and has managed to paste two such chips to bring out what it calls quad core, AMD still has only Opteron dual-core CPUs and is likely to release native quad-core chip next year. There are other smaller players like Azul claiming to have much more cores in a CPU but the real players are only four of them, the remaining two being IBM and Sun Microsystems. IBM along with partners worked on designing Cell chip but it is a special-purpose processor, not for general computing. Sun surprised everyone last year with its eight-core Niagara processor also known as UltraSparc T1. It not only had eight cores in a single chip, but has the capability to run 4 simultaneous hardware threads in each of them giving an impression to the OS of running on a 32 CPU machine.&lt;br /&gt;Sun is going to follow it with Niagara 2 which will have twice the number of threads in each core, thus a virtual 64 threads in eight cores! While Niagara has one floating point unit (FPU) shared by all 8 cores thus slowing down the floating point performance, Niagara 2 will have an FPU for each core. It'll also run with a higher clock rate. So it will be a complete server-on-a-chip when it comes out next year. Seems to be the most interesting processor at present.&lt;br /&gt;&lt;br /&gt;More about Niagara 1 at :&lt;br /&gt;&lt;a href="http://www.aceshardware.com/read_news.jsp?id=80000603"&gt;Acehardware&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;about Niagara 2 :&lt;br /&gt;&lt;a href="http://www.opensparc.net/publications/presentations/niagara-2-a-highly-threaded-server-on-a-chip.html"&gt;Official Sun doc&lt;/a&gt;&lt;br /&gt;and&lt;br /&gt;&lt;a href="http://news.com.com/Suns+Niagara+2+doubles+down+with+twice+the+threads/2100-1006_3-6108880.html"&gt;News.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cell processor info at:&lt;br /&gt;&lt;a href="http://www.research.ibm.com/cell/"&gt;Official IBM link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-2133370402415085499?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/2133370402415085499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=2133370402415085499&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2133370402415085499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/2133370402415085499'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/trends-in-cpu-design_11.html' title='Trends in CPU design'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-6231179019079509905</id><published>2006-12-11T18:14:00.000+05:30</published><updated>2007-05-29T04:54:51.091+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Unix'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft Unix</title><content type='html'>It sounds funny now, but Microsoft once actually had the most widely installed Unix base. Its version of Unix was called Xenix and it was distributed in the 80's by many vendors. What happened to it since then? Well, Microsoft sold it to SCO and moved on to develop OS/2 with IBM and then Windows NT.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wikipedia.org/"&gt;Wikipedia&lt;/a&gt; has some interesting tidbits of information for &lt;a href="http://en.wikipedia.org/wiki/Xenix"&gt;Xenix here.&lt;/a&gt;&lt;br /&gt;How it looked like back in the 80's? Here is a &lt;a href="http://upload.wikimedia.org/wikipedia/en/2/25/Xenix_Screensnap.PNG"&gt;screenshot &lt;/a&gt;from wikipedia.&lt;br /&gt;&lt;br /&gt;System V release 4, the standard for Unix today was formed by merging SunOS, BSD, Xenix, and System V.&lt;br /&gt;&lt;br /&gt;Of course, the legacy of Microsoft Xenix is still around. But where to look to see the history of Unix ? All the flavours of Unix are closed source, or are they? Thanks to open sourcing of Solaris, we can now take a look into all the real Unix code and find some gems of Copyrights that silently narrate the history of Unix development.&lt;br /&gt;&lt;br /&gt;For example, to see how the development of Unix has passed on from the University of California at Berkeley to AT&amp;amp;T and Microsoft to Sun Microsystems, have a look at &lt;a href="http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/tar/tar.c#21"&gt;this tar code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Such is the beauty of Unix. Decades older than any other present day OSs and still holding on its own in the modern world. Not only that, it manages to beat others often in their own game and still come out at other times with such innovations that are the envy of  the youngsters. Even spawning dozens of clones which are cool in their own way. Ubuntu, anyone?&lt;br /&gt;&lt;br /&gt;Me? I'm happy with my good ol' Unix. Solaris, that is. For me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-6231179019079509905?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/6231179019079509905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=6231179019079509905&amp;isPopup=true' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6231179019079509905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/6231179019079509905'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/microsoft-unix.html' title='Microsoft Unix'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-304679274721587179</id><published>2006-12-10T20:55:00.000+05:30</published><updated>2007-05-29T04:55:28.759+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>MacOS X and Linux expert views , anyone</title><content type='html'>I must confess I haven't touched Linux for a long time now. The last time I seriously worked on it was RedHat 7.2 Linux which I used to learn MPI during my masters. I know it definitely has progressed a lot in the last few yrs. So, what are the new features added to the kernel or the distributions since then. I can't seem to remember any apart from some filesystems and lots of drivers.&lt;br /&gt;Newer version of MacOS X will have X-Ray technology which is nothing but DTrace with a nice GUI on top.&lt;br /&gt;If you know of some good features that are in Linux now, especially which are as revolutionary as the ones in Solaris ( see my last post) and are not available elsewhere, please leave a comment. I might try a new distro sometime soon.&lt;br /&gt;Xen, I think would be a cool addition, but it is not unique for Linux. It will be very interesting to work with, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-304679274721587179?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/304679274721587179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=304679274721587179&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/304679274721587179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/304679274721587179'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/macos-x-and-linux-expert-views-anyone.html' title='MacOS X and Linux expert views , anyone'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1746745451277571533.post-3928581693213996882</id><published>2006-12-10T14:25:00.000+05:30</published><updated>2007-05-29T04:57:25.485+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Solaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X'/><title type='text'>Best Operating System for geeks?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Most wannabe geeks would say Linux, though it is just a kernel and not an OS. Some would answer Ubuntu or Gentoo depending on which is the 'in thing'. A few people would perhaps say MacOS X is the best. Windows, of course, is not the one geeks want to be associated with.&lt;br /&gt;&lt;br /&gt;One more OS is making waves in the academia and business world and with serious geeks for the last yr or so, after it was open sourced. For all the right reasons. That is the grand daddy of all, the most popular Unix - Solaris OS. No other operating system, not even Linux can claim to have as much geeky meat as Solaris. Some of the mouth watering stuff in Solaris 10, especially for geeks include:&lt;br /&gt;&lt;br /&gt;Zones - software virtualization feature which has no match in any other OS. I can't remember which technology in any other OS comes even close. BSD jails, perhaps.&lt;br /&gt;&lt;br /&gt;ZFS - the ultra modern file system, again with no match. The only thing that comes close is VxFS but ZFS is free with source code in the open.&lt;br /&gt;&lt;br /&gt;DTrace - again no match anywhere. The capability to look into each and every place into the kernel and other parts in a running system using DTrace is unparalleled. It has been winning accolades all over. SystemTap for Linux is still not complete and its design makes it unlikely to be able to compete with DTrace in the future.&lt;br /&gt;&lt;br /&gt;BrandZ - It gives you the capability to run Linux apps on top of Solaris. For example, you can run a version of Linux like CentOS right inside a Solaris Zone. Say you want to play Quake or use Google Earth which don't have Solaris apps; just create a Zone in Solaris, install your Linux in the zone and play away with the apps which are available in Linux. How more geeky can one get!&lt;br /&gt;&lt;br /&gt;Of course, serious business won't play games. For them there are other more serious features like:&lt;br /&gt;Fault Management Architecture (FMA), Service Management Framework(SMF), etc.&lt;br /&gt;&lt;br /&gt;Linux is a good Operating System and has the advantage of having more drivers. But in almost everything else, Solaris scores higher. Now that it is open sourced it should get people interested in creating drivers. The community and codebase of Solaris is called OpenSolaris. Looking at the number of posts and projects there, it really looks like a dynamic and vibrant group of geeks.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1746745451277571533-3928581693213996882?l=osgeek.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://osgeek.blogspot.com/feeds/3928581693213996882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1746745451277571533&amp;postID=3928581693213996882&amp;isPopup=true' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3928581693213996882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1746745451277571533/posts/default/3928581693213996882'/><link rel='alternate' type='text/html' href='http://osgeek.blogspot.com/2006/12/which-is-best-operating-system-for.html' title='Best Operating System for geeks?'/><author><name>osgeek</name><uri>http://www.blogger.com/profile/12045857609474816436</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry></feed>
