<?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>Tom Hayward</title>
	<atom:link href="http://wp.tomh.us/feed/" rel="self" type="application/rss+xml" />
	<link>http://wp.tomh.us</link>
	<description>Hacker, climber, and RF enthusiast.</description>
	<lastBuildDate>Wed, 08 Oct 2014 23:21:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.39</generator>
	<item>
		<title>Sainsonic AP510 APRS tracker</title>
		<link>http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/</link>
		<comments>http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/#comments</comments>
		<pubDate>Tue, 07 Oct 2014 06:09:25 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Photos]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/?p=54</guid>
		<description><![CDATA[]]></description>
				<content:encoded><![CDATA[
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-09-58/'><img width="222" height="300" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.09.58-222x300.jpg" class="attachment-medium" alt="Sainsonic AP510 APRS tracker" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-10-18/'><img width="300" height="222" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.10.18-300x222.jpg" class="attachment-medium" alt="2014-09-18 15.10.18" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-11-39/'><img width="300" height="222" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.11.39-300x222.jpg" class="attachment-medium" alt="Power/beacon button, GPS antenna, status LEDs, and antenna connector" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-13-54/'><img width="300" height="222" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.13.54-300x222.jpg" class="attachment-medium" alt="2014-09-18 15.13.54" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-14-02/'><img width="300" height="222" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.14.02-300x222.jpg" class="attachment-medium" alt="2014-09-18 15.14.02" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-14-11/'><img width="300" height="222" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.14.11-300x222.jpg" class="attachment-medium" alt="2014-09-18 15.14.11" /></a>
<a href='http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/attachment/2014-09-18-15-14-35/'><img width="222" height="300" src="http://wp.tomh.us/wp-content/uploads/2014/10/2014-09-18-15.14.35-222x300.jpg" class="attachment-medium" alt="2014-09-18 15.14.35" /></a>

]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/sainsonic-ap510-aprs-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://wp.tomh.us/tech/hello-world/</link>
		<comments>http://wp.tomh.us/tech/hello-world/#comments</comments>
		<pubDate>Sat, 04 Oct 2014 01:37:44 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/?p=1</guid>
		<description><![CDATA[Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!]]></description>
				<content:encoded><![CDATA[<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Get APRS status via SMS/email</title>
		<link>http://wp.tomh.us/tech/get-aprs-status-via-sms-email/</link>
		<comments>http://wp.tomh.us/tech/get-aprs-status-via-sms-email/#comments</comments>
		<pubDate>Tue, 05 May 2009 01:51:00 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Radio]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/get-aprs-status-via-sms-email/</guid>
		<description><![CDATA[I wrote an email system that will email you a APRS station&#8217;s info (last heard time, position, and APRS status). To use the system, just send an email or SMS (text message) to aprs@tomh.us with the station&#8217;s callsign at the start of the message. Emails must be in plain text format, not multipart/HTML. You should &#8230;]]></description>
				<content:encoded><![CDATA[<p>I wrote an email system that will email you a <a href="http://info.aprs.net/index.php?title=Main_Page">APRS</a> station&#8217;s info (last heard time, position, and APRS status).</p>
<p>To use the system, just send an email or SMS (text message) to <a href="mailto:aprs@tomh.us">aprs@tomh.us</a> with the station&#8217;s callsign at the start of the message. Emails must be in plain text format, not multipart/HTML.</p>
<p>You should receive a response in about a minute. It will look something like this:</p>
<blockquote>
<p>WA7RVV-12&#160;6min ago:<br />Saltese, Mt 59867, USA<br />/W2,MTN,LOOKOUT PASS<br />47.454167,-115.658333</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/get-aprs-status-via-sms-email/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I made you a 1234567890 countdown timer</title>
		<link>http://wp.tomh.us/tech/i-made-you-a-1234567890-countdown-timer/</link>
		<comments>http://wp.tomh.us/tech/i-made-you-a-1234567890-countdown-timer/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 16:08:00 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/i-made-you-a-1234567890-countdown-timer/</guid>
		<description><![CDATA[Unix time will reach 1234567890 on 2009-02-13&#160;15:31:30. I made a countdown timer in bash. #!/bin/sh printf "tUNIX TIMEt TO GO:tDAYStHOURStMINUTEStSECONDSn" while true; DATE=`date +%s` SECONDS=$[1234567890-$DATE] MINUTES=$[$SECONDS/60] HOURS=$[$MINUTES/60] DAYS=$[$HOURS/24] printf "t%stt%4st%5st%7st%7sr" "$DATE" "$DAYS" "$[$HOURS%$DAYS]" "$[$MINUTES%$HOURS]" "$[$SECONDS%$MINUTES]" sleep 1 done]]></description>
				<content:encoded><![CDATA[<p>Unix time will reach 1234567890 on 2009-02-13&#160;15:31:30. I made a countdown timer in bash.</p>
<pre>#!/bin/sh
printf "tUNIX TIMEt TO GO:tDAYStHOURStMINUTEStSECONDSn"
while true;
	DATE=`date +%s`
	SECONDS=$[1234567890-$DATE]
	MINUTES=$[$SECONDS/60]
	HOURS=$[$MINUTES/60]
	DAYS=$[$HOURS/24]
	printf "t%stt%4st%5st%7st%7sr" "$DATE"	"$DAYS" "$[$HOURS%$DAYS]" "$[$MINUTES%$HOURS]" "$[$SECONDS%$MINUTES]"
	sleep 1
done
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/i-made-you-a-1234567890-countdown-timer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Send a file to a process by writing to /proc</title>
		<link>http://wp.tomh.us/tech/send-a-file-to-a-process-by-writing-to-proc/</link>
		<comments>http://wp.tomh.us/tech/send-a-file-to-a-process-by-writing-to-proc/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 05:22:00 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/send-a-file-to-a-process-by-writing-to-proc/</guid>
		<description><![CDATA[I&#8217;d like a way to &#8220;write&#8221; to a Linux filesystem, but rather than write the file, have the file sent to a process (so that it can be sent to another server over the network). I think this is possible with a kernel module by writing to /proc/mykernelmodule/filetosend, but I don&#8217;t know of any good &#8230;]]></description>
				<content:encoded><![CDATA[<p>I&#8217;d like a way to &#8220;write&#8221; to a Linux filesystem, but rather than write the file, have the file sent to a process (so that it can be sent to another server over the network). I think this is possible with a kernel module by writing to /proc/mykernelmodule/filetosend, but I don&#8217;t know of any good resources that teach this. Any ideas?</p>
<p>Edit: This seems like a pretty good resource (haven&#8217;t started hacking on it yet): <a href="http://tldp.org/LDP/lkmpg/2.6/html/x810.html">http://tldp.org/LDP/lkmpg/2.6/html/x810.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/send-a-file-to-a-process-by-writing-to-proc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blocking Recursive Root DNS Queries with iptables</title>
		<link>http://wp.tomh.us/tech/blocking-recursive-root-dns-queries-with-iptables/</link>
		<comments>http://wp.tomh.us/tech/blocking-recursive-root-dns-queries-with-iptables/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 04:57:24 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/blocking-recursive-root-dns-queries-with-iptables/</guid>
		<description><![CDATA[Around Jan 18th, Several folks are reporting odd queries hitting their DNS servers at a steady rate of about two per second.  The queries invariably ask for the name server of the domain &#8220;.&#8221; (NS query for a single dot).   Since &#8220;.&#8221; is a query for the root name servers, it has a very short &#8230;]]></description>
				<content:encoded><![CDATA[<p>Around Jan 18th,</p>
<blockquote><p>Several folks are reporting odd queries hitting their DNS servers at a steady rate of about two per second.  The queries invariably ask for the name server of the domain &#8220;.&#8221; (NS query for a single dot).   Since &#8220;.&#8221; is a query for the root name servers, it has a very short query packet but a pretty long answer. Our current theory therefore is that this is a denial of service (DoS) attack in progress, where the DNS servers are used as &#8220;amplifiers&#8221; and unwittingly flood the (spoofed) source by providing a long answer to a system which never asked.<br /><a href="http://isc.sans.org/diary.html?storyid=5713">http://isc.sans.org/diary.html?storyid=5713</a></p></blockquote>
<p>I noticed one of the servers I am responsible was getting hit with this query about four times a second. The server was already configured to reject the query, but with each one it logged a warning. named (bind DNS server) and syslogd were now the second and third largest resource users on the server.</p>
<p>I&#8217;m sure there are other system administrators dealing with the same problem, so I&#8217;m going to outline the process I went through to eventually drop them with iptables (the server is not protected by a hardware firewall, so I had to use the linux firewall iptables). Note, the system is Ubuntu Server 7.10, so the paths used here should be accurate for related systems.</p>
<p>First of all, to survey the damage:</p>
<pre>thayward@sea1:~$ tail /var/log/syslog
Jan 24 11:52:28 sea1 named[23890]: client 206.71.158.30#43845: query (cache) './NS/IN' denied
Jan 24 11:52:29 sea1 named[23890]: client 206.71.158.30#43332: query (cache) './NS/IN' denied
Jan 24 11:52:29 sea1 named[23890]: client 206.71.158.30#23849: query (cache) './NS/IN' denied
Jan 24 11:52:29 sea1 named[23890]: client 206.71.158.30#65188: query (cache) './NS/IN' denied
Jan 24 11:52:29 sea1 named[23890]: client 206.71.158.30#45150: query (cache) './NS/IN' denied
Jan 24 11:52:30 sea1 named[23890]: client 206.71.158.30#1362: query (cache) './NS/IN' denied
Jan 24 11:52:31 sea1 named[23890]: client 206.71.158.30#39496: query (cache) './NS/IN' denied
Jan 24 11:52:31 sea1 named[23890]: client 206.71.158.30#27892: query (cache) './NS/IN' denied
Jan 24 11:52:31 sea1 named[23890]: client 206.71.158.30#52019: query (cache) './NS/IN' denied
Jan 24 11:52:32 sea1 named[23890]: client 206.71.158.30#36766: query (cache) './NS/IN' denied
</pre>
<p>You can see named goes to a lot of effort to get these denials logged. While I figure out how to drop the packets, let&#8217;s set bind&#8217;s log level to something that won&#8217;t log this attack. The system&#8217;s bind configuration file is located at /etc/bind/named.conf. I added these lines:</p>
<pre>logging{
    channel default_syslog {
        syslog daemon;
        severity notice;
        };
};
</pre>
<p>This changes the default syslog behavior of bind from info to notice. This stops logging of the denial messages.</p>
<p>Okay, now that we&#8217;ve avoided the problem, let&#8217;s try to actually block it. The simple solution is to block the source IP address. In this case, that is spoofed as it is the IP address of the victim. Blocking this will keep me out of the attack for now, but when they choose a new victim I could begin sending more refusals.</p>
<p>To block the source IP, I issued this command for each of the offending IPs:</p>
<pre>sudo iptables -I INPUT -s 206.71.158.30 -j DROP</pre>
<p>This calmed things down a bit, but still wouldn&#8217;t protect me against future attacks. For this I would need to do some investigation and learn how to block the packets more specifically.</p>
<p>I started a packet capture on the server with tcpdump.</p>
<pre>thayward@sea1:~$ sudo tcpdump -i eth0 -s 1500 -w dump4</pre>
<p>eth0 specifies the network adapter to capture from; size of 1500 tells tcpdump to cature the full packet (by default, tcpdump only captures the first 68 bytes); and dump4 is the file I saved the capture to.</p>
<p>I downloaded dump4 and loaded it into Wireshark. A filter expression of &#8220;dns&#8221; filters out what I need.</p>
<p>I knew these packets would be port 53 because they are DNS queries. I also knew they would be UDP because it is a short DNS query. What I wanted to know was the length of the packet (the tiny packet length is what makes this attack work). I experimented with some of the values I found in Wireshark, I found one that matches iptables&#8217; length rule:</p>
<p><img alt='Wireshark screen capture: "Total Length: 45"' src="http://tomh.us/pics/blog/wiresharkcap.png" height="487" width="550" /></p>
<p>Under Internet Protocol, I found Total Length to be 45, and used this in the iptables rule:</p>
<pre>sudo iptables -I INPUT -p udp --dport 53 -m length --length 45 -j DROP</pre>
<p>This will drop all root DNS queries.</p>
<p>To test it out:</p>
<pre>dig . NS @yourserver.com</pre>
<p>If dig just hangs without returning a result, the request was dropped and it&#8217;s working.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/blocking-recursive-root-dns-queries-with-iptables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Take that Apple: hacked VPN on iPod touch</title>
		<link>http://wp.tomh.us/tech/take-that-apple-hacked-vpn-on-ipod-touch/</link>
		<comments>http://wp.tomh.us/tech/take-that-apple-hacked-vpn-on-ipod-touch/#comments</comments>
		<pubDate>Sun, 14 Oct 2007 04:20:45 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/take-that-apple-hacked-vpn-on-ipod-touch/</guid>
		<description><![CDATA[I guess if Apple can&#8217;t do it properly I&#8217;ll just have to do it myself. I jailbreaked my iPod touch. This made it easy to copy over Mail.app and MobileMailSettings.bundle from the iPhone firmware. After a quick restart my iPod touch had full VPN support! Works like a charm on campus! This makes my iPod &#8230;]]></description>
				<content:encoded><![CDATA[<p>I guess if Apple can&#8217;t do it properly I&#8217;ll just have to do it myself. I jailbreaked my iPod touch. This made it easy to copy over Mail.app and MobileMailSettings.bundle from the iPhone firmware. After a quick restart my iPod touch had full VPN support! Works like a charm on campus!</p>
<p> This makes my iPod about twice as useful&#8212;I hope Apple understands this and decides to put in a VPN client legitimately. </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/take-that-apple-hacked-vpn-on-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Confirmed: VPN on iPod Touch</title>
		<link>http://wp.tomh.us/tech/confirmed-vpn-on-ipod-touch/</link>
		<comments>http://wp.tomh.us/tech/confirmed-vpn-on-ipod-touch/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 03:43:17 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/confirmed-vpn-on-ipod-touch/</guid>
		<description><![CDATA[Update: Apple lied: No VPN client on iPod touch  First of all, if you haven&#8217;t seen the new iPods (including lowered price for the iPhone), you&#8217;re missing out. Check them out: www.apple.com. Apple finally did it right: solid-state widescreen/touchscreen iPod. No more dead hard drives. I just got off the phone with Apple. They confirmed &#8230;]]></description>
				<content:encoded><![CDATA[<p><strong>Update: <a href="http://blog.tomh.us/post/12863395">Apple lied: No VPN client on iPod touch</a> </strong></p>
<p>First of all, if you haven&#8217;t seen the new iPods (including lowered price for the iPhone), you&#8217;re missing out. Check them out: <a href="http://apple.com">www.apple.com</a>. Apple finally did it right: solid-state widescreen/touchscreen iPod. No more dead hard drives.</p>
<p> I just got off the phone with Apple. They confirmed for me that the <strong>iPod Touch indeed has the same VPN support as the iPhone</strong>.</p>
<p>When I ordered my 16GB iPod Touch last night I didn&#8217;t think about the fact that the software might be different than the iPhone. For the most part it&#8217;s not, but Apple has chosen to leave a few things out (like Mail, Stocks, and Weather). But would they leave out a system feature like VPN? No, apparently not. So it will work with campus Wi-Fi&#8212;perfect.</p>
<p>On a further note, I&#8217;ve heard that the software is exactly the same as the iPhone. This means that the missing applications should be easy to install with <a href="http://iphone.nullriver.com/beta/">Installer.app</a> once someone with an iPhone leaks them. Third-party iPhone apps should work too (like Sudoku and OpenSSH). </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/confirmed-vpn-on-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sex, Crime And Videogames: Gang Kidnaps Gamer to Get Password Using Fake Orkut Date &#8211; Gizmodo</title>
		<link>http://wp.tomh.us/uncategorized/sex-crime-and-videogames-gang-kidnaps-gamer-to-get/</link>
		<comments>http://wp.tomh.us/uncategorized/sex-crime-and-videogames-gang-kidnaps-gamer-to-get/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 04:49:43 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/sex-crime-and-videogames-gang-kidnaps-gamer-to-get/</guid>
		<description><![CDATA[Sex, Crime And Videogames: Gang Kidnaps Gamer to Get Password Using Fake Orkut Date &#8211; Gizmodo Funniest thing I&#8217;ve read all day.]]></description>
				<content:encoded><![CDATA[<p><a href='http://gizmodo.com/gadgets/sex%2C-crime-and-videogames/gang-kidnaps-gamer-to-get-password-using-fake-orkut-date-280966.php'>Sex, Crime And Videogames: Gang Kidnaps Gamer to Get Password Using Fake Orkut Date &#8211; Gizmodo</a>
<div class="link_description">
<p>Funniest thing I&#8217;ve read all day.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/uncategorized/sex-crime-and-videogames-gang-kidnaps-gamer-to-get/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Lately</title>
		<link>http://wp.tomh.us/tech/linux-lately/</link>
		<comments>http://wp.tomh.us/tech/linux-lately/#comments</comments>
		<pubDate>Sat, 07 Jul 2007 09:40:37 +0000</pubDate>
		<dc:creator><![CDATA[tom]]></dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://wp.tomh.us/uncategorized/linux-lately/</guid>
		<description><![CDATA[For years I&#8217;ve been using Linux on servers, but in the past few weeks I&#8217;ve found myself using it quite a bit more. If fact, this post comes to you from my newly Linux-loaded laptop.  The other night I decided that although Vista has it&#8217;s place, it wasn&#8217;t on my laptop. Thinking about it, I&#8217;m &#8230;]]></description>
				<content:encoded><![CDATA[<p>For years I&#8217;ve been using Linux on servers, but in the past few weeks I&#8217;ve found myself using it quite a bit more. If fact, this post comes to you from my newly Linux-loaded laptop.</p>
<p> The other night I decided that although Vista has it&#8217;s place, it wasn&#8217;t on my laptop. Thinking about it, I&#8217;m surprised I held out on Vista for a whole six months&#8212;it never did run very well. Anyway, Ubuntu 7.04 is my laptop&#8217;s OS now. I was quite impressed by the install process. If you&#8217;ve ever installed Ubuntu before, you know that it&#8217;s a live cd, meaning you don&#8217;t have to install the OS to start running it and using applications&#8212;just pop in the CD. This is neat, but the best part is that it really works and everything is fully supported. I popped in the CD, waited 30 seconds, it found my laptop&#8217;s WiFi hardware, configured the drivers, and asked me which network I wanted to connect to. This amazed me. Even on Windows XP and Vista I had to search for drivers on the internet with another computer, then transfer them via USB thumb drive, before manually installing them. Bravo Ubuntu! More progress like this and you will be [more] mainstream in no time.  </p>
<p> Though not the primary operating system, Ubuntu 7.04 is now being virtualized on both my desktop and my work desktop (Mark (the boss) got was a little annoyed today when he couldn&#8217;t figure out how to get out of Linux mode) using VMware Server (newly free!). This works much better than I would have guessed. There&#8217;s a very slight delay between input and output, but it&#8217;s very usable and very convenient. The ability to boot Linux in a window within Windows eliminates all the short-comings of a dual-boot setup. At both work and home, I find myself using virtual Ubuntu almost as much as I do Windows. There just aren&#8217;t many things that can&#8217;t be done with Linux or can be done better by Windows. </p>
<p> The other place I use Linux is the most interesting to me, but I&#8217;ll understand if most readers don&#8217;t share this passion. I&#8217;ve started working on an embedded Linux system at Harbortronics for&#8212;you guessed it&#8212;time lapse. So far it&#8217;s a neat little package, and easier to work with than I expected.  It&#8217;s basically just a circuit board based around a 180MHz computer-on-a-chip. It has USB, Ethernet, serial ports, a card reader: basically everything you need in a computer. It runs a form of Debian Linux (kernel 2.6). Currently, I have a web server, SSH server, LCD text output, and serial terminal running on it. I&#8217;m pretty optimistic about the future of this project, if I ever get some more development time. &gt;</p>
<p> Bleh: conclusion. So yeah, Linux, try it: <a href="http://ubuntu.com">ubuntu.com</a>. It&#8217;s easier than you think and, did I mention, free? </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.tomh.us/tech/linux-lately/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
