<?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>IO BLOG</title>
	<atom:link href="http://1bnr.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://1bnr.wordpress.com</link>
	<description>What happens between the i and the o</description>
	<lastBuildDate>Wed, 11 Jan 2012 13:25:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='1bnr.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/a086524a794cd4da2cb76b0b121b0411?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>IO BLOG</title>
		<link>http://1bnr.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://1bnr.wordpress.com/osd.xml" title="IO BLOG" />
	<atom:link rel='hub' href='http://1bnr.wordpress.com/?pushpress=hub'/>
		<item>
		<title>fedora 16</title>
		<link>http://1bnr.wordpress.com/2011/10/09/fedora-16/</link>
		<comments>http://1bnr.wordpress.com/2011/10/09/fedora-16/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 13:26:31 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=748</guid>
		<description><![CDATA[This weekend I made the switch from from Ubuntu 11.04 to Fedora 16 beta. After the last upgrade, Ubuntu started acting funny, everything from shutdown/reboot issues to glitchy UI with the new Unity desktop. I did like some of what Unity was doing, but I think it still needs a lot of work  before it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=748&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This weekend I made the switch from from Ubuntu 11.04 to Fedora 16 beta. After the last upgrade, Ubuntu started acting funny, everything from shutdown/reboot issues to glitchy UI with the new Unity desktop. I did like some of what Unity was doing, but I think it still needs a lot of work  before it is really ready; both in terms of the interface design and stability. Much of Ubuntu, like most distributions is the culmination of the efforts of the entire OS community, but the stuff that they layer on top they have to maintain themselves and I think Unity was such a big project that its release came at the cost of some of the normal &#8220;house keeping&#8221; tasks of running a linux distribution, and this may have caused some of the issues I and others have complained about (or it could simply be that to much had changed to smoothly upgrade from 10.10). I had been leaning towards giving the 11.10 release a chance to correct some of the shortcoming of the previous one but since I am taking a college course that emphasizes rpm distros, I thought it wouldn&#8217;t be a bad idea to give Fedora another go, besides, the brief look I gave gnome3 left me wanting more.</p>
<p>The computer I am using is  an Asus 1215t, with no optical drive and a 12&#8243; screen  it is what some have termed &#8220;notbooks&#8221;, as in bigger than a netbook, but not really a full sized notebook. This model has the AMD neo low power cpu, integrated ATI graphic, typicall intel HD audio, and most notable a dreaded Broadcom 4313 wireless b/g/n. I think it bears mentioning that I have had little trouble with broadcom wireless in the past, though this may have just been luck. With Ubuntu wireless wouldn&#8217;t work until you otherwise connect to the internet and use the Proprietary drivers applet to install the correct driver.</p>
<p>Initially I installed Fedora 15, not wanting to use the beta, and also not wanting to wait the few weeks until it is finalized and  shipped, but I was not able to get the wireless card to work no matter what I tried. For this wireless card there are several drivers available: the old b43 driver that needs proprietary firmware (typically this is what Ubuntu uses), the newer broadcom-sta (aka wl) driver from Broadcom, the fallback ndiswrapper wich just wraps around an appropriate windows driver, and a newcomer the brcm80211 which is open source but still very much in the experimental stage. I tried everything, even compiling the wl driver from the source provide from Broadcom even though there are binaries in the Fedora repos. I never did get the brcm80211 driver to compile, but considering the shape it is currently in that is not a big surprise. It is likely that ndiswrapper would have worked had I not been using a 64bit distro, and the only available drivers are 32bit. I had just about given up hope when I decided to try the beta before running back to Ubuntu. The Fedora 16 beta didn&#8217;t have the wbroadcom-sta driver in the repositories, only the b43, which didn&#8217;t work. However, after installing the kernel-devel package I was able to compile the source provide by broadcom and it works perfectly.</p>
<p>I have only had a few days with the new gnome3 desktop, but so far I like it, even more than Unity. It is a little different, and takes getting used to but I think in the end it is an improvement over the old classic gnome interface. Some have complained that nothing in the GnomeShell (the default graphical environment that ships with gnome3) can be customized like in classic gnome, but gnome3 is just the framework, in time no doubt people will write their own graphic shells that use gnome3, or applications that allow the tweaking of elements within an installed shell. Since most of the shell is written in JavaScript (with a couple additional libraries) anyone with a little programming knowledge should be able to play with the interface, or write their own.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/748/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/748/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/748/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=748&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2011/10/09/fedora-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>found findbugs</title>
		<link>http://1bnr.wordpress.com/2011/07/19/found-findbugs/</link>
		<comments>http://1bnr.wordpress.com/2011/07/19/found-findbugs/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 12:21:48 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=746</guid>
		<description><![CDATA[I recently found findbugs, a static analysis tool for Java. I ran it on mdb2mysql and was surprised to only find one &#8220;serious&#8221; bug, a possible null pointer deference. I think it was actually a false positive since the value in question was checked against being null, but switching the code block to a try [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=746&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently found <a href="http://findbugs.sourceforge.net/">findbugs</a>, a static analysis tool for Java. I ran it on mdb2mysql and was surprised to only find one &#8220;serious&#8221; bug, a possible null pointer deference. I think it was actually a false positive since the value in question was checked against being null, but switching the code block to a try catch is the more stylistically correct way to handle it. Other than that there were a few performance issues with the way I put the sql statements together; I should have known better than to just concatenate strings without using StringBuffer explicitly. The beauty of static analysis is that findbugs can scan the code and find these little things as the code is being developed and remind me to tie up loose ends and sort out dirty code. I can see that using it and other tools should help me become a better programer.</p>
<p>However, most of the issues I need to tackle are not ones that static analysis will uncover: inelegant code, method misuse, unnecessary variables. A lot of these things are technically correct in that they work and can&#8217;t throw any errors, but that doesn&#8217;t mean they are easy to understand and maintain or that they are the most efficient way  to achieve the goal of the program.</p>
<p>And of course  that ignores the all issues of UI design. Currently both the CLI and GUI of mdb2mysql need lots of work; the program is functional, but the GUI is missing many &#8220;GUI&#8221; features such as tab focus switching, execute/next input  with &#8216;enter&#8217; from text input, additionally I would like to eliminate the modal dialogs. The CLI also is extremely clunky; there are branches that trap the user into irreversible action were the only options are to move forward or kill the application.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/746/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=746&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2011/07/19/found-findbugs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>java</title>
		<link>http://1bnr.wordpress.com/2011/07/12/java/</link>
		<comments>http://1bnr.wordpress.com/2011/07/12/java/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 00:31:50 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=737</guid>
		<description><![CDATA[With two java courses under my belt I took some time over summer break to write a small java application. Mdb2Mysql is a tool for converting Access databases into MySQL databases. I used the Jackcess API from healthmarketscience.com to read the Access files. After playing around with the API for bit to get the hang [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=737&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://1bnr.files.wordpress.com/2011/07/mdb2mysql.png"><img class="alignleft size-full wp-image-738" title="mdb2mysql" src="http://1bnr.files.wordpress.com/2011/07/mdb2mysql.png?w=497" alt=""   /></a>With two java courses under my belt I took some time over summer break to write a small java application. <a href="https://bitbucket.org/AbnerH/mdb2mysql" target="_blank">Mdb2Mysql</a> is a tool for converting Access databases into MySQL databases. I used the Jackcess API from healthmarketscience.com to read the Access files. After playing around with the API for bit to get the hang of how I needed to use it I started with a CLI program that would list the tables and display the table schema of the open file. From there I moved on to have it write out Valid MySQL statements to create the new database to a text file. Then I added the MySQL login part and used the JDBC driver to send the statements one at a time to the server recreating the Access databases contents on the server.</p>
<p>Then it was Swing time. While I had hand coded all the Swing exercises in my java classes, it didn&#8217;t take me long to realize I needed to use a more full featured IDE than gedit (ok, gedit is not an IDE). So I spent some time just trying to figure out how to use NetBeans. I have to say Netbeans can be really slow sometimes. It was on one of those mornings that I was waiting for NetBeans to finally warmup that I started poking about on google and found the (perhaps bad) tip that OpenJDK performs significantly slower than Sun/Oracles JDK. So a Yak shaving I went. I downloaded the JDK directly form Sun/Oracle and installed it in /usr/local/etc/, which may not have been the right place for it( later moved it to /usr/lib/jvm/). Just for good measure I installed the latest NetBeans, version 7.0. I though that I was all ready to go, but while netbeans had no problem finding the new JDK the rest of the computer was somewhat confused. I though that If I removed the open JDK it would settle on the new one but that turned out not to be the case.</p>
<p>After uninstalling and reinstalling things numerous times I finally got it all working, but for a little while I had the unfortunate experience of having one JDK not compile and another not work at runtime. Not to be slowed down I for a little while I was composing the code and compiling it in netbeans and then testing it from the command line. In the end the problem was that each JDK had different libraries, when I got them all sorted out everything finally just worked.</p>
<p><a href="http://1bnr.files.wordpress.com/2011/07/screenshot1.png"><img class="aligncenter size-full wp-image-740" title="Screenshot" src="http://1bnr.files.wordpress.com/2011/07/screenshot1.png?w=497&#038;h=359" alt="" width="497" height="359" /></a><a href="http://1bnr.files.wordpress.com/2011/07/screenshot.png"><br />
</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/737/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/737/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/737/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=737&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2011/07/12/java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>

		<media:content url="http://1bnr.files.wordpress.com/2011/07/mdb2mysql.png" medium="image">
			<media:title type="html">mdb2mysql</media:title>
		</media:content>

		<media:content url="http://1bnr.files.wordpress.com/2011/07/screenshot1.png" medium="image">
			<media:title type="html">Screenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Third rails</title>
		<link>http://1bnr.wordpress.com/2010/09/05/third-rails/</link>
		<comments>http://1bnr.wordpress.com/2010/09/05/third-rails/#comments</comments>
		<pubDate>Sun, 05 Sep 2010 16:58:38 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=733</guid>
		<description><![CDATA[My summer break is over, but in the brief few weeks I had I took a third run at Rails, or Ruby on Rails to be more precise. I had started with the example blog application from the online tutorial. It is a pretty good representation of how you can very quickly, with the use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=733&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My summer break is over, but in the brief few weeks I had I took a third run at Rails, or Ruby on Rails to be more precise. I had started with the example blog application from the online tutorial. It is a pretty good representation of how you can very quickly, with the use of scaffolds, get the basic structure of an application up and running. I even played around with it customizing the layout of the blog, although that is mostly just rewriting the html portion of the .html.erb files.</p>
<p>Then I went through the Depot application from Pragmatic Programmer&#8217;s <a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Agile Web Development with Rails</a>. It introduces a lot more features than the Blog application, and the most of the 700+ pages of the book are a pretty deep exploration of the Rails environment. In fact a lot of it was too deep for me to really understand the first time through.</p>
<p>I felt that I needed to explore on my own rather than simply following a guided track to producing a half finished sample application. I have had a project in mind for awhile, so after getting about halfway through <a href="http://www.friendsofed.com/book.html?isbn=9781430210399">Foundation Rails 2</a> I struck out on my own. Rails2 is a significantly different kind of book than Agile Web development, were Agile is a long deep look, even the depot application is fairly involved, Rails2 takes a number of quick strafing runs at the framework, each one designed to expose one or just a few aspects of the framework. The result is that any code unrelated to the lesson at hand is not present to possibly confuse the reader. I found that this provides a much clearer understanding of how Rails works. Undoubtedly this approach glosses over some details, but that is were the strength of Agile Development comes in, it provides the deep background to fill in any gaps from Rails 2.</p>
<p>About my application; I designed it to be written in three phases: first just a adaptable brochure-ware website. Rails is total overkill for this, but I figured it would be a good starting point as I developed my skills. Next I would add a public photo gallery option for the sites target; a photography business. The third and final stage adds private proofing galleries for customers to pick photographs for processing and ordering of prints, all automated through the site.</p>
<p>I accomplished most of the first phase, although the application is very brittle. I started out by thinking about my data structures for several hours, I still got them all wrong. I have added, subtracted and changed columns in the database a half dozen times as the application evolved. I still have several changes that need to be made, although I am thinking about taking what I have learned and just starting over from scratch. I have learned a lot, in fact I have already rewritten every original line of code several times (and no doubt need to again).</p>
<p>At this point the application has page objects that have associated image and text objects, these objects can be created and edited through an interface (still under construction) and they can be linked to new pages for navigation purposes. The objects are all shaped and position by using inline css values that are held in the database. An approved administrator can log in and edit the applications elements through the web interface. As I mentioned the application is still very brittle and I will likely start over from scratch now that I have a better idea of what the objects should look like and how the applications logic will work. So, until then, I have no code up, although I will eventually get it up on <a href="http://github.com/">github</a>, or some <a href="http://heroku.com/">other code hosting site</a>.</p>
<p>For now I have to get back to the Fall semester at school.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/733/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/733/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/733/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=733&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/09/05/third-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>A big Tree</title>
		<link>http://1bnr.wordpress.com/2010/05/12/a-big-tree/</link>
		<comments>http://1bnr.wordpress.com/2010/05/12/a-big-tree/#comments</comments>
		<pubDate>Wed, 12 May 2010 16:34:09 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=687</guid>
		<description><![CDATA[In preparation for a test on the Windows Vista Operating System I decided to chart out the system links in the Windows Menu. So far I have completed the &#8216;System and Maintenance&#8217; Branch of &#8216;Control Panel&#8217;. Skipping most of the &#8216;Help &#8216; options I charted 65 destinations. A few of those are repeats &#8211; different [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=687&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In preparation for a test on the Windows Vista Operating System I decided to chart out the system links in the Windows Menu. So far I have completed the &#8216;System and Maintenance&#8217; Branch of &#8216;Control Panel&#8217;. Skipping most of the &#8216;Help &#8216; options I charted 65 destinations. A few of those are repeats &#8211; different paths to the same destination, but there are still 10 more branches in &#8216;Control Panel&#8217;. Granted, most of the endpoints in the remaining &#8216;Control Panel&#8217; branches are already in the &#8216;System and  Maintenance&#8217; branch (it is easily the largest branch). However, there are still some uncharted locations. Also, I simplified a little; For instance I counted &#8216;Device Manager&#8217; as a single destination (endpoint) when it actually provides several windows for each device listed &#8211; these device windows are directly linked in other parts of &#8216;Control Panel&#8217;. Had I completely charted to each endpoint, even excluding &#8216;Help&#8217; links, the count would have easily exceeded 100 destinations.</p>
<p>This little project was prompted by the &#8216;Microsoft Windows Vista Task Reference Recommended Method&#8217; list in the back of my Windows Vista text book. The reference lists 251 different tasks with a single recommended method for each. since there are numerous ways to achieve each task, charting them all out is probably a ridiculous idea. I knew that it would be a big job, so I first searched around for one on the internet, but came up empty.</p>
<p>Just looking the little portion that I have charted, I can&#8217;t say that it really makes anything much clearer; this may be the real reason that nobody else thought to try this.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/687/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/687/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/687/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=687&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/05/12/a-big-tree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>HAL is gone</title>
		<link>http://1bnr.wordpress.com/2010/05/07/hal-is-gone/</link>
		<comments>http://1bnr.wordpress.com/2010/05/07/hal-is-gone/#comments</comments>
		<pubDate>Sat, 08 May 2010 02:19:58 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[framebuffer]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[Panasonic CF-72]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[suspend]]></category>
		<category><![CDATA[Touchscreen]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=669</guid>
		<description><![CDATA[&#8220;I&#8217;m afraid. I&#8217;m afraid, Dave. Dave, my mind is going. I can feel it. I can feel it. My mind is going. There is no question about it. I can feel it. I can feel it. I can feel it. I&#8217;m a&#8230; fraid.&#8221; [HAL's shutdown] I decided to take the Ubuntu 10.04 plunge after waiting [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=669&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;I&#8217;m afraid. I&#8217;m afraid, Dave. Dave, my mind is going. I can feel it. I  can feel it. My mind is going. There is no question about it. I can feel  it. I can feel it. I can feel it. I&#8217;m a&#8230; fraid.&#8221;</p>
<p>[<em>HAL's shutdown</em>]</p></blockquote>
<p>I decided to take the Ubuntu 10.04 plunge after waiting a week for any last minute glitches to be fixed. Ubuntu 10.04, dubbed Lucid Lynx brings a number of changes to the distro including the 2.6.32 Kernel a new boot splash mechanism called Plymouth and the removal of HAL, the <em>H</em>ardware <em>A</em>bstraction <em>L</em>ayer , not the homicidal <em>H</em>euristic <em>AL</em>gorithmic computer from 2001: A Space Odyssey.</p>
<p>I was happy enough to move up to the new Kernel, in fact that was one of my primary reasons for the change.<span id="more-669"></span> The 2.6.32 kernel integrates a small change I submitted to the psmouse driver, so now I would no longer have to patch the driver with every kernel update to have a working touchscreen. This change only affects Panasonic Toughbook CF-72 touchscreens, so only me and a few other people will notice it.</p>
<p>Update Manager did not present me with an upgrade option; perhaps because I have some non-standard repositories on my apt sources list. Instead I edited the list with sed;</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo sed -i 's/karmic/lucid/g' /etc/apt/sources.list
sudo apt-get udate
sudo apt-get dist-upgrade</pre>
<p>On the first reboot the touchscreen worked, but after purging residual config from packages that were no longer installed it stopped working. It wasn&#8217;t exactly clear to me what happened, but after investigating I found that it had to be linked to the removal of HAL. Oddly enough the rules in /et/hal/rules.d are still there. In fact, earlier when I booted the live disk and looked in /etc/hal, the rules.d folder was still there which had led me to make the false assumption that HAL was still present.</p>
<p>More pressing than the touchscreen was the failure to resume from suspend. To be fair it comes out of suspend, but the screen is scrambled. A quick look around finds that many people are having this problem with older ATI and Nvidia graphics cards, usually because a framebuffer conflict with closed source manufacturer supplied drivers. Even though I use the open source radeon driver I had the same framebuffer conflict. The problem was easily fixed by switching to the <a href="http://idyllictux.wordpress.com/2010/04/26/lucidubuntu-10-04-high-resolution-plymouth-virtual-terminal-for-atinvidia-cards-with-proprietaryrestricted-driver/">uvesafb</a> framebuffer.</p>
<p>First install v86d which is necessary for uvesafb</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo apt-get install v86d</pre>
<p>Next blacklist the default radeondrmfb framebuffer;</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo bash -c "echo 'blacklist radeondrmfb' &gt;&gt; /etc/modprobe.d/blacklist-framebuffer.conf"</pre>
<p>and change  this line in /etc/default/grub;</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">GRUB_CMDLINE_LINUX="quiet splash"</pre>
<p>it should read (all one line);</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">GRUB_CMDLINE_LINUX="quiet splash nomodeset
video=uvesafb:mode_option=1024x768-24,mtrr=3,scroll=ywrap"</pre>
<p>Then edit /etc/initramfs-tools/modules  to include uvesafb like this (all one line; notice the escape);</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo bash -c "echo 'uvesafb mode_option=1366x768-24 mtrr=3 scroll=ywrap'\
 &gt;&gt; /etc/initramfs-tools/modules"</pre>
<p>Next Force the Plymouth splash to use the framebuffer;</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo bash -c "echo FRAMEBUFFER=y &gt;&gt; /etc/initramfs-tools/conf.d/splash"</pre>
<p>Lastly update grub and the boot image;</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo update-grub
sudo update-initramfs -u</pre>
<p>With suspend working again, I turned my attention to the touchscreen. The original move to HAL from xorg.conf occurred as most device configuration was automated through various mechanisms. HAL was not well liked and seen as a bit of a kludge; it was the best that could be done at the time. However due the HAL code becoming increasingly unmaintainable, there has been a move to deprecate it and move on resulting in its exclusion from the current Ubuntu distribution.</p>
<p>According to <a href="https://wiki.ubuntu.com/Halsectomy">wiki.ubuntu.com</a> the xorg input configuration tasks are to be moved to udev. I have written a few udev rules, but quite frankly I have found the syntax even more complex than HAL xml files (which were pretty simple actually). A little crash course was in order, between <a href="http://reactivated.net/writing_udev_rules.html">this document</a> and the <a href="http://manpages.ubuntu.com/manpages/lucid/en/man7/udev.7.html">udev man page</a> I thought I had a rule that would work. It didn&#8217;t work.</p>
<p>Despite what has been posted at wiki.ubuntu.com the current official method is to use either xorg.conf or device specific snippets in separate files placed in /etc/xorg.conf.d/(e.g. /etc/xorg.conf.d/10-synaptics.con containing touchpad configuration). By separating the the machine/device specific configurations into separate files in xorg.conf.d the configuration files will be more machine editable, which has always been one of the big complaints about xorg.conf and one of the few things that HAL had going for it. If you use xorg snippets you need to make several to cover all your inputs, I tried just one for the touchscreen and ended up with a functioning touchscreen and nothing else. Acording to <a href="http://who-t.blogspot.com/2010/01/new-configuration-world-order.html">this blog post</a> you should be able to combine a general purpose xorg.conf with snippets, but I never had any luck with that. What did work for me was making three snippets;<br />
for the touchscreen</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;"><span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">/etc/xorg.conf.d/90-touchscreen.conf
</span><span style="color:#98fb98;">Section</span> <span style="color:#32cd32;">"InputDevice"</span>
        <span style="color:#98fb98;">Identifier</span>      <span style="color:#32cd32;">"Fujitsu TouchScreen"</span>
        <span style="color:#98fb98;">Driver</span>          <span style="color:#32cd32;">"evtouch"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"Device"</span> <span style="color:#32cd32;">"/dev/input/event6"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"DeviceName"</span> <span style="color:#32cd32;">"touchscreen"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"MinX"</span> <span style="color:#32cd32;">"230"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"MinY"</span> <span style="color:#32cd32;">"220"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"MaxX"</span> <span style="color:#32cd32;">"3900"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"MaxY"</span> <span style="color:#32cd32;">"3850"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"MoveLimit"</span> <span style="color:#32cd32;">"5"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"ReportingMode"</span> <span style="color:#32cd32;">"Raw"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"SendCoreEvents"</span> <span style="color:#32cd32;">"true"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"Emulate3Buttons"</span> <span style="color:#32cd32;">"true"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"Emulate3Timeout"</span> <span style="color:#32cd32;">"40"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"AutoServerLayout"</span> <span style="color:#32cd32;">"on"</span>
<span style="color:#98fb98;">EndSection</span></pre>
<p>the keyboard</p>
<pre style="color:#bebebe;background-color:#262626;line-height:1.3;"><span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">/etc/xorg.conf.d/97-keyboard.conf</span>
<span style="color:#98fb98;">Section</span> <span style="color:#32cd32;">"InputDevice"</span>
        <span style="color:#98fb98;">Identifier</span>      <span style="color:#32cd32;">"Default Keyboard"</span>
        <span style="color:#98fb98;">Driver</span>          <span style="color:#32cd32;">"kbd"</span>
        <span style="color:#98fb98;">Option</span>          <span style="color:#32cd32;">"AutoServerLayout"</span> <span style="color:#32cd32;">"on"</span>
<span style="color:#98fb98;">EndSection</span></pre>
<p>and the evdev catchall</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;"><span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">/etc/xorg.conf.d/99-evdev.conf</span>
<span style="color:#98fb98;">Section</span> <span style="color:#32cd32;">"InputClass"</span>
        <span style="color:#98fb98;">Identifier</span>      <span style="color:#32cd32;">"evdev-catchall"</span>
        <span style="color:#98fb98;">Driver</span>          <span style="color:#32cd32;">"evdev"</span>
<span style="color:#98fb98;">EndSection</span></pre>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:552px;width:1px;height:1px;overflow:hidden;">
<pre style="color:#bebebe;background-color:#262626;font-size:7.5pt;line-height:1.3;">sudo</pre>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/669/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/669/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/669/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=669&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/05/07/hal-is-gone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>challenge 19</title>
		<link>http://1bnr.wordpress.com/2010/04/26/challenge-19/</link>
		<comments>http://1bnr.wordpress.com/2010/04/26/challenge-19/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 20:48:00 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[challenge]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[endian]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[wav]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=659</guid>
		<description><![CDATA[Lately, keeping busy reading about programing without actually doing any got my brain itching again. The kind of itch that is perhaps most easily scratched by the small puzzles presented in the Python Challenge. Challenge 19 is titled &#8216;please!&#8217;. It presents you with a strange picture of India with the colors, well&#8230; off (inverted?). Looking [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=659&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Lately, keeping busy reading about programing without actually doing any got my brain itching again. The kind of itch that is perhaps most easily scratched by the small puzzles presented in the Python Challenge.</p>
<p><span id="more-659"></span>Challenge 19 is titled &#8216;please!&#8217;. It presents you with a strange picture of India with the colors, well&#8230; off (inverted?). Looking in the page source you will find an email hidden in a block comment. The email is from Leopold the subject line says;</p>
<blockquote><p>what do you mean by &#8220;open the attachment?&#8221;</p></blockquote>
<p>the message text reads;</p>
<blockquote><p>It is so much easier for you, youngsters.<br />
Maybe my computer is out of order.<br />
I have a real work to do and I must know what&#8217;s inside!</p></blockquote>
<p>It is a multipart message with a file named &#8220;indian.wav&#8221; attached at the bottom. As is standard (I now know) the attachment is encoded in base64. Since encoding/decoding email attachments is common place I figured this part should go quickly. I installed the <a href="http://tmail.rubyforge.org/quickstart/index.html">tmail</a> ruby gem and quickly wrote a small script to open the email. It didn&#8217;t work. I was able to read the message and any of the tags in the email, but it always failed to open the attachment. Finally I went to the <a href="http://tmail.rubyforge.org/quickstart/index.html">tmail </a>website and read all the way to the bottom of of the quick start guide I find this;</p>
<blockquote><p>. . . TMail does not touch the body of the mail message, for example, it doesn&#8217;t encode, decode, handle character sets  etc.</p></blockquote>
<p>Well that&#8217;s pretty useless!</p>
<p>Ok, not entirely I suppose, it gives you access to the elements within an email message and then you are expected to write your own code to actually manipulate the data.</p>
<p>Luckily the author of tmail wrote a new mail gem called &#8216;mail&#8217; that can automatically decode attachments. It still turned out to be a lot harder than it should have. Although &#8216;tmail&#8217; had no trouble with the email header &#8216;mail&#8217; choked on it until I changed the content_type: from &#8220;Multipart/mixed&#8221; to &#8220;multipart/mixed&#8221;</p>
<p>With indian.wav successfully decoded you will find a bit of white noise interrupted by somebody saying &#8220;sorry!&#8221; sorry. html is no good (c&#8217;mon, it wouldn&#8217;t be that easy!). There is something else hidden in the wave file. Lets go to <a href="https://ccrma.stanford.edu/courses/422/projects/WaveFormat/">Stanford</a> and learn a little bit more about the wav format.</p>
<p>Before I even read the page one word jumped out at me &#8216;endian&#8217;. Endian, Indian, get it. So the riddle has something to do with the endianness of the wav data. To test this theory I fired up Audacity and imported the file as raw data changing the data to big endian from the default wav standard of little endian. The resulting sound clip is of a singer calling me an idiot and laughing at me. That solves the riddle, but how to code it? Ruby has no support for audio manipulation (that I could find). However, the wav format is pretty straightforward, there is a 44 byte header followed by 4 byte audio data sub chunks. Since endianness is simply the order of data by importance (little endian is least important to most; big endian is most import to least) I should be able to simple grab each sub chunk in order and reverse them to get the decoded file.<br />
Surprise! it worked!</p>
<pre style="color:#bebebe;background-color:#262626;font-size:8pt;line-height:1.3;"><span style="color:#66cdaa;">#</span><span style="color:#66cdaa;">! /usr/bin/env ruby1.9
</span>require <span style="color:#32cd32;">'rubygems'</span>
require <span style="color:#32cd32;">'mail'</span>

email = <span style="color:#9290ff;">Mail</span>.read(<span style="color:#32cd32;">'please.txt'</span>) <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">open the email message
</span>
rd, wr = <span style="color:#9290ff;">IO</span>.pipe <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">use a pipe; mail attachment has Strong data type
</span><span style="color:#6495ed;font-weight:bold;">if</span> fork
  wr.close
  wav_bytes = rd.read <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">read data from the pipe into a string
</span>  <span style="color:#9290ff;">File</span>.open(<span style="color:#32cd32;">'idiot.wav'</span>, <span style="color:#32cd32;">'wb'</span>) { |f|
    new_wav = wav_bytes.first(44) <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">First grab the wav header
</span>    d = 44
    <span style="color:#6495ed;font-weight:bold;">while</span> d &lt; wav_bytes.length <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">then grab 4 byte wav sub chunks
</span>      new_wav += wav_bytes[d, 4].reverse  <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">and reverse them
</span>      d += 4
    <span style="color:#6495ed;font-weight:bold;">end</span>
    f.write( new_wav ) <span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">write "idiot.wav"
</span>    f.close()
    }
  <span style="color:#9290ff;">Process</span>.wait
<span style="color:#6495ed;font-weight:bold;">else</span>
  rd.close
  wr.write( email.parts[0].body ) <span style="color:#66cdaa;"># write</span><span style="color:#66cdaa;"> email attachment into pipe
</span>  wr.close
<span style="color:#6495ed;font-weight:bold;">end</span>
</pre>
<p>On to Challenge 20: go away!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/659/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=659&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/04/26/challenge-19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>challange 18</title>
		<link>http://1bnr.wordpress.com/2010/03/22/challange-18/</link>
		<comments>http://1bnr.wordpress.com/2010/03/22/challange-18/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 16:24:00 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[challenge]]></category>
		<category><![CDATA[deltas]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=649</guid>
		<description><![CDATA[I have been wanting to write a webapp using ruby on rails and so I have sporadically been exploring the framework. The last time I did it became quite evident that my ruby skills are getting rusty. It seemed like a perfect excuse to get back to the Pytho- I mean, Ruby Challange. Challenge 18 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=649&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been wanting to write a webapp using ruby on rails and so I have sporadically been exploring the framework. The last time I did it became quite evident that my ruby skills are getting rusty. It seemed like a perfect excuse to get back to the Pytho- I mean, Ruby Challange.<br />
<span id="more-649"></span><br />
Challenge 18 just shows two pictures of a goose side by side. The pictures are the same but one is brighter than the other. The title asks &#8220;can you tell the difference?&#8221; and the page source says<br />
<code>"-- it is more obvious that what you might think --"</code><br />
And it is indeed obvious, don&#8217;t think too hard about it and change the url. After a few tries I found brightness.html which is an identical page with one difference, the page source says<br />
<code>"-- maybe consider deltas.gz --"</code></p>
<p>deltas.gz contains a textfile with two columns of of 18 two digit hex values. They start out the same but they quickly start to change. It seems pretty obvious that the differences need to be found; my suspicion was backed up by a google search of &#8216;deltas python&#8217; with the difflib page being top ranked.</p>
<p>Looking around a bit I was unable to find a standard library in ruby for finding the differences in two files or strings the way gnu diff or pythons difflib does. This makes sense when you consider that most of the time ruby is running on a unix/linux system with perfectly capable binary tools for such work.</p>
<p>I did find several gems that provide similar functionality, but nothing that would work quit right. HTMLDiff was the closest, its output is formated in html which was a minor annoyance. However the bigger problem I had was that it frequently falsely classified lines as new and old rather than just marking the lines around them as changed. This resulted in unchanged lines being sent to both the new and the old categories rather than the unchanged category. After banging my head against various gems I finally gave up and used gnu diff. The output is three png files.</p>
<pre style="color:#bebebe;background-color:#262626;font-size:7pt;line-height:1.2;">
<span style="color:#66cdaa;">#</span><span style="color:#66cdaa;">!/usr/bin/ruby
</span><span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Challenge 18
</span>require <span style="color:#32cd32;">'zlib'</span>

<span style="color:#9290ff;">Zlib</span>::<span style="color:#9290ff;">GzipReader</span>.open(<span style="color:#32cd32;">'deltas.gz'</span>) {|gzFile|
<span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Found lots of hexidecimal values in two columns
</span>
        column, output = [<span style="color:#32cd32;">''</span>, <span style="color:#32cd32;">''</span>], [<span style="color:#32cd32;">''</span>, <span style="color:#32cd32;">''</span>, <span style="color:#32cd32;">''</span>]
        splitLines = gzFile.read.split(<span style="color:#32cd32;">"\n"</span>)
<span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Split the two columns apart row by row
</span>        splitLines.each { |line|
                <span style="color:#6495ed;font-weight:bold;">if</span> line[0, 53].rstrip != <span style="color:#32cd32;">""</span>
                        column[0] += (line[0, 53].rstrip + <span style="color:#32cd32;">"\n"</span>)
                <span style="color:#6495ed;font-weight:bold;">end</span>
                <span style="color:#6495ed;font-weight:bold;">if</span> line[56, 53].rstrip != <span style="color:#32cd32;">""</span>
                        column[1] += (line[56, 53].rstrip + <span style="color:#32cd32;">"\n"</span>)
                <span style="color:#6495ed;font-weight:bold;">end</span>

<span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Since I am using gnu diff I need to write them to files
</span>                column.length.times {|i|
                        f = <span style="color:#9290ff;">File</span>.new(<span style="color:#32cd32;">"column"</span> + i.to_s, <span style="color:#32cd32;">"w"</span>)
                        f.write(column[i])
                        f.close
                }
        }
        system(<span style="color:#32cd32;">"diff column0 column1 --old-line-format='- %L' --new-line-format='+ %L'  \
               --unchanged-line-format='%L' &gt;output"</span>)

<span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Separate the output of diff into three strings
</span>        differences = <span style="color:#9290ff;">File</span>.open(<span style="color:#32cd32;">"output"</span>, <span style="color:#32cd32;">"r"</span>)
        differences.read.split(<span style="color:#32cd32;">"\n"</span>).each { |line|
                <span style="color:#6495ed;font-weight:bold;">if</span> line[0, 2] == <span style="color:#32cd32;">"+ "</span>
                        output[0] += (line.gsub(<span style="color:#32cd32;">"+ "</span>, <span style="color:#32cd32;">""</span>) + <span style="color:#32cd32;">' '</span>)
                <span style="color:#6495ed;font-weight:bold;">elsif</span> line[0, 2] == <span style="color:#32cd32;">"- "</span>
                        output[1] += (line.gsub(<span style="color:#32cd32;">"- "</span>, <span style="color:#32cd32;">""</span>) + <span style="color:#32cd32;">' '</span>)
                <span style="color:#6495ed;font-weight:bold;">else</span>
                        output[2] += (line + <span style="color:#32cd32;">' '</span>)
                <span style="color:#6495ed;font-weight:bold;">end</span>
        }
        differences.close
<span style="color:#66cdaa;"># </span><span style="color:#66cdaa;">Finally, change the hex values into their equivalent characters and write them to file.
</span>        output.length.times { |i|
            chrString = <span style="color:#32cd32;">''</span>
                output[i].split().each {|hexVal|
                        chrString += hexVal.hex.chr
                        f = <span style="color:#9290ff;">File</span>.new(<span style="color:#32cd32;">"deltas18_"</span> + i.to_s + <span style="color:#32cd32;">".png"</span>, <span style="color:#32cd32;">"w"</span>)
                        f.write(chrString)
                        f.close()
                }
        }
}
</pre>
<p>With a new url, login and password we arrive at challange 19: &#8220;Please!&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/649/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/649/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/649/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=649&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/03/22/challange-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>Bloat</title>
		<link>http://1bnr.wordpress.com/2010/03/11/bloat/</link>
		<comments>http://1bnr.wordpress.com/2010/03/11/bloat/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 20:20:38 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chkdisk]]></category>
		<category><![CDATA[gparted]]></category>
		<category><![CDATA[UAC]]></category>
		<category><![CDATA[Vista]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=646</guid>
		<description><![CDATA[I have been familiarizing myself with Vista in preparation for my credit-by-exam test for &#8216;Windows Operating Systems&#8217;. As a student Microsoft has made all versions of their operating systems available to me through the MSDNAA program. Unfortunately it took them several weeks to get their confirmation emails out (and more time to approve of my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=646&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have been familiarizing myself with Vista in preparation for my credit-by-exam test for &#8216;Windows Operating Systems&#8217;. As a student Microsoft has made all versions of their operating systems available  to me through the MSDNAA program. Unfortunately it took them several weeks to get their confirmation emails out (and more time to approve of my request). In the meantime I &#8216;found&#8217; a copy of Vista Ultimate that some enterprising person had gutted all of the bloatware out of so that the install fit on a CD. It didn&#8217;t take me long to find that the textbook (and likely the test as well) goes into the use of many of the applications that were missing. I got tired of coming across exercises that I couldn&#8217;t actually explore so the other day I installed the copy of Vista Business that I got from MSDNAA. Holy cow! After installing firefox, antivirus, acrobat reader and all the updates the 13.6GB disk partition had about 500MB left.<br />
<span id="more-646"></span><br />
This would not do. I still needed to install more software If I was going to actually use the OS. Now I have had five operating systems on this computer, Windows Vistal, Windows 7, Mac OS X, Ubuntu, and gentoo; with an additional storage partition none of the operating systems had much room. The Windows 7 installation was about to expire so It could safely be destroyed unfortunately it didn&#8217;t adjoin the Vista partition, the OS X partition was in between them. I could have tried deleting the Windows 7 partition and sliding the OS X partition into its former place and then enlarging the windows Vista partition, but last time I did that much shuffling of partitions with gparted I ended up with a scrambled partition table. Besides, I may not use more than one OS at a time but I like having them all available.</p>
<p>I have another hard drive that I keep in an USB enclosure  for backups that is a lot bigger it seemed less risky to copy the partitions onto it and enlarge them there. This way I would still have a backup of the original partitions. Everything seemed to go well, no errors. I knew from the gparted website that after the move I would need to run windows chkdisk and use the install disk to repair the the boot loader, but since I was going create a fresh install of Windows 7 I figured I would let it take care of these details. The install went fine, it even detected that the Vista partition was flagged for a run of chkdisk and scanned it during the install. After the last reboot into Windows 7 I gave Vista a try. It would boot up fine but after login it would just stall. I poked around and found that I could bring up the task manager and manually load explorer, but doing so brought up numerous dll errors (actually failures to find various procedure entry points in various dll&#8217;s). In this way I could get a desktop but only with guest privileges. I poked around the internet and found that other people had similar problems but none of them had the dll errors and they where able to fix it using the administrator account. Since I could only get guest permissions I couldn&#8217;t even make any system changes or even set up a new login account, but since I was getting additional errors my problem was different and undoubtedly bigger. </p>
<p>I finally gave up and decided to re-copy the partition with gparted. Just as it had the first time it completed without errors. This time following the directions from the gparted website exactly I put in the Vista install disk, selected the repair option and when it rebooted it ran chkdisk. Watching what it was scanning I noticed that it was rebuilding security descriptors(I assume this has something to do with User Account Control) . After scanning and rebooting it was fine, although it then requested another reboot. I can only guess that when It was scanned the first time by Windows 7 the security descriptors were set for it (7) instead of Vista.</p>
<p>A side note; The clean install of Windows 7 is only about 5GB, although I still need to update it and install antivirus. I still don&#8217;t see that ballooning it out to 13GB</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/646/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/646/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/646/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=646&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/03/11/bloat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>
	</item>
		<item>
		<title>replacing a USB port on the Panasonic CF-72</title>
		<link>http://1bnr.wordpress.com/2010/02/02/replacing-a-usb-port-on-the-panasonic-cf-72/</link>
		<comments>http://1bnr.wordpress.com/2010/02/02/replacing-a-usb-port-on-the-panasonic-cf-72/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 03:44:39 +0000</pubDate>
		<dc:creator>1bnr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cf-72]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://1bnr.wordpress.com/?p=639</guid>
		<description><![CDATA[After successfully replacing the power jack and the power plug last week I felt confident enough to fix the last problem I have with this notebook: a broken USB port. I remember when it broke; I tripped over the printer cable having left it in following the printing of some documents. Now I am always [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=639&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After successfully replacing the power jack and the power plug last week I felt confident enough to fix the last problem I have with this notebook: a broken USB port. I remember when it broke; I tripped over the printer cable having left it in following the printing of some documents. Now I am always careful to unplug the printer as soon as I am done using it. Since the computer only has two USB ports having one disabled is potentially problematic.<br />
<span id="more-639"></span><br />
<div id="attachment_640" class="wp-caption aligncenter" style="width: 507px"><a href="http://1bnr.files.wordpress.com/2010/02/img_0291.jpg"><img src="http://1bnr.files.wordpress.com/2010/02/img_0291.jpg?w=497&#038;h=372" alt="the new USB port next to the broken one; notice the missing contact support in the port on the left" title="usb port" width="497" height="372" class="size-full wp-image-640" /></a><p class="wp-caption-text">the new USB port next to the broken one; notice the missing contact support in the port on the left</p></div><br />
I dug out the old spare parts mainboard I have. After opening it up I found that I had to take the the metal bracket off the back edge of the mainboard in order get to the contacts. At this point I quickly and easily removed all the solder using desoldering braid. This was the first test, it went well and gave me the confidence to continue with the working computer. Removing the broken USB port did not go nearly so well. Several of the smaller pins broke off in the PCB; I managed to push them out with a sewing needle heated with the soldering iron. In the end I accidentally burned off most of one of the solder contacts. I was a little nervous about whether or not it would work when I put it back together.<br />
<div id="attachment_641" class="wp-caption aligncenter" style="width: 507px"><a href="http://1bnr.files.wordpress.com/2010/02/img_0292.jpg"><img src="http://1bnr.files.wordpress.com/2010/02/img_0292.jpg?w=497&#038;h=372" alt="all reassembled; that is the broken USB port in front" title="back together" width="497" height="372" class="size-full wp-image-641" /></a><p class="wp-caption-text">all reassembled; that is the broken USB port in front</p></div><br />
In the end I lucked out, and it worked perfectly. This is perhaps the most delicate solder job I successfully completed. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/1bnr.wordpress.com/639/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/1bnr.wordpress.com/639/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/1bnr.wordpress.com/639/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=1bnr.wordpress.com&amp;blog=7492855&amp;post=639&amp;subd=1bnr&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://1bnr.wordpress.com/2010/02/02/replacing-a-usb-port-on-the-panasonic-cf-72/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1a059029335fc08efa8f82e4981308cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">1bnr</media:title>
		</media:content>

		<media:content url="http://1bnr.files.wordpress.com/2010/02/img_0291.jpg" medium="image">
			<media:title type="html">usb port</media:title>
		</media:content>

		<media:content url="http://1bnr.files.wordpress.com/2010/02/img_0292.jpg" medium="image">
			<media:title type="html">back together</media:title>
		</media:content>
	</item>
	</channel>
</rss>
