<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CU8ARngyfyp7ImA9WhBaEUg.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393</id><updated>2013-05-21T13:30:47.697-03:00</updated><category term="barcamp" /><category term="rawhide" /><category term="beer" /><category term="cli" /><category term="cs_curriculum" /><category term="sloc" /><category term="amzon" /><category term="paintain" /><category term="dangerously_incompetent" /><category term="cheap" /><category term="toronto" /><category term="packagekit" /><category term="text_editor" /><category term="wtf" /><category term="upgrade" /><category term="poutine" /><category term="mutt" /><category term="yum" /><category term="git" /><category term="ip_address" /><category term="typo" /><category term="english_language" /><category term="tv" /><category term="fold" /><category term="mailing_list" /><category term="patch" /><category term="beverages" /><category term="xml" /><category term="SCM" /><category term="csv_file" /><category term="diy" /><category term="java" /><category term="theme" /><category term="rhn" /><category term="cocomo" /><category term="cats" /><category term="bash" /><category term="apartment" /><category term="pizza" /><category term="gems" /><category term="toilet" /><category term="wordpress" /><category term="apache_configuration" /><category term="linoleum" /><category term="pem" /><category term="holy_grail" /><category term="ui" /><category term="photo" /><category term="android" /><category term="barcamprdu" /><category term="cgi_program" /><category term="bdb" /><category term="opinion" /><category term="software" /><category term="flickr" /><category term="command_line_interface" /><category term="atom" /><category term="ssl" /><category term="reusable_software_components" /><category term="feedburner" /><category term="proguard" /><category term="cat" /><category term="dal" /><category term="boston" /><category term="widget" /><category term="cleaning" /><category term="svn" /><category term="ruby" /><category term="moving" /><category term="virtualization" /><category term="whitespace" /><category term="command_line" /><category term="proxy" /><category term="planet" /><category term="organization" /><category term="ebay" /><category term="perl" /><category term="config_files" /><category term="star_wars" /><category term="fedora" /><category term="conference" /><category term="graph" /><category term="curl" /><category term="dotted_quad" /><category term="gnome" /><category term="config files" /><category term="slcocount" /><category term="canada_day" /><category term="sewer" /><category term="shell" /><category term="plugin" /><category term="python" /><category term="metrics" /><category term="amazon" /><category term="cables" /><category term="internet" /><category term="debian" /><category term="cpsn" /><category term="aspn" /><category term="code" /><category term="yum-scm" /><category term="canada" /><category term="psn" /><category term="wuja" /><category term="alias" /><category term="linux" /><category term="meme" /><category term="tech" /><category term="cvs" /><category term="carpet" /><category term="usb" /><category term="php" /><category term="programming" /><category term="yahoo_pipes" /><category term="transformers" /><category term="party" /><category term="lisp" /><category term="tcb" /><category term="blog" /><category term="ascii" /><category term="red_hat" /><category term="config" /><category term="git_bisect" /><category term="life" /><category term="seo" /><category term="flood" /><category term="food" /><category term="unix" /><category term="subway_ride" /><category term="modularity" /><category term="neato unix command" /><category term="board_game" /><category term="vpn" /><category term="progress_bar" /><category term="bell" /><category term="netty" /><category term="grey_water" /><title>James Bowes :: repl</title><subtitle type="html">programming, electronics, beer, food.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.repl.ca/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>James Bowes</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>170</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/jamesbowes" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="jamesbowes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkANQ38_eyp7ImA9WhNWF00.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-8547273099983813783</id><published>2012-12-16T19:33:00.001-04:00</published><updated>2012-12-16T19:33:12.143-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-16T19:33:12.143-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>Squeezebox Server &amp; Fedora</title><content type="html">&lt;br /&gt;
To get squeezeboxserver working on Fedora, add the following to &lt;i&gt;/etc/sysconfig/iptables&lt;/i&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;# squeezebox
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3483 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 3483 -j ACCEPT
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/8547273099983813783/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/12/squeezebox-server-fedora.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8547273099983813783?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8547273099983813783?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/12/squeezebox-server-fedora.html" title="Squeezebox Server &amp; Fedora" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CEUFR3w4eCp7ImA9WhNWFUQ.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-7170575005070943202</id><published>2012-12-15T13:23:00.002-04:00</published><updated>2012-12-15T13:23:36.230-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-15T13:23:36.230-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><title>IRSSI Keys on a MacBook Pro</title><content type="html">At&amp;nbsp;&lt;a href="http://www.goinstant.com/"&gt;$newjob&lt;/a&gt;&amp;nbsp;I'm using a late 2011 MacBook Pro, so I've had to relearn some keys for &lt;a href="http://www.irssi.org/"&gt;IRSSI&lt;/a&gt;. The important ones to me are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;fn + up arrow / down arrow: for viewing the backscroll (page up / page down)&lt;/li&gt;
&lt;li&gt;Setting an option key to "+esc" under iTerm2 so I can hold down the key and use left and right arrows to move through open windows.&lt;/li&gt;
&lt;/ul&gt;
</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/7170575005070943202/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/12/irssi-keys-on-macbook-pro.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7170575005070943202?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7170575005070943202?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/12/irssi-keys-on-macbook-pro.html" title="IRSSI Keys on a MacBook Pro" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0ECQno5fip7ImA9WhNXFEg.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-7908490384151271428</id><published>2012-12-02T10:47:00.000-04:00</published><updated>2012-12-02T10:47:43.426-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-12-02T10:47:43.426-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="life" /><title>The End</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/NoBFhdeR9PE/0.jpg"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NoBFhdeR9PE&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/NoBFhdeR9PE&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
After nearly seven years, Friday marked my last day at &lt;a href="http://www.redhat.com/"&gt;Red Hat&lt;/a&gt;. I'm taking a week off to focus on growing my beard and &lt;a href="http://hopville.com/recipe/1651119"&gt;brewing&lt;/a&gt; &lt;a href="http://hopville.com/recipe/1664369"&gt;a&lt;/a&gt; &lt;a href="http://hopville.com/recipe/1664372"&gt;lot&lt;/a&gt;, before starting my next adventure.&lt;br /&gt;
&lt;br /&gt;
If you need to reach me, I'm still on teh internets.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/7908490384151271428/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/12/the-end.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7908490384151271428?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7908490384151271428?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/12/the-end.html" title="The End" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;Ak8MQnc_cCp7ImA9WhJREUQ.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-3674811895285476885</id><published>2012-07-13T14:01:00.001-03:00</published><updated>2012-07-13T14:01:23.948-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-07-13T14:01:23.948-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="curl" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="ssl" /><title>Give the absolute path for a client certificate with curl</title><content type="html">If you're expecting &lt;i&gt;curl --cert somefile.pem&lt;/i&gt;&amp;nbsp;to work, and you keep getting 403s in response, it might be because your curl is compiled against NSS, and that cert is being interpreted as an alias to an NSS DB entry. Use &lt;i&gt;curl --cert ./somefile.pem&lt;/i&gt;&amp;nbsp;instead. Fwiw, this is documented in the curl man page, but who looks there?&lt;br /&gt;
&lt;br /&gt;
...Or use wget instead.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/3674811895285476885/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/07/give-absolute-path-for-client.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3674811895285476885?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3674811895285476885?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/07/give-absolute-path-for-client.html" title="Give the absolute path for a client certificate with curl" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUANRXg9eSp7ImA9WhVWEko.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-728698286044296570</id><published>2012-04-24T10:23:00.000-03:00</published><updated>2012-04-24T10:23:14.661-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-24T10:23:14.661-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="netty" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="ssl" /><category scheme="http://www.blogger.com/atom/ns#" term="proxy" /><title>A CONNECT Client Implementation for Netty</title><content type="html">If you need an implementation of an &lt;a href="https://tools.ietf.org/html/rfc2616#section-9.9"&gt;HTTP CONNECT&lt;/a&gt; client to tunnel SSL (or anything else) through a proxy using &lt;a href="http://netty.io/"&gt;Netty&lt;/a&gt;, Chris Duryee and I recently landed a patch to do so in &lt;a href="https://fedorahosted.org/candlepin/wiki/thumbslug/Index"&gt;Thumbslug&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
By all means, make use of it!&lt;br /&gt;
&lt;br /&gt;
The original changeset is &lt;a href="http://git.fedorahosted.org/git/?p=thumbslug.git;a=commit;h=813697226726ababafa7fcd6eabcfd2c610f9779"&gt;here&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/728698286044296570/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/04/connect-client-implementation-for-netty.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/728698286044296570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/728698286044296570?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/04/connect-client-implementation-for-netty.html" title="A CONNECT Client Implementation for Netty" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0IFQnw8eCp7ImA9WhVRGE0.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-1992766058307259486</id><published>2012-03-26T19:38:00.001-03:00</published><updated>2012-03-26T19:38:33.270-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-26T19:38:33.270-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Camopic is now live!</title><content type="html">My new app, &lt;a href="http://bit.ly/camopic"&gt;Camopic&lt;/a&gt;, is now live on Google Play (only $0.99! cheap!). Camopic uses &lt;a href="http://en.wikipedia.org/wiki/Steganography"&gt;steganography&lt;/a&gt; to hide a picture inside a different jpeg image. You can then share that image with another Camopic user, who will be able to reveal and view your hidden image.&lt;br /&gt;
&lt;br /&gt;
This basically sums it up:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-h_3leoMS1Fk/T3DvkhkG5QI/AAAAAAAACjc/d3As85wTg80/s1600/3ogo3j.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-h_3leoMS1Fk/T3DvkhkG5QI/AAAAAAAACjc/d3As85wTg80/s1600/3ogo3j.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;a href="http://bit.ly/camopic"&gt;Google Play: Camopic $0.99&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/1992766058307259486/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/03/camopic-is-now-live.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/1992766058307259486?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/1992766058307259486?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/03/camopic-is-now-live.html" title="Camopic is now live!" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-h_3leoMS1Fk/T3DvkhkG5QI/AAAAAAAACjc/d3As85wTg80/s72-c/3ogo3j.jpg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ak4AQ3k-eCp7ImA9WhVREEs.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-8215608611479610084</id><published>2012-03-17T19:43:00.002-03:00</published><updated>2012-03-18T08:09:02.750-03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-18T08:09:02.750-03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Using Roboto on Fedora</title><content type="html">Using &lt;a href="http://www.android.com/"&gt;Android&lt;/a&gt;'s &lt;a href="http://en.wikipedia.org/wiki/Roboto"&gt;Roboto&lt;/a&gt; font is pretty easy on &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; (or any other Linux flavour). Just download the Roboto zip, open it up, copy the ttf files into your ~/.fonts dir, and refresh your font cache. From there, you can use the font in any program (though you may need to reload it first).&lt;br /&gt;
&lt;br /&gt;
Here are the steps:&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;wget https://dl-ssl.google.com/android/design/Roboto_Hinted_20111129.zip
unzip Roboto_Hinted_20111129.zip
mkdir ~/.fonts
mv Roboto_Hinted_20111129/*.ttf ~/.fonts
fc-cache
&lt;/code&gt;&lt;/pre&gt;
&lt;code&gt;
&lt;/code&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/8215608611479610084/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/03/using-roboto-on-fedora.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8215608611479610084?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8215608611479610084?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/03/using-roboto-on-fedora.html" title="Using Roboto on Fedora" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DE4AQ3o6fyp7ImA9WhRaGEs.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-9090289313103066491</id><published>2012-02-21T19:29:00.000-04:00</published><updated>2012-02-21T19:29:02.417-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-21T19:29:02.417-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><category scheme="http://www.blogger.com/atom/ns#" term="food" /><title>HOWTO Make Bacon</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/bowes/6893738855/" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img alt="Side View" height="133" src="http://farm8.staticflickr.com/7208/6893738855_3297afc767_m.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;
&lt;a href="http://flic.kr/p/bvbdot"&gt;Side View&lt;/a&gt;:&amp;nbsp;&lt;i&gt;The side of a slab of pork&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;belly is&amp;nbsp;&lt;/i&gt;&lt;span style="text-align: center;"&gt;&lt;i&gt;&amp;nbsp;quite obviously delicious&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;span style="text-align: center;"&gt;&lt;i&gt;bacon, only raw.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
A few weeks ago I acquired a slab of pork belly from a local &lt;a href="http://www3.ns.sympatico.ca/naturesscriptfarm/"&gt;Nova Scotian farmer&lt;/a&gt;, with the intention of making &lt;a href="http://en.wikipedia.org/wiki/Bacon"&gt;Bacon&lt;/a&gt; from scratch. Plenty of different cuts of meat preserved in different ways can be qualified as bacon; I decided on typical North American pork belly, salt cured and smoked.&lt;br /&gt;
&lt;br /&gt;
Making bacon is pretty easy, if a little time consuming. All you need is:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;A slab of pork belly&lt;/li&gt;
&lt;li&gt;Salt (table or kosher. sea salt is too coarse)&lt;/li&gt;
&lt;li&gt;A smoker&lt;/li&gt;
&lt;li&gt;Wood&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-IJcsRl4dzUE/T0Ql6p4NlOI/AAAAAAAACXM/1JRGM27N_-M/s1600/salting.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-IJcsRl4dzUE/T0Ql6p4NlOI/AAAAAAAACXM/1JRGM27N_-M/s200/salting.JPG" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: left;"&gt;&lt;a href="http://flic.kr/p/bvbiBK"&gt;Salt Curing&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
I&amp;nbsp;&lt;b&gt;salt cured&amp;nbsp;&lt;/b&gt;the pork belly by covering it in salt and storing it in a glass container for 5 days (actually two containers, the belly was so big I had to cut it to fit into the containers I had available). I coated the pork belly in salt on both sides, then rubbed it in with my hands. Each day after first draining any excess liquid out of the container I repeated the salting.&lt;br /&gt;
&lt;br /&gt;
The curing stage is a good time to add any additional seasonings to the bacon, like brown sugar or maple syrup. For my first batch of bacon I decided to pass.&lt;br /&gt;
&lt;br /&gt;
After the bacon had cured for 5 days (and when I had enough time in the day to watch the smoker), I &lt;b&gt;smoked&lt;/b&gt; the bacon. I used my home-made &lt;a href="http://www.naffziger.net/blog/2008/07/05/the-alton-brown-flower-pot-smoker/"&gt;flower pot smoker&lt;/a&gt;&amp;nbsp;and cherry wood chips that were soaked in water overnight. The bacon stayed on the smoker for about 8 hours, at 200°F. Since I'd be frying the bacon before eating it, I wasn't concerned about under-cooking it.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5G3i5suglk8/T0QmLoqqcUI/AAAAAAAACXU/E2HWpX3evEU/s1600/smoker.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-5G3i5suglk8/T0QmLoqqcUI/AAAAAAAACXU/E2HWpX3evEU/s200/smoker.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: left;"&gt;&lt;a href="http://flic.kr/p/bvbtve"&gt;Smoking the bacon&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
After the bacon was smoked, I put it in the fridge for about half an hour to let the meat rest, and to let it firm up before cutting. I cut the bacon with my sharpest cutting knife. A deli slicer would have been nice here. And that's it! The pork belly was now bacon, and ready to be fried and eaten.&lt;br /&gt;
&lt;br /&gt;
It was a good first attempt; the bacon is tender and has a great smoky flavour, but is a bit too salty. The salt and smoke flavour does make it great as an ingredient to other dishes though, like omeletts and soup. Next time I'll try to reduce the salt content, probably by wiping off any excess salt each day, when I drain off the juices.&lt;br /&gt;
&lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://farm8.staticflickr.com/7199/6893808881_7de9c93422_m.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="133" src="http://farm8.staticflickr.com/7199/6893808881_7de9c93422_m.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: left;"&gt;&lt;a href="http://flic.kr/p/bvbzcP"&gt;Frying it up!&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
If you'd like to see more, you can view the complete photo set &lt;a href="http://www.flickr.com/photos/bowes/sets/72157629384312115/"&gt;on flickr&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/9090289313103066491/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/02/howto-make-bacon.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/9090289313103066491?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/9090289313103066491?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/02/howto-make-bacon.html" title="HOWTO Make Bacon" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-IJcsRl4dzUE/T0Ql6p4NlOI/AAAAAAAACXM/1JRGM27N_-M/s72-c/salting.JPG" height="72" width="72" /><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;CEAFRXozeCp7ImA9WhRaFU8.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-5104285639646468713</id><published>2012-02-17T19:51:00.002-04:00</published><updated>2012-02-17T19:51:54.480-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-17T19:51:54.480-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><title>Glyphicons Styled Stack Overflow Icon</title><content type="html">&amp;nbsp;Here is a &lt;a href="http://stackoverflow.com/"&gt;Stack Overflow&lt;/a&gt;&amp;nbsp;icon in the style of&amp;nbsp;&lt;a href="http://www.glyphicons.com/"&gt;Glyphicons&lt;/a&gt;&amp;nbsp;I did for my 'about me' sidebar section:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;img border="0" src="http://4.bp.blogspot.com/-L97ZcszhfM8/Tz7kl0q933I/AAAAAAAACVk/s57eKDGBSF0/s1600/glyph_stack_overflow.png" /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Feel free to use it however you want.&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/5104285639646468713/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/02/glyphicons-styled-stack-overflow-icon.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5104285639646468713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5104285639646468713?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/02/glyphicons-styled-stack-overflow-icon.html" title="Glyphicons Styled Stack Overflow Icon" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-L97ZcszhfM8/Tz7kl0q933I/AAAAAAAACVk/s57eKDGBSF0/s72-c/glyph_stack_overflow.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUcHRX8-eCp7ImA9WhRaFEk.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-5343735440960757571</id><published>2012-02-16T21:43:00.000-04:00</published><updated>2012-02-16T21:43:54.150-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-16T21:43:54.150-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Using 960.gs, Haml, Sass, and Compass on Blogger</title><content type="html">I tried to see how many cool toys I could use to create my own &lt;a href="http://www.blogger.com/"&gt;blogger&lt;/a&gt; template. So far I have:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://960.gs/"&gt;960 Grid System&lt;/a&gt;&amp;nbsp;for a nice 2 column layout.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://haml-lang.com/"&gt;Haml&lt;/a&gt;&amp;nbsp;for the unstyled template.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sass-lang.com/"&gt;Sass&lt;/a&gt;&amp;nbsp;for style.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://compass-style.org/"&gt;Compass&lt;/a&gt;&amp;nbsp;and &lt;a href="http://rake.rubyforge.org/"&gt;Rake&lt;/a&gt;&amp;nbsp;to tie it all together.&lt;/li&gt;
&lt;/ul&gt;
You can find the result on github, &lt;a href="https://github.com/jbowes/repl-960-haml-blogger"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Any readers who have noticed a similarity in chosen technology to those used by&amp;nbsp;&lt;a href="http://katello.org/"&gt;Katello&lt;/a&gt;&amp;nbsp;get bonus points!</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/5343735440960757571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/02/using-960gs-haml-sass-and-compass-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5343735440960757571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5343735440960757571?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/02/using-960gs-haml-sass-and-compass-on.html" title="Using 960.gs, Haml, Sass, and Compass on Blogger" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkMNQ30zeip7ImA9WhRaEEo.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-6923331710549555475</id><published>2012-02-12T16:28:00.000-04:00</published><updated>2012-02-12T16:28:12.382-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-12T16:28:12.382-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="xml" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="ui" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Retrofitting drop shadows into existing Android layouts</title><content type="html">I had some UI elements in an &lt;a href="https://market.android.com/developer?pub=James+Bowes"&gt;Android application I&amp;#39;m working on&lt;/a&gt; that felt as if they should be above (pushing out of the screen, rather than to the top of it) the elements that followed them in the UI. A good way to indicate this is with a drop shadow, similar to those on Android title bars or &lt;a href="http://developer.android.com/design/patterns/actionbar.html"&gt;Action Bars&lt;/a&gt;. An &lt;a href="http://www.anotherandroidblog.com/2011/06/29/drop-shadow-linearlayout/"&gt;existing method&lt;/a&gt; didn&amp;#39;t work for me, as my UI is relying heavily on weights to keep proper size ratios between the elements I wanted to add a drop shadow to, and the element they would be casting a shadow on.&lt;br&gt;
&lt;a href="http://blog.repl.ca/2012/02/retrofitting-drop-shadows-into-existing.html#more"&gt;Read more »&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/6923331710549555475/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/02/retrofitting-drop-shadows-into-existing.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/6923331710549555475?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/6923331710549555475?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/02/retrofitting-drop-shadows-into-existing.html" title="Retrofitting drop shadows into existing Android layouts" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEABR3k9fip7ImA9WhRUEUU.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-628882891659683715</id><published>2012-01-21T18:59:00.000-04:00</published><updated>2012-01-21T18:59:16.766-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T18:59:16.766-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="usb" /><title>Micro USB for Power Everywhere</title><content type="html">One of the reasons I'm very excited for &amp;nbsp;&lt;a href="http://www.raspberrypi.org/"&gt;Rasberry Pi&lt;/a&gt;&amp;nbsp;is that it uses &lt;a href="http://en.wikipedia.org/wiki/USB#Mini_and_Micro_connectors"&gt;micro USB&lt;/a&gt; for power. This is also the standard may cell phone manufacturers are &lt;a href="http://news.bbc.co.uk/2/hi/technology/7894763.stm?lss"&gt;settling on&lt;/a&gt; for charging. I would love to see more every day devices use micro USB for charging and for power. Granted, not all devices can run off the 100mA from USB 2.0 (or charge at a reasonable rate), but I can eliminate just one more of those odd coaxial chargers, I'd be a happy fellow.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/628882891659683715/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2012/01/micro-usb-for-power-everywhere.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/628882891659683715?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/628882891659683715?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2012/01/micro-usb-for-power-everywhere.html" title="Micro USB for Power Everywhere" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;DkAGSH87fyp7ImA9WhRQE0g.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-4287707574002833997</id><published>2011-12-06T18:57:00.001-04:00</published><updated>2011-12-08T10:32:09.107-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-08T10:32:09.107-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="config" /><category scheme="http://www.blogger.com/atom/ns#" term="gnome" /><title>Essential Gnome Shell Extensions For Laggards</title><content type="html">&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/6/6f/Terminal-dec-vt100.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="155" src="http://upload.wikimedia.org/wikipedia/commons/6/6f/Terminal-dec-vt100.jpg" width="200"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;i&gt;My ideal workstation&lt;/i&gt;&lt;br&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Image by &lt;a href="http://commons.wikimedia.org/wiki/User:ClickRick"&gt;ClickPick&lt;/a&gt;, used under the &lt;/span&gt;&lt;/i&gt;&lt;i style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;
&lt;div style="display: inline !important; text-align: left;"&gt;
&lt;i&gt;&lt;i style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;i style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;Creative Commons&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;br&gt;
&lt;i&gt;&lt;i style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;i style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;&lt;a href="http://creativecommons.org/licenses/by-sa/3.0/deed.en"&gt;Attribution-Share Alike 3.0 Unported license.&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="text-align: left;"&gt;
&lt;i&gt;&lt;i style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: xx-small;"&gt;
&lt;/span&gt;&lt;/i&gt;&lt;/i&gt;&lt;/div&gt;
&lt;i&gt;
&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
Gnome 3 introduced a lot of fundamental changes to how you interact with your computer. I don&amp;#39;t want to hopelessly cling to the past, bemoaning the loss of my &lt;a href="http://en.wikipedia.org/wiki/Sawfish_(window_manager)"&gt;Lisp based window manager&lt;/a&gt; and yearning for the days when I could debate the merits of pure applets vs notification area icons, so I&amp;#39;ve moved on to gnome-shell.&lt;br&gt;
&lt;br&gt;
That said, I&amp;#39;ve been using a few tweaks to bring Gnome 3 and gnome-shell closer to what I&amp;#39;m used to. Consider them training wheels; they can be disabled over time, easing the transition.&lt;br&gt;
&lt;a href="http://blog.repl.ca/2011/12/essential-gnome-shell-extensions-for.html#more"&gt;Read more »&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/4287707574002833997/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/12/essential-gnome-shell-extensions-for.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/4287707574002833997?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/4287707574002833997?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/12/essential-gnome-shell-extensions-for.html" title="Essential Gnome Shell Extensions For Laggards" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;DkMNSHk6fSp7ImA9WhRRGU8.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-8817957764568781221</id><published>2011-12-03T10:52:00.001-04:00</published><updated>2011-12-03T11:01:39.715-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-03T11:01:39.715-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="proguard" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Android ProGuard and Git Tip</title><content type="html">If you&amp;#39;re obfuscating your &lt;a href="http://android.com/"&gt;Android&lt;/a&gt; applications using &lt;a href="http://proguard.sourceforge.net/"&gt;ProGuard&lt;/a&gt;, make sure to keep the &lt;i&gt;proguard/&lt;/i&gt; directory at the root of your Android project under revision control. This may seem contrary to what you&amp;#39;d feel like doing, as the files are autogenerated, but it will help if you ever need to debug a stack trace from your published application.&lt;div&gt;
&lt;/div&gt;&lt;a href="http://blog.repl.ca/2011/12/android-proguard-and-git-tip.html#more"&gt;Read more »&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/8817957764568781221/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/12/android-proguard-and-git-tip.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8817957764568781221?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8817957764568781221?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/12/android-proguard-and-git-tip.html" title="Android ProGuard and Git Tip" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0QHSX46cCp7ImA9WhRQEEQ.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-3623583310547731254</id><published>2011-12-02T21:55:00.001-04:00</published><updated>2011-12-05T09:22:18.018-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-05T09:22:18.018-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="config" /><title>My .gitconfig - 2011 Edition</title><content type="html">It&amp;#39;s been just shy of five years since I &lt;a href="http://blog.repl.ca/2006/12/my-gitconfig.html"&gt;first blogged about my .gitconfig file&lt;/a&gt;, so I figured now would be a good time to revisit it. If you&amp;#39;re not already aware, you can set git configuration values in a .gitconfig file in your home directory, and have them apply to all &lt;a href="http://git-scm.org/"&gt;git&lt;/a&gt; repositories you work on. This is particularly useful for aliases and to set your email address.&lt;br&gt;
&lt;br&gt;
My current .gitconfig:&lt;br&gt;
&lt;a href="http://blog.repl.ca/2011/12/my-gitconfig-2011-edition.html#more"&gt;Read more »&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/3623583310547731254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/12/my-gitconfig-2011-edition.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3623583310547731254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3623583310547731254?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/12/my-gitconfig-2011-edition.html" title="My .gitconfig - 2011 Edition" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;D0AGR307eCp7ImA9WhRRF00.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-2846939657346537624</id><published>2011-11-30T22:06:00.001-04:00</published><updated>2011-11-30T22:15:26.300-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T22:15:26.300-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="virtualization" /><title>BTRFS and KVM</title><content type="html">If you're like me, you've spend the last year wondering why your KVM based virtualization is horribly slow when doing IO. You've tried twiddling every available option in your BIOS, you've mucked about with hdparm &amp;nbsp;and libvirt/qemu settings, and you've run more timed installs of &lt;a href="http://www.redhat.com/rhel/"&gt;RHEL 5&lt;/a&gt; than you care to admit.&lt;br /&gt;
&lt;br /&gt;
If you're also like me, you tried using ext4 instead of BTRFS to store your guest images today, and found that this resolved your issue.&lt;br /&gt;
&lt;br /&gt;
The relevant bz appears to be &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=689127"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The lesson I learned today is to blame experimental or newer features before anything else (though its doubtful I'll remember this next time).</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/2846939657346537624/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/btrfs-and-kvm.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/2846939657346537624?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/2846939657346537624?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/btrfs-and-kvm.html" title="BTRFS and KVM" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>4</thr:total></entry><entry gd:etag="W/&quot;AkUESHo8cCp7ImA9WhRRFEU.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-7993544070705622211</id><published>2011-11-28T09:47:00.001-04:00</published><updated>2011-11-28T09:50:09.478-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T09:50:09.478-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="vpn" /><category scheme="http://www.blogger.com/atom/ns#" term="gnome" /><title>Importing VPN Settings in GNOME 3</title><content type="html">I've noticed after upgrading my workstation to Fedora 16 that GNOME 3's default NetworkManager UI doesn't expose the old UI's import option for VPN settings. I have my old OpenVPN settings file on hand, so I'd rather not type it out again.&lt;br /&gt;
&lt;br /&gt;
Turns out you can still access the old UI and its convenient import button by running &lt;i&gt;nm-connection-editor.&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/7993544070705622211/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/importing-vpn-settings-in-gnome-3.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7993544070705622211?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/7993544070705622211?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/importing-vpn-settings-in-gnome-3.html" title="Importing VPN Settings in GNOME 3" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0EDQ3syfip7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-3388046855740263243</id><published>2011-11-25T21:01:00.001-04:00</published><updated>2011-11-28T17:27:52.596-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:52.596-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="cpsn" /><category scheme="http://www.blogger.com/atom/ns#" term="psn" /><title>CPSN v0.8.0</title><content type="html">This is just a quick update to CPSN, fixing detection of stale cookies. It will also prompt you for a username and password if you forget to put one in the settings file (or don't want to save your password on disk).&lt;br /&gt;
&lt;br /&gt;
Install it with gem install --user cpsn&lt;br /&gt;
Check the included README for details on configuration.&lt;br /&gt;
&lt;br /&gt;
Git: &lt;a href="https://github.com/jbowes/cpsn"&gt;https://github.com/jbowes/cpsn&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; Using CPSN probably violates any number of Terms of Service, etc. Use at your own risk.&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/3388046855740263243/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/cpsn-v080.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3388046855740263243?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3388046855740263243?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/cpsn-v080.html" title="CPSN v0.8.0" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQn84fSp7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-9076677992629103185</id><published>2011-11-24T12:49:00.001-04:00</published><updated>2011-11-28T17:27:53.135-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:53.135-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="ssl" /><category scheme="http://www.blogger.com/atom/ns#" term="pem" /><title>A PEM Backed Keystore for Java SSL</title><content type="html">For &lt;a href="https://fedorahosted.org/candlepin/wiki/thumbslug/Index"&gt;Thumbslug&lt;/a&gt;, we needed to open a number of &lt;a href="http://en.wikipedia.org/wiki/SSL"&gt;SSL&lt;/a&gt; connections to the same server, each with its own &lt;a href="http://en.wikipedia.org/wiki/X.509"&gt;X.509&lt;/a&gt; client certificate. Thumbslug grabs the certificates from &lt;a href="http://candlepinproject.org/"&gt;Candlepin&lt;/a&gt;, which stores them in &lt;a href="http://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions"&gt;PEM&lt;/a&gt;&amp;nbsp;format. Rather than teach Candlepin to also store these certificates in a different format, or to load them first into a format that Java deals with nativley (like &lt;a href="http://en.wikipedia.org/wiki/PKCS12"&gt;PKCS #12&lt;/a&gt;), I figured it would be best to create an SSLSession backed directly by an X509Certificate and PrivateKey loaded from the PEM file.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I wasn't able to find any other examples of a PEM backed Java KeyStore, so &lt;a href="http://git.fedorahosted.org/git?p=thumbslug.git;a=blob_plain;f=src/main/java/org/candlepin/thumbslug/ssl/PEMx509KeyManager.java;hb=HEAD"&gt;here is mine&lt;/a&gt; (&lt;a href="https://gist.github.com/1391823"&gt;backup&lt;/a&gt;), and the &lt;a href="http://git.fedorahosted.org/git?p=thumbslug.git;a=blob;f=src/main/java/org/candlepin/thumbslug/ssl/SslContextFactory.java;h=b8791e0b4910c2f1adf347015df5110b2f6ac9bb;hb=HEAD#l102"&gt;code that uses it&lt;/a&gt; (&lt;a href="https://gist.github.com/1391824"&gt;backup&lt;/a&gt;). Since PEM is still widely used (by OpenSSL, for example), hopefully others can make use of this.&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/9076677992629103185/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/pem-backed-keystore-for-java-ssl.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/9076677992629103185?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/9076677992629103185?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/pem-backed-keystore-for-java-ssl.html" title="A PEM Backed Keystore for Java SSL" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQn4-eip7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-8648231412153894999</id><published>2011-11-21T18:46:00.001-04:00</published><updated>2011-11-28T17:27:53.052-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:53.052-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>CPSN v0.7.0</title><content type="html">I've finally gotten around to fixing up cpsn to work against Sony's latest website version. CPSN is a cli app that lets you check if your PlayStation Friends are online, and what games they're playing so you can, for example, see if anybody is playing Call of Duty without leaving the comfort of your shell.&lt;br /&gt;
&lt;br /&gt;
Install it with gem install --user cpsn&lt;br /&gt;
Check the included README for details on configuration.&lt;br /&gt;
&lt;br /&gt;
Git:&amp;nbsp;&lt;a href="https://github.com/jbowes/cpsn"&gt;https://github.com/jbowes/cpsn&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Note: &lt;/b&gt;Using CPSN probably violates any number of Terms of Service, etc. Use at your own risk.&lt;/i&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/8648231412153894999/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/cpsn-v070.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8648231412153894999?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/8648231412153894999?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/cpsn-v070.html" title="CPSN v0.7.0" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQ3o9fCp7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-1923555051015346949</id><published>2011-11-21T14:05:00.001-04:00</published><updated>2011-11-28T17:27:52.464-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:52.464-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>New blog address</title><content type="html">I've moved my blog here, to &lt;a href="http://blog.repl.ca/"&gt;blog.repl.ca&lt;/a&gt;. If the move ends up spamming any blog&amp;nbsp;syndicators&amp;nbsp;/&amp;nbsp;aggregators, I&amp;nbsp;apologize.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/1923555051015346949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/new-blog-address.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/1923555051015346949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/1923555051015346949?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/new-blog-address.html" title="New blog address" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQ3k-eSp7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-5261287764464490096</id><published>2011-11-21T10:50:00.001-04:00</published><updated>2011-11-28T17:27:52.751-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:52.751-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>HOWTO Make a USB Y Cable for Host Mode</title><content type="html">&lt;br /&gt;
Many smartphones or tablets support USB host mode (or On The Go mode) with an adapter. Unfortunately, a lot of those devices don't supply power to their client USB devices; you can't just plug a host mode adapter into an HP TouchPad, for example, then plug a keyboard into the host mode adapter, and expect everything to work.&lt;br /&gt;
&lt;br /&gt;
I put up a video on youtube explaining how to build and use a USB Y cable to inject power to the client devices. If you'd like, you can &lt;a href="http://www.youtube.com/watch?v=p10LgZFIawo"&gt;watch it here&lt;/a&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/5261287764464490096/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/11/howto-make-usb-y-cable-for-host-mode.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5261287764464490096?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5261287764464490096?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/11/howto-make-usb-y-cable-for-host-mode.html" title="HOWTO Make a USB Y Cable for Host Mode" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;AkYBR3s-fSp7ImA9WhRTFUU.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-3015958729528498064</id><published>2011-07-05T09:01:00.000-03:00</published><updated>2011-11-06T10:02:36.555-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T10:02:36.555-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>An Access Logger for Netty and HTTP</title><content type="html">We needed to do &lt;a href="http://en.wikipedia.org/wiki/Common_Log_Format" title="Common Log Format"&gt;CLF&lt;/a&gt; style HTTP access logging for &lt;a href="https://fedorahosted.org/candlepin/" title="Candlepin"&gt;Thumbslug&lt;/a&gt;, which is implemented in Java + &lt;a href="http://www.jboss.org/netty" title="Netty"&gt;Netty&lt;/a&gt;. I couldn't find any code to do this with a quick google search, so I wrote my own. If you need such a thing, try &lt;a href="http://git.fedorahosted.org/git/?p=thumbslug.git;a=blob;f=src/main/java/org/candlepin/thumbslug/HttpRequestLogger.java"&gt;here&lt;/a&gt; or &lt;a href="https://gist.github.com/1065230" title="Github gist"&gt;here (backup)&lt;/a&gt;.</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/3015958729528498064/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2011/07/access-logger-for-netty-and-http.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3015958729528498064?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/3015958729528498064?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2011/07/access-logger-for-netty-and-http.html" title="An Access Logger for Netty and HTTP" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0EDQ3k4fCp7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-5166175058242389830</id><published>2010-10-13T06:18:00.000-03:00</published><updated>2011-11-28T17:27:52.734-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:52.734-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title>Measuring Network Speeds with Netcat and Dd</title><content type="html">I've seen a few posts on the web about testing your network speeds with netcat, but they all seem to not work with recent versions of netcat.&lt;br/&gt;&lt;br/&gt;On one machine, run:&lt;br/&gt;&lt;code&gt;&lt;br/&gt;nc -v -l 2222 &amp;gt; /dev/null&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;(Make sure you're not blocking connections to 2222!)&lt;br/&gt;&lt;br/&gt;On a second machine, run:&lt;br/&gt;&lt;code&gt;&lt;br/&gt;dd if=/dev/zero bs=1024K count=512 | nc -v $IP_OF_FIRST_MACHINE 2222&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;dd will give you your speed:&lt;br/&gt;&lt;code&gt;&lt;br/&gt;536870912 bytes (537 MB) copied, 4.87526 s, 117 MB/s&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;Yay, gigabit!&lt;br/&gt;&lt;br/&gt;&lt;em&gt;&lt;br/&gt;ymmv, test with /dev/zero at your own risk. Speak with your NOC before starting any network infrastructure changes.&lt;br/&gt;&lt;/em&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/5166175058242389830/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2010/10/measuring-network-speeds-with-netcat.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5166175058242389830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5166175058242389830?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2010/10/measuring-network-speeds-with-netcat.html" title="Measuring Network Speeds with Netcat and Dd" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>6</thr:total></entry><entry gd:etag="W/&quot;D0EDQ3kycSp7ImA9WhRRFUw.&quot;"><id>tag:blogger.com,1999:blog-1832354651050279393.post-5552425927244684731</id><published>2009-06-23T03:29:00.000-03:00</published><updated>2011-11-28T17:27:52.799-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-28T17:27:52.799-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tech" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="SCM" /><title>Converting SVN Commits to Git Patches</title><content type="html">In case you find yourself in need of a way to turn an svn revision into a git patch that can be applied with 'git am', keeping the commit message and authorship information, here's a script I used recently:&lt;br/&gt;&lt;pre&gt;#!/usr/bin/python&lt;br/&gt;#&lt;br/&gt;# svnrev2git.py - Convert an SVN revsion to a Git patch.&lt;br/&gt;#&lt;br/&gt;# Author: James Bowes &amp;lt;jbowes@repl.ca&amp;gt;&lt;br/&gt;#&lt;br/&gt;# Usage:&lt;br/&gt;#   $&amp;gt; cd my-svn-repo&lt;br/&gt;#   $&amp;gt; python svnrev2git.py [AUTHORS_FILE] [REV_RANGE | REVSION [REVISION..]]&lt;br/&gt;#&lt;br/&gt;#   AUTHORS_FILE - a CSV of  svn username, full name, email&lt;br/&gt;#   REV_RANGE - an svn revision range, like 100-700&lt;br/&gt;#   REVISION - a single svn revision&lt;br/&gt;#&lt;br/&gt;#   You may specify either a revision range, or a series of individual&lt;br/&gt;#   svn revisions&lt;br/&gt;#&lt;br/&gt;# Output:&lt;br/&gt;#   A series of git style patch files, one per svn revision, which can then be&lt;br/&gt;#   applied with 'git am'&lt;br/&gt;#&lt;br/&gt;# Why use this instead of 'git svn'?&lt;br/&gt;#   I had done a large repo conversion via git svn where we wanted no downtime&lt;br/&gt;#   for the switchover. After removing the git svn specific info from our git&lt;br/&gt;#   commits, I used this tool to bring in commits from svn, keeping svn and git&lt;br/&gt;#   in sync, until we were ready to switch.&lt;br/&gt;&lt;br/&gt;import sys&lt;br/&gt;import commands&lt;br/&gt;&lt;br/&gt;def svnlog_to_gitlog(authors, svnlog):&lt;br/&gt;&lt;br/&gt;    lines = svnlog.split("\n")&lt;br/&gt;    lines = lines[1:-1]&lt;br/&gt;&lt;br/&gt;    metainfo = lines[0].split(" | ")&lt;br/&gt;    subject = lines[2]&lt;br/&gt;    description = lines[3:]&lt;br/&gt;&lt;br/&gt;    author = metainfo[1]&lt;br/&gt;&lt;br/&gt;    day = metainfo[2].split("(")[1][:-1]&lt;br/&gt;    time = metainfo[2].split(" ")[1]&lt;br/&gt;    offset = metainfo[2].split(" ")[2]&lt;br/&gt;&lt;br/&gt;    gitlog = []&lt;br/&gt;    gitlog += ["From: %s &amp;lt;%s&amp;gt;" % authors[author]]&lt;br/&gt;    gitlog += ["Date: %s %s %s" % (day, time, offset)]&lt;br/&gt;    gitlog += ["Subject: [PATCH] %s" % subject]&lt;br/&gt;    gitlog += [""]&lt;br/&gt;    gitlog += description&lt;br/&gt;    gitlog += [""]&lt;br/&gt;&lt;br/&gt;    return '\n'.join(gitlog)&lt;br/&gt;&lt;br/&gt;def svndiff_to_gitdiff(svndiff):&lt;br/&gt;    lines = svndiff.split("\n")&lt;br/&gt;&lt;br/&gt;    gitdiff = []&lt;br/&gt;    for line in lines:&lt;br/&gt;        if line.startswith("--- "):&lt;br/&gt;            gitdiff.append("--- a/" + line[4:])&lt;br/&gt;        elif line.startswith("+++ "):&lt;br/&gt;            gitdiff.append("+++ b/" + line[4:])&lt;br/&gt;        else:&lt;br/&gt;            gitdiff.append(line)&lt;br/&gt;&lt;br/&gt;    return '\n'.join(gitdiff)&lt;br/&gt;&lt;br/&gt;def make_patch(authors, rev):&lt;br/&gt;    out = commands.getoutput("svn log -c %s ." % rev)&lt;br/&gt;&lt;br/&gt;    if len(out.split("\n")) &amp;lt; 2:&lt;br/&gt;        print "skipping r%s" % rev&lt;br/&gt;        return&lt;br/&gt;&lt;br/&gt;    patch = open(rev + ".patch", 'w')&lt;br/&gt;    patch.write(svnlog_to_gitlog(authors, out))&lt;br/&gt;    patch.write("---\n\n")&lt;br/&gt;&lt;br/&gt;    out = commands.getoutput("svn diff -c %s ." % rev)&lt;br/&gt;    patch.write(svndiff_to_gitdiff(out))&lt;br/&gt;&lt;br/&gt;    patch.write("\n---\n")&lt;br/&gt;    patch.write("svnrev2git.py\n")&lt;br/&gt;&lt;br/&gt;    patch.close()&lt;br/&gt;    print "wrote %s.patch" % rev&lt;br/&gt;&lt;br/&gt;def main(args):&lt;br/&gt;    author_file = open(args[0])&lt;br/&gt;    authors = {}&lt;br/&gt;&lt;br/&gt;    print "loading authors"&lt;br/&gt;    for line in author_file.readlines():&lt;br/&gt;        parts = line.strip().split(", ")&lt;br/&gt;        authors[parts[0]] = (parts[1], parts[2])&lt;br/&gt;&lt;br/&gt;    author_file.close()&lt;br/&gt;&lt;br/&gt;    revs = args[1:]&lt;br/&gt;&lt;br/&gt;    if len(revs) == 1 and '-' in revs[0]:&lt;br/&gt;        start, end = revs[0].split('-')&lt;br/&gt;        start = int(start)&lt;br/&gt;        end = int(end)&lt;br/&gt;        revs = [str(x) for x in range(start, end + 1)]&lt;br/&gt;&lt;br/&gt;    for rev in revs:&lt;br/&gt;        make_patch(authors, rev)&lt;br/&gt;&lt;br/&gt;if __name__ == "__main__":&lt;br/&gt;    main(sys.argv[1:])&lt;/pre&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.repl.ca/feeds/5552425927244684731/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.repl.ca/2009/06/converting-svn-commits-to-git-patches.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5552425927244684731?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1832354651050279393/posts/default/5552425927244684731?v=2" /><link rel="alternate" type="text/html" href="http://blog.repl.ca/2009/06/converting-svn-commits-to-git-patches.html" title="Converting SVN Commits to Git Patches" /><author><name>James Bowes</name><uri>https://plus.google.com/107816862758813332266</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-pGykQL-aixY/AAAAAAAAAAI/AAAAAAAAD80/Svx9ucT72jE/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry></feed>
