<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Mike McQuaid</title><link href="http://mikemcquaid.com/atom.xml" rel="self"/><link href="http://mikemcquaid.com/"/><updated>2012-05-17T18:09:57+01:00</updated><id>http://mikemcquaid.com/</id><author><name>Mike McQuaid</name></author><entry><title>Deploying Qt applications with DeployQt4</title><link href="http://mikemcquaid.com/2012/01/04/deploying-qt-applications-with-deployqt4/"/><updated>2012-01-04T00:00:00+00:00</updated><id>http://mikemcquaid.com/2012/01/04/deploying-qt-applications-with-deployqt4</id><content type="html">&lt;p&gt;&lt;a href=&quot;http://www.kitware.com/news/home/browse/CMake?2012_01_02&amp;amp;CMake+2.8.7+Now+Available&quot;&gt;CMake 2.8.7 has been released&lt;/a&gt; and includes the DeployQt4 module I created.&lt;/p&gt;

&lt;p&gt;DeployQt4 will take an executable and any specified Qt plugins and install and setup all the linked dependencies.&lt;/p&gt;

&lt;p&gt;DeployQt4 does this by using e.g. &lt;code&gt;otool&lt;/code&gt;, &lt;code&gt;ldd&lt;/code&gt; or &lt;code&gt;depends.exe&lt;/code&gt; to find the linked libraries, installing a &lt;code&gt;qt.conf&lt;/code&gt; file (if needed) to ensure the correct Qt is used and install any specified Qt plugins to the default Qt application plugin path. On OSX it will also use &lt;code&gt;install_name_tool&lt;/code&gt; to make sure your application is linked directly to the libraries inside its bundle.&lt;/p&gt;

&lt;p&gt;For example an OSX application bundle before DeployQt4 might look like:
&lt;img src=&quot;/images/a/deployqt4-before.png&quot; alt=&quot;Before DeployQt4 directory tree&quot; /&gt;&lt;/p&gt;

&lt;p&gt;and afterwards like:
&lt;img src=&quot;/images/a/deployqt4-after.png&quot; alt=&quot;After DeployQt4 directory tree&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The most commonly used DeployQt4 function is &lt;code&gt;INSTALL_QT4_EXECUTABLE&lt;/code&gt; function. For example: &lt;br/&gt;
&lt;code&gt;INSTALL_QT4_EXECUTABLE(${EXECUTABLE_PATH} qsqlite)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you wanted to do this in a CMake script rather than at install time (i.e. for an already compiled executable) you could instead call: &lt;br/&gt;
&lt;code&gt;FIXUP_QT4_EXECUTABLE(${EXECUTABLE_PATH} qsqlite)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Other DeployQt4 options include manually specifying libraries or non-Qt plugins to install their linked dependencies, additional directories to check for linked dependencies (the Qt directories are added by default), override the default plugin installation directory, override whether a &lt;code&gt;qt.conf&lt;/code&gt; file is installed and the use of CMake &lt;code&gt;INSTALL&lt;/code&gt; components.&lt;/p&gt;

&lt;p&gt;You can see an example of using DeployQt4 (combined with CPack to generate installers) in &lt;a href=&quot;https://github.com/mikemcquaid/Fabula/blob/master/CMakeLists.txt&quot;&gt;the CMakeLists.txt file for my Fabula project&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more information read the &lt;a href=&quot;http://cmake.org/cmake/help/cmake-2-8-docs.html#module:DeployQt4&quot;&gt;DeployQt4 section of the official CMake documentation&lt;/a&gt;, read the &lt;a href=&quot;https://github.com/Kitware/CMake/blob/master/Modules/DeployQt4.cmake&quot;&gt;DeployQt4 source code&lt;/a&gt; or post a question in the comments.&lt;/p&gt;

&lt;p&gt;If you want the same functionality for non-Qt projects I suggest you investigate the  &lt;a href=&quot;http://cmake.org/cmake/help/cmake-2-8-docs.html#module:BundleUtilities&quot;&gt;BundleUtilities module in CMake&lt;/a&gt;. Despite the confusing name this installs linked dependencies on Windows, Mac and Linux. DeployQt4 extends this functionality to improve the API and add some Qt-specific deployment help.&lt;/p&gt;

&lt;p&gt;If you want the same functionality for Mac-only non-CMake projects I suggest you investigate the &lt;a href=&quot;http://developer.qt.nokia.com/doc/qt-4.8/deployment-mac.html#the-mac-deployment-tool&quot;&gt;Mac deployment tool (macdeployqt)&lt;/a&gt; that is bundled with Qt. It lacks the DeployQt4 added features of automatic installation of any linked dependencies, CMake/CPack integration and support for Windows and Linux but will install the Qt libraries correctly.&lt;/p&gt;
</content></entry><entry><title>Make Qt use the GTK Style on XFCE or Xubuntu</title><link href="http://mikemcquaid.com/2011/12/01/make-qt-use-the-gtk-style-on-xfce-or-xubuntu/"/><updated>2011-12-01T00:00:00+00:00</updated><id>http://mikemcquaid.com/2011/12/01/make-qt-use-the-gtk-style-on-xfce-or-xubuntu</id><content type="html">&lt;p&gt;I&amp;rsquo;m a Qt developer and use Xubuntu in my Linux VMs as it is lighter than KDE and doesn&amp;rsquo;t get in my way (unlike Unity).&lt;/p&gt;

&lt;p&gt;By default there is a problem with QGtkStyle which stops it correctly picking up the GTK theme as XFCE does not save it in the usual place.&lt;/p&gt;

&lt;p&gt;To fix this we can use a simple script:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/sh&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;DEFAULT_XFCE_THEME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;greybird
&lt;span class=&quot;nv&quot;&gt;XFCE_THEME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;$(&lt;/span&gt;xfconf-query -c xsettings &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    -p /Net/ThemeName 2&amp;gt;/dev/null&lt;span class=&quot;k&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;GTK2_RC_FILES&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/.config/xfce4/gtkrc
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; -z &lt;span class=&quot;s2&quot;&gt;&amp;quot;$XFCE_THEME&amp;quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;XFCE_THEME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$DEFAULT_XFCE_THEME&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;gtk-theme-name &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$XFCE_THEME&lt;/span&gt; &amp;gt; &lt;span class=&quot;nv&quot;&gt;$GTK2_RC_FILES&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;unset &lt;/span&gt;DEFAULT_XFCE_THEME
&lt;span class=&quot;nb&quot;&gt;unset &lt;/span&gt;XFCE_THEME
&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;GTK2_RC_FILES
. /etc/xdg/xfce4/xinitrc
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Put this script into &lt;code&gt;$HOME/.config/xfce4/xinitrc&lt;/code&gt; and ensure it is executable by running &lt;code&gt;chmod +x $HOME/.config/xfce4/xinitrc&lt;/code&gt;.&lt;/p&gt;
</content></entry><entry><title>The Social Network: A Defence of Programming</title><link href="http://mikemcquaid.com/2010/11/11/the-social-network-a-defense-of-programming/"/><updated>2010-11-11T00:00:00+00:00</updated><id>http://mikemcquaid.com/2010/11/11/the-social-network-a-defense-of-programming</id><content type="html">&lt;p&gt;I recently saw &lt;a href=&quot;http://www.imdb.com/title/tt1285016/&quot;&gt;The Social Network&lt;/a&gt;, a dramatisation of the creation of Facebook. It was a thoroughly enjoyable film with brilliant direction, casting (Eisenberg and Timberlake in particular) and writing. It also had an incredibly realistic hacking scene (using wget and perl scripts) and featured KDE on the desktop of most of the programmers in the film. I highly recommend seeing it, regardless of your thoughts on Facebook.&lt;/p&gt;

&lt;p&gt;A friend sent me a &lt;a href=&quot;http://www.nybooks.com/articles/archives/2010/nov/25/generation-why/?pagination=false&quot;&gt;link to an interesting review&lt;/a&gt; that I was writing a long response to but thought I&amp;rsquo;d turn it into a blog post instead. The review is fantastically written by Zadie Smith but there&amp;rsquo;s a few glaring holes in it that frustrated this post into existence.&lt;/p&gt;

&lt;p&gt;Smith, like many mainstream journalists and writers, seems to fundamentally understand what makes people like us excited about programming. I&amp;rsquo;ll respond to some choice quotes from the review.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;No doubt the filmmakers considered this option, but you can see their dilemma: how to convey the pleasure of programming — if such a pleasure exists — in a way that is both cinematic and comprehensible?&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;If such a pleasure exists? Really? She mentions in the review she talked to a &amp;ldquo;software expert&amp;rdquo; but she must have avoided this topic of discussion. The pleasure in coding combines creativity (like creating art, no-one will ever write a program the same way as you), building to try to simplify the lives of others and mathematical problem solving. I think the film communicates this fairly well but it&amp;rsquo;s one of these things that&amp;rsquo;s pretty much impossible to hide the elements of programming that immediately turn some people off it. Some people find the idea that I sit at my computer typing for most of the day fundamentally boring and there&amp;rsquo;s not much you can do to argue against this viewpoint other than display the great things that can result from it.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;E Pluribus Unum — that&amp;rsquo;s the point. Here’s my guess: he wants to be like everybody else. He wants to be liked.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;It&amp;rsquo;s a shame that for anyone who is or was ever considered &amp;ldquo;nerdy&amp;rdquo; that we fall victim to such poor pop psychology. Just because we weren&amp;rsquo;t all deemed &amp;ldquo;cool&amp;rdquo; in high school doesn&amp;rsquo;t mean our entire careers are driven by this reductionist need to over-compensate for what others thing we missed out on. Zuckerberg I&amp;rsquo;d imagine, like most software engineers wants to build something that everyone will think &amp;ldquo;how did I manage before this came along&amp;rdquo; and, even if they don&amp;rsquo;t know he made it, he&amp;rsquo;ll know that he&amp;rsquo;s simplified the lives of a lot of people. This is why we do it and this is why we love it.&lt;/p&gt;

&lt;p&gt;The fact that Zuckerberg open-sourced his earlier applications (not just gave it away for not monetary value, her review misses this) shows this; he values the pleasure of people using his tool over the monetary return that he could have instead. This also points to why Facebook didn&amp;rsquo;t take the many chances to sell out to large companies earlier in its existence.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;I am dreaming of a Web that caters to a kind of person who no longer exists. A private person, a person who is a mystery, to the world and — which is more important — to herself.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;The type of web (and person) she mentions already existed and still exists: you can use private email, private Facebook messages, protected Twitter accounts and use other services that guarantee privacy, even relying on end-to-end encryption so only the sender and receiver can see any content. Arguably, this was the first web, the one many of us were using 10 or 15 years ago. The problem is that she fails to see the flip side of her argument: what about those of us who are very public people, how could we share things with the world without relying on a gatekeeper or third-party before the internet and, arguably, before Web 2.0&amp;rsquo;s concepts became mainstream?&lt;/p&gt;

&lt;p&gt;This is why she&amp;rsquo;s writing her review in the New York Review and not by monetizing a personal blog. She seems to believe in the gatekeeper, the Web 1.0 (or Person 1.0 from her article) and the tight separation of career and personal life, of the private persona that lives their life and the public persona that does their work (or perhaps I&amp;rsquo;m the one who is spouting pop psychology now).&lt;/p&gt;

&lt;p&gt;As said, this was a brilliantly written review even although I disagree with many of the arguments in it. The Social Network (and indeed Facebook itself) is a great advertisement for the beauty and power of software: that someone can produce something that will change the world from their university dorm room with scarce resources, no corporate sponsors, some programming experience and a lot of hard work. It&amp;rsquo;s the antithesis of programs like X Factor and other reality TV that spouts the lie to society that success comes from being lucky enough to be picked by a corporation and that fame itself is the thing worth striving for.&lt;/p&gt;

&lt;p&gt;Start showing films like The Social Network in schools. Get high school kids writing software rather than the letters in Word. Teach them how to write Facebook and mobile applications, programs that they and their friends will use outside of school. Let us, as software engineers, rekindle the passion that got us into this field in the first place and let&amp;rsquo;s see a return to late-night coding binges and building useful stuff for fun. Let&amp;rsquo;s see the youth of tomorrow look at our field and think &amp;ldquo;wow, that&amp;rsquo;s cool, I want to do that too&amp;rdquo;.&lt;/p&gt;
</content></entry><entry><title>Why I Left Linux and went to Apple</title><link href="http://mikemcquaid.com/2010/09/21/why-i-left-linux/"/><updated>2010-09-21T00:00:00+01:00</updated><id>http://mikemcquaid.com/2010/09/21/why-i-left-linux</id><content type="html">&lt;p&gt;I originally bought a MacBook to use as a nice Linux laptop and for some iPhone and Qt OSX development. Shortly afterwards I got engaged which made me think about the future and how I spent my time a bit more. Linux is great for many use-cases but I just kept finding myself getting increasingly fed up with trying to use it on the desktop. My problems included having DVD playback not work quite correctly, having to manually edit configuration files in a text editor just to get some piece of hardware that worked instantly in OSX and Windows working and various other issues that wasted my time. Due to a kernel bug in Linux affecting my MacBook, I found myself using OSX more and more for work and finally moved across completely to my MacBook and also removing Linux from my desktop to relegate it to a Windows-only games machine. I&amp;rsquo;m now only running Linux on my NAS, this server, TV and phone.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m a software engineer and I like writing code. I don&amp;rsquo;t mind doing sysadmin, I did it at my previous employer and do it on this server but my main love with computers will always be programming. Moving to OSX gave me a system that &amp;ldquo;Just Works&amp;rdquo; and resulted in me having more time to work on interesting coding projects and wasting less time trying to make my computer do what it is meant to.&lt;/p&gt;

&lt;p&gt;I think the reason people become so passionate about Apple&amp;rsquo;s products is that they really focus on not bothering the user unless they have to through making sensible design decisions rather than worrying about edge cases (an unfortunate affliction for software engineers). A great example of this is the suspend behaviour. Firstly, suspend and resume on Mac is 100% reliable, I&amp;rsquo;ve never had my machine not come up after suspending. It&amp;rsquo;s quick, it occurs on you putting the lid down and it quickly becomes second nature to do so. Another great example of Apple&amp;rsquo;s design focus is what happens when your battery runs out after you&amp;rsquo;ve already put your lid down and suspended (&lt;strong&gt;UPDATE:&lt;/strong&gt; This feature is known as &lt;a href=&quot;http://en.wikipedia.org/wiki/Hibernation_(computing)#Mac_OS_X&quot;&gt;Safe Sleep&lt;/a&gt; and combines hibernate and sleep. This is possible on Linux but isn&amp;rsquo;t default on any distribution I&amp;rsquo;ve ever used). On Windows (on older versions at least, haven&amp;rsquo;t tested this on 7) and on Linux: sucks, you shouldn&amp;rsquo;t have let your battery run out, you&amp;rsquo;ve lost all your work. On OSX: it hibernates automatically some time before the battery runs out so your work is saved.&lt;/p&gt;

&lt;p&gt;I explained this to my wife and she asked &amp;ldquo;Why doesn&amp;rsquo;t everyone do it that way?&amp;rdquo;. I didn&amp;rsquo;t know. I suspect because it&amp;rsquo;s a hard problem and it doesn&amp;rsquo;t affect many people. The problem is that, although an edge case, when it does affect you it&amp;rsquo;s incredibly frustrating. When I use an Apple product it feels like they care about you enjoying your experience. They care if you lose work so they try and stop you doing so. On Linux, it just felt that whatever went wrong it was my fault for not RTFM. This came across from the OS itself and the developers and users I would ask for help.&lt;/p&gt;

&lt;p&gt;Even if you use Linux or Windows, I encourage you to be influenced by Apple when you design your software: do the most sensible thing for the user at all times and don&amp;rsquo;t bother them. Don&amp;rsquo;t worry so much about edge cases and just try and transparently help the user without bothering them. This is why people pay a premium for Apple products. Better to make something that&amp;rsquo;s great at doing a few things in a way the user will love than possible to do everything if the user tries hard enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I didn&amp;rsquo;t mention the distribution I&amp;rsquo;ve used because the above applied to every one I had used at the stage I left. Even on well supported Dell hardware (Latitude D620) I never had 100% reliable suspend on Fedora, Debian, Kubuntu, OpenSUSE, Arch Linux or Gentoo. I bought the laptop for Linux as a friend had a MacBook; it was really well supported and worked great and he&amp;rsquo;s a kernel hacker so I thought it was a good bet. Turns out the newer version I bought had the above mentioned kernel bugs causing only one core to be usable (ACPI bug).&lt;/p&gt;
</content></entry><entry><title>Windows Autologin Lock Screen</title><link href="http://mikemcquaid.com/2010/09/19/windows-autologin-lock-screen/"/><updated>2010-09-19T00:00:00+01:00</updated><id>http://mikemcquaid.com/2010/09/19/windows-autologin-lock-screen</id><content type="html">&lt;p&gt;Something I miss when I used Windows is the nice autologin feature from KDE&amp;rsquo;s login manager (KDM). Autologin always struck me as a bit insecure; why have a password if you are going to bypass it completely? KDM&amp;rsquo;s solution was pretty nice, it allowed you to be logged in automatically (so that everything that runs on startup started loading) and lock the desktop before it appeared so that when you turned on your computer you would still get a password prompt but would unlock it to find that all your applications had already loaded.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve managed to emulate this functionality in Windows by using the login scripts. This script should work in Windows 2000 or any later version but the setup instructions may vary.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a file named LockWorkStation.vbs with the contents:&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;vbnet&quot;&gt;&lt;span class=&quot;n&quot;&gt;WScript&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;CreateObject&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;WScript.Shell&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Run&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_&lt;/span&gt;
    &lt;span class=&quot;s&quot;&gt;&amp;quot;rundll32 user32.dll,LockWorkStation&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Access the hidden Advanced Users Control Panel by running &amp;ldquo;&lt;code&gt;control.exe userpasswords2&lt;/code&gt;&amp;rdquo; from a Run dialog or command prompt.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &amp;ldquo;Users&amp;rdquo; tab, uncheck &amp;ldquo;Users must enter a user name and password to use this computer&amp;rdquo;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Windows 7 Home Premium, Windows Vista Home Premium and Windows XP Home Edition don&amp;rsquo;t come with the necessary group policy editor so you can either Google for ways of using gpedit.msc (either downloading the needed files or editing the registry manually) or just put the above script in your Startup folder. The latter option will be less secure as someone could get access to your machine after the desktop loads but before the script does but it will still work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &amp;ldquo;Advanced&amp;rdquo; tab under &amp;ldquo;Advanced user management&amp;rdquo; click &amp;ldquo;Advanced&amp;rdquo;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &amp;ldquo;Users&amp;rdquo; in the left-hand pane of the &amp;ldquo;Local Users and Groups&amp;rdquo; window, right-click on the user you want to autologin from the right-hand pane and select &amp;ldquo;Properties&amp;rdquo;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the &amp;ldquo;Profile&amp;rdquo; tab, enter &amp;ldquo;LockWorkstation.vbs&amp;rdquo; in the &amp;ldquo;Logon script:&amp;rdquo; box.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a folder somewhere on disk (I recommend My Documents/Scripts) that you want to store the script in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Right-click on the folder and select &amp;ldquo;Properties&amp;rdquo;. From the &amp;ldquo;Sharing&amp;rdquo; tab, click &amp;ldquo;Advanced Sharing&amp;hellip;&amp;rdquo;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check &amp;ldquo;Share this folder&amp;rdquo; and enter &amp;ldquo;NetLogon&amp;rdquo; in the &amp;ldquo;Share name&amp;rdquo; box. Set the number of simultaneous users to 1.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &amp;ldquo;Permissions&amp;rdquo; and ensure you are the only user listed and you have only &amp;ldquo;Read&amp;rdquo; access enabled.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;You&amp;rsquo;re now done. When you next log in, you shouldn&amp;rsquo;t see the desktop at all (or incredibly briefly) and the screen should lock immediately and require your password to unlock while all your stuff happily loads in the background.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; This was &lt;a href=&quot;http://lifehacker.com/5645098/make-windows-load-your-desktop-before-you-log-in&quot;&gt;posted on Lifehacker&lt;/a&gt; and they made a video walkthrough for this post:&lt;/p&gt;

&lt;object type=&quot;application/x-shockwave-flash&quot; style=&quot;width:640px; height:390px;&quot; data=&quot;http://www.youtube.com/v/8sVzE-zInfM&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/8sVzE-zInfM&quot; /&gt;&lt;/object&gt;

</content></entry><entry><title>KDE - Blog from KOrganizer HOWTO</title><link href="http://mikemcquaid.com/2008/09/27/kde-blog-from-korganizer-howto/"/><updated>2008-09-27T00:00:00+01:00</updated><id>http://mikemcquaid.com/2008/09/27/kde-blog-from-korganizer-howto</id><content type="html">&lt;p&gt;&lt;strong&gt;Blog from KOrganizer?&lt;/strong&gt; What kind of &lt;strong&gt;madness&lt;/strong&gt; is this? Apparently some crazy fool decided to give you the ability to post journals from KOrganizer to your blog. Let&amp;rsquo;s learn how to do it!&lt;/p&gt;

&lt;p&gt;Firstly open &lt;strong&gt;KOrganizer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When it has opened right-click anywhere in the &lt;em&gt;&amp;ldquo;Calendars&amp;rdquo;&lt;/em&gt; area in the bottom-left  and select &lt;em&gt;&amp;ldquo;Add&amp;hellip;&amp;rdquo;&lt;/em&gt; from the drop-down menu that appears.&lt;/p&gt;

&lt;p&gt;Select &lt;em&gt;&amp;ldquo;Journal in a blog&amp;rdquo;&lt;/em&gt; from the &lt;em&gt;&amp;ldquo;Resource Configuration&amp;rdquo;&lt;/em&gt; dialog.&lt;/p&gt;

&lt;p&gt;Fill in the &lt;em&gt;&amp;ldquo;Resource Configuration&amp;rdquo;&lt;/em&gt; dialog.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt;: Choose a descriptive name for your resource, this is how KOrganizer will describe it to you in future. KOrganizer won&amp;rsquo;t reference this resource as being a blog again so you may want to choose something suffixed with &lt;em&gt;&amp;ldquo;blog&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;XML-RPC URL&lt;/strong&gt;: This depends on your blog but for Wordpress and Drupal this is the main URL followed by &lt;em&gt;&amp;ldquo;/xmlrpc.php&lt;/em&gt;&amp;rdquo;, for LiveJournal it is &lt;em&gt;&amp;ldquo;http://www.livejournal.com/interface/blogger&amp;rdquo;&lt;/em&gt; and for Blogger it is &lt;em&gt;&amp;ldquo;http://www.blogger.com/feeds/$YOUR_USER_ID/blogs&amp;rdquo;&lt;/em&gt;. For other blogs, consult their documentation or ask me for help and I&amp;rsquo;ll do my best to work it out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Username&lt;/strong&gt;: This is the username you use to login and make blog posts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Password&lt;/strong&gt;: This is the password you use to login with the above username and make blog posts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API&lt;/strong&gt;: Use &amp;ldquo;(Wordpress, Drupal &amp;lt; 5.6 workarounds)&amp;rdquo; if you use either of those blogs. Otherwise it is MovableType for Drupal, Google Blogger Data for Blogger and Blogger for LiveJournal. The LiveJournal API is unlikely to work with LiveJournal as it isn&amp;rsquo;t yet complete. If you wish to implement the LiveJournal full API rather than using legacy Blogger one then please contact me.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blog&lt;/strong&gt;: When you have chosen an API this list will be automatically populated using items from the server. If there is only one entry, it will be greyed out but the entry&amp;rsquo;s text shown and selected. If there are more than one &lt;em&gt;(e.g. Drupal has one for pages and one for posts)&lt;/em&gt; they will be selectable. If there is nothing new displayed then one or more of your XML-RPC/username/password/API are probably incorrect.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Posts to download&lt;/strong&gt;: This chooses how many posts the API will download and sync. If you, like me, have made hundreds of posts then you probably want to keep this number reasonably low.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Reload&lt;/strong&gt;: This defines how often KOrganizer will download new blog posts from the server without notification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Save&lt;/strong&gt;: This defines when KOrganizer will upload new blog posts to the server without notification. You probably don&amp;rsquo;t want to have this set to &lt;em&gt;&amp;ldquo;On every change&amp;rdquo;&lt;/em&gt; unless you want it to be uploaded as soon as you hit &lt;em&gt;&amp;ldquo;Save&amp;rdquo;&lt;/em&gt; in the next view.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;You should now see your new blog resource displayed in the bottom-left corner. Let&amp;rsquo;s try making a new blog post. Activate the journal view by clicking the journal button.&lt;/p&gt;

&lt;p&gt;We are now in the journal view and you can see on the left-hand pane that KOrganizer has successfully downloaded some of my blog posts. If we want to create a new one then click on the add journal button.&lt;/p&gt;

&lt;p&gt;Fill in the &lt;em&gt;&amp;ldquo;Edit Journal Entry&amp;rdquo;&lt;/em&gt; dialog.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Title&lt;/strong&gt;: You probably want to change the title of the blog post from the default.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Date/Time&lt;/strong&gt;: On most blogs selecting the date/time to somewhere in the future means the blog won&amp;rsquo;t publicly appear until then.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content&lt;/strong&gt;: Write something about how I am awesome, like the pictured example.The rich-text should be displayed on your blog correctly &lt;em&gt;(albeit with slightly nasty HTML)&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Select Categories&lt;/strong&gt;: This list should have been populated with the ones from your blog and from the KOrganizer defaults. Sadly, I can&amp;rsquo;t seem to remove the latter and selecting them will do nothing unless they have been created on your blog.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;When you click &lt;em&gt;&amp;ldquo;OK&amp;rdquo;&lt;/em&gt; you may be prompted which resource you wish to save to. Select the resource we just created.&lt;/p&gt;

&lt;p&gt;If you chose &lt;em&gt;&amp;ldquo;on every change&amp;rdquo;&lt;/em&gt; for &lt;em&gt;&amp;ldquo;Automatic Save&amp;rdquo;&lt;/em&gt; in the &lt;em&gt;&amp;ldquo;Resource Configuration&amp;rdquo;&lt;/em&gt; dialog then your post has probably whizzed its way off to your blog already. If not, you can manually save it by right-clicking on your resource and selecting &lt;em&gt;&amp;ldquo;Save&amp;rdquo;&lt;/em&gt; from the drop-down menu that appears.&lt;/p&gt;

&lt;p&gt;I hope this was and is useful to some people. If you &lt;strong&gt;find any bugs, have any problems or want any other features&lt;/strong&gt; then please let me know either by email, my posting on this blog or by &lt;a href=&quot;https://bugs.kde.org/enter_bug.cgi?format=guided&quot;&gt;filing a bug in the KDE bugtracker&lt;/a&gt;.&lt;/p&gt;
</content></entry><entry><title>Using .asoundrc to remap ALSA channels for Audacity</title><link href="http://mikemcquaid.com/2008/07/17/using-asoundrc-to-remap-alsa-channels-for-audacity/"/><updated>2008-07-17T00:00:00+01:00</updated><id>http://mikemcquaid.com/2008/07/17/using-asoundrc-to-remap-alsa-channels-for-audacity</id><content type="html">&lt;p&gt;My sound card (a &lt;a href=&quot;http://en.wikipedia.org/wiki/Sound_Blaster_Audigy&quot;&gt;Creative Sound Blaster Audigy 2&lt;/a&gt;) has got &lt;strong&gt;lots of inputs&lt;/strong&gt;, especially with the nice drive bay expansion port.&lt;/p&gt;

&lt;p&gt;Unfortunately, the default ALSA device seems to have no way to access the &lt;em&gt;&amp;ldquo;Line 2/Mic 2&amp;rdquo;&lt;/em&gt; channel on the &lt;strong&gt;front drive-bay expansion&lt;/strong&gt; which I use for recording due to it seemingly being the lowest-noise channel.&lt;/p&gt;

&lt;p&gt;If you point JACK&amp;rsquo;s &lt;em&gt;&amp;ldquo;Input Device&amp;rdquo;&lt;/em&gt; to &lt;em&gt;&amp;ldquo;hw:0,2&amp;rdquo;&lt;/em&gt; then it will pick up the &lt;strong&gt;16 channel inputs&lt;/strong&gt; and you can connect them nicely to be able to access this port (channels 9 and 10) in JACK-enabled applications.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m currently working on some &lt;strong&gt;voice acting&lt;/strong&gt; for &lt;a href=&quot;http://thenamelessmod.com/editors_choice/&quot;&gt;&lt;strong&gt;The Nameless Mod&lt;/strong&gt;&lt;/a&gt; (which is looking like it&amp;rsquo;s going to be spectacular, check it out) and the best program I&amp;rsquo;ve found to do this recording in is &lt;a href=&quot;http://audacity.sourceforge.net/&quot;&gt;Audacity&lt;/a&gt;. &lt;a href=&quot;http://audacity.sourceforge.net/&quot;&gt;Audacity&lt;/a&gt; however seems to &lt;strong&gt;stubbornly refuse&lt;/strong&gt; to let me use its JACK support (which is apparently buggy beyond use currently anyway).&lt;/p&gt;

&lt;p&gt;I found that if I point &lt;a href=&quot;http://audacity.sourceforge.net/&quot;&gt;Audacity&lt;/a&gt; to record 16 channels from &lt;em&gt;&amp;ldquo;hw:0,2&amp;rdquo;&lt;/em&gt; then I can access &lt;strong&gt;all the Audigy&amp;rsquo;s input channels&lt;/strong&gt; (as JACK does) but unfortunately this means that every time I record I get all 16 channels (a PortAudio limitation from what I can tell from the source). This isn&amp;rsquo;t ideal as it means, to record a bunch of lines in rapid succession, I need to spend &lt;strong&gt;huge amounts of time&lt;/strong&gt; deleting the unwanted 15 other channels. As it&amp;rsquo;s not possible to select the channels to record from &lt;a href=&quot;http://audacity.sourceforge.net/&quot;&gt;Audacity&lt;/a&gt; I needed to get a little more creative and ended up with this:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;cl&quot;&gt;&lt;span class=&quot;nv&quot;&gt;pcm.mic2&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;plug&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;slave.pcm&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;hw:0,2&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;slave.channels&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;ttable.0.8&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;ttable.1.9&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;ttable.8.0&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
    &lt;span class=&quot;nv&quot;&gt;ttable.9.1&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;If you add the above to your &amp;ldquo;~/.&lt;a href=&quot;http://www.alsa-project.org/main/index.php/Asoundrc&quot;&gt;asoundrc&lt;/a&gt;&amp;rdquo; or &lt;em&gt;&amp;ldquo;/etc/asound.conf&amp;rdquo;&lt;/em&gt; then you will find that in Audacity&amp;rsquo;s &amp;ldquo;Recoding&amp;rdquo; dropdown you will now have the option &lt;em&gt;&amp;ldquo;ALSA: mic2&amp;rdquo;&lt;/em&gt;. This is simply the same as &lt;em&gt;&amp;ldquo;hw:0,2&amp;rdquo;&lt;/em&gt; but with the 9th channel swapped with the 1st and the 10th swapped with the second, thus allowing you to select &lt;em&gt;&amp;ldquo;2: Stereo&amp;rdquo;&lt;/em&gt; or &lt;em&gt;&amp;ldquo;1: Mono&amp;rdquo;&lt;/em&gt; from the &lt;em&gt;&amp;ldquo;Channels&amp;rdquo;&lt;/em&gt; dropdown and get the Line/Mic 2 input(s) in Audacity &lt;strong&gt;without the need to constantly delete unwanted tracks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enjoy!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: You probably also want to ensure that Audacity records at the Audigy 2&amp;rsquo;s native rate of 48000Hz and use a 16-bit sample format.&lt;/em&gt;&lt;/p&gt;
</content></entry><entry><title>Konqueror with latest Adobe Flash HOWTO (Outdated)</title><link href="http://mikemcquaid.com/2007/12/30/konqueror-with-latest-adobe-flash-howto/"/><updated>2007-12-30T00:00:00+00:00</updated><id>http://mikemcquaid.com/2007/12/30/konqueror-with-latest-adobe-flash-howto</id><content type="html">&lt;p&gt;&lt;strong&gt;This page is outdated. In KDE4 Konqueror will work with the latest Adobe Flash plugin and there is now &lt;a href=&quot;http://get.adobe.com/flashplayer/&quot;&gt;a 64-bit version of Flash available for Linux&lt;/a&gt;. I highly recommend you use one of these instead of the guide below but I&amp;rsquo;m leaving it here in case you need to use it for another reason.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I agree with Lubos. &lt;a href=&quot;http://blogs.kde.org/node/3162&quot;&gt;Flash sucks.&lt;/a&gt; However, most of us &lt;em&gt;have&lt;/em&gt; or &lt;em&gt;want&lt;/em&gt; to use it for things like YouTube or &lt;a href=&quot;http://www.weebls-stuff.com/songs/badgers/&quot;&gt;watching badgers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you may be aware the latest versions of Flash depend on &lt;strong&gt;XEmbed&lt;/strong&gt; support which Konqueror lacks without various patches to KDELibs and KDEBase which haven&amp;rsquo;t been applied by my distribution and &lt;strong&gt;I couldn&amp;rsquo;t get working&lt;/strong&gt; even when I manually patched the necessary parts of KDE myself. I was using the older versions but it appears they have &lt;a href=&quot;http://www.adobe.com/support/security/bulletins/apsb07-20.html&quot;&gt;outstanding&lt;/a&gt; and actively exploited security holes that they have only fixed in the XEmbed-supporting versions.&lt;/p&gt;

&lt;p&gt;Mike needs his &lt;strong&gt;YouTube&lt;/strong&gt; fix without haxors running rife on his box. Who can save him?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://www.kde.org/applications/multimedia/kmplayer/&quot;&gt;KMPlayer&lt;/a&gt; to the rescue!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;KMPlayer is my media player of choice as it allows you to trivially switch between &lt;strong&gt;XINE&lt;/strong&gt;, &lt;strong&gt;MPlayer&lt;/strong&gt; and &lt;strong&gt;GStreamer&lt;/strong&gt; backends and, as of version 0.10.0, has a nifty backend that allows you to use XEmbed-supporting plugins, including Adobe&amp;rsquo;s Flash plugin, which can then be embedded in Konqueror to allow Flash to work trivially.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install KMPlayer&lt;/strong&gt; (version 0.10.0c or higher). It is included in all the major distributions I&amp;rsquo;ve ever used. Ensure it is installed/compiled with the &lt;em&gt;&amp;ldquo;NPP&amp;rdquo;&lt;/em&gt; backend enabled which allows the playback of Netscape XEmbed plugins (this depends on your distribution).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Run KMPlayer&lt;/strong&gt; so it creates its config file. Close it. &lt;em&gt;(This step probably isn&amp;rsquo;t necessary but it won&amp;rsquo;t do any harm)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Run&lt;/strong&gt; the following commands:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;kwriteconfig --file kmplayerrc &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    --group &lt;span class=&quot;s2&quot;&gt;&amp;quot;application/x-shockwave-flash&amp;quot;&lt;/span&gt; --key player npp
kwriteconfig --file kmplayerrc &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    --group &lt;span class=&quot;s2&quot;&gt;&amp;quot;application/x-shockwave-flash&amp;quot;&lt;/span&gt; --key plugin &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    /usr/lib/flashplugin-nonfree/libflashplayer.so
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Change&lt;/strong&gt; the &lt;em&gt;&amp;ldquo;libflashplayer.so&amp;rdquo;&lt;/em&gt; section depending on where the Adobe Flash plugin was installed on your distribution. The above example is where it is installed on Gentoo. &lt;em&gt;(People have replied below with where it is stored on various systems. If you can&amp;rsquo;t find yours, you probably have a &lt;strong&gt;locate&lt;/strong&gt; program installed so trying running &amp;ldquo;locate libflashplayer.so&amp;rdquo; for an idea)&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Open Konqueror&lt;/strong&gt; and click &lt;em&gt;&amp;ldquo;Settings &gt; Configure Konqueror&amp;hellip;&amp;rdquo;&lt;/em&gt;. In the new window navigate to &lt;em&gt;&amp;ldquo;File Associations&amp;rdquo;&lt;/em&gt; in the left-hand panel and select &lt;strong&gt;&lt;em&gt;&amp;ldquo;application/x-shockwave-flash&amp;rdquo;&lt;/em&gt;&lt;/strong&gt;. Click the &lt;em&gt;&amp;ldquo;Embedding&amp;rdquo;&lt;/em&gt; tab and click &lt;em&gt;&amp;ldquo;Add&amp;hellip;&amp;rdquo;&lt;/em&gt;. Select &lt;em&gt;&amp;ldquo;Embedded MPlayer for KDE&amp;rdquo;&lt;/em&gt; from the new window. If it is not there then you may need to restart KDE or run &lt;em&gt;&amp;ldquo;kbuildsycoca&amp;rdquo;&lt;/em&gt; from a terminal. Close all the opened windows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enjoy&lt;/strong&gt; a working Flash in Konqueror!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;What is wrong? You&amp;rsquo;re running a &lt;strong&gt;x86_64 machine&lt;/strong&gt; &lt;em&gt;(like me)&lt;/em&gt; so the above doesn&amp;rsquo;t work? Never fear! If you manage to get a 32-bit version of &lt;strong&gt;&lt;em&gt;&amp;ldquo;knpplayer&amp;rdquo;&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;(the small program that runs the plugins)&lt;/em&gt; and install that in your &lt;strong&gt;$PATH&lt;/strong&gt; before the 64-bit version then it will all just work like magic! Note that you&amp;rsquo;ll need 32-bit versions of the various dependent libraries also &lt;em&gt;(it seems just to be GTK, Cairo, X11 and DBus stuff)&lt;/em&gt;.&lt;/p&gt;
</content></entry><entry><title>IBM Cell SDK/SDK for Multicore Acceleration on Debian/Ubuntu HOWTO</title><link href="http://mikemcquaid.com/2007/12/15/ibm-cell-sdksdk-for-multicore-acceleration-on-debianubuntu-howto/"/><updated>2007-12-15T00:00:00+00:00</updated><id>http://mikemcquaid.com/2007/12/15/ibm-cell-sdksdk-for-multicore-acceleration-on-debianubuntu-howto</id><content type="html">&lt;p&gt;Today I battled with trying to get &lt;strong&gt;IBM&amp;rsquo;s Cell SDK 3.0&lt;/strong&gt; &lt;em&gt;(now known as the &lt;strong&gt;SDK for Multicore Acceleration&lt;/strong&gt;)&lt;/em&gt; installed on my Debian AMD64 machine. This would cause slight grief even with a regular Debian machine as IBM only formally supports Fedora and RHEL so only provides RPMs. This is worsened by the fact that &lt;strong&gt;a bunch of the packages aren&amp;rsquo;t even available from IBM&lt;/strong&gt; but require perusal of some provided yum configuration files to find.&lt;/p&gt;

&lt;p&gt;Firstly I recommend you download the &lt;strong&gt;CellSDK-Devel-Fedora_3.0.0.1.0.iso&lt;/strong&gt; and &lt;strong&gt;CellSDK-Extras-Fedora_3.0.0.1.0.iso&lt;/strong&gt; (&lt;em&gt;current at time of writing&lt;/em&gt;) from &lt;a href=&quot;http://www.ibm.com/developerworks/power/cell/pkgdownloads.html?S_TACT=105AGX16&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Then when you have downloaded them mount them somewhere on your filesystem.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;mount -o loop &lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/CellSDK-Devel-Fedora_3.0.0.1.0.iso &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    /tmp/CellSDK-Devel-Fedora/
mount -o loop &lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/CellSDK-Extras-Fedora_3.0.0.1.0.iso &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    /tmp/CellSDK-Extras-Fedora/
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;We&amp;rsquo;ve downloaded the two RPMs by IBM. If you install these on Fedora they will provide you with some &lt;strong&gt;yum repositories for the Barcelona Supercomputing Centre&lt;/strong&gt;. These will need to be downloaded manually as we aren&amp;rsquo;t on a RPM-based system.&lt;/p&gt;

&lt;p&gt;If you are running &lt;strong&gt;Ubuntu Gutsy on x86_64 or x86&lt;/strong&gt; run:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;apt-get install ppu-gcc ppu-gdb spu-g++ &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
    spu-gdb cell-programming-primer
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;If you are running &lt;strong&gt;Ubuntu Gutsy on the Cell&lt;/strong&gt; run:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;apt-get install cell-sdk
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Otherwise run the following:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;apt-get install wget &lt;span class=&quot;c&quot;&gt;#Install wget if it is not already&lt;/span&gt;
mkdir openrpm
&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;openrpm
wget -l 1 -c -np -nd -r http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/ -A .rpm
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;The above assumes you are on an x86_64 machine. If you are using the Cell, a regular x86 or a PPC 64-bit machine change the &lt;strong&gt;&amp;lsquo;x86_64&amp;rsquo;&lt;/strong&gt; to &lt;strong&gt;&amp;lsquo;cbea&amp;rsquo;&lt;/strong&gt;, &lt;strong&gt;&amp;lsquo;x86&amp;rsquo;&lt;/strong&gt; or &lt;strong&gt;&amp;lsquo;ppc64&amp;rsquo;&lt;/strong&gt; accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The following instructions apply regardless of your Debian/Ubuntu variant or architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Next, if we are on &lt;strong&gt;x86_64&lt;/strong&gt;, we want to create a nice little script to handily convert the i386 architecture files to amd64 so they will install nicely when we convert them to debs. This is safe as all the stuff these packages install gets chucked into /opt/.&lt;/p&gt;

&lt;p&gt;I recommend we name it &lt;em&gt;&amp;ldquo;fixcelldebsarch.sh&amp;rdquo;&lt;/em&gt; and stick it in your $HOME. This is only necessary if you are on &lt;strong&gt;x86_64 not x86&lt;/strong&gt; and &lt;em&gt;(probably)&lt;/em&gt; won&amp;rsquo;t work on the Cell or another PPC64.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;#~/fixcelldebsarch.sh&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;OWD&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;i in &lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;ls -d */&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;
    sed -ie &lt;span class=&quot;s1&quot;&gt;&amp;#39;s/Architecture: i386/Architecture: amd64/&amp;#39;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
        debian/control
    dpkg-buildpackage
    &lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&amp;quot;$OWD&amp;quot;&lt;/span&gt;
    rm -r */ *.gz *.changes *.dsc
&lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;em&gt;(Thanks to Jon for the fix to avoid mess when using symbolic links.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Next we want to convert the various RPMs into DEBs for our Debian system so the dependencies are nicely handled and they can be uninstalled. Install the &lt;strong&gt;&amp;lsquo;alien&amp;rsquo;&lt;/strong&gt; package if you have not already.&lt;/p&gt;

&lt;p&gt;On the following lines replace the occurrences of &amp;lsquo;/&lt;strong&gt;x86_64&lt;/strong&gt;/&amp;rsquo; with &amp;lsquo;/&lt;strong&gt;cbea&lt;/strong&gt;/&amp;rsquo;, &amp;lsquo;/&lt;strong&gt;x86&lt;/strong&gt;/&amp;rsquo; or &amp;lsquo;/&lt;strong&gt;ppc64&lt;/strong&gt;/&amp;rsquo; using the same criteria as above.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;open
&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;i in ../openrpm/*.rpm
    &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;alien --scripts &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
~/fixcelldebsarch.sh &lt;span class=&quot;c&quot;&gt;#Only needed on x86_64&lt;/span&gt;
dpkg -i *.deb

&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;devel
&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;i in /tmp/CellSDK-Devel-Fedora/x86_64/*.rpm
    &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;alien --scripts &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
~/fixcelldebsarch.sh &lt;span class=&quot;c&quot;&gt;#Only needed on x86_64&lt;/span&gt;
dpkg -i *.deb

&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;extras
&lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;i in /tmp/CellSDK-Extras-Fedora/x86_64/*.rpm
    &lt;span class=&quot;k&quot;&gt;do &lt;/span&gt;alien --scripts &lt;span class=&quot;nv&quot;&gt;$i&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;done&lt;/span&gt;
~/fixcelldebsarch.sh &lt;span class=&quot;c&quot;&gt;#Only needed on x86_64&lt;/span&gt;
dpkg -i *.deb
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;It should have been fairly obvious what was going on above. &lt;strong&gt;This should have installed all the necessary packages for the Cell SD&lt;/strong&gt;K without breaking your system and allowing Debian/Ubuntu packages to override these versions.&lt;/p&gt;

&lt;p&gt;I hope this all works; if anyone spots any typos, has any suggestions or needs any help then give me a shout!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updated: Added Gutsy information. Thanks Bart!&lt;/strong&gt;&lt;/p&gt;
</content></entry><entry><title>Community Driven Software Development</title><link href="http://mikemcquaid.com/2007/06/01/community-driven-software-development/"/><updated>2007-06-01T00:00:00+01:00</updated><id>http://mikemcquaid.com/2007/06/01/community-driven-software-development</id><content type="html">&lt;h3&gt;Abstract&lt;/h3&gt;

&lt;p&gt;Some people have suggested that the future of E-Commerce will be shaped by various kinds of &lt;em&gt;&amp;ldquo;communities&amp;rdquo;&lt;/em&gt; (both online and offline); other are more sceptical about the potential. This report analyses the competing argument, focusing on the key actors and using Free and Open Source Software (FOSS) as a case-study to analyse the effects of online communities.&lt;/p&gt;

&lt;h3&gt;Introduction&lt;/h3&gt;

&lt;p&gt;The future of E-Commerce is shaped largely by technological and sociological developments in the field and within society. On the technological front, one of the backbones allowing Internet-based E-Commerce to be possible is Free and Open Source Software (FOSS). Many Email, CMS systems, databases and web servers are FOSS and CRM systems and the majority of other enterprise applications will be running on a FOSS operating system.&lt;/p&gt;

&lt;p&gt;As a result, the development and shaping of these technologies is crucial in the development of E-Commerce and the community-based software model has moved out of the universities and into the data-centres, with large corporations such as Sun, IBM, HP and Novell relying and heavily contributing to FOSS and steadily more companies making use of FOSS components.&lt;/p&gt;

&lt;p&gt;FOSS shows some promise but there are also possible issues that may need to be addressed before it could ever replace traditional proprietary software.&lt;/p&gt;

&lt;h3&gt;Key Events&lt;/h3&gt;

&lt;p&gt;In the late 1950s when mainframes started to appear in academic institutions the software available to perform tasks was freely shared by programmers within these institutions, similarly to how academic research is shared in other fields. As mainframes found their way into the business world in the late 1970s, the programmers and academic institutions realised the ability to obtain monetary reward for their software or wished to keep the intricacies of what they were doing secret. As time went on more software was being sold, frequently with prohibitive license agreements, preventing unauthorised duplication and/or restricting access to the source code used in creating the software.&lt;/p&gt;

&lt;p&gt;In 1983 a programmer at MIT named Richard Stallman created the GNU project with the goal of designing an operating system with an approach closer to that adopted in the 1950s-70s: the free sharing of information. In 1985 he founded the Free Software Foundation (FSF) whose goal was to promote and support his new &lt;em&gt;&amp;ldquo;free software&amp;rdquo;&lt;/em&gt; movement. The key foundation in this was the creation of the GNU General Public License (GPL), a license for the new software allowing any user of the software access to the source code and the rights to modify and redistribute any changed version. This software does not necessarily have to be provided monetarily free but frequently is [Stallman, 2002].&lt;/p&gt;

&lt;p&gt;In 1989 the University of California, Berkeley released Networking Release 1, a version of their Unix operating system where all the proprietary AT&amp;amp;T Unix code had been rewritten, allowing use by non-licensees of AT&amp;amp;T code and was redistributable under the BSD license. This license was even more permissive than the GPL, allowing proprietary commercial use and modified versions to be used in proprietary software. BSD code has been notably used in the networking layer of Microsoft Windows and heavily used in Apple&amp;rsquo;s Mac OS X operating system&amp;rsquo;s core.&lt;/p&gt;

&lt;p&gt;In 1991 Linus Torvalds, a student at the University of Helsinki, decided to create a kernel to better learn about computer hardware. He publicly released this under the GPL license. This is now the core of the Linux operating system, now an important part of many businesses such as Google, Novell, HP, Red Hat (the first company to sell the Linux operating system) and IBM. The projected income for this &lt;em&gt;&amp;ldquo;free&amp;rdquo;&lt;/em&gt; operating system&amp;rsquo;s software, servers and desktop is predicted to be worth $40 billion by 2010 and is currently worth $18 billion in a study by IDC analysts.&lt;/p&gt;

&lt;p&gt;Since Linux was created companies have been open-sourcing previously proprietary solutions. Two large examples of this was Sun releasing the code for StarOffice, which became OpenOffice.org and Netscape releasing the source for Netscape Communicator, which became Mozilla&amp;rsquo;s Firefox and other projects.&lt;/p&gt;

&lt;p&gt;Linux is used across computing in embedded devices, servers, supercomputers, mainframes and desktop machines. It is seeing increased use in governments such as South Korea and Germany and in schemes such as the One Laptop Per Child scheme, delivering a low-cost laptop computer to children in developing nations, using FOSS to allow sale at $100.&lt;/p&gt;

&lt;h3&gt;Key Actors&lt;/h3&gt;

&lt;p&gt;IBM announced support for Linux in 1999, providing applications, support and working with the open-source community to provide support for it&amp;rsquo;s hardware. Today IBM employs more than 300 full-time staff to work on Linux. IBM also releases code under FOSS licenses, such as Eclipse (a software development tool) and Apache Derby (a high performance database). IBM is also currently engaged in a lawsuit with SCO over the intellectual property of the Linux operating system.&lt;/p&gt;

&lt;p&gt;HP supports the open-source community through employees with open-source job responsibilities and sell Linux workstations.&lt;/p&gt;

&lt;p&gt;Apple Inc. made extensive use of open-source software in the development of Mac OS X, and make use of large open-source projects such as CUPS and Samba in providing print and networking services respectively.&lt;/p&gt;

&lt;p&gt;Novell sells the Linux operating system for servers and desktops, acquiring major open-source companies Ximian and SUSE in 2003. In 2006 Novell reached a joint patent agreement with Microsoft, agreeing to collaborate on increasing interoperability between Windows and Linux each party agreeing not to sue the other for patent violations. This caused a rift in the FOSS development community; the collaboration implying that non-Novell Linux users could be sued by Microsoft. Jeremy Allison, a member of the Samba team and employee of Novell resigned in protest. The GPLv3 license is subject to debate on whether it will ban the rights on Novell to continue to develop Linux or prevent similar deals from occurring in the future.&lt;/p&gt;

&lt;p&gt;Microsoft was ruled by the US DOJ to hold a monopoly in the operating systems market so the development of open-source operating systems (such as Linux) or operating systems based on open-source software (such as Mac OS X) threatens their market share. As a result, Microsoft have a &lt;em&gt;&amp;ldquo;Get the facts&amp;rdquo;&lt;/em&gt; campaign, comparing the total cost of ownership of Linux and Microsoft operating systems. As previously mentioned, they have recently agreed to collaborate with Novell. Steve Ballmer, the CEO of Microsoft said, when speaking about the Novell deal that Linux &lt;em&gt;&amp;ldquo;uses our intellectual property&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Sun Microsystems supports Linux on its systems and open-sourced major pieces of software such as StarOffice, Java and its Solaris operating system. This makes them the largest commercial contributor of FOSS, at an estimated 312 million euros worth of programmer time by the EU-commission study &lt;em&gt;&amp;ldquo;Economic impact of open source software on innovation and the competitiveness of the Information and Communication Technologies (ICT) sector in the EU&lt;/em&gt;&amp;rdquo;. The FSF own the copyright on most GNU software and some non-GNU FOSS. They actively campaign against DRM, software patents and user interface copyright.&lt;/p&gt;

&lt;h3&gt;Potentials&lt;/h3&gt;

&lt;p&gt;Raymond argues that the proverb &lt;em&gt;&amp;ldquo;Necessity is the mother of invention&amp;rdquo;&lt;/em&gt; is especially relevant in the software world and the that &lt;em&gt;&amp;ldquo;Every good work of software starts by scratching a developer&amp;rsquo;s personal itch&amp;rdquo;&lt;/em&gt; [Raymond, 2001]. He claims that the reason the quality of software in the FOSS is so high is that developers tend to work on software that benefits them personally and that they enjoy working on. Another point is that &lt;em&gt;&amp;ldquo;Great [programmers] know what to &amp;hellip; reuse&lt;/em&gt;&amp;rdquo;, highlighting that time is frequently wasted in software development solving a common problem but, in the case of proprietary-software, existing &lt;em&gt;&amp;ldquo;encumbered&amp;rdquo;&lt;/em&gt; code is not or cannot be reused. Microsoft and Apple made use of existing BSD code in their development of their respective platform operating systems but cannot use any GPL code. However, all GPL applications can reuse this code in applications.&lt;/p&gt;

&lt;p&gt;Madanmohan and Deapos reveal some of the benefits of this reuse of FOSS, such as the open disclosure of bugs and performance details, frequent updates, documentation and the ability to modify the existing code, allowing a firm to aid their competitive position by reducing development costs and increasing development speed of new products [Madanmohan and Deapos, 2004]. They highlight the popularity of the BSD license over the GPL in companies, due to the ability to keep the modified source private and include only an attribution to the original source.&lt;/p&gt;

&lt;p&gt;Von Hippel and Lakhani discuss &lt;em&gt;&amp;ldquo;field support&amp;rdquo;&lt;/em&gt; for Apache, a popular FOSS web server and the most widely used web server on the Internet. Despite the official developers claiming no &lt;em&gt;&amp;ldquo;official&amp;rdquo;&lt;/em&gt; support availability for Apache, questions posted on a Usenet forum tend to receive helpful responses from other users. In a referenced poll by Serverwatch in the paper, Apache is ranked 4.5/5 for technical support compared to Netscape&amp;rsquo;s 4/5 and Microsoft&amp;rsquo;s 4/5 [Lakhani and von Hippel, 2003] These results are discussed to be motivated by reciprocity within the community, a desire to &lt;em&gt;&amp;ldquo;help the cause&lt;/em&gt;&amp;rdquo;, to gain reputation and intrinsic personal rewards. Another advantage highlighted of the community-support mechanism is the rapid response time and lack of financial cost.&lt;/p&gt;

&lt;p&gt;Castells raises the concept of a network society and states that electronic communication systems, such as the internet, give the flexibility of distribution without sacrificing performance and &lt;em&gt;&amp;ldquo;because of their superior performing capacity [they], through competition, are gradually eliminating centred, hierarchical forms of organisation in their specific realm of activity&lt;/em&gt;&amp;rdquo;[Castells, 2000]. This argument was used in the justification of the network enterprise, but illustrates the reasoning that open-source software, although frequently created by developers across vast geological differences and little face-to-face contact, can be seen as another form of &lt;em&gt;&amp;ldquo;the networked enterprise&lt;/em&gt;&amp;rdquo;, and operates similarly to a traditional business, albeit usually without same financial system. Castells claims his book &lt;em&gt;&amp;ldquo;The Internet Galaxy&amp;rdquo;&lt;/em&gt; was produced &lt;em&gt;&amp;ldquo;in the spirit of &amp;lsquo;open source&amp;rsquo; that is the root of the Internet world&lt;/em&gt;&amp;rdquo;, referring to the networked system of researchers and experts across fields contributing to a single project [Castells, 2001].&lt;/p&gt;

&lt;p&gt;O'Reilly provides an explanation for why open-source communities are secure, despite a frequent lack of financial transactions [O'Reilly, 1999]. He claims that the &lt;em&gt;&amp;ldquo;heart of many open-source communities is the social compact between the software developer and [their] users, in which both agree to cooperate under certain rules that are beneficial to both parties&lt;/em&gt;&amp;rdquo;. He highlights that this is the &lt;em&gt;&amp;ldquo;glue&amp;rdquo;&lt;/em&gt; that holds these communities together, rather than financial transactions in proprietary software. This is also strengthened by the fact that frequently, as mentioned previously, developers of FOSS are frequently part of the user-base. Within this article Ousterhout argued that open-source and commercial development complement each other with FOSS providing the &lt;em&gt;&amp;ldquo;raw material&amp;rdquo;&lt;/em&gt; which can be &lt;em&gt;&amp;ldquo;further refined and extended by commercial development&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Bitzer et al. argue that FOSS is &lt;em&gt;&amp;ldquo;a public good&amp;rdquo;&lt;/em&gt; due to &lt;em&gt;&amp;ldquo;non-rivalry in consumption &amp;hellip; and non-excludability&lt;/em&gt;&amp;rdquo;, the latter due to the GPL license [Bitzer et al., 2004]. They expand on Raymond&amp;rsquo;s focus on personal benefit from programming, such as his so-named &lt;em&gt;&amp;ldquo;scratching an itch&lt;/em&gt;&amp;rdquo;, and creates a &lt;em&gt;&amp;ldquo;family&amp;rdquo;&lt;/em&gt; model, where members of the FOSS community see the community as kin and will therefore be willing to do something that may not benefit them directly but may benefit the community. This justifies why FOSS code frequently is very well documented, when the writer of the documentation will obviously not need to use it. This requires time investment more than simply writing code and provides no direct benefit to the documenter, but bolsters the community development attitude whilst requiring more effort than simply releasing the code to the software and licensing it under a suitable FOSS license.&lt;/p&gt;

&lt;p&gt;Gabriel and Goldman argue that the ideals and seeming effectiveness of FOSS practises arose from the optimum use resources, highlighting past distributed community efforts such as the original Oxford English Dictionary and, less directly, literature [Gabriel and Goldman]. They raise this comparison by saying:&lt;/p&gt;

&lt;p&gt;&amp;ldquo;&lt;em&gt;It is as if all writers had their own private companies and only people in the Melville company could read &amp;lsquo;Moby Dick&amp;rsquo; and only those in Hemingway&amp;rsquo;s could read &amp;lsquo;The Sun Also Rises&amp;rsquo;. And we expect people to learn to program in this exact context?&lt;/em&gt;&amp;rdquo;&lt;/p&gt;

&lt;h3&gt;Issues and Tensions&lt;/h3&gt;

&lt;p&gt;Castells claims that the next frontier of FOSS development is &lt;em&gt;&amp;ldquo;user-orientated commercialisation&lt;/em&gt;&amp;rdquo;, raising the lack of interested of computer programmers in developing user-friendly software to directly try and attack Microsoft&amp;rsquo;s market share [Castells, 2001]. Since this paper was written, there has been some advancement, with projects such Ubuntu Linux aiming to be easy to use and &lt;em&gt;&amp;ldquo;not made any more complex than absolutely necessary&lt;/em&gt;&amp;rdquo;. Another major project is OpenUsability, a project aiming to coordinate usability experts to analyse and improve open-source software.&lt;/p&gt;

&lt;p&gt;Nichols and Twidale further elaborate on this problem, showing that software developers are not suitable at designing user interfaces for non-technical users [Nichols and Twidale, 2003]. To fix this imbalance, software firms hire usability experts but open-source suffers in this area. As previously mentioned, there are some usability experts contributing to open-source software, but there are far fewer than needed working with FOSS. They also highlight that, due to the frequently self-motivated functionality improvements, technical users may be less likely to work on features for novice users. This difference in motivation is a major difference between FOSS and commercial development, with commercial developers focusing on user satisfaction as the primary goal whereas with FOSS this may be secondary to nonexistent.&lt;/p&gt;

&lt;p&gt;Some promise in this area is highlighted by Benson et al.[Benson et al., 2004], employees of Sun Microsystems. They agree that there are poor user interfaces in FOSS, due to being created &lt;em&gt;&amp;ldquo;by engineers for engineers&lt;/em&gt;&amp;rdquo;, and they discuss their work in usability on three major FOSS projects. Sun Microsystems' business model increasingly relies on open-source software so, although there is little lack in professional developers for large projects, Sun can pay usability specialists to work on this software, providing free consultancy and as a result aiming for these projects to see wider use.&lt;/p&gt;

&lt;p&gt;Software communities tend to have a gender bias (only 28% women), the FOSS has an even more dramatic bias with around 1.5% of FOSS community members being female. Deliverable claims that &lt;em&gt;&amp;ldquo;women are actively (if unconsciously) excluded rather than passively disinterested&amp;rdquo;&lt;/em&gt; [Deliverable, 2006]. He explains this is due to a decreasing proportion of women in ICT professions and that women in FOSS projects tend to do graphics, usability and documentation rather than the more &lt;em&gt;&amp;ldquo;prestigious&amp;rdquo;&lt;/em&gt; software development. This points back to the lack of usability specialists and other non-programmers in FOSS.&lt;/p&gt;

&lt;p&gt;Shirky claims that groups are reinforced by an external enemy and in the case of FOSS this enemy is, correctly or incorrectly, viewed as Microsoft[Shirky, 2003]. He also claims that this group ethos can contain elements of &lt;em&gt;&amp;ldquo;religious veneration&amp;rdquo;&lt;/em&gt; with people failing to admit flaws or faults in a certain icon or tenets; something becoming &lt;em&gt;&amp;ldquo;beyond critique&lt;/em&gt;&amp;rdquo;. The accusation could be made that this is sometimes applicable to FOSS communities, failing to accept seeming gestures of cooperation from Microsoft, such as the deal with Novell. He also raises the importance of sometimes have a core group with higher rights or greater vetoing power than the majority of users. This example applies nicely to the management of FOSS. These projects sometimes suffer from lack of organisation or a clear set of goals. As a result, it&amp;rsquo;s unusual to find projects where the users dictate the roadmap for a piece of software, but is instead decided by the main core developers or a so-called &lt;em&gt;&amp;ldquo;Benevolent Dictator&lt;/em&gt;&amp;rdquo;. In the case of the Linux kernel, this dictator is the original creator, Linus Torvalds. He decides on the inclusion or rejection of new features or modifications to existing features. This power is occasionally criticised, but the dictatorship is supported by the masses as, due to the GPL, the project could be &lt;em&gt;&amp;ldquo;forked&lt;/em&gt;&amp;rdquo;, that is modified and continued along a different path with a different development/leadership team. This model is indirectly endorsed by Shirky who claims that you need &lt;em&gt;&amp;ldquo;barriers to participation&lt;/em&gt;&amp;rdquo;, which the &lt;em&gt;&amp;ldquo;dictatorship&amp;rdquo;&lt;/em&gt; provides and a way to separate the group from scale, also helped by the model with one sole voice making final decisions.&lt;/p&gt;

&lt;p&gt;Lerner and Tirole perform some further analysis of the possible dangers of &lt;em&gt;&amp;ldquo;forking&amp;rdquo;&lt;/em&gt; in FOSS projects [Lerner and Tirole, 2002]. They present the example of Sendmail FOSS which was &lt;em&gt;&amp;ldquo;forked&lt;/em&gt;&amp;rdquo;, which each version being &lt;em&gt;&amp;ldquo;enhanced&amp;rdquo;&lt;/em&gt; in various conflicting ways, resulting in incompatible versions. This problem was solved when the initial creator of Sendmail returned and performed a rewrite, adding the desired features and causing the incompatible versions to be abandoned. They point to the need for a powerful, directed leadership model with clear goals and support from the other developers in order to prevent &lt;em&gt;&amp;ldquo;forking&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;

&lt;p&gt;Hein shows another example of a &lt;em&gt;&amp;ldquo;fork&lt;/em&gt;&amp;rdquo;, this time illustrating the benefit of the ability to &lt;em&gt;&amp;ldquo;fork&lt;/em&gt;&amp;rdquo;. They discuss the X.org &lt;em&gt;&amp;ldquo;fork&amp;rdquo;&lt;/em&gt; from XFree86, caused by a disagreement amongst the development team over a license change [Hein, 2006]. X.org is now the dominant version used and the &lt;em&gt;&amp;ldquo;fork&amp;rdquo;&lt;/em&gt; has spurred more interest in development with new developers and new technologies appearing since the &lt;em&gt;&amp;ldquo;fork&lt;/em&gt;&amp;rdquo;, despite a slight stagnation prior. Hein also raises another important point; the open nature of the FOSS community may appear more argumentative and conflicting, but this is common inside many proprietary software companies but just not viewable to the public at large.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;FOSS community projects have influenced many areas from food (e.g. OpenCola) to movie production (e.g. Elephants Dream) and encyclopedias (e.g. Wikipedia). Governments around the world are starting to recognise the importance in open standards, with the EU recently fining Microsoft and enforcing them to release interoperation documentation and various countries demanding the use of OpenDocument for their external documents. Clearly there is a rising demand for transparency and openness, something FOSS inherently provides.&lt;/p&gt;

&lt;p&gt;FOSS may never fully replace traditional proprietary software but it has certainly made an impact and highlighted the benefits of leveraging geographically distant communities to work together and solve problems. Community-based support and development have always been commonplace on the Internet and with the rise of Web 2.0 (the focus on a community-driven Web) more businesses are seeing online communities as a way to remain competitive in an ever-changing field.&lt;/p&gt;

&lt;h3&gt;References&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;C. Benson, M. Muller-Prove, and J. Mzourek. Professional usability in open source projects: GNOME, OpenOffice. org, NetBeans. &lt;em&gt;Conference on Human Factors in Computing Systems&lt;/em&gt;, pages 1083-1084, 2004.&lt;/li&gt;
&lt;li&gt;J. Bitzer, W. Schrettl, and P.J.H. Schröder. &lt;em&gt;Intrinsic Motivation in Open Source Software Development.&lt;/em&gt; Freie Univ, 2004.&lt;/li&gt;
&lt;li&gt;M. Castells. Materials for an exploratory theory of the network society. &lt;em&gt;British Journal of Sociology&lt;/em&gt;, 51(1):5-24, 2000.&lt;/li&gt;
&lt;li&gt;M. Castells. &lt;em&gt;The Internet Galaxy: reflections on the internet, business, and society&lt;/em&gt;. Oxford University Press, 2001.&lt;/li&gt;
&lt;li&gt;D. Deliverable. Free/Libre and Open Source Software: Policy Support. March 2006.&lt;/li&gt;
&lt;li&gt;R.P. Gabriel and R. Goldman. Mob Software: The Erotic Life of Code. Proc. &lt;em&gt;ACM Conf. Object-Oriented Programming, Systems, Languages, and Applications&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;G. Hein. Open Source Software: Risks and Rewards. mar 2006.&lt;/li&gt;
&lt;li&gt;K.R. Lakhani and E. von Hippel. How open source software works:&amp;ldquo; free&amp;rdquo; user-to-user assistance. &lt;em&gt;Research Policy&lt;/em&gt;, 32(6):923-943, 2003.&lt;/li&gt;
&lt;li&gt;J. Lerner and J. Tirole. Some Simple Economics of Open Source. &lt;em&gt;Journal of Industrial Economics&lt;/em&gt;, 50(2):197-234, 2002.&lt;/li&gt;
&lt;li&gt;TR Madanmohan and R. Deapos. Open source reuse in commercial firms. &lt;em&gt;Software&lt;/em&gt;, IEEE, 21(6): 62-69, 2004.&lt;/li&gt;
&lt;li&gt;D.M. Nichols and M.B. Twidale. The Usability of Open Source Software. &lt;em&gt;First Monday&lt;/em&gt;, 8(1): 59-67, 2003.&lt;/li&gt;
&lt;li&gt;T. O'Reilly. Lessons from open-source software development. &lt;em&gt;Communications of the ACM&lt;/em&gt;, 42 (4):32-37, 1999.&lt;/li&gt;
&lt;li&gt;E.S. Raymond. &lt;em&gt;The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary&lt;/em&gt;. O'Reilly, 2001.&lt;/li&gt;
&lt;li&gt;C. Shirky. A Group Is Its Own Worst Enemy. &lt;em&gt;Economics &amp;amp; Culture, Media &amp;amp; Community, Open Source&lt;/em&gt;, 2003.&lt;/li&gt;
&lt;li&gt;R. Stallman. What is Free Software. &lt;em&gt;Free Society: Selected Essays of Richard M&lt;/em&gt;, 2002.&lt;/li&gt;
&lt;/ul&gt;

</content></entry><entry><title>Making Dizzy Shine With Ajax</title><link href="http://mikemcquaid.com/2007/02/27/making-dizzy-shine-with-ajax/"/><updated>2007-02-27T00:00:00+00:00</updated><id>http://mikemcquaid.com/2007/02/27/making-dizzy-shine-with-ajax</id><content type="html">&lt;h3&gt;Abstract&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;&amp;ldquo;Ajax applications can provide a more effective user interface than those of GUI desktop or classic Web applications with fewer drawbacks than either individual approach.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In this report, the preceding hypothesis was evaluated by developing an Ajax Web application for the Dizzy chemical kinetics stochastic simulator [2] and analysing the benefits and drawbacks compared with the existing Dizzy classic Web application and Dizzy GUI desktop application. Among the benefits were those of a more responsive interface, less bandwidth usage and allowing logic to be output to the client. The drawbacks included the challenge of ensuring cross-browser compatibility, unfamiliarity to the user, JavaScript debugging issues and the time-consuming nature of re-engineering an existing Web application.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://mikemcquaid.com/~mike/pdf/making-dizzy-shine-with-ajax.pdf&quot;&gt;Download PDF&lt;/a&gt;&lt;/p&gt;
</content></entry><entry><title>Digital Rights Management and Operating Systems</title><link href="http://mikemcquaid.com/2005/12/17/digital-rights-management-and-operating-systems/"/><updated>2005-12-17T00:00:00+00:00</updated><id>http://mikemcquaid.com/2005/12/17/digital-rights-management-and-operating-systems</id><content type="html">&lt;p&gt;&lt;em&gt;&amp;ldquo;Sony has recalled many millions of its music CDs, because they contain &amp;lsquo;copy protection software&amp;rsquo; that may damage computers. Describe and explain this story; compare Sony&amp;rsquo;s approach with other attempts to achieve copy protection, and discuss the future for digital rights management in operating systems design.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In August 2000, the Vice President of Sony Pictures Entertainment announced to the Americas Conference on Information Systems &lt;em&gt;&amp;ldquo;The industry will take whatever steps it needs to protect itself and protect its revenue streams&amp;hellip; It will not lose that revenue stream, no matter what&amp;hellip; Sony is going to take aggressive steps to stop this. We will develop technology that transcends the individual user. We will firewall Napster at source &amp;ndash; we will block it at your cable company, we will block it at your phone company, we will block it at your [ISP]. We will firewall it at your PC&amp;hellip; These strategies are being aggressively pursued because there is simply too much at stake.&amp;rdquo;&lt;/em&gt; This was one of the first times many in the technical field saw and predicted the rise of DRM-like technologies. This issue has been invisible to many non-Internet news sources until fairly recently, but, on the infinite discussion of many Internet forums and newsgroups, changes have been noticed and protection has been found and cracked. A notable early example of this was the Content-Scrambling System (CSS) used on some DVDs, introduced around 1996, and integrated into many DVD drives, players and DVD media. However, in 1999 the algorithm was cracked by Johan Johansen, known as &lt;em&gt;&amp;ldquo;DVD Jon&amp;rdquo;&lt;/em&gt; and a program to decrypt the content, named DeCSS, was released anonymously, possible by DVD Jon.&lt;/p&gt;

&lt;p&gt;The most recent example of DRM controversy hitting the mainstream news all started when a man named Mark Russinovich, Chief Software Architect and co-founder of Winternals Software, was testing his new version of &lt;em&gt;&amp;ldquo;RootkitRevealer&lt;/em&gt;&amp;rdquo;, and was surprised to find that he, according to his software had a rootkit. Rootkits are defined by TeCrime International as &lt;em&gt;&amp;ldquo;A collection of tools that allows a hacker to provide a back-door into a system, collect information on other systems on the network, mask the fact that the system is compromised&amp;hellip;&lt;/em&gt;&amp;rdquo;. In this case, Mark found files, an application and registry keys that had been hidden by the operating system, preventing them from being detected from the Windows API. Due to Mark being a security expert, and him writing security tools such as the aforementioned RootkitRevealer, he was somewhat surprised to hear he had picked up a rootkit on his machine.&lt;/p&gt;

&lt;p&gt;Traditionally, to have got a rootkit on your machine, you either need to have run, as a root on UNIX based systems or Administrator on Windows based machines, an executable that will install the rootkit on your machine. Another possible method is remote execution through security holes in software (recently, commonly holes in PHP web applications such as PHP Nuke), allowing the executable installing the rootkit file to be downloaded and run. Virus checkers and only running files from trusted sources can normally stop the first method, and a good software or hardware firewall (or being behind a router or proxy with closed ports) can normally prevent the second. As a Windows expert, Mark was likely to be using both of these methods, hence leading to his surprise.&lt;/p&gt;

&lt;p&gt;Windows rootkits traditionally patch the Windows APIs to prevent their files being found. Using this knowledge, Mark dumped the contents of the service table, looking for entries that pointed outside of the Windows kernel. Finding two of these, he found a link to one of the files masked by the API modification. Examining this file, he found that it was hiding any file with the prefix &lt;em&gt;&amp;ldquo;$sys$&lt;/em&gt;&amp;rdquo;. Further examining the DLL files, he found that they had been signed by a company named &lt;em&gt;&amp;ldquo;First 4 Internet&lt;/em&gt;&amp;rdquo;, who sold a DRM software named XCP. He also found that they had produced software for several record companies, including Sony, to implement copy-protection methods on CDs. He then traced this back to a copy-protected CD he had bought. Sure enough, when he played the media from the bundled player on the disk, the DRM manager&amp;rsquo;s CPU increased. The DRM manager was also running as a Windows service, with the subtle name of &lt;em&gt;&amp;ldquo;Plug and Play Device Manager&lt;/em&gt;&amp;rdquo;. This, even at a stretch, is a complete lie, with the DRM manager having very little to nothing do do with Plug and Play, but instead being about protecting digital content. This naming was, presumably, to stop a normal or even slightly technical user from spotting anything being amiss if examining their Windows Services.&lt;/p&gt;

&lt;p&gt;With this knowledge in hand, Mark went about attempting to remove the rootkit. This resulting in him finding out that the installed DRM files had installed themselves as a filter under his CD-ROM device drivers, resulting in his CD drive no longer working when he removed them. He managed to eventually restore things to working order, but this raises some important questions in the future of DRM. This software was, by the opinion of a man who Microsoft have awarded a &lt;em&gt;&amp;ldquo;Microsoft Most Valuable Professional&amp;rdquo;&lt;/em&gt; certification, shoddily written, had no visible removal method, and used CPU time even when the DRM media was not present.&lt;/p&gt;

&lt;p&gt;This scandal, initially posted on Mark&amp;rsquo;s blog, grew from technical to mainstream news, and seen many differing reactions. Spyware and antivirus companies released updates to remove it and prevent its installation, unnecessary now, as in the last week, Microsoft have released a patch to remove it. The fears of the rootkit hiding new viruses and hacks has been released for World of Warcraft, a popular MMORPG (massively multilayer on-line role playing game), using this rootkit to avoid detection of the hacks. Legally, the States of California, New York and Texas have initiated lawsuits against Sony, with the New York suit seeking damages for all those affected throughout the United States. Italy has also filed lawsuits against Sony over the rootkit. However, removal of the software, before these suits pass, could be claimed to violate the Digital Millennium Copyright Act in the United States. Also, ironically, a researcher named &lt;em&gt;&amp;ldquo;Muzzy&amp;rdquo;&lt;/em&gt; has identified code from the LAME MP3 encoder inside the rootkit code, presumably to pattern match and prevent the protected CD&amp;rsquo;s from being encoded. However, the LAME software is licensed under the open-source LGPL, which requires disclosure of any modifications as well as the credit being given to the copyright holder. To quote &lt;em&gt;&amp;ldquo;Muzzy&lt;/em&gt;&amp;rdquo;, &lt;em&gt;&amp;ldquo;this is certainly copyright infringement&lt;/em&gt;&amp;rdquo;. This means Sony and First 4 Internet are both liable for distributing copyrighted software.&lt;/p&gt;

&lt;p&gt;Sony has tried to clean up from the mess of media exposure around the scandal, finally releasing a removal tool on their website. Initially, however, the President of Sony BMG&amp;rsquo;s global digital business division was recorded on a US public radio program saying &lt;em&gt;&amp;ldquo;Most people, I think, don&amp;rsquo;t even know what a rootkit is, so why should they care about it?&lt;/em&gt;&amp;rdquo;, further claiming, &lt;em&gt;&amp;ldquo;component is not malicious and does not compromise security&lt;/em&gt;&amp;rdquo;. The claim the product is not malicious is justified, however, I believe it is apparent from the evidence above that the product has already been used, in the case of the WOW hackers, to compromise security. In addition, Sony&amp;rsquo;s removal tool uses ActiveX, meaning it is not usable on alternative browsers such as Firefox or Opera, and ActiveX frequently finds itself disabled by security-conscious users, due to the spyware infestations and malicious programs that frequently accompany it. This may be seen as excessively paranoid, but in this case it would be justified, as it has been reported by &lt;em&gt;&amp;ldquo;Muzzy&amp;rdquo;&lt;/em&gt; that the ActiveX control has 2 methods called &lt;em&gt;&amp;ldquo;RebootMachine&amp;rdquo;&lt;/em&gt; and &lt;em&gt;&amp;ldquo;ExecuteCode&lt;/em&gt;&amp;rdquo;, the prior, unsurprisingly, but amazingly insecurely, reboots the machine, and the latter remains untested, but presumably allows remote code execution. These methods could, technically, be called by any website that uses the ActiveX API, without prompting the user, simply be calling the already installed ActiveX control. Additionally, even when the removal control is run, several scriptable methods are left behind, still allowing the ability to reboot the machine remotely, using only a web browser. Quoting Muzzy &lt;em&gt;&amp;ldquo;Considering anyone can reboot the computer using these, I suspect security wasn&amp;rsquo;t thought about for even a second during development of this thing. Virus writers and such would be very interested in analysing what these methods do, as some of them are remotely exploitable&amp;hellip; by design.&amp;rdquo;&lt;/em&gt; Recently, a new standalone installer was released, which seems to properly remove the software. Sony announced, on November 11, 2005, that they will stop producing CDs using First 4 Internet&amp;rsquo;s XCP DRM software. According to the New York Times, 4.7 million CDs have been shipped and 2.1 million sold that use this technology, and although Sony is initiating a recall, is is likely at the start of 2006 there will still be machines compromised by this system, and, according to the New York Times, there are still at least 2 Internet borne worms that take advantage of the rootkit.
Other methods of DRM have been in use for years. As previously mentioned, the CSS method of protecting DVDs will shortly be coming to its 10th birthday. Other notable methods are the Apple Fairplay DRM used on their iTunes MP3s and the Microsoft NSC format encoding, both cracked by DVD Jon, DivX, which required a phone line in order to view its video disks. Other methods of content protection seen recently have been the phone or Internet activation requirements of Office and Windows XP, digital watermarking and Valve&amp;rsquo;s Steam software. Steam is an interesting move in the world of content protection and many, myself included, applaud it as a move in the right direction of both content protection and software publishing. Steam, instead of requiring traditional purchase and then activation, requires you to download their client program, register an account, and either register existing pre-Steam products, or buy products directly from their Steam program. It is interesting, as it does not require an Internet connection to play Steam games off-line, as long as they have been activated on the Internet at least once. The Steam distribution platform also automatically updates software with patches, and creates a directory of on-line servers for playing Steam games, allowing them to be quickly found and connected to, using the Steam browser. Initially, this platform was only used by Valve, the creators and developers of Half-Life, but, after the Half-Life 2 release proved the platform to be valid and powerful, we have seen a release of a few more games such as Pirates!, Rag Doll Kung Fu and Darwinia.&lt;/p&gt;

&lt;p&gt;Unfortunately, bright stars such as Steam seem to be few and far between in the ever-progressing field of DRM. The previously mentioned Digital Millennium Copyright Act was passed in 1998 and signed into law in the United States. One of the key parts of the DMCA is the content on Circumvention of Technological Measures, prohibiting devices or services that are primarily designed to circumvent, had limited commercially significant purpose or use other than to circumvent or are marketing for use in circumventing copyright measures such as DRM. Understandably this and other similar legislation brings crackers such as DVD Jon under fire, who was arrested for &lt;em&gt;&amp;ldquo;computer hacking&amp;rdquo;&lt;/em&gt; in 2002. He was, however, acquitted without charge in January 7, 2003, after argument from the defence that any copy protection he circumvented was for DVDs he already owned, and under Norwegian law it is legal to make personal copies of data such as DVDs for personal use.&lt;/p&gt;

&lt;p&gt;Legislation, such as that previously mentioned, is meeting operating system design with the emergence of the Next-Generation Secure Computing Base (NGSCB), formerly know as Palladium. This is a software architecture designed by Microsoft to implement trusted computing on future versions, post-Vista, of the Windows operating system. Trusted computing refers to the design of systems or software designed to perform the way they &amp;ldquo;should&amp;rdquo;, potentially allowing computer manufacturers and software authors to increase their control over how the computer systems are used by their users. This could result in users no longer being able to change their software, control information they receive, control their own created data and could removes anonymity options from the Internet. The trusted computing methods require a next generation processor, which could be designed by AMD or Intel, as both have stated they will integrate trusted computing into future processors, which protects memory and data from hardware on the chip. This could, potentially, make methods such as DeCSS and other cracking of encryption and DRM physically impossible, as it would require overrides on the hardware level, rather than a software modification. In the first version of trusted computing, tested by Microsoft, it was possible to delete pirate software remotely, due to remote detection. This could also be used to blacklist data from, say, Office 2000 in Office 2006, forcing the user to upgrade rather than being able to use old software. This could also require remote-activation, secured on a hardware level, and the operating system requiring said hardware, making piracy physically impossible. Microsoft claims that trusted computing won&amp;rsquo;t suddenly stop anything from working, but the long term goals are to prevent piracy and removal of protection methods.&lt;/p&gt;

&lt;p&gt;This method of protection will work with a chip on the CPU, known as a Nexus chip. This chip will be implemented onto the motherboard, and communicates with a feature in the CPU to prevent memory access from one program to another&amp;rsquo;s area of memory, a bridge in the operating system kernel, known as the Nexus, and individual application security components (NCAs). This will all produce information and communicate with on-line security servers maintained by both hardware and software vendors, removing authorisation capabilities from the users machine. This memory protection means that DVD players could prevent their area of memory, used to actually play the DVD, from allowing external access to rippers to obtain the content. Trusted computing, in a privative form, is already available in Windows Server 2003, for protecting confidential documents and automatic document destruction.&lt;/p&gt;

&lt;p&gt;The long-term effects and, some might say, goals of trusted computing are darker than they might at first appear. Many, including Microsoft and Sony, would claim they are just trying to prevent their copyrights being broken. &lt;em&gt;&amp;ldquo;Trusted computing can be turned off!&amp;rdquo;&lt;/em&gt; they may say. However, as a user of an alternate operating system, trusted computing could may well affect me in negative ways. Due to the requirement of most of my software to be open source, potentially, my computer no longer would be able to digitally create MP3s or videos, and I could be unable to open trusted computing protected documents. If studying at a university that protected their course materials in this way, this could force me to use a Microsoft operating system in order to do my work. Also, the music industry, due to the huge force and costs behind DRM, could well see smaller, independent record labels die out, unable to afford to protect their media. This type of protection undermines the GPL and other open source products. IBM and HP have already started work on a TC-enhanced version of Linux, but this code may need to be propriety, and therefore may need to cost money to use.&lt;/p&gt;

&lt;p&gt;Trusted computing is a deceptive title. It moves the trust of computing from the administrator to the developers of software and to the owners of media. This requires a radically different approach in operating system design, as at all levels, from hardware to memory management to software, everything must be managed and authenticated by a third party, potentially crippling the system if and when this authentication suffers from bugs or is not available. It also poses dire consequences for kernel hackers everywhere, and people who use operating systems such as Linux and like modifying the deepest internals of there systems to work the way that they want.&lt;/p&gt;

&lt;p&gt;The future of DRM is clouded, but it seems almost inevitable that it will feature heavily on future Microsoft operating systems. However, many users who value freedom of data and fair use of software and media, especially those who currently use Linux due to these freedoms, are unlikely to lie down and take the new measures without a fight. Whether this fight is fought by cracking protections, hacking servers, boycotting Microsoft in favour of Linux or other operating systems, or taking legal action under &lt;em&gt;&amp;ldquo;Fair Use&amp;rdquo;&lt;/em&gt; law, remains to be seen, but, personally, I will not simply accept the new DRM measures forced upon us, and if I can help others through programming for the Linux operating system to obtain a system that allows these freedoms, I will.&lt;/p&gt;
</content></entry></feed>
