<?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>The One with the Thoughts of Frans &#187; Operating Systems</title>
	<atom:link href="http://fransdejonge.com/category/operating-systems/feed/" rel="self" type="application/rss+xml" />
	<link>http://fransdejonge.com</link>
	<description>Just a personal blog, sharing some thoughts and findings.</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:37:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Debian: International Fonts</title>
		<link>http://fransdejonge.com/2012/02/debian-international-fonts/</link>
		<comments>http://fransdejonge.com/2012/02/debian-international-fonts/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 20:52:47 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Language]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1803</guid>
		<description><![CDATA[An easy apt-get install line for East Asian and Indic fonts.]]></description>
			<content:encoded><![CDATA[<p>Ubuntu comes with a large swath of international fonts installed by default, but Debian requires a little more attention. Although I can&#8217;t read the languages, I can recognize which script is which. Besides, boxes are just ugly.</p>
<ul>
<li>East Asian: <code>apt-get install ttf-arphic-uming ttf-wqy-zenhei ttf-sazanami-mincho ttf-sazanami-gothic ttf-unfonts-core</code> (<a href="http://en.wikipedia.org/wiki/Help:Multilingual_support_(East_Asian)">source</a>)</li>
<li>Indic: <code>apt-get install ttf-indic-fonts</code> (<a href="http://en.wikipedia.org/wiki/Help:Multilingual_support_(Indic)">source</a>)</li>
<li>All together: <code>apt-get install ttf-arphic-uming ttf-wqy-zenhei ttf-sazanami-mincho ttf-sazanami-gothic ttf-unfonts-core ttf-indic-fonts</code></li>
</ul>
<p>These are merely the ones that I missed the most. I may update this post in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2012/02/debian-international-fonts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mounting filesystems with fstab</title>
		<link>http://fransdejonge.com/2011/12/mounting-filesystems-with-fstab/</link>
		<comments>http://fransdejonge.com/2011/12/mounting-filesystems-with-fstab/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 21:56:24 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1773</guid>
		<description><![CDATA[If you&#8217;re just switching from Windows and you don’t like to enter passwords every time you want to access your disks, fstab is what you need. Of course it also applies to e.g. ext4 partitions that you didn&#8217;t assign a mount point during the installation of your OS, but when you&#8217;ve come that far along [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re just switching from Windows and you don’t like to enter passwords every time you want to access your disks, fstab is what you need. Of course it also applies to e.g. ext4 partitions that you didn&#8217;t assign a mount point during the installation of your OS, but when you&#8217;ve come that far along you probably already know this.</p>
<p>By far the best explanation of fstab I&#8217;ve found was on <a href="https://wiki.archlinux.org/index.php/Fstab">ArchWiki</a>, so I won’t waste my time reiterating what is stated there. I’ll merely try to further clarify a few things that were less immediately obvious to myself and needed a little experimentation.</p>
<p>In many ways fstab is what I always wanted in Windows. For a long, long time I&#8217;ve maintained a C partition (dedicated Windows, so I could wipe it without really affecting anything), a D partition (my primary data container), and later, as I added more HDDs, I think I got up to G. There are some hacks available, like <a href="http://en.wikipedia.org/wiki/NTFS_junction_point">NTFS junction points</a>, but they don&#8217;t really protect against the fundamental flaw of drive letter assignment compared to the much more sensible mechanism of mount points.</p>
<p>When you mount a partition manually through your GUI, by clicking on it and entering your password, it creates a temporary entry in /etc/mtab; this entry can be used to <a href="http://stateless.geek.nz/2005/10/26/bind-mount-in-fstab/">as a starting point for fstab entries</a>. However, for more reliable partition mounting you need to use <abbr title="Universally unique identifier">UUID</abbr>s. You can obtain this using <code>blkid /mnt/sda1</code>, where /mnt/sda1 should be replaced with whatever partition you want to print a <abbr title="Universally unique identifier">UUID</abbr> for. This command needs to be run as root, i.e. with <code>su</code> or <code>sudo</code>.</p>
<pre><code># Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).</code></pre>
<p>If you prefer to use a GUI, there are some options, but I haven&#8217;t tried any of them. </p>
<dl>
<dt>Disk Manager</dt>
<dd><a href="http://flomertens.free.fr/disk-manager/">http://flomertens.free.fr/disk-manager/</a></dd>
<dt>PySDM</dt>
<dd><a href="http://pysdm.sourceforge.net/">http://pysdm.sourceforge.net/</a></dd>
<dt>fwfstab</dt>
<dd><a href="http://www.diffingo.com/oss/fwfstab">http://www.diffingo.com/oss/fwfstab</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/12/mounting-filesystems-with-fstab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Skype Call Recorder</title>
		<link>http://fransdejonge.com/2011/11/skype-call-recorder/</link>
		<comments>http://fransdejonge.com/2011/11/skype-call-recorder/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 15:02:13 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1797</guid>
		<description><![CDATA[Skype Call Recorder delivers on the promise of its name. It records calls, with the participants split into two separate channels if you want — which you do if you want the option of raising or lowering the volume of one participant.]]></description>
			<content:encoded><![CDATA[<p><a href="http://atdot.ch/scr/">Skype Call Recorder</a> delivers on the promise of its name. It records calls, with the participants split into two separate channels if you want — which you do if you want the option of raising or lowering the volume of one participant. </p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/11/skype-call-recorder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switching µTorrent from Windows to Linux</title>
		<link>http://fransdejonge.com/2011/06/switching-%c2%b5torrent-from-windows-to-linux/</link>
		<comments>http://fransdejonge.com/2011/06/switching-%c2%b5torrent-from-windows-to-linux/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 13:16:38 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1775</guid>
		<description><![CDATA[How to adjust the various µTorrent .dat files to switch over hundreds of torrents with little effort.]]></description>
			<content:encoded><![CDATA[<p>A while ago, I wrote about using Wine in order to switch completely to Linux <em>a lot quicker</em> than would be possible if you had to figure out replacements for various pieces of peripheral software. In the case of µTorrent this meant that I could keep on seeding all the torrents I&#8217;ve downloaded over the years and not having to set up my RSS feeds and other preferences once more, but it&#8217;s not all sunshine. Aside from minor bugs in Wine, it simply uses a lot more memory and sometimes CPU. As an unscientific guestimate, it seems about 5 times as memory hungry as on Windows.</p>
<aside>The rtorrent-dependent rutorrent web interface should offer roughly the same functionality as µTorrent Server if you&#8217;re starting from scratch, which may or may not be preferable if you were starting more or less from scratch, but this is specifically not about that. I have years worth of files, albeit I acknowledge that I can probably safely delete and stop sharing older versions of e.g. Ubuntu and foobar2000.</aside>
<p> In the not too distant past, fixing this would&#8217;ve required a switch to e.g. qBittorrent, but an alpha version of <a href="http://www.utorrent.com/downloads/linux">µTorrent Server</a> is now available for Linux.  It can do everything normal µTorrent can, but not everything is necessarily available through its default WebUI. Luckily an <a href="http://forum.utorrent.com/viewtopic.php?id=58156">alternative WebUI</a> is available and I&#8217;d highly recommend it over what comes with the µTorrent Server by default. It enables RSS feeds and filters, among other things. I think it&#8217;s probably no more than a newer version, so perhaps you can ignore this part of this post if you&#8217;re reading this in a few months time.</p>
<p>One thing that doesn&#8217;t seem to be mentioned in the documentation anywhere is that you can access the WebUI through <a href="http://localhost:8080/gui/">http://localhost:8080/gui/</a>.</p>
<p>Now for switching over the data and configuration files. Luckily µTorrent for Linux uses the same data files, so you can easily copy over rss.dat (feeds configuration) and resume.dat (locations of torrents). Of course that won&#8217;t fix the problem that directory structures are slightly different on the respective platforms, and I don&#8217;t think you can make symbolic links to drive letters except in Wine. That&#8217;s where BEncode Editor comes in, as described in <a href="http://filesharefreak.com/2008/11/02/utorrent-move-all-your-downloaded-files-keep-seeding/">an article about moving your µTorrent files</a>. I couldn&#8217;t find a similar utility for Linux, but no matter, it works quite well in — drum roll — Wine. I <a href="http://sites.google.com/site/ultimasites/bencode-editor">downloaded</a> version 0.7.1.0, the latest at the time of writing.</p>
<p>You should read through the guide I linked, but of course some slight adjustments will have to be made. In my case I did some reorganizing of my HDDs after I hadn&#8217;t booted into Windows for a month, but the differences for my torrents weren&#8217;t that big. I replaced <code>D:\downloads\torrents\</code> globally with <code>/media/downloads/torrents/</code> as outlined in the text. I repeated similar commands for my <code>E:\</code> and <code>I:\</code>, but of course the specifics will be different for everyone. To finish it off you can replace all instances of <code>\</code> with <code>/</code>.</p>
<p>Something similar can be done for rss.dat, but I had already adjusted all my filters manually in the µTorrent WebUI.</p>
<p>Assuming you run this command in the directory where you put the µTorrent Server executable, you can run <code>cp /somewhere/uTorrent-for-Windows-folder/*.torrent</code> to copy over all the relevant *.torrent files.</p>
<p>There are some slight inconveniences. For example, you can&#8217;t open in folder directly, but you have to navigate there manually or copy the location from the WebUI. However, if you were using Wine you&#8217;d already given up on proper integration regardless. I think it&#8217;s easier to copy the proper Linux path from the WebUI than to mentally line up Wine drives and directories with real ones.</p>
<p>As one final caveat this method didn&#8217;t seem to remember proper times when downloads finished and instead &#8220;downloaded&#8221; all my torrents at that point in time. I&#8217;m sure that could be avoided somehow (perhaps by copying over settings.dat?) but for my purposes it didn&#8217;t matter. </p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/06/switching-%c2%b5torrent-from-windows-to-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Fun with Screen and SSH with Byobu: Automatic Reattaching</title>
		<link>http://fransdejonge.com/2011/06/more-fun-with-screen-and-ssh-with-byobu-automatic-reattaching/</link>
		<comments>http://fransdejonge.com/2011/06/more-fun-with-screen-and-ssh-with-byobu-automatic-reattaching/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 17:35:14 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1779</guid>
		<description><![CDATA[Byobu is screen on crack and with some minor modification of .bashrc it can rock your (SSH) world.]]></description>
			<content:encoded><![CDATA[<p>A while ago <a href="/2010/12/18/screen/">I wrote about screen</a>, which makes your SSH experience more satisfying. There are some enhancements you can make to screen with <code>.screenrc</code>, but <a href="https://launchpad.net/byobu">Byobu</a> does more by default than I ever could be bothered to figure out. It seems to come pre-installed on Ubuntu, while <code>aptitude install byubo</code> suffices for Debian.</p>
<p>I thought it&#8217;d be even better if <a href="http://tlug.dnho.net/node/239">screen automatically attached itself when logging in through SSH</a>, and clearly I wasn&#8217;t alone in that thought. I made a slight adjustment to the code I found so that Byobu is utilized when available and otherwise regular screen will load. Screen is often installed by default, unlike Byobu, so that way I won&#8217;t have to install or compile Byobu to reap the benefits of my custom <code>.bashrc</code>.</p>
<pre><code># From http://tlug.dnho.net/node/239
# "The following code when added to your .bashrc file will, after logging in via ssh, look for any unattached screen sessions and automatically attach to the first one found. If only attached sessions are found then a list of these will be outputted to std out. Finally, If there are no screen sessions running at all then a new screen session will be created."
if [ $SSH_TTY ] &#038;&#038; [ ! $WINDOW ]; then
	SCREENLIST=`screen -ls | grep 'Attached'`
	if [ $? -eq "0" ]; then
		echo -e "Screen is already running and attached:\n ${SCREENLIST}"
	else
		type -P byobu &#038;>/dev/null &#038;&#038; byobu -U -R || screen -U -R
	fi
fi
# Optionally adding the following will alter your prompt to let you easily know which window within a screen session you are currently in.
if [ $TERM = "screen" ]; then
	PS1='window ${WINDOW} '$PS1
fi</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/06/more-fun-with-screen-and-ssh-with-byobu-automatic-reattaching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Synchronization: NTP</title>
		<link>http://fransdejonge.com/2011/05/time-synchronization-ntp/</link>
		<comments>http://fransdejonge.com/2011/05/time-synchronization-ntp/#comments</comments>
		<pubDate>Fri, 27 May 2011 08:53:58 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1782</guid>
		<description><![CDATA[Debian doesn't synchronize time with a time server by default. That's very easy to fix.]]></description>
			<content:encoded><![CDATA[<p>Today I noticed that my computer clock was running fast, meaning that Debian doesn&#8217;t come with some kind of time synchronization enabled by default. Ubuntu doesn&#8217;t exactly either, but <a href="https://help.ubuntu.com/community/UbuntuTime">setting your location seems to take care of it in Ubuntu</a>.</p>
<p>There&#8217;s really nothing much to tell here. Debian Wiki <a href="http://wiki.debian.org/NTP">has all the instructions lined up already</a>.</p>
<blockquote cite="http://wiki.debian.org/NTP">
<ul>
<li>Type date to see current date and time
<pre>date</pre>
</li>
<li>Install NTP
<pre>aptitude install ntp</pre>
</li>
<li>Done.
<li>Type <code>ntpq -p</code> to see servers you are syncing with.</li>
<li>Type <code>date</code> again to see if the time changed. You time should be synced in a next minute.</li>
<li>Done.</li>
</ul>
</blockquote>
<p>There&#8217;s nothing more to do, though I often like to take a peek at the configuration files and the man pages — the latter is typically a bit too dense unless you already know what you&#8217;re looking for. In this case, that would mean <code>man ntpd</code>, <code>man ntp.conf</code>, and, most important, <code>nano /etc/ntp.conf</code> (or whatever your favorite text editor is). It doesn&#8217;t look like there&#8217;s anything of particular interest, but you might want to replace some of those default Debian server pools with ones geographically closer to you. The easiest way is to check on <a href="http://www.pool.ntp.org/en/">www.pool.ntp.org</a>, but if e.g. your ISP offers such a service it might be a good idea to use it.</p>
<p>In my case, Belgium didn&#8217;t have too many servers, so I made up my own mix of Belgium, the Netherlands, and Europe.</p>
<pre><code>#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst

server 0.be.pool.ntp.org
server 1.nl.pool.ntp.org
server 2.nl.pool.ntp.org
server 3.europe.pool.ntp.org</code></pre>
<p>Also see <a href="http://okomestudio.net/biboroku/?p=1582">how to disable the daemon on battery power</a>. I don&#8217;t know how much of a difference that would actually make, but as the Dutch idiom goes, all small bits help.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/05/time-synchronization-ntp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unmount Flash Drives &amp; Memory Cards</title>
		<link>http://fransdejonge.com/2011/05/unmount-flash-drives-memory-cards/</link>
		<comments>http://fransdejonge.com/2011/05/unmount-flash-drives-memory-cards/#comments</comments>
		<pubDate>Sat, 21 May 2011 11:27:44 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1770</guid>
		<description><![CDATA[Perhaps Gnome isn't better than Windows, but Linux sure is.]]></description>
			<content:encoded><![CDATA[<p>It seems that Gnome&#8217;s <em>safely remove drive</em> feature works just like the equivalent in Windows: not at all. It even displays the exact same useless error message, almost word for word: <em>this device cannot be stopped</em>. Not the slightest hint about why this might be the case.</p>
<p>Following this scenario, on Windows you&#8217;d pretty much be stuck shutting down your computer to be sure that no data loss will occur (although workarounds like <a href="http://fransdejonge.com/2006/12/17/unlocker/">Unlocker</a> exist, or you can use Process Explorer to figure out the culprit manually). Luckily, on Linux the workaround is a lot easier. Use <code>mount</code> to display information about all currently mounted file systems and <code>umount</code> to, you guessed it, unmount the file system of your choice. </p>
<pre><code>$ mount
[…]
/dev/sde1 on /media/888E-E0E0 type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)
$ umount /dev/sde1</code></pre>
<p>PS I just found out that I&#8217;m mistaken, but I already wrote the post and besides, the point that you&#8217;re able to do things like this <em>if you want</em>, whereas you&#8217;d be stuck in Windows, still stands. It seems that the way Gnome devs envisioned unmounting is not while you&#8217;re viewing it in Nautilus by right-clicking, but by right-clicking on the icon on the desktop.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/05/unmount-flash-drives-memory-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote Desktop: Remmina</title>
		<link>http://fransdejonge.com/2011/05/remote-desktop-remmina/</link>
		<comments>http://fransdejonge.com/2011/05/remote-desktop-remmina/#comments</comments>
		<pubDate>Tue, 17 May 2011 13:07:14 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1774</guid>
		<description><![CDATA[A quick tip for Ubuntu users: install Remmina instead of (or alongside) the default Vinagre with sudo apt-get install remmina. It&#8217;s much better. Not only does it perform better (that is, it doesn&#8217;t hog CPU), but it has all the options Vinagre lacks.]]></description>
			<content:encoded><![CDATA[<p>A quick tip for Ubuntu users: install Remmina instead of (or alongside) the default Vinagre with <code>sudo apt-get install remmina</code>. It&#8217;s much better. Not only does it perform better (that is, it doesn&#8217;t hog CPU), but it has all the options Vinagre lacks.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/05/remote-desktop-remmina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Wine to Ease Migration from Windows</title>
		<link>http://fransdejonge.com/2011/05/using-wine-to-ease-migration-from-windows/</link>
		<comments>http://fransdejonge.com/2011/05/using-wine-to-ease-migration-from-windows/#comments</comments>
		<pubDate>Thu, 05 May 2011 21:01:23 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1769</guid>
		<description><![CDATA["Wine lets you run Windows software on other operating systems. With Wine, you can install and run these applications just like you would in Windows."]]></description>
			<content:encoded><![CDATA[<p>According to <a href="http://www.winehq.org/about/">its about page</a>, <q>&#8220;Wine lets you run Windows software on other operating systems. With Wine, you can install and run these applications just like you would in Windows.&#8221;</q> That sounds like a good enough description to me.</p>
<p>I have some applications that depend on a specific drive letter configuration, so to be truly able to share applications between Wine and Windows I&#8217;ll have to set up my drives in Wine just the way they are on Windows. I may write a post later about how to auto-mount Windows partitions.</p>
<p>Setting up drives is incredibly simple: you start the Wine configuration program and go to the drives tab. There you can set up certain directories or mount points to correspond to certain drives for Windows programs, but <a href="http://www.winehq.org/docs/wineusr-guide/config-wine-main#AEN605">you don&#8217;t even have to use the GUI</a>. The reason this is useful is because you can run your programs like you were on Windows and they wouldn&#8217;t know the difference. As far as the programs are concerned they&#8217;re reading data from the same location as always. This greatly simplifies my process of switching to Linux. Rather than having to set up replacement programs and configurations I can simply let Wine pretend to my programs that they&#8217;re running in the same (drive) configuration as they would on Windows. This way I can switch more completely to Debian without having to exert a lot of effort at once. I can move away from certain programs more slowly, or perhaps not at all.</p>
<p>I found a <a href="https://gist.github.com/74192">Gnome to Wine Color Scraper</a> to improve the look of my Wine applications, but the registry file it generated didn&#8217;t work for my version of Wine. I enabled the debugging option and had to edit the parts where it speaks of <code>HKEY_USERS\S-1-5-4\</code>. For me the number was different. Check in <code>regedit</code> for specifics.</p>
<p>There are many more things you can do with Wine, including playing a fair amount of Windows-based games. Check the website for more information on compatibility.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/05/using-wine-to-ease-migration-from-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lossless Rotation with jhead and jpegtrans</title>
		<link>http://fransdejonge.com/2011/04/lossless-rotation-with-jhead-and-jpegtrans/</link>
		<comments>http://fransdejonge.com/2011/04/lossless-rotation-with-jhead-and-jpegtrans/#comments</comments>
		<pubDate>Sun, 24 Apr 2011 09:53:12 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Photograpy]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1767</guid>
		<description><![CDATA[I like my pictures rotated in such a way that I don't have to depend on application support for them to be displayed correctly. jhead can take care of that.]]></description>
			<content:encoded><![CDATA[<p>I like my pictures rotated in such a way that I don&#8217;t have to depend on application support for them to be displayed correctly. <code>jpegtran</code> (pre-installed on most distros) is a wonderful application with many features, including lossless rotation, but it&#8217;s too laborious for my purposes. That&#8217;s where <code>jhead</code> comes in.<br />
<aside>To install, use <code>apt-get install jhead</code> or <code>sudo apt-get install jhead</code> in Debian and derivatives, as always.</aside>
<p>You can simply go into a directory, run a command like the following, and everything will be done automatically for you.</p>
<pre><code>jhead -autorot *.JPG</code></pre>
<p>Of course I wouldn&#8217;t run it if you don&#8217;t have a backup available. I always keep the pictures around on my camera until I&#8217;ve confirmed that all processing was successful and then I still don&#8217;t delete them until the adjusted files were also copied to my external HDD in my semi-regular backup regime.</p>
<p>Another utility that can perform the same task is <code>exiftran</code>, but despite being more or less dedicated to this very purpose it&#8217;s not even easier to use: I&#8217;d expect <code>exiftran *.JPG</code> to default to the equivalent of the <code>jhead -autorot *.JPG</code> command I posted above, but instead you have to use <code>exiftran -ai *.JPG</code>. All other things being equal for my purposes, I decided to go with jhead because it has <a href="http://www.sentex.net/~mwandel/jhead/usage.html">many more features</a> — although last year I decided that <a href="/2010/01/04/using-exiv2-to-help-manage-your-pictures/">exiv2</a> is superior to jhead in ease of use for most of those features.</p>
<p>If you&#8217;re just looking for the occasional lossless rotation, you could also try the <a href="http://geeqie.sourceforge.net/">Geeqie image viewer and manager</a>. It integrates calls to exiftran, but beware that you explicitly have to choose the lossless option, as there are also lossy rotate options.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/lossless-rotation-with-jhead-and-jpegtrans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dolby Digital 5.1 Over S/PDIF With PulseAudio</title>
		<link>http://fransdejonge.com/2011/04/dolby-digital-5-1-over-spdif-with-pulseaudio/</link>
		<comments>http://fransdejonge.com/2011/04/dolby-digital-5-1-over-spdif-with-pulseaudio/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 15:11:56 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1759</guid>
		<description><![CDATA[How I got Dolby Digital 5.1 output working over S/PDIF on my onboard Realtek chip with other audio sources mixed in. ]]></description>
			<content:encoded><![CDATA[<p>This post describes how I got Dolby Digital 5.1 output working over S/PDIF on my onboard Realtek chip with other audio sources mixed in. Previously I was only able to achieve either 5.1 output by sending the data stream straight to my receiver, or 2.0 output with everything mixed in. The experiences detailed in this post originate in Debian Squeeze, but if what I wrote is specific to anything, it should be my hardware — not Debian and its derivatives. Before you read on, you might want to check out <a href="http://phoronix.com/forums/showthread.php?35993-Howto-get-true-surround-sound-on-the-cheap-for-gaming-in-Ubuntu.">this forum post</a> instead, which describes a method that didn&#8217;t work out for me.</p>
<p>PulseAudio 0.9.22 is required; it won&#8217;t work on older versions of PulseAudio. Debian Squeeze comes with ALSA 1.0.23; presumably that&#8217;s much less significant. On Debian getting this most recent PulseAudio can be done through the experimental repository.</p>
<p>If you&#8217;re on Debian ALSA is already setup, including the required libasound2-plugins, but to get the most recent version of PulseAudio you&#8217;ll want to add <code>deb http://ftp.debian.org/debian experimental main</code> to <code>/etc/apt/sources.list</code>, and then type <code>apt-get update &#038;&#038; apt-get -t experimental install pulseaudio</code> in a superuser terminal (see the Debian Wiki for <a href="http://wiki.debian.org/DebianExperimental#To_install_an_experimental_package">more information on the experimental repository</a>). On many other distributions PulseAudio is already setup by default, but just like on Debian Squeeze that&#8217;s typically still PulseAudio 0.9.21 at present.</p>
<p>On Ubuntu you&#8217;d have to recompile libasound2-plugins yourself because it doesn&#8217;t include the a52 ALSA plugin by default. The link in the opening paragraph should describe that process sufficiently.</p>
<p>In the System Log Viewer you can keep an eye on syslog for (error) messages from ALSA as well as PulseAudio.</p>
<p>What follows is my <code>/etc/asound.conf</code>, heavily condensed from <a href="http://www.johannes-bauer.com/linux/dolby/">Johannes Bauer&#8217;s Dolby Digital with Linux and ALSA guide</a>. It works quite nicely (with some minor adjustments), but it will only allow one application to utilize audio at a time. One could utilize PulseAudio for stereo while suspending it (with pasuspender) when you want to play a movie or some such with 5.1 audio, but I&#8217;d rather mix everything together in PulseAudio so I don&#8217;t have to think about it after the initial setup, just like in Windows.</p>
<pre><code># Encode AC3 -> Directly on hardware
pcm.Filter_A52Encode {
	type a52
	bitrate 448
	channels 6
}
# Rate Converter to 48kHz, needed for some applications
pcm.a52 {
	type rate
	slave {
        	pcm "Filter_A52Encode"
        	rate 48000
	}
}
# Make last filter the default device
pcm.!default {
	type plug
	slave.pcm "a52"
}</code></pre>
<p>Now that you&#8217;ve got the ALSA configuration in order it&#8217;s time to make some slight adjustments to <code>/etc/pulse/default.pa</code> or PA won&#8217;t detect the possibility for Digital Surround 5.1. According to various sources they had some kind of Digital Surround show up automatically, but I had to explicitly tell PulseAudio about its existence. Adjusted from <a href="https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/348353/comments/9">a comment on Ubuntu bug 348353</a> (which incidentally is why you need PulseAudio 0.9.22).</p>
<pre><code>load-module module-alsa-sink device=a52 rate=48000 channels=6 tsched=0 sink_properties=device.description=SPDIF sink_name=SPDIF channel_map=front-left,front-right,rear-left,rear-right,front-center,lfe</code></pre>
<p>I initially added this line without the channel_map, but then PulseAudio thought I had something like front-left,front-left-of-center,front-center,front-right-of-center,front-right,lfe, which would be a strange setup indeed.</p>
<p>I&#8217;m not quite sure whether the channel map might be more appropriate in <code>/etc/pulse/daemon.conf</code>, where I uncommented <code>default-sample-rate = 48000</code>. I also added the appropriate settings for <code>default-sample-channels = 6</code> and changed <code>enable-lfe-remixing</code> to yes.</p>
<p><code>pavucontrol</code> is instrumental in quickly seeing what&#8217;s going on and for application-specific volume settings. Not utilizing it would be a disservice for yourself if you&#8217;ve chosen to use PulseAudio.</p>
<p>Now that we&#8217;ve got all the configuration set up you could reboot the computer, but one of the great things about Linux is that you rarely have to do that other than to load a different kernel.</p>
<p>As user: <code>pulseaudio --kill</code><br />
As superuser/sudo: <code>/etc/init.d/alsa-utils restart</code><br />
(As user: <code>pulseaudio -D</code>, but that shouldn&#8217;t be necessary)</p>
<p>I utilized the <a href="http://www.lynnemusic.com/surround.html">surround test ac3 file</a> from Lynne Music (<a href="http://lynnepublishing.com/surround/">straight to directory</a>). I played it with <code>mplayer -channels 6</code> to make sure everything was working correctly and to adjust the channel map. At this point everything was finally working fine for me, but most applications still will not cooperating because they default to ALSA. Again, in Ubuntu this shouldn&#8217;t be an issue.</p>
<p>Various adjustments are still required in most applications. For instance, in Totem you have to explicitly set audio output to 5.1 in Edit > Preferences > Audio.<br />
For MPlayer put channels=6 in <code>~/.mplayer/config</code> (note that if you can&#8217;t get PulseAudio to work you could add the equivalents of <code>mplayer -ao alsa:device=spdif -srate 48000 -ac hwac3 file.avi</code> if you so desire).<br />
VLC works fine if Dolby Surround is set to Auto in Tools > Preferences > Audio.</p>
<p>To get the 6 channel output to work in applications that use SDL (Gnash, quite a few games) you&#8217;ll need <code>libsdl1.2debian-pulseaudio</code>. This will replace <code>libsdl1.2debian-alsa</code>. Of course this won&#8217;t be necessary if your distro is set up with PA by default.</p>
<p>On a separate note, I set PulseAudio up so it can play <a href="http://www.unixmen.com/linux-tutorials/582-stream-music-wirelessely-using-pulseaudio-server-device-chooser">audio from all kinds of sources</a> (most notably my laptop).</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/dolby-digital-5-1-over-spdif-with-pulseaudio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mouse Jail</title>
		<link>http://fransdejonge.com/2011/04/mouse-jail/</link>
		<comments>http://fransdejonge.com/2011/04/mouse-jail/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 13:44:49 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1765</guid>
		<description><![CDATA[A simple, slightly inelegant method of trapping the mouse on one monitor in Linux.]]></description>
			<content:encoded><![CDATA[<p>One of the applications I like to use on Windows is <a href="http://sourceforge.net/projects/mousenitor/">Mousenitor</a>, which enables advanced mouse control for users with more than one monitor. It was written by a friend. I haven&#8217;t yet figured out the best way to trap my mouse on one monitor in Linux, but a little application named Jail offers a rudimentary implementation. It was originally written by <a href="http://www.cs.kent.ac.uk/people/rpg/sm244/">Sebastian Marion</a>, but I picked up a slightly modified version from the <a href="http://ubuntuforums.org/showthread.php?t=1181014">Ubuntu forums</a>.</p>
<p>If you want to compile it yourself you need to grab <code>apt-get install build-essential libx11-dev libxtst-dev</code> in Debian (and presumably the same for derivatives like Ubuntu). For good order I also uploaded the source, including my compiled x64 binary, to my own server lest the original source code might be deleted. <a href='http://fransdejonge.com/wp-content/uploads/2011/04/jail.tar.xz'>Download jail.tar.xz</a> if you want to test it. Edit .JailSwitch.sh to correspond to your system.</p>
<p>The <a href="http://en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors/Mouse_Control">Gentoo Wiki</a> possibly describes more elegant, but more involved methods to obtain a similar effect. I&#8217;ll report back if I can get one of those methods to work successfully, and if they do indeed work more elegantly.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/mouse-jail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVN</title>
		<link>http://fransdejonge.com/2011/04/svn/</link>
		<comments>http://fransdejonge.com/2011/04/svn/#comments</comments>
		<pubDate>Thu, 14 Apr 2011 15:43:01 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1762</guid>
		<description><![CDATA[SVN is short for subversion, so to install it you need <code>apt-get install subversion</code>.]]></description>
			<content:encoded><![CDATA[<p>Just a quick reminder to myself: SVN is short for subversion, so to install it you need <code>apt-get install subversion</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VLC: Control Clone Window With Devilspie</title>
		<link>http://fransdejonge.com/2011/04/vlc-control-clone-window-with-devilspie/</link>
		<comments>http://fransdejonge.com/2011/04/vlc-control-clone-window-with-devilspie/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 12:01:11 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1761</guid>
		<description><![CDATA[Automatically output whatever video I'm playing in fullscreen on another monitor.]]></description>
			<content:encoded><![CDATA[<p>My basic use case: automatically output whatever video I&#8217;m playing in fullscreen on another monitor. If I were using Windows and an ATI card, I&#8217;d call it theater mode. nVidia cards also used to have a similar setting related to outputting pure overlay video on another screen, but it was removed from nVidia&#8217;s drivers around the time of the release of Vista (and had been made buggy aspect-ratio wise a few years prior to that). Long story short, nVidia&#8217;s drivers have really degraded an awful lot since 2006 and I don&#8217;t like it one bit.</p>
<p>My answer to this problem is the <a href="/2011/04/11/vlc-make-clone-filter-default/">VLC clone filter</a> coupled with Devilspie, but sadly it&#8217;s not quite as straightforward as I&#8217;d like. Devilspie is a wonderful daemon that can automatically do everything you can do to windows like pinning, moving around, resizing, moving to another workspace, et cetera. In order to do this you need to come up with matching rules for windows, and sadly it&#8217;s a tad more limited in that respect than I&#8217;d like. Anyway, you&#8217;ll want to grab gDevilspie with <code>apt-get gdevilspie</code> (or <code>sudo apt-get gdevilspie</code>, of course), which should automatically pull in devilspie as a dependency.</p>
<p>Since VLC is named <em>VLC media player</em> when it&#8217;s not playing anything, and clone video windows are also named <em>VLC media player</em>, I was having trouble coming up with a means of affecting clone windows without messing up my main window. Then I stumbled on the video-title setting in <code>~./config/vlc/vlcrc</code> and changed it to <em>VLC Clone Window</em> (I couldn&#8217;t find this setting in the GUI). Now matching it in Devilspie was a piece of cake. The primary VLC window is still named <em>VLC media player</em> whereas the clone windows are now named <em>VLC Clone Window</em>.</p>
<pre><code># Video title (string)
video-title=VLC Clone Window</code></pre>
<p>What follows is something I couldn&#8217;t have written as quickly without gDevilspie, but I had to switch some commands around (like putting geometry first instead of last) to obtain the precise situation I wanted, for otherwise VLC returns the window to the original monitor when exiting fullscreen.</p>
<pre><code>( if
	( begin
		( is ( window_name ) "VLC Clone Window" )
	)
	( begin
		( geometry "+1280+0" )
		( maximize )
		( undecorate )
		( above )
		( pin )
	)
)</code></pre>
<p>Now that I got the gist of the syntax I decided to also pin the smaller window on top and extended the configuration file. The official man page is rather lacking, so I recommend <a href="http://foosel.org/linux/devilspie">foosel&#8217;s unofficial documentation</a> instead (via <a href="http://my.opera.com/ruario/blog/2010/03/30/can-the-title-bar-of-opera-linux-be-removed">ruario</a>). You can find the generated files, or make your own, in <code>~/.devilspie/</code>.</p>
<pre><code>( if
	( contains (application_name) "VLC")
	( begin
		(if
			( is ( window_name ) "VLC Clone Window" )
			( begin
				( geometry "+1280+0" )
				( maximize )
				( undecorate )
				( above )
				( pin )
			)
		)
		(if
			( contains ( window_name ) "VLC media player" )
			( begin
				( above )
				( pin )
			)
		)
	)
)</code></pre>
<p>I think that&#8217;s fairly self-explanatory. My hope is that matching the application name to VLC will make sure that any other application with a window_name that contains <em>VLC media player</em> for some reason (or <em>VLC Clone Window</em>) will be unaffected.</p>
<p>If you didn&#8217;t find this quite as enlightening as you&#8217;d hoped, once you&#8217;re in gDevilspie everything&#8217;s pretty much explained in there, and otherwise the documentation I linked to should be of assistance. The only thing above I&#8217;d consider somewhat puzzling at a glance is the offset. The resolution of my monitor is 1280&#215;1024, so the x offset of +1280 makes sure that everything&#8217;s on the correct monitor before maximizing. You can also set a window size, so then it&#8217;s xwidth x ywidth + xoffset + yoffset all mashed together (or instead of + I imagine you can also use -).</p>
<p>The only problem with this solution is that it&#8217;ll put all clone windows on the same monitor. Even though this satisfies my specific use case, I still want to match windows depending on the number of previous also-matched ones still active. For example I can imagine something akin to a tiling window manager on a particular workspace with terminal emulators, except driven by Devilspie and in just about any WM there is (although one might be able to work around that in this particular example with some bash scripting).</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/vlc-control-clone-window-with-devilspie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VLC: Make Clone Filter Default</title>
		<link>http://fransdejonge.com/2011/04/vlc-make-clone-filter-default/</link>
		<comments>http://fransdejonge.com/2011/04/vlc-make-clone-filter-default/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 12:44:57 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1760</guid>
		<description><![CDATA[VLC ignores some of its GUI settings. Luckily it has easy, plain text configuration.]]></description>
			<content:encoded><![CDATA[<p>VLC ignores some of its GUI settings. Luckily it has easy, plain text configuration.</p>
<p>Despite enabling the clone filter in advanced video settings, VLC doesn&#8217;t seem to want to start with the clone filter enabled. No problem, just open up <code>~/.config/vlc/vlcrc</code> and look for:</p>
<pre><code># Video output filter module (string)
#vout-filter=</code></pre>
<p>Replace it with:</p>
<pre><code># Video output filter module (string)
vout-filter=clone</code></pre>
<p>That&#8217;s it. Now VLC will always start with a clone. If you want more clones than the default 2 and VLC ignores the GUI settings as well, or VLC is ignoring some other GUI configuration, now you know where to look for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/04/vlc-make-clone-filter-default/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parcellite</title>
		<link>http://fransdejonge.com/2011/03/parcellite/</link>
		<comments>http://fransdejonge.com/2011/03/parcellite/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 14:51:35 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1757</guid>
		<description><![CDATA[Glipper crashes, Parcellite does not.]]></description>
			<content:encoded><![CDATA[<p>A while ago I wrote about <a href="http://fransdejonge.com/2010/08/22/glipper-a-fix-to-ubuntu-clipboard-woes/">Glipper</a>, but I seem to be affected by <a href="https://bugs.launchpad.net/ubuntu/+source/glipper/+bug/213494">bug #213494</a>, which means that about half the time Glipper crashes on startup; it didn&#8217;t use to do that.</p>
<p>There&#8217;s a proposed workaround on the linked bug report, namely to add a timeout to the beginning of the Glipper code. It seems to work alright for the most part, but Parcellite offers the same functionality without any of the downsides: it doesn&#8217;t depend on Gnome Panel and, of course, it doesn&#8217;t crash.</p>
<p>The easiest way to get it is, as always, <code>sudo apt-get install parcellite</code>. A more recent version can be obtained using the <a href="http://www.webupd8.org/2011/03/parcellite-10-puddletag-0100-webupd8.html">Web Upd8 PPA</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/03/parcellite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VNC Tunneling on Ubuntu for Safer VNC</title>
		<link>http://fransdejonge.com/2011/02/vnc-tunneling-on-ubuntu-for-safer-vnc/</link>
		<comments>http://fransdejonge.com/2011/02/vnc-tunneling-on-ubuntu-for-safer-vnc/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 18:11:15 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1746</guid>
		<description><![CDATA[A very quick overview.]]></description>
			<content:encoded><![CDATA[<p><code>ssh -L [local port]:localhost:[remote port] [user name]@[domain]</code></p>
<p>You can then run the VNC viewer like this:</p>
<p><code>vncviewer -LowColourLevel 1 localhost:[local port]</code></p>
<p>The color level setting here is what results in the best mix between speed and prettiness for me.</p>
<blockquote><p>    -LowColourLevel level<br />
              Selects  the  reduced  colour level to use on slow links.  level can range from 0 to 2, 0 meaning 8 colours, 1 meaning 64 colours (the default), 2 meaning 256 colours.</p></blockquote>
<p>If you are connecting from Linux to Linux (as opposed to from Linux to XP), more efficient means may be available.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/02/vnc-tunneling-on-ubuntu-for-safer-vnc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Decent Audio Player on Linux: Or How to Replace foobar2000</title>
		<link>http://fransdejonge.com/2011/01/a-decent-audio-player-on-linux-or-how-to-replace-foobar2000/</link>
		<comments>http://fransdejonge.com/2011/01/a-decent-audio-player-on-linux-or-how-to-replace-foobar2000/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 16:36:28 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1751</guid>
		<description><![CDATA[If Aqualung can't, nothing can. You decide.]]></description>
			<content:encoded><![CDATA[<p>Short answer: you can&#8217;t. Slightly longer answer: there are only four applications (of the <a href="http://my.opera.com/community/forums/topic.dml?id=359191">ginormous number I tried</a>) capable of playing music well: <strong>Aqualung</strong>, Deadbeef, GogglesMM, and mpd. Anything else simply doesn&#8217;t do it for me. In this post I&#8217;ll explain my requirements for an audio player.</p>
<p>My most basic requirement for an audio player is, logically, playing audio <em>well</em>. While that sounds too obvious to mention, the primary reason I only came up with four audio players is because none of the other players I tried met what I mean by this, which is the following:</p>
<ul>
<li>Good audio quality. It would seem that all players on Windows as well as Linux have reasonable output quality these days, and I remember that 10 years ago that wasn&#8217;t necessarily the case. What player you chose could significantly affect the output. Either way, I still list it because it&#8217;s probably the most important requirement.</li>
<li>Gapless playback. No fading in and out and no pauses. Fading might be alright between songs from different albums, though I feel that true gapless playback removes any need for silly fading practices. At any rate, even though this applies most strongly to only a minority of albums it&#8217;s a prerequisite.</li>
<li>ReplayGain. I don&#8217;t like to be surprised by overly loud music or some such. But perhaps most important, this means album gain, not just track gain. Many players that support some form of RG fail here because they only do it on a per-track basis.</li>
</ul>
<p>Then there are some peripheral things I like that aren&#8217;t directly related to audio quality:</p>
<ul>
<li>Must not freeze when adding a few files. Preferably it&#8217;ll be able to do it completely out of your sight, but I&#8217;ll take some kind of &#8220;busy&#8221; notice as long as it doesn&#8217;t interfere with the application&#8217;s ability to play music, be paused, go to the next track, and the like. It seems that any Python-based application utterly fails here, including Quod Libet, which says &#8220;Do other media libraries choke and die after a mere 10,000 songs?&#8221; Perhaps it doesn&#8217;t die, but it certainly chokes for enough time for me to stop caring if it will so I&#8217;ll kill it manually.</li>
<li>Shouldn&#8217;t lock out the interface or keyboard bindings while adding music. If the GUI doesn&#8217;t freeze, but does lock me out with a &#8220;nice&#8221; adding files dialog it isn&#8217;t really that much better than freezing, is it? Still, at least you&#8217;ve got a rough idea regarding what&#8217;s going on and whether it&#8217;ll take seconds, minutes, or hours before you regain control. Plus there&#8217;s usually a cancel button for instant control, whereas a frozen GUI requires killing and restarting for that.</li>
<li>Last.FM scrobbling. I just like it. All in all I suppose this is the least important feature.</li>
<li>Media library. foobar2000&#8242;s library contains a bunch of track metadata and it automatically monitors folders for updates. It&#8217;s quite neat.</li>
</ul>
<p>Neither Aqualung, Deadbeef, GogglesMM, nor mpd quite succeeds at all of these requirements, while they are all part of foobar2000&#8242;s base package or easily added with plugins. I haven&#8217;t even touched on the wonderful things I can do in foobar2000 with the command line, keyboard bindings, and columns_ui, but I suppose can&#8217;t expect that.</p>
<p>Aqualung generally seems to succeed best at the requirements I listed, save for Last.FM submission. However, because I don&#8217;t use Ubuntu/Linux as my primary media playing OS (that&#8217;s still XP) I generally tend to vary a bit between Aqualung and Deadbeef as my music player of choice. Nevertheless I&#8217;m quite confident that Aqualung would be my primary choice if I played more than the occasional few tracks or podcasts.</p>
<p>Rather than explaining what Aqualung does right, which I think I already did while listing my requirements, I&#8217;ll explain what&#8217;s less optimal about the alternatives from the perspective of my second-favorite player, Deadbeef.</p>
<ul>
<li>it does ReplayGain well, including on MP3 with ID3v2 tags — Aqualung: equivalent; Goggles: worse</li>
<li>it doesn&#8217;t choke when adding lots of files, but does lock out access to the interface while it&#8217;s adding files — Aqualung: superior; Goggles: equivalent to worse (since Goggles requires files to be added to the music library, which isn&#8217;t something I necessarily want just to play some random file or song)</li>
<li>it only does gapless playback on some filetypes — Aqualung: superior; Goggles: equivalent</li>
<li>it supports Last.FM scrobbling — Aqualung: worse; Goggles: equivalent</li>
</ul>
<p>Aqualung is clearly superior on all accounts save Last.FM support, but I&#8217;m glad that Deadbeef, Goggles, and mpd are around to show other players how not to suck. I have to say that if mpd could play random files easily I&#8217;d probably be using that instead of anything else. Plus I don&#8217;t really want everything to be in a library before I can play it. Since I don&#8217;t typically use Linux for &#8220;real&#8221; music listening I sometimes pick Deadbeef&#8217;s or Goggles&#8217; Last.FM submission over Aqualung&#8217;s technical superiority.</p>
<p>Basically, Deadbeef and Aqualung deliver what Quod Libet promises: &#8220;Are you sick of audio players that think they know how to organize your music for you? Do other media libraries choke and die after a mere 10,000 songs?&#8221; Goggles is a little too focused on its library for my taste, but it&#8217;s certainly not horrible. Still, the point is that I like Quod Libet&#8217;s philosophy better than Goggles&#8217; philosophy. Quod Libet, meanwhile, does not deliver on its promise at all and it chokes horribly. I suspect it&#8217;s due to Python, because all Python-based players seem to suffer from the same defect.</p>
<p>Finally, I must admit that I haven&#8217;t properly investigated terminal-based players such as cmus and MOC because I only found out about them recently, after I tried tons and tons of music players in order to end up with the list at the top of this post.</p>
<p>If you know any other players that more or less meet these requirements, particularly the playing back music <em>well</em> part, I&#8217;d love to hear them.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/01/a-decent-audio-player-on-linux-or-how-to-replace-foobar2000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen</title>
		<link>http://fransdejonge.com/2010/12/screen/</link>
		<comments>http://fransdejonge.com/2010/12/screen/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 13:06:17 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1749</guid>
		<description><![CDATA[Screen enables you to use sessions in your terminal.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever used SSH, you probably came across a situation where your connection got interrupted and you lost what you were doing, or maybe you simply wanted to carry over what you were doing remotely to your main computer. That&#8217;s what Screen is for, but it&#8217;s also useful on just one computer.</p>
<p>There are an awful lot of possibilities listed in <code><span>man</span> screen</code>, but I only need a few.</p>
<ul>
<li><code><span>screen</span></code> starts screen, obviously</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>d</kbd> to <em>detach</em> from a screen session</li>
<li><code><span>screen</span> -r</code> to reattach</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>c</kbd> to <em>create</em> a new console (or type <code><span>screen</span> command</code> to forgo on an essentially useless Bash session)</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>Ctrl</kbd> + <kbd>a</kbd> switches to the last active window</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>n</kbd> and <kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>p</kbd> switches back and forth through windows</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>X</kbd>, where X is a number</li>
<li><kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>"</kbd> gives you a list of windows to choose from; this isn&#8217;t very useful without naming the windows with <kbd>Ctrl</kbd> + <kbd>a</kbd>, <kbd>A</kbd></li>
</ul>
<p>I mostly learned this through a <a href="http://www.kuro5hin.org/story/2004/3/9/16838/14935">slightly more detailed guide</a>, for the screen man page was a little too overwhelming to figure out what was useful and what wasn&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/12/screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mouse in TTY</title>
		<link>http://fransdejonge.com/2010/12/mouse-in-tty/</link>
		<comments>http://fransdejonge.com/2010/12/mouse-in-tty/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 15:14:02 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1750</guid>
		<description><![CDATA[To utilize the mouse in your tty, install gpm: sudo apt-get install gpm.]]></description>
			<content:encoded><![CDATA[<p>To utilize the mouse in your tty, install gpm: <code>sudo apt-get install gpm</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/12/mouse-in-tty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

