<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>meh</title>
	
	<link>http://www.bonf.net</link>
	<description>-__-</description>
	<lastBuildDate>Fri, 18 Dec 2009 16:03:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bonf" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="bonf" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Building my first guitar – part II</title>
		<link>http://www.bonf.net/2009/12/18/building-my-first-guitar-part-ii/</link>
		<comments>http://www.bonf.net/2009/12/18/building-my-first-guitar-part-ii/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 16:03:48 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.bonf.net/2009/12/18/building-my-first-guitar-part-ii/</guid>
		<description><![CDATA[Since I posted the first part, I have spent most of the time working on my tools rather than the guitar.
 
I was reading a book about woodworking, where it was stated that it is very important to keep your tools sharp. Nothing new really: it makes sense that your sharp cutting tools have to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bonf.net/wp-content/uploads/2009/12/18122009040.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="18122009040" border="0" alt="18122009040" src="http://www.bonf.net/wp-content/uploads/2009/12/18122009040_thumb.jpg" width="240" height="180" /></a>Since I posted the first part, I have spent most of the time working on my tools rather than the guitar.</p>
<p> <span id="more-107"></span>
<p>I was reading a book about woodworking, where it was stated that it is very important to keep your tools sharp. Nothing new really: it makes sense that your sharp cutting tools have to be sharp. What I did not really realize was how sharp is <strong>sharp – </strong>Apparently, a chisel should be sharp enough to shave the hair off the back of your arm.</p>
<p>I found several videos on Youtube that show different methods for sharpening your chisels (and plane!). Some use sharpening stones, others use sandpaper, but the technique is mostly the same. I was lucky to already have sandpaper of different grits, from 120 up to 1600 – so this was what I used.</p>
<p>I was not dedicated enough to the sharpening process, and did not get to the mirror-edge razor-sharp shave-your-hair grade – but my efforts did improve the usability of my chisels and plane significantly.</p>
<p>I continued the work on the headstock, chiseling and shaving it straight. Also seen in this picture is the beginning of the truss rod route. I have found it quite difficult to route a 5mm wide route with a 6mm chisel, so I will get a new chisel before I continue with the route.</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/12/18122009036.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="18122009036" border="0" alt="18122009036" src="http://www.bonf.net/wp-content/uploads/2009/12/18122009036_thumb.jpg" width="240" height="180" /></a></p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/LqMcEmIx3cM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/12/18/building-my-first-guitar-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building my first guitar – part I</title>
		<link>http://www.bonf.net/2009/11/27/building-my-first-guitar-part-i/</link>
		<comments>http://www.bonf.net/2009/11/27/building-my-first-guitar-part-i/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 14:47:22 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[diy]]></category>
		<category><![CDATA[guitar]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=100</guid>
		<description><![CDATA[ 
It has been quite long since I first considered building my own guitar. It has also been long since I first wanted to get into woodworking/sculpting. I’ve finally taken it beyond the aspiration phase to actual execution. I will be documenting the process in a series of posts, of which this is the first.
 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bonf.net/wp-content/uploads/2009/11/g_3.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="g_3" border="0" alt="g_3" src="http://www.bonf.net/wp-content/uploads/2009/11/g_3_thumb.jpg" width="240" height="75" /></a> </p>
<p>It has been quite long since I first considered building my own guitar. It has also been long since I first wanted to get into woodworking/sculpting. I’ve finally taken it beyond the aspiration phase to actual execution. I will be documenting the process in a series of posts, of which this is the first.</p>
<p> <span id="more-100"></span>
<p>I began this journey by reading <strong>a lot</strong> about guitar building online, browsing different forums and reading construction logs. I also spent much time looking through guitar-making related products in shops like <a href="http://stewmac.com/">StewMac</a>, <a href="http://lmii.com/">Luthiers Mercantile International</a>, <a href="http://warmoth.com/">Warmoth</a> etc.</p>
<p>The next step, that took about a year an a half, was deciding to go for it. I bought Melvyn Hiscock’s <a href="http://www.amazon.com/Make-Your-Own-Electric-Guitar/dp/0953104907/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1259330215&amp;sr=8-1">Make Your Own Electric Guitar</a>, which I think is very well written. It is full of transcribed personal experience, that will save you time and errors, and guide you through the entire build.</p>
<p>Beginning to gather supplies, I started to design and choose what my guitar will be like. At first I considered making it an SG clone. I really like the SG and was avid about getting one after I first tried it. I then decided that given the effort put into building my own guitar, I’d rather try a more interesting <em>custom </em>design. And thus, the <strong>very fun</strong> part of sketching out guitars in pencil has began.</p>
<p>Eventually I came up with 3 designs that I liked enough to refine and illustrate:</p>
<p align="center"><a href="http://www.bonf.net/wp-content/uploads/2009/11/g.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="g" border="0" alt="g" src="http://www.bonf.net/wp-content/uploads/2009/11/g_thumb.png" width="92" height="126" /></a> <a href="http://www.bonf.net/wp-content/uploads/2009/11/g2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="g2" border="0" alt="g2" src="http://www.bonf.net/wp-content/uploads/2009/11/g2_thumb.png" width="85" height="158" /></a> </p>
<p>and the chosen finalist:</p>
<p>&#160;</p>
</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/11/g_31.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="g_3" border="0" alt="g_3" src="http://www.bonf.net/wp-content/uploads/2009/11/g_3_thumb1.jpg" width="240" height="75" /></a></p>
<p>I decided to go with Mahagony for both the neck and the body, Rosewood fretboard, Gibson scale length (not accurate in the sketches) and a two humbuckers setup.</p>
<p>My next decision was not use power tools, unless I will absolutely have to. The are few reasons for choosing so. First, I do not own a router, a sander or any other of the woodworking associated power tools, and I don’t know anyone who does and can lend me his. Second, I’m going to be building the guitar in a room in an apartment – meaning I have to go low on noise and mess. I hope that it will end up as a wise choice, and I don’t mind the extra time and effort that manual tools require.</p>
<p>Once I had everything at hand, things became more interesting. I started by cutting an angled headstock out of the neck blank using a Japanese Ryoba saw. I followed the method outlined in <a href="http://projectguitar.com/tut/anck.htm">this tutorial</a>.</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/11/21112009030.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="21112009030" border="0" alt="21112009030" src="http://www.bonf.net/wp-content/uploads/2009/11/21112009030_thumb.jpg" width="240" height="180" /></a> </p>
<p>I then planed both the cut part and the rest of the neck. When I saw the effect of the plane on the sawn wood, I finally realized what planing is all about. I glued up the parts and clamped everything overnight:</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/11/21112009032.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="21112009032" border="0" alt="21112009032" src="http://www.bonf.net/wp-content/uploads/2009/11/21112009032_thumb.jpg" width="240" height="180" /></a></p>
<p>I made my first building mistake in the way I clamped the parts. Applying perpendicular pressure on an angle filled with glue caused the parts to slid and the result was not as I have first planned:</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/11/22112009033.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="22112009033" border="0" alt="22112009033" src="http://www.bonf.net/wp-content/uploads/2009/11/22112009033_thumb.jpg" width="240" height="180" /></a></p>
<p>The result however, was far from bad. First, I had enough room for mistakes, as the neck still has to be narrowed down and shaped. Minor inaccuracies in this early stage can be easily handled. Moreover, the slipped parts have created just the correct width for the headstock, meaning I will have less work when shaping it.</p>
<p>That’s as far as I have gotten. Next, I’m going to make more planning and measurements in order to get the scale length right, and then I will be working on routing the truss rod route and cutting the rough shape of the body.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/M-sCn8wDOUs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/11/27/building-my-first-guitar-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“Oh Crap It’s Morning” – Alpha Version</title>
		<link>http://www.bonf.net/2009/06/29/oh-crap-its-morning-alpha-version/</link>
		<comments>http://www.bonf.net/2009/06/29/oh-crap-its-morning-alpha-version/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 19:14:15 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[proof-of-concept]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=82</guid>
		<description><![CDATA[If you&#8217;ve been saying the above statement before, this program is for you.
It&#8217;s an alarm clock application for S60 phones (more specifically Nokia 5800) written in Python

The code is NOWHERE near what you&#8217;d expect of released code to be &#8211; this is NOT a release, rather a preview  
This is my first piece of [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been saying the above statement before, this program is for you.</p>
<p>It&#8217;s an alarm clock application for S60 phones (more specifically <a href="http://www.dialaphone.co.uk/phone/Nokia_5800/">Nokia 5800</a>) written in Python<br />
<span id="more-82"></span></p>
<p><strong>The code is NOWHERE near what you&#8217;d expect of released code to be &#8211; this is NOT a release, rather a preview <img src='http://www.bonf.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></p>
<p>This is my first piece of code written in S60 Python. The code is not pretty, not well designed, not nothing &#8211; it&#8217;s just a proof of concept; helping me get to know the S60 python modules, and wake up on time.</p>
<p>The main feature of this program, that I could not find a ready-made S60 application that already accomplishes this, is the use of a random tune for every alarm.<br />
Don&#8217;t you hate it when you choose a song for an alarm clock, and find yourself hating the song ever after? Spazzing just a little bit every time you hear it?<br />
By choosing a random song every morning, you get to hear many of your favorite songs, without slowly developing hate towards them.</p>
<p>The second feature, is &#8220;fade in&#8221;. The song is initially played in low volume, which is gradually turned up.</p>
<p>Don&#8217;t rely on this code to wake you up for important meetings, it is probably full of bugs. It can&#8217;t save your last alarm properly (even though it tries to), but it will save your songs path.<br />
It is also semi-automatic, meaning you&#8217;ll have to set the alarm every night, it won&#8217;t do so automatically (yet!).<br />
It won&#8217;t survive phone shutdown either.<br />
It seems like python can&#8217;t overcome these obstacles easily, but I&#8217;ll try to improve it in the future. If I tried to code it with the bare Symbian API, it wouldn&#8217;t have reached the somewhat functional state it is in today&#8230;</p>
<p>I only post it here because I have started using it almost daily, and that both lowered my motivation to work for a more complete solution, and urged me to post the code somewhere, as other people may find it useful.<br />
It can also serve as a demo for S60 Python API use.</p>
<p>I have only tested it on<a href="http://www.dialaphone.co.uk/phone/Nokia_5800/"> Nokia 5800</a> which is S60 5th edition, with python 1.9.4.<br />
Other configurations may cause nuclear fusion.</p>
<p>Feel free to do whatever you want with the code.</p>
<p><a href="http://bonf.net/wp-content/uploads/2009/06/alarm.py">The Code</a></p>
<p>As a side note, during development I have used <a href="http://sourceforge.net/projects/pys60-compat/">pys60-compat</a> which is a wxPython based implementation of portions of the S60 python framework &#8211; meaning it let&#8217;s you run python code written for s60 in a testing environment on your desktop.<br />
It is somewhat outdated, and I have added some extensions of my own, which I may release in the future.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/4skX_4DmucQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/06/29/oh-crap-its-morning-alpha-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create C# Documentation Using Sandcastle</title>
		<link>http://www.bonf.net/2009/03/04/create-c-documentation-using-sandcastle/</link>
		<comments>http://www.bonf.net/2009/03/04/create-c-documentation-using-sandcastle/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 14:10:42 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[sandcastle]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=76</guid>
		<description><![CDATA[Tomorrow I&#8217;m handing in my final project for my CS studies. This project is built in C#, and I was looking for a way to automatically create documentation that will aid browsing and understanding the main classes and their functions.
A friend had told me about Sandcastle and I looked it up. Sandcastle is a project [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow I&#8217;m handing in my final project for my CS studies. This project is built in C#, and I was looking for a way to automatically create documentation that will aid browsing and understanding the main classes and their functions.</p>
<p>A friend had told me about Sandcastle and I looked it up. <a href="http://sandcastle.codeplex.com/">Sandcastle</a> is a project by Microsoft, that is intended to create MSDN-style documentation from .NET assemblies&#8230;</p>
<p><span id="more-76"></span>I had managed to achieve my goal quite easily using Sandcastle, and I thought about sharing my experience to serve other people as a guide. This is just a quick write-up of what I did &#8211; I did not read Sandcastle&#8217;s documentation and I believe that I don&#8217;t know how to operate it to its full potential.</p>
<ol>
<li>The first step is to <a href="http://sandcastle.codeplex.com/">download</a> and install Sandcastle.</li>
<li>Next, if you haven&#8217;t done it already, you have to tell Visual Studio to build XML documentation files. This parses all your comments ( in the C# format ///&lt;summary&gt; etc&#8230;) and creates an XML file that we will feed into Sandcastle. To enable XML documentation, you have to go to Proect-&gt;(Project Name) Properties&#8230; and tick the relevant checkbox in the Build menu:<img class="alignnone size-full wp-image-77" title="builddoc" src="http://www.bonf.net/wp-content/uploads/2009/03/builddoc.png" alt="builddoc" width="790" height="666" /></li>
<li>We will now launch the Sandcastle GUI application, located in C:\Program Files\Sandcastle\Examples\generic ( replace C:\Program Files with wherever you had installed Sandcastle).</li>
<li>Add your assemblies (exe/dll) and XML comments file to the relevant list boxes and choose the desired output format. Enter you project name under &#8220;Name&#8221;.</li>
<li>Hit &#8220;Build&#8221;. The build process can take a while, and it may seem like the program is frozen, but it&#8217;s not.</li>
<li>Your documentation files should now be ready in  C:\Program Files\Sandcastle\Examples\Your Project Name</li>
<li>If you chose CHM as an output format, you will now have to compile the CHM file. To do this you need to download and install <a href="http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&amp;displaylang=en">Microsoft HTML Help Workshop</a></li>
<li>After installing HTML Help Workshop, you will have to run hhc.exe (from the directory where you installed it). hhc takes an hhp (HTML Help Project) file as an argument. Sandcastle has created this hhp file for you, and it should be in your Sandcastle project directory. Just run &#8220;hhc yourproject.hhp&#8221; and this will produce a CHM file in the project&#8217;s directory.</li>
</ol>
<p>That&#8217;s it. You should now have your compiled CHM help file with nice MSDN-style documentation.</p>
<p>As I mentioned earlier, I don&#8217;t really know Sandcastle and will be happy to get some tips in the comments section if you have any.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/0V49Y3Rk1EU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/03/04/create-c-documentation-using-sandcastle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wikislate.com is up!</title>
		<link>http://www.bonf.net/2009/02/20/wikislatecom-is-up/</link>
		<comments>http://www.bonf.net/2009/02/20/wikislatecom-is-up/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 08:55:47 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[wiki]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[wikipedia]]></category>
		<category><![CDATA[wikislate]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=68</guid>
		<description><![CDATA[Zeke&#8217;s comment about Wikislate being down has inspired me to fix and upgrade my script.
I have also decided to put it under a new domain of its own &#8211; wikislate.com
There&#8217;s a bunch of new features (because the old script was so basic&#8230;) that focus on ease of use.
Wikislate is a tool for translating nouns, and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://zeke.sikelianos.com/">Zeke</a>&#8217;s comment about <a href="http://www.bonf.net/2007/06/09/translation-through-wikipedia/">Wikislate</a> being down has inspired me to fix and upgrade my script.</p>
<p>I have also decided to put it under a new domain of its own &#8211; <a href="http://www.wikislate.com">wikislate.com</a></p>
<p>There&#8217;s a bunch of new features (because the old script was so basic&#8230;) that focus on ease of use.</p>
<p><a href="http://www.wikislate.com">Wikislate</a> is a tool for translating nouns, and was designed for translation of technical terms. It uses Wikipedia as its data-source and automates a process that I was doing manually for a while, and is described in <a href="http://elzr.com/posts/wikipedia-as-a-translator-of-nouns">elzr&#8217;s blog</a> and in my <a href="http://www.bonf.net/2007/06/09/translation-through-wikipedia/">introduction of the old version</a>.</p>
<p>Enjoy =)</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/dSjFo_YTY7k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/02/20/wikislatecom-is-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Reclusa Keyboard Backlight Mod</title>
		<link>http://www.bonf.net/2009/01/30/reclusa-keyboard-backlight-mod/</link>
		<comments>http://www.bonf.net/2009/01/30/reclusa-keyboard-backlight-mod/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 20:23:36 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[diy]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[transistor]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=52</guid>
		<description><![CDATA[make some use out of the useless scroll lock!
a tale about how I hacked a mint keyboard backlight when I was supposed to study.


My dad brought me the Microsoft/Razer Reclusa keyboard earlier today. I did not ask for it, but I did like the idea of upgrading my ~10 years old keyboard.
It turned out to [...]]]></description>
			<content:encoded><![CDATA[<p>make some use out of the useless scroll lock!</p>
<p>a tale about how I hacked a mint keyboard backlight when I was supposed to study.</p>
<p><a href="http://www.bonf.net/2009/01/30/reclusa-keyboard-backlight-mod/"><img class="alignnone size-full wp-image-59" title="The Keyboard" src="http://www.bonf.net/wp-content/uploads/2009/01/scroll_0.jpg" alt="" width="500" height="275" /></a></p>
<p><span id="more-52"></span></p>
<p>My dad brought me the Microsoft/Razer Reclusa keyboard earlier today. I did not ask for it, but I did like the idea of upgrading my ~10 years old keyboard.</p>
<p>It turned out to be a nice keyboard. I wouldn&#8217;t say it&#8217;s really a &#8220;gamer&#8221; keyboard ( unlike the wolfclaw etc ), but it&#8217;s got a nice feel to it, and that&#8217;s what matters to me.</p>
<p>While trying it out, I found the backlight to be quite annoying in daylight, even a bit straining the eye. I quickly installed the keyboard&#8217;s software and looked around for a way to turn it off. Failing to find one, I googled around, and the results indicated that <strong>the backlight cannot be turned off.</strong></p>
<p>The keyboard is brand new, so it was a bit hard for me to decide, but I knew what had to be done. <strong>I had to pry it open and install a backlight switch!</strong></p>
<p>I later decided it would be much more elegant to hook a transistor to the Scroll Lock LED to do the switching, rather than having an external mechanical switch. I knew it was generally possibly, but was not sure about the wiring.</p>
<p><a title="Disassembly" href="http://techgage.com/article/microsoft_reclusa_gaming_keyboard/2">This review</a> was very helpful when taking the keyboard apart. I found it after I had already unscrewed all the bottom screwes except the hidden one, so it had saved me from possibly breaking the bottom plate. It had also served in guiding me to the LEDs.</p>
<p><a href="http://www.rason.org/Projects/transwit/transwit.htm">This page</a> served as a guideline for creating the switch. At first I tried the second diagram, using an NPN transistor ( I never use a PNP before, even though I had a few ). I hooked the Base lead of the NPN transistor to the + end of the LED, and the Emitter and Collector as shown in the diagram. When I connected the keyboard, I immediatly realised that I did a mistake.</p>
<p>The LEDs in the keyboard ( and if I&#8217;m not mistaken, generally in electrical circuits ) are toggled by their ground pin, the +V is always positive. I then realised I had to use a PNP transistor as shown in the first switch diagram.</p>
<p>It is important to note that if you don&#8217;t push the transistor to its saturated state ( if I understand correctly ) , the output will be lower that it should. I skipped the extra resistor because I can barely solder and I was too lazy to calculate or measure ( lost my multimeter ) the required values. I really don&#8217;t care about how bright the backlight shines anyway&#8230;</p>
<p>My soldering skills are horrible, and most of the time I relied on sheer luck. Here are some action shots:</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/01/scroll_1.jpg"><img class="alignnone size-full wp-image-54" title="Connecting to the LED" src="http://www.bonf.net/wp-content/uploads/2009/01/scroll_1.jpg" alt="" width="500" height="595" /></a></p>
<p><a href="http://www.bonf.net/wp-content/uploads/2009/01/scroll_2.jpg"><img class="alignnone size-full wp-image-55" title="The completed circuit" src="http://www.bonf.net/wp-content/uploads/2009/01/scroll_2.jpg" alt="" width="500" height="430" /></a></p>
<p>Now I can turn the backlight on and off whenever I want!</p>
<div>
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3028873&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3028873&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><br /><a href="http://vimeo.com/3028873">Reclusa Keyboard Backlight Mod</a> from <a href="http://vimeo.com/user1237157">Ben Bonfil</a> on <a href="http://vimeo.com">Vimeo</a>.
</div>
<p>PLEASE NOTE that the information above can and will cause damage to you and your surrounding. you have a high chance of breaking your keyboard and/or PC, and setting your house on fire. I am not responsible if you&#8217;re stupid enough to try it with as little background knowledge as I have.</p>
<p>However, if you do make this mod to your keyboard, please let me know!</p>
<p><strong>The next step is to create a Gmail notifier that will flash the keyboard whenever new mail arrives =)</strong></p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/zHSFRG09y5g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/01/30/reclusa-keyboard-backlight-mod/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Generating Random Unicode Strings in C#</title>
		<link>http://www.bonf.net/2009/01/14/generating-random-unicode-strings-in-c/</link>
		<comments>http://www.bonf.net/2009/01/14/generating-random-unicode-strings-in-c/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 21:05:41 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=46</guid>
		<description><![CDATA[I have to admit this is quite a dull subject, but I thought it might help some guys( and gals! ) out there.
I am working on a C# project for uni, and while fighting some pesky bugs, I decided I should get more organized and have a small &#8220;unit testing&#8221; framework built for it.
I had [...]]]></description>
			<content:encoded><![CDATA[<p>I have to admit this is quite a dull subject, but I thought it might help some guys( and gals! ) out there.</p>
<p>I am working on a C# project for uni, and while fighting some pesky bugs, I decided I should get more organized and have a small &#8220;unit testing&#8221; framework built for it.</p>
<p>I had a need for random generated Unicode strings, and quick googling turned up no results. Instead of doing some broaded searching, I decided I could learn more by writing my own code:<br />
<span id="more-46"></span></p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">class</span> RandomUnicodeString
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">private</span> Random _r<span style="color: #008000;">;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> RandomUnicodeString<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            _r <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Random<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
&nbsp;
        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> GetString<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> length<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #FF0000;">byte</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> str <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">byte</span><span style="color: #000000;">&#91;</span>length <span style="color: #008000;">*</span> <span style="color: #FF0000;">2</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&lt;</span> length <span style="color: #008000;">*</span> <span style="color: #FF0000;">2</span> <span style="color: #008000;">;</span> i<span style="color: #008000;">+=</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #FF0000;">int</span> chr <span style="color: #008000;">=</span> _r.<span style="color: #0000FF;">Next</span><span style="color: #000000;">&#40;</span>0xD7FF<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                str<span style="color: #000000;">&#91;</span>i<span style="color: #008000;">+</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">byte</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>chr <span style="color: #008000;">&amp;</span> 0xFF00<span style="color: #000000;">&#41;</span> <span style="color: #008000;">&gt;&gt;</span> <span style="color: #FF0000;">8</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                str<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">byte</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>chr <span style="color: #008000;">&amp;</span> 0xFF<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #0600FF;">return</span> Encoding.<span style="color: #0000FF;">Unicode</span>.<span style="color: #0000FF;">GetString</span><span style="color: #000000;">&#40;</span>str<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span></pre></div></div>

<p>At first I had the string generation in the constructor, but it caused repeated strings, as I was using it in a loop, and newly created <em>Random</em> objects were using the same seed. More on this can be found in <a href="http://www.guyrutenberg.com/2007/09/03/seeding-srand/">Guy&#8217;s blog</a>.</p>
<p>If you want to limit the string to be of a specific language, there&#8217;s a reference of unicode mapping on <a href="http://en.wikipedia.org/wiki/Basic_Multilingual_Plane">Wikipedia</a>, just change _r.Next to use those limits.</p>
<p>There&#8217;s probably a better way for converting bytes to unicode chars, and this may not work on a little/big endian machine, but I don&#8217;t know enough about C# to tell for sure.</p>
<p>If you got here from google and this solved your coding problem, please post a comment ! =)</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/aXMEaTtetqU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2009/01/14/generating-random-unicode-strings-in-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Art of Keygens</title>
		<link>http://www.bonf.net/2008/12/07/the-art-of-keygens/</link>
		<comments>http://www.bonf.net/2008/12/07/the-art-of-keygens/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 18:30:26 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[proof-of-concept]]></category>

		<guid isPermaLink="false">http://www.bonf.net/?p=40</guid>
		<description><![CDATA[If you ever used pirated software, you had probably used a keygen at some point. It could have also been a patcher, or a cracked installer, and sometimes even a trainer. Many times, these pieces of software are more than just a standard form with two text boxes.

Here are some examples:


What drew me into researching [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever used pirated software, you had probably used a keygen at some point. It could have also been a patcher, or a cracked installer, and sometimes even a trainer. Many times, these pieces of software are more than just a standard form with two text boxes.</p>
<p><span id="more-40"></span></p>
<p>Here are some examples:</p>
<p><a href="http://www.bonf.net/wp-content/uploads/2008/12/keygen1.jpg"><img class="alignnone size-medium wp-image-41" title="keygen1" src="http://www.bonf.net/wp-content/uploads/2008/12/keygen1.jpg" alt="" width="300" height="186" /></a></p>
<p><a href="http://www.bonf.net/wp-content/uploads/2008/12/keygen2.jpg"><img class="alignnone size-medium wp-image-42" title="keygen2" src="http://www.bonf.net/wp-content/uploads/2008/12/keygen2.jpg" alt="" width="300" height="258" /></a></p>
<p>What drew me into researching this topic, and writing this post, is not the visual presentation (which can sometimes include stunning effects), but rather the great music that accompanies many keygens.</p>
<p>It seems like keygen music dates back to <em>Cracktros</em> ( <a onclick="javascript:urchinTracker('/outbound/en.wikipedia.org/wiki/Cracktro');" href="http://en.wikipedia.org/wiki/Cracktro">Wikipedia</a> ) which were audio-visual intro, added to cracked software by release groups. This, in time, have spawned the <em>Demoscene</em>( <a onclick="javascript:urchinTracker('/outbound/en.wikipedia.org/wiki/Demoscene');" href="http://en.wikipedia.org/wiki/Demoscene">Wikipedia</a> ) whose members are focused on pushing the envelope of real-time computer generated “demos” ( = audio-visual presentations ) , many times within a tight code size limit. There are really impressive demos out there, and it seems like an area I’d like to explore more in the future.</p>
<p>Back to keygens. So, as a relic of those <em>Cracktros</em>, modern keygens feature great tunes, many reminiscent of old game console. There’s actually a website dedicated to ripping and archiving keygen music &#8211; <a onclick="javascript:urchinTracker('/outbound/www.keygenmusic.net');" href="http://www.keygenmusic.net/">KEYGENMUSiC</a>. I have decided to find out how those tunes are created and embedded in the EXEs.</p>
<p>My research has brought me to <a onclick="javascript:urchinTracker('/outbound/www.madtracker.org/main.php');" href="http://www.madtracker.org/main.php">MadTracker</a> a modern music composition (or rather <em>“Tracking”</em>) tool, based on an older DOS application called FastTracker(<a onclick="javascript:urchinTracker('/outbound/en.wikipedia.org/wiki/FastTracker_2');" href="http://en.wikipedia.org/wiki/FastTracker_2">Wikipedia</a>). It seems like the most common format for <em>Tracker</em> music is XM, so I decided to use that format too. This format contains both samples (of the instruments you use for your track) and note information (how to sequence those samples). There’s also support for some effects, but I didn’t get to those.</p>
<p>Here’s my very first XM track, composed in MadTracker using the bundled samples &#8211; <a href="http://www.bonf.net/wp-content/uploads/2008/12/first.xm">first</a></p>
<p>The next step was embedding it in a small application. For this purpose, I had found the <a onclick="javascript:urchinTracker('/outbound/ufmod.sourceforge.net');" href="http://ufmod.sourceforge.net/">uFMOD</a> library, which is a tiny library for playing XM and other formats. uFMOD comes bundled with many helpful code samples for different programming languages. I chose to use C.</p>
<p>Rather then try to explain how to use uFMOD, I refer you to those samples, as you can learn off them to a greater extent than my knowledge. I will, however, provide you with a minimal example of uFMOD usage, with first.xm embedded in it.</p>
<p>The method that I had chosen for embedding the track was as a resource ( defined in a .rc file ). uFMOD comes with an utility called Eff, which can create an rc formatted hex dump of your XM file, when passed /Ds as an argument.</p>
<p>Here’s my sample, with a Visual Studio 2005 Express solution &#8211; <a href="http://www.bonf.net/wp-content/uploads/2008/12/minimal.zip">minimal</a></p>
<p>I hope you enjoyed this quick intro. It really is very simple to create and embed keygen music. If you happen to compose any tracks, please post them in the comments section!</p>
<p>I may post a follow-up in the future about how to create the custom shaped forms seen in the above examples.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/BLexBiKSeLE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2008/12/07/the-art-of-keygens/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>DIY Cheap-o Looper Effect</title>
		<link>http://www.bonf.net/2008/03/23/diy-cheap-o-looper-effect/</link>
		<comments>http://www.bonf.net/2008/03/23/diy-cheap-o-looper-effect/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 12:39:43 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[diy]]></category>
		<category><![CDATA[guitar effects]]></category>
		<category><![CDATA[proof-of-concept]]></category>

		<guid isPermaLink="false">http://www.bonf.net/2008/03/23/diy-cheap-o-looper-effect/</guid>
		<description><![CDATA[&#8230; I&#8217;m surprised with what I&#8217;m able to do when I&#8217;m supposed to be doing homework.
Here&#8217;s my latest project, it&#8217;s less than 24 hours old =)
I&#8217;ve always wanted a looper effect, like the boss loopstation, mainly because the online demos were so neat. Being a bass player, I though it would help me practice with [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; I&#8217;m surprised with what I&#8217;m able to do when I&#8217;m supposed to be doing homework.</p>
<p>Here&#8217;s my latest project, it&#8217;s less than 24 hours old =)</p>
<p>I&#8217;ve always wanted a looper effect, like the boss loopstation, mainly because the online demos were so neat. Being a bass player, I though it would help me practice with drum loops, but it&#8217;s just not worth the money unless you&#8217;re going to use it live. I ended up playing drum samples on my PC and playing along on the bass.</p>
<p>more (and video) after the break<br />
<span id="more-39"></span><br />
About 2 weeks ago, a friend asked me about creating a digital recording circuit, for a project (which will be posted here when completed, going to stay a secret for now). Some online searching brought us to a keychain digital recorder product. After comparing some models, we found one that had 60 seconds of recording time, and we got 2 of it off ebay. I then came up with the idea to use this little recorder as a guitar looping effect, and wondered how it will handle it.</p>
<p>Yesterday, we met and started to disassemble and test this unit. We hooked it up to the Arduino, powered it from the 3.3V supply, and tested the &#8220;button press emulation&#8221;. We later went to a friend for a BBQ. When I came back home, I decided to continue experimentation. I had desoldered the microphone and speaker from the unit, and soldered some more hook-up wire. I had some problems with getting the circuit to function properly, I think I had a short circuit somewhere. I went to sleep without getting it to work.</p>
<p>This morning, I had a day off work, and decided to continue this little project.  I soldered some more wire to replace problematic alligator clips positioning, and everything worked again. I connected my guitar to where the mic was, changed the Arduino code a little, and fired it up. You can see it in action on the following video:</p>
<p><a href="http://www.youtube.com/watch?v=1GkihSHkpRI"><img src="http://img.youtube.com/vi/1GkihSHkpRI/default.jpg" width="130" height="97" border=0></a></p>
<p>And here&#8217;s the simple arduino code:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">int</span> recPin <span style="color: #339933;">=</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> playPin <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">//prepare pins for output</span>
    pinMode<span style="color: #009900;">&#40;</span>recPin<span style="color: #339933;">,</span>OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>recPin<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    pinMode<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">//wait and then record a 5 second loop</span>
    delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">5000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>recPin<span style="color: #339933;">,</span>LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//&quot;hold down&quot; rec button</span>
    delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">5000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>recPin<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//release it</span>
    delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// to pass debouncing</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        digitalWrite<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        digitalWrite<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">4970</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        digitalWrite<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//emulate a second click, this will stop playing the sample, and will be ready to play</span>
        <span style="color: #666666; font-style: italic;">//again in the next loop iteration</span>
        delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        digitalWrite<span style="color: #009900;">&#40;</span>playPin<span style="color: #339933;">,</span>HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">30</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>When I continue working on it, I will need to build some sort of preamp for the output signal. I will also recreate the Arduino program on a PIC 12F675 (or whatever the model number is) of which I have quite a few. There&#8217;s also need for better timing, and a pushbutton to start/stop loop recording (and adjust the length of the loop accordingly).</p>
<p>I hope to get it to a usable state, and have some creative fun with it. Now it&#8217;s time to get back to my homework in algebraic structures.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/FWi4uQbmP0k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2008/03/23/diy-cheap-o-looper-effect/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[sic] – simple ipod converter</title>
		<link>http://www.bonf.net/2008/03/17/sic-simple-ipod-converter/</link>
		<comments>http://www.bonf.net/2008/03/17/sic-simple-ipod-converter/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 19:36:29 +0000</pubDate>
		<dc:creator>Ben</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://www.bonf.net/2008/03/17/sic-simple-ipod-converter/</guid>
		<description><![CDATA[&#8230;and why developing for Windows is not fun.
Behold, a one-click way to convert your videos to a format playable by your iPod!
[sic]
Well, here&#8217;s my latest project. I&#8217;ve started it to provide my sister with a simple way to convert her videos, so that she could finally watch them on her shiny 6G iPod.
The result is [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;and why developing for Windows is not fun.</p>
<p>Behold, a one-click way to convert your videos to a format playable by your iPod!</p>
<p><a href="http://sic.bonf.net"><img src="http://sic.bonf.net/screen.png" alt="[sic]" height="219" width="231" />[sic]</a><br />
Well, here&#8217;s my latest project. I&#8217;ve started it to provide my sister with a simple way to convert her videos, so that she could finally watch them on her shiny 6G iPod.<br />
The result is this simple ffmpeg frontend, built to run on Windows, with the goal of ease of use.</p>
<p>At this point it is rather limited, and I&#8217;m not sure if I will ever work on it again.<br />
I&#8217;ve actually continued working on it after the uploaded build, but I have come to a <em>dead-end</em> with the Win32 API.<br />
I chose to work with the bare API because I did not want to do it in C#, and, well, as far as I know, there are no many other options.</p>
<p>Why not C#? Even though the .NET Framework is widely available, I thought it was too much for a couple of buttons that launch an exeternal application.<br />
I did not want to use MFC, because I&#8217;m unfamilar with it, and last time I used it it felt over-complex and messy. It also requires additional Dlls, or huge executable.</p>
<p>So Win32 API it was. I fired up Emacs (my new tool of the trade) and started coding.<br />
As long as my code was a mess (i.e. <strong>C</strong> style coding, global vars etc ), everything was smooth and fun. I then wanted to add a system tray notification icon, and thought it would be<br />
a good idea to create it inside a class, for use in later projects. This is where things started to break. I spent some hours researching methods to connect my window procedure to<br />
members of my class. The solution involved an assembly hack. While interesting, I wanted nothing of it.</p>
<p>During my research, I came across WTL, which sounds just like what I was looking for. If/When I continue this project and/or develop another Windows application, it&#8217;s going to be in WTL.<br />
Though I did find the lack of documentation annoying.</p>
<p>As a side note, I have to find out what utorrent used.</p>
<p>That&#8217;s it for now, hope someone will find it useful.</p>
<img src="http://feeds.feedburner.com/~r/bonf/~4/1zLpKPxaOpM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.bonf.net/2008/03/17/sic-simple-ipod-converter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
