<?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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
<channel>
<title>Fixnum.org</title>
<description>This is the blog of Wim Vander Schelden, a student of
Computer Science. I post my random thoughts here, mostly concerning Unix,
open-source, and computing.</description>
<link>http://fixnum.org/</link>
<docs>http://feeds.feedburner.com/wvdschel/nanoblog</docs>
<generator>ramaze</generator>
<managingEditor>wim@fixnum.org</managingEditor>
<webMaster>Wim Vander Schelden</webMaster>


  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/wvdschel/nanoblog" type="application/rss+xml" /><item>
  <title>Twitsy - A Twitter Client for Mobile Phones</title>
  
  <description>&lt;p&gt;If you follow me on &lt;a href='http://twitter.com/wvdschel'&gt;Twitter&lt;/a&gt;, you may have noticed that a few days ago, &lt;a href='http://twitter.com/wvdschel/status/2102748664'&gt;I released a little Twitter client&lt;/a&gt;, targetted at simple feature-phones (and obviously smartphones) with Java support. This means it should work on every mobile phone out there, except for the iPhone. This is what it looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src='http://dl.getdropbox.com/u/197940/twitsy.gif' alt='Screencast of Twitsy' /&gt;&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve been looking for a free Twitter client for my Nokia E61 for a while now, but all the Java clients are really, really limited, unusable or just ugly. I like &lt;a href='http://mobileways.de/products/gravity/gravity/'&gt;Gravity&lt;/a&gt; and even considered buying it, but it&amp;#8217;s not worth the €8 (10% of the price of my phone!).&lt;/p&gt;

&lt;p&gt;So I decided to roll my own Twitter client, it&amp;#8217;s called Twitsy and you can get it at &lt;a href='http://fixnum.org/twitsy' title='Twitsy - A Twitter Client for Mobile Phones'&gt;fixnum.org/twitsy&lt;/a&gt;. Let me know what you think, especially if you run into trouble.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hWPeWO1EsUhrCnEYxN4Jlei-1sg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hWPeWO1EsUhrCnEYxN4Jlei-1sg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hWPeWO1EsUhrCnEYxN4Jlei-1sg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hWPeWO1EsUhrCnEYxN4Jlei-1sg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/Si9GMyZ4Zvg" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/Si9GMyZ4Zvg/twitsy</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2009/twitsy</feedburner:origLink></item>


  <item>
  <title>Building the E text editor on Fedora 10</title>
  
  <description>&lt;p&gt;&lt;a href='http://e-text-editor.com'&gt;E&lt;/a&gt; is a brilliant text editor: it&amp;#8217;s simple, light weight, and has all the features I want from an editor. In fact, most of these were shamelessly stolen from &lt;a href='http://macromates.com'&gt;TextMate&lt;/a&gt;, which is everyone&amp;#8217;s preferred editor on the Mac, but that&amp;#8217;s not the point. The people behind the E text editor have released their source code under a &lt;a href='http://e-texteditor.com/blog/2009/releasing-the-source'&gt;strange, not-quite-open-source license&lt;/a&gt;. While it&amp;#8217;s a shame they didn&amp;#8217;t really open source this little gem of an application, they did give us Linux users free play:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;The editor could not have been build without the support of a lot of open source projects (most notably wxWidgets). So to give back, the Linux version will be totally free (as in beer).&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;To satisfy my addiction with block-selection in text files, I decided to download the source and try getting it to build.&lt;/p&gt;

&lt;p&gt;&lt;a href='/public/e/e_on_fedora.png'&gt;&lt;img src='/public/e/e_on_fedora_small.png' alt='Screenshot of E on my Fedora' /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id='packages_required'&gt;Packages required&lt;/h2&gt;

&lt;p&gt;E depends on quite a bit of packages, most of which are missing from your average Fedora installation. E also uses a slightly modified WebKit, it seems, which in turn has a collection of dependencies you&amp;#8217;ll have to satisfy. I&amp;#8217;m assuming you have all the required build tools installed.&lt;/p&gt;

&lt;p&gt;To install all dependencies for E, run this as root:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;yum install wxGTK-devel glib2-devel atk-devel libcurl-devel libtomcrypt-devel libtommath-devel&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And in order to be able to build WebKit, you&amp;#8217;ll need to do the following:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;yum install libxml2-devel libxslt-devel libsqlite3x-devel libicu-devel libjpeg-devel gperf&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='bakefile'&gt;Bakefile&lt;/h2&gt;

&lt;p&gt;You&amp;#8217;ll also need Bakefile, a system that generates platform-specific makefiles for cross platform projects. Unfortunately, they do not provide Fedora RPMs, nor is the package available in the default repositories. You can however simply download a tarball &lt;a href='http://sourceforge.net/project/downloading.php?groupname=bakefile&amp;amp;filename=bakefile-0.2.6.tar.gz'&gt;here&lt;/a&gt;, and then unleash rpmbuild on the archive:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;rpmbuild -ta bakefile-0.2.6.tar.gz
sudo rpm -i ~/rpmbuild/RPMS/*/bakefile-0.2.6-1.i386.rpm&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='getting_the_source'&gt;Getting the source&lt;/h2&gt;

&lt;p&gt;Now we can finally download the actual E code and start building. To get the code, run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone git://github.com/etexteditor/e.git&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make sure the path to the source code doesn&amp;#8217;t contain any spaces, since WebKit can&amp;#8217;t handle those.&lt;/p&gt;

&lt;h2 id='externals'&gt;Externals&lt;/h2&gt;

&lt;p&gt;First, we need to build all the dependencies that come with E. To download these, move into the &lt;code&gt;externals&lt;/code&gt; and run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;./get_externals_linux.sh&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Then you can go ahead and build them:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;./build_externals_linux.sh debug&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='building_e'&gt;Building E&lt;/h2&gt;

&lt;p&gt;With all that out of the way, we can finally build E itself. Move into the &lt;code&gt;src&lt;/code&gt; folder of the source tree (that&amp;#8217;s &lt;code&gt;cd ../src&lt;/code&gt; if you&amp;#8217;re coming from the externals folder). &lt;del&gt;One minor issue with building on Fedora is that we're using the libtomcrypt that's included in the repositories, not the one we built ourselves. Because of this, make is looking in all the wrong places to find the include files, but a small modification to the `Makefile` will set that straight. So fire up your favourite editor, open `Makefile` and look for a line like this:&lt;/del&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;INCLUDES = $(WXINCLUDES) $(OURINCLUDES) $(GTKINCLUDES) -I../ecore -I.&lt;/code&gt;&lt;/pre&gt;
&lt;del&gt;and change it to:&lt;/del&gt;
&lt;pre&gt;&lt;code&gt;INCLUDES = $(WXINCLUDES) $(OURINCLUDES) $(GTKINCLUDES) -I../ecore -I. -I/usr/include/tomcrypt&lt;/code&gt;&lt;/pre&gt;
&lt;del&gt;There's also a bug I found and fixed ([details](http://e-texteditor.com/forum/viewtopic.php?t=3174)), which stops E from displaying most files in the Project Pane. To fix it just run:&lt;/del&gt;
&lt;pre&gt;&lt;code&gt;wget http://fixnum.org/public/e/projectpane_icons_fix.patch
patch -p1 projectpane_icons_fix.patch&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: This is no longer needed, E now builds fine with the libtomcrypt found in the externals directory and this patch (and many more I and other people made) have been merged into the master tree.&lt;/p&gt;

&lt;p&gt;And now we&amp;#8217;re finally ready to start the actual building:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;make DEBUG=1&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So now you have a fine, shiny E binary that listens to the name &lt;code&gt;e.debug&lt;/code&gt;. It&amp;#8217;s a healthy little baby, but a little on the chubby side, weighing in at 256MB. To trim it to 25MB, you can use &lt;code&gt;strip&lt;/code&gt;, which removes a bunch of debugging information:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;strip e.debug -o e.stripped&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id='and_then_it_all_comes_crashing_down'&gt;And then it all comes crashing down&lt;/h2&gt;

&lt;p&gt;Now when you fire E up, it greets you with a nice &amp;#8220;assertion failed&amp;#8221; dialog window. No big deal, you think, clicking continue to get rid of it. But whenever you type something in the editor area, you get another one. At first, I was a bit startled by this, and thought it was just plain broken. However, it turns out that it&amp;#8217;s just because E doesn&amp;#8217;t have any language bundles installed, and the syntax highlighting can&amp;#8217;t handle not finding any bundles. You&amp;#8217;ll also need some themes, if you want your code to look all shiny and colourful. I&amp;#8217;ve uploaded a tarball with all themes and bundles available, to install all this, run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;wget http://fixnum.org/public/e/e-bundles-themes.tgz
tar xzf e-bundles-themes.tgz -C ~/.e/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;At this point, you should have a nice, semi-working E running on your system. Sure, you&amp;#8217;ll run into some of those nasty assertion failures from time to time, but isn&amp;#8217;t that what living on the edge is all about?&lt;/p&gt;

&lt;h2 id='problems_fixes'&gt;Problems? Fixes?&lt;/h2&gt;

&lt;p&gt;If you run into a problem following my instructions, or possibly even a fix for said problem, feel free &lt;a href='/about'&gt;let me know&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BUOmqsJLbD2iT8XdFR1rxB4Xrxo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BUOmqsJLbD2iT8XdFR1rxB4Xrxo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BUOmqsJLbD2iT8XdFR1rxB4Xrxo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BUOmqsJLbD2iT8XdFR1rxB4Xrxo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/ZeZyR8LC9w4" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/ZeZyR8LC9w4/e_on_fedora</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2009/e_on_fedora</feedburner:origLink></item>


  <item>
  <title>My first computer</title>
  
  <description>&lt;p&gt;I came across a picture of the first computer I ever used on the internet, and I couldn&amp;#8217;t resist posting. Meet the Toshiba T1600SE, a &amp;#8220;portable&amp;#8221; powered by a 6 MHz i286 (with a fancy turbo feature, doubling the speed to a whopping 12 MHz). It had 1MB of RAM and an incredible 20MB hard drive.&lt;/p&gt;

&lt;p&gt;&lt;img src='/images/articles/T1600.jpg' alt='Toshiba T1600' /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunatly, as time passed and this laptop was no longer being used, my mother - who never throws &lt;em&gt;anything&lt;/em&gt; away - put two of these beauties out with the garbage.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RO15bvYC34uqhelOqhG91kfGbPw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RO15bvYC34uqhelOqhG91kfGbPw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RO15bvYC34uqhelOqhG91kfGbPw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RO15bvYC34uqhelOqhG91kfGbPw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/-0hlaLmIr4Y" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/-0hlaLmIr4Y/my_first_computer</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2008/my_first_computer</feedburner:origLink></item>


  <item>
  <title>I'm back (again)</title>
  
  <description>&lt;p&gt;I&amp;#8217;m back. Yes, I know I&amp;#8217;ve said that &lt;a href='/blog/2006/im_back'&gt;before&lt;/a&gt;. The reason for the apparent death of my fabulous weblog was the loss of its source code and the lack of proper backups. That, and of course my lazyness to fix the site back up.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve since learned my lesson, and I&amp;#8217;ve started using &lt;a href='http://getdropbox.com'&gt;Dropbox&lt;/a&gt; to provide me with fresh, juicy backups of everything I make. I can very much recommend it to everyone, except the rare soul running on KDE, BSD or Solaris (no support for you oddballs!).&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve found the time to rewrite and redesign my blog (pretty, isn&amp;#8217;t it? I tried to go for the web 2.0 clich&amp;#233; look). Under the hood, I&amp;#8217;ve used &lt;a href='http://ramaze.com'&gt;ramaze&lt;/a&gt;, an amazingly powerful yet simple web framework for Ruby. For the storage, I&amp;#8217;ve written my own old-school flat-file database system, so I can easlily backup both my site and data.&lt;/p&gt;

&lt;p&gt;So, after all this time, a lot must have changed. Tell you about it? I thought you&amp;#8217;d never ask.&lt;/p&gt;

&lt;h1 id='school'&gt;School&lt;/h1&gt;

&lt;p&gt;I&amp;#8217;ve received my Bachelor&amp;#8217;s Degree in Informatics in June this year, and started my Master in Computer Science: Software Engineering in September. We&amp;#8217;ve had lots of projects and work, most of which I hate(d), but I&amp;#8217;ve learned a lot about web applications and corporate systems thanks to them. If only I cared about those in the slightest.&lt;/p&gt;

&lt;h1 id='work'&gt;Work&lt;/h1&gt;

&lt;p&gt;This summer, I worked at &lt;a href='http://curious.be'&gt;Curious.be&lt;/a&gt;, a small software development company. They mainly develop web applications, and have recently decided to do all future development in Ruby. They let me pick my own tools for each task, and allow me to work on their more challenging projects. I&amp;#8217;ve since continued to work for them every now and then as a freelance developer.&lt;/p&gt;

&lt;h1 id='play'&gt;Play&lt;/h1&gt;

&lt;p&gt;I&amp;#8217;ve bought lots of new toys and learned lots of new things since I last blogged. I bought a Thinkpad SL300, which isn&amp;#8217;t all that bad, but certainly shouldn&amp;#8217;t be called a Thinkpad in terms of reliability. Linux support on it is less then ideal, with battery life being about an hour less than on Windows. It also fails to pick up a few wireless access points, including my own.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;ve happily been running Windows Vista Business for quite some time now, and I really don&amp;#8217;t understand why everyone dislikes it so much. Sure, it&amp;#8217;s a little on the heavy side, but if you have a newer machine, it&amp;#8217;s actually not that bad. I even dare to say it&amp;#8217;s quite good. And coming from a Linux command line junkie like myself, that means something.&lt;/p&gt;

&lt;p&gt;All things considered however, I&amp;#8217;m probably going to give OpenSolaris another try when they get my wireless working. I&amp;#8217;ve given it a test spin, and it&amp;#8217;s moving at such an incredible pace. Only 6 months ago, their hardware support was terrible: it didn&amp;#8217;t even run properly on a 2-year-old desktop with probably the most popular components in computer history. Now however, it supports everything on my new laptop out of the box, except for a tiny PCIID bug in the wireless driver. I&amp;#8217;m very impressed.&lt;/p&gt;

&lt;p&gt;I&amp;#8217;m also trying to play around with Squeak a bit, whenever I find the time. Once I understand enough of it, my first job will be to make it look a bit less like kintergarden, because the colours just freak me out.&lt;/p&gt;

&lt;h1 id='see_you_next_week_same_battime_same_batchannel'&gt;See you next week, same bat-time, same bat-channel&lt;/h1&gt;

&lt;p&gt;Well, maybe not next week. But I promise I won&amp;#8217;t be leaving you for a year this time. I&amp;#8217;ll try to blog again before the year is out, and with some useful content, no less!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4GcUhk8hTGAAKNKCyfacprdKBb0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4GcUhk8hTGAAKNKCyfacprdKBb0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4GcUhk8hTGAAKNKCyfacprdKBb0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4GcUhk8hTGAAKNKCyfacprdKBb0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/QaryXW1s2bM" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/QaryXW1s2bM/im_back</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2008/im_back</feedburner:origLink></item>


  <item>
  <title>Print protected PDF files</title>
  
  <description>&lt;p&gt;For those of you who are here to crack password protected PDF files: go away.
I'm not going to explain you how to do that.
I am, however, going to teach you how to get past that annoying print-protection
system built into PDFs.&lt;/p&gt;

&lt;h1&gt;Print protected PDF files?&lt;/h1&gt;

&lt;p&gt;PDF files are all over the Internet, often containing high quality, good looking
gems of knowledge. The point of these PDF files is, of course, to print them.
If not, why would you use a PDF file and not just a web page? I would make
the document much easier to view and navigate.&lt;/p&gt;

&lt;p&gt;So PDF files are meant to be printed, then why do some people prevent you from
printing their PDFs? Often because they want to offer you a preview of their work,
but still giving you a strong incentive to buy their books.&lt;/p&gt;

&lt;p&gt;If this is the case with the PDFs you want to print, be aware that if you use the
method below, you might be breaking laws in your country. I'm not responsible for
any of your actions, and you will burn in hell for violating Adobe's precious DRM. &lt;em&gt;cough&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'm going to assume you want to print a nice, legal PDF document that for some 
reason unknown to man has been print-protected.&lt;/p&gt;

&lt;h1&gt;The tools&lt;/h1&gt;

&lt;p&gt;Ah yes, the tools. For this little task, you will need a few tools. First of all,
you need a tool called &lt;code&gt;pdftoppm&lt;/code&gt;. This is a command line program that will
convert any PDF to a series of 
&lt;a href="http://en.wikipedia.org/wiki/Portable_pixmap"&gt;PPM, PGM or PBM images&lt;/a&gt;.
On Linux and *BSD, you should look for &lt;code&gt;poppler-utils&lt;/code&gt; or &lt;code&gt;xpdf-utils&lt;/code&gt; using the
package manager of your choice. Windows users might want to look at
&lt;a href="http://gnuwin32.sourceforge.net/packages/xpdf.htm"&gt;this&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Other than that, you'll need an image viewer that can print out these images.
On Linux, I use &lt;a href="http://gthumb.sourceforge.net/"&gt;gThumb&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, from your favorite terminal emulator/command prompt you run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;pdftoppm your_protected_pdf_file.pdf prefix_for_image_names
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and you have a shiny set of PPM images. &lt;/p&gt;

&lt;p&gt;These tend to use up huge amounts of disk space. If you want to keep them around, you
should print them to a PostScript or PDF file (Windows users: &lt;a href="http://pdfcreator.sourceforge.net"&gt;PDFCreator&lt;/a&gt;).
If you want to convert them in gray scale to save disk space, add &lt;code&gt;-gray&lt;/code&gt; to the command
line. For monochrome images, use &lt;code&gt;-mono&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gEg7M9kdUJ-9zPiBPCS_BL25r64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEg7M9kdUJ-9zPiBPCS_BL25r64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gEg7M9kdUJ-9zPiBPCS_BL25r64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEg7M9kdUJ-9zPiBPCS_BL25r64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/RyRN_Dg-uT4" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/RyRN_Dg-uT4/print_protected_pdf_files</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2008/print_protected_pdf_files</feedburner:origLink></item>


  <item>
  <title>Concatenate PDF files with Ghostscript</title>
  
  <description>&lt;p&gt;I was looking for a way to concatenate PDF (or Postscript) files on Linux
today, so that I could easily print some coursebook.
Professors have this annoying habit of "conveniently" splitting their books
into one PDF for each chapter.
Very annoying if you want to print a file double-sided (like the environment-conscious geek you are).&lt;/p&gt;

&lt;p&gt;Fortunately, &lt;a href="http://pages.cs.wisc.edu/~ghost/"&gt;Ghostscript&lt;/a&gt; comes to the rescue.
Ghostscript comes standard with just about any Linux distribution, and can be
installed on all other major operating systems as well.&lt;/p&gt;

&lt;p&gt;To concatenate a few PDFs, simply run:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
-sOutputFile=out.pdf 1.pdf 2.pdf 3.pdf 4.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Replace &lt;code&gt;a4&lt;/code&gt; by &lt;code&gt;letter&lt;/code&gt; if you need to print on US Letter pages.
It works just as well using Postscript files, of course.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GpV2WM0AltHrib00nl18K93jC1Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GpV2WM0AltHrib00nl18K93jC1Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GpV2WM0AltHrib00nl18K93jC1Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GpV2WM0AltHrib00nl18K93jC1Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/Lgrp0pLnrsk" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/Lgrp0pLnrsk/concat_pdfs_with_ghostscript</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/concat_pdfs_with_ghostscript</feedburner:origLink></item>


  <item>
  <title>Install any Linux distro from USB</title>
  
  <description>&lt;p&gt;It is a common misconception that installing Linux from a USB key is a difficult
task. It's not. And I'm going to prove it to you in this short article.&lt;/p&gt;

&lt;p&gt;This method is not just useful for machines without an optical drive,
but it also helps you save on writeable CDs/DVDs, and it is are a lot faster
during the install (copying files becomes over 10&amp;times; faster on my system).&lt;/p&gt;

&lt;h1&gt;Get a Linux CD of your choice&lt;/h1&gt;

&lt;p&gt;Pick a distribution, any distribution. While I'm sure there are some that won't
work, or require extra effort to work, most of them will &lt;em&gt;just work&lt;/em&gt;. Just pick
a distribution that will fit onto your USB key. I mostly use network install
disks, because they fit on my USB key without eating up too much space, so I can
still use it for something else.&lt;/p&gt;

&lt;p&gt;I've tried &lt;a href="http://fedora.org"&gt;Fedora Core 8&lt;/a&gt;, &lt;a href="http://archlinux.org"&gt;Arch Linux&lt;/a&gt;,
&lt;a href="http://xubuntu.org"&gt;Xubuntu&lt;/a&gt;, &lt;a href="http://ubuntu.org"&gt;Ubuntu&lt;/a&gt;,
&lt;a href="http://centos.org"&gt;CentOS&lt;/a&gt; and &lt;a href="http://debian.org"&gt;Debian&lt;/a&gt; so far.
All of them worked fine.&lt;/p&gt;

&lt;h1&gt;Mount it&lt;/h1&gt;

&lt;p&gt;On Linux, simply run (as root):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mount -o loop /path/to/iso-file /mnt
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Use a tool like &lt;a href="http://www.slysoft.com/nl/virtual-clonedrive.html"&gt;Virtual Clone Drive&lt;/a&gt;
if you're stuck on Windows.&lt;/p&gt;

&lt;h1&gt;Format your USB key&lt;/h1&gt;

&lt;p&gt;Format your USB key to VFAT if it isn't already formatted that way. If you don't 
know what this means, then you can safely skip this step.
If your new to linux, Windows uses VFAT for all USB keys, so you're safe.&lt;/p&gt;

&lt;p&gt;Note that if it's VFAT-formatted, you don't have to format it or remove the
other files on your USB key. The installer can safely live next to your data.&lt;/p&gt;

&lt;p&gt;On Linux format the disk like this (as root, again):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkfs.vfat /dev/sdX1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;where X is replaced by the letter of your USB key. If you're not smart enough
to find out which letter that is, ask someone else. Use a forum, go on IRC.&lt;/p&gt;

&lt;h1&gt;Run syslinux&lt;/h1&gt;

&lt;p&gt;Now that your key has the right filesystem, we can install the boot loader on
it. A boot loader is a piece of software that tells your computer how to start
running an operating system. On USB keys, there really isn't much choice.
If you want to boot Linux, syslinux is the only way to go. Do this as root:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;syslinux /dev/sdX
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;where X is the same as before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: you only have to do this once each time you format your key. You can
just skip all of the above steps and delete the data from the install CD of a
distribution and follow the steps below for another distribution if you want to
switch to some other distro.&lt;/p&gt;

&lt;h1&gt;Copy over the files&lt;/h1&gt;

&lt;p&gt;Copy the files from the mounted CD image to the USB key. Don't worry about how
you do this, VFAT isn't smart enough to handle permissions or anything anyway.&lt;/p&gt;

&lt;p&gt;You may have to mount the USB key manually, depending on your system.&lt;/p&gt;

&lt;h1&gt;The magic trick&lt;/h1&gt;

&lt;p&gt;Now we need to make the changes to the contents of the live CD that were copied
onto your USB key. I'm going to be assuming you're using an up to date version
of syslinux, because the old ones have some issues I don't feel like discussing.&lt;/p&gt;

&lt;p&gt;To make it bootable, just see if there is a &lt;code&gt;isolinux&lt;/code&gt; dir in the root of the USB
key. If there is, rename it to &lt;code&gt;syslinux&lt;/code&gt;. Also rename &lt;code&gt;isolinux.cfg&lt;/code&gt; and
&lt;code&gt;isolinux.bin&lt;/code&gt; inside the folder to &lt;code&gt;syslinux.cfg&lt;/code&gt; and &lt;code&gt;syslinux.bin&lt;/code&gt;,
respectively.&lt;/p&gt;

&lt;p&gt;If there is no &lt;code&gt;isolinux&lt;/code&gt; directory, check if the two files above are in the
root directory themselves. If they are, just rename them and leave them there.&lt;/p&gt;

&lt;p&gt;If you can't find either the directory or the files in the root of the key, 
you'll have to look for them elsewhere. If you find them, just copy the directory
they're in to the root of the USB key and rename the directory and files to
&lt;code&gt;syslinux&lt;/code&gt;, &lt;code&gt;syslinux.cfg&lt;/code&gt; and &lt;code&gt;syslinux.bin&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;Installing&lt;/h1&gt;

&lt;p&gt;Now your USB key should be good to go. Configure your BIOS to boot from your
USB disk first, and enjoy.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Mm49ZpKWBIUQ0p7C508csjhI2X8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mm49ZpKWBIUQ0p7C508csjhI2X8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Mm49ZpKWBIUQ0p7C508csjhI2X8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Mm49ZpKWBIUQ0p7C508csjhI2X8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/OkwKI6TuuXc" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/OkwKI6TuuXc/install_linux_from_usb</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/install_linux_from_usb</feedburner:origLink></item>


  <item>
  <title>CentOS Linux 5.1</title>
  
  <description>&lt;p&gt;As I posted earlier, I recently got myself a Thinkpad X31. It's a nice and sturdy laptop,
but being a 12-incher, it lacks an optical drive. I've been using
&lt;a href="http://kubuntu.org"&gt;Kubuntu&lt;/a&gt;/&lt;a href="http://ubuntu.org"&gt;Ubuntu&lt;/a&gt; 7.10 for
the past months, and all was well.&lt;/p&gt;

&lt;p&gt;But then I found my system in a chaotic an polluted state. I had files pretty much all over
my home dir, and installing both Gnome and KDE on a single system, along with tons of extra
software caused my menus to become overpopulated. &lt;a href="http://katapult.kde.org/"&gt;Katapult&lt;/a&gt;
helped to keep me from spending minutes looking for the right application launcher in the
system menu, I still felt the need for a reformat.&lt;/p&gt;

&lt;p&gt;I decided on &lt;a href="http://xubuntu.org"&gt;Xubuntu&lt;/a&gt;, as it shared the Debian underpinnings of Ubuntu
I was familiar with. Xubuntu uses the &lt;a href="http://www.xfce.org/"&gt;XFCE Desktop&lt;/a&gt;, which is light as
a feather compared to KDE or Gnome, and still offers a decent user experience.&lt;/p&gt;

&lt;p&gt;I started an install from my USB stick, which is really easy, I'll explain how to put
virtually every install/live CD into a USB stick later. Everything went well, and everything worked
out of the box. Except for sound. I tried getting sound to work, but apparently it's an
unresolved issue with the ICH7 chips found in many Centrino systems.&lt;/p&gt;

&lt;p&gt;While this may seem like a minor issue to some, I kind of like listening to music, and sound
also comes in handy when working on a project for a course called
"&lt;a href="http://en.wikipedia.org/wiki/Sonology"&gt;Sonology&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Acoustics"&gt;Acoustics&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;So with pain in my heart, I started looking for an alternative. I first tried &lt;a href="http://opensuse.org"&gt;openSUSE&lt;/a&gt;
but it refused to install from my USB key. This brought me to CentOS, a Red Hat Enterprise Linux based
distro.&lt;/p&gt;

&lt;p&gt;Installing went perfectly, and the good old sound test at the end of any Red Hat install played the test
sound without any trouble. Yey for corporate linux distributions!&lt;/p&gt;

&lt;p&gt;CentOS worked fine at first, but there are &lt;em&gt;MANY&lt;/em&gt; drawbacks. First of all, it's Red Hat based, which means
&lt;code&gt;rpm&lt;/code&gt;'s and &lt;code&gt;yum&lt;/code&gt;. And &lt;code&gt;yum&lt;/code&gt; is really, &lt;em&gt;really&lt;/em&gt; the worst package manager ever created by man. &lt;code&gt;apt-get&lt;/code&gt;,
&lt;code&gt;aptitude&lt;/code&gt; and &lt;code&gt;pacman&lt;/code&gt; are simply in a completely different league. Yum is slow, unintuitive and unreliable.
A few examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Searching requires the use of escaped wildcards: &lt;code&gt;yum search kernel&lt;/code&gt; will not list all packages with
'kernel' in their name, instead it will look for a package named kernel. The correct command would be
&lt;code&gt;yum search *kernel*&lt;/code&gt;. How shitty is that?&lt;/li&gt;
&lt;li&gt;Running &lt;code&gt;yum install somepackage&lt;/code&gt; will just print "Nothing to be done" if &lt;em&gt;somepackage&lt;/em&gt; doesn't exist,
instead of alerting the user that the package could not be found.&lt;/li&gt;
&lt;li&gt;Yum always looks for updated lists of packages online. So when you're offline, &lt;code&gt;yum search&lt;/code&gt; and &lt;code&gt;yum install&lt;/code&gt;
won't work without extra effort.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are just a few of the issues I ran into the last few hours. There are bound to be more. Maybe it just takes
getting used to, but still - I'm not convinced.&lt;/p&gt;

&lt;p&gt;The lack of packages (such as codecs and other popular desktop user software) and proper documentation for workstation
users is also quite annoying. I also tried to get my video card to work properly, using my experience from Gentoo,
Ubuntu and Arch Linux, all of which worked fine without to much hassle. No matter what I tried on CentOS though, I
kept getting this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;
(II) RADEON(0): Direct rendering unstable on RV100, disabling
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;What? RV100 rendering has been stable for years. You got to be kinding me...
Either way, I might just need to adjust to the Red Hat thing. And right now, even though CentOS isn't the best distro
I ever used, working and annoying beats sexy and broken. I took the Ubuntu sticker of my laptop, too...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IoJ26bAD1M2NA5xeoBaUspPb_Yc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IoJ26bAD1M2NA5xeoBaUspPb_Yc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IoJ26bAD1M2NA5xeoBaUspPb_Yc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IoJ26bAD1M2NA5xeoBaUspPb_Yc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/wbm5ehsWHKE" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/wbm5ehsWHKE/centos_linux</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/centos_linux</feedburner:origLink></item>


  <item>
  <title>More holidays and other news</title>
  
  <description>&lt;p&gt;I've been quite busy lately, but - with my previous blog post being two months old - you probably already figured that out. So let's get down to business and give you an update.&lt;/p&gt;

&lt;h1&gt;Exams&lt;/h1&gt;

&lt;p&gt;I've had exams. Yeah, really. Two of them, and I failed both. Yay for me. Let's move on to more interesting subjects.&lt;/p&gt;

&lt;h1&gt;UK and Italy&lt;/h1&gt;

&lt;p&gt;I spent the last two weeks of my summer holidays away from home. The last week I was forced to visit Italy with my parents.. All I have to say about it is that I don't like the average Italian and that northern Italy has far too many tourists.&lt;/p&gt;

&lt;p&gt;My trip to the UK however, was much more interesting. I was welcomed by my good friend Tom,  and together we visited London.
We got a hotel room close to Victoria station, which is pretty much at the very heart of London. We took two days to go
sightseeing and I took plenty of pictures; they will be uploaded as soon as I get my hands on a card reader.&lt;/p&gt;

&lt;p&gt;At the end of the second day, we went to Birmingham, the city where Tom goes to university. One thing worth mentioning about the Birmingham
university, besides it's beautiful old buildings, is that the main computer rooms run on Linux. If you want to use a Windows
machine, you have to go down to the basement. At the University of Ghent, us IT students have to bring our own live CD if we
want to run Linux.&lt;/p&gt;

&lt;p&gt;After two more days in Birmingham, I visited Tom's home town, Derby. We walked around town, and met up with another friend,
Neil. We took a walk in a park at least twice the size of anything I've ever seen in Belgium, and then went to Neil's house
to do the geeky thing: play video games and eat pizza.&lt;/p&gt;

&lt;p&gt;I've also got 3 new addictions since my visit to the United Kingdom:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tic tacs&lt;/li&gt;
&lt;li&gt;Tea&lt;/li&gt;
&lt;li&gt;Freeciv&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I can't wait to go back.&lt;/p&gt;

&lt;h1&gt;Development&lt;/h1&gt;

&lt;h2&gt;Fast file transfers&lt;/h2&gt;

&lt;p&gt;With all the new hardware I got (read 'New toys' below), I've been transferring a lot of files back and forth.
While transferring my music from my Mac to my new desktop, using a crossed cable to connect the two, the transfer rate was good enough, considering the files were sent over a TCP connection, which limits the speed of the transfers, but the time it
took to transfer the files was not what you would expect when transferring so little data over such a fast link. &lt;/p&gt;

&lt;p&gt;I found out that the limiting factor in this case was the FTP protocol. You see, whenever FTP transfers a file to a client,
it tells the client to open a new connection. Opening a connection takes some time, but overall the delay is neglectable
when using big enough files or a slow enough connection. When transferring smallish files (like songs) over a 100MBit/s
connection, the delay becomes monstrous. Transferring a file takes roughly as long as setting up the connection, so you end
up spending half your time (and bandwidth) on administration overhead. When transferring something like a website, it gets
even worse. I've been working on a solution, I'll give you some numbers when I've got proof that things can be much better.&lt;/p&gt;

&lt;h2&gt;Backup and restore&lt;/h2&gt;

&lt;p&gt;Me and a few of my friends have had several hard drive crashes in the past year. Eva wanted to avoid the risk of losing all
her pictures, so she asked me for a good backup and restore tool. The one that came with her computer (an HP utility)
does not support anything but DVD-R's for storing the backed up date (not even DVD-RW's would work), and she thought that
would end up being a bit more expensive than she wanted.&lt;/p&gt;

&lt;p&gt;I started looking for a decent, feature-full open source backup and restore tool, but it turns out there are no such things
out there. There are several tools out there that look reliable, but they all require a backup server. I myself was pretty
pleased with the backup tool that came with Vista, I used it for a few months, until I switched back to XP. Eva however,
is not a big fan of Vista, to say the least.&lt;/p&gt;

&lt;p&gt;So I decided to try and create a B&amp;amp;R tool myself, I'll let you know when anything worth mentioning happens to it.&lt;/p&gt;

&lt;h2&gt;Very secret project with Tom&lt;/h2&gt;

&lt;p&gt;I've been planning a software project with Tom, which, if it ever takes off, should earn us a little money. And yes, it will
be open source.&lt;/p&gt;

&lt;h1&gt;New toys&lt;/h1&gt;

&lt;p&gt;This summer, I upgraded my Pentium II desktop to a AMD Athlon X2 setup with plenty of memory and an acceptable video card.
It stands next to my eMac and they both use the same keyboard in a multihead-like setup using &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt;. If you have multiple computers on your desk, this is something I very much recommend. It supports all operating systems I've ever used (except for DOS, of course), and so far I haven't had any problems with it.&lt;/p&gt;

&lt;p&gt;I've also traded my Sony Vaio for a slightly less powerful Thinkpad with my brother. I now have a 12" laptop, something
I've always wanted. Kudos to Bart. If you're thinking of getting a laptop, Thinkpads really are rock solid workhorses.
My guess is that they're stronger than diamond.&lt;/p&gt;

&lt;p&gt;Bart also got a Wii, which has proven to be very addictive. To bad we don't have any multiplayer games besides Wii sports for the
moment. I got me an MP3 player / smartphone as well, the Symbian-based Sony Ericsson W950i. It's got 4GB of storage and an
excellent media player for only €180. I haven't played around with Symbian yet, and I hear it uses a vile subset of C++, so
I'm not to eager to get started either.&lt;/p&gt;

&lt;p&gt;That's all for now, I'll post again when the pictures of London are up.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/K9M9rUgZCTkNObIwMM_s8enK5Gg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K9M9rUgZCTkNObIwMM_s8enK5Gg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/K9M9rUgZCTkNObIwMM_s8enK5Gg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/K9M9rUgZCTkNObIwMM_s8enK5Gg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/Uosx3gAX_MI" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/Uosx3gAX_MI/more_holidays_and_other_news</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/more_holidays_and_other_news</feedburner:origLink></item>


  <item>
  <title>Budapest holiday pictures, sleep and activity update</title>
  
  <description>&lt;h1&gt;Holiday&lt;/h1&gt;

&lt;p&gt;I've spent very little time around my keyboard lately, but here's a quick update:
I've been to Budapest with Eva for a few days last week, it was wonderful and a lot more
relaxing than &lt;em&gt;ANY&lt;/em&gt; of my previous travels. After that, I spent a day with my good friend
Bernd (like I do every Saturday), and then me and Eva enjoyed one of the few beautiful summer
days we got in Belgium so far at the sea side. Pictures of all this are available on
&lt;a href="http://picasaweb.google.com/wim.vanderschelden"&gt;my Picasaweb page&lt;/a&gt;. Check out the Trabant.&lt;/p&gt;

&lt;h1&gt;Sleep&lt;/h1&gt;

&lt;p&gt;No, nothing about me catching some well deserved sleep, but I recently noticed there was no sleep
command in Windows XP, so I made a small executable to replace it. Get it &lt;a href="public/sleep.exe"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;Activity update&lt;/h1&gt;

&lt;p&gt;I've been toying around with both C and Ruby minimally lately, so nothing new to publish but several
mini-projects are in the making, one of which will soon be up here. I promise. Possibly tonight even.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9voyhJMSJDiDNd1AItxCFJOgVDo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9voyhJMSJDiDNd1AItxCFJOgVDo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9voyhJMSJDiDNd1AItxCFJOgVDo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9voyhJMSJDiDNd1AItxCFJOgVDo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/07YuCIAcuZ8" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/07YuCIAcuZ8/budapest</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/budapest</feedburner:origLink></item>


  <item>
  <title>ProxyBash: network admins revel in fear, for I can IRC on your corporate network</title>
  
  <description>&lt;p&gt;In the past month, I've been working at the &lt;a href="https://portal.health.fgov.be/portal/page?_pageid=56,512460&amp;amp;_dad=portal&amp;amp;_schema=PORTAL"&gt;Federal Public Service of Health, Food Chain Safety and Environment&lt;/a&gt;. I was told to do some
input work and fix some bugs in the application I had written for them the year before. Since I would have to
work there for quite some time, I decided to set up a few applications on my trusty USB key, including a development
environment, Firefox, and an instant messenger.&lt;/p&gt;

&lt;p&gt;I tried to log in on my jabber account, but, as could be expected, I couldn't log in because of the very restrictive
local firewall and proxy policy. Doing some research on the net, I came across several solutions to this problem, most
of which didn't work or weren't flexible enough, others required to much overhead setup. The most interesting and
powerful approach I found was to set up an SSH tunnel, but this required me to run SSH on port 443 (default HTTPS),
and use &lt;a href="http://www.agroman.net/corkscrew/"&gt;software&lt;/a&gt; to tunnel it through the proxy. I'm no good at configuring stuff
and most of these things are hard to come by on a vanilla corporate Windows system, often requiring
&lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; to be installed on the machine. So I went on and did the more interesting thing to do:
I made a ruby script to tunnel my data.&lt;/p&gt;

&lt;h1&gt;The idea&lt;/h1&gt;

&lt;p&gt;The idea is very similar to what an SSH tunnel does, it transfers you data to a point outside the network, where it
is demultiplexed and sent to the actual endpoint of you communication. A little image should help:&lt;/p&gt;

&lt;p&gt;&lt;img src="/public/ProxyBash/drawing.png"\ alt="ProxyBash data flow drawing" /&gt;&lt;/p&gt;

&lt;p&gt;A single ProxyBash client can of course tunnel multiple connections, and a ProxyBash server will accept as many as the
operating system can take.&lt;/p&gt;

&lt;p&gt;You have to set up your software to connect to the local computer, of course, as indicated in the image.&lt;/p&gt;

&lt;h1&gt;The idea, in plain English&lt;/h1&gt;

&lt;p&gt;Several people told me they didn't really understand what I was saying in the above paragraph, so here is the stripped
down explanation for all you normal people, by &lt;a href="http://palmnet.me.uk"&gt;my friend Nick&lt;/a&gt;:&lt;/p&gt;

&lt;pre&gt;
ProxyBash wraps up the data from, say, IRC.
Shoots it to your home PC via your works proxy server on port 443.
Then your home pc unwraps it and sends it on it's merry way to the
real server.
&lt;/pre&gt;

&lt;p&gt;If you have any trouble getting the script to work, please feel free to &lt;a href="mailto:wim.vanderschelden@gmail.com"&gt;contact me&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;The script&lt;/h1&gt;

&lt;p&gt;The script itself is actually quite simple. It loads it's config from a &lt;a href="http://www.yaml.org/"&gt;YAML&lt;/a&gt;-file, listens for
incoming connections from the local computer on the the ports you supply in the config, and forwards the connections
to a computer outside the protected network. It can also optionally tunnel all this through a HTTPS proxy. And all 
this in a tiny 157 line file, using only the standard library. You have to love ruby.&lt;/p&gt;

&lt;p&gt;For security, I've added a simple login system which requires a password to be sent on a line by itself before doing
anything else, because I figured some of you might use my server to tunnel illegal activity, and I don't like jails,
the food is lousy.&lt;/p&gt;

&lt;h1&gt;Download&lt;/h1&gt;

&lt;p&gt;The files can be found in my &lt;a href="/public/ProxyBash/"&gt;public directory&lt;/a&gt;. It includes two launcher scripts, which will
start either the server (run at home or on a server outside the network) or the client (run on the computer at work or
at school).&lt;/p&gt;

&lt;h1&gt;The license&lt;/h1&gt;

&lt;p&gt;This code is provided under the MIT license, as usual.&lt;/p&gt;

&lt;p&gt;Happy IRCing.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Kxcouf5kuVgtKCYVKObJwXZQAlg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Kxcouf5kuVgtKCYVKObJwXZQAlg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Kxcouf5kuVgtKCYVKObJwXZQAlg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Kxcouf5kuVgtKCYVKObJwXZQAlg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/wvdschel/nanoblog/~4/bPvZ4FNGp6I" height="1" width="1"/&gt;</description>
  
  <link>http://feedproxy.google.com/~r/wvdschel/nanoblog/~3/bPvZ4FNGp6I/proxybash</link>
  
  <pubDate>Sat, 22 Dec 2007 16:33:00 +01:00</pubDate>
  <feedburner:origLink>http://fixnum.org/blog/2007/proxybash</feedburner:origLink></item>


</channel>
</rss>
