<?xml version="1.0"?>
<rss version="2.0">

<channel>
	<title>Planet Larry</title>
	<link>http://planet.larrythecow.org/</link>
	<language>en</language>
	<description>Planet Larry - http://planet.larrythecow.org/</description>

<item>
	<title>Paulo Roberto: HOWTO – Servidor DAAP no FreeBSD</title>
	<guid isPermalink="false">http://stpaul.0xbadc0ffe.org/?p=3</guid>
	<link>http://stpaul.0xbadc0ffe.org/?p=3</link>

	<description>&lt;p&gt;O Firefly (antigo mt-daapd) é uma implementação DAAP (Digital Audio Access Protocol) que é o protocolo utilizado pelo iTunes para compartilhar as bibliotecas de audio na rede. É compativel com iTunes no Windows e no Mac OS X assim como players compativeis com DAAP como o Amarok. Portanto é uma boa idéia manter um repositório de mídia centralizado em um servidor na rede.&lt;/p&gt;
&lt;p&gt;A homepage do projeto é http://www.fireflymediaserver.org/. Além de servidor DAAP o Firefly provê mais alguns goodies. Vale a pena checar.&lt;/p&gt;
&lt;p&gt;Instalação:&lt;/p&gt;
&lt;p&gt;A instalação no FreeBSD é bastante simples. Considerando que voce tenha o ports (e saiba usa-lo) apenas instale-o a partir de /usr/ports/audio/firefly. Não há qualquer problema em manter os padrões sugeridos para as dependencias.&lt;/p&gt;
&lt;p&gt;Configuração:&lt;/p&gt;
&lt;p&gt;Adicione “firefly_enable=”YES” e edite o arquivo de configuração /usr/local/etc/mt-daapd.conf. Lembre-se de criar as pastas usadas para a database e certificar-se de que pertencem ao usuário daapd. Inicie o serviço via /usr/local/etc/rc.d/mt-daapd start. As configurações e atualizações manuais da biblioteca de midia podem ser manipulados pela interface web http://&amp;lt;server&amp;gt;:3689.&lt;/p&gt;
&lt;p&gt;O firefly se anuncia na rede utilizando o Bonjour da Apple e pode conflitar com o Avahi.&lt;/p&gt;
&lt;p&gt;Se voce completou os passos descritos acima com sucesso, poderá visualizar sua biblioteca de audio nos computadores de sua rede local através do iTunes ou Amarok.&lt;/p&gt;</description>
	<pubDate>Fri, 03 Jul 2009 19:53:35 +0000</pubDate>
</item>
<item>
	<title>Dion Moult: Blender 2.5 Features Video</title>
	<guid isPermalink="false">http://thinkmoult.com/?p=730</guid>
	<link>http://feedproxy.google.com/~r/thinkmoult/~3/8MB1IYXnJ_g/</link>

	<description>&lt;p&gt;&lt;a href=&quot;http://thinkmoult.com/wp-content/uploads/2009/07/blender2.5-dev1.png&quot;&gt;&lt;img src=&quot;http://thinkmoult.com/wp-content/uploads/2009/07/blender2.5-dev1-300x187.png&quot; title=&quot;blender2.5-dev1&quot; height=&quot;187&quot; width=&quot;300&quot; alt=&quot;blender2.5-dev1&quot; class=&quot;alignright size-medium wp-image-731&quot; /&gt;&lt;/a&gt;Hello everybody, I’m back from my 5 day jungle trek and I’m just catching up on what I’ve missed throughout the week. I was initially going to award you all with a post about the trek itself, but it turns out Jonathan Williamson from &lt;a href=&quot;http://montagestudio.org/&quot;&gt;Montage Studio&lt;/a&gt; (the very same who does the Blender screencasts and gave some good tips for ThoughtScore) has got himself a Blender build for Windows 7 and has recorded a short screencast demo-ing the development.&lt;/p&gt;
&lt;p&gt;I am truly amazed with what has been going on and I will definitely throw myself back into Blender this holiday and its stuff like this that really shows what open-source is capable of. Blender is one serious threat to the huge commercial monopoly in the 3D industry. Here is a short list of the features he describes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New design/look&lt;/li&gt;
&lt;li&gt;Panel splitting/deleting/management&lt;/li&gt;
&lt;li&gt;Not limited to one window only&lt;/li&gt;
&lt;li&gt;Massive reorganisation of features that make it more intuitive&lt;/li&gt;
&lt;li&gt;Real-time playback animation while editing&lt;/li&gt;
&lt;li&gt;Real-time playback animation while rendering&lt;/li&gt;
&lt;li&gt;Every single value in Blender can now be animated&lt;/li&gt;
&lt;li&gt;Support for macro options&lt;/li&gt;
&lt;li&gt;New transform panel&lt;/li&gt;
&lt;li&gt;Search option for features&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without further ado:&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://montagestudio.org/blog/blender/blender-2-5-overview-video/&quot;&gt;Clicky here to watch the video.&lt;/a&gt;&lt;/h3&gt;


&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://thinkmoult.com/2009/05/15/the-blender-model-repository-and-blendernation-open-source-merger/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: The Blender Model Repository and BlenderNation: open-source merger?&quot;&gt;The Blender Model Repository and BlenderNation: open-source merger?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://thinkmoult.com/2008/11/08/blender-book-review/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Blender 3D: Architecture, Buildings and Scenery – Review&quot;&gt;Blender 3D: Architecture, Buildings and Scenery – Review&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://thinkmoult.com/2008/10/23/blender-suzanne-awards-announced/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Blender Suzanne Awards announced.&quot;&gt;Blender Suzanne Awards announced.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/thinkmoult/~4/8MB1IYXnJ_g&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 03 Jul 2009 07:36:02 +0000</pubDate>
</item>
<item>
	<title>Iain Buchanan: The Twouble with Tcl</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-695352467604484711.post-8234288088499012032</guid>
	<link>http://nthrbldyblg.blogspot.com/2009/07/twouble-with-tcl.html</link>

	<description>From time to time I do a bit of tcl.  Mostly as maintenance for existing tcl programs.  I haven't made up my mind entirely about it yet - I've seen some very powerful programs in tcl, and yet occasionally I'm still &quot;surprised&quot; by a feature.&lt;br /&gt;&lt;br /&gt;I spent a couple of hours today trying to figure out why a tcl program of mine wasn't running, and so I've made some notes:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Real languages don't have reserved words&lt;/h2&gt;&lt;br /&gt;In tcl, you can redifine parts of the language in tcl itself.  For example if you wanted to redefine &lt;span style=&quot;font-style: italic;&quot;&gt;if&lt;/span&gt;, just write a new function:&lt;br /&gt;&lt;pre&gt;proc if {cond expres} {&lt;br /&gt; puts &quot;cond is $cond&quot;&lt;br /&gt; puts &quot;expr is $expres&quot;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;set a 1&lt;br /&gt;if {$a == 1} {&lt;br /&gt; puts hello&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Sounds neat. In fact &lt;span style=&quot;font-style: italic;&quot;&gt;proc&lt;/span&gt; itself is just a command that takes 3 arguements (name, arguements, and body).  However, don't start using simple names in your tcl languages like this:&lt;br /&gt;&lt;pre&gt;proc open {} {&lt;br /&gt; set ::alarm_socket [open_socket $::options(-alarm_host)]&lt;br /&gt;&lt;br /&gt; foreach host $::options(-hosts) {&lt;br /&gt;  verbose &quot;open $host&quot;&lt;br /&gt;  set ::sockets($host) [open_socket $host]&lt;br /&gt;  # set up an event handler for when data is readable on this socket:&lt;br /&gt;  fileevent $::sockets($host) readable [list process $host]&lt;br /&gt;  # initialise socket timeout with open time&lt;br /&gt;  set ::socket_t($host) [clock seconds]&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Because &lt;span style=&quot;font-style: italic;&quot;&gt;open&lt;/span&gt; is what you might call a reserved word.  (I should have known with &lt;span style=&quot;font-style: italic;&quot;&gt;open&lt;/span&gt;, but should I really have to remember all the &lt;a href=&quot;http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm&quot;&gt;reserved words?&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The error looked something like this:&lt;br /&gt;&lt;pre&gt;$ ./test.tcl&lt;br /&gt;invalid command name &quot;::tcl::tm::UnknownHandler&quot;&lt;br /&gt;while executing&lt;br /&gt;&quot;::tcl::tm::UnknownHandler ::tclPkgUnknown msgcat 1.4&quot;&lt;br /&gt;(&quot;package unknown&quot; script)&lt;br /&gt;invoked from within&lt;br /&gt;&quot;package require msgcat 1.4&quot;&lt;br /&gt;(&quot;uplevel&quot; body line 2)&lt;br /&gt;invoked from within&lt;br /&gt;&quot;uplevel \#0 {&lt;br /&gt;package require msgcat 1.4&lt;br /&gt;if { $::tcl_platform(platform) eq {windows} } {&lt;br /&gt;if { [catch { package require registry 1.1 }] } {&lt;br /&gt;...&quot;&lt;br /&gt;(file &quot;/usr/lib/tcl8.5/clock.tcl&quot; line 23)&lt;br /&gt;invoked from within&lt;br /&gt;&quot;source -encoding utf-8 [file join $TclLibDir clock.tcl]&quot;&lt;br /&gt;(procedure &quot;::tcl::clock::format&quot; line 3)&lt;br /&gt;invoked from within&lt;br /&gt;&quot;clock format [clock seconds]&quot;&lt;br /&gt;(procedure &quot;alarm_timeouts&quot; line 3)&lt;br /&gt;invoked from within&lt;br /&gt;&lt;/pre&gt;... and so on.  Yeuch!  And it was encountered with this one line:&lt;br /&gt;&lt;pre&gt;   puts &quot;$::argv0: [clock format [clock seconds]]&quot;&lt;/pre&gt;The problem?  I redefined &lt;span style=&quot;font-style: italic;&quot;&gt;open&lt;/span&gt;, which was used internally by &lt;span style=&quot;font-style: italic;&quot;&gt;clock&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Real languages don't have types:&lt;/h2&gt;&lt;br /&gt;You can do lots of nice things in tcl without types, in a similar (but different) way to perl.&lt;br /&gt;&lt;pre&gt;set a world&lt;br /&gt;puts &quot;Hello $a&quot; ;# prints 'Hello world'&lt;br /&gt;set a 1&lt;br /&gt;incr $a&lt;br /&gt;puts &quot;$a + 2&quot; ;# prints '2 + 2'&lt;br /&gt;&lt;/pre&gt;This looks normal to someone used to perl and tcl.  Noticed how I don't need format specifiers or concat functions.  You can also do this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;set a pu&lt;br /&gt;set b ts&lt;br /&gt;$a$b &quot;Hello World&quot;&lt;/pre&gt;&lt;br /&gt;Which prints:&lt;br /&gt;&lt;pre&gt;Hello World&lt;/pre&gt;&lt;h2&gt;Real languages don't have comments&lt;/h2&gt;&lt;br /&gt;They have a comment command of course!  And the comment command is a command that takes arguments (the comment itself) that aren't evaluated.  Except that because of this, you can't have an unmatched brace in a comment:&lt;br /&gt;&lt;pre&gt;# if ($sometest) {&lt;br /&gt; $somecode&lt;br /&gt;#}&lt;/pre&gt;&lt;br /&gt;The tcl solution?  &lt;pre&gt;if (0)&lt;/pre&gt; blocks or the like...&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;br /&gt;So if you haven't yet learnt tcl, I encourage you to find a tcl hackers tcl program, and delve into it to see just how it works.&lt;br /&gt;&lt;br /&gt;If you try to learn tcl only by writing it and not by reading others' code, then you'll learn tcl with the habits you're used to, and you will possibly miss some of the powerful features.&lt;br /&gt;&lt;br /&gt;After all, C programmers can program C in just about any language!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/695352467604484711-8234288088499012032?l=nthrbldyblg.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 03 Jul 2009 04:40:00 +0000</pubDate>
	<author>noreply@blogger.com (Iain)</author>
</item>
<item>
	<title>George Kargiotakis: Using Firefox Password Exporter</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=661</guid>
	<link>http://www.void.gr/kargig/blog/2009/07/02/using-firefox-password-exporter/</link>

	<description>&lt;p&gt;I am using the &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/2848&quot;&gt;Password Exporter addon&lt;/a&gt; for &lt;a href=&quot;http://getfirefox.com&quot;&gt;Firefox&lt;/a&gt; to sync my passwords between my various Firefox installations (2 OS on the laptop, 2 OS on the desktop and one for portable firefox on a usb stick). I am using it with version 3.0.X and 3.5 just fine.&lt;/p&gt;
&lt;p&gt;I have created a shell script that finds the differences between two exported password files and creates a new xml with the differences of the two so that one can edit it and pick the ones he wants imported.&lt;br /&gt;
File: &lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/ff-password-sync.sh&quot;&gt;ff-password-sync.sh&lt;/a&gt;&lt;br /&gt;
To use it follow these two steps on each firefox installation:&lt;br /&gt;
&lt;em&gt;Firefox-&amp;gt;Tools-&amp;gt;Add-ons-&amp;gt;Password Exporter-&amp;gt;Preferences-&amp;gt;Export Passwords&lt;/em&gt;&lt;br /&gt;
Then use the script (you need bash and mktemp):&lt;br /&gt;
&lt;code&gt;$ ./ff-password-sync.sh laptop-password-export-2009-07-01 dektop-password-export-2009-07-02&lt;/code&gt;&lt;br /&gt;
If it runs successfully you should have 2 files in your home dir:&lt;br /&gt;
&lt;strong&gt;ff-password-sync.diff&lt;/strong&gt;: Contains the differences of the two files in diff format&lt;br /&gt;
&lt;strong&gt;ff-password-sync.xml&lt;/strong&gt;: Contains the unique username password combinations that are missing&lt;br /&gt;
Edit ff-password-sync.xml to possibly remove entries you don’t want imported and then go to:&lt;br /&gt;
&lt;em&gt;Firefox-&amp;gt;Tools-&amp;gt;Add-ons-&amp;gt;Password Exporter-&amp;gt;Preferences-&amp;gt;Import Passwords&lt;/em&gt;&lt;br /&gt;
and load ff-password-sync.xml&lt;/p&gt;
&lt;p&gt;If you engage in this process it’s almost certain that you will hit this bug:&lt;br /&gt;
&lt;a href=&quot;http://code.google.com/p/passwordexporter/issues/detail?id=37&quot;&gt;“Can’t add a login with both a httpRealm and formSubmitURL.’ when calling method: [nsILoginManager::addLogin]“&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The fix is provided by a user on his blog: &lt;a href=&quot;http://blog.vicshih.com/2009/01/fix-for-firefoxs-password-exporter-add.html&quot;&gt;Fix for Firefox’s Password Exporter Add-on &lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 02 Jul 2009 11:15:26 +0000</pubDate>
</item>
<item>
	<title>Sean Potter: Wishing for more KDE integration</title>
	<guid isPermalink="false">http://www.obsidianprofile.com/index.php/blog/entry/1246522620</guid>
	<link>http://www.obsidianprofile.com/index.php/blog/entry/1246522620</link>

	<description>&lt;p&gt;An effective Linux desktop is made up of various sets of software, using various programming languages, paradigms, toolkits, and more.  The two major desktop environments competing for top dog are obviously &lt;a href=&quot;http://www.kde.org&quot;&gt;KDE&lt;/a&gt; and &lt;a href=&quot;http://www.gnome.org&quot;&gt;GNOME&lt;/a&gt;. I've been using KDE since the 2.x days, and it was X-Windows before that. I have to admit that KDE4 is bringing a lot of improvements in desktop usability, but there's a lot of non-KDE programs out there that I use on a daily basis that simply don't work as nicely as I'd like to see.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;Firefox&lt;/b&gt;&lt;/u&gt; - My only real complaint about Firefox is the lack of support for the QT toolkit. Yes, there is a project going on to port it over to QT... sadly, the progress is slow and the usability isn't there yet.&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;Thunderbird&lt;/b&gt;&lt;/u&gt; - KMail isn't that bad, but it randomly crashed on me. For that reason, I use Thunderbird.  Again, no QT support.  My other complaint is that the &quot;Message Checker&quot; plasmoid doesn't support Thunderbird for checking mail.&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;Pidgin&lt;/b&gt;&lt;/u&gt; - Kopete doesn't stand a chance against Pidgin. It's a more solid codebase, and much more widely supported. I think Kopete would benefit more if they build a QT client for libpurple, Pidgin's backend.&lt;/li&gt;&lt;li&gt;&lt;u&gt;&lt;b&gt;OpenOffice.org&lt;/b&gt;&lt;/u&gt; - This has shown the most improvement in this area over all the other programs I've listed so far. QT4 support finally arrived a week or so ago, and now I'm just waiting for Gentoo to update Portage. KOffice is a very nice office suite, but OpenOffice.org is a much more robust application.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Reasons such as those above are what have sparked my interest in developing a QT4 client for XMMS2. I'm hoping that in the near future we'll see more KDE/QT4 compatibility with some of these programs I've listed.&lt;/p&gt;</description>
	<pubDate>Thu, 02 Jul 2009 08:17:00 +0000</pubDate>
	<author>obsidian@antilan.com (Sean Potter)</author>
</item>
<item>
	<title>Patrick Nagel: VirtualBox 3 – SMP for guests</title>
	<guid isPermalink="false">http://patrick-nagel.net/blog/?p=159</guid>
	<link>http://patrick-nagel.net/blog/archives/159</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/patrick_nagel.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;VirtualBox&lt;/a&gt; – my current favourite desktop virtualisation software – has been released in version 3.0.0 two days ago, so I gave it a try. The most interesting new feature in this new version is the “Guest SMP” support. It finally removes the limitation, that a guest can only work on one host core (which means, when you have a 4-core host CPU, the guest could only run with 1/4 of the speed).&lt;/p&gt;
&lt;p&gt;The documentation is not very clear about what “Guest SMP” &lt;em&gt;really&lt;/em&gt; does – it could, for example, just show multiple CPUs to the guest, but still only use one host core. To make sure that my assumption of VirtualBox 3 actually making it possible to assign multiple host CPUs/cores to the guest, so that it can actually run faster, I did a quick test. I started by making one of my Linux VMs a dual CPU VM:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://patrick-nagel.net/blog/wp-content/uploads/2009/07/vbox3_multi_cpu2.png&quot;&gt;&lt;img src=&quot;http://patrick-nagel.net/blog/wp-content/uploads/2009/07/vbox3_multi_cpu2.png&quot; title=&quot;vbox3_multi_cpu2&quot; height=&quot;169&quot; width=&quot;418&quot; alt=&quot;vbox3_multi_cpu2&quot; class=&quot;alignnone size-full wp-image-162&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the VM, I then started to build the Linux kernel, once with &lt;code&gt;make -j1&lt;/code&gt; and once with &lt;code&gt;make -j2&lt;/code&gt;. This is my CPU usage monitor on the (2-core) host, which shows both cores’ usage combined:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://patrick-nagel.net/blog/wp-content/uploads/2009/07/vbox3_multi_cpu.png&quot;&gt;&lt;img src=&quot;http://patrick-nagel.net/blog/wp-content/uploads/2009/07/vbox3_multi_cpu.png&quot; title=&quot;vbox3_multi_cpu&quot; height=&quot;85&quot; width=&quot;63&quot; alt=&quot;vbox3_multi_cpu&quot; class=&quot;alignnone size-full wp-image-160&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In section 1 of the graph, only one compiler process is running (&lt;code&gt;make -j1&lt;/code&gt;). At the end of section 1 I aborted the building process and (in section 2) I typed in &lt;code&gt;make -j2&lt;/code&gt;. Thus, section 3 shows the CPU usage when two compiler processes are running simultaneously in the VM. So my assumption was correct, it is now possible to make all of the host’s processing power available in a VM.&lt;/p&gt;
&lt;p&gt;Thanks, VirtualBox team! (I won’t address the company behind VirtualBox, since this would probably cause my post to be outdated before I can press the “Publish” button). Lets just hope that this great project will see further development, it is currently the best desktop virtualisation project available, in my opinion. It would be even greater if all of the functionality was available in the Open Source version though. This would ensure that, no matter what the current company behind VirtualBox decides to do with it, development could go on.&lt;/p&gt;</description>
	<pubDate>Thu, 02 Jul 2009 02:43:35 +0000</pubDate>
</item>
<item>
	<title>Steven Oliver: 24″ HP Monitor vs Fonts</title>
	<guid isPermalink="false">http://steveno.wordpress.com/2009/06/30/24-hp-monitor-vs-fonts/</guid>
	<link>http://steveno.wordpress.com/2009/06/30/24-hp-monitor-vs-fonts/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/StevenOliver3.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;What on earth is it about monitors that makes them all render my fonts differently??&lt;/p&gt;
&lt;p&gt;At work I have twin DELL 19″ 3:4 LCD displays. At home a 24″ HP 16:9 LCD and they seem to render things completely differently. It’s enough to drive me nuts. One thing of note though is I only really seem to have trouble with this using gVim. Is the font rendering code in vim so old that switching monitors ruins the font??&lt;/p&gt;
&lt;p&gt;Enjoy the Penguins!&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/steveno.wordpress.com/591/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/steveno.wordpress.com/591/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/steveno.wordpress.com/591/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/steveno.wordpress.com/591/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/steveno.wordpress.com/591/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/steveno.wordpress.com/591/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/steveno.wordpress.com/591/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/steveno.wordpress.com/591/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/steveno.wordpress.com/591/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/steveno.wordpress.com/591/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=steveno.wordpress.com&amp;amp;blog=1231018&amp;amp;post=591&amp;amp;subd=steveno&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 01 Jul 2009 02:52:47 +0000</pubDate>
</item>
<item>
	<title>Dirk R. Gently: Restore Settings on a Broken Firefox</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=858</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/30/restore-settings-on-a-broken-firefox/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;When people have a problem with Firefox I’ve seen many people will resort to deleting their old profile (or folder) and creating a new one.  This works, but doing this though will get rid of any passwords, history, bookmarks… you may have.  I recently deleted the Microsoft fonts on my installation and Firefox began to display alot of site with monospace – thought I was still in vim &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; .  Having used Firefox quite a bit, getting a new profile was a good idea anyhow as cruft and buggy configs can slow down the browsing experience.&lt;/p&gt;
&lt;h4&gt;Details&lt;/h4&gt;
&lt;p&gt;First you’ll need to get to your Firefox configs:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;cd ~/.mozilla/firefox/&lt;/div&gt;
&lt;p&gt;Backup your old profile and profile list:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;mv xxxxxxxx.default{,.bck}&lt;br /&gt;
mv profiles.ini{,.bck}&lt;/div&gt;
&lt;p&gt;Create a new profile:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;firefox -CreateProfile &amp;lt;profilename&amp;gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;This command will tell you the name of the new folder. Copy important information to the new profile:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;cd *.default.bck&lt;br /&gt;
cp places.sqlite key3.db formhistory.sqlite signons3.txt persdict.dat content-prefs.sqlite ../*.&amp;lt;profilename&amp;gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;This will transfer your bookmarks, browsing history, form entries, passwords, personal dictonary changes, and page zooms.  There might be a couple other things you’d like to add (possibly your firefox preferences), take a look at &lt;a href=&quot;http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox&quot; target=&quot;_blank&quot;&gt;Transferring data to a new profile&lt;/a&gt;.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/858/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/858/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/858/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/858/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/858/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/858/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/858/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/858/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/858/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/858/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=858&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 30 Jun 2009 23:24:18 +0000</pubDate>
</item>
<item>
	<title>Daniel Robbins: 10th Anniversary of Gentoo</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-32090778.post-8947995833245252722</guid>
	<link>http://feedproxy.google.com/~r/HelloToYou/~3/icHTvG5LltY/10th-anniversary-of-gentoo.html</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/drobbins.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;NeddySeagoon and I have been trying to figure out the official 10th anniverary date of Gentoo, and here are the dates I've figured out so far:&lt;div&gt;&lt;ul&gt;&lt;li&gt;July, 1997 - Started a new position at University of New Mexico, was using Debian 1.3&lt;/li&gt;&lt;li&gt;Nov, 1998 - Was using/developing for Stampede Linux at home, but had not (yet) started Enoch?&lt;/li&gt;&lt;li&gt;Apr, 1999 - Was working on Enoch - wrote xpak .tbz2 code that is still in Portage&lt;/li&gt;&lt;li&gt;May 18-27, 1999 - First version of Enoch released, according to &lt;a href=&quot;http://lwn.net/1999/0527/dists.php3&quot;&gt;LWN.net&lt;/a&gt;. My blurb for Enoch: &quot;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;i&gt;Enoch is an advanced GNU/Linux distribution for the x86 PC Architecture, designed to bring your Linux experience into a new dimension. Or something like that.&lt;/i&gt;&quot;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Aug, 1999 - My new dual Celeron mobo would not run Linux, went to FreeBSD, Achim Gottinger kept Enoch going&lt;/li&gt;&lt;li&gt;Late 1999 - Must have came back to Enoch and done the Gentoo name change right about now - the &quot;Gentoo&quot; name was Bob Mutch's idea - started incorporating some FreeBSD ideas into Enoch - Portage (as we know it today) was born.&lt;/li&gt;&lt;li&gt;July 26, 2000 - Gentoo 1.0 release &quot;imminent&quot;, cvs online, rsync &quot;coming soon&quot;&lt;/li&gt;&lt;li&gt;Nov 3, 2000 - Gentoo 1.0 Release Candidate 2&lt;/li&gt;&lt;li&gt;Dec 11, 2000 - Gentoo 1.0 Release Candidate 3&lt;/li&gt;&lt;li&gt;Aug 14, 2001 - New Gentoo Logo/Web site debut - designed by me! Still in use today! :)&lt;/li&gt;&lt;li&gt;Feb 16-17, 2002 - Was in Brussels, Belgium to attend FOSDEM&lt;/li&gt;&lt;li&gt;Mar 31, 2002 - Gentoo Linux 1.0 Released !!!&lt;/li&gt;&lt;li&gt;May 10, 2002 - Gentoo Listed as one of the top 10 Linux distributions on DistroWatch&lt;/li&gt;&lt;li&gt;Apr 8, 2002 - Gentoo Linux 1.1a released :)&lt;/li&gt;&lt;li&gt;Jun 10, 2002 - Gentoo Linux 1.2 released :)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;So, we're thinking of calling &quot;late 2009&quot; the official 10th anniversary of the birth of Gentoo - whaddya think? If it sounds good, we need to get the party planning committee together...&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32090778-8947995833245252722?l=blog.funtoo.org&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=63t7Ie-LG7Y&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=icHTvG5LltY:Puo59Se91mE:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=icHTvG5LltY:Puo59Se91mE:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=icHTvG5LltY:Puo59Se91mE:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=icHTvG5LltY:Puo59Se91mE:gIN9vFwOqvQ&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/HelloToYou/~4/icHTvG5LltY&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 30 Jun 2009 22:36:26 +0000</pubDate>
	<author>noreply@blogger.com (Daniel Robbins)</author>
</item>
<item>
	<title>George Kargiotakis: nicotine+ 1.2.12 ebuild</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=656</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/30/nicotine-1-2-12-ebuild/</link>

	<description>&lt;p&gt;I’ve uploaded an ebuild for the latest version of &lt;a href=&quot;http://www.nicotine-plus.org/&quot;&gt;nicotine+&lt;/a&gt; on &lt;a href=&quot;http://bugs.gentoo.org&quot;&gt;gentoo’s bugzilla&lt;/a&gt;. Nicotine+ is a great p2p app written in &lt;a href=&quot;http://www.pygtk.org/&quot;&gt;PyGtK2&lt;/a&gt; to connect to the &lt;a href=&quot;http://slsknet.org/&quot;&gt;Soulseek&lt;/a&gt; network.&lt;/p&gt;
&lt;p&gt;I’ve also added &lt;a href=&quot;http://psyco.sourceforge.net/&quot;&gt;psyco&lt;/a&gt; as a USE flag since it makes nicotine+ faster…but sadly, a bit more unstable as well. Test it and see if it makes any difference to you.&lt;/p&gt;
&lt;p&gt;Ebuild: &lt;a href=&quot;https://bugs.gentoo.org/attachment.cgi?id=195974&amp;amp;action=view&quot;&gt;nicotine+-1.2.12.ebuild&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 30 Jun 2009 07:03:22 +0000</pubDate>
</item>
<item>
	<title>Jason Jones: Zend Studio on Gentoo AMD64</title>
	<guid isPermalink="false">http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4482</guid>
	<link>http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4482</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/jason_jones.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;Since I've been job-hopping for the last bit, I've had the chance to install fresh gentoo builds on quite a few 64-bit computers in the last couple of months.&lt;br /&gt;
&lt;br /&gt;
I've also been looking at different IDEs for PHP development.  After using jEdit now for close to 5 years, I've gotta say the one which impresses me the most is Zend Studio for Eclipse - (freely available (albeit crippled) at Zend.com).&lt;br /&gt;
&lt;br /&gt;
The first computer I installed it on, didn't give me any grief at all.  It just worked.  The next few, however, because I was installing from scratch, gave me a few problems, so I thought I'd jot down what is needed in order for ZendStudio to properly install and execute.&lt;br /&gt;
&lt;br /&gt;
If you have a 64-bit computer, the following libraries are needed, but never explicitly requested.  I'm pretty sure if you have a 32-bit computer, everything will work just fine out of the box.&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
    &lt;li&gt;&lt;em&gt;&lt;strong&gt;emul-linux-x86-java&lt;/strong&gt;&lt;/em&gt; (required for installation.  Installation will fail without it)&lt;/li&gt;&lt;br /&gt;
    &lt;li&gt;&lt;em&gt;&lt;strong&gt;emul-linux-x86-gtklibs&lt;/strong&gt;&lt;/em&gt; (required for execution.  If not there, ZendStudio will simply exit right after invocation, with no GUI loading at all.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
After those two are installed, (along with some sort of X-Window system, of course) things should work just fine.&lt;br /&gt;
&lt;br /&gt;
Hope this helps someone.</description>
	<pubDate>Mon, 29 Jun 2009 09:32:26 +0000</pubDate>
</item>
<item>
	<title>Daniel Robbins: Metro 1.4.1 Released</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-32090778.post-6113635257422457298</guid>
	<link>http://feedproxy.google.com/~r/HelloToYou/~3/VkTYd6xqy6k/metro-141-released.html</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/drobbins.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;Metro 1.4.1 has been released! I have new documentation online, now hosted on funtoo.org:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.funtoo.org/en/metro/tutorial/&quot;&gt;Metro 1.4.1 Quick Start Tutorial&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.funtoo.org/en/metro/datamodel/&quot;&gt;Metro 1.4.1 Data Model Reference&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy!&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32090778-6113635257422457298?l=blog.funtoo.org&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=63t7Ie-LG7Y&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=VkTYd6xqy6k:5zjlmgq8IYI:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=VkTYd6xqy6k:5zjlmgq8IYI:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=VkTYd6xqy6k:5zjlmgq8IYI:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=VkTYd6xqy6k:5zjlmgq8IYI:gIN9vFwOqvQ&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/HelloToYou/~4/VkTYd6xqy6k&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Mon, 29 Jun 2009 07:26:10 +0000</pubDate>
	<author>noreply@blogger.com (Daniel Robbins)</author>
</item>
<item>
	<title>Dirk R. Gently: Keyboard Template</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=850</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/28/keyboard-template/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;I needed a keyboard template and I couldn’t find any so I made one (uh kinda).  The outline was made by &lt;a href=&quot;http://aphasia100stock.deviantart.com/art/Keyboard-Layout-Source-File-28965987&quot; target=&quot;_blank&quot;&gt;aphasia100stock&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://linuxtidbits.files.wordpress.com/2009/06/keyboard-outline.png&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://linuxtidbits.files.wordpress.com/2009/06/keyboard-outline-478.jpg&quot; alt=&quot;&quot; style=&quot;border: 1px solid #8282ff; border-width: 1px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Notes&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Converted from .ai format to .svg&lt;/li&gt;
&lt;li&gt;Removed inner borders&lt;/li&gt;
&lt;li&gt;Added Letters, Numbers, Symbols&lt;/li&gt;
&lt;li&gt;Added guidelines to be able to reference keys.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;http://www.archive.org/download/KeyboardTemplate/KeyboardOutline.svg&quot; target=&quot;_blank&quot;&gt;Download svg&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Thanks aphasia100stock for the outline.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/850/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/850/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/850/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/850/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/850/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/850/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/850/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/850/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/850/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/850/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=850&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 29 Jun 2009 03:54:58 +0000</pubDate>
</item>
<item>
	<title>Daniel Robbins: Anti-Slowloris DOS patch in Funtoo</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-32090778.post-1340844028789945446</guid>
	<link>http://feedproxy.google.com/~r/HelloToYou/~3/YwTCQepoy1I/anti-slowloris-dos-patch-in-funtoo.html</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/drobbins.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;I've committed an anti-slowloris patch to Funtoo, in apache-2.2.11-r1. I recommend that Apache users upgrade to this new version. (see &lt;a href=&quot;http://bit.ly/WGSvD&quot;&gt;http://bit.ly/WGSvD&lt;/a&gt;)&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All still-affected MPMs (everything except prefork) have been masked. The intent here is to force you to use an Apache configuration that is not vulnerable to slowloris. If you are in a situation where slowloris cannot affect you, you can manually enable the other MPMs to gain access to them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tested the anti-slowloris patch myself on a Drupal installation I had on my machine. Without the patch, slowloris was able to make Apache unresponsive immediately. With the patch, Apache was a bit laggy but continued to run with no problems.&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32090778-1340844028789945446?l=blog.funtoo.org&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=63t7Ie-LG7Y&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=YwTCQepoy1I:uNFAYB3JPMY:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=YwTCQepoy1I:uNFAYB3JPMY:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=YwTCQepoy1I:uNFAYB3JPMY:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=YwTCQepoy1I:uNFAYB3JPMY:gIN9vFwOqvQ&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/HelloToYou/~4/YwTCQepoy1I&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 27 Jun 2009 22:48:20 +0000</pubDate>
	<author>noreply@blogger.com (Daniel Robbins)</author>
</item>
<item>
	<title>Daniel Robbins: Apache Slowloris DoS is Nasty - Protection Guide in Works</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-32090778.post-7321512469841569648</guid>
	<link>http://feedproxy.google.com/~r/HelloToYou/~3/FGdhPK6jBls/apache-slowloris-dos-is-nasty.html</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/drobbins.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;The &lt;a href=&quot;http://ha.ckers.org/blog/20090617/slowloris-http-dos/&quot;&gt;Apache SlowLoris DoS&lt;/a&gt; is a pretty nasty thing. If you are running Apache (who isn't) then I &lt;b&gt;strongly&lt;/b&gt; recommend you look carefully at the link above, learn about how this exploit works, and ensure that your infrastructure is safe.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are running Apache or IBM Web servers that are directly exposed to the Web, you are vulnerable. If you have a load balancer in front of your Web site (most of us don't) &lt;b&gt;you may still be vulnerable. Your load balancer needs to be configured to protect against this DoS, many (including Cisco) need to be told to do so and do not protect by default. So test to ensure your infrastructure is protected.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;From what I've read, if you have a squid proxy in front of Apache, you should be safe, but we have not confirmed this yet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm planning to get a SlowLoris Protection Guide available early next week which will help to provide detailed information on how to protect against this particularly nasty DoS.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also think that the Apache team's historical response to this very preventable issue has been horrendous - we all run Web servers in the real world, not some theoretical happy world, and it's Apache's job to ensure that it manages its own resources properly. For future Web-related efforts, I think I'm going to be avoiding Apache and looking at the &lt;a href=&quot;http://www.cherokee-project.com/&quot;&gt;Cherokee Web Server&lt;/a&gt;.  &lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32090778-7321512469841569648?l=blog.funtoo.org&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=63t7Ie-LG7Y&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=FGdhPK6jBls:oilfuRSPLfs:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=FGdhPK6jBls:oilfuRSPLfs:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=FGdhPK6jBls:oilfuRSPLfs:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=FGdhPK6jBls:oilfuRSPLfs:gIN9vFwOqvQ&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/HelloToYou/~4/FGdhPK6jBls&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 26 Jun 2009 22:41:16 +0000</pubDate>
	<author>noreply@blogger.com (Daniel Robbins)</author>
</item>
<item>
	<title>Brian Carper: Clojure, SLIME, ODBC, SQL Server</title>
	<guid isPermalink="false">http://briancarper.net/blog/clojure-slime-odbc-sql-server</guid>
	<link>http://briancarper.net/blog/clojure-slime-odbc-sql-server</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/brian_carper.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;I had a lot of trouble connecting to an MS SQL Server at work via Clojure.  Java 6 comes with a JDBC-ODBC bridge which worked fine from a Clojure REPL at a command prompt, or from inferior-lisp in Emacs, but in SLIME it would hang every time I tried to connect and I'd have to kill Java.  Couldn't for the life of me figure out why.&lt;/p&gt;

&lt;p&gt;I got it to work eventually by using Microsoft's own JDBC driver, which you can download &lt;a href=&quot;http://msdn.microsoft.com/en-us/data/aa937724.aspx&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Once you put the downloaded .jar file on your &lt;code&gt;CLASSPATH&lt;/code&gt; (in my case, &lt;code&gt;sqljdbc4.jar&lt;/code&gt;) you can connect like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (def db {:classname &quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&quot;
               :subprotocol &quot;sqlserver&quot;
               :subname &quot;//server_hostname;database=SomeDatabase;user=SomeUser;password=SomePassword&quot;})
#'user/db
user&amp;gt; (use 'clojure.contrib.sql)
nil
user&amp;gt; (with-connection db 
        (with-query-results rs [&quot;SELECT * FROM whatever&quot;] (prn rs)))
... results ...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Posted for the sake of Googlebot and for my own future sanity.&lt;/p&gt;</description>
	<pubDate>Fri, 26 Jun 2009 18:27:22 +0000</pubDate>
</item>
<item>
	<title>Daniel Robbins: Initscripts - Keeping It Simple</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-32090778.post-6436592760147325300</guid>
	<link>http://feedproxy.google.com/~r/HelloToYou/~3/2WPatEcYNlA/initscripts-keeping-it-simple.html</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/drobbins.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;I've been reviewing Roy Marples' 0.5.0 release of OpenRC for inclusion in Funtoo (we're currently at 0.4.2,) and the big change with 0.5.0 is that Roy has ripped out the existing networking functionality, and replaced it with something a lot simpler. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think this is a step in the right direction, but I'm leaning towards &quot;going all the way&quot; and ripping out networking support entirely, in favor of having Funtoo-supplied /etc/init.d/net.* templates that actually call the route/ifconfig/ip/vconfig/brctl commands directly, and users can modify to suit their needs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why do this? Here are some reasons:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;WYSIWYG - no need to figure out some kind of distro-specific network configuration layer that is supposed to make things easier for you.&lt;/li&gt;&lt;li&gt;It encourages (but does not force) users to become familiar with the ifconfig/ip/route commands, which is a good thing.&lt;/li&gt;&lt;li&gt;It is the most flexible option, since it allows you do get as freaky with your network as you want.&lt;/li&gt;&lt;li&gt;It allows users to leverage the dependency-based functionality in the initscripts for their own purposes - the dependency functionality was designed to be used by end-users.&lt;/li&gt;&lt;li&gt;Theoretically faster.&lt;/li&gt;&lt;li&gt;Self-documenting.&lt;/li&gt;&lt;li&gt;Simpler.&lt;/li&gt;&lt;li&gt;Reduces footprint of the initscript code (reduced maintenance.)&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Now, here are some negatives, along with how I hope to address them:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;It's more complicated - Yes, slightly, initially, which means Funtoo network documentation needs to be written to help users. Several easy-to-use /etc/init.d/net.* samples need to be available for beginners. That will make things easy for networking newbies.&lt;/li&gt;&lt;li&gt;Configuration gets stored in /etc/init.d rather than /etc/conf.d (where some might say it &quot;should&quot; be) - This, I do not really agree with, so I don't see it as a significant negative. I don't think that /etc/conf.d should be a mandatory design rule for storing configuration. For networking, putting configuration in /etc/init.d is simpler - users who like /etc/conf.d can still use it, and I can have our templates be usable with /etc/init.d or /etc/conf.d for configuration storage. And designing complex network configuration scripts just for the sake of getting all network configuration stuffed inside variables in /etc/conf.d is not a winning strategy. &lt;/li&gt;&lt;li&gt;Not desktop-friendly - Some might say that Gentoo and OpenRC network configuration scripts isolate the user from the complexity underneath, and are thus better. In theory, this may be right - in reality, it creates another distro-specific configuration layer you need to learn, and developers need to maintain. And it's not significantly easier, really.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;So, I think this is the right way to go. Let me know what you think. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/32090778-6436592760147325300?l=blog.funtoo.org&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=yIl2AUoC8zA&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:63t7Ie-LG7Y&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=63t7Ie-LG7Y&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:dnMXMwOfBR0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?d=dnMXMwOfBR0&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:F7zBnMyn0Lo&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=2WPatEcYNlA:OdopP-8s4a4:F7zBnMyn0Lo&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=2WPatEcYNlA:OdopP-8s4a4:V_sGLiPBpWU&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.feedburner.com/~ff/HelloToYou?a=2WPatEcYNlA:OdopP-8s4a4:gIN9vFwOqvQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/HelloToYou?i=2WPatEcYNlA:OdopP-8s4a4:gIN9vFwOqvQ&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/HelloToYou/~4/2WPatEcYNlA&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 26 Jun 2009 05:13:02 +0000</pubDate>
	<author>noreply@blogger.com (Daniel Robbins)</author>
</item>
<item>
	<title>Sean Potter: New Beginnings</title>
	<guid isPermalink="false">http://www.obsidianprofile.com/index.php/blog/entry/1245958494</guid>
	<link>http://www.obsidianprofile.com/index.php/blog/entry/1245958494</link>

	<description>&lt;p&gt;I deleted all my old posts.  It was about that time. I have a record of them all for myself to look at, but there's no need for them to plague the internet any longer.  I figured it was time for some change, as my life has been so plagued with trouble these past few months. Maybe this is exactly what I need.&lt;/p&gt;

&lt;p&gt;Things are going well. I'm looking for a new job, and contemplating how I'd like to finish up my bachelor's degree.   For the time being, I think I'm going to stick with the restaurant industry.  Honestly, I love the people, and I love the hours.  A 9-5 job seems so boring to me, and I've never been one to get up early more than two days in a row.&lt;/p&gt;

&lt;p&gt;I have some exciting projects I'm slowly working on. Obviously, number one is &lt;a href=&quot;http://www.bioslevel.com&quot;&gt;BIOSLEVEL&lt;/a&gt;, my group's product review site with an open source-twist. It's down at the moment, but I promise it won't be down much longer. I just need to finish interfacing with phpBB3 and make a few other small adjustments before it will live again.&lt;/p&gt;

&lt;p&gt;Also in my newfound spare time, I started working on a QT4 XMMS2 client. I don't have much accomplished outside of an interface, but it's promising. I'm not a fan of Amarok, and using a GTK-based audio player just isn't pretty. I'd like to incorporate many different ideas into it such as Last.FM browsing, multiple playlists, iPod support, and much more. Once I have a little more going, be certain that there will be a post here about it&lt;/p&gt;</description>
	<pubDate>Thu, 25 Jun 2009 19:34:54 +0000</pubDate>
	<author>obsidian@antilan.com (Sean Potter)</author>
</item>
<item>
	<title>Dirk R. Gently: Getting Help from Console</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=844</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/25/troubleshooting-from-console/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;If you’re in console (aka virtual console) doing an install or repairs on a system, it’s good to know how to get help if problems occur.&lt;/p&gt;
&lt;h4&gt;“Ground Control…”&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;To get help in console you can use a chat client.  Read &lt;a href=&quot;http://linuxtidbits.wordpress.com/2008/01/09/setting-up-irssi/&quot; target=&quot;_blank&quot;&gt;this page&lt;/a&gt; on how to set up &lt;a href=&quot;http://irssi.org/&quot; target=&quot;_blank&quot;&gt;irssi&lt;/a&gt; – a terminal/console IRC program.  The guide will walk you through setting up irssi and connecting to freenode where many Linux distribution chat channels are located.&lt;/p&gt;
&lt;h4&gt;“Waiting for details, Houston…”&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;When you tell the people in the chat-room what your problem is, sometimes they will need to know additional information.  This could be the output of a command or the contents of a configuration file.  To do a command without leaving irssi do &lt;b&gt;Ctrl&lt;/b&gt;+&lt;b&gt;Alt&lt;/b&gt;+&lt;b&gt;F2&lt;/b&gt; (F3, F4… can also be used) to enter another console, then enter the command.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Be better not to have to write everything down on a notepad and then type it into irssi, this is where it becomes useful to use a collaborative debugging tool like pastebin.  Pastebin is a website that temporarily holds configurations, bug outputs… that you can refer other people to get help.  There are several tools that can be used from the command line that can send files to a pastebin service, for example pastebinit.  Add pastebinit from your distro, then upload a file.  For example, your &lt;code&gt;xorg.conf&lt;/code&gt; file:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;pastebinit /etc/X11/xorg.conf&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;For uploading the output of a command, first you have to put it into a file:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;fdisk -l &amp;amp;&amp;gt; partitions.txt&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;b&gt;&amp;amp;&amp;gt;&lt;/b&gt; will redirect all output to a text file (both standard output and error output) and now it can be uploaded.&lt;/p&gt;
&lt;h4&gt;“I have visual…”&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;Occasionally you might need to actually show a picture of what your question is about (e.g. if you have a question about a console-based installer).  For this you can use fbshot.  fbshot is a framebuffer screenshot program.  To take a screenshot of the first console (&lt;b&gt;Ctrl&lt;/b&gt;+&lt;b&gt;Alt&lt;/b&gt;+&lt;b&gt;F1&lt;/b&gt;):&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;fbshot -c 1 console1.png&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;Then you can use &lt;a href=&quot;http://atrey.karlin.mff.cuni.cz/~clock/twibright/links/&quot; target=&quot;_blank&quot;&gt;links&lt;/a&gt; and a image-hosting website to upload the image.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/844/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/844/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/844/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/844/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/844/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/844/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/844/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/844/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/844/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/844/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=844&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 25 Jun 2009 18:37:03 +0000</pubDate>
</item>
<item>
	<title>Jürgen Geuter: Porting as iterative software development (who cares whether it's Mono?)</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/315-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/315-Porting-as-iterative-software-development-who-cares-whether-its-Mono/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;A few days ago I &lt;a href=&quot;http://the-gay-bar.com/index.php?/archives/314-Linux-Action-Show-Season-10,-Episode-7-Cleaning-up-the-mess/&quot;&gt;wrote about&lt;/a&gt; people complaining that somebody was &quot;wasting time&quot; by porting &lt;a href=&quot;http://projects.gnome.org/tomboy/&quot;&gt;Tomboy&lt;/a&gt; from &lt;a href=&quot;http://www.mono-project.com/Main_Page&quot;&gt;Mono&lt;/a&gt; to C++ in a project called &lt;a href=&quot;http://live.gnome.org/Gnote&quot;&gt;Gnote&lt;/a&gt;. Other people like it cause it frees them of the danger that is Mono and whatnot.&lt;br /&gt;
&lt;br /&gt;
So what should we call this port of a program from one language to another one? Waste of time? Rescue from the patent-trap? How about we are all revolutionary and call it just what it is? &lt;em&gt;Software development&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
Let's just leave the snake pit that the whole Mono discussion is for a bit and look at something a lot less overcharged with FUD and suspicion, let's look at &lt;a href=&quot;http://www.python.org&quot;&gt;Python&lt;/a&gt; development.&lt;br /&gt;
&lt;br /&gt;
In Python you usually write Python code to implement the functionality you need (wow who saw that one coming? &lt;img src=&quot;http://the-gay-bar.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; ), but since Python is not really the fastest running language (it's interpreted and lacks a JIT after all [at least CPython does]) it's quite usual to port your library to C for the heavy lifting: After you have the functionality working (and you've got unit tests of course) you start rewriting parts of the library in C to be able to gain native speed. Most cryptographic libraries in Python go that route because crypto-algorithms are bloody expensive.&lt;br /&gt;
&lt;br /&gt;
Does anyone call it a waste of time? No. Why? Because even if the direct porting might not even be a lot faster it will probably be in the end. It's just the normal process of development.&lt;br /&gt;
&lt;br /&gt;
When I need to create something new, I first start building some prototype of sorts. To build prototypes I use the tool that allows me to get the prototype up to where it needs to be as quickly and efficiently as possible: When I need to design a GUI, I use paper or a whiteboard, when I wanna design a library I hack together a quick implementation in a dynamic language that makes developing things in an agile way easier (for me that means usually Python though Prolog has been good to me at times, too). &lt;em&gt;Prototyping&lt;/em&gt; is a really important step in development because only when you prototype you can really see whether the basic idea that your mind created actually &lt;em&gt;works&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
Now let's go back to the whole Gnote thing. We have a working app, why would someone take a different language/platform to implement it? Well cause nobody (probably someone will come and say they do but I think most people don't &lt;img src=&quot;http://the-gay-bar.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; ) prototypes in C++ because C++ isn't great for that. All the little things you have to manage make it harder to get to the point where the prototype is good enough so you use something else. Maybe Mono. Now we have an app that works, which means the file format to store things &lt;em&gt;works&lt;/em&gt;, basic conceptual problems have been ironed out. The prototype has done its job. Of course we can keep it, develop it further but maybe someone thinks it's time to take what we learned from the prototype and reimplement it in a language that allows things to run faster, less resource consuming and whatnot. That's not a bad thing and not even against the prototype implementation (Tomboy in this case), it's just a new way to look at what we've learned to see whether we gain something from doing it differently.&lt;br /&gt;
&lt;br /&gt;
How often have we read about people wanting to have some application or framework rewritten in another language: &quot;Oh I'd love to use RubyOnRails but Ruby is just so slow!&quot;, &quot;Oh I wanna use Django, but Python isn't installed on my webhost, I wished it was implemented in PHP!&quot;, &quot;I really like Eclipse but there's no good JRE for my platform and it doesn't run well, I wished it was implemented in C!&quot;? Why do we treat it differently when Mono is involved?&lt;br /&gt;
&lt;br /&gt;
Why does the whole Mono discussion always seem to go towards FUD and flames and people accusing each other of conspiracies? Just look around, it's a completely normal process, one that happens every day all around everyone who develops.&lt;br /&gt;</description>
	<pubDate>Wed, 24 Jun 2009 09:05:11 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>
<item>
	<title>George Kargiotakis: Filter out advertisments from greek sites using adblock plus</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=641</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/23/filter-out-advertisments-from-greek-sites-using-adblock-plus/</link>

	<description>&lt;p&gt;I’ve decided to start a filter for &lt;a href=&quot;http://adblockplus.org/&quot;&gt;adblock plus&lt;/a&gt; to filter out advertisements from Greek sites.&lt;/p&gt;
&lt;p&gt;You can find more information on subscribing to the filter on the page: &lt;a href=&quot;http://www.void.gr/kargig/blog/greek-adblock-plus-filter/&quot;&gt;Greek adblock plus filter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I started the list a long time ago with some personal filter for sites I visit the most. In order to enrich the list I searched and found a list with the supposedly “top 50″ greek sites (regarding traffic), so I visited them and started adding filters to reduce the ads on them.&lt;/p&gt;
&lt;p&gt;I warn you though, the filters are a bit strict…and I don’t like flash ads…I really don’t. I hope you like the list. &lt;/p&gt;
&lt;p&gt;Please contact me, by &lt;a href=&quot;http://www.void.gr/kargig/blog/contact/&quot;&gt;email&lt;/a&gt; or by commenting on &lt;a href=&quot;http://www.void.gr/kargig/blog/greek-adblock-plus-filter/&quot;&gt;Greek adblock plus filter&lt;/a&gt; page to add your own custom filters to the list.&lt;/p&gt;</description>
	<pubDate>Tue, 23 Jun 2009 20:46:11 +0000</pubDate>
</item>
<item>
	<title>Kevin Bowling: Mirroring Fedora</title>
	<guid isPermalink="false">http://www.kev009.com/wp/?p=268</guid>
	<link>http://www.kev009.com/wp/2009/06/mirroring-fedora/</link>

	<description>&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p&gt;This post details setting up your own private mirror of Fedora’s repos.  There are many ways to do this, but this method is by far the best for heavy usage.  By using MirrorManager, clients in your IP range need no custom configuration.  Roaming laptop users automagically hit your mirror while on the premises, yet use the public infrastructure elsewhere.  Setup isn’t exactly hard, but it isn’t well documented so I’ll write about my experience here.&lt;/p&gt;
&lt;p&gt;Some background info.. we have at least 50 Linux desktops, laptops, servers and VMs running about half Fedora 10 and half Fedora 11 at work.  Due to the number of systems, breadth of packages used, and desire to quickly update when new releases are out, I decided on a full mirror setup.  If you only have a handful of systems, you may be better off simply using a general purpose caching proxy like Squid, perhaps telling MirrorManager to point to it.&lt;/p&gt;
&lt;p&gt;This guide should be used in addition to &lt;a href=&quot;http://fedoraproject.org/wiki/Infrastructure/Mirroring&quot; target=&quot;_blank&quot;&gt;http://fedoraproject.org/wiki/Infrastructure/Mirroring&lt;/a&gt; which has some background info.&lt;/p&gt;
&lt;h3&gt;Initial setup and mirror&lt;/h3&gt;
&lt;p&gt;First, get prepared by installing MirrorManager-client, which contains the report_mirror script you will need.  If your mirror isn’t running Fedora, you can clone the source of this app from their GIT repo.&lt;/p&gt;
&lt;pre&gt;yum install mirrormanager-client&lt;/pre&gt;
&lt;p&gt;You’ll be using rsync, a sysadmin’s best friend, for efficient mirroring.&lt;/p&gt;
&lt;p&gt;Set up a shell script like mine below (&lt;em&gt;d0mirror.sh&lt;/em&gt;) one level up from where your mirror will be accessible (http, ftp, rsync, nfs - covered later).  This one mirrors against kernel.org.  Choose a mirror close to you on the Internet.&lt;/p&gt;
&lt;pre&gt;rsync -vaH --exclude-from=fedora-excludes.txt --numeric-ids --delete --delete-delay \
 --delay-updates rsync://mirrors.kernel.org/fedora-enchilada fedora-mirror
report_mirror&lt;/pre&gt;
&lt;p&gt;And a text file (&lt;em&gt;fedora-excludes.txt&lt;/em&gt;) excluding things you don’t want/need.  Take a look through a public mirror and decide if you want to eliminate anything else.  You may want to remove the *.iso line below if you want users to be able to pull disc images from this box.  Otherwise, this is probably a good list for most people.  You can exclude all of linux/updates/testing/ if you don’t enable the testing repo on any of your machines.&lt;/p&gt;
&lt;pre&gt;**/debug/**
**/alpha/**
**/source/**
**/SRPMS/**
**/*.iso
**/ppc/**
**/ppc64/**
linux/core/**
linux/development/**
linux/releases/7/**
linux/releases/8/**
linux/releases/9/**
linux/releases/test/**
linux/updates/8/**
linux/updates/9/**
linux/updates/testing/7/**
linux/updates/testing/8/**
linux/updates/testing/9/**&lt;/pre&gt;
&lt;p&gt;Run your shell script and sit back for up to a day or two depending on your connection speed.  My current mirror weighs in at about 80G.&lt;/p&gt;
&lt;h3&gt;Internal distribution&lt;/h3&gt;
&lt;p&gt;While you wait for sync, decide how you want to run the service internally.  HTTP is nice because it is easy for users to browse and decently quick with keep-alive.   Using NFS, rsync, or FTP may be a bit more efficient if you are worried about this.  You can list several URLs in MirrorManager for the best of all worlds.&lt;/p&gt;
&lt;p&gt;Add the following to your Apache configuration if you decide to use HTTP:&lt;/p&gt;
&lt;pre&gt;Alias /fedora/ &quot;/mnt/ar1/fedora-mirror/&quot;

AddType application/octet-stream .rpm

&amp;lt;Directory &quot;/mnt/ar1/fedora-mirror&quot;&amp;gt;
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
&amp;lt;/Directory&amp;gt;

&amp;lt;LocationMatch &quot;\.(xml|xml\.gz|xml\.asc|sqlite)&quot;&amp;gt;
    Header set Cache-Control &quot;must-revalidate&quot;
    ExpiresActive On
    ExpiresDefault &quot;now&quot;
&amp;lt;/LocationMatch&amp;gt;&lt;/pre&gt;
&lt;p&gt;Set up any other services of you choice to push that directory out in addition.&lt;/p&gt;
&lt;h3&gt;Working with MirrorManager client and server&lt;/h3&gt;
&lt;p&gt;Next, open up &lt;em&gt;/etc/mirrormanager-client/report_mirror.conf&lt;/em&gt;.  Take notice of the site name, password, and host name.  You will need to set these up in MirrorManager in a bit.  The paths here are all local and used by report_mirror to check what you have available.&lt;/p&gt;
&lt;pre&gt;# if enabled=0, no data is sent to the database
enabled=1
server=https://admin.fedoraproject.org/mirrormanager/xmlrpc

[site]
# if enabled=0, no data about this site is sent to the database
enabled=1
name=&amp;lt;yoursitename&amp;gt;
password=&amp;lt;yourhostpassword&amp;gt;

[host]
# if enabled=0, no data about this host is sent to the database
enabled=1
name=x345-a2.internal
# if user_active=0, no data about this category is given to the public
# This can be used to toggle between serving and not serving data,
# such enabled during the nighttime (when you have more idle bandwidth
# available) and disabled during the daytime.
# not passing it means leave it alone in the database.

[stats]
# Stats are only sent when run with the -s option
# and when this section is enabled.
enabled=0
apache=/var/log/httpd/access_log
vsftpd=/var/log/vsftpd.log
# remember to enable log file and transfer logging in rsyncd.conf
rsyncd=/var/log/rsyncd.log

[Fedora Linux]
enabled=1
path=/mnt/ar1/fedora-mirror/linux

[Fedora EPEL]
path=/var/www/html/pub/epel
enabled=0

# lesser used categories below

[Fedora Web]
enabled=0
path=/var/www/html/pub/fedora/web

[Fedora Secondary Arches]
enabled=0
path=/var/www/html/pub/fedora-secondary

[Fedora Other]
enabled=0
path=/var/www/html/pub/alt

# historical content

[Fedora Core]
# if enabled=0, no data about this host is sent to the database
enabled=0
path=/var/www/html/pub/fedora/linux/core

[Fedora Extras]
enabled=0
path=/var/www/html/pub/fedora/linux/extras&lt;/pre&gt;
&lt;p&gt;Log into &lt;a href=&quot;https://admin.fedoraproject.org/mirrormanager&quot; target=&quot;_blank&quot;&gt;https://admin.fedoraproject.org/mirrormanager&lt;/a&gt;, creating a new account if you need to.  Add a new site with the same name as the config file from above.  You’ll set the site password here, and make sure to check the ‘private’ box if this is only for internal users.  Now, add a host under this site.  The name here should probably be a FQDN of your actual mirror, even if it is internal only (i.e x345-a2.internal from my example above).  Once that is done, add a “site-local netblock”.  This is your public IP network/netmask or network in CIDR notation.  If you only have one public IP, it will be in the format nnn.nnn.nnn.nnn/32.&lt;/p&gt;
&lt;p&gt;Almost done.  Now, click Add Category.  “Fedora Linux” is the only one you are concerned with if you followed all the values in this guide so far.  Add the others if needed.  Tell them your upstream source (rsync://mirrors.kernel.org/fedora-enchilada from above) and then your internal URL (http://x345-a2.internal/fedora/linux for my setup).&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Once your rsync is complete and report_mirror is done, you should see clients start hitting your box.   Don’t forget to add your mirror script (domirror.sh from above — rsync and report_mirror) to cron!  You may wish to join the private ‘fedora-mirrors’ mail lists to be informed of new releases and changes.&lt;/p&gt;
&lt;p&gt;The best thing is that it works across all package requests, including new machines, roaming users,  ‘preupgrade’, etc.   All in all, pretty nifty!  Your users will love you when their upgrades are almost instant!  The Fedora infrastructure is set up very well for mirroring, public and private, and this is how the project copes with the huge demand for new releases.  Comment away if you need clarification or help.&lt;/p&gt;



Share and Enjoy:


	&lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;title=Mirroring%20Fedora&amp;amp;bodytext=Introduction%0D%0AThis%20post%20details%20setting%20up%20your%20own%20private%20mirror%20of%20Fedora%27s%20repos.%C2%A0%20There%20are%20many%20ways%20to%20do%20this%2C%20but%20this%20method%20is%20by%20far%20the%20best%20for%20heavy%20usage.%C2%A0%20By%20using%20MirrorManager%2C%20clients%20in%20your%20IP%20range%20need%20no%20custom%20configuratio&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Digg&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/digg.png&quot; alt=&quot;Digg&quot; class=&quot;sociable-hovers&quot; title=&quot;Digg&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;title=Mirroring%20Fedora&amp;amp;notes=Introduction%0D%0AThis%20post%20details%20setting%20up%20your%20own%20private%20mirror%20of%20Fedora%27s%20repos.%C2%A0%20There%20are%20many%20ways%20to%20do%20this%2C%20but%20this%20method%20is%20by%20far%20the%20best%20for%20heavy%20usage.%C2%A0%20By%20using%20MirrorManager%2C%20clients%20in%20your%20IP%20range%20need%20no%20custom%20configuratio&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/delicious.png&quot; alt=&quot;del.icio.us&quot; class=&quot;sociable-hovers&quot; title=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://slashdot.org/bookmark.pl?title=Mirroring%20Fedora&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Slashdot&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/slashdot.png&quot; alt=&quot;Slashdot&quot; class=&quot;sociable-hovers&quot; title=&quot;Slashdot&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;t=Mirroring%20Fedora&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Facebook&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/facebook.png&quot; alt=&quot;Facebook&quot; class=&quot;sociable-hovers&quot; title=&quot;Facebook&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://reddit.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;title=Mirroring%20Fedora&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/reddit.png&quot; alt=&quot;Reddit&quot; class=&quot;sociable-hovers&quot; title=&quot;Reddit&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;title=Mirroring%20Fedora&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;StumbleUpon&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/stumbleupon.png&quot; alt=&quot;StumbleUpon&quot; class=&quot;sociable-hovers&quot; title=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&amp;amp;title=Mirroring%20Fedora&amp;amp;annotation=Introduction%0D%0AThis%20post%20details%20setting%20up%20your%20own%20private%20mirror%20of%20Fedora%27s%20repos.%C2%A0%20There%20are%20many%20ways%20to%20do%20this%2C%20but%20this%20method%20is%20by%20far%20the%20best%20for%20heavy%20usage.%C2%A0%20By%20using%20MirrorManager%2C%20clients%20in%20your%20IP%20range%20need%20no%20custom%20configuratio&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/googlebookmark.png&quot; alt=&quot;Google Bookmarks&quot; class=&quot;sociable-hovers&quot; title=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Print this article!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/printfriendly.png&quot; alt=&quot;Print this article!&quot; class=&quot;sociable-hovers&quot; title=&quot;Print this article!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;mailto:?subject=Mirroring%20Fedora&amp;amp;body=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;E-mail this story to a friend!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/email_link.png&quot; alt=&quot;E-mail this story to a friend!&quot; class=&quot;sociable-hovers&quot; title=&quot;E-mail this story to a friend!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/getpf?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Turn this article into a PDF!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/pdf.png&quot; alt=&quot;Turn this article into a PDF!&quot; class=&quot;sociable-hovers&quot; title=&quot;Turn this article into a PDF!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://twitter.com/home?status=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fmirroring-fedora%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;TwitThis&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/twitter.png&quot; alt=&quot;TwitThis&quot; class=&quot;sociable-hovers&quot; title=&quot;TwitThis&quot; /&gt;&lt;/a&gt;


&lt;br /&gt;&lt;br /&gt;

&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2008/05/fedora-9-kde-40-done-right/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Fedora 9, KDE 4.0 done right&quot;&gt;Fedora 9, KDE 4.0 done right&lt;/a&gt; &lt;small&gt;Wow! I just downloaded the Fedora 9 KDE live spin. ...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2007/06/syncing-directories-with-multiple-computers/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Syncing Directories with Multiple Computers&quot;&gt;Syncing Directories with Multiple Computers&lt;/a&gt; &lt;small&gt;I have a laptop, a workstation, and a server at...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Kernel developers don’t get Xen&quot;&gt;Kernel developers don’t get Xen&lt;/a&gt; &lt;small&gt;The recent bruhaha surrounding Xen on LKML (http://lkml.org/lkml/2009/6/2/475) is really...&lt;/small&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 23 Jun 2009 11:11:41 +0000</pubDate>
</item>
<item>
	<title>George Kargiotakis: Using halevt to automount media and make them appear on ROX desktop</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=610</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/23/using-halevt-to-automount-media-and-make-them-appear-on-rox-desktop/</link>

	<description>&lt;p&gt;With the recent addition of &lt;a href=&quot;http://packages.gentoo.org/package/sys-apps/halevt&quot;&gt;halevt in Gentoo’s portage&lt;/a&gt; it is now relatively easy to automatically mount media like USB sticks and CD/DVD discs on /media. &lt;/p&gt;
&lt;p&gt;What I wanted to do was to emulate my &lt;a href=&quot;http://www.void.gr/kargig/blog/2006/07/24/create-icons-on-rox-desktop-of-automounted-media-by-ivman/&quot;&gt;previous set of configs&lt;/a&gt; and &lt;a href=&quot;http://www.void.gr/kargig/blog/2006/09/23/rox-icons-ivman-continued/&quot;&gt;scripts&lt;/a&gt; that ivman used to create icons of automatically mounted media on &lt;a href=&quot;http://roscidus.com/desktop/node/169&quot;&gt;ROX desktop (called pinboard)&lt;/a&gt;. I am using ROX pinboard on top of my favorite window manager, &lt;a href=&quot;http://fluxbox.org&quot;&gt;fluxbox&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The idea is that &lt;a href=&quot;http://www.nongnu.org/halevt/&quot;&gt;halevt&lt;/a&gt; is started by the fluxbox startup config file and when a new device is attached to the computer, halevt config calls a script that creates an icon on the ROX pinboard using ROX rpc. When a device needs to be removed ROX pinboard is configured to call a special eject command that checks for a couple of things before unmounting the device and calling the script to remove the icon from ROX pinboard.&lt;br /&gt;
Apart from automatically mounting/unmounting of devices I have also added a nice option in the halevt config to unmount and eject the CD/DVD drive when the eject button on the device is used and of course when the CD/DVD is not in use. That emulates a bit the windows behavior that so many users have gotten used to.&lt;/p&gt;
&lt;p&gt;Since the script used by halevt involves a lot of file reading/writing and parsing I thought it would be wise to convert my old &lt;a href=&quot;http://www.void.gr/kargig/blog/2006/09/23/rox-icons-ivman-continued/&quot;&gt;rox.panelput bash script&lt;/a&gt; to perl. And I was correct, the speed difference, even for such simple tasks is more than noticeable.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;installation process&lt;/strong&gt;. Please take notice of the user executing the commands, $ is for normal user, # is for root:&lt;br /&gt;
0) &lt;strong&gt;create /usr/local/bin/ path and put it in your shell’s PATH&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;# mkdir /usr/local/bin&lt;br /&gt;
$ echo &quot;export PATH=$PATH:/usr/local/bin/&quot; &amp;gt;&amp;gt; ~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;1) &lt;strong&gt;install halevt&lt;/strong&gt;&lt;br /&gt;
&lt;code&gt;# echo &quot;sys-apps/halevt ~x86&quot; &amp;gt;&amp;gt; /etc/portage/package.keywords&lt;br /&gt;
# emerge halevt&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;span id=&quot;more-610&quot;&gt;&lt;/span&gt;&lt;br /&gt;
2) create &lt;strong&gt;~/.halevt/HalevtConfigActions.xml&lt;/strong&gt; in your home directory:&lt;br /&gt;
File: &lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/HalevtConfigActions.xml&quot;&gt;HalevtConfigActions.xml&lt;/a&gt;  (right click-&amp;gt;Save-as)&lt;/p&gt;
&lt;p&gt;3) &lt;strong&gt;Create /usr/bin/eject.hal&lt;/strong&gt;. Take notice that the script uses bash and not dash!&lt;br /&gt;
&lt;code&gt;#!/bin/bash&lt;br /&gt;
if [ -z $1 ]; then&lt;br /&gt;
    echo &quot;Usage: eject.hal &quot;&lt;br /&gt;
    exit&lt;br /&gt;
else&lt;br /&gt;
  echo &quot;$1&quot; | egrep &quot;^/dev&quot;&lt;br /&gt;
  if [ &quot;$?&quot; == &quot;0&quot; ]; then&lt;br /&gt;
    #echo &quot;Device First, find mount point&quot;&lt;br /&gt;
    TOSCAN=`echo &quot;$1&quot; | sed -e 's/ /\\\\\\\\040/g'`&lt;br /&gt;
    TOUMOUNT=`grep &quot;$TOSCAN&quot; /proc/mounts | cut -d&quot; &quot; -f2`&lt;br /&gt;
    UDI=`hal-find-by-property --key volume.mount_point --string &quot;$TOUMOUNT&quot;`&lt;br /&gt;
    DISC=`hal-get-property --udi &quot;$UDI&quot; --key volume.is_disc`&lt;br /&gt;
    /usr/local/bin/rox.panelput.pl Remove &quot;$TOUMOUNT&quot;&lt;br /&gt;
    halevt-umount &quot;$1&quot;&lt;br /&gt;
    halevt-umount -s&lt;br /&gt;
    if [ &quot;$DISC&quot; == &quot;true&quot; ]; then&lt;br /&gt;
        /usr/bin/eject -p &quot;$1&quot; &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
  else&lt;br /&gt;
    #echo &quot;Mount Point First, find device&quot;&lt;br /&gt;
    UDI=`hal-find-by-property --key volume.mount_point --string &quot;$1&quot;`&lt;br /&gt;
    DISC=`hal-get-property --udi &quot;$UDI&quot; --key volume.is_disc`&lt;br /&gt;
    TOSCAN=`echo &quot;$1&quot; | sed -e 's/ /\\\\\\\\040/g'`&lt;br /&gt;
    TOUMOUNT=`grep &quot;$TOSCAN&quot; /proc/mounts | cut -d&quot; &quot; -f1`&lt;br /&gt;
    /usr/local/bin/rox.panelput.pl Remove &quot;$1&quot; nowait&lt;br /&gt;
    halevt-umount &quot;$1&quot;&lt;br /&gt;
    halevt-umount -s&lt;br /&gt;
    if [ &quot;$DISC&quot; == &quot;true&quot; ]; then&lt;br /&gt;
        /usr/bin/eject -p &quot;$TOUMOUNT&quot; &amp;amp;&amp;gt;/dev/null&lt;br /&gt;
    fi&lt;br /&gt;
  fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
File: &lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/eject.hal&quot;&gt;eject.hal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4) &lt;strong&gt;Create /usr/bin/rox.panelput.pl&lt;/strong&gt; perl script. The script is written very simplistically to be easily understandable and changable.&lt;br /&gt;
File: &lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/rox.panelput.pl&quot;&gt;rox.panelput.pl&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;5) &lt;strong&gt;Start halevt from fluxbox startup&lt;/strong&gt;..make sure &lt;strong&gt;~/.fluxbox/startup&lt;/strong&gt; file contains at least the following, changing YOURUSERNAME to the one appropriate:&lt;br /&gt;
&lt;code&gt;/usr/local/bin/rox.panelput.pl Restore&lt;br /&gt;
killall -9 halevt; halevt -f -u YOURUSERNAME -g plugdev &amp;amp;&lt;br /&gt;
/usr/bin/rox -p pinboard&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;6) &lt;strong&gt;go to ROX options and change ‘eject command’ to use eject.hal&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/rox-using-eject-hal-screenshot.jpg&quot;&gt;&lt;img src=&quot;http://www.void.gr/kargig/blog/wp-content/rox-using-eject-hal-screenshot-300x186.jpg&quot; title=&quot;rox-using-eject-hal-screenshot&quot; height=&quot;186&quot; width=&quot;300&quot; alt=&quot;rox-using-eject-hal-screenshot&quot; class=&quot;alignnone size-medium wp-image-622&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That should be all. Upon fluxbox restart halevt should start and when you plug in your usb the set of scripts will create an icons on ROX pinboard for you.&lt;/p&gt;
&lt;p&gt;Example:&lt;br /&gt;
&lt;a href=&quot;http://www.void.gr/kargig/blog/wp-content/usb-mounted-by-halevt-and-rox.panelput.pl.jpg&quot;&gt;&lt;img src=&quot;http://www.void.gr/kargig/blog/wp-content/usb-mounted-by-halevt-and-rox.panelput.pl-300x240.jpg&quot; title=&quot;usb-mounted-by-halevt-and-rox.panelput.pl&quot; height=&quot;240&quot; width=&quot;300&quot; alt=&quot;usb-mounted-by-halevt-and-rox.panelput.pl&quot; class=&quot;alignnone size-medium wp-image-624&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;References: &lt;a href=&quot;http://forums.gentoo.org/viewtopic-t-731555-highlight-halevt.html&quot;&gt;http://forums.gentoo.org/viewtopic-t-731555-highlight-halevt.html&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 22 Jun 2009 22:10:06 +0000</pubDate>
</item>
<item>
	<title>Jürgen Geuter: Linux Action Show Season 10, Episode 7 - Cleaning up the mess</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/314-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/314-Linux-Action-Show-Season-10,-Episode-7-Cleaning-up-the-mess/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;img src=&quot;http://the-gay-bar.com/uploads/las227.jpg&quot; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; height=&quot;62&quot; width=&quot;227&quot; alt=&quot;&quot; class=&quot;serendipity_image_right&quot; /&gt;Usually I do really enjoy the &lt;a href=&quot;http://www.jupiterbroadcasting.com/?cat=4&quot;&gt;Linux Action Show&lt;/a&gt;: The production quality is good, they aggregate some stuff I might have not seen earlier and are most of the time just fun. I like that they have their own agendas and positions which often go out of the &quot;linux mainstream&quot;, it gives people a good hook to start thinking about what's really right and good and what's just propaganda of any side of the discussion.&lt;br /&gt;
&lt;br /&gt;
Today I listened to &lt;a href=&quot;http://www.jupiterbroadcasting.com/?p=876&quot;&gt;Episode 7 of Season 10&lt;/a&gt; (the current one at the time of writing this) and I gotta say that that episode was just below any quality standard when it came to the &quot;&lt;a href=&quot;http://www.mono-project.com/Main_Page&quot;&gt;Mono&lt;/a&gt; Discussion&quot;. &lt;br /&gt;
&lt;br /&gt;
A few remarks first: I have written about Mono &lt;a href=&quot;http://the-gay-bar.com/index.php?/archives/160-Is-Mono-evil/&quot;&gt;before&lt;/a&gt;, coming to the conclusion that it is in fact &lt;em&gt;not&lt;/em&gt; evil. I use a bunch of Mono applications (because they allow me to do things better than I could do them without these apps): I run &lt;a href=&quot;http://banshee-project.org&quot;&gt;Banshee&lt;/a&gt;, &lt;a href=&quot;http://do.davebsd.com/&quot;&gt;GNOME-Do&lt;/a&gt;, &lt;a href=&quot;http://projects.gnome.org/tomboy/&quot;&gt;Tomboy&lt;/a&gt; and &lt;a href=&quot;http://f-spot.org/Main_Page&quot;&gt;F-Spot&lt;/a&gt; without feeling &quot;guilty&quot; or &quot;bad&quot;. Those apps rock and make my days better. I am not a &quot;Mono hater&quot; (though I'd probably avoid writing C# just as I would avoid writing Java just cause I don't like those languages, but that's a different topic).&lt;br /&gt;
&lt;br /&gt;
The discussion was triggered by the &lt;a href=&quot;http://fedoraproject.org/&quot;&gt;Fedora Project&lt;/a&gt; deciding to drop Tomboy from the LiveCD and the default install and replacing it with &lt;a href=&quot;http://live.gnome.org/Gnote&quot;&gt;GNote&lt;/a&gt;, which is pretty much a clone of Tomboy just written in C++. &lt;a href=&quot;http://lunduke.com/&quot;&gt;Bryan&lt;/a&gt; and &lt;a href=&quot;http://bin-false.org/&quot;&gt;Chris&lt;/a&gt; then went on and on, pushing each other into more and more extreme phrases. Now I know how it is sometimes and how getting into that kind of ranting can be fun, but that's why you can edit your podcast to make sure that you've got at least the facts straight. Let's do some cleaning up.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Complaint No.1: Duplication is waste of developer time&lt;/h3&gt;&lt;br /&gt;
&lt;br /&gt;
Both hosts complained that Hubert Figuiere, the creator of Gnote would just waste developer time replacing an app that works. They continued collecting all those little bugs they encountered in the different Linux distros they use, hinted at some MacOSX features the Linux kernel didn't have and that duplication was the reason for those &quot;flaws in Linux&quot;.&lt;br /&gt;
&lt;br /&gt;
This might look like it makes sense if you don't look to closely: You have X people, each putting in Y hours a month into Linux/FOSS. If one person spends Z hours to do something &quot;useless&quot; we lose those hours and have just X*Y-Z hours left for the &quot;valid&quot; stuff. Which would make sense if hours were that freely distributable which they ain't for a bunch of reasons: I don't know Hubert, but maybe he has no interest or skills to hack on the Kernel or patching it to duplicate some MacOSX feature? So his hours couldn't be spend in that area. But the more important aspect, one that always annoys me when it comes to &lt;a href=&quot;http://the-gay-bar.com/index.php?/archives/244-The-criterium-of-relevance/&quot;&gt;Wikipedia deletionism&lt;/a&gt;, too: If somebody takes time out of his or her full day to do something, that is &lt;em&gt;never&lt;/em&gt; futile or useless, if it was, that person wouldn't have done it. Whether Hubert just doesn't like Mono cause of legal reasons or cause he hates the platform for its less that stellar startup times or just cause he loves C++ oh so much more doesn't matter: He decided that it was worth his time to implement a Tomboy clone in C++.&lt;br /&gt;
&lt;br /&gt;
FOSS is about choice and this is a great example: You can chose to use the Mono app that is probably more mature or you can use Gnote. Maybe you just don't wanna have Mono on your system for space reasons (or cause you don't wanna compile it [me being a Gentoo user knows the pain: It's the reason I don't run any KDE apps: compiling kdelibs and family just wastes precious time and resources]), maybe Mono doesn't run? Your choice. The best program will win the mindshare or both projects will agree on a standard that lets them interact. That is the way FOSS works. Just cause Tomboy was first and works we shouldn't grant its developers the monopoly on note-taking: what happens if Gnote goes in a different direction in a month and creates something even more awesome? Do we wanna risk losing that? New perspectives on problems, on software implementations are &lt;em&gt;good&lt;/em&gt;, they allow us to see flaws more clearly and competition forces us to define open interfaces and standards that allow better integration in the long run. If Beagle had not gotten competition by Tracker we probably wouldn't have the Xesam standard that allows everybody to plug random desktop search engines into the desktop. Competition is our strength, because it makes our platform stronger, more refined.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Complaint No.2: Dropping Mono programs is just cause of FUD and legal threats that don't exist&lt;/h3&gt;&lt;br /&gt;
&lt;br /&gt;
The next big comlaint was that fedora was just dropping Tomboy cause of FUD: That the Mono haters had won to cheat them into dropping Mono. This has a few aspects:&lt;br /&gt;
&lt;br /&gt;
a) If anybody in the fedora project sees a legal ambivalence with Mono it's their fucking Job as distribution to drop Mono: They have a responsibility for their users and bringing them into a situation that might compromise them is just dead wrong. &lt;br /&gt;
Now let's just say they have a few concerns, as little as they are, they are just not 100% sure that Tomboy is fine. A competing product comes a long that works and that is clearly not having any of the legal ambiguities that Mono has. It would be completely stupid &lt;em&gt;not to drop&lt;/em&gt; Mono: You have a program to provide the functionality you want with less trouble? Go for it I say!&lt;br /&gt;
b) Even if they didn't see legal trouble there's the fact of slimmer dependencies. Mono is a big dependency if you have it there just for Tomboy. If dropping Tomboy for a functionally good enough replacement allows you to clean that much space for your user, why wouldn't you do that? Maybe that allows you to put that other nifty new program on the LiveCD? Maybe more documentation or a new language? All reasons that are worth it.&lt;br /&gt;
c) The fedora people make their decisions based on the facts they have in front of them. You can disagree, can get involved into the process but in the end it's up to the project to decide their way. They don't have to please anyone, they make decisions and in the case of Fedora those are usually made completely in the open. I think the Fedora devs are a bunch of really smart people and if they decide something for their own project, who am I or who are you to tell them what to do? &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Complaint No.3: Dropping Mono from your distro is as bad as any DRM&lt;/h3&gt;&lt;br /&gt;
&lt;br /&gt;
This is the part that got Chris all excited and with every word more into the &lt;em&gt;wrong&lt;/em&gt; spectrum of the discussion: Chris (and Bryan) seem to have just read over the Fedora/Gnote messages very quickly cause they seemed to have missed half of it: Fedora does not delete Mono and Mono apps from the repos, they are just not on the LiveCD and the default install. Every user can have all of those apps by selecting it in the package manager and hitting &quot;install&quot;. Mono is &lt;em&gt;not gone&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
Based on this false assumption Chris said that Fedora dropping Mono was just as bad as DRM, that it was just another software vendor locking him out of software. This whole notion is ridiculous and very clearly not thought through.&lt;br /&gt;
&lt;br /&gt;
What does DRM do? The supplier of something uses DRM to force you to use the Software or content just exactly as that supplier intends it, no installing the software where the supplier doesn't want it, no playing content on unregistered players. DRM locks you out of options.&lt;br /&gt;
If Fedora &lt;em&gt;had&lt;/em&gt; dropped Mono and all Mono apps completely how would that relate? Well ... not at all in fact. It would just mean that Fedora wouldn't support Mono anymore with their limited resources (see Complaint No.1), nobody would bar you from setting up a repo with all the Mono stuff and somebody probably would do that very quickly. It's like some Windows Software Shop not supporting running their app under Wine: It's not like they forbid you from doing it, it's not even that they wouldn't help you if you come with good suggestions on how to make running it on Wine easier, it's just that they wouldn't write &quot;We support running this under Linux through Wine&quot; on their box.&lt;br /&gt;
The Fedora has any right to drop certain packages from their repos if they can't or don't want to support them anymore, it happens all the time: Old unmaintained software is dropped because maintaining it is a pain. Fedora knows whether they can and want to support Mono and if they see it as the best way to drop Mono packages cause their resources are limited it is &lt;em&gt;the right thing&lt;/em&gt; to do. Because the users &lt;em&gt;deserve&lt;/em&gt; to only get official packages that are maintained and supported. Every DRM comparison fails here in any thinkable way.&lt;br /&gt;
&lt;br /&gt;
I think Chris and Bryan just got carried away by their quick perception that everything was about FUD and just reacted out of that wrong perception without thinking it through. But I hold them to higher standards than that: If you speak &quot;for the community&quot; (well they don't speak for all of it but they do have a bunch of listeners which gives their opinion and voice some weight) you gotta think before accusing projects of things. It's just really bad style if you don't.&lt;br /&gt;
&lt;br /&gt;
I for one am looking forward to the next episode of the Linux Action Show, one of those Podcasts that I enjoy listening to. What's your opinion on the whole thing? Do you see Fedora's replacing of Tomboy with Gnote as negatively as Bryan and Chris do? I'm looking forward to your opinions!&lt;br /&gt;</description>
	<pubDate>Mon, 22 Jun 2009 18:02:25 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>
<item>
	<title>Zeth: Mobile Wireless Questions and Answers</title>
	<guid isPermalink="false">http://commandline.org.uk/linux/mobile-wireless-questions-and-answers/</guid>
	<link>http://commandline.org.uk/linux/mobile-wireless-questions-and-answers/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/zeth.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;&lt;em&gt;Some interesting questions and answers from my local Linux Group, the responses were written by Linux wireless expert Quentin Wright.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The first questioner wants temporary Internet access for a local community group:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I run a group in a venue without Internet access, I've been thinking of getting a USB 3G dongle (possibly with one of those USB-&amp;gt;Ethernet hubs people like Three offer).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You could just get a pay-as-you-go SIM and a dongle.&lt;/p&gt;
&lt;p&gt;I quite like the Netgear MBM621 which is an HSPDA/Ethernet modem and does NAT. Unfortunately they cost about 230 UKP new, and second-hand ones sell for nearly as much on eBay.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The next two questions are from the same author, who has connection problems with a mobile broadband USB dongle.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I have the T-Mobile web-n-walk mobile broadband USB stick which identifies itself as a Huawei E220/E270 HSDPA modem.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I recently downloaded and installed the latest version of the vodafone-mobile-connect (VMC) package for Fedora 10.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;This installed okay after I had installed a few other things it required and it now runs, detects the Huawei and is quite happy to read and send text messages, which I previously had to do using a hand-crafted script.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;But it will not set the device into internet mode, and although it installed lots of files in /usr/share/vodafone-mobile-connect/ I can't find what I have to change to make it work with the t-mobile network.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Not especially constructive I'm afraid, but it works out of the box with Ubuntu 9.04 using Network Manager. There is a look-up table of providers and their configurations installed by default - something different from VMC.&lt;/p&gt;
&lt;p&gt;It may well work similarly with Fedora 11 as they said they were going to put the code in - I'll try it in the next day or so other distractions at work permitting.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I got rid of Network Manager because it interfered with other things (including the latest version of Firefox) and I mostly prefer to use scripts to handle my network connections (including changing /etc/hosts, and other things). Various colleagues who previously used 'NM' have now switched to 'wicd' which they find works where NM breaks in recent versions of linux. I don't know what's going on there.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Things have been particularly complicated with respect to networking since the transition to the Devicescape architecture in the kernel last year, coupled with the incorporation of the driver code from the more common wireless devices into the kernel as well.&lt;/p&gt;
&lt;p&gt;These changes have in turn obliged the driver developers, the wpa-supplicant people, and the teams involved in the configuration utilities like Network Manager and wicd to catch up with the changes in the kernel. Further the distribution builders have had quite difficult decisions to make about the particular kernel build and other components to put into their release.&lt;/p&gt;
&lt;p&gt;It's not sufficient to make a statement like &quot;NM breaks with such-and-such a version of Linux&quot;. In reality a problem will relate to the combination of the specific kernel version, the particular device being used, as well as the versions of NM and wpa-supplicant.&lt;/p&gt;
&lt;p&gt;Additionally in some distributions, like Debian, Mandrive and PCLinux OS, with some devices multiple conflicting drivers are loaded when particular devices are detected. In other distributions like Arch Linux, SUSE and Debian the firmware has to be copied into /lib/firmware. The symptom is that Network Manager appears to work, including acceptance of the key and even the appearance of a brief connection which then dies.&lt;/p&gt;
&lt;p&gt;In endeavouring to triage NM problems in Ubuntu, about 50% of the problems relate to a failure to understand how to use the configuration icon. In particular the mistakes that are made are:&lt;/p&gt;
&lt;ol class=&quot;arabic simple&quot;&gt;
&lt;li&gt;Right clicking and using manual configuration when it is unnecessary.&lt;/li&gt;
&lt;li&gt;Failing to appreciate that it is necessary to left-click on the icon to configure wireless. This is a particular problem with users coming from a Windows environment.&lt;/li&gt;
&lt;li&gt;Not knowing the network passphrase, or only having a hex passphrase when a string is required (some BT Homehub users).&lt;/li&gt;
&lt;li&gt;Setting it up, changing the hub configuration and failing to make a note of the default keyring password and being unable to change the configuration.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;On the topic of kernel versions, it's not enough just to rely on the kernel version for the 3G modems, because the udev rules have to be right as well.&lt;/p&gt;
&lt;p&gt;As a rule it's best to avoid upgrading. The best strategy seems to be to have multiple partitions, maybe with a shared /home partition and do a clean install into the least used partition. You might then decide to migrate to the latest (greatest?!) version, or alternatively just give it a miss this time around.&lt;/p&gt;

&lt;a href=&quot;http://commandline.org.uk//linux/mobile-wireless-questions-and-answers/#discussion&quot; class=&quot;reference&quot;&gt;Discuss this post - Leave a comment&lt;/a&gt;</description>
	<pubDate>Sun, 21 Jun 2009 19:31:43 +0000</pubDate>
</item>
<item>
	<title>Dirk R. Gently: Customizable LiveUSB</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=831</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/20/customizable-liveusb/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;If you ever have an emergency and need a rescue disk to recover your Linux install, or maybe you just want to brag to your friends there’s some good LiveCD/USB’s out there and many distro’s now make LiveUSB install images, but it is also possible to create your own customizable LiveUSB.  Hey, if you’re willing to put the time in, you can have a portable Linux in your pocket.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;There’s alot of articles about creating your own custom CD/LiveUSB but many of them seemed dramatic involving messing with things like syslinux… Plus many of these create a fixed image, meaning that once it’s on your USB it can’t be changed.  But having a customizable Linux on a USB flashdrive isn’t that difficult – just install Linux to the USB drive.&lt;/p&gt;
&lt;h4&gt;Partition the USB Drive&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;The first thing you’ll need is at least a 2GB flash drive.  Anything less and you better plan a real basic install.  First thing you might like to do is partition the flash drive.  This isn’t necessary but I was pretty sure I wouldn’t need the 4GB for what I needed so I partitioned the flash drive to have a 1GB FAT32 partition first (so that Vista can see any files I put on it) then I partitioned the remaining 3GB as ext4 with kparted (there’s also gparted for gnome users).&lt;/p&gt;
&lt;h4&gt;Install via VirtualBox&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;No need to burn an ISO and reboot, use VirtualBox and do it from your desktop.  You can follow my &lt;a href=&quot;http://linuxtidbits.wordpress.com/2009/06/12/test-a-livecd-with-virtualbox/&quot; target=&quot;_blank&quot;&gt;Testdrive a LiveCD with VirtualBox post&lt;/a&gt; to getting VirtualBox setup.  I personally used &lt;a href=&quot;http://www.archlinux.org/download/&quot; target=&quot;_blank&quot;&gt;Arch Linux&lt;/a&gt; for this install because it’s easy to configure, &lt;a href=&quot;http://www.gentoo.org/main/en/where.xml&quot; target=&quot;_blank&quot;&gt;Gentoo&lt;/a&gt; should work well too, and Ubuntu looks to be &lt;a href=&quot;http://ubuntuforums.org/showpost.php?p=4928697&amp;amp;postcount=3&quot; target=&quot;_blank&quot;&gt;easy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div style=&quot;width: auto; border: solid #637dba; background-color: #d8e2fa; font-size: .9em; text-align: justify; color: #2a354f; border-width: .1em .8em; padding: .3em .6em;&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;At the time VirtualBox does not have 64bit capabilities.  If you want to install a 64bit Linux on your flash drive best to boot a LiveCD and follow these instruction from there.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Make sure your user is part of the VirtualBox group to enable usb recognition:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;gpasswd -a &amp;lt;username&amp;gt; vboxusers&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;Boot the LiveCD/USB iso/img in VirtualBox then in Devices &amp;gt; USB devices select your flash drive.  Now the installer will recognize your flash drive.  Proceed to install the distro on the flash drive.  If you partitioned beforehand you can skip partitioning and go to setting Filesystem Mountpoints.  When you reach GRUB setup be sure to install GRUB on the flash drive itself, for me it was &lt;code&gt;/dev/sdb&lt;/code&gt;.  Be sure NOT to install GRUB to a partition, it should be at the beginning of the drive.&lt;/p&gt;
&lt;h4&gt;Fix Grub&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;Because your BIOS is likely setup to recognize your hard drive before your USB drive you get drive denominations like &lt;code&gt;/dev/sda&lt;/code&gt; for your hard disk and &lt;code&gt;/dev/sdb&lt;/code&gt; for your flash drive on regular bootup.  If booting from a flash drive, many BIOS’s have you enter a key (mine is F10) to get to a Boot Menu.  So when you select your flash drive in your BIOS Boot Menu your flash drive now becomes &lt;code&gt;/dev/sda&lt;/code&gt;, hard drive &lt;code&gt;/dev/sdb&lt;/code&gt;.  In grub terminology this is &lt;code&gt;hd0&lt;/code&gt; and &lt;code&gt;hd1&lt;/code&gt;.  Most BIOS’s are like this (though there a few exceptions).  To know for sure you won’t be able to detect this until you try and boot your flash drive (more below).&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Close VirtualBox and open your GRUB menu list and change to the first recognized drive:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;mount /dev/sdb2 /mnt/usb&lt;br /&gt;
vim /mnt/usb/boot/grub/menu.lst&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;or however you edit your system files.  Then change:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;# (0) Arch Linux&lt;br /&gt;
title  Arch Linux&lt;br /&gt;
root   (hd&lt;b&gt;1&lt;/b&gt;,1)&lt;br /&gt;
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/34393cdf-9f39-431e-88c8-ea89a2518c83 ro&lt;br /&gt;
initrd /boot/kernel26.img&lt;/div&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;# (0) Arch Linux&lt;br /&gt;
title  Arch Linux&lt;br /&gt;
root   (hd&lt;b&gt;0&lt;/b&gt;,1)&lt;br /&gt;
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/34393cdf-9f39-431e-88c8-ea89a2518c83 ro&lt;br /&gt;
initrd /boot/kernel26.img&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;The (hd0,&lt;strong&gt;1&lt;/strong&gt;) value denotes the partition number, again starting with 0.  So this denotation tells GRUB the root filesystem is on the first drive, second partition.&lt;/p&gt;
&lt;h4&gt;Arch-specific Details (Mostly)&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;If you already did the configuration for your hard disk, you should be able to copy most the configuation files over to the flash drive (rc.conf, mirrorlist, modprobe.conf, local.conf…) and then install xorg, xfce4… by chrooting in.  This is my chroot script:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;#!/bin/bash&lt;br /&gt;
# chrootmount – change root to current directory&lt;p&gt;&lt;/p&gt;
&lt;p&gt;cp /etc/resolv.conf etc/resolv.conf&lt;br /&gt;
mount -t proc none proc&lt;br /&gt;
mount -o bind /dev dev&lt;br /&gt;
mount -t sysfs none sys&lt;br /&gt;
chroot . /bin/bash&lt;br /&gt;
source /etc/profile&lt;br /&gt;
grep -v rootfs /proc/mounts &amp;gt; /etc/mtab&lt;br /&gt;
source ~/.bashrc&lt;/p&gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;This will allow you to just cd to the mounted directory and enter command to chroot to the new environment.  From there you can install a desktop environment (I choose XFCE because I wanted a lightweight environment and limited disk space):&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;pacman -Syu&lt;br /&gt;
pacman -S xorg xfce4 gdm &amp;lt;few-fonts&amp;gt; nvidia&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;And a couple other things following the &lt;a href=&quot;http://wiki.archlinux.org/index.php/Beginners_Guide&quot; target=&quot;_blank&quot;&gt;Beginner’s Guide&lt;/a&gt;.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;The kernel initramfs image will need to be rebuilt too to have usb driver support.  In the chrooted environment edit &lt;code&gt;/etc/mkinitcpio.conf&lt;/code&gt; and add usb to HOOKS:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;HOOKS=”base udev autodetect pata scsi sata filesystems usb”&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;Then find the the kernel version name and version:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;uname -r&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;and build a new initramfs image:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;mkinitcpio -g /boot/kernel26.img -k &amp;lt;your-kernel-name-version&amp;gt;&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;The &lt;code&gt;-k&lt;/code&gt; option needs to be specified to use the chrooted kernel and not runtime kernel that is being used by chroot.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;When done, exit chroot:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;exit &amp;amp;&amp;amp; umount proc sys dev&lt;/div&gt;
&lt;h4&gt;Reboot and Test&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;Now reboot and get to the BIOS Boot Menu.  As I said, all BIOS’s are different so keep an eye for a key to get to it.  Once in the Boot Menu select your USB drive.&lt;/p&gt;
&lt;p&gt;Try and boot the flash drive.  If you get a GRUB 17 error or boot into hard drive OS, you’ll have to edit your &lt;code&gt;menu.lst&lt;/code&gt;.  You can find the devices Grub sees by starting the flash drive again and in the Grub menu press &lt;b&gt;e&lt;/b&gt; to edit.  On the root line press &lt;b&gt;e&lt;/b&gt; again and delete to:&lt;/p&gt;
&lt;pre&gt;root (hd&lt;/pre&gt;
&lt;p align=&quot;justify&quot;&gt;now press tab and it will show you the availble drive and partitions.  Enter the correct one, hit escape and then &lt;b&gt;b&lt;/b&gt; to boot.  That’s it, you should now have your own customizable Linux USB drive.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://linuxtidbits.files.wordpress.com/2009/06/arch-usb.png&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://linuxtidbits.files.wordpress.com/2009/06/arch-usb-478.jpg&quot; alt=&quot;&quot; style=&quot;border: 1px solid #8282ff; border-width: 1px;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Troubleshooting&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;If you get errors loading the kernel, it may be because USB device detection may need a delay before loading root.  Try to add this to the end of your kernel line in your &lt;code&gt;menu.lst&lt;/code&gt;:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;rootdelay=8&lt;/div&gt;
&lt;h4&gt;Conclusion&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;I was a bit surprised.  I didn’t think a USB drive would be much different that a CD/DVD but actually it was alot faster.  And I just discovered that I’m using a USB 1.1 flash drive. &lt;img src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt;   Not quite as quick as my hard drive but definitely not bad.  This is also the first time I ran without an xorg.conf and my desktop runs great.  Definitely worth a try if you ever need a rescue os to fix problems with.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/831/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/831/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/831/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/831/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/831/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/831/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/831/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/831/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/831/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/831/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=831&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 21 Jun 2009 03:57:10 +0000</pubDate>
</item>
<item>
	<title>Nikos Roussos: foss devs conference 2009</title>
	<guid isPermalink="false">http://comzeradd.wordpress.com/?p=212</guid>
	<link>http://comzeradd.wordpress.com/2009/06/20/foss-devs-conference-2009/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/gnrous.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/comzeradd/3644218148/&quot; title=&quot;workshops by comzeradd, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3404/3644218148_bccc1fb0a9.jpg&quot; alt=&quot;workshops&quot; height=&quot;334&quot; style=&quot;float: none;&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;another great libre software event just ended. this time was the &lt;a href=&quot;http://conf.ellak.gr/&quot; target=&quot;_blank&quot;&gt;foss developers conference&lt;/a&gt; organized by &lt;a href=&quot;http://eellak.gr/&quot; target=&quot;_blank&quot;&gt;eellak.gr&lt;/a&gt;. two full days with presentations (6 sessions) and workshops (14).&lt;/p&gt;
&lt;p&gt;my highlights from the conference: &lt;a href=&quot;http://openerp.hellug.gr/&quot; target=&quot;_blank&quot;&gt;openerp greek community&lt;/a&gt; announced &lt;a href=&quot;http://www.flickr.com/photos/comzeradd/3644218160/&quot; target=&quot;_blank&quot;&gt;at the conference&lt;/a&gt;, moodle workshop, great &lt;a href=&quot;http://www.flickr.com/photos/comzeradd/3644218172/&quot; target=&quot;_blank&quot;&gt;olpc workshop&lt;/a&gt; by &lt;a href=&quot;http://www.re-public.gr/&quot; target=&quot;_blank&quot;&gt;re-public e-zine&lt;/a&gt;, a &lt;a href=&quot;http://www.ellak.gr/index.php?option=com_openwiki&amp;amp;Itemid=103&amp;amp;id=ellak:ellak_guide_for_education&quot; target=&quot;_blank&quot;&gt;complete foss guide for education&lt;/a&gt; by &lt;a href=&quot;http://blogs.sch.gr/ttnfy17&quot; target=&quot;_blank&quot;&gt;kaskamanidis&lt;/a&gt;, a vivid presentation &lt;a href=&quot;http://www.ellak.gr/index.php?option=com_openwiki&amp;amp;Itemid=103&amp;amp;id=ellak:ubuntu_9.04_ltsp_guide_educational_material&quot; target=&quot;_blank&quot;&gt;about ltsp&lt;/a&gt; by &lt;a href=&quot;http://launchpad.net/~linux.sch.gr&quot; target=&quot;_blank&quot;&gt;kainourgiakis&lt;/a&gt; (the last two were a good brainstorm input for me concerning &lt;a href=&quot;http://alphabetlinux.org/&quot; target=&quot;_blank&quot;&gt;my educational linux distributuion&lt;/a&gt;). and of course it was nice to see again some &lt;a href=&quot;http://www.flickr.com/photos/comzeradd/3644218200/&quot; target=&quot;_blank&quot;&gt;good friends&lt;/a&gt; :)&lt;/p&gt;
&lt;p&gt;i have to admit that it was a great experience since i helped organizing this conference. more to come :)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://comzeradd.files.wordpress.com/2009/06/eellak.png?w=120&amp;amp;h=119&quot; style=&quot;float: none;&quot; title=&quot;eellak&quot; height=&quot;119&quot; width=&quot;120&quot; alt=&quot;eellak&quot; class=&quot;alignleft size-full wp-image-219&quot; /&gt;&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/comzeradd.wordpress.com/212/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/comzeradd.wordpress.com/212/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/comzeradd.wordpress.com/212/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/comzeradd.wordpress.com/212/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/comzeradd.wordpress.com/212/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/comzeradd.wordpress.com/212/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/comzeradd.wordpress.com/212/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/comzeradd.wordpress.com/212/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/comzeradd.wordpress.com/212/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/comzeradd.wordpress.com/212/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=comzeradd.wordpress.com&amp;amp;blog=7443188&amp;amp;post=212&amp;amp;subd=comzeradd&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 20 Jun 2009 18:16:14 +0000</pubDate>
</item>
<item>
	<title>Matija Šuklje: x86 vs. amd64 in Portage</title>
	<guid isPermalink="false">http://matija.suklje.name/109 at http://matija.suklje.name</guid>
	<link>http://matija.suklje.name/?q=node/109</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/matija.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;I just realised something: how come if there's almost no way of getting a 32-bit x86 &lt;a href=&quot;http://matija.suklje.name/?q=glossary/term/174&quot; class=&quot;glossary-term&quot;&gt;&lt;dfn title=&quot;Central Processing Unit&quot;&gt;CPU&lt;/dfn&gt;&lt;/a&gt; nowadays and almost all &lt;a href=&quot;http://matija.suklje.name/?q=glossary/term/174&quot; class=&quot;glossary-term&quot;&gt;&lt;dfn title=&quot;Central Processing Unit&quot;&gt;CPU&lt;/dfn&gt;&lt;/a&gt; are x86_64, that &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;geshifilter-text&quot;&gt;ARCH=&quot;x86&quot;&lt;/code&gt;&lt;/span&gt; is still the default and most maintained in Gentoo/Portage?&lt;/p&gt;
&lt;p&gt;Yes, I know there's still people who use 32-bit, but there's also still people who use &lt;a href=&quot;http://matija.suklje.name/?q=glossary/term/175&quot; class=&quot;glossary-term&quot;&gt;&lt;dfn title=&quot;PowerPC&quot;&gt;PPC&lt;/dfn&gt;&lt;/a&gt; (or even more exotic arches) and that's in second place.&lt;/p&gt;
&lt;p&gt;Wouldn't it make sense for &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;geshifilter-text&quot;&gt;ARCH=&quot;amd64&quot;&lt;/code&gt;&lt;/span&gt; to be at least as well supported as &lt;span class=&quot;geshifilter&quot;&gt;&lt;code class=&quot;geshifilter-text&quot;&gt;ARCH=&quot;x86&quot;&lt;/code&gt;&lt;/span&gt; (if not even made the default/primary) in the given circumstances?&lt;/p&gt;
&lt;p&gt; &lt;i&gt; hook out &amp;gt;&amp;gt; woke up (still) laptopless, getting some grub and studying finances :P&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;P.S. I'm probably not the only one who finds it a bit confusing that the &lt;a href=&quot;http://matija.suklje.name/?q=glossary/term/173&quot; class=&quot;glossary-term&quot;&gt;&lt;dfn title=&quot;GNU Compiler Collection (historically: GNU C Compiler)&quot;&gt;GCC&lt;/dfn&gt;&lt;/a&gt; calls the architecture &lt;cite&gt;x86_64&lt;/cite&gt;, but Portage calls it &lt;cite&gt;amd64&lt;/cite&gt;, am I?&lt;br /&gt;
&amp;lt;!--break--&amp;gt;&lt;/p&gt;</description>
	<pubDate>Sat, 20 Jun 2009 08:46:52 +0000</pubDate>
</item>
<item>
	<title>George Kargiotakis: Firefox 3.0.11 to 3.5b99 migration glitch on certificate authority root files</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=607</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/20/firefox-3-0-11-to-3-5b99-migration-glitch-on-certificate-authority-root-files/</link>

	<description>&lt;p&gt;I’ve recently migrated on my debian from iceweasel (firefox) 3.0.X to swiftfox (firefox) 3.5b99 and I noticed that I could not import any new certificate authority root files. When I used a new profile everything worked as expected, so it was something that had to do with the migration of my old version 3.0.X profile to the new, version 3.5. It looks like there has been a modification in the way firefox 3.0.X and firefox 3.5 handles cert8.db file inside the profile directory. As soon as I deleted the file and restarted firefox I could import new certificate authority root files just fine. Of course I lost the old ones I had imported in the past…&lt;/p&gt;</description>
	<pubDate>Sat, 20 Jun 2009 00:26:09 +0000</pubDate>
</item>
<item>
	<title>Allen Brooker: Degree Result!</title>
	<guid isPermalink="false">http://allenjb.me.uk/?p=124</guid>
	<link>http://allenjb.me.uk/degree-result</link>

	<description>&lt;p&gt;I now have a 2:2 in BSc Computer Science with a Year in Industry. Considering how badly I can do in exams, I am quite happy with this result. Won’t get full results for a short while yet, but getting that result is a weight off my mind.&lt;/p&gt;
&lt;p&gt;Congrats to everyone else getting their results. Hope you get what you wanted.&lt;/p&gt;
&lt;p&gt;Edit: CV updated. I’ve also fixed the broken download link on this site.&lt;/p&gt;
&lt;p&gt;Rant: Why do Monster and other job sites not allow PDF uploads? I had to use a Windows machine to get test the RTF export to make sure it looked OK.&lt;/p&gt;</description>
	<pubDate>Fri, 19 Jun 2009 15:50:15 +0000</pubDate>
</item>
<item>
	<title>Zeth: Visualising your favourite keywords in Twitter</title>
	<guid isPermalink="false">http://commandline.org.uk/more/visualising-your-favourite-keywords-twitter/</guid>
	<link>http://commandline.org.uk/more/visualising-your-favourite-keywords-twitter/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/zeth.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Twitter is a social networking site that allows you to share short messages about what is going on in your life, or to share some cool link you have found.&lt;/p&gt;
&lt;p&gt;Previously I have talked about &lt;a href=&quot;http://commandline.org.uk/python/scripting-twitter-with-python/&quot; class=&quot;reference external&quot;&gt;Twitter scripting&lt;/a&gt;, &lt;a href=&quot;http://commandline.org.uk/linux/gnome-and-twitter/&quot; class=&quot;reference external&quot;&gt;Twitter GNOME integration&lt;/a&gt; and &lt;a href=&quot;http://commandline.org.uk/more/my-twitter-tag-clouds/&quot; class=&quot;reference external&quot;&gt;Tag Clouds&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Having a live and visual representation of what is happening on Twitter is quite fun. These are especially fun on a monitor or flat-screen, e.g. in a party, in an office, or at an event.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://search.twitter.com&quot; class=&quot;reference external&quot;&gt;Twitter's own search&lt;/a&gt; is pretty good, it shows you the latest results for a keyword (or set of keywords) and automatically polls for updates, however you need to click to show you the updates, which reduces the usefulness on an unattended monitor.&lt;/p&gt;
&lt;blockquote&gt;
&lt;img src=&quot;http://commandline.org.uk/images/posts/twitter/twittersearch.png&quot; alt=&quot;http://commandline.org.uk/images/posts/twitter/twittersearch.png&quot; /&gt;
&lt;/blockquote&gt;
&lt;p&gt;A step up from this is &lt;a href=&quot;http://monitter.com/&quot; class=&quot;reference external&quot;&gt;Monitter&lt;/a&gt;, which allows you to put different keywords in columns and sort by geographic location.&lt;/p&gt;
&lt;blockquote&gt;
&lt;img src=&quot;http://commandline.org.uk/images/posts/twitter/monitter.png&quot; alt=&quot;http://commandline.org.uk/images/posts/twitter/monitter.png&quot; /&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://www.twitterfountain.nl/&quot; class=&quot;reference external&quot;&gt;Twitterfountain&lt;/a&gt; finds the latest messages for a keyword, and can also look on Flickr to find images to use for the background of the page.&lt;/p&gt;
&lt;blockquote&gt;
&lt;img src=&quot;http://commandline.org.uk/images/posts/twitter/twitterfountain.png&quot; alt=&quot;http://commandline.org.uk/images/posts/twitter/twitterfountain.png&quot; /&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flotzam.com/&quot; class=&quot;reference external&quot;&gt;Flotzam&lt;/a&gt; is able to pull from several social networking sites, including Twitter, Facebook and YouTube. However, Flotzam requires Silverlight on Windows or Moonlight on Linux.&lt;/p&gt;
&lt;blockquote&gt;
&lt;img src=&quot;http://commandline.org.uk/images/posts/twitter/flotzam.png&quot; alt=&quot;http://commandline.org.uk/images/posts/twitter/flotzam.png&quot; /&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lastly, and my favourite so far, is &lt;a href=&quot;http://visibletweets.com/&quot; class=&quot;reference external&quot;&gt;Visible Tweets&lt;/a&gt;, this simply puts one message on screen and then animates to the next message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;img src=&quot;http://commandline.org.uk/images/posts/twitter/visualtwitter.png&quot; alt=&quot;http://commandline.org.uk/images/posts/twitter/visualtwitter.png&quot; /&gt;
&lt;/blockquote&gt;
&lt;p&gt;Please let us all know if you find another one, or if you think of a cool use for one of these sites. Please also share any other sites or tools you are using.&lt;/p&gt;

&lt;a href=&quot;http://commandline.org.uk//more/visualising-your-favourite-keywords-twitter/#discussion&quot; class=&quot;reference&quot;&gt;Discuss this post - Leave a comment&lt;/a&gt;</description>
	<pubDate>Thu, 18 Jun 2009 14:06:46 +0000</pubDate>
</item>
<item>
	<title>Roderick B. Greening: usb-creator-kde - in action and with icons...</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-3298278771907154708.post-6780182759330478948</guid>
	<link>http://roderick-greening.blogspot.com/2009/06/usb-creator-kde-in-action-and-with.html</link>

	<description>&lt;div&gt;Here's a new screenshot showing usb-creator-kde with media detected and some icon bling (icons subject to change).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basically, I updated the ui elements from QPushButton to KPushButton and assigned icons as KIcons based on appropriate icon/button functions. So they should change with the icon theme - yay.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, here it is...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_ScFZQ0ISIX0/Sjlp97xKYgI/AAAAAAAAA8E/5TizerppkPM/s1600-h/usbcreatorkde1.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_ScFZQ0ISIX0/Sjlp97xKYgI/AAAAAAAAA8E/5TizerppkPM/s320/usbcreatorkde1.png&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 289px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5348422545216004610&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3298278771907154708-6780182759330478948?l=roderick-greening.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 17 Jun 2009 22:07:00 +0000</pubDate>
	<author>noreply@blogger.com (Roderick Greening)</author>
</item>
<item>
	<title>Roderick B. Greening: usb-creator-kde - adventures in gobject land</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-3298278771907154708.post-8558877305256527390</guid>
	<link>http://roderick-greening.blogspot.com/2009/06/usb-creator-kde-adventures-in-gobject.html</link>

	<description>&lt;span style=&quot;font-weight: bold;&quot;&gt;I'll first start out with a disclaimer&lt;/span&gt;: &lt;span style=&quot;font-style: italic;&quot;&gt;I am not fluent in Qt nor Gtk programming. What I know or have learned is through the internet, various books and reading others code. So, what I describe below may not be the best way to achieve the end result, but it appears to work and allow for minimal interference with an existing application backend.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that that's out of the way, I'll proceed with the discussion: porting gobject calls to Qt so that I can get a usable KDE/Qt frontend for usb-creator-kde.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;For the gtk client (usb-creator), the backend currently implements timers, callbacks, and process watchers via gobject. Similar mechanisms exist for Qt. The current backend is unsuitable for general use by both a gtk and Qt frontend as gobject and Qt seem to tromp all over one another, and cause the frontend to crash. TO get around this, we need to move the gobect calls to the gtk frontend, and implement wrappers that the backend can call from the frontend. Once we have wrappers in place, we can then re-implement the wrappers in our desired frontend (e.g. PyKDE).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's an example of some code from the backend:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;self.timeouts[udi] = gobject.timeout_add(UPDATE_FREE_INTERVAL, self.update_free, udi)&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;And from the PyGtk manual:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;timeout_add&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot; class=&quot;Apple-style-span&quot;&gt;int timeout_add(int interval, callback callback [, mixed user_data1, ... ]);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot; class=&quot;Apple-style-span&quot;&gt;Registers a function to be called periodically. The function will be called repeatedly after interval milliseconds until it returns false (or nothing) at which point the timeout is destroyed and will not be called again. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot; class=&quot;Apple-style-span&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot; class=&quot;Apple-style-span&quot;&gt;So to keep the timeout alive, your callback function needs to return true;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt; Unfortunately, there is no single call in Qt that provides this mechanism (none that I know of). So, to implement this, I needed to write a couple of functions, using unnamed arguments lists, lambda notation, etc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First off, we need a generic timer callback function that will call our passed function, test the return value, and stop the timer if the return value is not True. I also want this function to be private to my frontend class. Here what it looks like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;    def __timeout_callback(self, func, *args):&lt;/div&gt;&lt;div&gt;        '''Private callback wrapper used by add_timeout'''&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        timer = self.sender()&lt;/div&gt;&lt;div&gt;        active = func(*args)&lt;/div&gt;&lt;div&gt;        if not active:&lt;/div&gt;&lt;div&gt;            timer.stop()&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;So, &lt;b&gt;func &lt;/b&gt;is the passed calback function to execute, followed by a list of optional arguments &lt;b&gt;*args&lt;/b&gt;. The sender will be a timer object, which we get from &lt;b&gt;self.sender, &lt;/b&gt;assuming that the parent is some QObject or derivation thereof (in my case, the frontend class KdeFrontend is derived from QObject).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, that allows us to have an arbitrary function with any number of arguments, and have it stop a timer when appropriate. We now need to implement the public wrapper that will use this private callback. Here is the code for that:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;    def add_timeout(self, interval, func, *args):&lt;/div&gt;&lt;div&gt;        '''Add a new timer for function 'func' with optional arguments. Mirrors a&lt;/div&gt;&lt;div&gt;        similar gobject call timeout_add.'''&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        timer = QTimer()&lt;/div&gt;&lt;div&gt;        QObject.connect(timer,&lt;/div&gt;&lt;div&gt;            SIGNAL(&quot;timeout()&quot;),&lt;/div&gt;&lt;div&gt;            lambda: self.__timeout_callback(func, *args))&lt;/div&gt;&lt;div&gt;        timer.start(interval)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;        return timer&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;The &lt;b&gt;add_timeout&lt;/b&gt; function takes the same parameters as the &lt;b&gt;gobject.timeout_add&lt;/b&gt; function. Inside, we setup a new &lt;b&gt;timer&lt;/b&gt;, connect it to our private callback, start the timer and return a reference to it. The magic is in how we connect the passed function &lt;b&gt;func&lt;/b&gt;. Notice that we use &lt;b&gt;lambda&lt;/b&gt; to call our private callback, passing along the &lt;b&gt;func&lt;/b&gt; and &lt;b&gt;*args&lt;/b&gt;. Normally, you do not pass a function with variable parameters to Qt connect statements, but in our case, we absolutely are required to do so. This is where using &lt;b&gt;lambda&lt;/b&gt; comes in handy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, there you have it. A way to implement gobject.timeout_add using Qt. While everyday use of this is not likely, it will certainly help in porting applications from PyGtk to PyQt. I hope someone out there finds this useful. I know I searched for an easy way to do this, and never found anything. After lots of trial and error and asking lots of questions to my fellow developers, I was able to come up with the above.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cheers.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3298278771907154708-8558877305256527390?l=roderick-greening.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 17 Jun 2009 19:10:00 +0000</pubDate>
	<author>noreply@blogger.com (Roderick Greening)</author>
</item>
<item>
	<title>Allen Brooker: KDE and Version Numbers</title>
	<guid isPermalink="false">http://allenjb.me.uk/kde-and-version-numbers</guid>
	<link>http://allenjb.me.uk/kde-and-version-numbers</link>

	<description>&lt;p&gt;I’m fed up! I’m sorry, but I just don’t buy it. MAYBE it worked with the .0 release, but anything above x.0 IS NOT a preview / beta / release candidate. KDE 4.2.4 is the real, proper, full up released version of KDE. Amarok 2.1 is the real, proper, full up released version of Amarok. &lt;/p&gt;
&lt;p&gt;The KDE fanboi’s (and frankly, I think it is just the fanboi’s who are still trying to use this excuse - looking at the KDE blogrolls I don’t see the devs using it any more) need to stop falling back on this excuse. NO ONE else tries to use it, and I don’t understand why they insist on trying to use it. It’s really getting old now.&lt;/p&gt;
&lt;p&gt;KDE had all the features and stability (from my point of view, as a user) and they went and decided to throw away almost the entire codebase in favor of SHINY! What’s worse is they concentrated on new features before getting the really basic stuff which KDE3 does really well right.&lt;/p&gt;
&lt;p&gt;The same for Amarok 2 - the developers concentrated on their stupid shiny new UI which doesn’t even work properly before getting back even a tiny amount of the functionality that makes me use Amarok 1.4 over any of the other umpteen million other media players.&lt;/p&gt;
&lt;p&gt;I don’t think I’ve seen anyone else do this to this degree with desktop software. The first thing developers do when they do a major rewrite (and thus a major version bump) is get the product roughly on par with its predecessor in terms of features. THEN they concentrate on shiny new features. Why is this so hard for the KDE devs to grasp?&lt;/p&gt;
&lt;p&gt;Edit: &lt;strong&gt;I&lt;/strong&gt; am not saying anything (major) is lacking in KDE 4.2 - this is basically a rant about the excuse used by many whenever someone does come up with something that’s missing.&lt;/p&gt;
&lt;p&gt;For the record, the features I am noticably missing in KDE 4.2 are:&lt;br /&gt;
- Plasma still crashes occaisionally (I think this may be related to downloaded plasmoids, but plasma should still sanely handle issues so my entire desktop doesn’t stop responding with no messages telling me why)&lt;br /&gt;
- No ability to put spaces between icons placed on a panel&lt;br /&gt;
- No run panel widget&lt;br /&gt;
- No nice small, clear memory/cpu panel widget like the KDE3 system monitor applet (there doesn’t seem to be a memory usage widget at all. I wonder if that’s so the devs can keep perpetuating the (from my experience) myth that KDE4 uses less memory)&lt;br /&gt;
- Memory usage is noticably greater than KDE 3.5 (as measured at hibernate time on my laptop - My laptop may have been upgraded to 2G from 512M at xmas, but the memory usage affects the time it takes to hibernate/resume my laptop)&lt;/p&gt;</description>
	<pubDate>Wed, 17 Jun 2009 12:50:38 +0000</pubDate>
</item>
<item>
	<title>Jason Jones: Kaboom!</title>
	<guid isPermalink="false">http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4476</guid>
	<link>http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4476</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/jason_jones.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;Man...  When, at the beginning of this year, I wrote that 2009 was gonna be a doozie, I didn't know the half of it.&lt;br /&gt;
After having been employed for only a month, two days ago, Monday, at 5:00pm, my superior came in to my office and told me, with a red face, that they had to let me go.  The red face was undoubtedly due to the fact that nobody enjoys doing that sort of thing.  &quot;Things are too tight&quot;, he said, and then, as he was necessarily hovering over me, I formatted my computer, packed my things, and that was that.&lt;br /&gt;
&lt;br /&gt;
For those of you who have been following my posts, this may come as a shock, as many posts I have recently written have spoken of the spiritual confirmation that both me and my wife have received concerning my employment there.&lt;br /&gt;
&lt;br /&gt;
This one is usually a toughy, but I've come to realize through many life experiences, that God has &lt;em&gt;His&lt;/em&gt; way of doing things.  God's way of doing things more often than not, comes as a shock to our way of doing things.  Does this mean the two are incompatible?  I believe that wholly depends on whether or not you believe God really is at the helm of our lives.&lt;br /&gt;
&lt;br /&gt;
I look at this situation from the following perspective.&lt;br /&gt;
&lt;br /&gt;
I have no doubt at all that it was God's will that I leave Nature's Way and take the offer given me by Conexm.  I felt strongly (as did my wife) after taking the offer and beginning my employment, that I was doing exactly what I needed to be doing.  Neither Sarah nor I felt easy about my employment there, as it was very stressful, and things never felt like they settled into a groove.  Nevertheless, and notwithstanding the bumpiness of life as I was employed there, I always felt that &quot;this is where I am supposed to be&quot;.&lt;br /&gt;
&lt;br /&gt;
So, some may ask, &quot;Why the termination?  Why would God tell you to go somewhere where he knew almost immediate termination would result?&quot;&lt;br /&gt;
&lt;br /&gt;
My response is this.  Yes, it was extremely nerve-racking and difficult, to say the least, to hear the news of my termination.  Given the current economic situation of our family, being unemployed is definitely not something which will make our lives any easier.  Holy moly, no.  But, can I discredit the confirmation both Sarah and I received?  Is it void now?  I might answer yes, if during my employment there, I had given them any reason of my own doing to terminate me.  I gave my all, I did my best, I worked my hardest.&lt;br /&gt;
&lt;br /&gt;
So, in essence, since I don't know what will happen 1 month, 1 week, or even 1 day from right now, I still firmly believe that God is still at the helm of my life, and I am going to do everything I can to find His will in all this.  In doing so, I believe that since &lt;a href=&quot;http://scriptures.lds.org/en/moses/1/39#39&quot; target=&quot;_blank&quot;&gt;God's work and glory&lt;/a&gt; is to bring to pass the immortality and eternal life of his children, and I also believe that man is here on earth &lt;a href=&quot;http://scriptures.lds.org/en/2_ne/2/25#25&quot; target=&quot;_blank&quot;&gt;to have joy&lt;/a&gt;.  If you put those two together, one can only come to the conclusion that if we follow God's will, he will direct us both to have joy, and to eternal life.  Right now, I'm not having a whole lot of joy, persay, but I still am at peace with my current situation, and will continue to do my part.&lt;br /&gt;
&lt;br /&gt;
So... Yeah..  I guess this essay was a long-winded approach to saying, &quot;I'm now unemployed, but I haven't lost hope.&quot;&lt;br /&gt;
&lt;br /&gt;
Hooray!  I get to sleep in!</description>
	<pubDate>Wed, 17 Jun 2009 10:51:00 +0000</pubDate>
</item>
<item>
	<title>Brian Carper: Five Things that Mildly Annoy Me in Clojure</title>
	<guid isPermalink="false">http://briancarper.net/blog/five-things-that-mildly-annoy-me-in-clojure</guid>
	<link>http://briancarper.net/blog/five-things-that-mildly-annoy-me-in-clojure</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/brian_carper.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;This &lt;a href=&quot;http://use.perl.org/~brian_d_foy/journal/32556&quot;&gt;infamous blog post&lt;/a&gt; suggests that someone familiar with a language should be able to name five things they hate about it.  &quot;Hate&quot; is a strong word, but I decided to think of five things I find mildyly annoying about Clojure, my favorite language of the moment.&lt;/p&gt;

&lt;h1&gt;Hashing integers&lt;/h1&gt;

&lt;p&gt;Clojure automatically converts integers between &lt;code&gt;Integer&lt;/code&gt;, &lt;code&gt;Long&lt;/code&gt; and &lt;code&gt;BigInteger&lt;/code&gt; as needed to prevent overflow.  This is good.  Integers of the various classes test as equal too.  This is also good.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (= 123 (int 123) (long 123) (bigint 123))
true
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So would you expect this?&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (hash-map (int 123) :foo (long 123) :bar (bigint 123) :baz)
{123 :foo, 123 :bar, 123 :baz}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Yes, each of the integer classes, though equal via &lt;code&gt;=&lt;/code&gt;, do not have the same hash value when put into a hash-map.  This is because:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (.equals (int 123) (long 123))
false
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This is a wart inherited from the JVM.  See &lt;a href=&quot;http://groups.google.com/group/clojure/browse_thread/thread/da8c396fb1841762/6b6048148287a261?lnk=gst&amp;amp;q=integer+hash#6b6048148287a261&quot;&gt;here&lt;/a&gt; for discussion and explanation.&lt;/p&gt;

&lt;p&gt;What's more, if you print this map and then try to read it back in, the integers will be read as &lt;code&gt;int&lt;/code&gt;, &lt;code&gt;long&lt;/code&gt; or &lt;code&gt;bigint&lt;/code&gt; arbitrarily depending how big they are.  This means you may not get the same class of object back that you output originally.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (def x {(bigint 123) :foo})
#'user/x
user&amp;gt; (= x x)
true
user&amp;gt; (def y (read-string (pr-str x)))
#'user/y
user&amp;gt; (= x y)
false
user&amp;gt; (class (first (keys y)))
java.lang.Integer
user&amp;gt; (class (first (keys x)))
java.math.BigInteger
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This means that if you ever use integers as hash keys, you must be very careful to cast them all to the same integer type manually.&lt;/p&gt;

&lt;h1&gt;Metadata doesn't work on everything&lt;/h1&gt;

&lt;p&gt;Clojure lets you stick arbitrary &lt;a href=&quot;http://clojure.org/metadata&quot;&gt;metadata&lt;/a&gt; on various objects.  This is higly useful; you can decorate objects with information that doesn't affect the value of the object.  However metadata doesn't work everywhere.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (with-meta &quot;foo&quot; {:bar :baz})
java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IObj (NO_SOURCE_FILE:0)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can only stick metadata on certain Clojure objects like Symbols, Vars, Refs, Agents, all of the Clojure collections and so on.  You can't stick metadata on, say, a String or an Integer, because those are closed Java classes and can't be touched.  It would be nice if you could.&lt;/p&gt;

&lt;h1&gt;use vs. require vs. import vs. load vs. ...&lt;/h1&gt;

&lt;p&gt;There are a startling number of ways to import a library into your code in Clojure.  You have to choose from &lt;code&gt;load&lt;/code&gt;, &lt;code&gt;import&lt;/code&gt;, &lt;code&gt;require&lt;/code&gt;, &lt;code&gt;use&lt;/code&gt;, &lt;code&gt;refer&lt;/code&gt;, and so on.  Some work on Java classes, some work on Clojure libs.  Some of them import symbols into your namespace, some of them don't.  Some of them take strings as arguments, some take symbols, some take quoted lists of symbols, some take quoted lists of symbols with sub-lists of arguments.  And all of these can be and usually are weirdly inlined into a namespace declaration, with a completely different list-quoting style.&lt;/p&gt;

&lt;p&gt;So in Ruby you can do this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;require 'util'
require 'config'
require 'whatever'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Whether it's a gem, or a Ruby source file sitting locally, it all works the same as long as the load path is set up right.&lt;/p&gt;

&lt;p&gt;But in Clojure, you do this (actual code from an IMAP library I wrote):&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(ns qt4-mailtray.mail
  (:import (java.util Properties)
           (javax.mail Session Store Folder Message Flags Flags$Flag FetchProfile FetchProfile$Item)
           (javax.mail.internet InternetAddress))
  (:use clojure.contrib.str-utils))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This can quickly become unwieldy, especially if you start using the &lt;code&gt;:as&lt;/code&gt; or &lt;code&gt;:only&lt;/code&gt; or &lt;code&gt;:rename&lt;/code&gt; arguments.  It's made worse by Java's insane API's full of a billion classes that you need to import to do simple things.  (And those things with dollar signs are mangled Java inner class names.)  Clojure also lacks the ability to import a whole package worth of classes at once using &lt;code&gt;java.io.*&lt;/code&gt; syntax, so you must name all of the classes explicitly.&lt;/p&gt;

&lt;h1&gt;every? vs some.&lt;/h1&gt;

&lt;p&gt;This is such a trite pet-peeve that it's barely worth mentioning, but it seems to be brought up repeatedly and endlessly on the Clojure mailing list so at least I'm not the only one bugged by it.&lt;/p&gt;

&lt;p&gt;Clojure has a function &lt;code&gt;(every? pred coll)&lt;/code&gt; which tests whether every item in a collection tests true via some predicate.  To test whether every item in a collection tests false, we have &lt;code&gt;not-any?&lt;/code&gt;.  And we have a &lt;code&gt;not-every?&lt;/code&gt; which tests whether any item tests false.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (every? even? [2 4 6])
true
user&amp;gt; (not-every? even? [2 4 6])
false
user&amp;gt; (not-any? even? [2 4 6])
false
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now what would you expect a function to be called which tests whether any item in a collection tests true via some predicate?  If you said &lt;code&gt;any?&lt;/code&gt; you are wrong!  It's &lt;code&gt;some&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Note that &lt;code&gt;some&lt;/code&gt; isn't a predicate (hence no question mark in the name); it doesn't return true or false, as above, but rather returns the result of running &lt;code&gt;pred&lt;/code&gt; on an item in &lt;code&gt;coll&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (some identity [nil 1 2 3])
1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;any?&lt;/code&gt; is pretty easy to write so it doesn't matter that much.  Probably many people have an identical function sitting in some &lt;code&gt;utils.clj&lt;/code&gt; file on their systems.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defn any? [pred coll]
  (when (seq coll)
    (if (pred (first coll))
      true
      (recur pred (next coll)))))
&lt;/code&gt;&lt;/pre&gt;

&lt;h1&gt;Stack trace madness&lt;/h1&gt;

&lt;p&gt;Give this function:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(defn foo []
  (throw (Exception. &quot;BARFED&quot;)))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;What does the stack trace look like in SLIME when you call &lt;code&gt;foo&lt;/code&gt;?  Like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;java.lang.Exception: BARFED (NO_SOURCE_FILE:0)
  [Thrown class clojure.lang.Compiler$CompilerException]

Restarts:
 0: [ABORT] Return to SLIME's top level.
 1: [CAUSE] Throw cause of this exception

Backtrace:
  2: swank.commands.basic$eval_region__729.invoke(basic.clj:36)
  3: swank.commands.basic$listener_eval__738.invoke(basic.clj:50)
  4: clojure.lang.Var.invoke(Var.java:346)
  5: user$eval__1506.invoke(NO_SOURCE_FILE)
  6: clojure.lang.Compiler.eval(Compiler.java:4580)
  7: clojure.core$eval__4016.invoke(core.clj:1728)
  8: swank.core$eval_in_emacs_package__336.invoke(core.clj:55)
  9: swank.core$eval_for_emacs__413.invoke(core.clj:123)
 10: clojure.lang.Var.invoke(Var.java:354)
 11: clojure.lang.AFn.applyToHelper(AFn.java:179)
 12: clojure.lang.Var.applyTo(Var.java:463)
 13: clojure.core$apply__3269.doInvoke(core.clj:390)
 14: clojure.lang.RestFn.invoke(RestFn.java:428)
 15: swank.core$eval_from_control__339.invoke(core.clj:62)
 16: swank.core$eval_loop__342.invoke(core.clj:67)
 17: swank.core$spawn_repl_thread__474$fn__505$fn__507.invoke(core.clj:173)
 18: clojure.lang.AFn.applyToHelper(AFn.java:171)
 19: clojure.lang.AFn.applyTo(AFn.java:164)
 20: clojure.core$apply__3269.doInvoke(core.clj:390)
 21: clojure.lang.RestFn.invoke(RestFn.java:428)
 22: swank.core$spawn_repl_thread__474$fn__505.doInvoke(core.clj:170)
 23: clojure.lang.RestFn.invoke(RestFn.java:402)
 24: clojure.lang.AFn.run(AFn.java:37)
 25: java.lang.Thread.run(Thread.java:619)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Yeouch.  Now imagine that the above error is coming not from a simple function, but from some random line among hundreds of lines of source code.&lt;/p&gt;

&lt;p&gt;Stack traces in Clojure will often tell you little to nothing about what is causing the error, or more importantly, where it's coming from in your code.  Clojure functions are translated into Java classes when they're run through the JVM.  Often can't even see the name of the function that's throwing the error; names are mangled into things like &lt;code&gt;user$eval__1473.invoke&lt;/code&gt;, which is really really confusing when you use anonymous functions.&lt;/p&gt;

&lt;p&gt;Per &lt;a href=&quot;http://w01fe.com/blog/2008/12/debugging-clojure-with-slime/&quot;&gt;Jason Wolfe and Randall Schulz&lt;/a&gt; sometimes you can get a better stack trace if you dig a bit deeper:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;user&amp;gt; (.printStackTrace (.getCause *e))

java.lang.Exception: BARFED
    at user$foo__1503.invoke(NO_SOURCE_FILE:1)
    at user$eval__1509.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:4580)
    at clojure.core$eval__4016.invoke(core.clj:1728)
    at swank.commands.basic$eval_region__729.invoke(basic.clj:36)
    at swank.commands.basic$listener_eval__738.invoke(basic.clj:50)
    at clojure.lang.Var.invoke(Var.java:346)
    at user$eval__1506.invoke(NO_SOURCE_FILE)
    at clojure.lang.Compiler.eval(Compiler.java:4580)
    at clojure.core$eval__4016.invoke(core.clj:1728)
    at swank.core$eval_in_emacs_package__336.invoke(core.clj:55)
    at swank.core$eval_for_emacs__413.invoke(core.clj:123)
    at clojure.lang.Var.invoke(Var.java:354)
    at clojure.lang.AFn.applyToHelper(AFn.java:179)
    at clojure.lang.Var.applyTo(Var.java:463)
    at clojure.core$apply__3269.doInvoke(core.clj:390)
    at clojure.lang.RestFn.invoke(RestFn.java:428)
    at swank.core$eval_from_control__339.invoke(core.clj:62)
    at swank.core$eval_loop__342.invoke(core.clj:67)
    at swank.core$spawn_repl_thread__474$fn__505$fn__507.invoke(core.clj:173)
    at clojure.lang.AFn.applyToHelper(AFn.java:171)
    at clojure.lang.AFn.applyTo(AFn.java:164)
    at clojure.core$apply__3269.doInvoke(core.clj:390)
    at clojure.lang.RestFn.invoke(RestFn.java:428)
    at swank.core$spawn_repl_thread__474$fn__505.doInvoke(core.clj:170)
    at clojure.lang.RestFn.invoke(RestFn.java:402)
    at clojure.lang.AFn.run(AFn.java:37)
    at java.lang.Thread.run(Thread.java:619)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This one at least mentions &lt;code&gt;foo&lt;/code&gt; by name but you're still going to have a headache after a few hours of those stack traces.&lt;/p&gt;

&lt;h1&gt;Conclusion&lt;/h1&gt;

&lt;p&gt;So that's five things.  You will notice a common theme.  Most of these issues are inherited from the JVM.  This is to be expected, I suppose.  There's no way you can wrap one language in another without a few compromises.&lt;/p&gt;

&lt;p&gt;But these things aren't show-stoppers.  They are minor annoyances compared to the benefits you get from using the JVM, i.e. the good performance, tons of libraries, cross-platformness, and so on.  Clojure is fun enough to work with and wart-less enough that it took me well over two weeks to write this post.&lt;/p&gt;

&lt;p&gt;(If you were expecting me to mention &lt;code&gt;loop&lt;/code&gt;/&lt;code&gt;recur&lt;/code&gt; and the lack of native TCO in the JVM, you were PAINFULLY WRONG.  No one who uses Clojure loses sleep over native TCO.  It's largely a non-issue that's endlessly repeated by people looking for an excuse to pass up Clojure in favor of $their_pet_language.  To each his own, but I have never found myself caring the slightest about &lt;code&gt;loop&lt;/code&gt;/&lt;code&gt;recur&lt;/code&gt;.)&lt;/p&gt;</description>
	<pubDate>Wed, 17 Jun 2009 04:56:21 +0000</pubDate>
</item>
<item>
	<title>Dan Ballard: CL-PACK 0.1 released!</title>
	<guid isPermalink="false">http://www.mindstab.net/wordpress/?p=514</guid>
	<link>http://www.mindstab.net/wordpress/archives/514</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/dan_ballard.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;Well, as promised, I've finished the first version of the little Lisp project I've been working on and it's only mid June.  So with no further adu, I present cl-pack.&lt;/p&gt;
&lt;p&gt;cl-pack is a Common Lisp library supplying perl/php/ruby compatible pack() and unpack() functions so that Lisp can easily communicate with those languages via binary protocols or files.  pack() and unpack() take Lisp data and pack them into binary strings that can be stored or exchanged safely with other programs.  The (un)pack functions are handy utilities that most other common languages support and now so does Lisp.&lt;/p&gt;
&lt;p&gt;Cavets: This is the first release, therefor full coverage of all pack() syntax isn't yet available.  Most data type (all common ones) are supported, as are repeaters in the form of numbers and '*'.  Grouping with brackets and other extended syntax is not yet supported, but should be forthcoming in the next release.  Documentation is in cl-pack.lisp and if you want to see what it can do, also look at tests.lisp.  cl-pack is ASDF compatible so it should integrate with your system well.  It relies on ieee-floats but ships with a copy should your system be lacking one.&lt;/p&gt;
&lt;p&gt;You can get it at &lt;a href=&quot;http://ftp.mindstab.net/cl-pack/&quot;&gt;ftp.mindstab.net/cl-pack&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So yeah, this is what I've been working on for the past month or so.  Glad to get it out.  I plan to throw up some small web page for it in a few days and then start working on the remaining syntax support.&lt;/p&gt;
&lt;p&gt;Edit: I set up a page for cl-pack at CLiki &lt;a href=&quot;http://www.cliki.net/cl-pack&quot;&gt;http://www.cliki.net/cl-pack&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 16 Jun 2009 22:25:55 +0000</pubDate>
</item>
<item>
	<title>Allen Brooker: Amarok 2.1 Quick(-ish) Review</title>
	<guid isPermalink="false">http://allenjb.me.uk/?p=110</guid>
	<link>http://allenjb.me.uk/amarok-21-quick-ish-review</link>

	<description>&lt;p&gt;So I’ve just installed Amarok 2.1. Configured my collection location easy enough, downloaded the alarm script from the scripts library (haven’t tried it yet) and now I set about making it look how I want. I know exactly how I want Amarok 2 to look: Exactly like Amarok 1.4. &lt;/p&gt;
&lt;p&gt;I like my spreadsheet layout. It works perfectly for music management. I skipped 2.0 because it had no spreadsheet layout and we were promised it in 2.1. Except it isn’t there. You’re still forced into the 3 pane layout that tries to shove everything the world knows about the currently playing track down your throat.&lt;/p&gt;
&lt;p&gt;I &lt;em&gt;almost&lt;/em&gt; got rid of the 3 pane layout. When the left pane (collection / playlists / etc) is hidden, you can drag the splitter bar all the way to the left and the “now playing” pane disappears. Then I opened the collection pane again. &lt;em&gt;*poof*&lt;/em&gt; The “now playing” pane rears its ugly head again.&lt;/p&gt;
&lt;p&gt;I &lt;em&gt;hope&lt;/em&gt; this is a bug, and that it’ll be fixed in the next update, but at this point I wouldn’t bet my life on it.&lt;/p&gt;
&lt;p&gt;I then went to the playlists to set up the same dynamic playlists I have in Amarok 1.4 (”Everything” and several label-based lists that I switch between depending on my mood). While looking around, I did something which made Amarok very angry (whoring the CPU) and froze the UI. This is 2009 people: USE ANOTHER THREAD AND INFORM ME WHAT YOU’RE DOING!&lt;/p&gt;
&lt;p&gt;After several long minutes, Amarok finally came back to life and I continue my investigations. There’s no “entire collection” playlist. There’s no label based dynamic playlists. What we have instead is some weird bias stuff I don’t understand (and have no inclination to learn).&lt;/p&gt;
&lt;p&gt;On a hunch, I get a track into the playlist and get into the “Edit track details” window. There is no labels tab. I check the other tabs. There are no labels. Well done devs. Another useful feature dropped.&lt;/p&gt;
&lt;p&gt;So I won’t be moving my main desktop to Amarok 2 yet, because yet again the KDE developers have delivered something that’s half finished and missing useful features which were there in previous incarnations. To me it seems they’ve gone all gooey-eyed over how shiny it looks without a care in the world that people actually want some functionality out of it.&lt;/p&gt;
&lt;p&gt;I really wish I had the time to fork some of these projects (or rebuild them from scratch) and do it right. Amarok joins the KDE desktop on the list of projects I’d fork if I had time, both for the same reasons: OOOOHHHHHHH SHINY! What? You want to actually use our application? You don’t need to use it! Just sit back and enjoy the SHINY!&lt;/p&gt;
&lt;p&gt;Edit: All posts which recommend any media player which doesn’t have label-based dynamic playlist support will be deleted. This is the one key feature that I love about Amarok 1.4 and I won’t be moving to any media player that doesn’t have it.&lt;/p&gt;</description>
	<pubDate>Tue, 16 Jun 2009 17:17:19 +0000</pubDate>
</item>
<item>
	<title>Dirk R. Gently: Vim Basics</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=822</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/16/vim-basics/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;
&lt;/p&gt;&lt;div style=&quot;width: auto; border: solid #637dba; background-color: #d8e2fa; font-size: .9em; text-align: justify; color: #2a354f; border-width: .1em .8em; padding: .3em .6em;&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;This is not mine!  I don’t want to be harrassed, sued, or have kittens thrown at me.  This great piece I luckily stumbled upon when I was first trying to learn vim.  The &lt;a href=&quot;http://www.gentoo-wiki.info/HOWTO_VIM&quot; target=&quot;_blank&quot;&gt;original piece&lt;/a&gt; was part of the original Gentoo Wiki.  Because the archive does not have information on the author, I am writing this without his permission.  If you are the author please email and tell me what you think.  This piece has been slightly editing for clarification.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor ‘Vi’, with a more complete feature set. Vim is not a simple text editor like nano or pico. It does require some time to learn, and a great amount of time to master.&lt;/p&gt;
&lt;h3&gt;About Vim&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Vim is probably the most popular incarnation of its predecessor vi, but all vi packages are similar.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Vim is designed to make your fingers work as little as possible, and you should never have to use the mouse. This may seem odd, but once you master Vim, you’ll wonder why other apps don’t behave like it.&lt;/p&gt;
&lt;h4&gt;Features&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Vim has syntax highlighting.&lt;/li&gt;
&lt;li&gt;No-nonsense editor&lt;/li&gt;
&lt;li&gt;Command mode allows for simple, robust keybindings&lt;/li&gt;
&lt;li&gt;Vim is very powerful for advanced editing tasks&lt;/li&gt;
&lt;li&gt;vimtutor is a vim-based tutorial to learn… indeed… vim&lt;/li&gt;
&lt;li&gt;Uh…vim is good?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Starting Vim &lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;If you start vim with &lt;code&gt;vim somefile.txt&lt;/code&gt; you’ll see a blank document (providing that somefile.txt does not exist. If it does, you’ll see what’s in there). You will not be able to edit right away – you are in Command Mode. In this mode you are able to issue commands to vim with the keyboard.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div style=&quot;width: auto; border: solid #637dba; background-color: #d8e2fa; font-size: .9em; text-align: justify; color: #2a354f; border-width: .1em .8em; padding: .3em .6em;&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;Vim is an example of classic UNIX-style ware. This means that its not flashy, and it won’t hold your hand. It doesn’t come with built-in paperclips and games. It will allow you to get the job done however, and quickly too. Also, all commands are case sensitive. Sometimes the uppercase versions are “blunter” versions (&lt;b&gt;s&lt;/b&gt; will replace a character, &lt;b&gt;S&lt;/b&gt; will replace a line), other times they are completely different commands (&lt;b&gt;j&lt;/b&gt; will move down, J will join two lines).&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Let’s work on something. It can be any text file, really.  Open that file with vim:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;vim foo.txt&lt;/div&gt;
&lt;h3&gt;Basic Editing&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;You begin in command mode. If you’re not sure what mode you’re in, press &lt;b&gt;ESC&lt;/b&gt; to get to command mode.&lt;/p&gt;
&lt;p&gt;You insert text (stick it before the cursor) with the &lt;b&gt;i&lt;/b&gt; command. &lt;b&gt;I&lt;/b&gt; inserts text at the end of the line. You append text (place text after the cursor, what most people expect) with &lt;b&gt;a&lt;/b&gt;. Typing &lt;b&gt;A&lt;/b&gt; will place the cursor at the end of the line.&lt;/p&gt;
&lt;p&gt;Return to command mode at any time by pressing &lt;b&gt;ESC&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;Moving Around&lt;/h3&gt;
&lt;h4&gt;Single Characters&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;In Vim, you can move the cursor with the arrow keys, but that’s no very efficient is it? You’d have to move your right hand all the way from the standard typing position all the way to the arrow keys, and then back. Not fun.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;In vi you can move down by pressing &lt;b&gt;j&lt;/b&gt;. You can remember this because the “j” hangs down. You move the cursor back up by pressing &lt;b&gt;k&lt;/b&gt;. Left is &lt;b&gt;h&lt;/b&gt; (its left of the “j”), and right is &lt;b&gt;l&lt;/b&gt; (its right of the “k”).&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;b&gt;^&lt;/b&gt; will put the cursor at the beginning of the line, and &lt;b&gt;$&lt;/b&gt; will place it at the end.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;b&gt;^&lt;/b&gt; and &lt;b&gt;$&lt;/b&gt; are commmonly used in regular expressions to match begin and end of the line. Regular expressions are very powerfull and are commonly used in *nix environment, so maybe it is a little bit tricky now, but later you will notice “the idea” behind most of the key mappings. Other commands also use ^ and $ to move/do something from cursor to begin or end of the line.&lt;/p&gt;
&lt;h4&gt;Multiple Characters&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;To advance a word, press the &lt;b&gt;w&lt;/b&gt; key. &lt;b&gt;W&lt;/b&gt; will include more characters in what it thinks is a word. To go back a word, &lt;b&gt;b&lt;/b&gt; is used. Once again, &lt;b&gt;B&lt;/b&gt; will include more characters in what vim considers a word. To advance to the end of a word, use &lt;b&gt;e&lt;/b&gt;. If you haven’t guessed it, &lt;b&gt;E&lt;/b&gt; includes more characters to be a word.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;To advance to the beginning of a sentence, &lt;b&gt;(&lt;/b&gt; will get the job done. &lt;b&gt;)&lt;/b&gt; will do the opposite, moving to the end of a sentence. For an even bigger jump, &lt;b&gt;{&lt;/b&gt; will move the the begining a whole paragraph. &lt;b&gt;}&lt;/b&gt; will advance to the end of a whole paragraph.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;To advance to the header (top) of the screen, &lt;b&gt;H&lt;/b&gt; will get the job done. &lt;b&gt;M&lt;/b&gt; will advance to the middle of the screen, and &lt;b&gt;L&lt;/b&gt; will advance to the last (bottom).&lt;/p&gt;
&lt;h3&gt;The repetition department of the repetition department of the…&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Here’s an awesome thing: if you press a number before a command, then that command will be executed that number of times over (there are exceptions, but they still make sense, like the &lt;b&gt;s&lt;/b&gt; command). For example, pressing &lt;b&gt;3i&lt;/b&gt; then “&lt;code&gt;Help! &lt;/code&gt;” will print “&lt;code&gt;Help! Help! Help!&lt;/code&gt;“. Pressing &lt;b&gt;2}&lt;/b&gt; will advance you two paragraphs. This comes in handy with the next few commands…&lt;/p&gt;
&lt;h3&gt;Deleting&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;The &lt;b&gt;x&lt;/b&gt; command will delete the character under the cursor. &lt;b&gt;X&lt;/b&gt; will delete the character before the cursor. This is where those number functions get fun. &lt;b&gt;6x&lt;/b&gt; will delete 6 characters. Pressing &lt;b&gt;.&lt;/b&gt; (dot) will repeat the previous command. So, lets say you have the word foobar in a few places, but after thinking about it, you’d like there just to be “foo”. Move the cursor under the b, hit &lt;b&gt;3x&lt;/b&gt;, move to to the next foo bar and hit &lt;b&gt;.&lt;/b&gt; (dot). BAM!&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;The &lt;b&gt;d&lt;/b&gt; will tell Vim that you want to delete something. After pressing &lt;b&gt;d&lt;/b&gt;, you need to tell Vim what to delete. Here you can use the movement commands. &lt;b&gt;dW&lt;/b&gt; will delete up to the next word. &lt;b&gt;d^&lt;/b&gt; will delete up unto the beginning of the line. Prefacing the delete command with a number works well too: &lt;b&gt;3dW&lt;/b&gt; will delete the next three words. &lt;b&gt;D&lt;/b&gt; (uppercase) is a shortcut to delete until the end of the line (basically &lt;b&gt;d$&lt;/b&gt;). Pressing &lt;b&gt;dd&lt;/b&gt; will delete the whole line.&lt;/p&gt;
&lt;h3&gt;Undo and Redo&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;vim has a built-in cutboard. Actions and be undone and again redone. Use &lt;b&gt;u&lt;/b&gt; to undo and &lt;b&gt;ctrl+r&lt;/b&gt; to redo.&lt;/p&gt;
&lt;h3&gt;Advanced Editing&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Pressing &lt;b&gt;s&lt;/b&gt; will erase the current letter under the cursor, and place you in edit mode. &lt;b&gt;S&lt;/b&gt; will erase the whole line, and place you in edit mode. Pressing &lt;b&gt;5s&lt;/b&gt; will erase 5 letters and place you in edit mode.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Pressing &lt;b&gt;v&lt;/b&gt; will put you in visual mode . Here you can move around to select text, when you’re done, you press &lt;b&gt;y&lt;/b&gt; to yank the text into the buffer (copy), or you may use &lt;b&gt;c&lt;/b&gt; to cut. &lt;b&gt;p&lt;/b&gt; pastes after the cursor, &lt;b&gt;P&lt;/b&gt; pastes before. &lt;b&gt;V&lt;/b&gt;, Visual Line mode, is the same for entire lines. &lt;b&gt;c^v&lt;/b&gt; is for blocks of text.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;div style=&quot;width: auto; border: solid #637dba; background-color: #d8e2fa; font-size: .9em; text-align: justify; color: #2a354f; border-width: .1em .8em; padding: .3em .6em;&quot;&gt;&lt;strong&gt;Note: &lt;/strong&gt;Whenever you delete something, that something is placed inside your buffer and is available for pasting.&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Search and Replace&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;To search for a word or character in the file, simply use &lt;b&gt;/&lt;/b&gt; and then the characters your are searching for and press enter (e.g. &lt;code&gt;/myword&lt;/code&gt;). To view the next match in the search press &lt;b&gt;n&lt;/b&gt;.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;To search and replace use the substitute &lt;code&gt;:s/&lt;/code&gt; command. The syntax is: &lt;code&gt;[range]s//]/[arguments]&lt;/code&gt;.  Some examples:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;Command       Outcome&lt;br /&gt;
:s/xxx/yyy/	  Replace xxx with yyy at the first occurence&lt;br /&gt;
:s/xxx/yyy/g	Replace xxx with yyy global (whole sentence)&lt;br /&gt;
:s/xxx/yyy/gc	Replace xxx with yyy global with confirm&lt;br /&gt;
:%s/xxx/yyy/g	Replace xxx with yyy global in the whole file&lt;/div&gt;
&lt;p align=&quot;justify&quot;&gt;You can use the global &lt;code&gt;:g/&lt;/code&gt; command to search for patterns and execute a command for each hit. The syntax is: &lt;code&gt;:[range]:g//[cmd]&lt;/code&gt;.  Some examples:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #a7ba63; background-color: #f3fad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .6em;&quot;&gt;Command   Outcome&lt;br /&gt;
:g/^#/d   Delete all lines that begins with #&lt;br /&gt;
:g/^$/d   Delete all lines that are empty&lt;/div&gt;
&lt;p&gt;To replace the current word. Place the cursor on the word and execute the command &lt;b&gt;cw&lt;/b&gt;. This will delete the word and change the mode to “input”.  To replace a letter use &lt;b&gt;r&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;Other things&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Vim will auto indent. This can be annoying when you have to paste something that contains a space or tab at the beginning of the line. In command mode typing &lt;code&gt;:set paste&lt;/code&gt; will disable this. Typing &lt;code&gt;:set nopaste&lt;/code&gt; will reenable it.&lt;/p&gt;
&lt;h3&gt;Saving and Quitting&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;Write a file with &lt;b&gt;:w&lt;/b&gt; or if the file doesn’t have a name &lt;code&gt;:w &amp;lt;filename.txt&amp;gt;&lt;/code&gt;. Quitting done with &lt;b&gt;:q&lt;/b&gt;. If you choose not to save your changes, use &lt;b&gt;:q!&lt;/b&gt;. To save and quit &lt;b&gt;:&lt;span&gt;x&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;Using Tabs&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;If you want to edit multiple documents at once you can use tabs to make it easier:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #73ba63; background-color: #defad8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;vim -p &amp;lt;document 1&amp;gt; &amp;lt;document 2&amp;gt;…&lt;/div&gt;
&lt;h3&gt;Configuration File&lt;/h3&gt;
&lt;p&gt;vim is ultimably customizable and can be used for many different program languages, personal perferences… and is done so in the configuration file.  There’s alot you can do in a &lt;code&gt;.vimrc&lt;/code&gt; file, for new users here’s a basic one:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.archive.org/download/vimrc/vimrc.zip&quot;&gt;.vimrc&lt;/a&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Place in your home directory.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p align=&quot;justify&quot;&gt;You now know how to use Vim to do slightly more than you could do in a simple editor. As your knowledge of Vim grows, you will be able to use it highly efficiently and do amazing things with text files. And most importantly, you’ll feel right at home playing nethack.&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/822/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/822/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/822/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/822/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/822/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/822/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/822/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/822/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/822/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/822/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=822&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 16 Jun 2009 15:28:58 +0000</pubDate>
</item>
<item>
	<title>Roderick B. Greening: usb-creator-kde - update and screenie</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-3298278771907154708.post-6413259935603622630</guid>
	<link>http://roderick-greening.blogspot.com/2009/06/usb-creator-kde-update-and-screenie.html</link>

	<description>The creator is steadily moving along. Right now the main stumbling blocks are gobject calls in the backend and the use of a DBusGMainLoop in the backend.&lt;br /&gt;&lt;br /&gt;Together, these constitute a non-working backend for PyKDE/PyQt. KCrash has become a nightmare.&lt;br /&gt;&lt;br /&gt;In order to get around this, we need to pull out the gobject and DBusGMainLoop and move them somewhere related to the frontend. At that point I can re-implement the bits I require as PyKDE/PyQt code, while maintaining a common backend code base.&lt;br /&gt;&lt;br /&gt;I've taken the first step, and moved DBusGMainLoop to the gtk frontend via a wrapper. I have re-implemented similar functionality via the same wrapper in the kde frontend using DBusQtMainLoop. &lt;br /&gt;&lt;br /&gt;Next on the list is to rip out the gobject calls... I suspect a couple of days before I get that all figured out... (unless I get a real dose of inspiration).&lt;br /&gt;&lt;br /&gt;Anyway, here's the screenshot as promised, so you know it's not all pie-in-the-sky :)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_ScFZQ0ISIX0/Sje6EZJicGI/AAAAAAAAA78/tb2ma7lEcU4/s1600-h/usbcreatorkde.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_ScFZQ0ISIX0/Sje6EZJicGI/AAAAAAAAA78/tb2ma7lEcU4/s320/usbcreatorkde.png&quot; style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; cursor: hand; width: 320px; height: 273px;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5347947667158888546&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3298278771907154708-6413259935603622630?l=roderick-greening.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 16 Jun 2009 15:21:00 +0000</pubDate>
	<author>noreply@blogger.com (Roderick Greening)</author>
</item>
<item>
	<title>Roderick B. Greening: usb-creator-kde... for karmic</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-3298278771907154708.post-2194754541626607045</guid>
	<link>http://roderick-greening.blogspot.com/2009/06/usb-creator-kde-for-karmic.html</link>

	<description>So, during UDS, the Kubuntu team decided it would be nice to work on making Kubuntu easier to install on netbooks.&lt;br /&gt;&lt;br /&gt;The are several things that need to be adjusted to make the netbook experience enjoyable, but the first real thing required is a native client for putting a Kubuntu desktop image into a usb stick.&lt;br /&gt;&lt;br /&gt;There already exists a PyGtk front-end, but no PyKDE one. At UDS I decided to take on the task of porting the existing PyGTK client to PyKDE. &lt;br /&gt;&lt;br /&gt;At this point, I have ported much of the required code base to support a native client for Kubuntu. There are still some bugs to fix, and some of the new code for the PyGTK front-end does not yet work 100%, and hence neither does the PyKDE front-end.&lt;br /&gt;&lt;br /&gt;If anyone is interested in looking at the code and feels like offering advice, it can be found here: &lt;a href=&quot;https://launchpad.net/usb-creator&quot;&gt;https://launchpad.net/usb-creator&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To check out the code: bzr branch lp:usb-creator&lt;br /&gt;&lt;br /&gt;Anyway, I am working closely with the usb-creator team, and hope to get this working/completed within the next couple of weeks.&lt;br /&gt;&lt;br /&gt;Thanks to all who have helped thus far.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/3298278771907154708-2194754541626607045?l=roderick-greening.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 15 Jun 2009 13:55:00 +0000</pubDate>
	<author>noreply@blogger.com (Roderick Greening)</author>
</item>
<item>
	<title>Jürgen Geuter: You know your browser sucks, when ... a story of inhumane advertising</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/312-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/312-You-know-your-browser-sucks,-when-...-a-story-of-inhumane-advertising/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div style=&quot;width: 240; float: right; text-align: right; font-size: xx-small; border-width: 1px; border-color: #444444; border-style: solid; padding: 3px; margin-bottom: 30px; margin-left: 30px;&quot;&gt;&lt;img src=&quot;http://farm1.static.flickr.com/49/142649790_e3a40987a4_m.jpg&quot; alt=&quot;Will eat for food&quot; height=&quot;180&quot; width=&quot;240&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;http://flickr.com/photos/altemark/142649790/&quot;&gt;Will eat for food&lt;/a&gt;©&lt;a href=&quot;http://flickr.com/people/altemark&quot;&gt;mikael altemark&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by/2.0/&quot;&gt;&lt;img height=&quot;15&quot; src=&quot;http://i.creativecommons.org/l/by/2.0/80x15.png&quot; title=&quot;used under a Creative Commons Attribution License&quot; border=&quot;0&quot; width=&quot;80&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Microsoft, a software company from Redmond, is probably not exactly the company that people think about when the term &quot;philanthropy&quot; comes up, but &lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gates&quot;&gt;Mr. Gates&lt;/a&gt;, former CEO of Microsoft, is in fact know as one, his &lt;a href=&quot;http://en.wikipedia.org/wiki/Bill_Gates#Philanthropy&quot;&gt;Wikipedia Page&lt;/a&gt; lists a bunch of his activities.&lt;br /&gt;
&lt;br /&gt;
Now the Microsoft people seem to have found their own social conscience and want to help people with their new campaign called &quot;&lt;a href=&quot;http://www.browserforthebetter.com/index-htm.html&quot;&gt;Browser for the Better&lt;/a&gt;, or do they?&lt;br /&gt;
&lt;br /&gt;
The idea is simple: Microsoft has a browser called Internet Explorer. With the campaign MS promises to donate &quot;8 meals&quot; ($1.15) to the &quot;&lt;a href=&quot;http://feedingamerica.org/default.aspx&quot;&gt;Feeding America&lt;/a&gt;&quot; organization for every download of Internet Explorer 8. Great, isn't it?&lt;br /&gt;
&lt;br /&gt;
If I was mean (which I am not) I'd say MS has to guilt-trip people into downloading their browser cause the features alone won't make anyone use it. But what I want to say is that I find the whole thing bloody tasteless: If you want to help out a charity that's awesome and I applaud you, if you combine that with an activity that's also fine (like offering to donate a certain amount of money for every kilometer people run for example). But what we have here is a completely different story.&lt;br /&gt;
&lt;br /&gt;
Naive minds might say: &quot;Downloading doesn't cost you anything so you can help poorer people for free!&quot; but that's not what happens, the situation of poor and hungry people is exploited to gain &quot;market penetration&quot; for a certain product. People will download the software more than once to enlarge the donation, each download is counted and in 6 months we get those numbers presented on a silver plate claiming that IE6 has 134.5% market penetration cause so many people downloaded it. It's a really cheap way to game statistics and those numbers (as random as they obviously are) are worth a lot of money: If you have big market penetration companies will tailor their web-based systems to your product, probably making it incompatible to other competing products, which supports the quasi-monopoly that Microsoft has on the desktop PC market.&lt;br /&gt;
&lt;br /&gt;
We see that strategy a lot: In Germany a big brewery promises to buy a certain area of rainforest for every crate of beer. You spend a bit of money on something good and connect that with your product which is obviously what advertisers want: The name &quot;Browser for the Better&quot; is not an accident, you directly link your browser product to the evaluation &quot;better&quot;.&lt;br /&gt;
&lt;br /&gt;
The naive approach is a typical example of the end justifying the means: Poor people get food/money so we &quot;shouldn't&quot; complain when those resources were acquired unethically. But it's about respect just as it is about food or money. Using poorer people that way for your own gain is disrespectful towards those people it shows that you do not in fact care about them, it shows that you just want to use them, that you don't consider them as your equals as human beings but as assets in your marketing campaign.&lt;br /&gt;
&lt;br /&gt;
Giving help to people is absolutely awesome but if you disrespect them at the same time it loses all its beauty and turns into something disgusting that taints the &quot;helper&quot; as much as the one who got the help.&lt;br /&gt;</description>
	<pubDate>Mon, 15 Jun 2009 10:47:31 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>
<item>
	<title>Kevin Bowling: Kernel 2.6.30 is a Go</title>
	<guid isPermalink="false">http://www.kev009.com/wp/?p=264</guid>
	<link>http://www.kev009.com/wp/2009/06/kernel-2630-is-a-go/</link>

	<description>&lt;p&gt;I initially thought this would be a rather uninteresting release, especially when we learned Xen dom0 didn’t make the cut.  Following the changelog line-by-line, this one still didn’t seem very interesting to me.  But analyzing the sum of parts, I have to consider 2.6.30 a ‘golden’ kernel — certainly the best in a while.&lt;/p&gt;
&lt;p&gt;There is solid improvement top to bottom here.  A lot of the new KMS/DRM stuff from Fedora 11 has worked its way up stream.  File system work is too much to mention, but highlights include relatime, writeback by default for Extfs, NILFS2, Btrfs development and more. FSCache works as advertised.  Also some groundwork for NFS 4.1, which will eventually bring us pNFS.&lt;/p&gt;
&lt;p&gt;Boot speed seems fast as ever, but I haven’t taken the time to do any empirical analysis.  Your results here will be hardware dependent but async initialization of certain subsystems is a welcome move in the right direction.&lt;/p&gt;
&lt;p&gt;Basically, a solid release with a good balance of new stuff but mainly refinement of existing systems and merging of longstanding patches.&lt;/p&gt;
&lt;p&gt;Kernel Newbies has, as usual, a great change summary: &lt;a href=&quot;http://kernelnewbies.org/Linux_2_6_30&quot; target=&quot;_blank&quot;&gt;http://kernelnewbies.org/Linux_2_6_30&lt;/a&gt;&lt;/p&gt;



Share and Enjoy:


	&lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;title=Kernel%202.6.30%20is%20a%20Go&amp;amp;bodytext=I%20initially%20thought%20this%20would%20be%20a%20rather%20uninteresting%20release%2C%20especially%20when%20we%20learned%20Xen%20dom0%20didn%27t%20make%20the%20cut.%20%20Following%20the%20changelog%20line-by-line%2C%20this%20one%20still%20didn%27t%20seem%20very%20interesting%20to%20me.%20%20But%20analyzing%20the%20sum%20of%20parts%2C%20I%20ha&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Digg&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/digg.png&quot; alt=&quot;Digg&quot; class=&quot;sociable-hovers&quot; title=&quot;Digg&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;title=Kernel%202.6.30%20is%20a%20Go&amp;amp;notes=I%20initially%20thought%20this%20would%20be%20a%20rather%20uninteresting%20release%2C%20especially%20when%20we%20learned%20Xen%20dom0%20didn%27t%20make%20the%20cut.%20%20Following%20the%20changelog%20line-by-line%2C%20this%20one%20still%20didn%27t%20seem%20very%20interesting%20to%20me.%20%20But%20analyzing%20the%20sum%20of%20parts%2C%20I%20ha&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/delicious.png&quot; alt=&quot;del.icio.us&quot; class=&quot;sociable-hovers&quot; title=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://slashdot.org/bookmark.pl?title=Kernel%202.6.30%20is%20a%20Go&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Slashdot&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/slashdot.png&quot; alt=&quot;Slashdot&quot; class=&quot;sociable-hovers&quot; title=&quot;Slashdot&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;t=Kernel%202.6.30%20is%20a%20Go&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Facebook&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/facebook.png&quot; alt=&quot;Facebook&quot; class=&quot;sociable-hovers&quot; title=&quot;Facebook&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://reddit.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;title=Kernel%202.6.30%20is%20a%20Go&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/reddit.png&quot; alt=&quot;Reddit&quot; class=&quot;sociable-hovers&quot; title=&quot;Reddit&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;title=Kernel%202.6.30%20is%20a%20Go&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;StumbleUpon&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/stumbleupon.png&quot; alt=&quot;StumbleUpon&quot; class=&quot;sociable-hovers&quot; title=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&amp;amp;title=Kernel%202.6.30%20is%20a%20Go&amp;amp;annotation=I%20initially%20thought%20this%20would%20be%20a%20rather%20uninteresting%20release%2C%20especially%20when%20we%20learned%20Xen%20dom0%20didn%27t%20make%20the%20cut.%20%20Following%20the%20changelog%20line-by-line%2C%20this%20one%20still%20didn%27t%20seem%20very%20interesting%20to%20me.%20%20But%20analyzing%20the%20sum%20of%20parts%2C%20I%20ha&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/googlebookmark.png&quot; alt=&quot;Google Bookmarks&quot; class=&quot;sociable-hovers&quot; title=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Print this article!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/printfriendly.png&quot; alt=&quot;Print this article!&quot; class=&quot;sociable-hovers&quot; title=&quot;Print this article!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;mailto:?subject=Kernel%202.6.30%20is%20a%20Go&amp;amp;body=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;E-mail this story to a friend!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/email_link.png&quot; alt=&quot;E-mail this story to a friend!&quot; class=&quot;sociable-hovers&quot; title=&quot;E-mail this story to a friend!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/getpf?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Turn this article into a PDF!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/pdf.png&quot; alt=&quot;Turn this article into a PDF!&quot; class=&quot;sociable-hovers&quot; title=&quot;Turn this article into a PDF!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://twitter.com/home?status=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkernel-2630-is-a-go%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;TwitThis&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/twitter.png&quot; alt=&quot;TwitThis&quot; class=&quot;sociable-hovers&quot; title=&quot;TwitThis&quot; /&gt;&lt;/a&gt;


&lt;br /&gt;&lt;br /&gt;

&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2009/06/kernel-developers-dont-get-xen/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Kernel developers don’t get Xen&quot;&gt;Kernel developers don’t get Xen&lt;/a&gt; &lt;small&gt;The recent bruhaha surrounding Xen on LKML (http://lkml.org/lkml/2009/6/2/475) is really...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2007/04/linux-kernel-2621-and-tickless-kernel-config_no_hz/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: Linux Kernel 2.6.21 and Tickless Kernel (CONFIG_NO_HZ)&quot;&gt;Linux Kernel 2.6.21 and Tickless Kernel (CONFIG_NO_HZ)&lt;/a&gt; &lt;small&gt;So Linux kernel 2.6.21 is finally out and all the...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2009/04/fs-cache-merged-in-kernel-2630/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: FS-Cache merged in Kernel 2.6.30&quot;&gt;FS-Cache merged in Kernel 2.6.30&lt;/a&gt; &lt;small&gt;FS-Cache has been merged into the upcoming kernel 2.6.30.  This...&lt;/small&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Mon, 15 Jun 2009 00:46:03 +0000</pubDate>
</item>
<item>
	<title>Thomas Capricelli: tags displayed in hg activity extension</title>
	<guid isPermalink="false">http://www.freehackers.org/thomas/?p=216</guid>
	<link>http://www.freehackers.org/thomas/2009/06/15/tags-displayed-in-hg-activity-extension/</link>

	<description>&lt;p&gt;Today i have added a feature to my &lt;a href=&quot;http://labs.freehackers.org/projects/hgactivity/wiki&quot; target=&quot;_blank&quot;&gt;hg activity extension&lt;/a&gt;. I have wanted to have this for long : the tags are now displayed on the graph. Here are two examples, one of the project itself, and another one on the mercurial repository, but only  for the last months.&lt;/p&gt;
&lt;p&gt;The first one was generated by:&lt;/p&gt;
&lt;pre&gt;hg activity --splitauthors --maxauthors 5 --width 1500 --height 900&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.freehackers.org/thomas/wp-content/uploads/2009/06/hgactivity.png&quot;&gt;&lt;img src=&quot;http://www.freehackers.org/thomas/wp-content/uploads/2009/06/hgactivity-300x180.png&quot; title=&quot;hgactivity&quot; height=&quot;180&quot; width=&quot;300&quot; alt=&quot;hgactivity&quot; class=&quot;aligncenter size-medium wp-image-217&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And the second one by:&lt;/p&gt;
&lt;pre&gt; hg activity --datemin 2008-01-01 --splitauthors --maxauthors 5 --width 1500 --height 900&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://www.freehackers.org/thomas/wp-content/uploads/2009/06/mercurial.png&quot;&gt;&lt;img src=&quot;http://www.freehackers.org/thomas/wp-content/uploads/2009/06/mercurial-300x180.png&quot; title=&quot;mercurial&quot; height=&quot;180&quot; width=&quot;300&quot; alt=&quot;mercurial&quot; class=&quot;aligncenter size-medium wp-image-218&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Sun, 14 Jun 2009 23:49:57 +0000</pubDate>
</item>
<item>
	<title>Dan Fego: Software Suspend on GNOME Desktop</title>
	<guid isPermalink="false">http://blog.danfego.net/?p=262</guid>
	<link>http://blog.danfego.net/2009/06/software-suspend-on-gnome-desktop/</link>

	<description>&lt;p&gt;I just wrote a short article on the above topic, and then, not long before hitting “Publish,” I find &lt;a href=&quot;http://howto.fronck.dk/howto:gentoo:pm-block&quot;&gt;this article&lt;/a&gt; that has the answer in short, simple terms. So if you’re having any issues having the “Suspend” dialog work on your GNOME desktop, give the above link a try. I figure I should spare everyone from my often verbose ramblings when someone’s already got the answer. &lt;img src=&quot;http://blog.danfego.net/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Sun, 14 Jun 2009 13:59:30 +0000</pubDate>
</item>
<item>
	<title>Martin Matusiak: networktest: improved network detection</title>
	<guid isPermalink="false">http://www.matusiak.eu/numerodix/blog/?p=2327</guid>
	<link>http://feedproxy.google.com/~r/numerodix/~3/Sfahtx6uirA/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/MartinMatusiak.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;As a follow up to the &lt;a href=&quot;http://www.matusiak.eu/numerodix/blog/index.php/2008/11/17/havenet-network-perimeter-test/&quot;&gt;network perimeter test&lt;/a&gt; I have expanded the code a bit. It now shows also the interface names to help explain what’s what, and it also tries to match the gateway to the ip addresses found. The strategy, however, has changed somewhat. At first the goal was to find all the networks and proceed from there. I decided this was not really the best approach, given that a misconfigured network connection could possibly contain, say, a gateway not on any network. It therefore seems more sensible to display the information read from &lt;code&gt;route&lt;/code&gt; and &lt;code&gt;ifconfig&lt;/code&gt; as is than try to infer too much from it.&lt;/p&gt;
&lt;p&gt;Here for instance the loopback ip is on a network that is not known, but still a working ip nonetheless.&lt;/p&gt;
&lt;p&gt;The probing strategy also includes &lt;code&gt;nmap&lt;/code&gt; (if available) probes to have some redundancy in the process (say for instance outbound icmp is blocked by the firewall). And the code has been made more portable, so on platforms other than linux (where linux networking tools aren’t present) there is a graceful degradation of features.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.matusiak.eu/numerodix/blog/wp-content/uploads/havenet1.png&quot; title=&quot;havenet1&quot; height=&quot;275&quot; width=&quot;474&quot; alt=&quot;havenet1&quot; class=&quot;aligncenter size-full wp-image-2326&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Naturally, much networking happens over wireless these days, so there’s also a &lt;code&gt;wifi&lt;/code&gt; command that displays the status of all the wireless interfaces. This is again nothing more than is revealed by &lt;code&gt;iwconfig&lt;/code&gt;, but in a considerably more human readable form I would argue.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.matusiak.eu/numerodix/blog/wp-content/uploads/wifi.png&quot; title=&quot;wifi&quot; height=&quot;96&quot; width=&quot;491&quot; alt=&quot;wifi&quot; class=&quot;aligncenter size-full wp-image-2332&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Then there &lt;code&gt;wifiscan&lt;/code&gt;, which not surprisingly scans for access points. The output is a considerably more space efficient and usable counterpart to what &lt;code&gt;iwlist&lt;/code&gt; prints.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.matusiak.eu/numerodix/blog/wp-content/uploads/wifiscan.png&quot; title=&quot;wifiscan&quot; height=&quot;174&quot; width=&quot;498&quot; alt=&quot;wifiscan&quot; class=&quot;aligncenter size-full wp-image-2333&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One thing to keep in mind about these detection commands is that many of the system tools being used offer less (or none) information to unprivileged users, so running these commands as root may produce fuller output.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.matusiak.eu/numerodix/blog/wp-content/uploads/networktest-0.2.tar.gz&quot;&gt;networktest-0.2.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/numerodix/~4/Sfahtx6uirA&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 13 Jun 2009 22:22:03 +0000</pubDate>
</item>
<item>
	<title>Dan Fego: Chat Logs and “The Cloud”</title>
	<guid isPermalink="false">http://blog.danfego.net/?p=260</guid>
	<link>http://blog.danfego.net/2009/06/chat-logs-and-the-cloud/</link>

	<description>&lt;p&gt;At the end of 2007, Google did a wonderful thing and added AIM to their built-in chat in Gmail. This was an awesome convenience, since I could now chat with both my used protocols right from my email window. Not to mention I got a nice consolidation of my chat logs accessible from anywhere to boot. Of course, I was leaving all the conveniences of my desktop client behind, such as not being dependent on my browser window to chat. But it seemed all worthwhile, since I usually had a browser window open anyway, and I didn’t have a ton of spare resources (RAM, screen real estate) on my laptop, my sole machine.&lt;/p&gt;
&lt;p&gt;Now I’m in the situation where I want to go back to the desktop client. I’ve got a nice new computer with lots of RAM and lots of screen real estate. But I’m now slightly dismayed, because my wonderfully accessible chat logs are now no longer going to be “all” with my mail. I say “all” because before a certain point they weren’t, but from that point on, I was golden. Now, if I switch back, I’ll have all my logs to a certain point on my computer, then a bunch in “the cloud,” and then most of them on my desktop, and some in my browser, for when I’m away from my computer. Not ideal.&lt;/p&gt;
&lt;p&gt;What I really want it some “neutral” location for my logs that both the Gmail client and my desktop application (currently Pidgin) will respect and send their logs to. I’ve got web space out there, so I’ve got a location, but how to make it work? One way I could think of is to run something like a Greasemonkey script which keeps track of what it’s sent over time (so when I come back to the computer it’s installed on, it sends the new conversations) and sends new conversations off periodically. So that could be done with Greasemonkey, or with a Firefox Plugin. A modification to Pidgin sounds relatively trivial to me at this point, at least compared to writing a Firefox plugin. In any case, I’m going to ponder this… Any thoughts on the matter, technical or otherwise, are welcome.&lt;/p&gt;</description>
	<pubDate>Sat, 13 Jun 2009 22:13:07 +0000</pubDate>
</item>
<item>
	<title>George Kargiotakis: Switching from Iceweasel to Swiftfox on debian</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=598</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/13/switching-from-iceweasel-to-swiftfox-on-debian/</link>

	<description>&lt;p&gt;I’ve bumped into an Iceweasel + adblock plus bug: &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=525938&quot;&gt;iceweasel: AdBlock Plus (1.0.2) custom element hiding filters does not work&lt;/a&gt;&lt;br /&gt;
It looks like Iceweasel from the stable branch of debian (version 3.0.6-1) has a problem hiding elements from websites. That makes some parts of adblock plus useless and ads start appearing on various websites.&lt;br /&gt;
What’s weird is that the problem only appears on Iceweasel and not on official Firefox (as the bug report says).&lt;/p&gt;
&lt;p&gt;My options were to either a) switch to a testing/unstable version of Iceweasel from debian, b) get a binary package from firefox website or c) get another custom version. I chose method c) and I got &lt;a href=&quot;http://getswiftfox.com/&quot;&gt;swiftfox&lt;/a&gt;. Since Swiftfox provides a nice &lt;a href=&quot;http://getswiftfox.com/deb.htm&quot;&gt;debian repo&lt;/a&gt; it was really easy to install and test. The whole experiment got even more interesting since swiftfox provides builds for firefox version 3.5…&lt;/p&gt;
&lt;p&gt;After a &lt;code&gt;update-alternatives --config x-www-browser&lt;/code&gt; I was ready to test it.&lt;br /&gt;
Swiftfox 3.5b4 works great with adblock plus and it even feels a bit faster. I can’t really tell for sure though. The only addon I had to reinstall was &lt;a href=&quot;http://getfiregpg.org/&quot;&gt;firegpg&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My impressions are great so far and I think I will keep it, at least until the bug mentioned gets resolved somehow on the stable branch.&lt;/p&gt;</description>
	<pubDate>Sat, 13 Jun 2009 08:39:09 +0000</pubDate>
</item>
<item>
	<title>Dirk R. Gently: Testdrive a LiveCD with VirtualBox</title>
	<guid isPermalink="false">http://linuxtidbits.wordpress.com/?p=817</guid>
	<link>http://linuxtidbits.wordpress.com/2009/06/12/test-a-livecd-with-virtualbox/</link>

	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p align=&quot;justify&quot;&gt;Results will vary depending on your machine but it may be quicker to burn and reboot to testdrive a LiveCD.  If you want to try VirtualBox though, this is how you do it.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;I decided to take a look at Fedora 11 and I thought that if I wanted to take a look at other LiveCDs in the future may as well set up VirtualBox and save myself the time of burning and restarting to take the look at them.  Virtualbox is a bit slow but not terribly though.  Note: I don’t have virtualization on my CPU though so load-times may alot better with it.&lt;/p&gt;
&lt;h4&gt;Install VirtualBox&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;Virtualbox has been getting some good reviews and is easy to use.  Locate you distro’s documentation and find out how to do this.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;Once Virtualbox has been installed load the module:&lt;/p&gt;
&lt;div style=&quot;overflow: auto; width: auto; border: solid #ba6363; background-color: #fad8d8; font-family: 'DejaVu Sans Mono', Monospace, Consolas; font-size: .9em; white-space: prewrap; border-width: .1em .1em .1em .8em; padding: .2em .4em .2em .6em;&quot;&gt;modprobe vboxdrv&lt;/div&gt;
&lt;h4&gt;Start VirtualBox&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;VirtualBox in the KDE menu is under System &amp;gt; Sun VirtualBox, or you can just type &lt;code&gt;VirtualBox&lt;/code&gt; in a terminal.&lt;/p&gt;
&lt;h4&gt;Setup&lt;/h4&gt;
&lt;p align=&quot;justify&quot;&gt;Click ‘New’ in the VirtualBox window, name it, select OS type and version.  Select base memory size as 512MB (most operating systems will need at least 512MB to function properly).  Follow the rest of the steps to create a hard disk image.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;When the new image has been created click ‘Settings’ then CD/DVD-ROM and check ‘Mount CD/DVD Drive’.  Then add the ISO image.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;In the ‘General’ dialogue, select the Advance tab and check ‘Enable IO APIC’.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;That’s it.  You should now be able to load a LiveCD from VirtualBox.&lt;/p&gt;
&lt;h4&gt;Going Further&lt;/h4&gt;
&lt;p&gt;I wrote a post on top of this about creating you own LiveUSB:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://linuxtidbits.wordpress.com/2009/06/20/customizable-liveusb/&quot;&gt;Customizable LiveUSB&lt;/a&gt;&lt;/p&gt;
  &lt;a href=&quot;http://feeds.wordpress.com/1.0/gocomments/linuxtidbits.wordpress.com/817/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/comments/linuxtidbits.wordpress.com/817/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godelicious/linuxtidbits.wordpress.com/817/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/delicious/linuxtidbits.wordpress.com/817/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/gostumble/linuxtidbits.wordpress.com/817/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/stumble/linuxtidbits.wordpress.com/817/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/godigg/linuxtidbits.wordpress.com/817/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/digg/linuxtidbits.wordpress.com/817/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://feeds.wordpress.com/1.0/goreddit/linuxtidbits.wordpress.com/817/&quot; rel=&quot;nofollow&quot;&gt;&lt;img src=&quot;http://feeds.wordpress.com/1.0/reddit/linuxtidbits.wordpress.com/817/&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;img src=&quot;http://stats.wordpress.com/b.gif?host=linuxtidbits.wordpress.com&amp;amp;blog=1210515&amp;amp;post=817&amp;amp;subd=linuxtidbits&amp;amp;ref=&amp;amp;feed=1&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 13 Jun 2009 03:48:21 +0000</pubDate>
</item>
<item>
	<title>Jason Jones: Vista Dualboot Gotcha</title>
	<guid isPermalink="false">http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4472</guid>
	<link>http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4472</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/jason_jones.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;I recently bought a Toshiba Laptop (a Satellite &lt;span class=&quot;model&quot;&gt;A305-S6916&lt;/span&gt;), and with it, came Vista Home Premium.&lt;br /&gt;
&lt;br /&gt;
I, of course, immediately wiped the hard drive clean, took a shower for having touched a computer with Vista pre-installed on it, then proceeded to partition it, and install gentoo Linux on it.&lt;br /&gt;
&lt;br /&gt;
The compatibility with Linux of the peripherals on this machine is - well - amazing.  So far, I've been able to get 100% of them working in Linux with relative ease.  Even the webcam works with the uvc driver!&lt;br /&gt;
&lt;br /&gt;
So, after buying my iPhone and realizing that itunes is &lt;strong&gt;&lt;em&gt;NOT&lt;/em&gt;&lt;/strong&gt; compatible with Linux, wine, or anything else as of this writing, I got to thinking about my predicament.&lt;br /&gt;
&lt;br /&gt;
&quot;Hmmm...  Vista came with my laptop, didn't it.&quot;  I shuddered at the thought...  Yet the logic persisted.  &quot;My options are the following: 1) - Spend money on Windows XP and install that.  2) - Spend money to buy some sort of portable mac-compatible computer with OS-X on it. 3) - *gulp* - Use the version of Vista that came with your computer and install that on one of the partitions.&lt;br /&gt;
&lt;br /&gt;
Obviously, option 3 won.  Holy - freaking - cow.  I'm going to have a computer with Vista on it.  For shame.&lt;br /&gt;
&lt;br /&gt;
So, I started doing some research because, of course, the Toshiba laptop didn't come with any Vista install disks, so I downloaded an ISO of the OEM version of Vista (evidently, all versions of vista come on all Vista disks.  The key used simply unlocks the version you buy.).  &lt;strong&gt;&lt;em&gt;It is important to use the OEM version, and not the retail version if you are using a laptop with Vista pre-installed.  The retail version won't work.&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
So, I burned the DVD ISO, and plugged in the disk.  It came up with the usual Microsoft licensing crap, which I scoffed at (yet clicked), and I was off to the &quot;please select the disk&quot; screen.&lt;br /&gt;
&lt;br /&gt;
At this point, I selected my disk, gave in the &quot;next&quot; click-a-roonie, and it came up with the following vomit:&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;em&gt;Windows is unable to find a system volume that meets its criteria for installation&lt;/em&gt;&quot;&lt;br /&gt;
&lt;br /&gt;
Wha...!?&lt;br /&gt;
&lt;br /&gt;
After a bit of googling, I found that Vista requires that the partition be &quot;active&quot;.  I used a utility called &quot;Diskpart.exe&quot; which comes with the install-disk (read &lt;a href=&quot;http://support.microsoft.com/kb/927520&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://support.microsoft.com/kb/300415/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt; for more info on this utility) to select and &quot;activate&quot; the partition, and then continued on with the installation.&lt;br /&gt;
&lt;br /&gt;
As soon as the partition was activated, it went on to install Vista, and that's where I am right now.  So far, so good.&lt;br /&gt;
&lt;br /&gt;
The next step will be to recover the now-destroyed MBR section of the hard drive which Vista overwrote, by putting GRUB back on.&lt;br /&gt;
&lt;br /&gt;
I assume everything will be peachy from there on.&lt;br /&gt;
&lt;br /&gt;
I'll update if anything else is needed.&lt;br /&gt;
&lt;br /&gt;
Oh yeah - I also assume that you can &quot;activate&quot; the partition using fdisk by using the &quot;a&quot; command.  Not sure if it's the same thing, though.</description>
	<pubDate>Fri, 12 Jun 2009 14:20:38 +0000</pubDate>
</item>
<item>
	<title>George Kargiotakis: Handling right clicks on a macbook running Linux</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=375</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/11/handling-right-clicks-on-a-macbook-running-linux/</link>

	<description>&lt;p&gt;I’ve finally settled down to a solution that I am happy with. I used to have the following options inside my Xorg.conf:&lt;br /&gt;
&lt;code&gt;Section &quot;InputDevice&quot;&lt;br /&gt;
    Identifier      &quot;Synaptics Touchpad&quot;&lt;br /&gt;
    Driver          &quot;synaptics&quot;&lt;br /&gt;
[...snip...]&lt;br /&gt;
    Option          &quot;TapButton1&quot;            &quot;1&quot;&lt;br /&gt;
    Option          &quot;TapButton2&quot;            &quot;3&quot;&lt;br /&gt;
    Option          &quot;TapButton3&quot;            &quot;2&quot;&lt;br /&gt;
    Option          &quot;VertTwoFingerScroll&quot;   &quot;1&quot;&lt;br /&gt;
    Option          &quot;HorizTwoFingerScroll&quot;  &quot;1&quot;&lt;br /&gt;
[...snip...]&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This works like this:&lt;br /&gt;
i) a single tap is a left click&lt;br /&gt;
ii) a two-finger tap is a right click&lt;br /&gt;
iii) a three-finger tap is a middle click&lt;br /&gt;
and you could scroll horizontally and vertically using two fingers on the touchpad, like Mac OS X.&lt;br /&gt;
The problem with this setup is that I used to have a lot of accidental double tappings while scrolling with two fingers horizontally or vertically. This of course produced unwanted right clicks.&lt;/p&gt;
&lt;p&gt;I wanted a solution that I could get right click in somehow like Mac OS X does it, using ctrl+tap/ctrl+click. I found a solution that emulated ctrl+click as a right click but then many applications started misbehaving. Firefox for example uses ctrl+click on Linux to open a link on a new tab, when I used ctrl+click as a right click, Firefox stopped opening the links. So I went to plan B. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CMD key(apple key)-click as a right click.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To achieve that:&lt;br /&gt;
a) install &lt;a href=&quot;http://homepage3.nifty.com/tsato/xvkbd/&quot;&gt;xvkbd&lt;/a&gt;.&lt;br /&gt;
Debian: apt-get install xvkbd&lt;br /&gt;
Gentoo: emerge xvkbd&lt;br /&gt;
b) install &lt;a href=&quot;http://hocwp.free.fr/xbindkeys/xbindkeys.html&quot;&gt;xbindkeys&lt;/a&gt;.&lt;br /&gt;
Debian: apt-get install xbindkeys&lt;br /&gt;
Gentoo: emerge xbindkeys&lt;br /&gt;
c) create the default .xbindkeysrc file: xbindkeys –defaults &amp;gt; ~/.xbindkeysrc&lt;br /&gt;
d) edit it and put the following inside: &lt;code&gt;&quot;xvkbd -text '\m3'&quot;&lt;br /&gt;
    mod4 + b:1   (mouse)&lt;/code&gt;&lt;br /&gt;
e) edit xorg.conf and set this:&lt;code&gt;    Option          &quot;TapButton2&quot;            &quot;0&quot;&lt;/code&gt;&lt;br /&gt;
This effectively disables double tapping as a right click.&lt;br /&gt;
f) restart X&lt;br /&gt;
g) open a terminal and start xbindkeys from it: &lt;code&gt;$ xbindkeys -n -v&lt;/code&gt;&lt;br /&gt;
Now press CMD key and tap the touchpad or click the touchpad button. You should be greeted with a fresh right click!&lt;/p&gt;
&lt;p&gt;If all went well put xbindkeys in your DE’s autostart.&lt;/p&gt;
&lt;p&gt;The following works flawlessly on &lt;a href=&quot;http://www.xfce.org/&quot;&gt;XFCE&lt;/a&gt;/&lt;a href=&quot;http://www.lxde.org/&quot;&gt;LXDE&lt;/a&gt;. CMD-click or CMD-tap opens XFCE’s menu or LXDE’s desktop menu.&lt;/p&gt;
&lt;p&gt;On &lt;a href=&quot;http://fluxbox.org&quot;&gt;fluxbox&lt;/a&gt; though there is still a problem. It’s very common for fluxbox key config to look something like the following:&lt;br /&gt;
&lt;code&gt;OnDesktop Mouse1 :hideMenus&lt;br /&gt;
OnDesktop Mouse2 :workspaceMenu&lt;br /&gt;
OnDesktop Mouse3 :rootMenu&lt;br /&gt;
OnDesktop Mouse4 :nextWorkspace&lt;br /&gt;
OnDesktop Mouse5 :prevWorkspace&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;So to open the RootMenu, which is the basic menu with the applications shortcuts for fluxbox, one needs to actually right click on the Desktop. That worked with &lt;em&gt;TabButton2=3&lt;/em&gt; but it does not work right now. To get around that problem I binded the key left to (1/!) which is normally the (±/§) key on Macs to the Menu key using xmodmap.&lt;br /&gt;
&lt;code&gt; $ cat .xmodmap&lt;br /&gt;
keycode 94 =  Menu&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
I never used that key anyway…&lt;/p&gt;
&lt;p&gt;I’ve now got my precious right click back without accidental miss-clicks. yihaa!&lt;/p&gt;
&lt;p&gt;References: &lt;a href=&quot;http://www.joshourisman.com/2008/04/06/freebsd-on-an-apple-macbook/&quot;&gt;FreeBSD on an Apple MacBook&lt;/a&gt;&lt;/p&gt;</description>
	<pubDate>Thu, 11 Jun 2009 19:29:57 +0000</pubDate>
</item>
<item>
	<title>Jürgen Geuter: &quot;Common Tag&quot; or when the bureaucrats enter to ruin things</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/310-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/310-Common-Tag-or-when-the-bureaucrats-enter-to-ruin-things/</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;div style=&quot;width: 222; float: right; text-align: right; font-size: xx-small; border-width: 1px; border-color: #444444; border-style: solid; padding: 3px; margin-bottom: 30px; margin-left: 30px;&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3114/3157622824_f0140d61e0_m.jpg&quot; alt=&quot;Metadata Sticks&quot; height=&quot;240&quot; width=&quot;222&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;http://flickr.com/photos/wakingtiger/3157622824/&quot;&gt;Metadata Sticks&lt;/a&gt;©&lt;a href=&quot;http://flickr.com/people/wakingtiger&quot;&gt;Gideon Burton&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by-sa/2.0/&quot;&gt;&lt;img height=&quot;15&quot; src=&quot;http://i.creativecommons.org/l/by-sa/2.0/80x15.png&quot; title=&quot;used under a Creative Commons Attribution-ShareAlike License&quot; border=&quot;0&quot; width=&quot;80&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Just as every year is the year of the mythical Linux Desktop, every year is the year of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Semantic_Web&quot;&gt;semantic web&lt;/a&gt;: Soon all the web will be full of semantic information and that will solve all our troubles. Well that was a little short.&lt;br /&gt;
&lt;br /&gt;
Semantic information means basically to take the information that you and me can gather from all the random pieces of text on a website and make them explicit enough so a machine can understand them. Instead of writing &quot;I'm in my office every day between 8 a.m. and  6 p.m.&quot; you give the computer a well-defined structure so the machine knows that you are there between 8 and 6 and when you ask your machine whether I'll be in my office at 10 it can say: &quot;Probably yes&quot;. Yeah, very simplistic example but you catch my drift.&lt;br /&gt;
&lt;br /&gt;
But while the semantic web is taking its sweet time to arrive, the internet community has developed their own ways to work with information: Less structured, less formal, but very powerful and still easy to work with, I'm talking about &lt;a href=&quot;http://en.wikipedia.org/wiki/Tag_(metadata)&quot;&gt;Tagging&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Tags are used all over the web, on image sites like &lt;a href=&quot;http://flickr.com&quot;&gt;Flickr&lt;/a&gt;, on bookmarking sites like &lt;a href=&quot;http://del.icio.us&quot;&gt;Del.icio.us&lt;/a&gt; or on this blog, tags are everywhere. And they work really well: Slapping a bunch of tags on something is a lot quicker and easier to implement than building &quot;proper&quot; taxonomies or structures.&lt;br /&gt;
)&lt;br /&gt;
The most important thing about tags is that they are never &lt;em&gt;wrong&lt;/em&gt; (except if I make a typo while entering them). If I tag this blog post with &quot;pirate&quot;, &quot;ninja&quot; and &quot;plumpudding&quot; that's fine. Your tags would probably differ somewhat (if you are sane &lt;img src=&quot;http://the-gay-bar.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt; ) and both approaches would be right, cause tags don't say anything about the object they tag. Tags are not about intrinsic meaning of something, they're just random strings of characters in this respect.&lt;br /&gt;
&lt;br /&gt;
Tags just group things, they allow us to organize the huge set of entities around us, a set that can be categorized by the word &quot;&lt;a href=&quot;http://www.everythingismiscellaneous.com/&quot;&gt;miscellaneous&lt;/a&gt;&quot; and because different people tag different things with similar tags we can find new and interesting things (this is what we call &lt;a href=&quot;http://en.wikipedia.org/wiki/Folksonomy&quot;&gt;folksonomy&lt;/a&gt;). But the bureaucrats don't sleep and they set out to transform tags into something they are not: Something about &lt;em&gt;meaning&lt;/em&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://commontag.org/Home&quot;&gt;Common Tag&lt;/a&gt; is an initiative by a bunch of companies to &quot;standardize&quot; tags. To quote their website:&lt;br /&gt;
&lt;blockquote&gt;&quot;Unlike free-text tags, Common Tags are references to unique, well-defined concepts, complete with metadata and their own URLs.&quot;&lt;/blockquote&gt;&lt;br /&gt;
In reality it is just RDF and a committee to define the &quot;right&quot; meanings of things, so you can use the &quot;right&quot; tag on your stuff and don't just (*gasp*) make up your own.&lt;br /&gt;
&lt;br /&gt;
You gain standardized meanings that you can connect your entity to but you lose what makes folksonomies interesting: When I tag something with &quot;swallow&quot; I might mean a certain type of bird, or I might mean &lt;a href=&quot;http://en.wikipedia.org/wiki/Swallow_(disambiguation)&quot;&gt;something completely different&lt;/a&gt;. But those new connections that happen through folksonomies are what makes the web so interesting, because it connects things in new and creative ways that were not connected before. It sparks our imagination, it allows us to see similarities that we might not have seen before and it's very democratic, very &quot;web&quot;.&lt;br /&gt;
&lt;br /&gt;
What will happen with &quot;Common Tags&quot;? Well, we'll have people fighting over whether &quot;feline&quot; and &quot;cat&quot; are different concepts, then you get comments on your blog post that you should not have used &quot;Love&quot; but &quot;affection&quot; in the post and whatnot, we'll have a new playground for those people that are bored by being a &lt;a href=&quot;http://www.urbandictionary.com/define.php?term=Grammar%20Nazi&quot;&gt;grammar nazi&lt;/a&gt;. They are a bad idea, obviously  based on a complete and utter misunderstanding what tags are and how they work. It's the old Aristotelian belief that you can in fact completely and logically structure the world in a &lt;em&gt;right&lt;/em&gt; way which &lt;a href=&quot;http://the-gay-bar.com/index.php?/archives/214-The-fundamental-error-of-most-semantic-technologies/&quot;&gt;I have shown to be wrong before&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
I'm not against semantic technologies at all, but I get really annoyed when the community develops something simple that works and then some &quot;important&quot; committee rushes in to &quot;make it better&quot; by destroying it (welcome to the German Wikipedia where articles get deleted faster than you can say &quot;Wait, I was reading that!&quot; in the name of &quot;rules&quot; and &quot;importance&quot;).</description>
	<pubDate>Thu, 11 Jun 2009 07:31:54 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>
<item>
	<title>TopperH: Managing layman overlays my way</title>
	<guid isPermalink="false">tag:blogger.com,1999:blog-566377799608126043.post-8898987671248018447</guid>
	<link>http://topperh.blogspot.com/2009/06/managing-layman-overlays-my-way.html</link>

	<description>&lt;div&gt;&lt;a href=&quot;http://layman.sourceforge.net&quot;&gt;Layman&lt;/a&gt; makes overlay management easy in gentoo, specially  if you want to keep track of many different overlays, using different vcs.&lt;br /&gt;&lt;br /&gt;On the other hand it may also create some problems, the thing that annoys me the most is when I want to install a single package from an overlay layman forces me to install the whole overlay.&lt;br /&gt;Running ~arch, in the next @world update, it will probably want to update other packages that I don't need to be updated. Portage doesn't provide yet per-overlay mask (I heard paludis does, but haven't tried).&lt;br /&gt;&lt;br /&gt;Having many packages in overlays for only a few installed will also considerably slow down some portage operations, may lead to duplicated eclasses, and  will make gentoo housekeeping harder. There is also to consider that there are many poorly mantained and/ord bleeding edge and/or experimental overlays that will pull in your tree a considerable amount of crap.&lt;br /&gt;&lt;br /&gt;This is my approach: I don't add the &quot;source /usr/local/portage/layman/make.conf&quot; line in my make.conf and I symlink from layman's directories only the directories (directories, not single ebuilds) that I need in a local overlay.&lt;br /&gt;&lt;br /&gt;This way portage ignores the existence of the layman tree and sees only a clean and small local overlay. I am able to update layman daily, but only upgrades related to the packages I need will be seen by portage.&lt;br /&gt;&lt;br /&gt;Here are the steps to take, assuming you have a working local overlay in /usr/local/portage, to install for example &quot;app-backup/luckybackup&quot; from the sunrise overlay.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;emerge -av layman&lt;br /&gt;echo &quot;#source /usr/local/portage/layman/make.conf&quot; &amp;gt;&amp;gt; /etc/make.conf&lt;br /&gt;layman -a sunrise&lt;br /&gt;mkdir /usr/local/portage/app-backup&lt;br /&gt;ln -s /usr/local/portage/layman/sunrise/app-backup/luckybackup /usr/local/portage/app-backup/&lt;br /&gt;emerge -av luckybackup&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The reason why I added the line (even if commented) in make.conf is that I might need to uncomment someday. For example when a package has many dependencies on the same overlay. Temoprary removing the comment and doing &quot;emerge -pv package&quot; will give me the exact list of packages who need to be linked in my local overlay.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/tracker/566377799608126043-8898987671248018447?l=topperh.blogspot.com&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Wed, 10 Jun 2009 14:19:21 +0000</pubDate>
	<author>noreply@blogger.com (TopperH)</author>
</item>
<item>
	<title>Jason Jones: ATI fglrx vs radeonhd</title>
	<guid isPermalink="false">http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4470</guid>
	<link>http://www.ilovemyjournal.com/?action=view_entry&amp;eid=4470</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/jason_jones.png&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;Man...  Starting my new job, I had the opportunity to build a new computer.  They ordered me the parts, and I was good to go.&lt;br /&gt;
&lt;br /&gt;
For this computer, I opted to buy two acer 22-inch widescreen monitors.  In doing so, I knew I would have to be up and functioning quickly with a dual-head setup running gentoo Linux.  I knew this was pretty easily done with an nvidia card, but I really wanted to see if I could get it done with ATI.  After a quick google search, I knew it could be done, but wasn't sure about anything else.&lt;br /&gt;
&lt;br /&gt;
So, fast-forward 4 weeks later.&lt;br /&gt;
&lt;br /&gt;
I built the computer and quickly figured out how to get a dual-head setup going with the fglrx driver, but soon thereafter noticed all sorts of bugs with it.  I run the fglrx driver for my single-head setup at home, and on my laptop, and haven't had any problems with it whatsoever.  Dual-head seems to be a different story.&lt;br /&gt;
&lt;br /&gt;
I could routinely cause my entire computer (keyboard / mouse included) to freeze by simply dragging a window.  Not good.&lt;br /&gt;
&lt;br /&gt;
So, today, I decided to give the radeonHD drivers a go, and albeit not simply done, I now have it working, and it seems to be handling the dual-head setup much, much more smoothly than the fglrx driver did.  It took me about 2 hours to get it up, and I'm still working on getting the new DRI support functional.&lt;br /&gt;
&lt;br /&gt;
Anyway...  This is my current xorg.conf file, and it's working with a RadeonHD 3870 card, with both monitors plugged into their respective DVI connector.&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt; &lt;span style=&quot;color: rgb(153, 51, 0);&quot;&gt;Section &quot;ServerLayout&quot;&lt;br /&gt;
    Identifier     &quot;X.org Configured&quot;&lt;br /&gt;
    Screen      0  &quot;Screen0&quot; 0 0&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Files&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/misc/&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/TTF/&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/OTF&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/Type1/&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/100dpi/&quot;&lt;br /&gt;
#    FontPath     &quot;/usr/share/fonts/75dpi/&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Module&quot;&lt;br /&gt;
#    Load  &quot;dri&quot;&lt;br /&gt;
#    Load  &quot;glx&quot;&lt;br /&gt;
#    Load  &quot;extmod&quot;&lt;br /&gt;
#    Load  &quot;xtrap&quot;&lt;br /&gt;
#    Load  &quot;record&quot;&lt;br /&gt;
#    Load  &quot;GLcore&quot;&lt;br /&gt;
#    Load  &quot;dbe&quot;&lt;br /&gt;
#    Load  &quot;freetype&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;ServerFlags&quot;&lt;br /&gt;
    Option &quot;AIGLX&quot; &quot;On&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Monitor&quot;&lt;br /&gt;
    Identifier   &quot;DVI-I_1/digital&quot;&lt;br /&gt;
    Option         &quot;DPMS&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Monitor&quot;&lt;br /&gt;
    Identifier   &quot;DVI-I_2/digital&quot;&lt;br /&gt;
    Option         &quot;DPMS&quot;&lt;br /&gt;
    Option         &quot;RightOf&quot; &quot;DVI-I_1/digital&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Device&quot;&lt;br /&gt;
    Identifier  &quot;Card0&quot;&lt;br /&gt;
    Driver        &quot;radeonhd&quot;&lt;br /&gt;
    VendorName  &quot;ATI Technologies Inc&quot;&lt;br /&gt;
    BoardName   &quot;Unknown Board&quot;&lt;br /&gt;
    Option        &quot;RROutputOrder&quot; &quot;DVI1&quot;&lt;br /&gt;
    Option        &quot;DRI&quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;Screen&quot;&lt;br /&gt;
    Identifier &quot;Screen0&quot;&lt;br /&gt;
    Device     &quot;Card0&quot;&lt;br /&gt;
    DefaultDepth     24&lt;br /&gt;
    SubSection &quot;Display&quot;&lt;br /&gt;
        Viewport   0 0&lt;br /&gt;
        Depth     24&lt;br /&gt;
        Virtual 3360 1050&lt;br /&gt;
    EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &quot;DRI&quot;&lt;br /&gt;
    Mode         0666&lt;br /&gt;
EndSection&lt;/span&gt;&lt;br /&gt;
&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
and that's that!&lt;br /&gt;
&lt;br /&gt;</description>
	<pubDate>Wed, 10 Jun 2009 12:11:53 +0000</pubDate>
</item>
<item>
	<title>Dan Fego: Gnome Do Theme Issue</title>
	<guid isPermalink="false">http://blog.danfego.net/?p=256</guid>
	<link>http://blog.danfego.net/2009/06/gnome-do-theme-issue/</link>

	<description>&lt;p&gt;This evening, with a few helpful suggestions on IRC at #gnome-do on freenode, I was able to work around (but not solve) an issue I’ve been having with &lt;a href=&quot;http://do.davebsd.com/&quot;&gt;Gnome Do&lt;/a&gt;, the &lt;a href=&quot;http://docs.blacktree.com/quicksilver/what_is_quicksilver&quot;&gt;Quicksilver&lt;/a&gt;-like launcher for &lt;a href=&quot;http://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My issue was as follows: every time the program started up on GNOME session start, it would revert to an unfashionable theme that I didn’t want. The configuration showed that it was on the Glass theme, as I wanted, but it was clearly not. Every time I ran the program otherwise, it would successfully take on the appropriate theme.&lt;/p&gt;
&lt;p&gt;Long story short, it turns out the issue is likely related to compiz not being fully started yet, so it defaults to its non-pretty theme. I first wrote a script that waits for compiz to start then runs, but the process “compiz” existing was not good enough. So I created a 3-line script to delay Gnome Do’s startup by 2 seconds, and it works:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#!/bin/bash&lt;br /&gt;
sleep 2&lt;br /&gt;
gnome-do&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Heck, this could be a one-liner, but whatever. I actually tried to use GNOME’s built-in session manager to invoke the sleep, but it didn’t work out for me at first and I didn’t feel like trying again, so this works just fine.&lt;/p&gt;</description>
	<pubDate>Wed, 10 Jun 2009 06:46:58 +0000</pubDate>
</item>
<item>
	<title>Jürgen Geuter: Sometimes you wonder ...</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/309-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/309-Sometimes-you-wonder-.../</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;At work we use &lt;a href=&quot;http://www-01.ibm.com/software/lotus/&quot;&gt;IBM Lotus Notes&lt;/a&gt; for calendaring and emails. Now some people here will probably start thinking &quot;Oh-my-god-Lotus-Notes-sucks&quot;, especially cause it's not exactly the fastest program out there (in fact it is one of the slower ones &lt;img src=&quot;http://the-gay-bar.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;), but I'm not here to talk about that.&lt;br /&gt;
&lt;br /&gt;
I run 64Bit systems on my 64Bit machines. Lotus Notes is build on top of the Eclipse Rich Client Platform (that's basically a way to simply leverage the Eclipse client to build completely different clients), which means it's based on JAVA which is supposed to make sure that you can run your code &quot;everywhere&quot;.&lt;br /&gt;
&lt;br /&gt;
Eclipse RCP is not a bad idea in this case actually, in fact I'm looking into trying to build applications with RCP, Jython and Python, but the actual implementation is not good: For Linux you get RPMs or .debs that you can force into your system but that just don't run with 64Bit. You cannot recompile it cause you lack the sources and if you don't run Ubuntu or Fedora you're basically entering a world of pain.&lt;br /&gt;
&lt;br /&gt;
This is a great example on how to chose the right technology for some problem but throwing away most of the benefits just cause of a bad implementation, it's actually quite sad. They should have hired me &lt;img src=&quot;http://the-gay-bar.com/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;</description>
	<pubDate>Tue, 09 Jun 2009 21:02:45 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>
<item>
	<title>Kevin Bowling: kev009 on Mathematics vs. Software Engineering</title>
	<guid isPermalink="false">http://www.kev009.com/wp/?p=260</guid>
	<link>http://www.kev009.com/wp/2009/06/kev009-on-mathematics-vs-software-engineering/</link>

	<description>&lt;p&gt;Honestly, I think the unreadability and steep learning curve of mathematics (this is the worst offender) and higher science is intentional.  The people who do it enjoy this aspect because it lets them feel elitist.  And throughout the ages (from Egypt to Greece until now) it was just a way to show how large your member was.&lt;/p&gt;
&lt;p&gt;This is one of the reasons I am in such love with software engineering.  The whole point is to minimize stupidity and dick wagging and develop efficient and robust systems.  The focus is on efficiency and collaboration by conveying the &lt;span style=&quot;text-decoration: underline;&quot;&gt;MAXIMUM&lt;/span&gt; amount of &lt;strong&gt;MEANING&lt;/strong&gt; in code, comments, documents, ui design, etc.  Why?  Because computer systems are among the most complex human beings have ever created.  Solving problems with computers is almost always a multi-person endeavor.&lt;/p&gt;
&lt;p&gt;I really wish such common sense approaches would trickle back into the other sciences since they power and enlighten our world.  All the archaic symbols and nonsense in mathematics need to disappear and become simplified.  Ideally, with an ASCII character set for easy input into programing, messaging/chat, CAS, and calculators.&lt;/p&gt;
&lt;p&gt;The other problem is that academics become disconnected with reality.  To be an expert usually means working with a high level of intuition, so explaining things to non-experts is often very difficult.  This ties into one of my favorite axioms:  just because you are an expert at something does not mean you are an expert at teaching it.  Teaching is an art form in itself.&lt;/p&gt;
&lt;p&gt;Recommended reading: &lt;a href=&quot;http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-Programmers/dp/1934356050/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1244549509&amp;amp;sr=8-1&quot; target=&quot;_blank&quot;&gt; Pragmatic Thinking and Learning&lt;/a&gt; by Andy Hunt and &lt;a href=&quot;http://www.amazon.com/Mission-Men-Me-Lessons-Commander/dp/0425223728/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1244549565&amp;amp;sr=8-1&quot; target=&quot;_blank&quot;&gt;The Mission, The Men, and Me&lt;/a&gt; by Pete Blabber.  Two very different books but both distill solving problems with groups of people at their very core, and both excellent reads.&lt;/p&gt;
&lt;p&gt;Can anyone recommend any material that presents higher level mathematics and science clearly, yet still gets into good stuff,  without patronizing?&lt;/p&gt;
&lt;p&gt;I’ve been wanting to write about this for a while, and it feels great to get off my chest.&lt;/p&gt;
&lt;p&gt;[in response to a &lt;a href=&quot;http://bheekly.blogspot.com/2009/06/i-dont-understand-this.html&quot; target=&quot;_blank&quot;&gt;Gentoo dev on physics papers&lt;/a&gt;]&lt;/p&gt;



Share and Enjoy:


	&lt;a href=&quot;http://digg.com/submit?phase=2&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&amp;amp;bodytext=Honestly%2C%20I%20think%20the%20unreadability%20and%20steep%20learning%20curve%20of%20mathematics%20%28this%20is%20the%20worst%20offender%29%20and%20higher%20science%20is%20intentional.%C2%A0%20The%20people%20who%20do%20it%20enjoy%20this%20aspect%20because%20it%20lets%20them%20feel%20elitist.%C2%A0%20And%20throughout%20the%20ages%20%28from%20Eg&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Digg&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/digg.png&quot; alt=&quot;Digg&quot; class=&quot;sociable-hovers&quot; title=&quot;Digg&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://delicious.com/post?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&amp;amp;notes=Honestly%2C%20I%20think%20the%20unreadability%20and%20steep%20learning%20curve%20of%20mathematics%20%28this%20is%20the%20worst%20offender%29%20and%20higher%20science%20is%20intentional.%C2%A0%20The%20people%20who%20do%20it%20enjoy%20this%20aspect%20because%20it%20lets%20them%20feel%20elitist.%C2%A0%20And%20throughout%20the%20ages%20%28from%20Eg&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;del.icio.us&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/delicious.png&quot; alt=&quot;del.icio.us&quot; class=&quot;sociable-hovers&quot; title=&quot;del.icio.us&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://slashdot.org/bookmark.pl?title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&amp;amp;url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Slashdot&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/slashdot.png&quot; alt=&quot;Slashdot&quot; class=&quot;sociable-hovers&quot; title=&quot;Slashdot&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;t=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Facebook&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/facebook.png&quot; alt=&quot;Facebook&quot; class=&quot;sociable-hovers&quot; title=&quot;Facebook&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://reddit.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Reddit&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/reddit.png&quot; alt=&quot;Reddit&quot; class=&quot;sociable-hovers&quot; title=&quot;Reddit&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;StumbleUpon&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/stumbleupon.png&quot; alt=&quot;StumbleUpon&quot; class=&quot;sociable-hovers&quot; title=&quot;StumbleUpon&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;amp;bkmk=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&amp;amp;title=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&amp;amp;annotation=Honestly%2C%20I%20think%20the%20unreadability%20and%20steep%20learning%20curve%20of%20mathematics%20%28this%20is%20the%20worst%20offender%29%20and%20higher%20science%20is%20intentional.%C2%A0%20The%20people%20who%20do%20it%20enjoy%20this%20aspect%20because%20it%20lets%20them%20feel%20elitist.%C2%A0%20And%20throughout%20the%20ages%20%28from%20Eg&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Google Bookmarks&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/googlebookmark.png&quot; alt=&quot;Google Bookmarks&quot; class=&quot;sociable-hovers&quot; title=&quot;Google Bookmarks&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/print?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Print this article!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/printfriendly.png&quot; alt=&quot;Print this article!&quot; class=&quot;sociable-hovers&quot; title=&quot;Print this article!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;mailto:?subject=kev009%20on%20Mathematics%20vs.%20Software%20Engineering&amp;amp;body=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;E-mail this story to a friend!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/email_link.png&quot; alt=&quot;E-mail this story to a friend!&quot; class=&quot;sociable-hovers&quot; title=&quot;E-mail this story to a friend!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://www.printfriendly.com/getpf?url=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;Turn this article into a PDF!&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/pdf.png&quot; alt=&quot;Turn this article into a PDF!&quot; class=&quot;sociable-hovers&quot; title=&quot;Turn this article into a PDF!&quot; /&gt;&lt;/a&gt;
	&lt;a href=&quot;http://twitter.com/home?status=http%3A%2F%2Fwww.kev009.com%2Fwp%2F2009%2F06%2Fkev009-on-mathematics-vs-software-engineering%2F&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; title=&quot;TwitThis&quot;&gt;&lt;img src=&quot;http://www.kev009.com/wp/wp-content/plugins/sociable/images/twitter.png&quot; alt=&quot;TwitThis&quot; class=&quot;sociable-hovers&quot; title=&quot;TwitThis&quot; /&gt;&lt;/a&gt;


&lt;br /&gt;&lt;br /&gt;

&lt;p&gt;Related posts:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2009/05/el-reg-humor-and-java-in-free-software/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: El Reg Humor and Java in free software&quot;&gt;El Reg Humor and Java in free software&lt;/a&gt; &lt;small&gt;The Register has a good article on Sphinx search with...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2007/06/my-thoughts-on-software-and-complexity/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: My thoughts on software and complexity&quot;&gt;My thoughts on software and complexity&lt;/a&gt; &lt;small&gt;My thoughts on the growth of the Linux kernel and...&lt;/small&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.kev009.com/wp/2009/01/one-small-step-for-qt-one-giant-leap-for-free-software/&quot; rel=&quot;bookmark&quot; title=&quot;Permanent Link: One Small Step for QT, One Giant Leap for Free Software&quot;&gt;One Small Step for QT, One Giant Leap for Free Software&lt;/a&gt; &lt;small&gt;QT Software, under the graces of Nokia, has released the...&lt;/small&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;</description>
	<pubDate>Tue, 09 Jun 2009 12:20:06 +0000</pubDate>
</item>
<item>
	<title>George Kargiotakis: qt libraries upgrade problem for gentoo</title>
	<guid isPermalink="false">http://www.void.gr/kargig/blog/?p=580</guid>
	<link>http://www.void.gr/kargig/blog/2009/06/08/qt-libraries-upgrade-problem-for-gentoo/</link>

	<description>&lt;p&gt;To complement alex’s post &lt;a href=&quot;http://www.linuxized.com/2009/06/upgrading-qt-libraries-in-gentoo-with-portage/&quot;&gt;upgrading Qt libraries in Gentoo with Portage&lt;/a&gt;, here’s what started it all. I wanted to upgrade my kpdf to the most recent version without upgrading world. So the output of &lt;code&gt;emerge -1uDNavt kpdf&lt;/code&gt; looked like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[ebuild     U ] kde-base/kpdf-3.5.10-r1 [3.5.9] USE=&quot;-debug (-arts%) (-kdeenablefinal%) (-xinerama%)&quot; 6 kB [0]&lt;br /&gt;
[nomerge      ] app-mobilephone/pysmssend-1.32  USE=&quot;qt4&quot;  [?]&lt;br /&gt;
[nomerge      ]  dev-python/PyQt4-4.4.4-r2  USE=&quot;X dbus opengl qt3support svg -debug -doc -examples -webkit&quot;  [0]&lt;br /&gt;
[ebuild     U ]   x11-libs/qt-qt3support-4.5.1 [4.4.2] USE=&quot;accessibility -custom-cxxflags% -debug -kde% -pch -phonon%&quot; 111,980 kB [0]&lt;br /&gt;
[ebuild     U ]    x11-libs/qt-sql-4.5.1 [4.4.2-r1] USE=&quot;iconv qt3support sqlite -custom-cxxflags -debug -firebird -mysql -odbc -pch -postgres&quot; 0 kB [0]&lt;br /&gt;
[nomerge      ] kde-base/kpdf-3.5.10-r1 [3.5.9] USE=&quot;-debug (-arts%) (-kdeenablefinal%) (-xinerama%)&quot;  [0]&lt;br /&gt;
[ebuild  N    ]  virtual/poppler-qt3-0.10.5  0 kB [0]&lt;br /&gt;
[nomerge      ] dev-python/PyQt4-4.4.4-r2  USE=&quot;X dbus opengl qt3support svg -debug -doc -examples -webkit&quot;  [0]&lt;br /&gt;
[ebuild     U ]  x11-libs/qt-gui-4.5.1 [4.4.2-r3] USE=&quot;accessibility dbus glib gtkstyle%* qt3support -cups -custom-cxxflags -debug -mng -nas -nis -pch -raster% -tiff -xinerama&quot; INPUT_DEVICES=&quot;(-wacom%)&quot; 0 kB [0]&lt;br /&gt;
[ebuild     U ]   x11-libs/qt-script-4.5.1 [4.4.2] USE=&quot;iconv%* -custom-cxxflags% -debug -pch&quot; 0 kB [0]&lt;br /&gt;
[ebuild     U ]   x11-libs/qt-dbus-4.5.1 [4.4.2] USE=&quot;-custom-cxxflags -debug -pch&quot; 0 kB [0]&lt;br /&gt;
[nomerge      ] dev-python/PyQt4-4.4.4-r2  USE=&quot;X dbus opengl qt3support svg -debug -doc -examples -webkit&quot;  [0]&lt;br /&gt;
[nomerge      ]  x11-libs/qt-svg-4.4.2  USE=&quot;-debug -pch&quot;  [0]&lt;br /&gt;
[blocks b     ]   &amp;gt;x11-libs/qt-script-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-script-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks b     ]   &amp;gt;x11-libs/qt-dbus-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-dbus-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[nomerge      ] sys-boot/unetbootin-319  [0]&lt;br /&gt;
[nomerge      ]  x11-libs/qt-gui-4.5.1 [4.4.2-r3] USE=&quot;accessibility dbus glib gtkstyle%* qt3support -cups -custom-cxxflags -debug -mng -nas -nis -pch -raster% -tiff -xinerama&quot; INPUT_DEVICES=&quot;(-wacom%)&quot;  [0]&lt;br /&gt;
[blocks b     ]   &lt;br /&gt;
[nomerge      ] x11-libs/qt-svg-4.4.2  USE=&quot;-debug -pch&quot;  [0]&lt;br /&gt;
[blocks b     ]  &amp;gt;x11-libs/qt-qt3support-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-qt3support-4.4.2-r9999&quot; is blocking x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks b     ]  &amp;gt;x11-libs/qt-core-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-core-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2)&lt;br /&gt;
[blocks b     ]  &amp;gt;x11-libs/qt-sql-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-sql-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks b     ]  &amp;gt;x11-libs/qt-gui-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-gui-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[ebuild     U ]   x11-libs/qt-test-4.5.1 [4.4.2] USE=&quot;iconv%* -custom-cxxflags% -debug -pch&quot; 0 kB [0]&lt;br /&gt;
[ebuild     U ]    x11-libs/qt-core-4.5.1 [4.4.2-r2] USE=&quot;glib iconv qt3support ssl -custom-cxxflags -debug -doc -pch&quot; 0 kB [0]&lt;br /&gt;
[nomerge      ] kde-base/kpdf-3.5.10-r1 [3.5.9] USE=&quot;-debug (-arts%) (-kdeenablefinal%) (-xinerama%)&quot;  [0]&lt;br /&gt;
[ebuild     U ]  kde-base/kdeprint-3.5.10 [3.5.9] USE=&quot;kdehiddenvisibility -cups -debug -kde (-arts%) (-kdeenablefinal%) (-xinerama%)&quot; 0 kB [0]&lt;br /&gt;
[nomerge      ] app-text/epdfview-0.1.6-r1  USE=&quot;-cups -nls -test&quot;  [0]&lt;br /&gt;
[nomerge      ]  virtual/poppler-glib-0.10.5  USE=&quot;cairo&quot;  [0]&lt;br /&gt;
[nomerge      ]   app-text/poppler-bindings-0.10.5-r1  USE=&quot;cairo gtk qt3 qt4 -test&quot;  [0]&lt;br /&gt;
[nomerge      ]    app-text/poppler-0.10.5-r1  USE=&quot;-doc&quot;  [0]&lt;br /&gt;
[ebuild     U ]     media-libs/openjpeg-1.3-r2 [1.3] USE=&quot;-tools&quot; 0 kB [0]&lt;br /&gt;
[nomerge      ] kde-base/kdeprint-3.5.10 [3.5.9] USE=&quot;kdehiddenvisibility -cups -debug -kde (-arts%) (-kdeenablefinal%) (-xinerama%)&quot;  [0]&lt;br /&gt;
[ebuild     U ]  app-text/enscript-1.6.4-r4 [1.6.4-r3] USE=&quot;-nls -ruby&quot; 1,013 kB [?=&amp;gt;0]&lt;br /&gt;
[nomerge      ] app-pda/msynctool-0.21  [0]&lt;br /&gt;
[nomerge      ]  app-pda/libopensync-0.21  USE=&quot;-debug -doc -python&quot;  [0]&lt;br /&gt;
[ebuild     U ]   dev-db/sqlite-3.6.13 [3.6.11] USE=&quot;threadsafe -debug -doc -soundex -tcl&quot; 0 kB [0]&lt;br /&gt;
[blocks B     ] &lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-test-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-test-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-script-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-script-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-dbus-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-dbus-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &lt;br /&gt;
[blocks B     ] qt-core-4.5.1 (&quot;qt-core-4.5.1&quot; is blocking x11-libs/qt-script-4.5.1, x11-libs/qt-dbus-4.5.1, x11-libs/qt-test-4.5.1, x11-libs/qt-gui-4.5.1, x11-libs/qt-qt3support-4.5.1, x11-libs/qt-sql-4.5.1)&lt;br /&gt;
[blocks B     ] qt-dbus-4.5.1 (&quot;qt-dbus-4.5.1&quot; is blocking x11-libs/qt-script-4.5.1, x11-libs/qt-test-4.5.1, x11-libs/qt-gui-4.5.1, x11-libs/qt-qt3support-4.5.1, x11-libs/qt-sql-4.5.1, x11-libs/qt-core-4.5.1)&lt;br /&gt;
[blocks B     ] qt-qt3support-4.5.1 (&quot;qt-qt3support-4.5.1&quot; is blocking x11-libs/qt-script-4.5.1, x11-libs/qt-dbus-4.5.1, x11-libs/qt-test-4.5.1, x11-libs/qt-gui-4.5.1, x11-libs/qt-sql-4.5.1, x11-libs/qt-core-4.5.1)&lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-qt3support-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-qt3support-4.4.2-r9999&quot; is blocking x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &lt;br /&gt;
[blocks B     ] qt-opengl-4.5.1 (&quot;qt-opengl-4.5.1&quot; is blocking x11-libs/qt-script-4.5.1, x11-libs/qt-dbus-4.5.1, x11-libs/qt-test-4.5.1, x11-libs/qt-gui-4.5.1, x11-libs/qt-qt3support-4.5.1, x11-libs/qt-sql-4.5.1, x11-libs/qt-core-4.5.1)&lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-core-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-core-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2)&lt;br /&gt;
[blocks B     ] &lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-sql-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-sql-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-gui-4.4.2-r3, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &amp;gt;x11-libs/qt-gui-4.4.2-r9999 (&quot;&amp;gt;x11-libs/qt-gui-4.4.2-r9999&quot; is blocking x11-libs/qt-xmlpatterns-4.4.2, x11-libs/qt-script-4.4.2, x11-libs/qt-dbus-4.4.2, x11-libs/qt-sql-4.4.2-r1, x11-libs/qt-qt3support-4.4.2, x11-libs/qt-svg-4.4.2, x11-libs/qt-test-4.4.2, x11-libs/qt-opengl-4.4.2, x11-libs/qt-core-4.4.2-r2)&lt;br /&gt;
[blocks B     ] &lt;br /&gt;
Total: 13 packages (12 upgrades, 1 new), Size of downloads: 112,998 kB&lt;br /&gt;
Conflict: 23 blocks (16 unsatisfied)&lt;br /&gt;
Portage tree and overlays:&lt;br /&gt;
 [0] /usr/portage&lt;br /&gt;
 [?] indicates that the source repository could not be determined&lt;br /&gt;
 * Error: The above package list contains packages which cannot be&lt;br /&gt;
 * installed at the same time on the same system.&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-svg-4.4.2', 'nomerge') pulled in by&lt;br /&gt;
    &amp;gt;=x11-libs/qt-svg-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
  ('ebuild', '/', 'x11-libs/qt-gui-4.5.1', 'merge') pulled in by&lt;br /&gt;
    &amp;gt;=x11-libs/qt-gui-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
    x11-libs/qt-gui required by ('installed', '/', 'media-video/vlc-0.9.8a', 'nomerge')&lt;br /&gt;
    x11-libs/qt-gui required by ('installed', '/', 'sys-boot/unetbootin-319', 'nomerge')&lt;br /&gt;
    (and 4 more)&lt;br /&gt;
  ('ebuild', '/', 'x11-libs/qt-test-4.5.1', 'merge') pulled in by&lt;br /&gt;
    x11-libs/qt-test:4 required by ('installed', '/', 'app-text/poppler-bindings-0.10.5-r1', 'nomerge')&lt;br /&gt;
  ('ebuild', '/', 'x11-libs/qt-qt3support-4.5.1', 'merge') pulled in by&lt;br /&gt;
    ~x11-libs/qt-qt3support-4.5.1[-debug] required by ('ebuild', '/', 'x11-libs/qt-gui-4.5.1', 'merge')&lt;br /&gt;
    &amp;gt;=x11-libs/qt-qt3support-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-opengl-4.4.2', 'nomerge') pulled in by&lt;br /&gt;
    &amp;gt;=x11-libs/qt-opengl-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
  ('ebuild', '/', 'x11-libs/qt-dbus-4.5.1', 'merge') pulled in by&lt;br /&gt;
    ~x11-libs/qt-dbus-4.5.1[-debug] required by ('ebuild', '/', 'x11-libs/qt-gui-4.5.1', 'merge')&lt;br /&gt;
    &amp;gt;=x11-libs/qt-dbus-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-core-4.4.2-r2', 'nomerge') pulled in by&lt;br /&gt;
    ~x11-libs/qt-core-4.4.2 required by ('installed', '/', 'x11-libs/qt-script-4.4.2', 'nomerge')&lt;br /&gt;
    x11-libs/qt-core required by ('installed', '/', 'media-video/vlc-0.9.8a', 'nomerge')&lt;br /&gt;
    x11-libs/qt-core:4[qt3support] required by ('installed', '/', 'app-admin/keepassx-0.4.0', 'nomerge')&lt;br /&gt;
    (and 7 more)&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-dbus-4.4.2', 'nomerge') pulled in by&lt;br /&gt;
    &amp;gt;=x11-libs/qt-dbus-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
    ~x11-libs/qt-dbus-4.4.2 required by ('installed', '/', 'x11-libs/qt-gui-4.4.2-r3', 'nomerge')&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-qt3support-4.4.2', 'nomerge') pulled in by&lt;br /&gt;
    ~x11-libs/qt-qt3support-4.4.2 required by ('installed', '/', 'x11-libs/qt-gui-4.4.2-r3', 'nomerge')&lt;br /&gt;
    &amp;gt;=x11-libs/qt-qt3support-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-xmlpatterns-4.4.2', 'nomerge') pulled in by&lt;br /&gt;
    x11-libs/qt-xmlpatterns:4 required by ('installed', '/', 'app-admin/keepassx-0.4.0', 'nomerge')&lt;br /&gt;
  ('installed', '/', 'x11-libs/qt-gui-4.4.2-r3', 'nomerge') pulled in by&lt;br /&gt;
    &amp;gt;=x11-libs/qt-gui-4.4.2:4 required by ('installed', '/', 'dev-python/PyQt4-4.4.4-r2', 'nomerge')&lt;br /&gt;
    x11-libs/qt-gui required by ('installed', '/', 'media-video/vlc-0.9.8a', 'nomerge')&lt;br /&gt;
    x11-libs/qt-gui required by ('installed', '/', 'sys-boot/unetbootin-319', 'nomerge')&lt;br /&gt;
    (and 6 more)&lt;br /&gt;
  ('ebuild', '/', 'x11-libs/qt-core-4.5.1', 'merge') pulled in by&lt;br /&gt;
    ~x11-libs/qt-core-4.5.1[qt3support,-debug] required by ('ebuild', '/', 'x11-libs/qt-sql-4.5.1', 'merge')&lt;br /&gt;
    x11-libs/qt-core:4[qt3support] required by ('installed', '/', 'app-admin/keepassx-0.4.0', 'nomerge')&lt;br /&gt;
    ~x11-libs/qt-core-4.5.1[-debug] required by ('ebuild', '/', 'x11-libs/qt-script-4.5.1', 'merge')&lt;br /&gt;
    (and 7 more)&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
The output is also at: &lt;a href=&quot;http://dpaste.com/52703/&quot;&gt;http://dpaste.com/52703/&lt;/a&gt;&lt;br /&gt;
Unless you are a Gentoo Developer there is no easy way to understand the output.&lt;br /&gt;
So I joined #gentoo-el on Freenode to ask the greek gentoo developers (hwoarang, deathwing00, tampakrap, wired, yngwin), which happen to be on QT/KDE herds, to explain to me what’s wrong.&lt;br /&gt;
I was suggested to run an &lt;code&gt;emerge -uDavt world&lt;/code&gt; to upgrade my whole system, but that’s not what I wanted and I asked for a solution that would not involve upgrading the whole system. The following is the output of emerge -uDNavt world:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://pastebin.com/m8371430&quot;&gt;http://pastebin.com/m8371430&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then they explained to me that there has been a change on QT eclass to provide protection to the system from having mixed QT versions. The problem is that the protection works by blocking the mix, but the output is at least “unfriendly”.&lt;/p&gt;
&lt;p&gt;The solution, as alex said is to do: &lt;code&gt;emerge -av1 `eix -I --only-names x11-libs/qt-`&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Even though eix is a standard tool every gentoo user has probably installed, I don’t really like the solution because it depends on using another extra program, eix, and not pure portage techniques. Portage should be able, somehow, to handle these dependency problems and provide a custom error when such a problem occurs. The errors on “-9999″ versions need vast improvement.&lt;/p&gt;
&lt;p&gt;I hope Gentoo devs do something about improving portage even more &lt;img src=&quot;http://www.void.gr/kargig/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*EDIT*&lt;/strong&gt;&lt;br /&gt;
After a small conversation with alex, I completely unmerged my &lt;em&gt;x11-libs/qt-4.X&lt;/em&gt; package. As it seems it’s &lt;em&gt;not needed at all&lt;/em&gt; any longer since all programs correctly reference the x11-libs/qt-NAME-4.X.&lt;/p&gt;</description>
	<pubDate>Mon, 08 Jun 2009 18:35:51 +0000</pubDate>
</item>
<item>
	<title>Roy Marples: Accelerated OpenGL on NetBSD on my laptop</title>
	<guid isPermalink="false">http://roy.marples.name/projects/self/blog/2009/06/08</guid>
	<link>http://roy.marples.name/projects/self/blog/2009/06/08</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/uberlord.gif&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;&lt;p&gt;
Accelerated OpenGL on NetBSD on my laptop - &lt;strong&gt;FINALLY&lt;/strong&gt;!
&lt;/p&gt;
&lt;p&gt;
It took some time, but it looks like the NetBSD and Xorg devs have finally cracked ATI X600 laptop cards working :)
The final bit on my behalf was enabling EXA acceleration as the older and default XAA caused the screen not to refresh properly.
&lt;/p&gt;
&lt;p&gt;
OpenGL screensavers have been working flawlessly for nearly have the day now, so it looks fairly stable too. However, switching to console and back to X does disable DRI for some reason, so I have to do a full X restart which kinda sucks.
&lt;/p&gt;
&lt;p&gt;
I may now look at getting one of my online games, &lt;a href=&quot;http://www.eternal-lands.com/&quot; class=&quot;ext-link&quot;&gt;&lt;span class=&quot;icon&quot;&gt; &lt;/span&gt;Eternal Lands&lt;/a&gt; working on NetBSD as well :)
&lt;/p&gt;</description>
	<pubDate>Mon, 08 Jun 2009 16:31:13 +0000</pubDate>
</item>
<item>
	<title>Jürgen Geuter: Even Linux can become a victim of Windows viruses...</title>
	<guid isPermalink="false">http://the-gay-bar.com/index.php?/archives/308-guid/</guid>
	<link>http://the-gay-bar.com/index.php?/archives/308-Even-Linux-can-become-a-victim-of-Windows-viruses.../</link>

	<description>&lt;img src=&quot;http://planet.larrythecow.org/images/j_rgen_geuter.jpg&quot; alt=&quot;&quot; align=&quot;right&quot; style=&quot;float: right;&quot;&gt;At my &lt;a href=&quot;http://be.wi-ol.de/&quot;&gt;new Job&lt;/a&gt; I'm in the lucky situation that I can choose which kind of operating system I run on my machine. That's actually really neat and allows me to be as productive as possible without having to run my &quot;real&quot; OS in a virtual machine.&lt;br /&gt;
&lt;br /&gt;
The network is the University Network that is really fucking fast but has one really lame &quot;feature&quot; that I have to suffer: It blocks all traffic on Port 25 due to too many infected Windows boxes in the network sending out spam. Yes, there are the official University SMTP-Servers but sometimes it would be neat to be able to use one's own server without having to use webmail (oh how much I hate webmail ...). I don't get rootkits, viruses and whatnot, but I still suffer the consequences of the Windows weaknesses, even when I run something better.&lt;br /&gt;
&lt;br /&gt;
The problem is: Security is almost never a feature of &lt;em&gt;one&lt;/em&gt; isolated box, it's about the whole environment around it, and the weakest entity in that environment decides what is possible. It's nice that some people have decided to switch and run something better than Windows, but in the end to make our global inter- and intranet security better we have to get rid of all those insecure systems around us. It starts with each one for him- or herself but it shouldn't stop there.&lt;br /&gt;</description>
	<pubDate>Mon, 08 Jun 2009 14:18:35 +0000</pubDate>
	<author>tante@the-gay-bar.com (tante)</author>
</item>

</channel>
</rss>
