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

<channel>
	<title>Daniel Hall&#039;s Website &#187; Linux</title>
	<atom:link href="http://www.danielhall.me/category/computing/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.danielhall.me</link>
	<description>Because the Internet doesn&#039;t have enough opinions already</description>
	<lastBuildDate>Sun, 23 Oct 2011 23:15:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Error messages aren&#8217;t perfect</title>
		<link>http://www.danielhall.me/2011/04/error-messages-arent-perfect/</link>
		<comments>http://www.danielhall.me/2011/04/error-messages-arent-perfect/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 11:03:49 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[NetWare]]></category>
		<category><![CDATA[NFS]]></category>
		<category><![CDATA[Novell]]></category>
		<category><![CDATA[Strace]]></category>
		<category><![CDATA[X]]></category>
		<category><![CDATA[Xauth]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=516</guid>
		<description><![CDATA[When diagnosing a problem with a complex system such as Linux you sometimes need to step back, stop what you&#8217;re doing and take a different approach. Usually when a program fails on Linux you will get some kind of error &#8230;<p class="read-more"><a href="http://www.danielhall.me/2011/04/error-messages-arent-perfect/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>When diagnosing a problem with a complex system such as Linux you sometimes need to step back, stop what you&#8217;re doing and take a different approach. Usually when a program fails on Linux you will get some kind of error message, traceback or coredump. Most people prefer to see some kind of error message rather than the latter two..</p>
<p>Tracebacks and coredumps are computer generated, which makes them more accurate then error messages, but harder for humans to understand. Error messages however are put in place by the programmer which means they can occasionally be misleading, inaccurate, ambiguous or just plain wrong. This is not always the programmers fault, sometimes its hard to describe exactly what went wrong. Other times the error describes the situation perfectly, but the sysadmin jumps to a different conclusion based on his circumstances.</p>
<h2>Example</h2>
<p>Some time ago we had some users complaining about a problem when trying to use X Forwarding via SSH. On this server /home was mounted off a Novell NetWare NFS share. They were getting the following output and were unable to run X11 applications.</p>
<p>[code]xauth: error in locking authority file /home/daniel/.Xauthority[/code]</p>
<p>Seeing this error I assumed that something was going wrong with the locking mechanism of NFS. I tried mounting the NFS share with the explicit lock option, but the same error remained. I tried explicitly giving the sync option too, but to no avail. I ended up trying many different NFS options until eventually I gave up and asked the Novell administrators to check their servers. I was convinced that something on their end was causing this locking error.</p>
<p>The Novell administrator responded that they could see nothing wrong on their end. This must mean that something was wrong on our side. I tried restarting the nfsstad and lockd initscripts and the whole machine but once again the same issue persisted. I checked the server using the rpcinfo command, which showed that everything was working fine. I even connected to the daemon using telnet (though I couldn&#8217;t talks its language) and confirmed a firewall was not in the way.</p>
<p>I thought that maybe there was something going wrong in the interaction between the client and the server, so I ran a tcpdump to capture all the packets transferred between them. this is where I made a small breakthrough. I found a NFS reply that had returned with SERVFAIL and error code 526. Googling for this error and Netware generally pointed towards a problem with character sets not getting preserved to the Novell server. There was nothing but ordinary characters on the filesystem, so much for that idea.</p>
<p>I wanted to know exactly what was happening when xauth was trying to lock the file, so I did an strace on it. Here are the last few lines (after xauth mmaped its libraries).:</p>
<p>[code]stat(&quot;/home/e71377/.Xauthority-c&quot;, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0<br />
unlink(&quot;/home/e71377/.Xauthority-c&quot;)    = 0<br />
unlink(&quot;/home/e71377/.Xauthority-l&quot;)    = -1 ENOENT (No such file or directory)<br />
open(&quot;/home/e71377/.Xauthority-c&quot;, O_WRONLY|O_CREAT|O_EXCL, 0600) = 3<br />
close(3)                                = 0<br />
link(&quot;/home/e71377/.Xauthority-c&quot;, &quot;/home/e71377/.Xauthority-l&quot;) = -1 ESERVERFAULT (Unknown error 526)<br />
write(2, &quot;xauth:  error in locking authori&quot;..., 65xauth:  error in locking authority file /home/e71377/.Xauthority<br />
) = 65<br />
exit_group(1)                           = ?[/code]</p>
<p>So it appears that this was not a file locking problem at all. xauth was successfully creating the files but it failed when it tried to create a hardlink. Reviewing the code for libXau (AuLock.c) revealed exactly why:</p>
<p>[code lang="c"]    while (retries &gt; 0) {<br />
        if (creat_fd == -1) {<br />
            creat_fd = open (creat_name, O_WRONLY | O_CREAT | O_EXCL, 0600);<br />
            if (creat_fd == -1) {<br />
                if (errno != EACCES)<br />
                    return LOCK_ERROR;<br />
            } else<br />
                (void) close (creat_fd);<br />
        }<br />
        if (creat_fd != -1) {<br />
#ifndef X_NOT_POSIX<br />
            /* The file system may not support hard links, and pathconf should tell us that. */<br />
            if (1 == pathconf(creat_name, _PC_LINK_MAX)) {<br />
                if (-1 == rename(creat_name, link_name)) {<br />
                    /* Is this good enough?  Perhaps we should retry.  TEST */<br />
                    return LOCK_ERROR;<br />
                } else {<br />
                    return LOCK_SUCCESS;<br />
                }<br />
            } else {<br />
#endif<br />
                if (link (creat_name, link_name) != -1)<br />
                    return LOCK_SUCCESS;<br />
                if (errno == ENOENT) {<br />
                    creat_fd= -1;       /* force re-creat next time around */<br />
                    continue;<br />
                }<br />
                if (errno != EEXIST)<br />
                    return LOCK_ERROR;<br />
#ifndef X_NOT_POSIX<br />
           }<br />
#endif<br />
        }<br />
        (void) sleep ((unsigned) timeout);<br />
        --retries;<br />
    }[/code]</p>
<p>xauth isn&#8217;t trying to lock the file through flock() or another file locking method, which means that it is not the cause. Instead xauth is creating a file, and then to make sure it is the only program altering .Xauthority it creates a link. If the link succeeds then its the only program, if not then another program has the lock. The problem happens when xauth tries to make the hardlink. Interestingly there is a fallback for non-POSIX systems, but as RHEL is POSIX compatible it is not used.</p>
<p>It appeared that the NFS server did not support hard links. To test this theory I created several files, and attempted to create hard links using &#8216;cp -l file1 file2&#8242;. and they failed in the exact same way. All I had to do now was explain to the Novell Administrator that the problem was not locking, and was in fact that we were mounting a filesystem which did not support hard links on a POSIX compatible system. The Novell share was changed to support hard links (don&#8217;t ask me how, I&#8217;m not a Novell guy) and everything was working again.</p>
<h2>Conclusion</h2>
<p>The lesson to take away from here is not that hardlinks are required on POSIX, or that xauth doesn&#8217;t use file locking but locks itself via a dance of hardlinks. The lesson here is that you should never trust error messages. Take them as a hint, use them as a starting point but do not take them as law. You need to remember that the error message was written by a human and you may not be interpreting it how it was written.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2011/04/error-messages-arent-perfect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_pagespeed is not (always) the answer</title>
		<link>http://www.danielhall.me/2011/04/mod_pagespeed-is-not-always-the-answer/</link>
		<comments>http://www.danielhall.me/2011/04/mod_pagespeed-is-not-always-the-answer/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 10:59:44 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mod_pagespeed]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[Web Page Performance]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=676</guid>
		<description><![CDATA[What is mod_pagespeed Google recently released a chunk of code in the form of an Apache module. The idea is that you install it in your Apache server, it sits in between your application and the web browser and modifies &#8230;<p class="read-more"><a href="http://www.danielhall.me/2011/04/mod_pagespeed-is-not-always-the-answer/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<h2>What is mod_pagespeed</h2>
<p>Google recently released a chunk of code in the form of an Apache module. The idea is that you install it in your Apache server, it sits in between your application and the web browser and modifies the served requests to make the page load faster.<br />
It does this by using combinations of filters, some are well known best practices, others are newer ideas. For example on filter simply minifies your JavaScript while another embeds small images in a page using data-uris. The changes these filters make range from low risk, to high risk. It should be noted that not all the filters will improve the page time some even making pages slower in some cases.</p>
<h2>So what&#8217;s the issue?</h2>
<p>The issue here really isn&#8217;t mod_pagespeed, but it&#8217;s the way people are viewing it. In my job as a Web Performance Engineer I have had several people recently say to me &#8220;let&#8217;s put mod_pagespeed on our web server to make it faster&#8221;. This is a break from normal attitudes, if someone were to to say &#8220;we should put our images into data-uris&#8221; then people would question the speed benefit, or the extra load on the server. For some reason when Google implement a page speed module people just assume that it will make their page faster, and that it will work in their environment. The truth is that Google really have no idea what the module will do to your page.</p>
<p>The second issue is that all these tweaks can usually be better implemented at the application level. If you minimize all your JavaScript as part of your build process then the web server will not have to do it for you. The same applies to data-uris. If they are simply part of the page then the browser doesn&#8217;t need to read in the extra image, uuencode it, then compress it. All that is quite a lot of work, which only really needs to be done once.</p>
<h2>So what should I use mod_pagespeed for then?</h2>
<p>You don&#8217;t always have access to the application code. If you are using third party software then before mod_pagespeed you may have had no control over the minification of CSS. This is where the module really shines. It gives you a layer between the application code and the web browser where you can apply all sorts of performance tuning.</p>
<p>The other advantage I can see is for looking for the best tunings to apply to your application quickly. You can setup mod_pagespeed and and run experimental tests with the filters on of and with a control to quickly figure out what rules you should apply in your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2011/04/mod_pagespeed-is-not-always-the-answer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rebooting with &#8216;The Big Hammer&#8217;</title>
		<link>http://www.danielhall.me/2010/12/rebooting-with-the-big-hammer/</link>
		<comments>http://www.danielhall.me/2010/12/rebooting-with-the-big-hammer/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 00:57:40 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Desperation]]></category>
		<category><![CDATA[Emergency]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Overkill]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=670</guid>
		<description><![CDATA[Today I had a machine I was working on spit the dummy in a really bad way. It had a tonne of IO errors to its root filesystem and eventually decided to remount it read only. Of course this meant &#8230;<p class="read-more"><a href="http://www.danielhall.me/2010/12/rebooting-with-the-big-hammer/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Today I had a machine I was working on spit the dummy in a really bad way. It had a tonne of IO errors to its root filesystem and eventually decided to remount it read only. Of course this meant that it was almost entirely wedged. I tried the reboot command, the init command and everything would lockup my terminal. Not having console or physical access to the machine I couldn&#8217;t simply hit the power button, so I used the Linux magic commands:<code></code></p>
<p><code><br />
# echo 1 &gt; /proc/sys/kernel/sysrq<br />
# echo b &gt; /proc/sysrq-trigger<br />
</code></p>
<p>Of course the disk errors meant that it was unable to boot but &#8216;The Big Hammer&#8217; struck me as something extremely useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2010/12/rebooting-with-the-big-hammer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Protecting Email with DKIM</title>
		<link>http://www.danielhall.me/2010/07/protecting-email-with-dkim/</link>
		<comments>http://www.danielhall.me/2010/07/protecting-email-with-dkim/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 12:57:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[System Administration]]></category>
		<category><![CDATA[DKIM]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Phishing]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=629</guid>
		<description><![CDATA[One of the problems with the email and the protocols used to transfer it (SMTP) is that they were designed long ago when the Internet was a much friendlier place. When SMTP was designed it was assumed that other hosts &#8230;<p class="read-more"><a href="http://www.danielhall.me/2010/07/protecting-email-with-dkim/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>One of the problems with the email and the protocols used to transfer it (SMTP) is that they were designed long ago when the Internet was a much friendlier place. When SMTP was designed it was assumed that other hosts on the Internet could be trusted. This is particularly visible in the configuration of relays where the sender doesn&#8217;t have to be identified. A mail relay will accept mail from any server regardless of where the mail appears to be coming from.</p>
<p>To attempt to rectify this SPF was created. To setup SPF you add either a TXT or an SPF record to the DNS zone you will be sending from. This record defines which servers are allowed to send mail that is coming from that domain. So on my domain danielhall.me I could publish an SPF record that says only my mail server is allowed to send mail that ends in @danielhall.me. Any mailservers receiving mail that is from my domain but not coming from an address listed in my SPF record can see that the mail is likely forged and throw it away. SPF works well in most situations but fails at a very common use case. If someone I send mail to tries to forward it to another address using an automatic process (no clicking forward in their client) then the mail will appear to come from my domain when it gets to the user it was forwarded to, however it will have came from the original recipients mailserver.</p>
<p>DKIM solves this problem by giving each sending mailserver a cryptographic key pair. The public keys is then published in a DNS record in that zone and stores the private key somewhere safe on the server. The server then proceeds to sign the headers (especially the From: header) and the body of all outgoing emails. This signature is then attached to the email as an extra header. When the receiving server get the email it gets the signature and uses that along with the list of signed headers to verify the signature against the public key of the signing domain. This means as long as the mail has passed through an authorised mailserver at any point it will be considered valid.</p>
<p>Setting up a DKIM is relatively simple process. You will need access to the  zone records for your domain and access to the configuration of all the mailservers which all mail originating at your domain passes through. You also need to be aware that signing mail makes it slightly more processor intensive to send an email. If you send a large amount of email this difference could be quite significant. If you&#8217;re using sendmail you may be able to alleviate it by switching to a less resource hungry MTA like Exim. You should also note that in some configurations DKIM can not be setup. For example if you use masquerading in sendmail DKIM will always fail as sendmail will modify the from header after signing.</p>
<p>Ultimately DKIM is a good move for the internet community at large, especially when combined with SPF. DKIM mail is assured to come from the sender and can be cryptographically proven so. While it does take more take a little more effort to setup and maintain it assures mail from your domain is secure and can be assured to have come from you or your company. Ultimately DKIM can protect your company against phishing attempts and boost your spam scores.</p>
<p><strong>Random thought:</strong> What would Email look like if it were designed today?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2010/07/protecting-email-with-dkim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google G1: Six Months On</title>
		<link>http://www.danielhall.me/2010/03/google-g1-six-months-on/</link>
		<comments>http://www.danielhall.me/2010/03/google-g1-six-months-on/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 09:20:09 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=559</guid>
		<description><![CDATA[So six months ago I bought my Google G1, my first impressions were excited and extremely positive. Has this phone stood the test of time though? Physically The phone is still in good physical condition, which is more than I &#8230;<p class="read-more"><a href="http://www.danielhall.me/2010/03/google-g1-six-months-on/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: normal;">So six months ago I bought my Google G1, my first impressions were excited and extremely positive. Has this phone stood the test of time though?</span></p>
<h1>Physically</h1>
<p>The phone is still in good physical condition, which is more than I could have said about my old XDA Atom Flame after six months. There are a few scratches on the screen, but I bought a screen protector for it so I can simply peel them off. Surprisingly the various crevices on the phone have avoided build ups of dust which commonly plagues my phones. The battery is beginning to fade, and can only last me around 12 hours with my ordinary usage (which is probably considered heavy usage). This makes weekends away from home interesting as I have to avoid using my phone to stretch the battery over 24 hours.</p>
<p>When I first got the phone I expected that the keyboard keys would fade, or that the keyboard snap mechanism would somehow break. I was wrong, the keys are still as visible as when I first got it, and the snap mechanism still works perfectly.</p>
<h1>The OS</h1>
<p>In the time I&#8217;ve had this phone Android has gone from 1.1 to 2.0. Sadly there haven&#8217;t been any official new releases of the phone software. There have however been releases of the well known mod for this phone called &#8216;CyanogenMod&#8217;. Currently CyanogenMod is at Android version 1.5 with parts of 2.0 ported across.</p>
<p>Since the first week I had the phone I&#8217;ve been using CyanogenMod and have seen the improvements in it take it from strength to strength. Originally it looks almost the exact same as the original OS but now it includes several features that I could not live without. My favorites would be:</p>
<ul>
<li>Tethering to my Linux PC</li>
<li>OpenVPN settings</li>
<li>360 degree rotation</li>
<li>Improved contacts screen with direct call links</li>
<li>Voice Search</li>
</ul>
<h1>The Applications</h1>
<p>Like any mobile OS the best part is the applications. This is where an OS either make it or breaks it. While Google have been constantly improving the Android platform old apps have remained around and stayed compatible with the phone. Google has also held two developer competitions during the time I&#8217;ve had the phone which has brought loads of new apps and innovation. So as each application is its own entity I&#8217;m going to review my favorites separately.</p>
<h2>Google Maps</h2>
<p>When I got the phone Google Maps was simply a map, with limited search capability and able to give directions. Since then however Google have added Street View, Navigation (US Only sadly), Buzz and much better searching. For something I used once a month I now use it almost daily.</p>
<h2>ConnectBot</h2>
<p>One of the reasons I went for a phone with a hardware keyboard was to make SSHing into my Linux machines easier. ConnectBot handles this perfectly. I cannot stress enough how useful this application is. Recently it has been improved to include support for SSH agents too which improved things even further.</p>
<h2>My Tracks</h2>
<p>As someone who enjoys hiking and walking having a GPS logger can be extremely useful. My Tracks basically turns your Android phone into a GPS logger and displays the data for you on a map. It also allows you to export the logs in popular formats or simply upload them to My Maps on Google. It can also graph your elevation, speed and display interesting statistics.</p>
<h1>Conclusion</h1>
<p>All up I still enjoy this phone, and still use it daily. I am looking at moving to either an N900 or the Google Nexus One next. I haven&#8217;t moved because the N900 has been having trouble with the USB connectors breaking off, and the Nexus One is too expensive to import into Australia. I doubt I&#8217;ll be moving to another phone any time soon and this phone doesn&#8217;t look like it will give out any time in the near future.</p>
<p><strong>Random Thought:</strong> What is the cell phone market going to look like five years from now? And where the hell is my wristwatch phone?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2010/03/google-g1-six-months-on/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The T-Mobile G1 Phone</title>
		<link>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/</link>
		<comments>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 07:54:57 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=354</guid>
		<description><![CDATA[The T-Mobile G1 Phone goes by a few names. HTC Dream and Google Android Development phone are two more. Essentially they are the same hardware and the only change is the software. The Android Development phone unlike the others comes &#8230;<p class="read-more"><a href="http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>The T-Mobile G1 Phone goes by a few names. HTC Dream and Google Android Development phone are two more. Essentially they are the same hardware and the only change is the software. The Android Development phone unlike the others comes with an unlocked bootloader allowing you to flash any software image you want where the other two will only allow software signed by either HTC or T-Mobile.</p>
<p>I bought mine two weeks ago and it has completely replaced my Windows Mobile phone to the point where I actually gave it away. The main issues that I have with Windows Mobile was the instability and the difficult to use interface. This new phone was a breath of fresh air. Amazingly when I was testing it out with the seller it received a weeks worth of SMSes indicating that my Windows Mobile phone had stopped accepting them.</p>
<p>I opted for the T-Mobile option. Mainly because I found one cheap on eBay but also because I knew of an exploit to easily get root, flash a new bootloader and install whatever OS I wanted. I knew with almost absolute certainty that I would want to be able to play with root access to the OS. I could have went with the HTC Hero or Magic (the successors to the G1) but I liked the idea of the flip out keyboard way too much.</p>
<p>The G1 is easy to use without a stylus, in fact it won&#8217;t work with a stylus as is uses a capacitive touch screen. This means all the applications, the keyboard and the core OS are designed with that in mind. While I could use my old phone with my thumbs many of the controls were impossible to use without perfect precision. Generally all the controls on the Andriod are larger and easier to manipulate, where the Windows Mobile controls are clunky and small.</p>
<p>The Android marketplace is also something that Windows Mobile could certainly have done with. It is an almost perfect image of the iPhone App Store, except that in the culture of open source most of the applications are free. The applications are easier to search for, review and download making the Android Marketplace a much easier to use and more polished tool.</p>
<p>One thing this phone and my last one have in common was the hacker community around them. Both have multiple ROMs available and its relatively easy to flash a new one. I&#8217;m currently running the latest stable CyanogenMod (4.0.4) which was extremely easy to flash courtesy of the latest kernel vulnerability and some specially designed tools.</p>
<p><strong>Random Thought:</strong> I thought Androids could make breakfast for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/09/the-t-mobile-g1-phone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fedora 12 Alpha</title>
		<link>http://www.danielhall.me/2009/09/fedora-12-alpha/</link>
		<comments>http://www.danielhall.me/2009/09/fedora-12-alpha/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 07:42:53 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=320</guid>
		<description><![CDATA[So recently Fedora released the alpha of their latest OS. I&#8217;d been running rawhide for quite a while. Of particular interest is that my RS690 no longer flickers when I move a window that includes an alpha channel, and no &#8230;<p class="read-more"><a href="http://www.danielhall.me/2009/09/fedora-12-alpha/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>So recently Fedora released the alpha of their latest OS. I&#8217;d been running rawhide for quite a while. Of particular interest is that my RS690 no longer flickers when I move a window that includes an alpha channel, and no longer randomly crashes. I&#8217;ve still got to disable modesetting but modesetting currently only stops me from enabling desktop effects.</p>
<p>Particular points I&#8217;m enjoying:</p>
<ul>
<li>The desktop wallpaper that has squares on an angled surface is very appealing. The other new desktop wallpapers are very eye catching too.</li>
<li>Having 3D rendering working properly on my laptop.</li>
<li>The new <a href="http://www.danielhall.me/wp-content/uploads/2009/09/desktop-login.ogg">Fedora 12 Login Theme</a> is music to my ears (except when I have my laptop speakers turned up and it reverbs horribly).</li>
<li>EXT4 support seems a bit stronger. Of particular importance barrier based sync now works on LVM metadevices.</li>
<li>Dracut has made no discernible difference to boot times and ability to boot.</li>
<li>resize2fs is now able to shrink an ext4 partition. system-config-lvm now recognises ext4 and allows resizing it.</li>
</ul>
<p>Particular points I&#8217;m not enjoying:</p>
<ul>
<li>Eclipse is unstable and keeps crashing.</li>
<li>Turning off the menu icons in GNOME seems like a bad idea, it makes it harder to recognise each menu.</li>
<li>Modesetting stops me from using 3D effects.</li>
<li>You can&#8217;t drag icons from the menu to the panels or the desktop any more.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/09/fedora-12-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH Agent Forwarding</title>
		<link>http://www.danielhall.me/2009/08/ssh-agent-forwarding/</link>
		<comments>http://www.danielhall.me/2009/08/ssh-agent-forwarding/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 23:01:29 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=160</guid>
		<description><![CDATA[So you use keys to SSH between your hosts, and you either have separate keys for each machine you use, or worse you have the same key on each machine. Lets go over why each of those are bad, and &#8230;<p class="read-more"><a href="http://www.danielhall.me/2009/08/ssh-agent-forwarding/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>So you use keys to SSH between your hosts, and you either have separate keys for each machine you use, or worse you have the same key on each machine. Lets go over why each of those are bad, and lets see how SSH Agent forwarding will help with those issues and make things easier for you in general.</p>
<p>So the key part of why a SSH agent and SSH agent forwarding forwarding is so useful is due to the way keys can be attacked. If I wanted to get your SSH private key I could find some flaw in the system that would give me that /home/you/.ssh/id_rsa file you have. Of course a malicious user with root access to the system could just go in and grab it. You can prevent this kind of attack by setting a passphrase on the key. Of course the root user could replace SSH with a special version designed to get your passphrase, steal the key out of memory or setup a keylogger. This means effectively that your private key is not safe on any system where a person you don&#8217;t trust has root access, or has other users and exploitable vulnerabilities.</p>
<h2>Single Private Key on Multiple Machines</h2>
<p>In this example you&#8217;re trusting the security of every single machine you have your private key on. Should it get compromised then you have to revoke you public key from every host, and regenerate private keys to place on every host. Every time you put your private key on a machine you increase the chances that it could be compromised.</p>
<h2>Multiple Private Keys On Multiple Machines</h2>
<p>So we&#8217;re getting a little closer to a good solution. In this instance we don&#8217;t have to generate our key and roll it out to all hosts in event of a compromise. You can also have segregate groups, on set of keys for work, another for home and so on. Your keys can still be compromised easily though, and once compromised they can be used until you revoke them manually.</p>
<h2>SSH Agent Forwarding</h2>
<p>There is a way to keep your key safe from compromise. Now I&#8217;ll have to explain how SSH authenticates you using your key. When your authenticating with SSH keys your key isn&#8217;t sent, the server sends you some random data and challenges your client to encrypt it with your private key. It then verifies the encrypted data by decrypting it with the public key and checking if it matches the data originally sent. Now the way most people would SSH from the second host to another third host is to utilise a private key on the second host to connect to the third host. Unfortunately this method means that you have to store a key (that is open for compromise) on the second host. SSH agent forwarding tells the SSH client on the second server to send the challenge data through to the SSH client (or ssh agent) on the first host. The agent encrypts the data and sends it via the SSH session to the third client.</p>
<p>The beauty of this method is that the second host never sees a private key, and the challenge data is useless to try and connect to a different host. Even if the second host is compromised there isn&#8217;t a private key there to compromise. It should be noted that if the second host is compromised it can still request the agent identify for a different host, or the session to the third host can be taken over. Both these are temporary though and unless the malicious user installs their key (something easy to notice) they cannot get back in.</p>
<div id="attachment_173" class="wp-caption alignright" style="width: 160px"><a href="http://www.danielhall.me/wp-content/uploads/2009/08/SSHAgent.png"><img class="size-thumbnail wp-image-173 " title="SSHAgent" src="http://www.danielhall.me/wp-content/uploads/2009/08/SSHAgent-150x150.png" alt="Diagram detailing how an SSH connection is authenticated using agent forwarding." width="150" height="150" /></a><p class="wp-caption-text">Diagram detailing how an SSH connection is authenticated using agent forwarding.</p></div>
<p>If you want to know more about how this works, there is a wonderful tech tip at <a href="http://unixwiz.net/techtips/ssh-agent-forwarding.html">http://unixwiz.net/techtips/ssh-agent-forwarding.html</a>.</p>
<h2>But how?</h2>
<p>SSH agent forwarding is even easier than copying keys all over the place. The first step is to generate keys for all the machines you log on to directly. You need to be sure these machines are secure and that your keys will stay safe, though this is sometimes not possible. You then add the generated public key to the authorized hosts file of all the machines you will connect to from this one, including ones that take two or more steps to get to. Finally you edit your ~/.ssh/ssh_config file to tell SSH to forward your agent through those hosts. Include the intermediate hosts in this list, but not the endpoints. You could also use <a href="http://www.danielhall.me/2009/07/sshmenu/">SSHmenu</a> to add the arguments automatically to those SSH commands. The following disables forwarding to all hosts, and explicitly enables it to fred, and aaron.missgner.com.</p>
<pre>Host fred
  ForwardAgent yes

Host aaron.missgner.com
  ForwardAgent yes

Host *
  ForwardAgent no</pre>
<p><strong>Random thought: </strong>Linux has Plug &#8216;n Pray too, you plug the device in and pray the drivers aren&#8217;t proprietary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/ssh-agent-forwarding/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oh My God &#8211; I broke my LVM</title>
		<link>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/</link>
		<comments>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 22:04:25 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[Recovery]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=192</guid>
		<description><![CDATA[So today I did about the stupidest thing I could have done at the time. I was planning on clearing my USB hard drive so I could start my new backup plan on it. Of course any Linux geek knows the easy way to erase a hard drive is to do a 'dd if=/dev/zero of=/dev/sdb1'. On almost all my computer there is only one hard drive which maps to /dev/sda. Of course you know exactly where I'm going here don't you? So this is my home server with two hard drive combines into one volume group. The first hard drive is /dev/sda, the second /dev/sdb and the USB hard drive got mapped to /dev/sdc. So in my case that command obliterated the first 125Mb of my second drive before I noticed.<p class="read-more"><a href="http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>So today I did about the stupidest thing I could have done at the time. I was planning on clearing my USB hard drive so I could start my new backup plan on it. Of course any Linux geek knows the easy way to erase a hard drive is to do a &#8216;dd if=/dev/zero of=/dev/sdb1&#8242;. On almost all my computer there is only one hard drive which maps to /dev/sda. Of course you know exactly where I&#8217;m going here don&#8217;t you? So this is my home server with two hard drive combines into one volume group. The first hard drive is /dev/sda, the second /dev/sdb and the USB hard drive got mapped to /dev/sdc. So in my case that command obliterated the first 125Mb of my second drive before I noticed.</p>
<p>My machine was still running so I knew I hadn&#8217;t wiped anything immediately important. The first thing that I thought of doing was checking what exactly it was that I had wiped and what chance I had of backing up anything before bailing out. Looking at the LVM layout revealed that I&#8217;d probably just destroyed the file system I stored my local Fedora repository on, something I could do without. So I umounted it, removed it from /etc/fstab and did a lvremove. This is exactly where I realised the gravity of the situation. LVM was complaining that it couldn&#8217;t locate one of the physical volumes. Of course it couldn&#8217;t, I&#8217;d just blown away all the metadata for it.</p>
<p>Did you know LVM keeps backups of the metadata? Yes, it keeps them in /etc/lvm/backup (for slightly older copies see /etc/lvm/archive) and you can use this to recover the metadata. I thought a good place to do this would be now, before the reboot that could end it all. Try as I might it was refusing to create a volume that already existed and it also complained about the device being in use. I count myself extremely lucky to be able to do what I did next. To me it felt incredible but when you really think about it it makes sense.</p>
<p>I downloaded the Fedora 11 Live CD and burned it to CD. Yep that&#8217;s right, while knocking on deaths door my machine managed to launch a torrent client, download a 700Mb ISO and burn it to a CD. After that I backed up the /etc/lvm folder to the USB hard drive that caused this mess. Finally I rebooted into the Live environment. The very next step was to recreate the partition table with fdisk.</p>
<p>Then I recreated the physical volume metadata that was destroyed with the following command:</p>
<pre>pvcreate -ff -u DsuvMV-1HVj-SQOU-wZkT-N9M0-LMZd-gPws1U \
 --restorefile /media/usbdisk/lvm/backup/Volgroup00 /dev/sdb1</pre>
<p>This forces the creation of a pv with a specific uuid, ignoring any pvs that exist with the same uuid. It also restores the metadata stored in the restorefile. Follow up with this command to restore the full metadata.</p>
<pre>vgcfgrestore -f /media/usbdisk/lvm/backup/Volgroup00 -v VolGroup00</pre>
<p>Now our LVM metadata is all correct, but at this point we still need to activate the logical volumes.</p>
<pre>vgchange -ay</pre>
<p>Finally you should fsck your logical volumes to make sure everything is working properly and you don&#8217;t get any nasty surprises later. All that is left then is to reboot into your recovered system.</p>
<p>Now thats something they don&#8217;t teach you in RHCE!</p>
<p><strong>Random thought: </strong>Who needs enemies when I have my own stupidity to contend with?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/oh-my-god-i-broke-my-lvm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 12 (Constantine) Features</title>
		<link>http://www.danielhall.me/2009/08/fedora-12-constantine-features/</link>
		<comments>http://www.danielhall.me/2009/08/fedora-12-constantine-features/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 20:00:32 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Systemtap]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://www.danielhall.me/?p=138</guid>
		<description><![CDATA[So it appears I called the feature freeze a little early. The feature freeze will actually happen on July 28. You will need to read my other post for features that haven't changed since then.<p class="read-more"><a href="http://www.danielhall.me/2009/08/fedora-12-constantine-features/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>So it appears I called the feature freeze a little early. The feature freeze will actually happen on July 28. You will need to read my <a href="http://www.danielhall.me/2009/07/a-look-forward-to-fedora-12-constantine/">other post</a> for features that haven&#8217;t changed since then. You can see the official list of features at <a href="https://fedoraproject.org/wiki/Releases/12/FeatureList">this page</a>.</p>
<h1>New Features</h1>
<h2>Abrt 1.0</h2>
<p>ABRT stands for Automated Bug Reporting Daemon. It is a tool designed to make it trivially easy for a user to submit a bug report when an application they are using crashes. This will require a fully updated system (to ensure you&#8217;re not reporting bugs already fixed, and the debuginfo packages for the software you&#8217;re reporting the bug for (they will be downloaded on demand). This will mean that should an application crash a popup will appear in the system tray, clicking the pop-up will launch a simple wizard to walk the user through the steps of reporting the bug.</p>
<h2>Anaconda MDRaid</h2>
<p>This feature involves changing the default RAID type from dmraid to mdraid when using Intel BIOS-RAID devices. Mdraid (Linux Software RAID) holds many advantages over dmraid including RAID 5 sets and better flexibility. In the past the dmraid drivers were built into the initrd and hence the only way to stop them loading would be to rebuild the initrd without them. Of course this was a non-solution as you had to do it every time you upgraded the kernel.</p>
<h2>FCoE</h2>
<p><a href="http://en.wikipedia.org/wiki/Fibre_Channel_over_Ethernet">Fibre Channel over Ethernet</a> is a recent attempt to reduce the number of cables and interfaces in datacenters. With less switches, cables and interfaces then less cooling is needed and less power is needed, which saves money which is clearly good for companies. So currently to get Fedora working over FCoE you have to play some very interesting tricks. This new feature is aiming to get Fedora 12 to easily install and boot straight from FCoE without any hassle.</p>
<h2>Fedora Studio</h2>
<p>If you have many multimedia applications installed in Fedora 11 you can end up with a very large menu. This can make it difficult to see all the applications and choose the right one. This feature is about creating submenus for media applications to make it easier to find everything.</p>
<h2>GFS2 Clustered Samba</h2>
<p>This feature (though I must admit I&#8217;m not experienced with samba) allows you to export GFS2 clustered filesystems across samba. This means that you can have high availability samba share. Unfortunately that&#8217;s as much as I can tell you. If you want to know more, I suggest you visit the <a href="https://fedoraproject.org/wiki/Features/GFS2ClusteredSamba">feature page</a>.</p>
<h2>KDE 4.3</h2>
<p>Keeping Fedoa at the cutting edge of the Linux software world involves keeping the desktop environments up to date. A desktop environment is what the user sees most and what will make the most difference to their experience. KDE 4.3 has many <a href="http://techbase.kde.org/Schedules/KDE4/4.3_Feature_Plan">new features</a> including: a new default theme, brand new plasma gadgets, Google Calendar support in KOrganiser and a new bug reporting tool.</p>
<h2>KSM</h2>
<p>KSM or Kernel SamePage Merging allows KVM to request pages of RAM that are identical between multiple virtual machines be shared. This approach works because visualized guests will be running the same daemons, loading the same kernels and loading a large amount of similar files. This requires a large amount of kernel changes which probably wont make it into the 2.6.31 kernel so will have to be backported.</p>
<h2>Mobile Broadband Enhancements</h2>
<p>The current black spot in NetworkManagers support is around mobile broadband. Today mobile broadband adaptors are becoming commonplace, but support in Linux is anything but easy. Adding NetworkManager support should make it extremely simple to get your broadband working where ever you are, whatever plan you&#8217;re on and whatever device you&#8217;re using.</p>
<h2>Moblin</h2>
<p>Moblin is a Linux platform that is optimised to give a better experience on netbooks. This feature involves the addition of new desktop manager from Moblin Core. Moblin is a complete rethink of the GUI in a way that&#8217;s designed to be easy to work on netbooks. Its also integrated with socail networking and all the features the &#8216;new kids&#8217; want. Check out the <a href="http://moblin.org/documentation/moblin-netbook-intro">intro video</a>.</p>
<h2>Gnome 2.28</h2>
<p>The plan for Gnome 2.28 hasn&#8217;t been completely finalized yet. So I cant tell you what you&#8217;ll see, what it will be like or whether this feature will eventually be dropped. You can find a list of planned changes for Gnome overall <a href="http://live.gnome.org/RoadMap">here</a> and a separate list for each Gnome application <a href="http://live.gnome.org/RoadMap/Modules">here</a>.</p>
<h2>KVM NIC Hotplug</h2>
<p>This feature add support for hot plugging KVM network interfaces. Having to restart every time you want to add a host to a new network, or give it another interface to load balance over can be a royal pain. Adding a new device simply involves creating a new TAP device and passing its file descriptor to QEMU. Some changes to SELinux will be required but that&#8217;s about it.</p>
<h2>KVM qcow2 Performance</h2>
<p>qcow2 is a disk format for QEMU. Currently though it has a poor performance when using it without a in memory write cache. Unfortunately though storing writes in memory means that in the event of a system crash they may not get written to the physical disk. This feature focuses on improving performance so that administrators don&#8217;t feel the need to choose between performance and data safety.</p>
<h2>KVM Huge Page Backed Memory</h2>
<p>Normally on an x86 CPU the page size would be 4 kilobytes, but the Linux kernel has the ability to use huge page sizes. To find out what size a huge page is in you system type &#8216;cat /proc/meminfo | grep Hugepagesize:&#8217;. On my x86_64 bit system this is 2048 Kb. Large pages require less memory for page tables, which increases performance.</p>
<h2>KVM Stable Guest ABI</h2>
<p>When QEMU is upgraded some of the devices it emulates may change, for example it may support new network cards or different hard drive controllers. These upgrades are equivalent to upgrading the hardware the guest runs on. Unfortunately if Windows detects that hardware has changed it requests activation. Reactivating all your windows guests can become very tiresome every time you upgrade QEMU. This feature is about providing a stabilized hardware to each guest, and only upgrading on the request of the administrator.</p>
<h2>libguestfs</h2>
<p>Libguestfs allows you to easily access any filesystem that can be accessed by your qemu virtual machines. It borrows code from the Linux kernel and qemu. This saves application developers from using complicated loopback mounts and LVM (of which there is another feature to improve).</p>
<h2>Lower Process Capabilities</h2>
<p>The DAC_OVERRIDE capability allows a process to override any file permissions that may be set. If we can remove the DAC_OVERRIDE permission from system daemons then they will become a less attractive target for exploitation. If the filesystem permissions are set in such a way as to protect the files even better (such as 0000 permissions on /etc/shadow and 005 on /bin) then attacking a program with root privileges will be even less attractive. This feature is about dropping DAC_OVERRIDE from some system daemons and modifying file permissions system wide.</p>
<h2>NetBeans 6.7</h2>
<p>Fedora has always been up to date with the latest cutting edge software. Currently NetBeans 6.5 is in Fedora 11. The plan it to move to NetBeans 6.7 to take advantages of the <a href="http://www.netbeans.org/community/releases/67/relnotes.html#new">new features</a>.</p>
<h2>Ovirt Node</h2>
<p>Ovirt node is a host installation of Fedora that is extremely lightweight. The only items included are utilities to run and manage virtual machines and their dependencies. This takes much less memory, disk and CPU for the host leaving more memory available to the guests and increasing the amount of virtual machines you can run on any host.</p>
<h2>Open Shared Root</h2>
<p>This feature is extremely interesting to me because as part of my work I manage several High Performance Clusters. This feature is about having multiple Fedora systems all boot off the same root filesystem. This way people who manage a large number of systems can make one completely stateless image that they all boot off.</p>
<h2>Power Management F12</h2>
<p>A sneak addition to Fedora 11 was tuned, so sneaky I only discovered it recently. It allows the system to tune its setting on the fly. For example on my laptop when there is little filesystem activity it can tune the commit interval so it only has to spin up the HD on rare occasions. It has a plugin architecture so it could also tune the network card to 10Mbits when it is hardly being used, or turn off the wireless network card when it isn&#8217;t required. This feature involves merging tuned and Red Hats ktune in order to automatically tune the power usage of your PC.</p>
<h2>SystemTap Eclipse GUI</h2>
<p>There is currently a focus on making SystemTap easier to use. Currently SystemTap only has a CLI GUI, and while there is a vim syntax highlighter it isn&#8217;t installed by default. This effectively means there is no IDE for developing SystemTap scripts. Eclipse is a visual editor for writing many types of applications. SystemTap will no doubt benefit With eclipse integration, maybe we&#8217;ll even see automatically generated SystemTap scripts.</p>
<h2>Systemtap Tracing Refresh</h2>
<p><a name="SystemTapTracingRefresh"></a>Originally a feature was proposed for Fedora 12 titled &#8216;SystemTap Static probes&#8217;, but the work required for this feature to become a reality hasn&#8217;t been finished yet. So that feature has been re targeted for Fedora 13. Instead this feature will focus on documenting and streamlining the SystemTap tools to provide a better user experience. This work going into this feature also enables the &#8216;SystemTap Static probes&#8217; for the next version of Fedora.</p>
<h2>Rakudo Perl 6</h2>
<p>Rakudo is an implementation of the Perl 6 specification under the Parrot Virtual Machine. There are currently many implementations of Perl 6 but this one clearly separates the compiler and the runtime and its more actively maintained than the rest. This feature allows Fedora to stay at the cutting edge of technology.</p>
<h2><a title="Features/Thusnelda" href="https://fedoraproject.org/wiki/Features/Thusnelda"> </a>Thusnelda</h2>
<p>Thusnelda is the name of the new Theora encoder. As of the libtheora 1.1 release it is now the chosen encoder for Theora video. Thusnelda&#8217;s development was supported by Red Hat, Wikimedia and Mozilla. It should be noted that mplayer and ffmpeg include their own implementation for Theora encoders so this feature will not include those applications that rely on them.</p>
<h2>Virtual Network Interface Management</h2>
<p>Linux allows some very complicated setups for networking, for instance you can bond multiple physical interfaces for increased throughput or reliability, you can set an inteface to tag VLANs and many more. None of these configurations are easy, and NetworkManager has even made some harder. This feature is especially important when guest machines are involved because they can involde some interesting network setups. This feature will introduce a netcf library to allow the easy configuration of complicated network setups. Netcf will not be integrated with NetworkManager in this release of Fedora, but these features will be designed with future integration in mind.</p>
<h2>NFSv4Default</h2>
<p>Simply put, this feature is about changing the default NFS protocol for Fedora 12 to NFSv4. NFSv4 includes many improvements over its predecessors but most importantly it uses less traffic to perform the same tasks.</p>
<h2>PackageKitBrowserPlugin</h2>
<p>Lets say I&#8217;m writing a blog post that explains how get SystemTap working on your system. I&#8217;d have to tell you what packages you&#8217;d need to install in order to get it working. Rather than give you a bunch of yum commands to run wouldn&#8217;t it be cool if you just clicked a button on my site. That&#8217;s basically what is involved in this feature, it means I can add a button which will prompt you to install the features I&#8217;ve told it to.</p>
<h2>PackageKitCommandNotFound</h2>
<p>Ever typed mplayer into a terminal only to find out it isn&#8217;t installed yet? This integrates into bashes command not found message to help you find the program you were looking for. Now instead of bash saying command not found when you type iotop for the first time it will prompt you to install it.</p>
<h2>SR-IOV</h2>
<p>using QEMU you can assign PCI devices directly to the guests machines, but previously this would stop the host from using it, and it would only be available on the one guest. This feature is about allowing multiple guests and the host to simultaneously access one PCI device. This requires driver support so that the machines can be organised and coordinated to prevent mishaps and errors.</p>
<h2>Virt Privileges</h2>
<p>This feature allows running QEMU as a non root user. Running with these lower privileges limits the damage that can be done by particular vulnerabilities. Another advantage is that you can have a much better intergration with a users desktop. The guest machine will be able to use that users sound server, put disk images in that users home directories and generally integrate with the desktop better.</p>
<h2>VirtioSerial</h2>
<p>This feature will create an interface between the userspace on the guest and the userspace on the host. This interface will consist of simple character devices that will be able to alert the guest to windows size changes, or transfer copy/paste data bidirectionally.</p>
<h2>VirtgPXE</h2>
<p>Every time Red Hat fix a bug in etherboot and send a patch upstream the get the response &#8220;we currently do not support etherboot, can you use gpxe instead?&#8221;. At the moment gxpe is included in Fedora but is not used by QEMU. The plan for this feature is to deprecate etherboot and move towards gxpa.</p>
<h2>Virt Storage Management</h2>
<p>At the moment if you want a guest machine to use a SAN for storage you&#8217;ll have to set it up manually. This feature plans to make it easier to configure by allowing machines to auto-detect and configure the SAN for the virtual machine.</p>
<h2>XI2</h2>
<p>XInput2 is a major enhancement over XInput1.5. It opens up X to some very interesting posibilities, for example I could have two keyboards and mice attached to my desktop allowing both me and another person to use two applications on the same screen simultaneously. I could copy something to the clipboard and they could paste it. I could drag a picture into their document from my image editor and so on. Somewhat less exciting is support for 32bit keycodes, instead of 255 allowing even more multimedia keys, support for devices that modify the amount of buttons they have at runtime and so on.</p>
<h2>YumLangpackPlugin</h2>
<p>Fedora is available in many different languages, but finding and installing the correct langpacks to get the language you want can be very difficult. This feature lets yum find and install the correct langpacks when the base langpack is installed. this makes Fedora much more accessable to people who speak languages other than English.</p>
<h1>Dropped Features</h1>
<h2>Debuginfo filesystem</h2>
<p>Dropped due to a lack of status updates</p>
<h2>Multiseat</h2>
<p>Dropped due to a lack of status updates</p>
<h2>SystemTap Static probes</h2>
<p>See the <a href="#SystemTapTracingRefresh">SystemTap Tracing Refresh</a>.</p>
<p><strong>Random Thought:</strong> I just wrote a 2446 word post about Fedora&#8217;s features and you expect me to be able to think afterwards? I&#8217;m too tired to think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.danielhall.me/2009/08/fedora-12-constantine-features/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

