<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Micah Elliott &#187; ubuntu</title>
	<atom:link href="http://micahelliott.com/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://micahelliott.com</link>
	<description>Stories from my Startup Journey</description>
	<lastBuildDate>Mon, 29 Nov 2010 07:46:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
<image>
  <link>http://micahelliott.com</link>
  <url>http://micahelliott.com/mde-gravatar7.png</url>
  <title>Micah Elliott</title>
</image>
	<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.6.3" -->
	<copyright>Copyright &#38;#xA9; Micah Elliott 2010 </copyright>
	<managingEditor>mde@micahelliott.com (Micah Elliott)</managingEditor>
	<webMaster>mde@micahelliott.com (Micah Elliott)</webMaster>
	<category>posts</category>
	<image>
		<url>http://micahelliott.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Micah Elliott &#187; ubuntu</title>
		<link>http://micahelliott.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Stories from my Startup Journey</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &amp; Culture" />
	<itunes:author>Micah Elliott</itunes:author>
	<itunes:owner>
		<itunes:name>Micah Elliott</itunes:name>
		<itunes:email>mde@micahelliott.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://micahelliott.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Some gnome-terminal Power Tips</title>
		<link>http://micahelliott.com/2008/12/some-gnome-terminal-power-tips/</link>
		<comments>http://micahelliott.com/2008/12/some-gnome-terminal-power-tips/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 19:24:00 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[kiss]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.micahelliott.com/?p=76</guid>
		<description><![CDATA[If I&#8217;m going to have a productive day, it usually means spending it in a shell. I use GNOME Terminal as my xterm clone of choice, simply because it&#8217;s a default. If you don&#8217;t know what terminal you&#8217;re using, it&#8217;s probably gnome-terminal if you&#8217;re running GNOME. I recently started making some productivity tweaks to my [...]]]></description>
			<content:encoded><![CDATA[<p><em>If I&#8217;m going to have a productive day, it usually means spending it in a shell.  I use <a href="http://en.wikipedia.org/wiki/GNOME_Terminal">GNOME Terminal</a> as my xterm clone of choice, simply because it&#8217;s a default.  If you don&#8217;t know what terminal you&#8217;re using, it&#8217;s probably <span style="font-family: courier new;">gnome-terminal</span> if you&#8217;re running GNOME.  I recently started making some productivity tweaks to my setups that I thought were worth sharing.</em></p>
<p><em><img class="alignleft size-full wp-image-147" title="taskbar" src="http://micahelliott.com/wp-content/uploads/2008/12/taskbar.png" alt="taskbar" width="178" height="34" /><br />
</em></p>
<p><em><br />
</em></p>
<p><span id="more-76"></span></p>
<p>I do most of my development work (bash, ipython, vim) in a terminal.  Some of it involves working remotely on other machines, and demonstrating things for others (e.g., pair programming).  I need different setups for each of these.  I spend most of my time hacking away in a local shell, so for that I want optimized font, color, size, etc.  Then when I share I need to make the font way bigger.  And when I&#8217;m on a different machine I like to have a different color window (in addition to a custom prompt color) so I don&#8217;t forget where I am.  So those are the three basic tweaks that are critical for most people.  You can probably make those tweaks with most xterm-clones.</p>
<p>I&#8217;ll assume you&#8217;re using <a href="http://www.gnome.org/">GNOME</a> already.  You can get a feel for the gnome-terminal feature set by simply firing up an instance: <span style="font-style: italic;">Applications -&gt; Accessories -&gt; Terminal</span>.  But I suggest you right-click it instead, and &#8220;<span style="font-style: italic;">Add this launcher to Panel</span>&#8220;.  In fact, do that a few times; we&#8217;ll customize each differently.</p>
<p>Now from an open instance, you can explore the options by invoking:</p>
<p><span style="font-family: courier new;"> $ gnome-terminal &#8211;help</span></p>
<h2>Profiles</h2>
<p>There are profiles.  Create a few.  This is pretty important.  If you&#8217;ve only got a &#8220;Default&#8221; profile, every time you change it, you&#8217;ll affect every other open window.</p>
<h2>Font</h2>
<p>I&#8217;m very picky about having the tiniest font that will work.  I can actually look at 380 lines of code at a time on a humble (1920&#215;1200) 15&#8243; laptop screen.  To achieve this I have to go with a non-antialiased (bitmap?) font.  The generically named &#8220;Monospace-7&#8243; is not beautiful, but works well for optimizing screen real estate.  It&#8217;s also the only bitmap font I&#8217;ve seen that renders italic/oblique well.</p>
<p>Monospace is also the only font I&#8217;ve seen able to scale down to 6-point and render readably.  Try it &#8212; pretty amazing!  I can now look at 570 lines of code (if I cheat and narrow the last window a bit) in 15&#8243;! I&#8217;ve got great near vision, but I have to be really close to the screen to read it at 6, so I&#8217;ll go back to 7.  You could also easily install other more appealing bitmap fonts like Terminus (<span style="font-family: courier new;">apt-get install xfonts-terminus</span>).  In fact, terminus at 8-point fits the same number of characters as Monospace at 7-point.  Too bad Terminus doesn&#8217;t do 6!</p>
<p>Remember to stop all running gnome-terminal instances to get a new font to show up in the list.</p>
<h2>CLI Options</h2>
<p>Customize the CLI options with <span style="font-style: italic;">right-click</span>, <span style="font-style: italic;">Properties</span>.  Look at the <span style="font-style: italic;">Command</span> field and start adding options there.  The first I like to add is <span style="font-family: courier new;">&#8211;geometry=80&#215;50</span> to set the window size; the default of 80&#215;25 is always too small.  I like to start out with a meager 80 columns to make it obvious when I&#8217;m exceeding the <a href="http://www.sowbug.org/mt/2005/07/join-the-80column-camp.html">good</a> <a href="http://www.python.org/dev/peps/pep-0008/">old</a> <a href="http://ask.slashdot.org/article.pl?sid=07/07/07/1931246">rule</a>.   Of course I often widen manually if I&#8217;m not in code.</p>
<h2>Automatic Remote Login</h2>
<p>My favorite trick is to automate logging in to remote machines.  It&#8217;s as simple as adding another option: <span style="font-family: courier new;">&#8211;execute ssh YOU@SOMEHOST</span></p>
<h2><em><img class="aligncenter size-full wp-image-146" title="xterm2" src="http://micahelliott.com/wp-content/uploads/2008/12/xterm2.png" alt="xterm2" width="502" height="213" /></em></h2>
]]></content:encoded>
			<wfw:commentRss>http://micahelliott.com/2008/12/some-gnome-terminal-power-tips/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get On Top</title>
		<link>http://micahelliott.com/2008/06/get-on-top/</link>
		<comments>http://micahelliott.com/2008/06/get-on-top/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 13:00:00 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.micahelliott.com/?p=53</guid>
		<description><![CDATA[I&#8217;ve used top for years to monitor machine activity. It&#8217;s grown some new features and behavior in the last few years that you might not be aware of. Good ol&#8217; top. For years it&#8217;s been the cornerstone of process control. It&#8217;s the first place we turn to hunt down a rogue process, or just to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bp2.blogger.com/_DzStaE_3-vk/SFKWN83TVXI/AAAAAAAAAC4/Pt_4o4IBm3I/s1600-h/top.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img id="BLOGGER_PHOTO_ID_5211392885241632114" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_DzStaE_3-vk/SFKWN83TVXI/AAAAAAAAAC4/Pt_4o4IBm3I/s200/top.jpg" border="0" alt="" /></a><span style="font-style: italic;">I&#8217;ve used <span style="font-family:courier new;">top</span> for years to monitor machine activity.  It&#8217;s grown some new features and behavior in the last few years that you might not be aware of.</span></p>
<p>Good ol&#8217; <span style="font-family:courier new;">top</span>.  For years it&#8217;s been the cornerstone of process control.  It&#8217;s the first place we turn to hunt down a rogue process, or just to watch how resources are consumed.  Sure, you could use a handful of GUI tools, but <span style="font-weight: bold;">I frequently find myself working strictly in a terminal on remote machines, where </span><span style="font-weight: bold;font-family:courier new;">top</span><span style="font-weight: bold;"> is indispensable</span>.  This is a short overview of <span style="font-family:courier new;">top</span>&#8216;s most important features that weren&#8217;t obvious to me until I got to practicing for the <a href="http://www.lpi.org/">LPI exam</a> a short while back.  Now I&#8217;m making use of them quite regularly.  To save you from wading through the 1,000-line manpage, <span style="font-weight: bold;">here are the most useful interactive commands</span> (you don&#8217;t have to worry about the CLI options).</p>
<p><span id="more-53"></span></p>
<ul>
<li><span style="font-weight: bold;">z</span> &#8212; Turn on color.  Beautiful!  Don&#8217;t change them unless you&#8217;re looking to waste a lot of time</li>
<li><span style="font-weight: bold;font-family:courier new;">s</span> &#8212; This is the refresh interval.  The default of 3 seconds can leave you puzzled.  I like to set it to one or half a second.   An alternative is to just press  a bunch of times whenever you want to see an update.</li>
<li><span style="font-weight: bold;font-family:courier new;">1</span> &#8212; Change the number of processors shown.  Though not a default, this is critical now that every machine we get on has 2 to 16 procs.</li>
<li><span style="font-weight: bold;font-family:courier new;">H</span> &#8212; Show threads.  Try looking at Apache with and without this.</li>
<li><span style="font-weight: bold;font-family:courier new;">i</span> &#8212; Ignore idle processes.  This helps you focus only on what&#8217;s really active; and makes everything fit on the screen.</li>
<li><span style="font-weight: bold;font-family:courier new;">O</span><span style="font-weight: bold;"> </span>&#8211; Order by some field.  The most useful sub-selections here are <span style="font-family:courier new;">q</span> (resident memory), <span style="font-family:courier new;">k</span> (%cpu), and <span style="font-family:courier new;">a</span> (pid).  Setting this helps keep your list from bouncing its order all around.</li>
<li><span style="font-weight: bold;font-family:courier new;">c</span> &#8212; Show whole command.  Essential when you&#8217;ve got multiples of a similar command running.</li>
<li><span style="font-weight: bold;font-family:courier new;">u</span> &#8212; Only show what&#8217;s happening with a single user.  That&#8217;s often <span style="font-family:courier new;">$USER</span> (you!), or some other <span style="font-style: italic;">luser</span>.</li>
<li><span style="font-weight: bold;font-family:courier new;">k</span> &#8212; Kill a process with signal of your choosing.  <span style="font-style: italic;">(Bonus: look into <span style="font-family:courier new;">pgrep</span>/<span style="font-family:courier new;">pkill</span>.)</span></li>
<li><span style="font-weight: bold;font-family:courier new;">?</span> &#8212;  Show the built-in help screen.</li>
<li><span style="font-weight: bold;font-family:courier new;">^g</span> &#8212; Escape out of any menu screen.</li>
</ul>
<p>You could have seen most of this on the built-in help screen by simply pressing <span style="font-family:courier new;">h</span> or <span style="font-family:courier new;">?</span>.  But that menu has a pretty unintuitive layout, and the above is limited to the minimal set you really need.  Now that you understand how everything works, and you&#8217;ve got it looking nice, just press <span style="font-family:courier new;">W</span> to write the configuration for permanent use.  If you&#8217;re unhappy with the damage you just caused, just blow it away with: <span style="font-family:courier new;">rm ~/.toprc</span></p>
<p><span style="font-style: italic;">BONUS:</span> You may have surprisingly seen &#8220;windows&#8221; in your <span style="font-family:courier new;">top</span> session, depending on what distro you get onto (maybe it was a Fedora?); that&#8217;s how I discovered them.  Press <span style="font-family:courier new;">h</span> twice to get to the windows menu.  I won&#8217;t get into all those details here &#8212; I don&#8217;t find the windows terribly useful, though they do appear to offer some sophisticated views.  If you decide to use them, you can get started by pressing <span style="font-family:courier new;">A</span>, and then <span style="font-family:courier new;">a</span> continuously to cycle through displays.  See if you can make sense of them, and then talk to me. <img src='http://micahelliott.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span style="font-style: italic;">CAVEATS:</span> Be careful not to run top with a fast refresh during any sort of benchmarking.  It can chew up a bit of CPU time.  Also, <span style="font-family:courier new;">top</span> versions vary widely depending on the distro you use; you might notice some different behavior than what I&#8217;ve described.<br />
<span style="font-style: italic;">(This list also makes for a great sticky, as you see in the picture.)</span></p>
<p><span style="font-weight: bold;font-family:courier new;">top</span><span style="font-weight: bold;"> is a powerful tool that gives you a lot of information.</span> If you got this far, you should now be able to make sense of most of the cryptic display, and be able to find your way around configuring it.</p>
]]></content:encoded>
			<wfw:commentRss>http://micahelliott.com/2008/06/get-on-top/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Single Command to Get Started on Functional Programming</title>
		<link>http://micahelliott.com/2008/06/a-single-command-to-get-started-on-functional-programming/</link>
		<comments>http://micahelliott.com/2008/06/a-single-command-to-get-started-on-functional-programming/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 20:20:00 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.micahelliott.com/?p=38</guid>
		<description><![CDATA[Functional Programming is old. Ancient. Like right after FORTRAN. But it&#8217;s the future. Trust me, I&#8217;m named after the dude who knew about Jesus 700 years early. Seriously, it&#8217;s not going to take 700 years for FP to go mainstream. Some would argue that it already is. Python, Ruby, and others have adopted a number [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic;"><a href="http://en.wikipedia.org/wiki/Functional_programming">Functional Programming</a> is old.  Ancient.  Like right after FORTRAN.  But it&#8217;s the future.  Trust me, I&#8217;m named after <a href="http://en.wikipedia.org/wiki/Micah_%28prophet%29">the dude</a> who knew about Jesus 700 years early.</span></p>
<p>Seriously, it&#8217;s not going to take 700 years for FP to go mainstream.  Some would argue that it already is.  Python, Ruby, and others have adopted a number of FP features.  Here&#8217;s all you need to get started right now and get ahead of the curve (right after you&#8217;ve installed Debian or Ubuntu).<br /><span style="font-size:130%;"><br />Install Them All</span></p>
<p>I see tons more interpreters available (<span style="font-family:courier new;">apt-get search &#8230;</span>) for the main FP languages, but these are the ones that looked most stable and most widely used.</p>
<p><span style="font-family:courier new;">$ sudo apt-get install clisp </span><span style="font-family:courier new;">guile-1.8 </span><span style="font-family:courier new;">erlang ocaml ghc6</span></p>
<p>What did that just do?  Okay, you can probably figure it out.  But did you realize that <span style="font-weight: bold;">you just put the entirety of mainstream FP and their </span><a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/REPL">REPL</a><span style="font-weight: bold;">s at your fingertips</span>?  That includes interpreters/compilers for <span style="font-weight: bold;">Common Lisp, Scheme, Erlang, OCaml, and Haskell</span>.  Vim and Emacs should have editing modes available for all of these.</p>
<p>You can invoke each of the REPLs respectively, like so.</p>
<p><span style="font-family:courier new;">$ clisp  # Common Lisp</span><br /><span style="font-family:courier new;">$ guile  # Scheme</span><br /><span style="font-family:courier new;">$ erl    # Erlang</span><br /><span style="font-family:courier new;">$ ocaml  # OCaml</span><br /><span style="font-family:courier new;">$ ghci   # Haskell</span></p>
<p>Of course you&#8217;ll need to learn something about each of the languages to do anything at this point.  But I&#8217;m just getting you off on the right foot.  I&#8217;m not going to go into detail here why I chose the interpreters or languages that I did, but if you don&#8217;t know any better, these are a great start.  I&#8217;m only getting started with all of these myself.<br /><span style="font-size:130%;"><br />Free Online Material</span></p>
<p>You can check Amazon for books on any of these languages.  Most of them are pretty expensive (except <a href="http://www.amazon.com/gp/product/193435600X/102-8171041-1883345?ie=UTF8&amp;tag=micaelli-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=193435600X">Programming Erlang</a>, which I just ordered).  But I&#8217;ll mention <span style="font-weight: bold;">some free resources</span> that all look valuable.
<ul>
<li><a href="http://gigamonkeys.com/book/">Common Lisp Book </a> (check out the sidebar on that page about the book&#8217;s popularity on Amazon!)</li>
<li><a href="http://www.erlang.org/doc/getting_started/part_frame.html">Erlang Getting Started Guide</a> (also in <a href="http://www.erlang.org/doc/pdf/getting_started.pdf">PDF</a>)</li>
<li><a href="http://www.erlang.org/doc/reference_manual/part_frame.html">Erlang Reference Manual</a> (also in <a href="http://www.erlang.org/doc/pdf/reference_manual.pdf">PDF</a>)</li>
<li><a href="http://documents.scribd.com/docs/da0hhc3bf7jjvnzqaxm.pdf">Thinking in Erlang Mini-Book (PDF)</a></li>
<li><a href="http://book.realworldhaskell.org/beta/">Real World Haskell Book</a></li>
<li><a href="http://caml.inria.fr/pub/docs/oreilly-book/">Developing Applications With OCaml</a></li>
</ul>
<p><span style="font-size:130%;">Stay Tuned</span></p>
<p>You might already be aware of the power of FP, or maybe the Wikipedia link at the top convinced you, or maybe you&#8217;ll remain a detractor.  Hopefully I&#8217;ve at least whetted your appetite by showing how easy it is to get set up.  I&#8217;ll plan to go into more detail about why <span style="font-style: italic;">I</span> think FP is important in a future post (<span style="font-style: italic;">hint: performance, concurrency, code density, productivity, intelligent communities, mind-expansion, fun</span>).  I&#8217;m still in the process of discovering all the reasons.</p>
<p>Well, this kicks off my FP journey.  Hope you&#8217;ll come along for the ride.  First stop: <span style="font-family:courier new;">erl</span></p>
]]></content:encoded>
			<wfw:commentRss>http://micahelliott.com/2008/06/a-single-command-to-get-started-on-functional-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Choosing a Hacker-Friendly Laptop</title>
		<link>http://micahelliott.com/2008/05/choosing-a-hacker-friendly-laptop/</link>
		<comments>http://micahelliott.com/2008/05/choosing-a-hacker-friendly-laptop/#comments</comments>
		<pubDate>Fri, 30 May 2008 16:00:00 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Living]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[simplicity]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.micahelliott.com/?p=34</guid>
		<description><![CDATA[I just bought a brand new highly juiced Lenovo R61 laptop for $760. This post documents my selection criteria, and I hope it will help you with your next purchasing decision. Some guys over at Hacker News were recently discussing laptop criteria, so I figured I would add mine here. Some people really care about [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic;">I just bought a brand new highly juiced </span><span style="font-weight: bold; font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">Lenovo</span> R61 laptop </span><span style="font-style: italic;">for $760</span><span style="font-style: italic;">.  This post documents my selection criteria, and I hope it will help you with your next purchasing decision.  Some guys over at Hacker News were <a href="http://news.ycombinator.com/item?id=197182">recently discussing laptop criteria</a>, so I figured I would add mine here.</p>
<p></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_DzStaE_3-vk/SD-L7y5_GpI/AAAAAAAAABo/lWeu-9hp0uI/s1600-h/IMGP4120.JPG"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_DzStaE_3-vk/SD-L7y5_GpI/AAAAAAAAABo/lWeu-9hp0uI/s200/IMGP4120.JPG" alt="" id="BLOGGER_PHOTO_ID_5206033553657109138" border="0" /></a><br />Some people really care about having a sleek, shiny, ultra-light, luminous, bells-and-whistles laptop.  Not me.  When you&#8217;re thinking about selling your house to start a business you&#8217;re really considering the budget all the time.  Or maybe I&#8217;m just utilitarian.</p>
<p><span style="font-style: italic;">(Pictured to the right is my work-issue T61.  Like the blocks I borrowed from my kids?  This setup is not earthquake-proof!)</span><br /><span style="font-size:130%;"></p>
<p>Criteria</span>
<ul>
<li>Must be able to run Linux (<span class="blsp-spelling-error" id="SPELLING_ERROR_1">Ubuntu</span>)</li>
<li>Cost is very important ($300-700, upper end negotiable <img src='http://micahelliott.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>Needs an exceptional screen (extremely high resolution, I have great near vision)</li>
<li>Supports dual head with big-screen external monitor</li>
<li>Enough RAM to run <span class="blsp-spelling-error" id="SPELLING_ERROR_2">Firefox</span>, GIMP, and more</li>
<li>Decent processors (Core 2 Duo would be nice) necessary for developing parallel apps</li>
<li>Ugliness is not a problem</li>
<li>Portability is nice (not too clunky/bulky/awkward/heavy)</li>
<li>I&#8217;ll take some extra features if they&#8217;re cheap add-<span class="blsp-spelling-error" id="SPELLING_ERROR_3">ons</span> (more RAM, camera, <span class="blsp-spelling-error" id="SPELLING_ERROR_4">bluetooth</span>)</li>
</ul>
<p>I went to Best Buy in hopes of cashing in on some Memorial Day sales, and came home empty-handed.  Then I shopped around at <span class="blsp-spelling-error" id="SPELLING_ERROR_5">NewEgg</span>, Dell, and <span class="blsp-spelling-error" id="SPELLING_ERROR_6">Lenovo</span>.  It appears that most places just offer <span class="blsp-spelling-error" id="SPELLING_ERROR_7">pre</span>-packaged sub-optimal configurations, and you probably won&#8217;t be happy with any of those.  <span style="font-weight: bold;">Bottom line: save some gas and just point your browser to Dell.com and <span class="blsp-spelling-error" id="SPELLING_ERROR_8">Lenovo</span>.com</span><span>, or some other customization site I didn&#8217;t discover.</span></p>
<p><span style="font-size:130%;">Interesting Findings</span></p>
<p>In my shopping and research there were a few interesting findings.  Maybe some of these are obvious to you, but they surprised me.
<ul>
<li><span style="font-weight: bold;">Best Buy doesn&#8217;t offer any &#8220;I don&#8217;t want the stinking OS&#8221; discounts.</span>  And I&#8217;m not going to bother pursuing any &#8220;Windows Rebate&#8221; offer alleged to exist.</li>
<li><span style="font-weight: bold;">You can&#8217;t find a top-notch screen at Best Buy</span>.  Or probably at any other common electronics shop.  The young salesman had to ask about this, but he came back to tell me that they didn&#8217;t carry anything in 14&#215;9 resolution, except in 17&#8243;+.</li>
<li><span style="font-weight: bold;">Best Buy only offers &#8220;shiny&#8221; screens.</span>  I personally think those suck, but maybe there&#8217;s some reason it&#8217;s become a trend.  Do people actually prefer the reflection, or is it just shelf-appeal?</li>
<li><span style="font-weight: bold;">Going with a <span class="blsp-spelling-error" id="SPELLING_ERROR_9">pre</span>-built Linux laptop really doesn&#8217;t save you any $$ on OS royalty fees.</span>  Although Dell and <span class="blsp-spelling-error" id="SPELLING_ERROR_10">Lenovo</span> now claim to offer Linux, there are very few available configurations, and they&#8217;re not as customizable.  E.g., Dell wouldn&#8217;t let me add a built-in camera presumably because <span class="blsp-spelling-error" id="SPELLING_ERROR_11">SUSE</span> (do people actually  use <span class="blsp-spelling-error" id="SPELLING_ERROR_12">SUSE</span> by choice?) didn&#8217;t support it.  So just get the free Vista (which supports cameras/<span class="blsp-spelling-error" id="SPELLING_ERROR_13">bluetooth</span>) and blow it away after you&#8217;ve booted once and confirmed that it supports the resolution you&#8217;re after.</li>
<li><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_14">Lenovo</span> and Dell&#8217;s menu-customization features are critical for getting what you really need.</span>  If you can&#8217;t customize, you won&#8217;t get the right screen, processors, memory, etc.<span style="font-weight: bold;"></span></li>
<li><span style="font-weight: bold;">There is a little bit of jargon you need to know, especially screen resolution: </span><a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/SXGA"><span class="blsp-spelling-error" id="SPELLING_ERROR_15">XGA</span></a><span style="font-weight: bold;"> and </span><a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/WSXGA_Wide_XGA%2B"><span class="blsp-spelling-error" id="SPELLING_ERROR_16">WSXGA</span></a><span style="font-weight: bold;">.</span>  Refer to those links often during your search.  Don&#8217;t forget about the &#8220;+&#8221;.</li>
<li><span style="font-weight: bold;">There are discount codes floating around the web.</span>  The easiest to search for/obtain is &#8220;<span class="blsp-spelling-error" id="SPELLING_ERROR_17">lenovo</span> coupon code&#8221;, which you&#8217;ll find updates for on a daily basis.  Simply plugging in the current day&#8217;s code in the coupon box will probably save you at least a hundred bucks.</li>
<li><span style="font-weight: bold;">14&#8243; and 15&#8243; are the price sweet spot.</span>  It would be great to find a really light 13&#8243;, but you can add $400 for that.  Going up to 17&#8243; also jacks up the price, squelches battery life, and will give you a back-ache.</li>
<li><span style="font-weight: bold;">A 15&#8243; <span class="blsp-spelling-error" id="SPELLING_ERROR_18">WSXGA</span>+ screen is an equivalent resolution to most 22&#8243; flat panel standalone monitors.</span>  That&#8217;s 1.76 million pixels.  That means that if you sit close enough, you can probably stare at ~500 lines of code on a single virtual desktop.  Compare that to the best 14&#8243; at 1.29M pixels.  That&#8217;s why I spent $60 more for the 15&#8243;.  The best you&#8217;ll find at Best Buy is probably 0.79M pixels!</li>
<li><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_19">Lenovo</span> (R61) offers higher screen resolutions than Dell (<span class="blsp-spelling-error" id="SPELLING_ERROR_20">Vostro</span>).</span>  But they&#8217;ll cost $50-100 more.  I think that&#8217;s worth it.</li>
<li><span style="font-weight: bold;">Dell generally has better deals for business class than home user class.</span> Look for the <span class="blsp-spelling-error" id="SPELLING_ERROR_21">Vostro</span>, and consider yourself &#8220;business class&#8221; whatever your situation.</li>
<li><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_22">EEE</span> PC is just too small.</span>  Have you actually used a 7&#8243; screen?</li>
<li><span style="font-weight: bold;">You can get a decent old laptop on <span class="blsp-spelling-error" id="SPELLING_ERROR_23">Ebay</span> for $300, but they&#8217;re just not good enough for hacking work. </span>  They might even have enough RAM, but they probably won&#8217;t support dual-head or high-res.</li>
</ul>
<p>In summary, I recommend <span class="blsp-spelling-error" id=<br />
"SPELLING_ERROR_24">Lenovo</span> over Dell if you care a lot about the screen and processors, and are willing to spend an extra ~$50.  Otherwise, it looks like a wash.  I hope this helps you in your quest for the perfect Linux laptop.  Do you have any tips?  Any good reason for dropping $2K for the high end?</p>
]]></content:encoded>
			<wfw:commentRss>http://micahelliott.com/2008/05/choosing-a-hacker-friendly-laptop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My APT Package Meme</title>
		<link>http://micahelliott.com/2008/05/my-apt-package-meme/</link>
		<comments>http://micahelliott.com/2008/05/my-apt-package-meme/#comments</comments>
		<pubDate>Fri, 23 May 2008 01:40:00 +0000</pubDate>
		<dc:creator>Micah</dc:creator>
				<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[simplicity]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.micahelliott.com/?p=27</guid>
		<description><![CDATA[A look at automating setup for every new Ubuntu; and maybe even a meme. Linux distros these days tend to be pretty minimal in their default install mode. Many of us used to be in the habit of checking the &#8220;Install Everything&#8221; box in the earlier Red Hat days. But then the box disappeared, and [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-style: italic;">A look at automating setup for every new Ubuntu; and maybe even a <a href="http://en.wikipedia.org/wiki/Meme">meme</a>.</span></p>
<p>Linux distros these days tend to be pretty minimal in their default install mode.   Many of us used to be in the habit of checking the &#8220;<span style="font-style: italic;">Install Everything</span>&#8221; box in the earlier Red Hat days.  But then the box disappeared, and it became a pain to get everything you needed, and most people moved on to use apt or yum, or some equivalent, to get their systems to a usable state.  The modern idea is that you start out with the bare minimum to simply enable yourself to boot, fumble around, and install more stuff.  Then you just use apt-get, aptitude, synaptic, or whatever, to install to your particular needs.  On a fresh new Ubuntu 8.04 installation I see only ~300 packages.</p>
<p>After some time on a machine you probably find that <span style="font-weight: bold;">you&#8217;ve manually installed hundreds (or thousands!) of packages to satisfy all your development needs</span>.  Here&#8217;s a great way to get that critical, comprehensive package list and make sure your other oft-used machines have everything you need.  (You might even want this in the crontab of your primary machine; it can be helpful for recovery purposes.  I&#8217;ll discuss cron optimizations in a future post.  And another future post will discuss why apt-get is Ubuntu&#8217;s killer feature.)</p>
<p><span style="color: rgb(0, 153, 0);font-family:courier new;" >    <span style="color: rgb(153, 0, 0);">mocushla$</span> dpkg &#8211;get-selections | grep -v ^lib <span style="color: rgb(102, 102, 102); font-style: italic;">[>/some/backed/up/place/packages.log]</span></span></p>
<p>The list on my primary machine shows nearly 2,000 packages now.  That&#8217;s a lot!  Note that I&#8217;m excluding the libraries since they tend to just be dependencies.  Including them can actually make an upgrade/rebuild/recovery more difficult.<br /><span style="font-size:130%;"><br />A Minimal Package Set</span></p>
<p>You may also find yourself needing to get onto freshly installed machines with some frequency.  Maybe it&#8217;s a new web host, or some lab machine you need to do some work on.  <span style="font-weight: bold;">For time and space reasons, it&#8217;s probably not practical to start off by immediately installing your full 2,000-package set, so you&#8217;ll want to come up with a minimal set which at least makes you dangerous</span>.</p>
<p>As someone who regularly sits down at other people&#8217;s machines, or at fresh new machines, I&#8217;ve found the need to have <span style="font-weight: bold;">a small set of essential packages that I install</span>, just to be productive.  Here&#8217;s my list (the green).</p>
<p><span style="color: rgb(0, 153, 0);font-family:courier new;" ><span style="color: rgb(153, 0, 0);">    <span class="blsp-spelling-error" id="SPELLING_ERROR_1">newbox</span>$</span> <span style="color: rgb(102, 102, 102);"><span class="blsp-spelling-error" id="SPELLING_ERROR_2">sudo</span> apt-get install</span> build-essential screen <span class="blsp-spelling-error" id="SPELLING_ERROR_3">zsh</span> corkscrew mercurial subversion python <span class="blsp-spelling-error" id="SPELLING_ERROR_4">ipython pychecker pylint</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_5">ctags</span> </span><span style="color: rgb(0, 153, 0);font-family:courier new;" >vim </span><span style="color: rgb(0, 153, 0);font-family:courier new;" >vim-scripts xfonts-terminux <span class="blsp-spelling-error" id="SPELLING_ERROR_6">sqlite</span>3 tree <span class="blsp-spelling-error" id="SPELLING_ERROR_7">ntp mailx postfix mutt autofs nfs-common</span></span></p>
<p>This will install some other dependencies, of course, but it&#8217;s a pretty quick operation, requiring less than 100 <span class="blsp-spelling-error" id="SPELLING_ERROR_8">MiB</span>.  There are various other essential packages not listed there, but they tend to be part of the basic install.  Now you can just use something like &#8220;<span style="font-family:courier new;"><span class="blsp-spelling-error" id="SPELLING_ERROR_9">hg</span> clone ssh://<span style="font-style: italic;">your-<span class="blsp-spelling-error" id="SPELLING_ERROR_10">mocushla</span></span>.com/<span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_11">yourhome</span></span></span>&#8221; to pull in your well-organized, minimal <span style="font-family:courier new;">$HOME</span> setup &#8212; but I&#8217;ll talk about that in a future post.</p>
<p><span style="font-style: italic;">Related tip of the day:</span>  Did you know you have tab-completion for apt-get?  Try this:</p>
<p><span style="color: rgb(0, 153, 0);font-family:courier new;" ><span style="color: rgb(153, 0, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_12">newbox</span>$ <span style="color: rgb(0, 153, 0);"><span class="blsp-spelling-error" id="SPELLING_ERROR_13">sudo</span> apt-get install python-</span><span style="color: rgb(102, 102, 102);"><tab><tab><tab><tab>[tab][tab]y</tab></tab></tab></tab></span></span></span></p>
<p>How many of those have you had to discover by searching?<br /><span style="font-size:130%;"><br />The Meme</span><br /><span style="font-weight: bold;"><br />What&#8217;s on your Minimal APT List?</span>  Or do you have a Yum List?  Does it look different?</p>
<p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_DzStaE_3-vk/SDTFOu2dnZI/AAAAAAAAAA4/vTL7qxtIvrM/s1600-h/patch-mgmt.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 191px;" src="http://bp1.blogger.com/_DzStaE_3-vk/SDTFOu2dnZI/AAAAAAAAAA4/vTL7qxtIvrM/s200/patch-mgmt.jpg" alt="" id="BLOGGER_PHOTO_ID_5203000326405070226" border="0" /></a><span style="font-style: italic;"></span><span style="font-style: italic; color: rgb(102, 102, 102);">If you found this post interesting, you may be interested in some related book s: <a href="http://www.amazon.com/gp/product/0132366754/102-8171041-1883345?ie=UTF8&amp;tag=micaelli-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0132366754">Linux Patch Management</a>, and <a href="http://www.amazon.com/gp/product/0596527209/102-8171041-1883345?ie=UTF8&amp;tag=micaelli-20&amp;linkCode=xm2&amp;camp=1789&amp;creativeASIN=0596527209"><span class="blsp-spelling-error" id="SPELLING_ERROR_14">Ubuntu</span> Hacks</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://micahelliott.com/2008/05/my-apt-package-meme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

