<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">

<channel>
	<title>GrokCode</title>
	
	<link>http://grok-code.com</link>
	<description />
	<pubDate>Tue, 28 Apr 2009 03:25:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/GrokCode?format=skin</thespringbox:skin><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/GrokCode" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">GrokCode</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Building a Ubuntu Box</title>
		<link>http://grok-code.com/167/building-a-ubuntu-box/</link>
		<comments>http://grok-code.com/167/building-a-ubuntu-box/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 03:25:51 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Books & Tools]]></category>

		<category><![CDATA[computer]]></category>

		<category><![CDATA[hardware]]></category>

		<category><![CDATA[install]]></category>

		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://grok-code.com/?p=167</guid>
		<description><![CDATA[I've been in need of new workstation for a while, and finally plunked down the cash for it.  I built  a mid range workstation and installed the latest long term release of Ubuntu (Hardy Heron) 64 bit.  ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been in need of new workstation for a while, and finally plunked down the cash for it.  I built  a mid range workstation and installed the latest long term release of Ubuntu (Hardy Heron) 64 bit.  The install was remarkably painless, and all of the hardware was auto-magically detected and works great in Ubuntu.  Hardware support is much improved in the recent Ubuntu releases, but if you are looking for a rock solid build that just works with Ubuntu, give these specs a try.<span id="more-167"></span></p>
<p><img class="size-full wp-image-322 alignleft" style="margin-left: 15px; margin-right: 15px;" title="ubuntu-screenshot" src="http://grok-code.com/wp-content/uploads/ubuntu-screenshot.png" alt="Ubuntu Desktop" width="600" height="375" />Specs:</p>
<ul>
<li><a title="Intel Motherboard" href="http://www.anrdoezrs.net/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16813121338%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Motherboards%2B-%2BIntel-_-Intel-_-13121338&amp;cjsku=N82E16813121338">Intel Extreme Series DX48BT2 Motherboard</a> <a title="Intel Motherboard" href="http://www.anrdoezrs.net/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16813121338%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Motherboards%2B-%2BIntel-_-Intel-_-13121338&amp;cjsku=N82E16813121338"><br />
</a></li>
<li><a title="Intel processor" href="http://www.anrdoezrs.net/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16819115055%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Processors%2B-%2BDesktops-_-Intel-_-19115055&amp;cjsku=N82E16819115055">Intel Core 2 Quad 2.33GHz 1333MHz Processor</a></li>
<li>4 x<a title="Kingston 2GB RAM" href="http://www.jdoqocy.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16820134790%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Memory%2B%28Desktop%2BMemory%29-_-Kingston%2BTechnology-_-20134790&amp;cjsku=N82E16820134790"> Kingston 2GB 1333MHz DDR3 RAM</a></li>
<li><a title="Graphics Card" href="http://www.kqzyfj.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16814150245%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Video%2BCards-_-XFX-_-14150245&amp;cjsku=N82E16814150245">XFX Nvidia GeForce 8500GT Graphics Card</a></li>
<li><a href="http://www.dpbolvw.net/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16827106266%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-CD%2FDVD%2BBurners%2B%28RW%2BDrives%29-_-Lite-On-_-27106266&amp;cjsku=N82E16827106266">Litescribe SATA 20X DVDRW</a><a href="http://www.dpbolvw.net/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16827106266%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-CD%2FDVD%2BBurners%2B%28RW%2BDrives%29-_-Lite-On-_-27106266&amp;cjsku=N82E16827106266"><br />
</a></li>
<li><a href="http://www.kqzyfj.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16822148316%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Hard%2BDrives-_-Seagate-_-22148316&amp;cjsku=N82E16822148316" target="_top">Seagate 320GB SATA 7200RPM Hard Drive</a> <a href="http://www.kqzyfj.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16822148316%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Hard%2BDrives-_-Seagate-_-22148316&amp;cjsku=N82E16822148316" target="_top"><br />
</a></li>
<li><a title="Foxconn Black Case" href="http://www.kqzyfj.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16811153103%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Cases%2B%28Computer%2BCases%2B-%2BATX%2BForm%29-_-FOXCONN-_-11153103&amp;cjsku=N82E16811153103">Foxconn Mid Tower Black case</a><a title="Foxconn Black Case" href="http://www.kqzyfj.com/click-2960734-10440897?url=http%3A%2F%2Fwww.newegg.com%2FProduct%2FProduct.aspx%3FItem%3DN82E16811153103%26nm_mc%3DAFC-C8Junction%26cm_mmc%3DAFC-C8Junction-_-Cases%2B%28Computer%2BCases%2B-%2BATX%2BForm%29-_-FOXCONN-_-11153103&amp;cjsku=N82E16811153103"><br />
</a></li>
<li><a title="AOC Monitor" href="http://www.amazon.com/gp/product/B000YQA0Q4?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000YQA0Q4">AOC 22&#8243; 2216Sw LCD Monitor</a></li>
</ul>
<p>Plus some other things I had laying around:</p>
<ul>
<li>NEC 19&#8243; Monitor</li>
<li>XTech USB Keyboard</li>
<li>Genius USB Mouse</li>
<li>Logitech USB Speakers</li>
</ul>
<h3>The Workstation</h3>
<p>All in all a very nice workstation, and I finally have more than enough RAM to run NetBeans and Firefox simultaneously!  I&#8217;m extremely happy with the new system - the box is amazingly more responsive than the last one I had.</p>
<p>The DVD drive can sound a bit like a small airplane taking off, and it would be nice if the monitor had a steadier base on it.  (I have an older version of the base than the one shown in the link, hopefully this has been fixed in the new models.)  These are both small quibbles though.</p>
<p>An SSD drive would have been ideal, but I decided to wait on that until the price comes down for the larger drives.</p>
<h3>Installing Ubuntu</h3>
<p>Installing 64 bit Ubuntu 8.0.4.1 (Hardy Heron)  was pleasantly surprising because of how smoothly everything went.  For the last few years I have shied away from installing Linux myself due to nightmares of failed X configs and kernel recompilation blowups with deadlines looming, when I desperately needed a system that would just allow me to <em>get to work</em>.  This semi-irrational fear of installing Linux along with a decreasing desire to tinker with my OS instead of doing &#8220;real work&#8221; did have its upside though - I was able to give some business to the great folks at <a title="Pogo Linux" href="http://www.pogolinux.com/">Pogo Linux</a>.</p>
<p>Linux&#8217;s ease of installation has progressed dramatically since then.  Obviously a sample size of one isn&#8217;t very telling, but the above system just works™ with Ubuntu.  After getting a stable Linux install, everything pretty much continues to plug away just fine until the hardware fails.  The whole problem is getting that stable install in the first place.</p>
<p>Straight out of the box, Ubuntu recognized and configured all of my hardware.  If you are looking to build your own Ubuntu box, the above configuration worked beautifully for me.  Granted, the speakers didn&#8217;t work with all applications - some apps insisted on using the built in sound card.  Thanks to some PulseAudio tutorials, that&#8217;s sorted out now except for a few lingering issues.  I also need to take some time to get Firefox&#8217;s flash support working, which is apparently a bit dicey on 64 bit.  Besides those two issues, the install was remarkably easy, and I&#8217;m busy hacking away.</p>
<p>Much thanks go out to the Ubuntu folks who made the install process so quick and painless.</p>
<p><img src="http://www.lduhtrp.net/image-2960734-10440897" border="0" alt="" width="1" height="1" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=-nLc2baDTLo:NXdaiRTkf5A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:ACf-c_HutVc"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=ACf-c_HutVc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=-nLc2baDTLo:NXdaiRTkf5A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=-nLc2baDTLo:NXdaiRTkf5A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=-nLc2baDTLo:NXdaiRTkf5A:XAVGb8Xj5zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=XAVGb8Xj5zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/-nLc2baDTLo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/167/building-a-ubuntu-box/feed/</wfw:commentRss>
		</item>
		<item>
		<title>51 Insanely Useful Emacs Shortcuts</title>
		<link>http://grok-code.com/207/51-insanely-useful-emacs-shortcuts/</link>
		<comments>http://grok-code.com/207/51-insanely-useful-emacs-shortcuts/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 02:27:32 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Books & Tools]]></category>

		<category><![CDATA[cheat sheet]]></category>

		<category><![CDATA[code editor]]></category>

		<category><![CDATA[emacs]]></category>

		<category><![CDATA[gnu emacs]]></category>

		<category><![CDATA[hotkeys]]></category>

		<category><![CDATA[refcard]]></category>

		<category><![CDATA[reference card]]></category>

		<category><![CDATA[shortcuts]]></category>

		<category><![CDATA[xemacs]]></category>

		<guid isPermaLink="false">http://grok-code.com/?p=207</guid>
		<description><![CDATA[This shortcut reference card covers mostly intermediate and advanced shortcuts for GNU emacs (most of them will work with Xemacs as well.) Become a more productive and competent developer on emacs by learning these shortcuts.  ]]></description>
			<content:encoded><![CDATA[<p>Intimate knowledge of your code editor is required to be competent and productive developer.  Here is a list of shortcuts anyone on the path to becoming an emacs guru should be familiar with.  This shortcut reference card covers mostly intermediate and advanced shortcuts for GNU emacs (most of them will work with Xemacs as well.)  I learned some great new shortcuts while making this cheat sheet; I hope they will be helpful to my readers as well. <span id="more-207"></span></p>
<h3>Help</h3>
<p><code><strong>M-x describe-bindings</strong></code> Show a list of all the current key bindings.  This shows you all available emacs shortcuts and the function invoked by the shortcut.</p>
<p><code><strong>F1 f </strong></code>Type a function name and get a short description of what it does.</p>
<p><code><strong>F1 a</strong></code> Find apropos commands.  Entering a search term will give you a list of commands and key bindings containing the search term.  Very useful if you are looking for something but don&#8217;t know the exact command.</p>
<h3>Windows &amp; Buffers</h3>
<p><code><strong>C-x o</strong></code> Switch to next window</p>
<p><code><strong>C-x b </strong></code>Switch buffers.  The default is to switch to the most recent buffer before your current one.  TAB TAB will give a buffer completion list.</p>
<p><code><strong>C-x C-b</strong></code> List all open buffers.  This list is called the &#8216;buffer ring&#8217;.</p>
<p><code><strong>C-x k</strong></code> Kill the current buffer.</p>
<h3>Searching</h3>
<p><code><strong>M-%</strong></code> Interactive string find and replace.</p>
<p><code><strong>C-r</strong></code> String search backwards.</p>
<p><code><strong>C-u C-s </strong></code> Regular expression search.</p>
<p><code><strong>M-x find-grep-dired</strong></code> Search a directory recursively for all files that contain a regular expression.</p>
<h3>Navigation</h3>
<p><code><strong>C-a </strong></code> Move to the beginning of the line.</p>
<p><code><strong>C-e </strong></code> Move to the end of the line.</p>
<p><code><strong>M-x goto-line </strong></code>or<code><strong> M-g g</strong></code> Goto the indicated line.</p>
<p><code><strong>M-&gt;</strong></code> Moves to end of buffer.</p>
<p><code><strong>M-&lt;</strong></code> Moves to start of buffer.</p>
<h3>Regions</h3>
<p><code><strong>C-Space</strong></code> Set the mark.  This is a marker for the beginning of a region.  Moving the cursor to another position will set the end of the region, called the &#8216;point&#8217;.</p>
<p><code><strong>C-x h</strong></code> Select all.  Create a region containing the whole buffer.</p>
<p><code><strong>C-x C-x</strong></code> Switch the mark and the point.</p>
<p><code><strong>M-h</strong></code> Set the region to the current paragraph</p>
<h3>Copy &amp; Paste</h3>
<p><code><strong>M-w</strong></code> Copy the selected region to the clipboard.</p>
<p><code><strong>C-w</strong></code> Cut the selected region and put the text in the clipboard.</p>
<p><code><strong>C-k</strong></code> Cut from the cursor to the end of the line, putting the text in the clipboard.</p>
<p><code><strong>C-y</strong></code> Paste / yank the most recent text in the clipboard.</p>
<h3>Formatting &amp; Spell Checking</h3>
<p><code><strong>M-U </strong></code> Uppercase word.</p>
<p><code><strong>M-L</strong></code> Lowercase word.</p>
<p><code><strong>M-$</strong></code> Check spelling of current word.</p>
<p><code><strong>M-x ispell-buffer</strong></code> Check spelling of current buffer.</p>
<p><code><strong>M-Q</strong></code> Reflow paragraph.  When writing text, this will fix up line breaks in the paragraph.</p>
<p><code><strong>Shft-Mouse 1</strong></code> Change font size.</p>
<h3>Coding</h3>
<p><code><strong>C-c C-c</strong></code> Comment out region.  When using a minor mode that supports it.  Most minor modes for programming languages do.</p>
<p><code><strong>M-^</strong></code>Join this line with the previous line; removes the newline between the two lines.</p>
<p><code><strong>M-x shell</strong></code> Start a new shell within emacs.</p>
<p><code><strong>M-!</strong></code> Execute a shell command</p>
<p><code><strong>M-x hexl-mode</strong></code> Open a buffer in hexadecimal mode.</p>
<h3>Macros</h3>
<p><code><strong>C-x (</strong></code> Start macro definition.</p>
<p><code><strong>C-x )</strong></code> End of macro definition.</p>
<p><code><strong>C-x e</strong></code> Execute last defined macro.</p>
<p><code><strong>M-n C-x e</strong></code> Execute last defined macro n times.</p>
<h3>Emacs Lisp</h3>
<p><code><strong>M-:</strong></code> Run an an emacs lisp expression in the mini-buffer.</p>
<p><code><strong>M-x ielm</strong></code> Run an interactive emacs lisp interpretor.  For an introduction to Emacs Lisp, have a look at <a title="Emergency Elisp" href="http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html">Emergency Elisp</a>.</p>
<h3>Miscellaneous</h3>
<p><code><strong>C-x i</strong></code> Insert the contents of a file at the cursor position.</p>
<p><code><strong>C-x C-v</strong></code> Reload file from disk.</p>
<p><code><strong>C-/</strong></code> Undo.</p>
<p><code><strong>C-g</strong></code> Quit the command currently in the mini-buffer.  Useful if you mistype a shortcut and want to start over.</p>
<p><code><strong>C-x C-c</strong></code> Quit emacs.</p>
<h3>Slacking Off</h3>
<p><code><strong>M-x zone</strong></code> Start zoning out.  After a short idle time, the text in the buffers will go crazy.  Useful for keeping you on your toes.</p>
<p><code><strong>M-x zone-leave-me-alone</strong></code> Stop zoning out.</p>
<p><code><strong>M-x tetris</strong></code> Play tetris.</p>
<p><code><strong>M-x doctor</strong></code> Get psychoanalyized by an AI.</p>
<p><code><strong>M-x hanoi</strong></code> Towers of Hanoi.
<p><a href="http://www.dpbolvw.net/cs65efolfn25C93A6724373C395" target="_top"><br />
<img src="http://www.ftjcfx.com/po72kpthnl69GD7EAB687B7G7D9" alt="Get a better job, at Job.com!" border="0"/></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=vSzGt3RSaV4:SsaW9uIPPc0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:ACf-c_HutVc"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=ACf-c_HutVc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=vSzGt3RSaV4:SsaW9uIPPc0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=vSzGt3RSaV4:SsaW9uIPPc0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=vSzGt3RSaV4:SsaW9uIPPc0:XAVGb8Xj5zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=XAVGb8Xj5zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/vSzGt3RSaV4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/207/51-insanely-useful-emacs-shortcuts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interview: Lynne Jolitz</title>
		<link>http://grok-code.com/259/interview-lynne-jolitz/</link>
		<comments>http://grok-code.com/259/interview-lynne-jolitz/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 12:18:23 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[famous programmers]]></category>

		<category><![CDATA[interview]]></category>

		<category><![CDATA[lynne jolitz]]></category>

		<guid isPermaLink="false">http://grok-code.com/?p=259</guid>
		<description><![CDATA[This is the second interview in an ongoing (but sporadic) series of interviews with famous programmers and authors of books that should be required reading for any serious developer.  Lynne Jolitz is an accomplished author, 386BSD hacker, Silicon Valley entrepreneur, and all-around geek.  She has long been a figure in the tech community.  Regular readers [...]]]></description>
			<content:encoded><![CDATA[<p>This is the second interview in an ongoing (but sporadic) series of interviews with <a title="famous programmers" href="http://grok-code.com/37/famous-programmers-from-adleman-to-zimmermann/">famous programmers</a> and authors of books that should be <a title="Required reading for developers" href="http://grok-code.com/11/the-top-9-in-a-hackers-bookshelf/">required reading for any serious developer</a>.  Lynne Jolitz is an accomplished author, 386BSD hacker, Silicon Valley entrepreneur, and all-around geek.  She has long been a figure in the tech community.  Regular readers will remember that she was included in the analysis of famous programmers.  Lets get to the interview! <span id="more-259"></span></p>
<p><img src="file:///tmp/moz-screenshot.jpg" alt="" /><a title="Source Code Secrets" href="http://www.amazon.com/gp/product/1573980269?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1573980269"><img class="alignleft size-full wp-image-262" style="margin-left: 15px; margin-right: 15px;" title="source_code_secrets" src="http://grok-code.com/wp-content/uploads/source_code_secrets1.jpg" alt="The Basic Kernel Source Code Secrets" width="184" height="240" /></a></p>
<h4>1. How did you first get involved with programming?</h4>
<blockquote><p>While a Berkeley physics major, most of my friends were in computer science, so I also got involved with the Computer Science Undergraduate Association (CSUA) and eventually became Treasurer. At that time CS, Math, Physics and EE students often took courses in each other’s department – it was quite social and interdisciplinary. Given the limited resources in the department (an antique IBM 1620 departmental computer), using the more modern PDP 11/70&#8217;s and VAX&#8217;s through the computer center was the only way to do reasonable data analysis / reduction and incorporate it into papers using troff.</p>
<p>It really came together for me with machine-level programming on the PDP 11/05 in Cory Hall. It was fun to actually toggle in binary instructions with front panel switches and debug the program by gaining access to the machine&#8217;s hardware directly. The ability to sample instruments and capture scientific data with real-time digital signal processing vastly increased the range of laboratory experiments. The axiomatic nature of machine instructions captivated me into programming forever.</p>
<p>From this start things moved rapidly. I got a student award - a bottle of champagne - for writing the most original algorithm (it was based an original fairy tale I wrote, including a flowchart). The Professor cited me for creating an &#8220;oasis in a desert&#8221;. I also created a simulation of a cocktail party, with a variety of characters, whose interactions dynamically changed attributes as they joined the party, mingled and left - with some interesting pairings and states of inebriation. I learned that simulations can present surprising results.</p>
<p>At the time I had just read &#8220;The Shockwave Rider&#8221; by Brunner, and through my first programming experiences realized it wasn’t such a fantastical novel – that we were on the edge of a new networked paradigm with amazing social and technological implications. The impact of programming on my life from that point involved me in networks, client/server, and data retrieval systems as they evolved and became omnipresent. If anything, the technology that has actually happened is more fantastic than what the fiction presented.</p></blockquote>
<h4>2. What advice would you give to someone who wants to be a successful programmer?</h4>
<blockquote><p>Think in terms of axioms that can be managed in a concrete manner. It is my experience that the best work is always provable and reducible, while the least useful work stems from poor definition. A poorly defined and scoped project leads to programmer frustration, inconsistent and/or incorrect code that misleads or fails to solve the problem. In our internetworked age, erroneous code can inadvertently propagate before the programmer has the opportunity correct problems.</p>
<p>It happens to the best of us, so there is no shame in facing this problem head-on. In fact, it presents opportunities for new work. When we were putting together a discussion of the virtual memory system for 386BSD (Volume 2 of <a title="Source Code Secrets" href="http://www.amazon.com/gp/product/1573980269?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1573980269">Source Code Secrets</a>), we found many areas of the code that had not been completed, as if it was just “forgotten”. The Mach virtual memory system is a wonderful subsystem – careful design, methodical and thorough execution – but there were gaps no one noticed. We all presumed it worked, and only found otherwise in writing the book. All work bears reexamination on occasion. As Socrates once said, “The unexamined life is not worth living”.</p>
<p>It is no longer sufficient to write reams of code that appears to function without taking responsibility for the corner cases. It is difficult but rewarding to assemble collections of axioms as effective programs, where you can prove effectiveness and testable boundary conditions. I have used this technique in a variety of programming environments, from C to Verilog, operating systems to semiconductors, and it serves me well. I have even been granted patents on hardware TCP/IP stack acceleration from such a disciplined framework of axioms.</p></blockquote>
<h4>3. What is your greatest achievement?</h4>
<blockquote><p>I loved 386BSD – the articles, the books, the code, and the releases – and enjoyed pushing the envelope on innovations in design. We did not feel encumbered by corporate demands, and could innovate freely. Work on self-ordered plug and play configuration, tfork(), integrating role based security into an extant Posix model, ring buffers, polymorphic protocols, file I/O clustering, optimized virtual memory efficiency, memory allocation scheme that could defragment 90% of all kernel memory allocation /deallocation allowing for heap management, and symbolic dynamic binding for kernel subsystems, to name only a few.</p>
<p>In addition, from my experiences in the 1980’s with Unix workstations at Symmetric Computer System, I felt very strongly that installation should be simple and automatic so that non-Unix enthusiasts could participate on an equal footing with Unix experts. To that end, we constructed a fully automated installation mechanism. One part separated the tasks of setting up a system into autonomous activities that would be build, while the human-oriented cognitive process of getting information off occurred in parallel. The latter process was organized to minimize the amount of confusion induced by system setup, so the software took on this burden. It was very slick, and is still a remarkable achievement.</p>
<p>I’d have to say my greatest achievement in programming, however, was working with hardware engineers to find the ultimate limits of Internet protocol processing. Most computers use TCP/IP protocol stacks implemented in C as programs. I thought this limited the speed of the Internet, and by expressing the operations of the stack in bit synchronous sequential form, I could create a dataflow architecture which would evaluate / generate protocol packets as instructions themselves, and view the information exchange as a kind of program itself.</p>
<p>I&#8217;m a physicist first, and Einstein often dreamed of what it would be like to travel on a beam of light. In like kind, I wondered what it would be like to travel on a packet. Think about it – the packet comes into existence bit by bit, travels across the network, and bit by bit enters its destination host. All this time it is processed continually by the entire Internet, as if it is actually one enormous machine like the Multivac of Isaac Asimov&#8217;s Robot series.</p>
<p>It is the clear understanding and application of axioms that make it possible to achieve this. The benefit is that once done, the complexity of the system of axioms can be refined using other programs, and the power per bit can be reduced by a billion, such that the speed / power product that limits the economics of the Internet can be vastly enhanced. This was proven at <a href="http://www.interprophet.com">InterProphet</a>. It’s rare one is given the opportunity to build a team and pioneer a whole new field. The fact I’ve been able to do it twice, with 386BSD and at InterProphet, is something for which I am most grateful.</p></blockquote>
<h4>4. What hobbies do you have outside of software development?</h4>
<blockquote><p>I’ve been writing music and singing since I was a teenager, and it’s one of my favorite hobbies. I’ve dabbled in digital recording as well. I’m also a big science fiction fan – I love the old scifi stories from the “Golden Age” of science fiction, because they were so innovative for the time. One of my “family” projects was the development of an Internet video server with a browser “controller” accessible from any laptop containing all of our favorite videos from Star Trek to Blade Runner – we recently watched all the Babylon 5 episodes and movies together and had fun comparing Bester and the Psi Corp with Chekov and the Federation. And since everyone in my household has his or her own telescope, we like to go as a family to help out at school star parties.</p></blockquote>
<h4>5. What are some of your recent projects?</h4>
<blockquote><p>I am an adviser to <a href="http://coolclip.net">CoolClip Network</a>, a stealth-mode GenY Internet startup that utilizes a unique server-based video production engine I originally designed and tested at Berkeley. CoolClip was a semifinalist in the Women2.0 2008 Silicon Valley business plan competition. It is in beta (invite-only) at UCLA, works great and is very fun to use. I expect great things from this startup.</p>
<p>I believe we can make a difference in our world for the better if we strive to achieve it, and work with many in Silicon Valley to that end assisting in furthering their projects. 386BSD, for example, was thought impossible to do at the time because of the resource required. It took years of constant 24/7 hard-fought victories with frequent setbacks and disappointments. Through the enthusiasm and support of champions at Dr. Dobbs Journal and in the Unix community, we saw it through and watched it change how the world viewed open source. Now open source is considered mundane, but in 1990 nobody believed it would be a viable alternative to proprietary systems. The businessmen and cynics bet against it – and lost. Kuhn in his book <a href="http://www.amazon.com/gp/product/0226458083?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0226458083">The Structure of Scientific Revolutions</a> distinguished between normal science and paradigm shift. Silicon Valley is all about paradigm shift – innovation and change. Programmers provide the valuable contribution to paradigm shift, and should be proud of their profession and relentless in the rigor of their work.</p></blockquote>
<p>For more info on Lynne, have look at <a href="http://lynnesblog.telemuse.net/">her blog</a>.
<p><a href="http://www.anrdoezrs.net/pc98y1A719PSZWQXTUPRQUXZXYV" target="_top"><br />
<img src="http://www.awltovhc.com/gh116tkocig14B8295613269B9A7" alt="Apple Store" border="0"/></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=y3eeR4v3FZE:IzEkxo4xfbQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:ACf-c_HutVc"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=ACf-c_HutVc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=y3eeR4v3FZE:IzEkxo4xfbQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=y3eeR4v3FZE:IzEkxo4xfbQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=y3eeR4v3FZE:IzEkxo4xfbQ:XAVGb8Xj5zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=XAVGb8Xj5zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/y3eeR4v3FZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/259/interview-lynne-jolitz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Practice Your Code-Fu: Programming Contests and Puzzles Online</title>
		<link>http://grok-code.com/214/practice-your-code-fu-programming-contests-and-puzzles-online/</link>
		<comments>http://grok-code.com/214/practice-your-code-fu-programming-contests-and-puzzles-online/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 21:46:04 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Fun Projects]]></category>

		<category><![CDATA[brain teasers]]></category>

		<category><![CDATA[code golf]]></category>

		<category><![CDATA[ioccc]]></category>

		<category><![CDATA[mindcipher]]></category>

		<category><![CDATA[programming]]></category>

		<category><![CDATA[programming contests]]></category>

		<category><![CDATA[Project Euler]]></category>

		<category><![CDATA[puzzles]]></category>

		<category><![CDATA[topcoder]]></category>

		<category><![CDATA[uva online]]></category>

		<guid isPermaLink="false">http://grok-code.com/?p=214</guid>
		<description><![CDATA[This is a list of the best sites on the net for practicing your coding chops, showing off your programming skills, and competing for fame and fortune.  Exercise your brain by untangling obfuscation, applying algorithms knowledge, growing your inner math geek, or playing a bit of code golf. ]]></description>
			<content:encoded><![CDATA[<p>This is a list of the best sites on the net for practicing your coding chops, showing off your programming skills, and competing for fame and fortune.  Exercise your brain by untangling obfuscation, applying algorithms knowledge, growing your inner math geek, or playing a bit of code golf. These sites have exercises to build on and refine what you already know, or learn the language du jour.<span id="more-214"></span></p>
<p><a href="http://codegolf.com/"><img class="alignleft size-full wp-image-223" title="Code Golf" src="http://grok-code.com/wp-content/uploads/code_golf1.png" alt="Code Golf" width="360" height="130" /></a></p>
<h4><a href="http://codegolf.com/">Code Golf</a></h4>
<p><em>When: </em>Ongoing, new challenges posted sporadically</p>
<p><em>Languages: </em>Perl, PHP, Python, Ruby</p>
<p><em>How it works: </em>Based on the original perl golf, Code Golf allows you to show off your code-fu by solving coding problems using the least number of keystrokes.  The challenges cover a nice mix of topics; example challenges are 99 Bottles of Beer, Tower of Hanoi, The Game of Life, and converting Roman numerals to base 10 integers.</p>
<p><em>How to win: </em>Submit your code, and if it passes the challenge test cases, your entry is scored according to the number of characters. Win bragging rights by appearing on the overall leader board or the leader board for each problem.</p>
<p><a href="http://icpcres.ecs.baylor.edu/onlinejudge/"><img class="alignleft size-full wp-image-221" title="UVa" src="http://grok-code.com/wp-content/uploads/uva.png" alt="UVa" width="360" height="129" /></a></p>
<h4><a href="http://icpcres.ecs.baylor.edu/onlinejudge/">UVa</a></h4>
<p><em>When: </em>New contests every month</p>
<p><em>Languages: </em>C, Java, C++, Pascal</p>
<p><em>How it works: </em>Each contest consists of anywhere between 3 and 10 problems.  The problem sets demand quick thinking and a good computer science background with solid knowledge of algorithms, data structures, and mathematics.  Common themes are palindromes, primes, and graphs.  Check out the extensive contest archives for practice.</p>
<p><em>How to win: </em>Contests are timed and usually last several hours, so have some coffee and brain food nearby.  Submit code for each problem to the automatic tester when it&#8217;s finished.  Contestants are ranked by the number of correct solutions and ties broken by the time taken to complete the challenge.</p>
<p><a href="http://mindcipher.com/"><img class="alignleft size-full wp-image-244" title="Mindcipher" src="http://grok-code.com/wp-content/uploads/mindcipher.png" alt="Mindcipher" width="360" height="79" /></a></p>
<h4><a href="http://mindcipher.com/">Mindcipher</a></h4>
<p><em>When: </em>Ongoing</p>
<p><em>Languages: </em>Logic</p>
<p><em>How it works: </em>Mindcipher is a social repository of the world&#8217;s greatest brain teasers, logical puzzles and mental challenges.  No programming required, just logic and common sense.  Some of the problems are taken from Google and Microsoft interviews so brush up your interview skills while having some fun.  Categories of brain teasers are mathematics, physics, at the campfire, logical, riddles, lateral thinking, optical illusions, and general.  Each puzzle is ranked according to difficulty and members can vote up favorite puzzles.</p>
<p><em>How to win: </em>Answers are provided for each brain teaser, so there isn&#8217;t really any winning involved.</p>
<p><a href="http://projecteuler.net/"><img class="alignleft size-full wp-image-219" title="Project Euler" src="http://grok-code.com/wp-content/uploads/project_euler.png" alt="Project Euler" width="360" height="140" /></a></p>
<h4><a href="http://projecteuler.net/">Project Euler</a></h4>
<p><em>When: </em>Ongoing</p>
<p><em>Languages: </em>All languages</p>
<p><em>How it works: </em>Each problem is designed to be solved by some combination of mathematical insight and algorithm design.  Problems build on one another, getting progressively harder, so its a great way to keep your math skills fresh. After solving a problem you are given access to the forum containing algorithm discussion and solutions in a wide variety of languages, so <a href="http://grok-code.com/75/learning-scala-with-project-euler/">Project Euler is a nice way to learn a new language</a>. </p>
<p><em>How to win: </em>Submit correct answers to the most recent 25 problems to earn a spot on the venerable Eulerians list.  Or solve more than 200 puzzles to reach level 5.</p>
<p><a href="http://www.topcoder.com/tc"><img class="alignleft size-full wp-image-243" title="TopCoder" src="http://grok-code.com/wp-content/uploads/top_coder1.png" alt="TopCoder" width="360" height="105" /></a></p>
<h4><a href="http://www.topcoder.com/tc">TopCoder</a></h4>
<p><em>When: </em> Weekly rated competitions, and practice rooms that are always open</p>
<p><em>Languages: </em>Java, C++, C#, Visual Basic</p>
<p><em>How it works: </em>In TopCoder&#8217;s algorithm competitions, you have a set amount of time to complete the problem set (usually an hour).  Code is normally developed inside TopCoder; there are multiple plugins that provide an IDE within your browser.</p>
<p>TC also holds &#8220;competitions&#8221; in bug fixing and component design, development, and assembly.  These competitions are actually work developed on a speculative basis for companies who have outsourced development to TC, with &#8220;prizes&#8221; given to work with the best ratings.</p>
<p><em>How to win: </em>For the algorithm competitions, develop, test, and submit solutions to the 3 problems in the set during the submission widow.  After a 5 minute intermission you can view competitors&#8217; code and challenge it by giving a test case that you believe will break the submission.  Scoring is based on problem difficulty, time to complete the problem, results of the challenge round, and results of automated testing.</p>
<p><a href="http://www.de.ioccc.org/main.html"><img class="alignleft size-full wp-image-218" title="International Obfuscated C Code Contest" src="http://grok-code.com/wp-content/uploads/ioccc.png" alt="International Obfuscated C Code Contest" width="360" height="130" /></a></p>
<h4><a href="http://www.de.ioccc.org/main.html">The International Obfuscated C Code Contest</a></h4>
<p><em>When: </em>Yearly (but currently on hiatus after 19 competitions)</p>
<p><em>Languages: </em>C</p>
<p><em>How it works: </em>Submit your most obfuscated ANSI C code.  Each contest has a list of rules concerning code size, the build process, compile dependencies, etc.  However, legal abuse of the rules is somewhat encouraged.  Winners from previous years have all used nefariously tricky obfuscation.</p>
<p><em>How to win: </em>Submissions are judged by a panel of judges based on how obfuscated the code is.  Originality is important in both the type of obfuscation used and the purpose of the code.
<p><a href="http://www.tkqlhce.com/bm116js0ys-FIPMGNJKFHGKPOGMJ" target="_top"><br />
<img src="http://www.tqlkg.com/33106y7B-53PSZWQXTUPRQUZYQWT" alt="Guitar Hero III is Now Shipping at the RedOctane S" border="0"/></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=FJn2cAj1xPU:j5UfnN1wNVA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:ACf-c_HutVc"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=ACf-c_HutVc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=FJn2cAj1xPU:j5UfnN1wNVA:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:cGdyc7Q-1BI"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=cGdyc7Q-1BI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/GrokCode?i=FJn2cAj1xPU:j5UfnN1wNVA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/GrokCode?a=FJn2cAj1xPU:j5UfnN1wNVA:XAVGb8Xj5zA"><img src="http://feeds.feedburner.com/~ff/GrokCode?d=XAVGb8Xj5zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/FJn2cAj1xPU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/214/practice-your-code-fu-programming-contests-and-puzzles-online/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Poll: How Has the Economic Crisis Affected You?</title>
		<link>http://grok-code.com/142/poll-how-has-the-economic-crisis-affected-you/</link>
		<comments>http://grok-code.com/142/poll-how-has-the-economic-crisis-affected-you/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 01:50:03 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[economic crisis]]></category>

		<category><![CDATA[layoffs]]></category>

		<category><![CDATA[poll]]></category>

		<guid isPermaLink="false">http://grok-code.com/?p=142</guid>
		<description><![CDATA[With all of the gloom and doom forecasts about the global recession and layoffs everywhere, I&#8217;m interested to hear how this mess is affecting programmers.  Despite the generally abysmal outlook, many statistics specific to the tech sector fall into the unchanged or optimistic buckets.  Meanwhile, TechCrunch and others are proclaiming that the tech industry [...]]]></description>
			<content:encoded><![CDATA[<p>With all of the gloom and doom forecasts about the global recession and layoffs everywhere, I&#8217;m interested to hear how this mess is affecting programmers.  Despite the generally abysmal outlook, many statistics specific to the tech sector fall into the unchanged or optimistic buckets.  Meanwhile, TechCrunch and others are proclaiming that the tech industry has been particularly hard hit.  So what say you?<span id="more-142"></span></p>
<h3>The Good</h3>
<p>A look at job opening trends on indeed.com shows a healthy picture.  Compare the absolute number of jobs posting for programmers, net admins, and software developers to the number of postings for real estate.  Openings have actually been increasing in the tech sector.</p>
<div style="width: 540px;"><a title="programmer, network administrator, software developer, &quot;real estate&quot; Job Trends" href="http://www.indeed.com/jobtrends?indpubnum=710696303974836&amp;q=programmer%2C+network+administrator%2C+software+developer%2C+%22real+estate%22"><br />
<img src="http://www.indeed.com/trendgraph/jobgraph.png?q=programmer%2C+network+administrator%2C+software+developer%2C+%22real+estate%22" border="0" alt="programmer, network administrator, software developer, &quot;real estate&quot; Job Trends graph" width="540" height="300" /><br />
</a></div>
<p>Number of job openings is only one side of the equation though.  If the number of people looking for jobs is very high, the outlook is still grim.  But is this the case?  Unemployment numbers seem to say no.</p>
<p>According to the most recent US Bureau of Labor Statistics report for December 2008, the unemployment rate is 7.1%.  Looking at the <a href="http://www.bls.gov/news.release/empsit.t10.htm">stats by occupation</a>, programmers would lie in the &#8220;Professional and related occupations&#8221; category, which is the category with the lowest unemployment rate, at 2.9%.</p>
<p>This industry went through the dot com bust not long ago, causing a huge glut in the workforce.  Enrollment in university programs went down, and many workers left the tech sector for greener pastures. The upside being that since the recovery from the dot com days, there has been a shortage of good programmers.  This shortage will soften the impact of the recession.</p>
<p>Also, during difficult economic times, companies are more likely to invest in tech that will streamline inefficient manual processes.  This creates more programming jobs.</p>
<h3>The Bad</h3>
<p>The data above is a few months old, and recent layoffs have been pretty extensive. On their <a href="http://www.techcrunch.com/layoffs/">layoff tracker</a> TechCrunch proclaims:</p>
<blockquote><p>October 2008 will be remembered as the time in which the credit crunch came to a head not only for the economy as a whole but for the tech community in particular. Startups have begun preparing themselves for a bleak and uncertain economic future by cutting costs and focusing on efficiency. This has been achieved most obviously through layoffs, which can reduce burn rates quickly and dramatically for web companies that require little physical capital.</p></blockquote>
<p>I don&#8217;t see a whole lot of hard evidence backing up the claim that the tech community is particularly affected.</p>
<p>However, there is some danger of a domino effect - if no one can afford to buy software, who is going to pay people to make it?</p>
<h3>So what say you?</h3>
<div style="margin: 0pt auto; width: 300px;">Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=XJSRMtrY"><img src="http://feeds.feedburner.com/~f/GrokCode?i=XJSRMtrY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=oKvTiEbK"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=cuv9u6ty"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=TOIWP5Zl"><img src="http://feeds.feedburner.com/~f/GrokCode?i=TOIWP5Zl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=NyK80BwY"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=bmVUd0aw"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=8cJ28uSm"><img src="http://feeds.feedburner.com/~f/GrokCode?i=8cJ28uSm" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=vYuSlmek"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/aQCt4C9Q35U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/142/poll-how-has-the-economic-crisis-affected-you/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How To Setup a Windows SVN Repository</title>
		<link>http://grok-code.com/115/how-to-setup-a-windows-svn-repository/</link>
		<comments>http://grok-code.com/115/how-to-setup-a-windows-svn-repository/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 03:24:03 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Tips & Tutorials]]></category>

		<category><![CDATA[how to]]></category>

		<category><![CDATA[source control]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://grok-code.com/115/how-to-setup-a-windows-svn-repository/</guid>
		<description><![CDATA[This is a tutorial on how to setup a Subversion (SVN) repository on Windows that allows secure connections over SSH.  The tutorial also goes through setting up an SVN client and connecting to the repository. Some basic knowledge of a UNIX based command line will help, but you might be able to muddle through [...]]]></description>
			<content:encoded><![CDATA[<p>This is a tutorial on how to setup a Subversion (SVN) repository on Windows that allows secure connections over SSH.  The tutorial also goes through setting up an SVN client and connecting to the repository. Some basic knowledge of a UNIX based command line will help, but you might be able to muddle through without it.<span id="more-115"></span></p>
<p>If you plan on storing the repository on the development machine (normally only useful if you are a lone wolf developer and always use the same development box), this tutorial will be more complicated than you need.</p>
<p>This tutorial was tested with the repository installed on Windows Server 2003, and the SVN client on Windows XP, although the process is pretty much the same on any version of Windows.</p>
<h4><img style="margin-left: 15px; margin-right: 15px;" src="http://grok-code.com/wp-content/uploads/2009/01/cywin-install.png" alt="Cygwin Insall Screenshot" hspace="15" align="left" />Install Cygwin</h4>
<p>Cygwin is linux-like environment for Windows. It gives you a terminal much like you would find on any *nix based system, and is one of my <a title="My Favorite Development Tools" href="http://grok-code.com/6/top-7-development-tools/">favorite development tools</a>.</p>
<p><a href="http://www.cygwin.com/">Download Cygwin</a>, and install it on the server.  You can keep all of the defaults for Installation Type, Installation Directory, etc.  The only thing you need to change is the packages selected for install. Keep all of the packages that are initially selected, plus select &#8216;openssh&#8217; from the Net category, &#8217;subversion&#8217; from the Devel category, and &#8216;cygrunsrv&#8217;  from Admin.</p>
<h4>Install the SSH Daemon</h4>
<p>The SSH daemon provides secure communication between the client and server.  It will be used to encrypt any updates that are made to the repository.</p>
<p>In order to install it, make sure you are logged in as an Administrator.  Open Cygwin and run</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">ssh-host-config -y</div>
</li>
</ol>
</div>
<p>to run the ssh config script.</p>
<p>when it asks for the value of the environment variable CYGWIN, type &#8216;ntsec tty&#8217;</p>
<p>If you see warnings or errors related to file permissions, run the following lines, then rerun the config script.  Note that I&#8217;m no security expert, so please take these directions with a grain of salt.</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> +x /var</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> &nbsp;+rw /etc/group</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> +rw /etc/<span class="kw2">passwd</span></div>
</li>
</ol>
</div>
<p>Once ssh-host-config finishes with the info message &#8216;Have fun!&#8217; the ssh daemon is configured.</p>
<p><img src="http://grok-code.com/wp-content/uploads/2009/01/ssh-host-config1.png" alt="ssh-host-config screenshot" /></p>
<p>Depending on your system, you may run into something like this instead:</p>
<p><img src="http://grok-code.com/wp-content/uploads/2009/01/ssh-host-config2.png" alt="ssh-host-config screenshot 2" /></p>
<p>The daemon was successfully configured, but for some reason privilege separation failed.  If you are happy with a slightly less secure system, you can go ahead and use it this way.  <em>And if anyone knows how to fix this issue, please let me know. </em></p>
<p>Go ahead and start it up with</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">cygrunsrv -S sshd</div>
</li>
</ol>
</div>
<p>Test the setup by running</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">ssh</span> localhost</div>
</li>
</ol>
</div>
<p>which should now allow you to log in with your Windows password.</p>
<h4>Create the SVN Repository</h4>
<p>Inside of Cygwin, run the following command to create a repository called svn inside the home directory:</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">svnadmin create /home/svn</div>
</li>
</ol>
</div>
<p>If you are restoring the repository from another location, run</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">svnadmin load /home/svn &lt; &lt;dumpfile-name&gt;</div>
</li>
</ol>
</div>
<h4>Setup a Client</h4>
<p>Now that the server is setup, lets checkout the code onto a development machine.</p>
<p>Start by installing Cygwin on the dev box.  Installing using the default options works fine, and go ahead and select the same packages used in the server installation.</p>
<p>Open cygwin and run</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">svn <span class="kw2">co</span> &nbsp;svn+<span class="kw2">ssh</span>://&lt;username&gt;@&lt;your server name or IP&gt;/home/svn</div>
</li>
</ol>
</div>
<p>Remember to fill in your own details - here &lt;username&gt; is the username on the server machine.</p>
<h4>Setup Additional Users</h4>
<p>You will want to create a seperate user for everyone who will be commiting to the repository.</p>
<p>Create a new Windows user on the server, here we will create the user &#8216;devel&#8217;.  The username can be whatever you choose, but avoiding spaces and punctuation characters in the username might make your life easier down the road, since cygwin can sometimes choke on weird usernames.   As a generally good security practice, the new user should <strong>not</strong> be an administrator, it should have limited rights, and it should have a strong password set.</p>
<p>Here are instructions for creating a user for <a title="New user in Windows Server 2003" href="http://www.visualwin.com/New-User/">Windows Server 2003</a>.</p>
<p>Now we need to let Cygwin know about the new user.  To do so, run these commands:</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> u+<span class="kw2">w</span> /etc/<span class="kw2">passwd</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">chmod</span> u+<span class="kw2">w</span> /etc/group</div>
</li>
<li class="li1">
<div class="de1">mkpasswd -l &gt; /etc/<span class="kw2">passwd</span></div>
</li>
<li class="li1">
<div class="de1">mkgroup -l &gt; /etc/group</div>
</li>
</ol>
</div>
<p>The user devel will now have access to the repository.  Check by running</p>
<div class="dean_ch" style="white-space: nowrap;">
<ol>
<li class="li1">
<div class="de1">svn list svn+<span class="kw2">ssh</span>://devel@&lt;your server name or IP&gt;/home/svn</div>
</li>
</ol>
</div>
<p>Thats all there is to it!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=qvCDcnnr"><img src="http://feeds.feedburner.com/~f/GrokCode?i=qvCDcnnr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=oExTINqh"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=9cgUYCpS"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=y2fJ4T4L"><img src="http://feeds.feedburner.com/~f/GrokCode?i=y2fJ4T4L" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=2kNZbmDi"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=9zSISBUy"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=adgcI56N"><img src="http://feeds.feedburner.com/~f/GrokCode?i=adgcI56N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=aIcOU6vw"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/BYKRnI1GEts" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/115/how-to-setup-a-windows-svn-repository/feed/</wfw:commentRss>
		</item>
		<item>
		<title>T-Shirts: Display Your Inner Geek</title>
		<link>http://grok-code.com/68/t-shirts-display-your-inner-geek/</link>
		<comments>http://grok-code.com/68/t-shirts-display-your-inner-geek/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 01:41:00 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Extras]]></category>

		<category><![CDATA[geek]]></category>

		<category><![CDATA[geek gifts]]></category>

		<category><![CDATA[lisp]]></category>

		<category><![CDATA[office space]]></category>

		<category><![CDATA[shirt]]></category>

		<category><![CDATA[shirts]]></category>

		<category><![CDATA[t-shirt]]></category>

		<guid isPermaLink="false">http://grok-code.com/68/t-shirts-display-your-inner-geek/</guid>
		<description><![CDATA[Show off your inner geek with these t-shirts from CafePress.  There are quite a few classic geek shirts here: Space Invaders, Ubuntu, Whisky Tango Foxtrot (WTF!), Office Space, the regular expression version of &#8220;To be or not to be&#8221;, Lisp, and more. Click on any shirt for purchase details.
Short on cash? Enter to win [...]]]></description>
			<content:encoded><![CDATA[<p>Show off your inner geek with these t-shirts from CafePress.  There are quite a few classic geek shirts here: Space Invaders, Ubuntu, Whisky Tango Foxtrot (WTF!), <a title="Office Space" href="http://www.amazon.com/gp/product/B000AP04L0?ie=UTF8&amp;tag=grok-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000AP04L0">Office Space</a>, the regular expression version of &#8220;To be or not to be&#8221;, Lisp, and more. Click on any shirt for purchase details.<span id="more-68"></span></p>
<p>Short on cash? Enter to <a title="GrokCode Shirt Contest" href="http://grok-code.com/110/grokcode-t-shirt-giveaway/">win a free GrokCode shirt</a>.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td><a title="Buy Space Invaders Retro T-Shirt" href="http://www.dpbolvw.net/mr72iqzwqyDGNKELHIDFEIKHLIL?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fspace-invaders-retro-vintage-tshirt%2F119303533"><img src="http://grok-code.com/wp-content/uploads/2008/09/119303533v9_350x350_front_color-militarygreen.jpg" alt="119303533v9_350x350_front_color-militarygreen.jpg" width="100%" align="bottom" /></a></td>
<td><a title="Buy Office Space T-Shirt" href="http://www.jdoqocy.com/jf104kjspjr69GD7EAB687BDAEBE?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Ffeels-good-to-be-a-gangster-ringer-t%2F153818305"><img src="http://grok-code.com/wp-content/uploads/2008/09/153818305v2_350x350_front_color-blackwhite.jpg" alt="153818305v2_350x350_front_color-blackwhite.jpg" width="100%" /></a></td>
<td><a title="Buy To be or not to be T-Shirt" href="http://www.anrdoezrs.net/click-2960734-10463745?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fto-be-or-not-to-be-dark-tshirt%2F118530476%23"><img src="http://grok-code.com/wp-content/uploads/2008/09/2bornot2b.jpg" alt="153805305v8_350x350_front_color-black.jpg" width="100%" /></a></td>
</tr>
<tr>
<td><a title="Buy WTF T-Shirt" href="http://t-shirts.cafepress.com/item/whiskey-tango-foxtrot-black-tshirt/69812847?CMP=CJ-CLICK-10463745"><img src="http://grok-code.com/wp-content/uploads/2008/09/69812847v4_350x350_front_color-black.jpg" alt="" width="100%" /></a></td>
<td><a title="Buy Ubuntu T-Shirt" href="http://www.tkqlhce.com/click-2960734-10463745?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Foriginal-ubuntu-gears-black-tshirt%2F67280084%23"><img src="http://grok-code.com/wp-content/uploads/2008/09/ubuntu1.jpg" alt="" width="100%" /></a></td>
<td><a title="Buy High Scorer T-Shirt" href="http://www.dpbolvw.net/b1110uoxuowBELICJFGBDCGIFJGH?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fhigh-scorer-ringer-t%2F173608344"><img src="http://grok-code.com/wp-content/uploads/2008/09/high-scorer.jpg" alt="high-scorer.jpg" width="100%" /></a></td>
</tr>
<tr>
<td><a title="Buy Obey Gravity T-Shirt" href="http://www.kqzyfj.com/nh65shqnhp47EB5C894659B8C9A?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fobey-gravity-light-tshirt%2F298910359%23"><img src="http://grok-code.com/wp-content/uploads/2008/09/obey-gravity.jpg" alt="obey-gravity.jpg" width="100%" /></a></td>
<td width="33%"><a title="Buy Mushroom T-Shirt" href="http://www.kqzyfj.com/lr82p-85-7NQXUOVRSNPOSURVST?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fsuper-mushroom-long-sleeve-dark-tshirt%2F94934742"><img src="http://grok-code.com/wp-content/uploads/2008/09/mushroom.jpg" alt="mushroom.jpg" width="100%" /></a></td>
<td><a title="Buy Lisp T-Shirt" href="http://www.tkqlhce.com/click-2960734-10463745?url=http%3A%2F%2Ft-shirts.cafepress.com%2Fitem%2Fdark-tshirt%2F133216083"><img src="http://grok-code.com/wp-content/uploads/2008/09/lisp.jpg" alt="" width="100%" /></a></td>
</tr>
</tbody>
</table>
<p>Wrap yourself in geek fashion, or pick up a shirt for your favorite programmer, system administrator, gamer, or all around geek.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=MPoAnPpA"><img src="http://feeds.feedburner.com/~f/GrokCode?i=MPoAnPpA" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=fFlUrYRn"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=Es9dXSuf"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=7iUtMOT0"><img src="http://feeds.feedburner.com/~f/GrokCode?i=7iUtMOT0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=AOmXdl4B"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=PPv1Xi5d"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=jyriOqt5"><img src="http://feeds.feedburner.com/~f/GrokCode?i=jyriOqt5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=hEvR3vz5"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/r-mwyQKgU7s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/68/t-shirts-display-your-inner-geek/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GrokCode T-Shirt Giveaway</title>
		<link>http://grok-code.com/110/grokcode-t-shirt-giveaway/</link>
		<comments>http://grok-code.com/110/grokcode-t-shirt-giveaway/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 05:27:30 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Extras]]></category>

		<category><![CDATA[contest]]></category>

		<category><![CDATA[giveaway]]></category>

		<category><![CDATA[grokcode]]></category>

		<category><![CDATA[schwag]]></category>

		<category><![CDATA[shirt]]></category>

		<category><![CDATA[t-shirt]]></category>

		<guid isPermaLink="false">http://grok-code.com/110/grokcode-t-shirt-giveaway/</guid>
		<description><![CDATA[GrokCode is giving away some free schwag to thank our readers this month.  Up for grabs is a free T-shirt, golf shirt, or tanktop that will announce to the world that you grok code. Entering is as easy as subscribing to GrokCode via email or RSS feed, then confirming that you are an active [...]]]></description>
			<content:encoded><![CDATA[<p>GrokCode is giving away some free schwag to thank our readers this month.  Up for grabs is a free T-shirt, golf shirt, or tanktop that will announce to the world that you <a href="http://grok-code.com/95/definition-and-origin-of-grok/" title="grok">grok</a> code. Entering is as easy as subscribing to GrokCode via email or RSS feed, then confirming that you are an active subscriber.    <span id="more-110"></span></p>
<p><img src="http://grok-code.com/wp-content/uploads/2008/10/3shirts-small.png" alt="3shirts-small.png" align="left" hspace="15" /></p>
<h4>The Schwag</h4>
<p>The winner will be able to choose the style and size of their GrokCode shirt. There are a few more styles in addition to the ones shown on the left, and most styles come in a few different colors. You can see all 5 different shirts and the GrokCode sticker at the <a href="http://www.kqzyfj.com/a866biroiq58FC6D9A576AC9DAD?url=http%3A%2F%2Fwww.cafepress.com%2Fgrokcode" title="GrokCode Shirts">GrokCode Developers store</a>.</p>
<h4>How to Enter</h4>
<p>Enter the Schwag contest in 3 easy steps.</p>
<ol>
<li>Subscribe via <a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=1628114" title="Subscribe to GrokCode via email">email</a> (don&#8217;t forget to respond to the feedburner opt-in email) or <a href="http://grok-code.com/feed/" title="Subscribe to GrokCode via RSS">RSS</a>.  Subscribers will receive new GrokCode posts delivered to them 2-3 times a month. No spam. If you are already subscribed, no need to subscribe again.</li>
<li>Confirm your subscription is active by emailing <a href="mailto:shirt-contest@grok-code.com">shirt-contest@grok-code.com</a>.  If you are an email subscriber, send the email from the same address used to subscribe.  RSS subscribers send a screenshot of the GrokCode feed inside of your RSS reader of choice.</li>
<li>Sit back and revel in your ability to <a href="http://grok-code.com/95/definition-and-origin-of-grok/" title="grok">grok</a> code.</li>
</ol>
<h4>Rules</h4>
<p>The contest ends on December 8.  One winner will be chosen from the group of entries by random number generator.  The winner will be announced here and the free shirt mailed out. Readers outside the U.S. may need to pay import taxes or other fees, but the shirt and shipping are free.</p>
<p>One entry per person please. Subscribing multiple times is not allowed, and will disqualify anyone who tries it.</p>
<h4>Thanks</h4>
<p>A big thank-you to all of GrokCode&#8217;s readers since the site&#8217;s launch last December. Grokcode will hit half a million total pageviews sometime at the end of this month, and there have been some great discussions in the comments. New readers might be interested in the articles listed at the bottom of this page in the Most Popular Posts section for examples of articles that readers have found interesting and discussion-worthy.</p>
<p>Thanks everybody!</p>
<p>[<strong>Edit: </strong>A big thanks to everybody who participated in the contest.  The winner is Dave Perks, Senior Writer at <a href="http://www.newcitymedia.com/blog/">New City Media</a>.  Congrats and enjoy your shirt!]</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=myTJXGxg"><img src="http://feeds.feedburner.com/~f/GrokCode?i=myTJXGxg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=kP3MWLkf"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=UlnvxuVk"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=uLIqAkNN"><img src="http://feeds.feedburner.com/~f/GrokCode?i=uLIqAkNN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=wEJf6Gtt"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=LYWHAdJJ"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=9uwpVCFA"><img src="http://feeds.feedburner.com/~f/GrokCode?i=9uwpVCFA" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=f4o8HUta"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/yZWIPhgntd0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/110/grokcode-t-shirt-giveaway/feed/</wfw:commentRss>
		</item>
		<item>
		<title>6 Easy Ways To Get Started Programming Open Source</title>
		<link>http://grok-code.com/108/6-easy-ways-to-get-started-programming-open-source/</link>
		<comments>http://grok-code.com/108/6-easy-ways-to-get-started-programming-open-source/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 07:06:13 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Fun Projects]]></category>

		<category><![CDATA[foss]]></category>

		<category><![CDATA[free software]]></category>

		<category><![CDATA[open source]]></category>

		<category><![CDATA[programming tips]]></category>

		<guid isPermaLink="false">http://grok-code.com/108/6-easy-ways-to-get-started-programming-open-source/</guid>
		<description><![CDATA[Open source projects can be a good way to geek out and do what you love, and having a side project can help improve overall job satisfaction, keep you at the top of your hacking game, and can often lead to other opportunities.  The problem is a lot of people have trouble making that [...]]]></description>
			<content:encoded><![CDATA[<p>Open source projects can be a good way to geek out and do what you love, and having a side project can help <a href="http://grok-code.com/22/become-a-more-satisfied-programmer-today/" title="improve job satisfaction">improve overall job satisfaction</a>, keep you at the top of your hacking game, and can often lead to other opportunities.  The problem is a lot of people have trouble making that first step because they don&#8217;t really know where to start.  Here are 6 easy tips for getting started with F/OSS.<span id="more-108"></span></p>
<h4><img src="http://grok-code.com/wp-content/uploads/2008/10/all-logos1.png" alt="FOSS Logos" align="left" hspace="15" />1. Get Involved With the Projects You Use</h4>
<p>This may seem obvious, but don&#8217;t try to jump into a project that you don&#8217;t use and don&#8217;t know anything about.  Make a short list of open source software projects you might like to contribute to based on the software you are already using.  Don&#8217;t forget about the potential for contributing to libraries and modules - there are advantages to developing on a project used by other developers.  Do you use a framework, file converter, graphing library, or build tool that is open source and in need of bug squashing, optimization, or new features? These are prime candidates for a first F/OSS project.</p>
<h4> 2. Do What You Love</h4>
<p>Look for a place to contribute where you can do something you are genuinely interested in. If you have a special place in your heart for parsers, a compiler isn&#8217;t necessarily the first project you want to start with. Don&#8217;t rule out parsing configuration files in a webserver or build tool.</p>
<h4>3. Learn the tools</h4>
<p>Every project uses different methods for version control, bug tracking, patch submission, coding convention, feature requests, user troubleshooting issues, building, and development discussion.  Take the time to learn about them and how they work.  A developer mailing list is not the place to ask how SVN works. A user forum is not the place to submit a bug report. Reading the developer docs and learning the tools saves everybody time and gives contributions a better chance of being accepted.</p>
<h4>4.  Watch the Project&#8217;s Social Dynamic</h4>
<p>Aside from the technical considerations, it&#8217;s important to learn about the social dynamic of the project.  Who are the core maintainers and how do they interact with people? Who are the more vocal people in the project&#8217;s community, and what kind of tone do they set for the project? Some projects have a reputation for being open and helpful to new contributors, and others have almost a tyrannical dictatorship mentality. Spend enough time lurking on the development mailing list, IRC channel, or wherever the devs go to get a feel for the social atmosphere.</p>
<p>The social dynamic may seem like a small consideration, but it can mean the difference between becoming a successful contributor and walking away in frustration. One of my first attempts at contributing to F/OSS, I wanted to improve the playlist format of a music player because it didn&#8217;t support all of the features available when specifying the playlist on the command line.  Due to the way I organized and named music files I was hitting limits in the Linux kernel on the size of a command arguments, and had no clean way to put all of my music in a playlist.  So I sent off an email to the dev list asking the devs what they thought of supporting a new playlist format and offering to code something up.</p>
<p>Instant flamewar. When I came back to the list the next day, there were literally hundreds of messages - some in favor of the idea, many saying that the existing format is fine, and who is this new kid anyway? The whole thing had degenerated into a flamewar by the time I saw the responses to the original question.</p>
<p>I made the mistake of not paying enough attention to the social dynamic. Browsing the list archives would have told me that that particular project wasn&#8217;t generally open to ideas from people other than a select few core contributors, and especially from people who hadn&#8217;t already made smaller bugfixes first. Which brings up the most important tip in this list - start small.</p>
<h4>5.  Start Small</h4>
<p>Start small both in terms of the contributions you make and the size of the project.  Making smaller bugfixes and implementing smaller features helps build a reputation, and gives you a chance to get to know the code base.  Both of these things will make it easier to get patches approved.</p>
<p>On a smaller project you can be productive much more quickly because it takes less time to learn the existing codebase and toolchain. You will also have better access to the core developers.  In a project with one maintainer, submitting a bugfix is often as easy as emailing the maintainer a diff with the description of the problem it fixes.</p>
<h4>6. Start Your Own Project</h4>
<p>One of the easiest ways to get started with open source is to start your own project.  A Firefox extension, Wordpress plugin, or an Emacs mode are all good ideas for projects that are quick to write, but will often get a nice number of users with just a bit of promotion.</p>
<p>Before starting your own project, have a look around to make sure there aren&#8217;t any existing projects that do the same thing.  You might be surprised at the number of projects out there that just need a little bit of love and attention to get them usable.</p>
<p>There it is. 6 easy tips for getting started with open source software.  Happy hacking!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=FW5x40PM"><img src="http://feeds.feedburner.com/~f/GrokCode?i=FW5x40PM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=VqqPrInZ"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=6IQGWT1b"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=WEpArj2x"><img src="http://feeds.feedburner.com/~f/GrokCode?i=WEpArj2x" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=7DlcMns8"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=TZYZUOec"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=TIcxX60X"><img src="http://feeds.feedburner.com/~f/GrokCode?i=TIcxX60X" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=DPiGMMmw"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/Pb_gNko7Btg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/108/6-easy-ways-to-get-started-programming-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interview: Rebecca Heineman</title>
		<link>http://grok-code.com/106/interview-rebecca-heineman/</link>
		<comments>http://grok-code.com/106/interview-rebecca-heineman/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 08:01:13 +0000</pubDate>
		<dc:creator>jess</dc:creator>
		
		<category><![CDATA[Career]]></category>

		<category><![CDATA[computer games]]></category>

		<category><![CDATA[famous developer]]></category>

		<category><![CDATA[famous programmer]]></category>

		<category><![CDATA[games programming]]></category>

		<category><![CDATA[interview]]></category>

		<category><![CDATA[rebecca heineman]]></category>

		<guid isPermaLink="false">http://grok-code.com/106/interview-rebecca-heineman/</guid>
		<description><![CDATA[This is the first interview in an ongoing series of mini-interviews with famous developers and programming authors.  Rebecca Heineman has kindly agreed to be the first interviewee. She has been a games programmer for almost 30 years - she has written and designed many titles over the course of her career including a Bards [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first interview in an ongoing series of mini-interviews with famous developers and programming authors.  Rebecca Heineman has kindly agreed to be the first interviewee. She has been a games programmer for almost 30 years - she has written and designed many titles over the course of her career including a Bards Tale III: Thief of Fate, Battle Chess, Wasteland, and Tass Times in Tonetown. Rebecca was also a founding member of Interplay, Logicware, and Contraband Entertainment.<span id="more-106"></span></p>
<h4><img src="http://grok-code.com/wp-content/uploads/2008/10/bards-tale3.jpg" alt="Bards Tale III" align="left" hspace="15" /></h4>
<p>Regular readers will remember her name from the <a href="http://grok-code.com/37/famous-programmers-from-adleman-to-zimmermann/" title="analysis of famous developers">analysis of famous developers</a> on GrokCode a while back.</p>
<p>Lets get to the interview!</p>
<h4>How did you first get involved with programming?</h4>
<blockquote><p>When I was 14, I saw the early computers like the IMSAI 8080 and the AIM-65 from Rockwell and I knew I wanted to be involved with that. Eventually, I earned enough money to buy an Apple ][ computer (They just came out) and messed around with it. From using F666G, I was able to use the mini-assembler and eventually taught myself 6502 programming. Learning how these machines worked got me hooked and I&#8217;ve been programming non-stop ever since.</p></blockquote>
<h4> What advice would you give to someone who wants to be a successful programmer?</h4>
<blockquote><p>My advice is to get into the gaming MOD community. Learn C++, grab the source code from sourceforge or a current game and start making mods. From there, you can get a real taste of what it takes to make a real game (It&#8217;s a lot!). College is a huge plus.</p></blockquote>
<h4> What is your greatest achievement?</h4>
<blockquote><p>That&#8217;s a tough call, since I&#8217;ve done so many projects in my career so far. I think I&#8217;d have to say was the evil MOD I had to do to get Out Of This World for the SNES to copy backgrounds quickly. Since Interplay wouldn&#8217;t pay for a SuperFX chip, I found a way to do it with static RAM on the cart and DMA which got me a great frame rate. Interplay wouldn&#8217;t pay for the static RAM either, so I ended up using Fast ROM and a MVN instruction. Interplay wouldn&#8217;t pay for a 3.6 Mhz ROM either. So, frustrated, I shoved my block move code into the DMA registers and use it as RAM running at 3.6 Mhz. It worked. I got fast block moves on slow cartridges and made a game using polygons working on a 65816 with pure software rendering.</p></blockquote>
<h4> What hobbies do you have outside of software development?</h4>
<blockquote><p>I like to write. I write novels, short stories and an ongoing webcomic called <a href="http://www.sailorranko.com" title="Sailor Ranko">Sailor Ranko</a> based on Ranma 1/2 and Sailor Moon. I also like to bake cakes and sharpshoot.</p></blockquote>
<h4> What are some of your recent projects?</h4>
<blockquote><p>At Microsoft, I am working on **** ****** ***** ****** ***** *** ***** *** ******** ** ****** **** which I hope you&#8217;ll appreciate all the hard work the team put into it. Otherwise, I work at the XNA Developer Connection where I assist development teams in doing performance analysis on Xbox 360 titles both in coding and with GPU shaders. Oh, yes, and at home I&#8217;m with a homebrew team working on a Nintendo DS game based on the webcomic called The Wotch.</p></blockquote>
<p>Now I&#8217;m really curious to know what all those stars stand for&#8230; Is it a code? Just a random number of stars? I guess I&#8217;ll have to wait until the game comes out. Thanks to Rebecca Heineman for giving us a glimpse into the life of a games developer.</p>
<p>What other programmers would you like to see featured? Leave a comment, and I&#8217;ll see if I can arrange an interview.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/GrokCode?a=yHH6pA6H"><img src="http://feeds.feedburner.com/~f/GrokCode?i=yHH6pA6H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=unISmmuz"><img src="http://feeds.feedburner.com/~f/GrokCode?d=253" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=FDeAJICI"><img src="http://feeds.feedburner.com/~f/GrokCode?d=41" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=TIikAvex"><img src="http://feeds.feedburner.com/~f/GrokCode?i=TIikAvex" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=gn1TG8c5"><img src="http://feeds.feedburner.com/~f/GrokCode?d=50" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=HJUtHP6a"><img src="http://feeds.feedburner.com/~f/GrokCode?d=131" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=zbZntODZ"><img src="http://feeds.feedburner.com/~f/GrokCode?i=zbZntODZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/GrokCode?a=9T9xzsJa"><img src="http://feeds.feedburner.com/~f/GrokCode?d=232" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/GrokCode/~4/0AU-ods-lcY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://grok-code.com/106/interview-rebecca-heineman/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
