<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>My Humble Corner</title>
	<atom:link href="http://myhumblecorner.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://myhumblecorner.wordpress.com</link>
	<description>In this large world, this one place is where I write about my discoveries, activities, and adventures.</description>
	<lastBuildDate>Wed, 15 May 2013 21:39:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='myhumblecorner.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>My Humble Corner</title>
		<link>http://myhumblecorner.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://myhumblecorner.wordpress.com/osd.xml" title="My Humble Corner" />
	<atom:link rel='hub' href='http://myhumblecorner.wordpress.com/?pushpress=hub'/>
		<item>
		<title>fcron compatibility with vixie-cron&#8217;s /etc/cron.* directories</title>
		<link>http://myhumblecorner.wordpress.com/2012/07/20/fcron-compatibility-with-vixie-crons-etccron-directories/</link>
		<comments>http://myhumblecorner.wordpress.com/2012/07/20/fcron-compatibility-with-vixie-crons-etccron-directories/#comments</comments>
		<pubDate>Fri, 20 Jul 2012 16:47:56 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=396</guid>
		<description><![CDATA[vixie-cron has cron.hourly, cron.daily, cron.weekly, and cron.monthly directories. Your system might have something slightly different. If you&#8217;re like me, you&#8217;ve done your research on cron daemons, and found vixie-cron to not only be one of the more resource-hungry options, but also one of the less usable. The system has really gotten stale over time. fcron [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=396&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>vixie-cron has cron.hourly, cron.daily, cron.weekly, and cron.monthly directories. Your system might have something slightly different.</p>
<p>If you&#8217;re like me, you&#8217;ve done your research on cron daemons, and found vixie-cron to not only be one of the more resource-hungry options, but also one of the less usable. The system has really gotten stale over time. fcron not only does everything vixie-cron does, it also does everything anacron does, and in a nice, small package.</p>
<p>Problem is, fcron also doesn&#8217;t like to look back to the past. It doesn&#8217;t utilize the /etc/cron.* directories, unless you tell it to do so:</p>
<blockquote><p><code>%hourly * /bin/run-parts /etc/cron.hourly<br />
%daily * * /bin/run-parts /etc/cron.daily<br />
%weekly * * /bin/run-parts /etc/cron.weekly<br />
%monthly * * * /bin/run-parts /etc/cron.monthly</code></p></blockquote>
<p>Add this to your system&#8217;s crontab by running:</p>
<blockquote><p><code>sudo fcrontab -e</code></p></blockquote>
<p>As soon as you save and quit, fcrontab will run all the jobs once, and then continue according to schedule.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/396/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=396&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2012/07/20/fcron-compatibility-with-vixie-crons-etccron-directories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Removing WINE&#8217;s Default Application Entries</title>
		<link>http://myhumblecorner.wordpress.com/2011/10/29/removing-wines-default-application-entries/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/10/29/removing-wines-default-application-entries/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 00:37:36 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=391</guid>
		<description><![CDATA[Today I double-clicked an image, and it opened with WINE Internet Explorer. What in the world? Why would I want that? Anyways, odd developer choices aside, there&#8217;s a way to get rid of WINE&#8217;s software completely from your &#8220;Open With&#8221; menus. Shut down winemenubuilder.exe. Here&#8217;s how to do it: Open winecfg Go to the libraries tab [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=391&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today I double-clicked an image, and it opened with WINE Internet Explorer. What in the world? Why would I want that?</p>
<p>Anyways, odd developer choices aside, there&#8217;s a way to get rid of WINE&#8217;s software completely from your &#8220;Open With&#8221; menus. Shut down winemenubuilder.exe. Here&#8217;s how to do it:</p>
<ol>
<li>Open winecfg</li>
<li>Go to the libraries tab</li>
<li>In the dropdown, type in &#8220;winemenubuilder.exe&#8221; without the quotes. It&#8217;s not in the list, but you can type it.</li>
<li>Once added, click on the new entry and click the Edit button.</li>
<li>Click the Disabled radio button, and save everything.</li>
</ol>
<div>You&#8217;ll want to go through the .local/share/mime and .local/share/applications directories and delete anything relating to WINE. On my system, the only reason .local/share/mime exists is because WINE creates it, so I deleted the mime directory entirely. If you keep it, be sure to run:</div>
<blockquote>
<pre>update-mime-database .local/share/mime</pre>
</blockquote>
<p>If you&#8217;re running a good DE, like LXDE (hint, hint), all your menus will update almost immediately.</p>
<p>Source: <a href="http://bugs.winehq.org/show_bug.cgi?id=19182">WineHQ bug #19182</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/391/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=391&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/10/29/removing-wines-default-application-entries/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>screen to tmux: A Humble Quick-start Guide</title>
		<link>http://myhumblecorner.wordpress.com/2011/08/30/screen-to-tmux-a-humble-quick-start-guide/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/08/30/screen-to-tmux-a-humble-quick-start-guide/#comments</comments>
		<pubDate>Tue, 30 Aug 2011 17:20:30 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=385</guid>
		<description><![CDATA[An online friend named bmc_ on Twitter introduced me to tmux. It reportedly has simpler, cleaner code than screen, which implies that it&#8217;s more robust, in addition to more very useful features. The problem is tmux is very different from screen. It wasn&#8217;t at all easy to jump straight into tmux, without doing a thorough [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=385&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>An online friend named bmc_ on Twitter introduced me to tmux. It reportedly has simpler, cleaner code than screen, which implies that it&#8217;s more robust, in addition to more very useful features.</p>
<p>The problem is tmux is very different from screen. It wasn&#8217;t at all easy to jump straight into tmux, without doing a thorough read of the man pages, which is not exactly how great first impressions are made.</p>
<p>That&#8217;s why I decided to write this.</p>
<p>This quick-start guide will assume you are familiar with screen.</p>
<p><span id="more-385"></span></p>
<h2>&#8220;Let the Wild Rumpus Begin&#8221;</h2>
<p>Launch yourself into tmux:</p>
<blockquote>
<pre>tmux</pre>
</blockquote>
<p>Ctrl+B is your tmux shortcut (just like Ctrl+A used to be in screen).</p>
<p>You&#8217;re looking at your first window, which has only one pane. We&#8217;ll call this your first prompt. Log into irc or something &#8220;persistent&#8221;.</p>
<p>Split your window horizontally to create a new pane:</p>
<blockquote>
<pre>[Ctrl+b] "</pre>
</blockquote>
<p>You can now work in this second prompt while observing the first.</p>
<p>These shortcuts allows you to swap in Alt+Tab style:</p>
<blockquote>
<pre>[Ctrl+b] {
[Ctrl+b] }</pre>
</blockquote>
<p>You can use these keys to move between panes:</p>
<blockquote>
<pre>[Ctrl+b] [Up|Down|Left|Right]</pre>
</blockquote>
<p>Let&#8217;s say, though, that you want to open a third prompt in that bottom area, without losing your second. Creating a new window causes you to lose view of your first prompt, which has your persistent task like IRC. We could add a new pane by splitting the bottom pane vertically:</p>
<blockquote>
<pre>[Ctrl+b] %</pre>
</blockquote>
<p>This splits valuable screen space, though, and you only want to be using one prompt in that bottom space at a time anyway.</p>
<p>Let&#8217;s try this. Create a new window:</p>
<blockquote>
<pre>[Ctrl+b] c</pre>
</blockquote>
<p>This space is going to be a &#8220;holding&#8221; area for your second prompt until you&#8217;re done with your third. (We have to do this because of a difference in how panes are utilized. Screen looks at panes as permanent fixtures of your workspace until you say otherwise, whereas tmux looks at panes as specific to a prompt, unless said otherwise, and will close that pane when the prompt closes.)</p>
<p>For the curious, a list of open windows can be found here:</p>
<blockquote>
<pre>[Ctrl+b] w</pre>
</blockquote>
<p>Type something into this new window so you can tell the difference between it and the others. Now go back to the first window:</p>
<blockquote>
<pre>[Ctrl+b] 0</pre>
</blockquote>
<p>Focus the bottom pane using the Up/Down keys mentioned previously, and then type this:</p>
<blockquote><p>[Ctrl+b] :swapp -s 1.0 # means &#8220;swap prompt in window #1 pane #0 with the current prompt&#8221;</p></blockquote>
<p>With any luck that bottom pane now contains your third prompt, and the second prompt will be in the new window.</p>
<h2>Copying Window History</h2>
<p>By default, tmux keeps 2000 lines of &#8220;window history&#8221;. This is what screen calls scrollback.</p>
<p>You can enter copy mode and view this history by typing:</p>
<blockquote>
<pre>[Ctrl+b] PageUp</pre>
</blockquote>
<p>The &#8220;q&#8221; key quits this mode.</p>
<p>If you want to take advantage of copy mode, use Space to mark the first character of your selection, and Enter to mark the end. To paste, use the following shortcut:</p>
<blockquote>
<pre>[Ctrl+b] =</pre>
</blockquote>
<p>This shortcut will also bring up a list of paste buffers if there is more than one.</p>
<h2>More Pane Management</h2>
<p>(No pun intended.)</p>
<p>You can also &#8220;break&#8221; a pane out of its current window into an entirely new window:</p>
<blockquote>
<pre>[Ctrl+b] !</pre>
</blockquote>
<p>You can also do the reverse, and &#8220;join&#8221; an existing pane from another window into the current window:</p>
<blockquote>
<pre>[Ctrl+b] :joinp -h -s 0.0 -p 75 # join window #0 pane #0 horizontally, giving it 75% of the screen space</pre>
</blockquote>
<p>If you decide you don&#8217;t like the size of a pane, you can use the following shortcuts to resize the current pane:</p>
<blockquote>
<pre>[Ctrl+b] Alt+[Up|Down|Left|Right]</pre>
</blockquote>
<p>Interestingly enough, any shortcut involving directional keys can be used over and over rapidly. As soon as there are any pauses, however, tmux stops listening and you&#8217;ll have to re-execute the shortcut again.</p>
<p>Window and pane numbers can be looked up as follows:</p>
<blockquote>
<pre>[Ctrl+b] w # for window numbers
[Ctrl+b] q # for pane numbers</pre>
</blockquote>
<h2>Built-in Help</h2>
<p>You can find a list of keybindings here:</p>
<blockquote>
<pre>[Ctrl+b] ?</pre>
</blockquote>
<p>Use the &#8220;q&#8221; key to get out of this and other interactive modes.</p>
<h2>Leaving and Coming Back Again</h2>
<p>Exiting a window means either causing all prompts to close (via &#8220;exit&#8221; in each for example) or moving panes within a window to other windows (via &#8220;joinp&#8221; for example) until a window has no more panes. At either point, the window closes.</p>
<p>If your window is misbehaving, you can &#8220;kill&#8221; it by typing:</p>
<blockquote>
<pre>[Ctrl+b] &amp;</pre>
</blockquote>
<p>Similarly, tmux will close when there are no more windows in a session.</p>
<p>If you want to leave your windows intact but close the terminal or ssh connection, you can detach and reattach later. Detaching works just like screen:</p>
<blockquote>
<pre>[Ctrl+b] d</pre>
</blockquote>
<p>Last, but not least, you can reattach to the existing session as follows:</p>
<blockquote>
<pre>tmux a</pre>
</blockquote>
<h2>Feedback Welcome</h2>
<p>This gets you started. The man page <em>is</em> well written, but very long. If you think I missed something important, or need help with a particular use of tmux, comment below.</p>
<ul>
<li>Updated 2011/08/30 12:20 EDT &#8211; Added a bit of text on window history, and added more sections to break this page up a bit better.</li>
<li>Updated 2011/08/31 14:42 EDT &#8211; Added more about closing windows and sessions, thanks to <a href="https://myhumblecorner.wordpress.com/2011/08/30/screen-to-tmux-a-humble-quick-start-guide/#comment-404">David in comments</a>.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/385/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/385/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=385&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/08/30/screen-to-tmux-a-humble-quick-start-guide/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Desktop Revolution: Stage 1: Notifications Bar</title>
		<link>http://myhumblecorner.wordpress.com/2011/08/26/desktop-revolution-stage-1-notifications-bar/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/08/26/desktop-revolution-stage-1-notifications-bar/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 17:32:26 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=380</guid>
		<description><![CDATA[I have a lot of ideas about how the Linux desktop can be improved, perhaps revolutionized, and these ideas all come from running up against walls repeatedly. I&#8217;m going to write the best ones down, the ones I will eventually turn into an open-source project (years down the road, mind you) if no one else [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=380&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I have a lot of ideas about how the Linux desktop can be improved, perhaps revolutionized, and these ideas all come from running up against walls repeatedly. I&#8217;m going to write the best ones down, the ones I will eventually turn into an open-source project (years down the road, mind you) if no one else does.</p>
<p>The Linux tech world has come up with numerous solutions for notifications, and I use as many as possible to satisfy my needs. Chrome has TweetDeck, Linux has libnotify, or notify-osd if you&#8217;re using Ubuntu, and all operating systems have an icon &#8220;tray.&#8221; They all serve similar purposes: they want to give you information about what&#8217;s going on right now, and that&#8217;s incredibly useful.</p>
<p>However, I dislike the icon tray. It&#8217;s messy, hard to notice, and hard to click on.</p>
<p>I dislike the pop-up notifications. They get in the way of something every time and disappear if I don&#8217;t give them the attention they crave right at that particular moment.</p>
<p>TweetDeck doesn&#8217;t have any of these problems, but it runs as its own app that wants lots of screen space, and is so super-specific that it really can only be used for so many things.</p>
<p>My idea is to take the best of all these worlds and put them together into this new application I&#8217;ll call &#8220;notifications bar&#8221;.<span id="more-380"></span></p>
<p>It will sit as a docked panel, on the right side or left side of the screen. Every time there is an event that might be worth the user&#8217;s attention, it enters the notifications bar at the top. These notifications should be styled according to source (O/S or human?) and importance (reply soon or just an f.y.i.?). There could be an auto-hiding feature too, but I personally dislike that idea, as it usually means I&#8217;ll be accidentally triggering it, or I won&#8217;t notice it when I should.</p>
<p>These notifications could be triggered by literally anything. Did the system detect an unusual error that might be worth my attention, such as a failed cron job or authentication attempt?  How about upcoming calendar events? What about when a new song starts playing? Perhaps it could track my last.fm friends and let me know what they&#8217;re up to. Or perhaps an application will have a notification, say if it&#8217;s out-of-date. Let&#8217;s not forget all our social networks, either.</p>
<p>Notifications should indicate a life-span. Some notifications (&#8220;you&#8217;re computer is full!&#8221;) need resolution right away and should exist until acknowledged. Others (&#8220;John commented: lol&#8221;) aren&#8217;t worth keeping in view. Still others (&#8220;Meeting with VIP&#8221;) need to exist for a period of time, say, 15 minutes before plus 5 minutes after the start of the event. Notifications that indicate a life-span will be called &#8220;living&#8221;, and the ones that don&#8217;t are called &#8220;temporal&#8221;. Living notifications will have a timer icon on the right side. Let&#8217;s just use a pie-chart circle indicator as an example for our imaginations. The circle starts filled, but it slowly empties in circular fashion until its life-span is exhausted.</p>
<p>These living notifications are the ones that stick around. As more notifications fill the bar, the ones that have a life-span &#8220;stick&#8221; at the bottom and refuse to be pushed off until &#8220;killed&#8221; or &#8220;exhausted&#8221;. The temporal ones simply fall behind either the living notifications or the bottom of the screen, whichever comes first.</p>
<p>Of course, a history can be kept. This can also be used for when there are more living notifications than there is screen-space. This could use some more thought.</p>
<p>Clicking a notification is notification-dependent, and running this whole notifications bar via plugins means each notification will provide some quick and meaningful functionality when clicked. A hover icon should appear on the left-most edge of the notification that indicates whether an entirely new application will pop open or just a dialog, similar to TweetDeck for Chrome&#8217;s little reply box, will appear. Plugins should be as easy to write as /usr/bin/notify-send is to use, perhaps even providing some UI templates for quick-&#8217;n-simple scripts written by power users, while also allowing for full-fledged custom UI&#8217;s written by developers.</p>
<p>This is my dream. Either I&#8217;m going to write it or someone else will, and I don&#8217;t care which, as long as it happens.</p>
<p>What do you think?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/380/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=380&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/08/26/desktop-revolution-stage-1-notifications-bar/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;git svn&#8221; Cheatsheet for Git Rebels in an SVN Workplace</title>
		<link>http://myhumblecorner.wordpress.com/2011/08/25/git-svn-cheatsheet-for-git-rebels-in-an-svn-workplace/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/08/25/git-svn-cheatsheet-for-git-rebels-in-an-svn-workplace/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 16:39:26 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[cheatsheet]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-svn]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=362</guid>
		<description><![CDATA[This is my own use of git svn. No one in Google seems to have this mix listed out for a Subversion project with a proper trunk/branch/tag setup, so I decided to post what I&#8217;ve got. Getting a repository: git svn clone --tags &#60;tags subfolder&#62; --trunk &#60;trunk subfolder&#62; --branches &#60;branches subfolder&#62; Updating SVN-tracking remote branches [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=362&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div>
<p>This is my own use of git svn. No one in Google seems to have this mix listed out for a Subversion project with a proper trunk/branch/tag setup, so I decided to post what I&#8217;ve got.</p>
<div>Getting a repository:</div>
<blockquote>
<pre>git svn clone --tags &lt;tags subfolder&gt; --trunk &lt;trunk subfolder&gt; --branches &lt;branches subfolder&gt;</pre>
</blockquote>
<div>Updating SVN-tracking remote branches in git:</div>
<blockquote>
<pre>git svn fetch</pre>
</blockquote>
</div>
<div>Working on trunk:</div>
<blockquote>
<pre>git checkout master; git svn rebase</pre>
</blockquote>
<div>Working on a branch for the first time:</div>
<blockquote>
<pre>git checkout -b local/&lt;branchname&gt; &lt;remote branchname&gt;</pre>
</blockquote>
<div>Working on a branch:</div>
<blockquote>
<pre>git checkout local/&lt;branchname&gt;; git svn rebase</pre>
</blockquote>
<div>After committing, merging, or any other action that changed the local git repository, push to SVN:</div>
<blockquote>
<pre>git svn dcommit</pre>
</blockquote>
<div>Making a new branch in SVN:</div>
<blockquote>
<pre>git checkout master; git svn branch &lt;branchname&gt; -m "Branching for &lt;reason or bug#&gt;"</pre>
</blockquote>
<div>Making a new tag in SVN:</div>
<blockquote>
<pre>git checkout &lt;tagged commit&gt;; git svn tag -m "Tagging for &lt;reason or release&gt;"</pre>
</blockquote>
<div>Deleting a branch in SVN:</div>
<blockquote>
<pre>svn rm svn://host/path/to/branch; git branch -D local/&lt;branchname&gt;; git branch -D -r &lt;branchname&gt;; rm -rf .git/svn/refs/remotes/&lt;branchname&gt;</pre>
</blockquote>
<div>Deleting a tag in SVN:</div>
<blockquote>
<pre>svn rm svn://host/path/to/tag; git branch -D -r tags/&lt;branchname&gt;; rm -rf .git/svn/refs/remotes/tags/&lt;branchname&gt;</pre>
</blockquote>
<div>Merging a branch (properly):</div>
<blockquote>
<pre>git checkout &lt;merge-to branch&gt;; git merge <strong>--squash</strong> &lt;merge-from branch&gt;; git commit; git svn dcommit #<em> --squash is key</em></pre>
</blockquote>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/362/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/362/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=362&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/08/25/git-svn-cheatsheet-for-git-rebels-in-an-svn-workplace/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Rule of Thumb for Detecting Poor Design</title>
		<link>http://myhumblecorner.wordpress.com/2011/08/25/rule-of-thumb-for-detecting-poor-design/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/08/25/rule-of-thumb-for-detecting-poor-design/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 14:24:45 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=368</guid>
		<description><![CDATA[You know you&#8217;ve got a bad design, or at least one that could be improved, when you start copying and pasting code around. (Note: this doesn&#8217;t mean the design needs improving.) Now, to brace myself for the rotten tomatoes I see headed my way&#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=368&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>You know you&#8217;ve got a bad design, or at least one that could be improved, when you start copying and pasting code around. (Note: this doesn&#8217;t mean the design needs improving.)</p>
<p>Now, to brace myself for the rotten tomatoes I see headed my way&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/368/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/368/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=368&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/08/25/rule-of-thumb-for-detecting-poor-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Gentoo-built Desktop Managers and Their Lack of Integration</title>
		<link>http://myhumblecorner.wordpress.com/2011/08/02/gentoo-built-desktop-managers-and-their-lack-of-integration/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/08/02/gentoo-built-desktop-managers-and-their-lack-of-integration/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 15:01:29 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=359</guid>
		<description><![CDATA[I don&#8217;t know if anyone else noticed this, but I certainly have. It&#8217;s not that it can&#8217;t be worked around. It&#8217;s that Gentoo-built desktop managers lack the polish other pre-mangled distributions like Ubuntu provide. I miss that. Presently, I&#8217;m using KDE, and as it turns out, it has the most integration issues, in my experience. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=359&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I don&#8217;t know if anyone else noticed this, but I certainly have. It&#8217;s not that it can&#8217;t be worked around. It&#8217;s that Gentoo-built desktop managers lack the polish other pre-mangled distributions like Ubuntu provide. I miss that.</p>
<p>Presently, I&#8217;m using KDE, and as it turns out, it has the most integration issues, in my experience. The only thing in GNOME that felt thrown together was super-user authentication and printing, whereas KDE has issues with NetworkManager, PulseAudio, super-user authentication, and external storage mounting, and I&#8217;m sure I&#8217;ve only scratched the surface.</p>
<p>The plan is to spend the rest of my summer reporting on these issues so they can be resolved. With fingers crossed, bug reports will be filed <em>and</em> fixed.</p>
<p>Stay tuned.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/359/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/359/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=359&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/08/02/gentoo-built-desktop-managers-and-their-lack-of-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Spotify vs. MOG</title>
		<link>http://myhumblecorner.wordpress.com/2011/07/21/spotify-vs-mog/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/07/21/spotify-vs-mog/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 22:41:05 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[mog]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[spotify]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=350</guid>
		<description><![CDATA[This is as much for myself as for anyone who reads this. Now that Spotify landed in the US, it&#8217;s attracted my attention. I&#8217;m already paying $10/month for MOG. Can Spotify take my $10 and make my experiences even better? Music Selection So far, so good. I had one of my family members suggest a [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=350&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This is as much for myself as for anyone who reads this. Now that Spotify landed in the US, it&#8217;s attracted my attention. I&#8217;m already paying $10/month for MOG. Can Spotify take my $10 and make my experiences even better?</p>
<h2>Music Selection</h2>
<p>So far, so good. I had one of my family members suggest a few (tiny) artists, and they&#8217;ve come up. I found Sarah Fimm, which is always a good sign. However, some odd things were missing. MOG has more of the Lord of the Rings soundtrack than Spotify. (MOG has &#8220;The Last March of the Ents&#8221;, while Spotify does not.)</p>
<p>Nevertheless, Spotify seems very strong. No other service besides MOG has pulled up search results for some of the terms I&#8217;ve pulled in, until now. Spotify so far matches MOG in almost every way.</p>
<p><strong>Edit</strong>: since I&#8217;ve started finding more disparities between the two&#8217;s catalogs, I&#8217;ve decided to keep a list:</p>
<ul>
<li>MOG has more Lord of the Rings soundtrack albums than Spotify.</li>
<li>MOG has the artist Arcade Fire; Spotify does not.</li>
</ul>
<p>Write in the comments area if you have any other artists or albums you want me to look for.</p>
<h2>Access to that Music Selection</h2>
<p>Ahh, yes. Now it gets interesting. MOG doesn&#8217;t use a downloaded client. They stick to a lightweight web interface. This means I can listen to MOG wherever I am. With Spotify, not so much.</p>
<p>Once you&#8217;re logged in, though, how do the services compare? Spotify wins in more ways than one.</p>
<p>Spotify doesn&#8217;t just have everything MOG does, which includes playlists, favorites, &#8220;What&#8217;s New&#8221;, and a nicely-organized search. Spotify&#8217;s client is also fast. Searches return results right away, and navigation through their library is snappy and responsive. It feels almost like their entire library index is sitting on my computer. Spotify is also linked to my Facebook account, which means my friends&#8217; playlists and favorites can be browsed and played.</p>
<p>Music playback is much better in Spotify. Skipping songs, or skipping around within a song, all happens so fast sometimes I wonder if it even had to stream to play it. To make that even faster, Spotify can seamlessly link my locally-stored music into the Spotify catalog, so that music I already have downloaded is used (as long as they&#8217;re MP3 or MP4) instead of streaming it. Any DRM-encrypted or unplayable formats are still recognized, but streamed whenever I attempt to play them.</p>
<p>MOG won&#8217;t do any of that.</p>
<h2>Mobile</h2>
<p>There really is no competition here.</p>
<p>First of all, the user interface feels much more native in Spotify than MOG. Buttons, menus, and lists are clearly buttons, menus, and lists, rather than a stylized collection of black, white, and red boxes, however pretty it looks. Consistency wins every time.</p>
<p>Different areas in Spotify are accessible almost immediately, thanks to a menu across the bottom of the screen. In MOG, to access another area, one has to use the hardware back button to get back to the main menu.</p>
<p>Spotify will not only sync all my playlists and favorites, but also my local files. Imagine that. Google Music still wins in format support, but if you have a library full of mp3 and mp4 songs, that won&#8217;t be an issue. Besides, Spotify syncs over the network. Google Music will sync at any location, but always over the Internet. Spotify also watches your mobile phone or iPod storage, and restrains itself from reducing your free space below than a specified percentage (10% by default). In addition, this sync is available for free! It&#8217;s the streaming you have to pay for. MOG won&#8217;t do any of that.</p>
<h2>Support</h2>
<p>I actually don&#8217;t have enough experience in this area, at least for Spotify. I can tell you that MOG is a company that seriously listens to their customers. If they&#8217;re missing music, they have an e-mail address where customers can e-mail requests, and a human replies with either a satisfactorily-detailed reason why MOG couldn&#8217;t get you that album, or a date when the album will be available. They also have a website set up where users can post ideas and vote up others&#8217; ideas they think deserve attention. It&#8217;s been very effective, because they listen.</p>
<p>Spotify seems to have a similar system going for feature requests. Their community also seems a little bit stronger due to the open nature of their support forums. (MOG keeps all support requests private.) Spotify, however, doesn&#8217;t seem to be ready to receive music requests, which, in my opinion, is a big problem, considering music is the point the service exists.</p>
<h2>Overall</h2>
<p>If you can get past accessing the client, and finding the music you like, Spotify seems superior in every way. The user experience in all their software, including their website, is polished and solid. $10 with Spotify is going to get you quite a few more features than MOG.</p>
<p>However, when it comes down to just listening to music, both services are equal. MOG may have more music than Spotify, and both services allow you to listen to music in some easy fashion or other. The mobile apps for both are also easy to use and reliable. Everything for both services &#8220;Just Works&#8221;.</p>
<p>I use Linux, 64-bit. I have Spotify for Windows installed under WINE, and it works very well. However, the various problems I had reaching this point (howto coming soon) highlights why web-based platforms generally are better than native ones. It&#8217;s both a blessing and a curse, actually: by going native, it&#8217;s snappier, but it&#8217;s also only available on my various computers. If I can&#8217;t play my music where I&#8217;m at, what&#8217;s the point in paying for the service?</p>
<p>That&#8217;s what it seems to come down to, at least for me personally. If you can handle your availability limited to wherever the Spotify client is installed, you&#8217;ll enjoy Spotify much more than MOG. If you&#8217;d really much rather have a web-based interface, accessible anywhere where there&#8217;s a browser, I&#8217;d go for MOG.</p>
<p>What&#8217;s my choice? I&#8217;m still deciding.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/350/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/350/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=350&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/07/21/spotify-vs-mog/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>How can I be a KDE power user?</title>
		<link>http://myhumblecorner.wordpress.com/2011/06/19/how-can-i-be-a-kde-power-user/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/06/19/how-can-i-be-a-kde-power-user/#comments</comments>
		<pubDate>Sun, 19 Jun 2011 22:47:49 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=348</guid>
		<description><![CDATA[As far as I can tell, KDE is essentially a desktop environment shell layered on top of many very useful libraries. The difficulty is, how does one test each individual layer? Here&#8217;s a recent example. I started by using Amarok as my music player, a default choice it seems for many KDE users. I put [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=348&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As far as I can tell, KDE is essentially a desktop environment shell layered on top of many very useful libraries. The difficulty is, how does one test each individual layer?</p>
<p>Here&#8217;s a recent example. I started by using Amarok as my music player, a default choice it seems for many KDE users. I put an audio CD in the drive, and it appeared in Amarok. When I tried to play or rip the CD, though, the interface just wouldn&#8217;t respond.</p>
<p>Fast-forward many, many hours later, and I&#8217;ve traced the issue through logs spit out by Amarok, Phonon, Kscd, gstreamer, ffmpeg, and the kernel itself, and I narrow the issue down to KDE I/O layer. cdparanoia reads disks just fine. No KDE-based app can. There&#8217;s a lot of seek errors in the kernel logs, which appear only when a KDE-based app is up and running with a CD in the drive.</p>
<p>So what&#8217;s the big deal, you might ask? I figured it out. What&#8217;s the problem?</p>
<p>Perhaps I&#8217;m spoiled, but in GNOME I debugged issues quite differently. If I had an issue, I&#8217;d go through each API layer, and use each one&#8217;s executables. Note the difference between KDE and GNOME: GNOME makes every layer, every setting easy to access, if you look for it. KDE gives you everything at once, and hides everything else in a wall of libraries. There&#8217;s no intermediate executables I can use to debug each layer, by manually running through steps myself. There&#8217;s no ability to get a work-around, or to helpfully narrow down the area where the bug exists for Google searching.</p>
<p>How do I make my debugging with KDE more productive? What steps do I take? How have you debugged KDE-based applications? I know about <a href="http://techbase.kde.org/Development/Tutorials/Debugging">the KDE wiki page</a>, but is there anything else?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/348/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/348/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=348&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/06/19/how-can-i-be-a-kde-power-user/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
		<item>
		<title>Gentoo (and a little Ubuntu) on a MacBook Pro (5,3)</title>
		<link>http://myhumblecorner.wordpress.com/2011/05/31/gentoo-and-a-little-ubuntu-on-a-macbook-pro-53/</link>
		<comments>http://myhumblecorner.wordpress.com/2011/05/31/gentoo-and-a-little-ubuntu-on-a-macbook-pro-53/#comments</comments>
		<pubDate>Tue, 31 May 2011 23:36:44 +0000</pubDate>
		<dc:creator>Jacob Godserv</dc:creator>
				<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[efi]]></category>
		<category><![CDATA[gdisk]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[gpt]]></category>
		<category><![CDATA[gpt-fdisk]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[grub2]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[macbook pro]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://myhumblecorner.wordpress.com/?p=325</guid>
		<description><![CDATA[Getting Started The Google-size summary: I&#8217;ve gotten Gentoo working on my MacBook Pro (5,3) again. I&#8217;m going to attempt to recount all the little issues I ran across while installing Gentoo. If you notice I missed something, post it in the comments and I&#8217;ll try to figure it out and/or add it here. I also [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=325&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2>Getting Started</h2>
<p>The Google-size summary: I&#8217;ve gotten Gentoo working on my MacBook Pro (5,3) again.</p>
<p>I&#8217;m going to attempt to recount all the little issues I ran across while installing Gentoo. If you notice I missed something, post it in the comments and I&#8217;ll try to figure it out and/or add it here. I also hope to add my findings to the Gentoo wiki, although the wiki is such an outdated mess that I&#8217;d almost feel like scratching the whole thing and having the Gentoo+MacBook community write their experiences back in.<span id="more-325"></span></p>
<p>As far as boot managers go, I really like rEFIt. It&#8217;s simple, has yet to crash, boots anything, and also will not give in to OSX when it gets overwritten.</p>
<p>First, the Gentoo CD doesn&#8217;t work. I didn&#8217;t bother to figure out why, because I figured it&#8217;s going to be some Gentoo CD specific issue, and at that moment I realized that I had better options. I have a copy of Ubuntu 11.04 on a disk already, and I know everything already works with it hardware-wise.</p>
<p>The Ubuntu 11.04 and 11.10 Live CD&#8217;s do not boot on a MacBook Pro 5,3 unless you do the following:</p>
<ol>
<li>Boot into OSX, go to System Preferences -&gt; Energy Saver, and select the high performance option (vs. the battery option). This turns on the fancy NVidia 9600M video card.</li>
<li>Reboot into the Live CD. When you see the accessibility logos on the bottom of the screen, hit the any key, then F6, and then Esc to get rid of that annoying menu that reminded me of Clippy for some reason.</li>
<li>Anyways, in that boot options line, before the &#8220;&#8211;&#8221;, write in &#8220;nouveau.noaccel=1&#8243;. You need this because nouveau is still in early development, and it thinks it knows how to handle your video card. <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/787071">It doesn&#8217;t</a>.</li>
<li>For the wireless part, follow <a href="https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#LiveCD/LiveUSB">these</a> instructions. (If you like the friendly &#8220;Additional Drivers&#8221;, once called &#8220;Restricted Drivers&#8221;, you can use that instead for Step 1.) Basically, install the bcmwl-kernel-source package, unload the b43 and ssb kernel modules, and  reload the wl module.</li>
</ol>
<p>Go ahead and open the Gentoo Handbook, and start following the instructions. The rest of this blog post will be about the exceptions.</p>
<h2>Partitioning</h2>
<p>If you&#8217;re like me, you&#8217;ve got OSX and Windows already. You don&#8217;t want to mess them up. So why use Linux&#8217;s tools, when most of them don&#8217;t support GPT, and the others barely know what to do with them? That&#8217;s the case, anyway, as of the writing of this blog post.</p>
<p>This section is all thanks to this guy&#8217;s fantastic HOWTO on getting Ubuntu set up for EFI booting: <a href="http://www.rodsbooks.com/ubuntu-efi/index.html">http://www.rodsbooks.com/ubuntu-efi/index.html</a></p>
<p>So instead, use Disk Utility. If you didn&#8217;t plan ahead for Linux, resize to your heart&#8217;s content. Leave a space blank for Linux. (You can do this by adding a partition, sizing it, and then deleting it.) Don&#8217;t fret too much about whether Windows is first, last, or in the middle. I&#8217;ve found it really doesn&#8217;t matter, at least to Windows 7, contrary to a lot of guides out there.</p>
<p>Install gpt-fdisk 0.7.1 or better (just because those are the versions I used and I know work) in the Live CD:</p>
<ol>
<li>Download gpt-fdisk, the only tool that does a good job: http://www.rodsbooks.com/gdisk/download.html.</li>
<li>In Ubuntu, install the development packages uuid-dev, libpopt-dev, and libicu-dev.</li>
<li>In the extracted gpt-fdisk directory, run &#8220;make&#8221; and you&#8217;ll have the gdisk binary.</li>
</ol>
<div>According to gdisk, this is what my hard-drive looks like:</div>
<pre>Disk /dev/sda: 625142448 sectors, 298.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): [snip]
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 625142414
Partitions will be aligned on 8-sector boundaries
Total free space is 524949 sectors (256.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       312513879   148.8 GiB   AF00  Customer
   3       468961280       625141759   74.5 GiB    0700  Untitled
   4       325358936       468699135   68.3 GiB    8301  Linux reserved
   5       312776024       325358935   6.0 GiB     8200  Linux swap</pre>
<p>Partition 1 contains EFI boot files. It&#8217;s like the master boot record, except it&#8217;s a partition, which is so cool. Partition 2 contains OSX. partition 3 contains Windows, and partition 4 is Linux. Partition 5 was debatable for me. I&#8217;ve decided to use 6 precious GiB&#8217;s towards swap.</p>
<p>Now, I&#8217;m also using a hybrid MBR partition table, because Windows can&#8217;t really read GPT just yet (as far as I know; better safe than sorry, especially for existing installations). Here&#8217;s what that looks like:</p>
<pre>Disk size is 625142448 sectors (298.1 GiB)
MBR disk identifier: [snip]
MBR partitions:

Number  Boot  Start Sector   End Sector   Status      Code
   1                     1       409639   primary     0xEE
   2                409640    312513879   primary     0xAF
   3      *      468961280    625141759   primary     0x07
   4             325358936    468699135   primary     0x83</pre>
<p>This table&#8217;s job is simple: protect GPT partitions from being stomped on by operating systems that only understand MBR. Partitions 1-4 all correspond to partitions 1-4 in the GPT table.</p>
<p>So, here&#8217;s what you do:</p>
<ol>
<li>Go ahead and use gdisk to create the Linux partitions you want. Try to leave 128M gaps between partitions (type &#8220;+128M&#8221; for start sector when prompted), because apparently OSX might not take major 10.X upgrades.</li>
<li>Now, open the recovery side of gdisk with the &#8220;r&#8221; command.</li>
<li>Type the &#8220;h&#8221; command.</li>
<li>At the prompt, type in at most three partition numbers that you want legacy operating systems and boot managers to see. For me, those were the partition numbers for the OSX partition, Windows partition, and the Linux root partition (since I keep /boot in root). If it asks whether you want to &#8220;Place EFI GPT (0xEE) partition first in MBR&#8221;, say yes.</li>
<li>When you&#8217;re all done, write out the tables and quit. Partitioning is done. If you were told the kernel wouldn&#8217;t get the new partition table, reboot.</li>
</ol>
<h2>Kernel</h2>
<p>This was the easy part for me. I started fresh, and built a kernel from there. I&#8217;m linking my kernel configuration, which provides me with a working framebuffer, sound, wireless (assuming you install the broadcom-sta ebuild as well), touchpad, bluetooth, etc., etc. Basically, it&#8217;s about as compatible a kernel as I&#8217;ve ever gotten, while keeping the extravagant selections to a minimum.</p>
<p>gentoo-sources - <a href="http://neuvoo.org/users/javajake/2.6.38-gentoo-r6.config">2.6.38-gentoo-r6</a></p>
<p>In order to review kernels, I go to /usr/src/linux, clean out the .config (or move it), run &#8220;make menuconfig&#8221; to get a default kernel for my system architecture, and then diff the &#8220;clean&#8221; .config against the downloaded one. That will tell you what kind of choices I made.</p>
<p>When you&#8217;ve got your kernel configured, do the usual &#8220;make -j3 &amp;&amp; make modules_install &amp;&amp; make install&#8221;. The Gentoo Handbook doesn&#8217;t tell you, but &#8220;make install&#8221; actually puts the kernel and all the other really-good-to-have extras in /boot for you. GRUB2 will actually appreciate those extras, so I strongly recommend &#8220;make install&#8221;.</p>
<h2>GRUB2</h2>
<p>Once you&#8217;re in your Gentoo chroot, and you&#8217;re about to build GRUB, here&#8217;s what you do:</p>
<ol>
<li>You need to patch GRUB2&#8242;s ebuild so it can handle the &#8220;efi&#8221; USE flag, like so: <a href="http://neuvoo.org/users/javajake/grub-1.99_rc1.ebuild.patch">http://neuvoo.org/users/javajake/grub-1.99_rc1.ebuild.patch</a> (suggested patch; it&#8217;s so easy a caveman could do it).</li>
<li>Install this patched GRUB2, and I also highly recommend os-prober.</li>
<li>Now, this next part is up to you, but this made it simple for me. In the /boot directory, make an efi directory, and mount /dev/sda1, or wherever your EFI partition is, on /boot/efi. Check to be sure /boot/efi/EFI exists and has an APPLE directory. You might want to make a backup of this just in case.</li>
<li>Open /etc/default/grub (which may not exist yet) and add the following line. The important part is to make sure the grub directory is inside the all-capital-letters EFI directory.
<pre>GRUB_PREFIX=/boot/efi/EFI/grub/</pre>
<p>The cool thing about GRUB2 is it auto-detects everything really, really well. As long as you make sure to set GRUB_PREFIX and <strong>stay consistent</strong> with this setting, GRUB2 will work like a dream. I had so many issues because I didn&#8217;t stay consistent.</li>
<li>Run grub-install, like this:
<pre>grub-install --boot-directory=/boot/efi/EFI/</pre>
<p>It will install all the modules, fonts, etc., you need. Magical.</li>
<li>Right now, and every time you build a new kernel in /boot, run grub-mkconfig like this:
<pre>grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg</pre>
<p>You should get no errors. Again, it just works. I&#8217;m serious: if you&#8217;re using a simple partition scheme like I am, you don&#8217;t have to touch this.</li>
</ol>
<p>That&#8217;s all there is to it. You can now boot Linux. When rEFIt comes up, it&#8217;ll give you one or two new options. Ignore the Linux selection (the one with the picture of the penguin) if that appears on your system, and pick the one that mentions &#8220;core.efi&#8221; instead.</p>
<h2>Final Notes</h2>
<ul>
<li>3D acceleration is not working. The reason is simple. The nvidia driver conflicts with the efifb driver. However, you can&#8217;t just not use a framebuffer, because you need it to see the console. Why? Because GRUB2 auto-detects your framebuffer and configures all text output, from both GRUB2 and the kernel, to output to the framebuffer. Turning this off in GRUB2 is possible, but you need to display to something, and unfortunately that alternative is not obvious. Lastly, I tried both uvesafb and vesafb, and both fail to recognize the Pro&#8217;s framebuffer.</li>
<li>The fans in the MacBook Pro manage themselves, thankfully, and run just like they do in OSX. I wouldn&#8217;t change that.</li>
<li>All the fancy keys on the MacBook Pro are recognized. However, because you and I picked the EFI boot option, which is the cleanest, fastest, and easiest one to set up, the keyboard and screen backlights are not configurable from Linux, as of this writing. Thankfully, there&#8217;s a workaround. Simply set your backlights in OSX to something that works in most of your lighting conditions, and reboot into Linux. The hardware remembers.</li>
<li>I wouldn&#8217;t touch pommed. I&#8217;ve tried it, and it works, but it conflicts with other automagic tools in KDE and GNOME, and it segfaults frequently. Besides, just about everything works without it. (I think the only thing I needed it for was the keyboard backlight, but I can easily do without to avoid pommed.)</li>
<li>Because I use a desktop profile, and because I put INPUT_DEVICES=&#8221;${INPUT_DEVICES} synaptics&#8221; and VIDEO_CARDS=&#8221;nvidia nv vesa fbdev&#8221; in my make.conf, X configures itself. Again, magic. If you want to pick the video card you&#8217;re running on, see the Gentoo Handbook for cofiguring xorg.conf yourself. Use the BusID option in the Device section to pick the video card. Keep in mind that this may be very buggy. (Remember how we had to pick the 9600 card in OSX before Ubuntu would boot?)</li>
<li>Sound works, if you stick with Intel HD audio drivers (hda-intel). If it&#8217;s not working, use &#8220;alsamixer -V all&#8221; to go on an unmuting spree. Also, the microphone doesn&#8217;t work until you turn it on. Don&#8217;t be fooled; it&#8217;s not the mic volume that&#8217;s the issue, it&#8217;s that you need to toggle it so it says &#8220;CAPTURE&#8221; right below the mic volume.</li>
</ul>
<div>Let me know if you want to know anything I missed here, or if you have suggestions.</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/myhumblecorner.wordpress.com/325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/myhumblecorner.wordpress.com/325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=myhumblecorner.wordpress.com&#038;blog=392604&#038;post=325&#038;subd=myhumblecorner&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://myhumblecorner.wordpress.com/2011/05/31/gentoo-and-a-little-ubuntu-on-a-macbook-pro-53/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2a9e099aeea8ec195f3aa2d27cf66112?s=96&#38;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">javaJake</media:title>
		</media:content>
	</item>
	</channel>
</rss>
