<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zero_Dogg's blog &#187; Random</title>
	<atom:link href="http://blog.zerodogg.org/category/random/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerodogg.org</link>
	<description>Geeky comments on geeky things</description>
	<lastBuildDate>Mon, 27 Sep 2010 16:37:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>jQsimple-class released</title>
		<link>http://blog.zerodogg.org/2010/09/16/jqsimple-class-released/</link>
		<comments>http://blog.zerodogg.org/2010/09/16/jqsimple-class-released/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 22:05:09 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=170</guid>
		<description><![CDATA[Today I&#8217;ve released the first version of jQsimple-class, a small JavaScript class-declaration library. The reason I wrote it is that the usual way of building classes in JavaScript is frankly quite ugly, and inheritance is equally ugly. With jQsimple-class I&#8217;ve tried to make it as simple and intuitive as possible to write classes in JavaScript. [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve released the first version of <a href="http://random.zerodogg.org/jqsimple-class">jQsimple-class</a>, a small JavaScript class-declaration library. The reason I wrote it is that the usual way of building classes in JavaScript is frankly quite ugly, and inheritance is equally ugly. With jQsimple-class I&#8217;ve tried to make it as simple and intuitive as possible to write classes in JavaScript. The library itself is very small, and the syntax is simple. It&#8217;s meant to let you quickly declare a class, and easily extend others, and then get completely out of your way. It only exports a single variable/function, named jClass (Class is a reserved word in JavaScript, so I went for the next best thing). Using jClass, and methods on it, it is possible to build classes, virtual classes and extend classes. </p>
<p><code>jClass()</code> takes a single parameter, a JavaScript hash, where keys are method or attribute names, and the values are any valid JavaScript type. <code>jClass.extend()</code> lets you build a class that extends one or more existing classes. <code>jClass.virtual()</code> lets you construct a &#8220;virtual&#8221; class. That is to say, a class that can not be instantiated, but that can be extended by others.</p>
<p>Internally jQsimple-class uses some <a href="http://www.jquery.com/">jQuery</a> methods, but it does not depend upon jQuery to be used, a standalone version that bundles the parts it needs (not all of jQuery, and without exposing them to the public namespace) is available for applications that do not use jQuery. I have written an extensive testsuite for jQsimple-class to make sure that things work as they should, and it works across all modern browsers.</p>
<p>For more examples and the full API, see the <a href="http://random.zerodogg.org/jqsimple-class/documentation">jQsimple-class documentation</a>. jQsimple-class version 0.1 is <a href="http://random.zerodogg.org/jqsimple-class/download">available for download</a> now. Minified it is only 1.5K (or 9K for the standalone version). Any feedback is welcome, feel free to do so in the comments, or, if you find a bug, on the <a href="http://random.zerodogg.org/jqsimple-class/bugs">bugtracker</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2010/09/16/jqsimple-class-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A very simple one-liner REPL for perl</title>
		<link>http://blog.zerodogg.org/2010/03/02/a-very-simple-one-liner-repl-for-perl/</link>
		<comments>http://blog.zerodogg.org/2010/03/02/a-very-simple-one-liner-repl-for-perl/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:42:01 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=166</guid>
		<description><![CDATA[Here&#8217;s a very simple one-liner REPL for perl, it&#8217;s not very advanced (like ie. re.pl) but does well in most cases: perl -MData::Dumper -MTerm::ReadLine -e '$r = Term::ReadLine->new(1);while(defined($_ = $r->readline("code: "))){$ret=Dumper(eval($_));$err=$@;if($err ne ""){print $err;}else{print $ret;}}' It uses Term::ReadLine, which gives a simple session history if you have a Term::ReadLine::* implementation that supports it. It will [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a very simple one-liner REPL for perl, it&#8217;s not very advanced (like ie. <a href="http://search.cpan.org/~mstrout/Devel-REPL-1.003007/lib/Devel/REPL.pm">re.pl</a>) but does well in most cases:<br />
<code>perl -MData::Dumper -MTerm::ReadLine -e '$r = Term::ReadLine->new(1);while(defined($_ = $r->readline("code:  "))){$ret=Dumper(eval($_));$err=$@;if($err ne ""){print $err;}else{print $ret;}}'</code></p>
<p>It uses Term::ReadLine, which gives a simple session history if you have a Term::ReadLine::* implementation that supports it. It will also use Data::Dumper so that you can quickly see any data structures, you can always use scalar(STATEMENT) if the return value differs in list and scalar context.</p>
<p>Here&#8217;s an alias that can be shoved into .bashrc :<br />
<code>alias 'perl-repl'='perl -MData::Dumper -MTerm::ReadLine -e '\''$r = Term::ReadLine->new(1);while(defined($_ = $r->readline("code:  "))){$ret=Dumper(eval($_));$err=$@;if($err ne ""){print $err;}else{print $ret;}}'\'''</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2010/03/02/a-very-simple-one-liner-repl-for-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fixing PHP documentation woes</title>
		<link>http://blog.zerodogg.org/2009/10/14/fixing-php-documentation-woes/</link>
		<comments>http://blog.zerodogg.org/2009/10/14/fixing-php-documentation-woes/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 15:50:27 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=154</guid>
		<description><![CDATA[I prefer writing in Perl or Ruby, but sometimes the choice of language has been made by someone else, a position I have found myself in lately. When using perl and ruby, there&#8217;s always perldoc and ri, so documentation is a quick command away in any of my terminals, which thanks to screen is never [...]]]></description>
			<content:encoded><![CDATA[<p>I prefer writing in Perl or Ruby, but sometimes the choice of language has been made by someone else, a position I have found myself in lately. When using perl and ruby, there&#8217;s always <code>perldoc</code> and <code>ri</code>, so documentation is a quick command away in any of my terminals, which thanks to <i>screen</i> is never fewer than ten. PHP however, has no such tool, the docs are in HTML and many distros don&#8217;t even package the HTML docs. So, to avoid the pain of switching out of the safety of my terminal and into a web browser all the time, and speed up my work, I wrote an app, <a href="http://random.zerodogg.org/phpdocr">phpdocr</a>. It&#8217;s quite simple, it scrapes php.net (and caches the result for quick viewing later) and displays the parsed HTML in your pager &#8211; resulting in something sort of like <code>perldoc</code> or <code>ri</code>. So if you have the same itch, grab it from <a href="http://random.zerodogg.org/phpdocr">http://random.zerodogg.org/phpdocr</a>.</p>
<p>The app itself, of course, is not written in PHP &#8211; it&#8217;s written in ruby.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/10/14/fixing-php-documentation-woes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sanity checking mason</title>
		<link>http://blog.zerodogg.org/2009/10/13/sanity-checking-mason/</link>
		<comments>http://blog.zerodogg.org/2009/10/13/sanity-checking-mason/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 15:27:54 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=145</guid>
		<description><![CDATA[I have found myself doing quite a bit of mason at work lately, both maintaining old legacy stuff and as the view in a catalyst app. While doing this I found myself missing the old &#8216;perl -c&#8217; to quickly sanity check code, however naturally that won&#8217;t work on Mason &#8211; as mason is essentially HTML [...]]]></description>
			<content:encoded><![CDATA[<p>I have found myself doing quite a bit of <a href="http://www.masonhq.com/">mason</a> at work lately, both maintaining old legacy stuff and as the view in a <a href="http://www.catalystframework.org/">catalyst</a> app.</p>
<p>While doing this I found myself missing the old &#8216;perl -c&#8217; to quickly sanity check code, however naturally that won&#8217;t work on Mason &#8211; as mason is essentially HTML with inline perl, not the other way around. As such I wrote a quick script that emulates &#8216;perl -c&#8217; by loading the file using mason inside eval then printing any errors. The script itself is pretty simple, though it doesn&#8217;t have any support for printing useful line numbers &#8211; but at least it gives an idea of what/where the problem is. The script also declares $c and $m, as at least for Catalyst &#8211; those will be available.</p>
<p><a href="http://random.zerodogg.org/snippets/masontest">You can clone the gist, or just copy+paste the code:</a></p>
<div style="overflow-y: scroll; max-height:400px">
<script src="http://gist.github.com/197943.js"></script>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/10/13/sanity-checking-mason/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dynamically loading git bash-completion</title>
		<link>http://blog.zerodogg.org/2009/10/12/dynamically-loading-git-bash-completion/</link>
		<comments>http://blog.zerodogg.org/2009/10/12/dynamically-loading-git-bash-completion/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 21:27:05 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bash completion]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=140</guid>
		<description><![CDATA[I have to admit, I love git. It has really made me more efficient, and I can&#8217;t honestly think of ever switching back to ie. svn. My shell is bash, and up until now I used a very simple bash completion for git, but at times I do see myself wanting something a bit more [...]]]></description>
			<content:encoded><![CDATA[<p>I have to admit, I love <a href="http://git-scm.com/">git</a>. It has really made me more efficient, and I can&#8217;t honestly think of ever switching back to ie. svn.</p>
<p>My shell is bash, and up until now I used a very simple bash completion for git, but at times I do see myself wanting something a bit more comprehensive. However, I really don&#8217;t want bash to be slow to open (of course, the definition of &#8220;slow&#8221; is quite individual &#8211; over a second is way too much ;), which it can be if it needs to load all bash completion definitions when starting. Therefore I wrote a small bash function for my .bashrc that will dynamically load the git bash completion when it first is accessed. Bash starts fast, and I get git bash completion &#8211; problem solved (well, the first time git bash completion is used, it of course takes a tad longer than normal because it needs to load it first, but that&#8217;s completely livable). As a bonus, it will fall back to my old and simple completion if the proper one is not available.</p>
<p><a href="http://random.zerodogg.org/snippets/gitdynacomp">Here&#8217;s the code snippet:</a><br />
<script src="http://gist.github.com/208248.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/10/12/dynamically-loading-git-bash-completion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Day Planner 0.10</title>
		<link>http://blog.zerodogg.org/2009/04/16/day-planner-010/</link>
		<comments>http://blog.zerodogg.org/2009/04/16/day-planner-010/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 20:19:16 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=127</guid>
		<description><![CDATA[Day Planner 0.10 was released on the 25th of March! This release is, imho, a great step forward from 0.9. It fixes various minor bugs, cleans up parts of the UI, handles strange or broken iCalendar files better, enforces UTF-8 encoding on the calendar and adds a plugin system. The largest new feature is the [...]]]></description>
			<content:encoded><![CDATA[<p>Day Planner 0.10 was released on the 25th of March! This release is, imho, a great step forward from 0.9. It fixes various minor bugs, cleans up parts of the UI, handles strange or broken iCalendar files better, enforces UTF-8 encoding on the calendar and adds a plugin system.</p>
<p>The largest new feature is the plugin system. Day Planner now comes with support for plugins, complete with a simple file format that allows users to easily install third party plugins.  Its purpose is of course to make it easy for other people to alter the behaviour of Day Planner, or add features to it easily, without having to resort to patching the app itself, but also to make it easier for me to add optional features that perhaps not everyone wants (for instance, 0.10 comes with a tray icon plugin. It is disabled by default, but those that want to use it can do so quite easily). The API is simple, and somewhat inspired by the Gtk2-perl API, to make it feel somewhat familiar for people already used to signal-based programming.</p>
<p>The tarball comes with an example plugin, plugins/HelloWorld.pm that is well commented and explains how to do some of the basic things like hooking into signals, displaying simple dialog boxes and adding events to the calendar. The API itself is documented in DP::CoreModules::Plugin (access the documentation by running perldoc modules/DP-CoreModules/lib/DP/CoreModules/Plugin.pm from the base directory of the Day Planner tarball or git repo).</p>
<p>If you want to write a plugin, and need some help or pointers, feel free to join the Day Planner irc channel, #dayplanner on irc.freenode.net and I&#8217;ll be glad to help.</p>
<p><b>Git</b></p>
<p>As mentioned earlier, Day Planner is now using git instead of subversion. After I learned git I now greatly prefer it over subversion, and have thus moved all of my projects to it. Information on how to use the Day Planner git repo can be found at <a href="http://www.day-planner.org/index.php/development/git">http://www.day-planner.org/index.php/development/git</a>:</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/04/16/day-planner-010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The happy travels of a postal parcel</title>
		<link>http://blog.zerodogg.org/2009/02/18/the-happy-travels-of-a-postal-parcel/</link>
		<comments>http://blog.zerodogg.org/2009/02/18/the-happy-travels-of-a-postal-parcel/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:07:33 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Bugs :(]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=117</guid>
		<description><![CDATA[Last year, the 21st of December I had to send in my GF&#8217;s cellphone for repairs (bought online), incredibly enough the repairs went smoothly and fast, and on the 29th of December it was shipped back to us, using the Norwegian postal system. Little did we know that it wanted to go on a round [...]]]></description>
			<content:encoded><![CDATA[<p>Last year, the 21st of December I had to send in my GF&#8217;s cellphone for repairs (bought online), incredibly enough the repairs went smoothly and fast, and on the 29th of December it was shipped back to us, using the Norwegian postal system. Little did we know that it wanted to go on a round trip around the southern part of Norway. This is its story.</p>
<p>29.12.08 &#8211; Sent from <i>Drammen</i>, Norway<br />
29.12.08 &#8211; Arrived at a terminal in <i>Oslo</i><br />
30.12.08 &#8211; Arrived at a terminal in <i>Stavanger</i><br />
31.12.08 &#8211; Arrived at a terminal in <i>Haugesund</i><br />
02.01.09 &#8211; Beep! Still in <i>Haugesund</i>, and the post office realizes that we have moved and that we have bought a service to forward our mail to our new address<br />
02.01.09 &#8211; Arrived in <i>Stavanger</i>. Gah! That&#8217;s the wrong way!<br />
05.01.09 &#8211; Registered at a terminal in <i>Bergen</i>. Yay! It&#8217;s getting close!<br />
06.01.09 &#8211; Arrived at our local post office in <i>Bergen</i>. Hurray.</p>
<p>&#8230;However, they never sent us any packing slip, and we didn&#8217;t have the tracking number so we didn&#8217;t know.</p>
<p>16.01.09 &#8211; Beep! Still in <i>Bergen</i>, and the post office realizes&#8230;something and decides to ship it somewhere else.<br />
16.01.09 &#8211; Registered at a terminal in <i>Bergen</i><br />
19.01.09 &#8211; Registered at a terminal in <i>Stavanger</i>?!<br />
20.01.09 &#8211; Arrived at a post office in <i>Haugesund</i>&#8230;again<br />
31.01.09 &#8211; Beep! Still in <i>Haugesund</i>, and the post office realizes, once again that we have moved and that we STILL have purchased the service to forward it to our new address.<br />
02.02.09 &#8211; Registered at a terminal in <i>Stavanger</i>&#8230;yet again<br />
03.02.09 &#8211; Registered at a terminal in <i>Bergen</i><br />
04.02.09 &#8211; Arrived at our local post office in <i>Bergen</i>&#8230;again. Hurray!</p>
<p>&#8230;But they STILL hasn&#8217;t sent us any packing slip stating that the package has arrived and that we need to pick it up.<br />
We contact the retailer, which contacts the repair shop, which provides the information that it is here! At our local post office!<br />
So we go to our local post office, I present my ID and that there&#8217;s a package for me, aaand&#8230; they can&#8217;t find it. We go home and yet again mail the retailer, which contacts the repair shop which then gets hold of the tracking number.<br />
Armed with this brand new information, we head to the post office again&#8230;</p>
<p>18.02.09 &#8211; We get the package.</p>
<p>And no, they still haven&#8217;t provided a packing slip.</p>
<p>This is true Norwegian efficiency.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2009/02/18/the-happy-travels-of-a-postal-parcel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sacred: Gold announced for Linux</title>
		<link>http://blog.zerodogg.org/2008/05/14/sacred-gold-announced-for-linux/</link>
		<comments>http://blog.zerodogg.org/2008/05/14/sacred-gold-announced-for-linux/#comments</comments>
		<pubDate>Wed, 14 May 2008 20:22:55 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[games for linux]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[linux game publishing]]></category>
		<category><![CDATA[sacred]]></category>
		<category><![CDATA[sacred gold]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/?p=100</guid>
		<description><![CDATA[The new Linux game turned out to be Sacred: Gold an action-RPG similar to Blizzard&#8217;s Diablo 2. The package includes the original Sacred, a free (official) expansion pack called Sacred Plus and the Sacred: Underworld expansion pack. I for one can&#8217;t wait for this port to be released.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://blog.zerodogg.org/2008/05/03/new-linux-game/">new Linux game</a> turned out to be <a href="http://www.linuxgamepublishing.com/info.php?id=sacred&#038;">Sacred: Gold</a> an action-RPG similar to Blizzard&#8217;s Diablo 2. The package includes the original <a href="http://en.wikipedia.org/wiki/Sacred_(video_game)">Sacred</a>, a free (official) expansion pack called Sacred Plus and the <a href="http://en.wikipedia.org/wiki/Sacred_Underworld">Sacred: Underworld</a> expansion pack.</p>
<p>I for one can&#8217;t wait for this port to be released.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2008/05/14/sacred-gold-announced-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>History meme</title>
		<link>http://blog.zerodogg.org/2008/04/15/history-meme/</link>
		<comments>http://blog.zerodogg.org/2008/04/15/history-meme/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 19:31:30 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/2008/04/15/history-meme/</guid>
		<description><![CDATA[Everyone else is doing it! [0 zerodogg@firefly ~]$ history &#124; awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' &#124; sort -rn &#124; head 279 cd 185 vim 117 ssh 75 screen 74 svn 66 wget 64 ls 60 perldoc 59 rm 58 cget]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linux-wizard.net/index.php?id_blog=200">Everyone</a> <a href="http://www.0xdeadbeef.com/weblog/?p=356">else</a> <a href="http://www.j5live.com/2008/04/15/history-meme/">is</a> <a href="http://blogs.gnome.org/lucasr/2008/04/15/history-meme/">doing</a> <a href="http://ventnorsblog.blogspot.com/2008/04/such-strange-meme.html">it</a>!</p>
<p><code>[0 zerodogg@firefly ~]$ history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head<br />
279 cd<br />
185 vim<br />
117 ssh<br />
75 screen<br />
74 svn<br />
66 wget<br />
64 ls<br />
60 perldoc<br />
59 rm<br />
58 cget</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2008/04/15/history-meme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A bunch of new stuff</title>
		<link>http://blog.zerodogg.org/2008/03/19/a-bunch-of-new-stuff/</link>
		<comments>http://blog.zerodogg.org/2008/03/19/a-bunch-of-new-stuff/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 01:32:32 +0000</pubDate>
		<dc:creator>Zero_Dogg</dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[SkoleLinux]]></category>

		<guid isPermaLink="false">http://blog.zerodogg.org/2008/03/19/a-bunch-of-new-stuff/</guid>
		<description><![CDATA[I&#8217;ve finally taken the time to prepare a website for all the various programs and scripts I&#8217;ve got in use here that the world might also find some use for. The address, right now, is http://random.zerodogg.org, though once I find some more imaginative name I&#8217;ll probably move it, but for now it&#8217;s random. Everything mentioned [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally taken the time to prepare a website for all the various programs and scripts I&#8217;ve got in use here that the world might also find some use for. The address, right now, is <a href="http://random.zerodogg.org">http://<b>random</b>.zerodogg.org</a>, though once I find some more imaginative name I&#8217;ll probably move it, but for now it&#8217;s <i>random</i>.<br />
Everything mentioned is either GPLv3 (most of it) or GPLv2 (some of it).</p>
<p>I&#8217;ll write a quick word on the various new projects, and note those that I have moved from older websites to random.</p>
<p><i>New stuff:</i></p>
<p><b><a href="http://random.zerodogg.org/audioutils">Audio Utils</a></b><br />
This is just a collection of scripts I&#8217;ve had in use (and had uploaded for the world to download previoulsy, but never together nor on a proper website) that assists in various audio-related tasks. These are:<br />
aac2ogg &#8211; a quick and dirty aac to ogg converter, using mplayer, faad and oggenc<br />
wma2ogg &#8211; the same for wma, using mplayer and oggenc<br />
reencode &#8211; a quick and dirty bash script that lets you re-encode an mp3 file to another bitrate. Useful for clearing up space on &#8220;mp3 players&#8221;, especially if you&#8217;re into audio-books, which can often have their bitrates drastically reduced and still be in a fairly decent quality.</p>
<p><b><a href="http://random.zerodogg.org/grandomwallpaper">GRandomWallpaper</a></b><br />
This is a wallpaper randomizer for GNOME/Nautilus. It takes a list of wallpapers (a directory) and selects a random one. This can be done on a timer, or just once. It keeps a hitlist for how many times a wallpaper has been shown, and is more likely to pick those that have not been shown as often. It also lets you ban wallpapers, which will cause it to always ignore the wallpaper in question.</p>
<p><b><a href="http://random.zerodogg.org/latexb">LatexB</a></b><br />
This is a quick script that assists in building LaTeX files. It can call latex or pdflatex, automatically spawn xdvi(k) or evince after building, and detect bibtex. It&#8217;s merely a utility script so that I can do &#8220;latexb file.tex&#8221; to build the LaTeX file properly in one go (it calls latex multiple times to ensure that everything is referenced properly).</p>
<p><b><a href="http://random.zerodogg.org/monitorgrowth">MonitorGrowth</a></b><br />
This is a simple perl program that lets you monitor how fast a file is growing, displays information similar to that of download utilities like wget.</p>
<p><b><a href="http://random.zerodogg.org/mussort">mussort</a></b><br />
This program sorts your music collection. It puts them into nice directories (artist/album) and renames the files, so that everything is consistent. It can also let you delete dupes. It works on MP3, and OGG Vorbis-files.</p>
<p><b><a href="http://random.zerodogg.org/spgal">SPGal</a></b><br />
This is my first python project. It builds a static XHTML-gallery from a set of images. It can work as a drop-in replacement of iGal and jGal.</p>
<p><i>Old stuff, new website:</i></p>
<p><b><a href="http://random.zerodogg.org/magicpo">MagicPO</a></b><br />
This is a program that helps you translate PO-files from one similar language to another. Right now it can do automatic translation of for instance Norwegian Bokm&aring;l to Norwegian Nynorsk (you only have to read through them afterwards).</p>
<p><b><a href="http://random.zerodogg.org/pdftopng">PDFtoPNG</a></b><br />
This is a quick program that lets you convert PDFs into a set of PNG files. It can also build HTML-files to go with the PNGs, for easy reading in a browser.</p>
<p><b><a href="http://random.zerodogg.org/slx-dict">SLX-Dict</a></b><br />
This is a simple command-line program that lets you look up words in the Norwegian <a href="http://i18n.skolelinux.no/nb/Fellesordl.eng-no.html">computer translation dictionary</a>. It&#8217;s useful if you don&#8217;t want to open firefox and search for words there all the time.</p>
<p><b><a href="http://random.zerodogg.org/sshman">SSHMan</a></b><br />
SSHMan is a simple ssh agent helper, along the lines of keychain. It does persistant management of ssh agents, will only ever prompt you for adding keys to the agent once, does not slow down logging into X and does not start when you&#8217;re logging in via ssh.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.zerodogg.org/2008/03/19/a-bunch-of-new-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

