<?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>Free as in speech</title>
	<atom:link href="http://blog.technologeek.org/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.technologeek.org</link>
	<description>Free Software. Free Speech. That's the way it works.</description>
	<lastBuildDate>Mon, 30 Aug 2010 17:50:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>forked-daapd: new features, Squeeze</title>
		<link>http://blog.technologeek.org/2010/08/29/338</link>
		<comments>http://blog.technologeek.org/2010/08/29/338#comments</comments>
		<pubDate>Sun, 29 Aug 2010 14:38:02 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=338</guid>
		<description><![CDATA[A number of things have happened in and around forked-daapd in the last month or so, so let&#8217;s review the new features and the plan for Squeeze. On the features front, Kai Elwert has done a lot of work since July to implement missing features at the DAAP and DACP level to get better support [...]]]></description>
			<content:encoded><![CDATA[<p>A number of things have happened in and around forked-daapd in the last month or so, so let&#8217;s review the new features and the plan for Squeeze.</p>
<p>On the features front, Kai Elwert has done a lot of work since July to implement missing features at the DAAP and DACP level to get better support for Remote:</p>
<ul>
<li>playlists can now be played from Remote;</li>
<li>listings are sorted in a way that&#8217;s closer to what you get from iTunes;</li>
<li>sort headers are now generated when requested so Remote can display the A-Z quick access list.</li>
</ul>
<p>Also, forked-daapd can now remember which speakers were selected before shutdown and attempts to automatically reselect these speakers the next time around. Speakers that were selected will be reselected if they appear at most 5 minutes after startup and the player isn&#8217;t running at that time.</p>
<p>On the Squeeze front, a viable snapshot of forked-daapd will release with Squeeze. This snapshot doesn&#8217;t have all the Remote improvements listed above, although it&#8217;s got the playlist support, can remember the speaker selection and includes bug fixes.</p>
<p>My plan is to provide backports through backports.org once Squeeze is released and for as long as possible after that.</p>
<p>There&#8217;s always more in the works, so stay tuned =)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/08/29/338/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grand Central Dispatch available in Debian</title>
		<link>http://blog.technologeek.org/2010/07/17/330</link>
		<comments>http://blog.technologeek.org/2010/07/17/330#comments</comments>
		<pubDate>Sat, 17 Jul 2010 17:40:12 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=330</guid>
		<description><![CDATA[Thanks to the work of Mark Heily, both upstream and in Debian, this week saw the arrival of libdispatch in Debian. libdispatch is the userspace component of Apple&#8217;s Grand Central Dispatch technology, designed to help write applications that really take advantage of multicore processors without having to fiddle directly with threads and locking (and getting [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to the work of Mark Heily, both upstream and in Debian, this week saw the arrival of <a title="libdispatch0 package page" href="http://packages.debian.org/sid/libdispatch0">libdispatch</a> in Debian.</p>
<p><a title="libdispatch project page at Mac OS Forge" href="http://libdispatch.macosforge.org/">libdispatch</a> is the userspace component of Apple&#8217;s <a title="Introduction to Blocks and Grand Central Dispatch" href="http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html">Grand Central Dispatch</a> technology, designed to help <a title="GCD Concurrency programming guide" href="http://developer.apple.com/mac/library/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html">write applications</a> that really take advantage of multicore processors without having to fiddle directly with threads and locking (and getting it terribly wrong).</p>
<p>To get that working on Linux, Mark wrote a userspace implementation of the pthread workqueues and a kqueue compatibility library (<a title="libkqueue0 package page" href="http://packages.debian.org/sid/libkqueue0">libkqueue</a>). He also packaged the <a title="Blocks extension to C" href="http://clang.llvm.org/docs/LanguageExtensions.html#blocks">Blocks</a> runtime (<a title="libblocksruntime0 package page" href="http://packages.debian.org/sid/libblocksruntime0">libblocksruntime</a>) for Debian so as to build libdispatch with Blocks support. That means code using libdispatch must be built with CLang (or llvm-gcc-4.2) rather than gcc, as getting Blocks support in gcc in the near future looks highly improbable.</p>
<p>On Mac OS X and FreeBSD, a kernel-based implementation of the <a title="Manpage for pthread workqueues" href="http://people.freebsd.org/~sson/thrworkq/pthread_workqueue.3.txt">pthread workqueues</a> is used; we don&#8217;t have that for Linux yet. The all-userspace implementation we have at the moment works really well; there are some caveats, though, but that&#8217;s no reason for not starting to play with libdispatch right now!</p>
<p>Try it out, it&#8217;s great. Thanks again, Mark!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/07/17/330/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>forked-daapd: available in experimental</title>
		<link>http://blog.technologeek.org/2010/07/07/327</link>
		<comments>http://blog.technologeek.org/2010/07/07/327#comments</comments>
		<pubDate>Wed, 07 Jul 2010 17:08:53 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=327</guid>
		<description><![CDATA[Following the update of antlr3 in unstable, I have now uploaded forked-daapd to Debian. For now, and until the new version of antlr3 is ready to migrate to testing, forked-daapd will only be available in experimental. I have also uploaded the ANTLR v3 C runtime (aka libantlr3c) to unstable. It&#8217;s currently blocked from migrating to [...]]]></description>
			<content:encoded><![CDATA[<p>Following the update of antlr3 in unstable, I have now uploaded forked-daapd to Debian. For now, and until the new version of antlr3 is ready to migrate to testing, forked-daapd will only be available in experimental.</p>
<p>I have also uploaded the ANTLR v3 C runtime (aka libantlr3c) to unstable. It&#8217;s currently blocked from migrating to testing, until antlr3 is ready to migrate.</p>
<p>Hopefully, the issues affecting antlr3 3.2 in unstable will be resolved soonish and all of this will migrate to testing and be part of Squeeze.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/07/07/327/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>forked-daapd: now with AirTunes v2 streaming</title>
		<link>http://blog.technologeek.org/2010/05/02/315</link>
		<comments>http://blog.technologeek.org/2010/05/02/315#comments</comments>
		<pubDate>Sun, 02 May 2010 14:00:05 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=315</guid>
		<description><![CDATA[I&#8217;ve been working on this for a few months now; it&#8217;s taken quite some time because I wanted to do it right and deliver something better than what already existed in the OpenSource world as far as that particular technology was (not) concerned. So here it is: AirTunes v2 UDP streaming forked-daapd can now do [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on this for a few months now; it&#8217;s taken quite some time because I wanted to do it right and deliver something better than what already existed in the OpenSource world as far as that particular technology was (not) concerned. So here it is:</p>
<p style="text-align: center;">AirTunes v2 UDP streaming</p>
<p>forked-daapd can now do streaming to multiple AirTunes devices (as well as the local soundcard) and can be controlled from Remote (and, ideally, from anything that speaks DACP).</p>
<p>I&#8217;m releasing this early while the paint is still wet and not everything works on the DACP-side of things. Case in point, while playing a song or an album is supported, playing a playlist isn&#8217;t. There&#8217;s some work needed on this particular feature, and it&#8217;ll get there eventually.</p>
<p>There have been a couple of other changes in the codebase in recent weeks too; details after the jump.</p>
<p>Implementing AirTunes v2 has been quite fun and, in addition to releasing the forked-daapd code today, I&#8217;ve also taken the time to write down <a title="AirTunes v2 protocol documentation" href="http://blog.technologeek.org/airtunes-v2">my findings about the protocol</a> so others can experiment with it. This documentation is by no means exhaustive nor complete as far as the protocol goes; if you find out anything I haven&#8217;t, let me know so I can update this document.</p>
<p><span id="more-315"></span>Let&#8217;s review the recent changes in the forked-daapd codebase over the past few weeks.</p>
<h2>AirTunes v2</h2>
<p>You can now use Remote from your iSomething together with your AirTunes devices and forked-daapd to listen to your library. As mentioned above, playing a playlist is not supported; I have a few things to sort out before this can work and I suspect this will bring changes not only to the DACP interface but also to other parts of the code. So, stay tuned.</p>
<p>forked-daapd supports synchronized playback to multiple AirTunes devices together with the local soundcard if so desired. You can expect the AirTunes devices to be in sync with each other, but the soundcard will usually run in circles around them. It looks like AirTunes plays sound a bit slower than 44.1 kHz; not a big deal, though, as AirTunes will catch up periodically and the desync, while it can be noticeable, isn&#8217;t big (ie we&#8217;re not talking seconds, not even one full second).</p>
<p>Make sure your network can handle the load, as streaming to a single AirTunes device requires in excess of 1.6 Mbps (1.8 Mbps is actually closer to the real thing).</p>
<p>Local audio output is supported via ALSA and OSS4, although note that the OSS4 code hasn&#8217;t been very well tested. I intend to test and debug it fully at a later date, but feel free to beat me to it and send patches.</p>
<p>Also note that, while there is code for FreeBSD in the player/streaming part of forked-daapd, it doesn&#8217;t work well at all. The streaming code needs a timer with a higher resolution than kqueue/kevent has to offer, and I haven&#8217;t found anything as capable as timerfd. So it&#8217;s there, but it&#8217;s broken. Read on about FreeBSD support.</p>
<h2>Metadata scanning</h2>
<p>Several fixes and enhancements have been made to the filescanner so it picks more and better metadata. Format-specific tagnames have been added to work around ffmpeg&#8217;s limitations. Using a recent enough ffmpeg version (anything after mid-december 2009) will work best, especially for MP3 files.</p>
<h2>SQLite concurrency fixes</h2>
<p>The database code has been reworked to handle concurrency on the database. Issues with locked tables (or the whole database) were noticed pretty easily with big libraries when accessing forked-daapd during the library update after startup. On uniprocessor machines, this was even easier to hit.</p>
<p>This, however, comes with new requirements for SQLite3: you&#8217;ll now need SQLite3 v3.5.0 at least and it must be built with the unlock notify API enabled. Not all distributions ship SQLite3 with the unlock notify API enabled, so you may need to do a rebuild. Debian, for instance, doesn&#8217;t; this is <a title="SQLite3 wishlist bug: enable unlock notify API" href="http://bugs.debian.org/579266">#579266</a>.</p>
<h2>A word about FreeBSD support</h2>
<p>I&#8217;m giving up on FreeBSD support. The streaming code doesn&#8217;t work on FreeBSD due to timer issues, and I don&#8217;t intend to fix it. I also don&#8217;t intend to invest much time in porting future features to FreeBSD; if I can make it work, then fine, otherwise, too bad.</p>
<p>Someone needs to step up if there&#8217;s interest in having forked-daapd work on FreeBSD.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/05/02/315/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rEFIt on x64: finally fixed</title>
		<link>http://blog.technologeek.org/2010/04/21/293</link>
		<comments>http://blog.technologeek.org/2010/04/21/293#comments</comments>
		<pubDate>Wed, 21 Apr 2010 16:33:10 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=293</guid>
		<description><![CDATA[When I got my Mac Mini, one of the very first things I did was to test the Debian build of rEFIt on the machine, given the EFI firmware is x64 on the newer machines whereas it&#8217;s ia32 on my MacBookPro; it was the very first time I could test the x64 build. And the [...]]]></description>
			<content:encoded><![CDATA[<p>When I got my Mac Mini, one of the very first things I did was to test the Debian build of rEFIt on the machine, given the EFI firmware is x64 on the newer machines whereas it&#8217;s ia32 on my MacBookPro; it was the very first time I could test the x64 build.</p>
<p>And the results weren&#8217;t good: some images couldn&#8217;t be loaded, and it all seemed to be random.</p>
<p>Disabling optimization in both GNU EFI and rEFIt for the x64 builds helped somewhat, at least it made rEFIt reliable enough to be usable.</p>
<p>Now, with this new release, I started getting error messages, requiring a key press before the menu would be displayed. It&#8217;s annoying but it&#8217;s also very helpful as I now had an error message to work with, and even if the error message wasn&#8217;t reliable, it would still point me to some part of the code. The message was: Invalid argument.</p>
<p>On x64, the use of a call wrapper is mandatory because the EFI x64 calling convention doesn&#8217;t match the calling convention of the ELF executables we&#8217;re building and later disguising as EFI executables. The call wrapper has always been the prime suspect in this issue, it&#8217;d be an obvious candidate for anyone looking at this issue.</p>
<p>Today, digging into the issue with some new data, I realized what the problem was: when using the call wrapper, all arguments need to be of the UINT64 type. That&#8217;s the type the call wrapper uses when extracting the arguments from its va_list.</p>
<p>Introduce some more macros on top of the call wrapper, build, test: voila, it&#8217;s fixed! That was tricky one.</p>
<p>Let&#8217;s sum it up for the search engines: all the arguments to the EFI interface called through uefi_call_wrapper() in GNU EFI need to be cast to UINT64.</p>
<p>rEFIt 0.14-1, available in unstable in a couple hours.</p>
<p>Next, I&#8217;ll see if I can reenable optimization in both GNU EFI and rEFIt.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/04/21/293/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pommed v1.32: maintenance release</title>
		<link>http://blog.technologeek.org/2010/03/19/290</link>
		<comments>http://blog.technologeek.org/2010/03/19/290#comments</comments>
		<pubDate>Fri, 19 Mar 2010 17:37:13 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=290</guid>
		<description><![CDATA[I&#8217;ve just released pommed v1.32, a minor maintenance release for the 12&#8243; PowerBook G4. I&#8217;ve just realized that I did not post an announce for pommed v1.31 a while back, which was also a maintenance release, adding support for the MacBookPro5,4 (15&#8243; June 2009) and the latest wireless keyboard.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released pommed v1.32, a minor maintenance release for the 12&#8243; PowerBook G4.</p>
<p>I&#8217;ve just realized that I did not post an announce for pommed v1.31 a while back, which was also a maintenance release, adding support for the MacBookPro5,4 (15&#8243; June 2009) and the latest wireless keyboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/03/19/290/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transitioning to a new RSA key</title>
		<link>http://blog.technologeek.org/2010/03/05/287</link>
		<comments>http://blog.technologeek.org/2010/03/05/287#comments</comments>
		<pubDate>Fri, 05 Mar 2010 18:47:10 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=287</guid>
		<description><![CDATA[After weeks of trying to get around to doing that, I am finally starting the process of replacing my 10-year old 1024 bits DSA key with a shiny new 4096 bits RSA key. The old key ID is F5D65169, the new key ID is FA1E5292; it&#8217;s available from the keyservers or my website. I have [...]]]></description>
			<content:encoded><![CDATA[<p>After weeks of trying to get around to doing that, I am finally starting the process of replacing my 10-year old 1024 bits DSA key with a shiny new 4096 bits RSA key.</p>
<p>The old key ID is F5D65169, the new key ID is FA1E5292; it&#8217;s available from the keyservers or my website.</p>
<p>I have put up a <a title="GPG transition document; F5D65169 to FA1E5292" href="http://www.jblache.org/jb/FA1E5292-transition.txt">transition document</a>, signed with both keys; if you&#8217;ve signed my old key, grab it, verify it and if all is OK on your end, please sign the new key.</p>
<p>You&#8217;ll notice that one of the old UIDs did not make it to the new key; that&#8217;s because I&#8217;m not using that email address and don&#8217;t actually intend to use it in the future.</p>
<p>Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/03/05/287/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>forked-daapd: Remote support, more to come</title>
		<link>http://blog.technologeek.org/2010/02/14/282</link>
		<comments>http://blog.technologeek.org/2010/02/14/282#comments</comments>
		<pubDate>Sun, 14 Feb 2010 09:58:00 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=282</guid>
		<description><![CDATA[A few weeks ago, I&#8217;ve added support for Remote, Apple&#8217;s iPhone application for controlling iTunes remotely. Here, &#8220;support&#8221; means Remote can be paired with forked-daapd and can be used to browse the library. And that&#8217;s it, for now. At this point, there won&#8217;t be much visible activity on forked-daapd for some time. I&#8217;m working on [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I&#8217;ve added support for Remote, Apple&#8217;s iPhone application for controlling iTunes remotely. Here, &#8220;support&#8221; means Remote can be paired with forked-daapd and can be used to browse the library. And that&#8217;s it, for now.</p>
<p>At this point, there won&#8217;t be much visible activity on forked-daapd for some time. I&#8217;m working on a couple of things, but they take time and they require a lot of new code.</p>
<p>So, for a couple weeks now, I&#8217;ve been working on that. I have some code outside forked-daapd that is starting to work well, but it&#8217;s not there yet, far from it. Then it&#8217;ll have to be integrated into forked-daapd, which means a lot of new code there too.</p>
<p>Bug fixes will still happen in the meantime, and some smaller new features may also appear before the Big Thing™. So if you find or encounter bugs, feel free to report them still. If you have patches or ideas you want to discuss, feel free too.</p>
<p>As I wrote to a couple people by mail already, good things come to those who wait or contribute.</p>
<p>With all that, I&#8217;ve updated the <a title="forked-daapd Debian packages" href="http://debian.technologeek.org/forked-daapd/">Debian packages</a>, given that there won&#8217;t be important changes for a while; I hope they&#8217;re useful to some of you out there. Note that I&#8217;m making an amd64 binary package available alongside the source package; it&#8217;s built on a current Debian unstable system, but if that&#8217;s not suitable for you, in terms of dependencies or architecture, you can trivially build a suitable binary package from the source package. As a reminder, I have <a title="ANTLRv3 C runtime Debian packages" href="http://debian.technologeek.org/antlr/">packages of the ANTLRv3 C runtime</a> too. I&#8217;ve also added antlr-3.1.3.jar there, in case you need it and can&#8217;t find it at the <a title="ANTLR.org download directory" href="http://www.antlr.org/download/">upstream download site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/02/14/282/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ten years</title>
		<link>http://blog.technologeek.org/2010/02/05/279</link>
		<comments>http://blog.technologeek.org/2010/02/05/279#comments</comments>
		<pubDate>Fri, 05 Feb 2010 07:27:13 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Debian]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=279</guid>
		<description><![CDATA[Ten years ago, pretty much to the day, I was installing my first Debian system, a frozen Potato, using a release-candidate version of the boot-floppies. A few days later, I was reading the Policy, New Maintainer&#8217;s Guide and Developer&#8217;s Reference while building my first package. It&#8217;s been a fun ten years, with ups and downs, [...]]]></description>
			<content:encoded><![CDATA[<p>Ten years ago, pretty much to the day, I was installing my first Debian system, a frozen Potato, using a release-candidate version of the boot-floppies. A few days later, I was reading the Policy, New Maintainer&#8217;s Guide and Developer&#8217;s Reference while building my first package.</p>
<p>It&#8217;s been a fun ten years, with ups and downs, and I&#8217;m looking forward to what&#8217;s coming next.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/02/05/279/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>forked-daapd: FreeBSD &amp; kFreeBSD port completed</title>
		<link>http://blog.technologeek.org/2010/01/12/275</link>
		<comments>http://blog.technologeek.org/2010/01/12/275#comments</comments>
		<pubDate>Tue, 12 Jan 2010 18:44:15 +0000</pubDate>
		<dc:creator>jblache</dc:creator>
				<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://blog.technologeek.org/?p=275</guid>
		<description><![CDATA[Mostly an update to my previous post on the subject, I&#8217;ve just completed the FreeBSD port. It also builds and runs on GNU/kFreeBSD, by the way. The filescanner for forked-daapd on FreeBSD is now up to par with its Linux counterpart, as much as possible. Contrary to the latter, it will lose some metadata (play [...]]]></description>
			<content:encoded><![CDATA[<p>Mostly an update to my previous post on the subject, I&#8217;ve just completed the FreeBSD port. It also builds and runs on GNU/kFreeBSD, by the way.</p>
<p>The filescanner for forked-daapd on FreeBSD is now up to par with its Linux counterpart, as much as possible. Contrary to the latter, it will lose some metadata (play count, for instance) when files get moved around, because it&#8217;s not possible to track moves and renames accurately. It also performs more rescans than the Linux/inotify implementation. Still, it works just as good.</p>
<p>On a related note, the machine I tried to install FreeBSD 8.0 on and finally ended up installing GNU/kFreeBSD on just seemingly committed suicide. I&#8217;m not sure what message it&#8217;s trying to send me. It&#8217;s previously been my main workstation for the best part of 10 years, so this is a bit sad.</p>
<p>At least I found some bugs in the process and fixed some too:</p>
<ul>
<li>2 bugs in forked-daapd, one of them a crasher,</li>
<li>a bug in Avahi on kFreeBSD,</li>
<li>a bug in GRUB2 as used on the kFreeBSD daily d-i images.</li>
</ul>
<p>Not bad, is it?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.technologeek.org/2010/01/12/275/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
