<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Nerdy Notes</title>
	<link>http://study.ettachou.com</link>
	<description>murmuring tech jargons</description>
	<pubDate>Mon, 14 Jul 2008 20:33:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>A History of Spooling</title>
		<link>http://study.ettachou.com/2008/07/14/a-history-of-spooling/</link>
		<comments>http://study.ettachou.com/2008/07/14/a-history-of-spooling/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 20:32:48 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/07/14/a-history-of-spooling/</guid>
		<description><![CDATA[http://www.dacs.org/archive/0007/feature4.htm

A Brief History of SPOOL
By Bill Manyin
    SPOOL Definitions:
    1) System Peripheral Operations OffLine
    2) Simultaneous Peripheral Operations OnLine
PRIOR TO 1964 and IBM System/360 and System/360 Operating Systems, it was common for a mainframe to run only one user program at a time. Each user submitted [...]]]></description>
			<content:encoded><![CDATA[<p>http://www.dacs.org/archive/0007/feature4.htm</p>
<blockquote><p>
A Brief History of SPOOL</p>
<p>By Bill Manyin</p>
<p>    SPOOL Definitions:<br />
    1) System Peripheral Operations OffLine<br />
    2) Simultaneous Peripheral Operations OnLine</p>
<p>PRIOR TO 1964 and IBM System/360 and System/360 Operating Systems, it was common for a mainframe to run only one user program at a time. Each user submitted his program in the form of a deck of IBM cards. The program had complete control of the mainframe. Your program could be loaded from an IBM card reader machine cabled to the mainframe online, could create IBM card output by sending data to an IBM card punch machine cabled to the mainframe online, and could send data to a printer machine cabled to the mainframe online. This approach of &#8220;peripheral<br />
I/O&#8221; was inefficient because (1) the program needed to wait until its input or output transmission was completed before it could receive/send the next line, and 2) the devices designed to attach to the high-speed mainframe were frequently slower than similar devices designed for cheaper, lower speed, mainframes.</p>
<p>(真的靠人在搬!)<br />
For example, if the high-speed mainframe was an IBM 7090 and the lower-speed mainframe was an IBM 1401, the operation was improved by reading the decks of cards on a 1401 and writing the data on a magnetic tape. The tape provided high-speed input to the 7090, which ran one program at a time, each one writing an output tape with punch and/or print files. This output tape would then be brought to the 1401 for punching cards and printing. The process was described as SPOOLing the I/O, using definition 1 above. The acronym of SPOOL may have been chosen because of using tape on a spool or reel.</p>
<p>Typical Spooling Speeds for data<br />
	On 7090 	On 1401<br />
Card Reader 	100 cpm 	800 cpm<br />
Card Punch 	100 cpm 	250 cpm<br />
Line Printer 	150 lpm 	600 lpm<br />
cpm = cards per minute<br />
lpm = lines per minute 	  	</p>
<p>System/360 allowed the higher-speed peripheral devices to be attached directly to the large mainframe. Furthermore, System/360 offered operating systems that allowed multiple jobs to run concurrently (although only one at a time.) The OS provided routines to perform SPOOLing using disk instead of tape. Thus the definition of SPOOL changed to definition 2, since the peripheral devices were now online to the large mainframe.</p>
<p>Note: I have written this article from an IBM perspective. Other computers may have used different terms and meanings.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/07/14/a-history-of-spooling/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Memorry-mapped I/O input notification</title>
		<link>http://study.ettachou.com/2008/07/14/memorry-mapped-io-input-notification/</link>
		<comments>http://study.ettachou.com/2008/07/14/memorry-mapped-io-input-notification/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 17:08:49 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/07/14/memorry-mapped-io-input-notification/</guid>
		<description><![CDATA[With memory-mapped I/O, how does a device (controller) notify the CPU to read data?
]]></description>
			<content:encoded><![CDATA[<p>With memory-mapped I/O, how does a device (controller) notify the CPU to read data?</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/07/14/memorry-mapped-io-input-notification/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mandatory locks in Linux</title>
		<link>http://study.ettachou.com/2008/06/24/mandatory-locks-in-linux/</link>
		<comments>http://study.ettachou.com/2008/06/24/mandatory-locks-in-linux/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 03:52:38 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/06/24/mandatory-locks-in-linux/</guid>
		<description><![CDATA[To enable mandatory locking in Linux, the first thing to do is mount the file system with option &#8220;mand&#8221;. To apply this option to root file system, we need to modify /etc/fstab. For example:
# /etc/fstab: static file system information.
#
#              

proc   [...]]]></description>
			<content:encoded><![CDATA[<p>To enable mandatory locking in Linux, the first thing to do is mount the file system with option &#8220;mand&#8221;. To apply this option to root file system, we need to modify /etc/fstab. For example:</p>
<p># /etc/fstab: static file system information.<br />
#<br />
# <file system> <mount point>   <type>  <options>       <dump>
<pass>
proc            /proc           proc    defaults        0       0<br />
# /dev/sdb3<br />
UUID=3fca01b2-2578-4331-a066-4ce7cc33ea6a /               ext3    relatime,<strong>mand,</strong>errors=remount-ro 0       1<br />
# /dev/sdb4<br />
UUID=1051fb61-0260-40f1-838f-3efe8dcaa2d1 none            swap    sw              0       0<br />
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0<br />
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0</p>
<p>Andy Walker, in his Kernel Documentation <a href="http://www.mjmwired.net/kernel/Documentation/filesystems/mandatory-locking.txt" target="_blank">mandatory-locking.txt</a>, mentioned that mandatory locking in Linux is unreliable. I don&#8217;t quite understand why, though. As long as a system call is un-preemptable/atomic, it should work, shouldn&#8217;t it?</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/06/24/mandatory-locks-in-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Compiling Stevens&#8217; example codes</title>
		<link>http://study.ettachou.com/2008/06/22/compiling-stevens-example-codes/</link>
		<comments>http://study.ettachou.com/2008/06/22/compiling-stevens-example-codes/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 04:13:09 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/06/22/compiling-stevens-example-codes/</guid>
		<description><![CDATA[To compile the example programs from Stevens&#8217; &#8220;Advanced Programming in the UNIX Environment,&#8221; under Ubuntu, install the following package:
libc6-dev (will automatically install another package that it depends upon)
The header files are located in /usr/include.
Now, to compile, say Program 1.1, go to files/. Type &#8220;make ls1&#8243;.
./ls1 /etc
To install man pages for libraries, look for &#8220;manpages-dev&#8221; package, [...]]]></description>
			<content:encoded><![CDATA[<p>To compile the example programs from Stevens&#8217; &#8220;Advanced Programming in the UNIX Environment,&#8221; under Ubuntu, install the following package:</p>
<p>libc6-dev (will automatically install another package that it depends upon)</p>
<p>The header files are located in /usr/include.</p>
<p>Now, to compile, say Program 1.1, go to files/. Type &#8220;make ls1&#8243;.</p>
<p>./ls1 /etc</p>
<p>To install man pages for libraries, look for &#8220;manpages-dev&#8221; package, which contains:<br />
these two sections:<br />
 2 = Linux system calls.<br />
 3 = Library calls (note that a more comprehensive source of information<br />
     may be found in the glibc-doc package).</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/06/22/compiling-stevens-example-codes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP on Trax</title>
		<link>http://study.ettachou.com/2008/05/01/php-on-trax/</link>
		<comments>http://study.ettachou.com/2008/05/01/php-on-trax/#comments</comments>
		<pubDate>Thu, 01 May 2008 10:43:48 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/05/01/php-on-trax/</guid>
		<description><![CDATA[Just found this today. PHP on Trax, formerly PHP on Rails. Looks cool!
]]></description>
			<content:encoded><![CDATA[<p>Just found this today. <a href="http://www.phpontrax.com/" target="_blank">PHP on Trax</a>, formerly PHP on Rails. Looks cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/05/01/php-on-trax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Taiwan, my home country</title>
		<link>http://study.ettachou.com/2008/04/24/taiwan-my-home-country/</link>
		<comments>http://study.ettachou.com/2008/04/24/taiwan-my-home-country/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 23:36:52 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/04/24/taiwan-my-home-country/</guid>
		<description><![CDATA[This post has nothing to do with my study.
I just saw this video on Youtube about my home country, Taiwan. Do take a look at it.
http://www.youtube.com/watch?v=gRu2oK0Kqc4
]]></description>
			<content:encoded><![CDATA[<p>This post has nothing to do with my study.</p>
<p>I just saw this video on Youtube about my home country, Taiwan. Do take a look at it.</p>
<p><a href="http://www.youtube.com/watch?v=gRu2oK0Kqc4" target="_blank">http://www.youtube.com/watch?v=gRu2oK0Kqc4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/04/24/taiwan-my-home-country/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Follow your enthusiasm</title>
		<link>http://study.ettachou.com/2008/04/22/follow-your-enthusiasm/</link>
		<comments>http://study.ettachou.com/2008/04/22/follow-your-enthusiasm/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 18:42:21 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[mutter]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/04/22/follow-your-enthusiasm/</guid>
		<description><![CDATA[I know I have an enthusiasm with computer engineering, but that same enthusiasm never shows in my research. What was going wrong, I wondered, for a long long time.
I was always &#8220;thinking&#8221; what I &#8220;should do,&#8221; not following what I &#8220;wanted&#8221; to do. My life was always divided into two pieces, one on my study, [...]]]></description>
			<content:encoded><![CDATA[<p>I know I have an enthusiasm with computer engineering, but that same enthusiasm never shows in my research. What was going wrong, I wondered, for a long long time.</p>
<p>I was always &#8220;thinking&#8221; what I &#8220;should do,&#8221; not following what I &#8220;wanted&#8221; to do. My life was always divided into two pieces, one on my study, the other one my dream system. I ended up having no chance and time to fulfill my dream and little motivation to study and research well.</p>
<p>It was a dream last night that unveiled the problem and that told me what to do. What if I can follow my enthusiasm, solving the problems along the way and turning it into a dissertation?</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/04/22/follow-your-enthusiasm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ruby on Rails</title>
		<link>http://study.ettachou.com/2008/04/21/ruby-on-rails/</link>
		<comments>http://study.ettachou.com/2008/04/21/ruby-on-rails/#comments</comments>
		<pubDate>Tue, 22 Apr 2008 04:37:53 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/04/21/ruby-on-rails/</guid>
		<description><![CDATA[A friend said on his Twitter, &#8220;用PHP做Rails做的事真不是人幹的XD.&#8221;
After a short dialog over the email, I learned I should be able to do with RoR everything that can be done with PHP. I have to admit that PHP makes me suffer, but I always thought it was because I was not used to it.
Seems time to learn [...]]]></description>
			<content:encoded><![CDATA[<p>A friend said on his Twitter, &#8220;用PHP做Rails做的事真不是人幹的XD.&#8221;</p>
<p>After a short dialog over the email, I learned I should be able to do with <a href="http://www.rubyonrails.org/" target="_blank">RoR</a> everything that can be done with PHP. I have to admit that PHP makes me suffer, but I always thought it was because I was not used to it.</p>
<p>Seems time to learn yet another new script language. I wonder if RoR can &#8220;separate data manipulation (DB access) from data presentation (generating HTML).&#8221; It would be great if it can. That would really be a life saver.</p>
<p>So, will RoR be the language I use to implement an e-voting system?</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/04/21/ruby-on-rails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Core Java</title>
		<link>http://study.ettachou.com/2008/04/20/core-java/</link>
		<comments>http://study.ettachou.com/2008/04/20/core-java/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 17:25:35 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/04/20/core-java/</guid>
		<description><![CDATA[
I have read several different books while learning various computer languages. For Pascal, my first language, I used D. Cooper&#8217;s &#8220;Oh! Pascal!&#8221; For C++, I read S. Lipman&#8217;s &#8220;C++ Primer.&#8221; For Perl, I read R. Schwartz&#8217;s &#8220;Learning Perl.&#8221; For Java, I read &#8220;The Java Tutorial&#8221; and &#8220;Core Java.&#8221;
Among all the books I have read, Core [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ecx.images-amazon.com/images/I/51hWdMSIciL._SS500_.jpg" width="50%" height="50%" alt="Core Java" align="left" /></p>
<p>I have read several different books while learning various computer languages. For Pascal, my first language, I used D. Cooper&#8217;s &#8220;Oh! Pascal!&#8221; For C++, I read S. Lipman&#8217;s &#8220;C++ Primer.&#8221; For Perl, I read R. Schwartz&#8217;s &#8220;Learning Perl.&#8221; For Java, I read &#8220;The Java Tutorial&#8221; and &#8220;Core Java.&#8221;</p>
<p>Among all the books I have read, Core Java is my favorite. C++ Primer delved into detailed aspects of C++ syntax using &#8220;toy examples.&#8221; By contrast, Core Java is not only a &#8220;tutorial,&#8221; but a good &#8220;recipe&#8221; and &#8220;reference.&#8221; It elaborates Java as deep as C++ Primer does C++, but does not make me feel even half as tedious.</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/04/20/core-java/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Default packages</title>
		<link>http://study.ettachou.com/2008/04/14/default-packages/</link>
		<comments>http://study.ettachou.com/2008/04/14/default-packages/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 03:04:05 +0000</pubDate>
		<dc:creator>Etta</dc:creator>
		
		<category><![CDATA[puzzles]]></category>

		<guid isPermaLink="false">http://study.ettachou.com/2008/04/14/default-packages/</guid>
		<description><![CDATA[In a class A, which belongs to package pkg, declare a variable of a class whose source file is in default package?
I think it should be able to. But it doesn&#8217;t work.
]]></description>
			<content:encoded><![CDATA[<p>In a class <strong>A</strong>, which belongs to package <strong>pkg</strong>, declare a variable of a class whose source file is in default package?</p>
<p>I think it should be able to. But it doesn&#8217;t work.</p>
]]></content:encoded>
			<wfw:commentRss>http://study.ettachou.com/2008/04/14/default-packages/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
