<?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>lukemacneil.com</title>
	<atom:link href="http://www.lukemacneil.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lukemacneil.com</link>
	<description>music.linux.code</description>
	<lastBuildDate>Fri, 30 Dec 2011 04:04:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Disable button backlights for the HTC Thunderbolt and ReZound</title>
		<link>http://www.lukemacneil.com/2011/12/22/disable-button-backlights-for-the-htc-thunderbolt/</link>
		<comments>http://www.lukemacneil.com/2011/12/22/disable-button-backlights-for-the-htc-thunderbolt/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 00:52:40 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.com/?p=519</guid>
		<description><![CDATA[Since the button backlight on the HTC Thunderbolt causes what I consider excessive light bleed, here&#8217;s a way to disable the LEDs. Just slap something like that into one of your init scripts. Suppose tasker could handle it too. Much nicer looking now, IMO. This is slightly different on the rezound: I put this in &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/12/22/disable-button-backlights-for-the-htc-thunderbolt/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Since the button backlight on the HTC Thunderbolt causes what I consider excessive light bleed, here&#8217;s a way to disable the LEDs. </p>
<pre class="brush: plain; title: ; notranslate">
mount -o rw,remount /system
chmod 777 /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
echo 0 &gt; /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
chmod 444 /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
mount -o ro,remount /system
</pre>
<p>Just slap something like that into one of your init scripts. Suppose tasker could handle it too.<br />
Much nicer looking now, IMO.</p>
<p>This is slightly different on the rezound:</p>
<p>I put this in /etc/init.post_boot.sh</p>
<pre class="brush: plain; title: ; notranslate">

mount -o rw,remount /dev/block/mmcblk0p29 /system
chmod 777 /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
echo 0 &gt; /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
chmod 444 /sys/devices/platform/leds-pm8058/leds/button-backlight/brightness
mount -o ro,remount /dev/block/mmcblk0p29 /system
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/12/22/disable-button-backlights-for-the-htc-thunderbolt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why the Galaxy Nexus is a gigantic disappointment.</title>
		<link>http://www.lukemacneil.com/2011/12/18/why-the-galaxy-nexus-is-a-gigantic-disappointment/</link>
		<comments>http://www.lukemacneil.com/2011/12/18/why-the-galaxy-nexus-is-a-gigantic-disappointment/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 22:02:17 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.com/?p=501</guid>
		<description><![CDATA[If you&#8217;re reading this, you&#8217;ve probably already got the device and you&#8217;re looking for reviews that justify your purchase when deep down in your heart you know it&#8217;s crap&#8230; We heard rumors, we waited. I for one, didn&#8217;t expect all that much from it&#8230; but I&#8217;d be lying if I didn&#8217;t say I was excited &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/12/18/why-the-galaxy-nexus-is-a-gigantic-disappointment/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lukemacneil.com/wp-content/uploads/2011/12/Galaxy-Nexus.png"><img class="alignleft  wp-image-513" title="Galaxy-Nexus" src="http://www.lukemacneil.com/wp-content/uploads/2011/12/Galaxy-Nexus-300x284.png" alt="" width="240" height="227" /></a>If you&#8217;re reading this, you&#8217;ve probably already got the device and you&#8217;re looking for reviews that justify your purchase when deep down in your heart you know it&#8217;s crap&#8230;</p>
<p>We heard rumors, we waited. I for one, didn&#8217;t expect all that much from it&#8230; but I&#8217;d be lying if I didn&#8217;t say I was excited to own my first Nexus device. I had no reason to change devices, and on paper the Nexus had specs I was less than impressed with, but I figured it&#8217;d be worth it just to have an OEM unlockable bootloader. Well, I was wrong, it&#8217;s not worth it, this phone sucks, and here&#8217;s why&#8230;.</p>
<p>First and foremost.. a Nexus is a pure Google experience device. Did Google make &#8220;My Verizon Mobile&#8221;? No? .. Is it on the phone? Yes? &#8230; Then it&#8217;s not a Nexus. Period. It&#8217;s just a phone borrowing the Nexus name to help cover up it&#8217;s mediocrity.</p>
<p>For those that haven&#8217;t seen it before, it&#8217;s large. Really large. Too large. It&#8217;s clunky to hold and the width and slipperiness of the device make me know it&#8217;s going to take more than a few tumbles on the asphalt. That happens, and usually I&#8217;m alright with it.. bummed, but alright. Since any new device is eventually going to be dinged and knicked&#8230; I try to not obsess about it.. because nothing stays pretty forever. In this case however, the chinsy plastic and huge glass surface area is sure to make for an unhappy day in the event of a spill. Whatever. It&#8217;s a phone. It needs some kind of chassis, and it needs to be somewhat cost effective. I get that. So&#8230; no big deal.</p>
<p>The screen blows. Period. I don&#8217;t understand all the freaks on the internet going off about how this is the greatest screen ever on a mobile device because it&#8217;s 1280&#215;720 Super AMOLED. Know what that means to me? Nothing. I don&#8217;t care what kind of screen it is or what the resolution is if the display looks like crap, and in this case&#8230; it looks like crap. Solid whites look like textured grays, and solid grays look like a coffee stained gray flannel. This is the case whenever the brightness drops to around 40%. I found the screen to be infuriating in lower brightness conditions, and really nice at higher brightness. &#8220;That&#8217;s just the way it is with these pen tile AMOLED screens&#8221; &#8230; well, then they suck, and shouldn&#8217;t be used on high end phones. Who&#8217;s going to run an LTE device with that sized screen and that battery at high brightness. Anyone that does can use their phone for about 13 minutes.</p>
<p>Next up on the list of reasons this phone is a turd cream sandwich is the lack of an SD card and no USB Mass storage. I get the reason for this. I really do.. and it is NOT because google thinks it&#8217;s an intelligent design decision to better the lives of developers and make a better end product by removing the dependency on mount locking and multiple storage locations. That may be a minor side effect in some cases, but it&#8217;s pretty clear&#8230; There&#8217;s no USB Mass storage because Google doesn&#8217;t want to pay Microsoft for licensing FAT32. You&#8217;re douchebags for not just coming out and saying it. Nobody blames you. But instead of coming up with a new filesystem, or a universal driver&#8230;We&#8217;re supposed to use MTP to transfer files to the phone. Seriously Google? MTP? It never, EVER worked correctly and everyone knows it. Still doesn&#8217;t. It might work out of the box for Windows 7 users&#8230; kinda, but that&#8217;s it. Are you running windows XP at work? Better hope you have admin rights to install Windows Media Player 11, because if you&#8217;ve got WMP10 you can only transfer media filetypes. Infuriating.</p>
<p>Have you heard of linux Google? You kinda use the kernel in android, how about some consideration for the people that actually use the OS. Ever try MTP on linux? It sucks. Part of the reason I switched to android was that I got tired of messing around with libimobiledevice and libgpod or depending on a Windows VM to communicate with my device reliably. Android gave me that simple, reliable connectivity but you took it away. Now I can fiddle around with libmtp, which is even worse. (this isn&#8217;t a dig at the developers of these libraries, you&#8217;re doing great work, but you shouldn&#8217;t have to be). You guys run your own custom Google Linux, you&#8217;re more than capable of contributing some driver/library to support a nonlocking filesystem.</p>
<p>Yeah, you can use &#8216;the cloud&#8217;, webdav, ssh, cifs, ftp, or any other network protocol&#8230; but try that when you&#8217;re stuck down in a datacenter without a USB key and no signal. There will come a day when you need that UMS support, and it&#8217;s not there. The storage situation is a joke and I hate it.</p>
<p>Which brings me to reception. What&#8217;s to say really? The radios are atrocious. I never saw &gt; -100db.</p>
<p>As for the camera.. I&#8217;m not a photographer, but generally I can point a phone, snap a picture, and it comes out decent. Not so on this phone. I did see some impressive shutter shots by @koush of his dog though.. I certainly couldn&#8217;t produce anything of that quality. Regardless &#8230; No big deal.</p>
<p>It did have some good points. Having an OEM unlockable bootloader is fantastic and I truly appreciate it, though that&#8217;s the way all phones should be, so I don&#8217;t really know if Nexus should be considered a better phone because of it. They managed to fit in a respectable battery in my opinion. It doesn&#8217;t last long, but really, how could it with a screen that size that requires a brightness that high. I think they did the best they could to keep the phone light and thin, and it&#8217;s acceptable.</p>
<p>ICS is nice, but it&#8217;s still android. It&#8217;s not the giant revolutionary OS of your dreams, it&#8217;s just an incremental evolution of a java stack running on top of a linux kernel. It&#8217;s still wonky. Things like the &#8220;Menu&#8221; button aren&#8217;t uniform.. sometimes the menu button is in the button tray, sometimes it&#8217;s randomly placed within the app&#8230;oh, and have fun sifting through a hundred widgets page by page 4 at a time in the app drawer.</p>
<p>Any one of these things would be annoying, but not a deal breaker. Taken together, it&#8217;s easy to see&#8230; this phone is just plain not good.</p>
<p>So.. in short, here&#8217;s my review of the Samsung Galaxy Nexus:</p>
<p>As far as hardware goes.. it sucks.</p>
<p>As far as software goes.. it sucks, just less than the alternatives.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/12/18/why-the-galaxy-nexus-is-a-gigantic-disappointment/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>What Ecig should I buy?</title>
		<link>http://www.lukemacneil.com/2011/10/05/what-ecig-should-i-buy/</link>
		<comments>http://www.lukemacneil.com/2011/10/05/what-ecig-should-i-buy/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 22:49:50 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[E-Cigarettes]]></category>
		<category><![CDATA[battery]]></category>
		<category><![CDATA[e-cigarette]]></category>
		<category><![CDATA[ecig]]></category>
		<category><![CDATA[ejuice]]></category>
		<category><![CDATA[electronic cigarettes]]></category>
		<category><![CDATA[kgo]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.com/?p=417</guid>
		<description><![CDATA[&#8220;All my friends have blu ecigs, and I saw something similar at a gas station for $40, should I buy that?&#8221; This is a question that I hear typically. It&#8217;s a difficult question to answer because everyone has different smoking habits, budget, and taste. For the first year or so that I was vaping, I &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/10/05/what-ecig-should-i-buy/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lukemacneil.com/wp-content/uploads/2011/10/kgo.jpeg"><img class="alignleft size-medium wp-image-418" title="KGO" src="http://www.lukemacneil.com/wp-content/uploads/2011/10/kgo-300x224.jpg" alt="" width="300" height="224" /></a>&#8220;All my friends have blu ecigs, and I saw something similar at a gas station for $40, should I buy that?&#8221;</p>
<p>This is a question that I hear typically. It&#8217;s a difficult question to answer because everyone has different smoking habits, budget, and taste. For the first year or so that I was vaping, I would typically overload the newbie with information, often watching eyes gloss over as I babbled on and on about voltages and resistance. I&#8217;ve learned over time that generally, people just want to be told what to do.</p>
<p>We are the few that take the time to read the forums, do the research, and take on vaping as an actually hobby. The general public has less interest. Now when someone asks me what to buy I respond in a more definate way.</p>
<p>Buy the KGO starter kit from www.hoosierecigsupply.com. Take the carts and atomizer that came with them and put them asside. Instead buy at least 10 of the Smoktek Dual Coil 1.5 ohm cartomizers, also sold by www.hoosierecigsupply.com. Buy a drip tip, and a small selection of liquid that sounds good to you. End of story. If it&#8217;s something you then decide to carry on with there are a million roads to travel.</p>
<p>In closing, buy <span style="color: #3366ff;"><a title="KGO Starter Kit" href="http://hoosierecigsupply.com/KGO-kit-1100mAh-by-SLB-HEC001.htm" target="_blank"><span style="color: #3366ff;">This</span></a></span>, <span style="color: #3366ff;"><a title="Dual Coil Cartomizers" href="http://hoosierecigsupply.com/Smok-tech-Dual-Coil-Cartomizers-for-510-HEC009.htm" target="_blank"><span style="color: #3366ff;">This</span></a></span>, <span style="color: #3366ff;"><a title="Plastic drip tip" href="http://hoosierecigsupply.com/Black-Plastic-Drip-Tip-HEC016.htm" target="_blank"><span style="color: #3366ff;">This</span></a></span>, and some of <span style="color: #3366ff;"><a title="This" href="http://hoosierecigsupply.com/18mg-Ultimate-Vapor-brand-E-Juice-HEC031.htm" target="_blank"><span style="color: #3366ff;">This</span></a></span></p>
<p>All told you will end up with a far better full day kit that will also serve as a worthy backup in the event that you graduate to custom mods (like we all do eventually) for under $100.</p>
<p><em><strong>I am in no way affiliated with the KGO or Hoosier Ecig Supply. This is what I feel (out of the many devices I have personally bought and tried) most comfortable recommending to a new vaper.</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/10/05/what-ecig-should-i-buy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>University of Standford offering free Introduction to Databases.</title>
		<link>http://www.lukemacneil.com/2011/10/05/university-of-standford-offering-free-introduction-to-databases/</link>
		<comments>http://www.lukemacneil.com/2011/10/05/university-of-standford-offering-free-introduction-to-databases/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 19:05:29 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[course]]></category>
		<category><![CDATA[databases]]></category>
		<category><![CDATA[stanford]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.com/?p=391</guid>
		<description><![CDATA[The University of Standford is offering a free course online, available to students anywhere from October 10th &#8211; December 12th, 2011. Seems to be a basic course taught by Professor Jennifer Widom, drawing from the curriculum of Standford&#8217;s regular Intro to DBs course. You can register online, for free here: http://www.db-class.org/course/auth/welcome]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.lukemacneil.com/wp-content/uploads/2011/10/sford.png"><img class="size-full wp-image-392 alignleft" title="sford" src="http://www.lukemacneil.com/wp-content/uploads/2011/10/sford.png" alt="" width="117" height="65" /></a>The University of Standford is offering a free course online, available to students anywhere from October 10th &#8211; December 12th, 2011.<br />
Seems to be a basic course taught by Professor Jennifer Widom, drawing from the curriculum of Standford&#8217;s regular Intro to DBs course. You can register online, for free here: http://www.db-class.org/course/auth/welcome</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/10/05/university-of-standford-offering-free-introduction-to-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unbrick hard bricked (no ping) Linksys E3000 via serial connection.</title>
		<link>http://www.lukemacneil.com/2011/10/02/unbrick-hard-bricked-no-ping-linksys-e3000-via-serial-connection/</link>
		<comments>http://www.lukemacneil.com/2011/10/02/unbrick-hard-bricked-no-ping-linksys-e3000-via-serial-connection/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 04:17:25 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[dd-wrt]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[routers]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/?p=264</guid>
		<description><![CDATA[I accidentally flashed the wrong dd-wrt firmware on my Linksys E3000. This prevented me from recovering with any firmware. I was unable to reset the router, ping the default address, or communicate with it in any way. To recover I had to initiate a serial connection. This router, along with others has serial contacts inside, &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/10/02/unbrick-hard-bricked-no-ping-linksys-e3000-via-serial-connection/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I accidentally flashed the wrong dd-wrt firmware on my Linksys E3000.<br />
This prevented me from recovering with any firmware. I was unable to reset the router, ping the default address, or communicate with it in any way.<br />
<span id="more-264"></span><br />
To recover I had to initiate a serial connection.</p>
<p>This router, along with others has serial contacts inside, on the bottom of the WAN port.<br />
I tried to make a cable out of a 40 PIN IDE cable that would touch these contacts, but got tired of fiddling with it. Instead I opted to solder directly to the board.</p>
<p>The first step in this process was to open the router. This requires a TORX T-10 Security screwdriver bit. I was able to purchase this for about $8 at my local lowes. It&#8217;s the TORX bit with a hole in the center.</p>
<p>Next, I had to pull the plastic chassis off, which was quite difficult. I found it easiest to seperate the pieces from the front.</p>
<p>After the casing was removed, I had to unclip the three antenna wires, and flip the board around. The serial contacts are located on the underside.</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2011/10/img1.jpg"><img class="alignnone size-medium wp-image-265" title="img1" src="http://www.lukemacneil.net/wp-content/uploads/2011/10/img1-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>After locating the contacts for the serial port, I had to identify which of them needed to be used.<br />
My Serial-&gt;USB adapter was a CA-42 Nokia cable that I bought off ebay. There were 3 wires in the cable. Blue (GND), Green (RXD), and White (TXD).</p>
<p>These three wires had to be attached to contacts 5 (GND), 3 (TXD), and 2 (RXD).<br />
Note it&#8217;s important that the RXD wire must be attached to the TXD contact, and TXD on the wire to the RXD contact.</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2011/10/img2.jpg"><img class="alignnone size-medium wp-image-266" title="img2" src="http://www.lukemacneil.net/wp-content/uploads/2011/10/img2-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>Once these wires have been soldered to the appropriate contacts, the serial connection should work.<br />
Connect to it from a terminal using 115200 baud, 8N1 with No Flow Control (hardware or software) and ANSI emulation. I use linux, so I used minicom as a terminal, but you could also use hyperterminal in windows.</p>
<p>Now, plug in the USB end of the cable to your computer, and plug in, and power on the router.<br />
You should see activity in the terminal as the router powers up.</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2011/10/img3.jpg"><img class="alignnone size-medium wp-image-268" title="img3" src="http://www.lukemacneil.net/wp-content/uploads/2011/10/img3-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>Once you&#8217;ve verified that there&#8217;s activity, turn off the router and turn it back on. Quickly begin hitting CTRL-C in the terminal until you reach the CFE&gt; prompt.</p>
<p>Once you&#8217;ve reached the CFE&gt; prompt the router should be up with networking. At this point you should be plug an ethernet cable into the router and ping 192.168.1.1</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2011/10/img4.jpg"><img class="alignnone size-medium wp-image-269" title="img4" src="http://www.lukemacneil.net/wp-content/uploads/2011/10/img4-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>First, clear the nvram by typing:</p>
<pre class="brush: plain; title: ; notranslate">CFE&gt; nvram erase</pre>
<p>Once that has completed, you can begin to send the ORIGINAL linksys firmware to the device.</p>
<p>Using another terminal (or command prompt) prepare the TFTP command to put the firmware on the device.<br />
In linux, I connected to tftp 192.168.1.1, then set the mode to binary, set the timeout to 90 seconds, and entered:</p>
<pre class="brush: plain; title: ; notranslate">CFE&gt; put &lt;filename&gt;</pre>
<p>.<br />
<strong>Don&#8217;t execute the put yet, just get it ready.</strong></p>
<p>Back at the CFE&gt; prompt, type:</p>
<pre class="brush: plain; title: ; notranslate">CFE&gt; flash -ctheader : flash1.trx</pre>
<p>As soon as you execute the flash command, execute the tftp command. This will upload the firmware.</p>
<p>After the firmware is copied to the router, in the CFE prompt, type:</p>
<pre class="brush: plain; title: ; notranslate">CFE&gt; go</pre>
<p>The router will reboot and load it&#8217;s new firmware.</p>
<p>Once it&#8217;s done, you&#8217;ve got a restored router. Desolder the connections on the board, put it all back together and&#8230; good as new.</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2011/10/img5.jpg"><img class="alignnone size-medium wp-image-272" title="img5" src="http://www.lukemacneil.net/wp-content/uploads/2011/10/img5-300x225.jpg" alt="" width="300" height="225" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/10/02/unbrick-hard-bricked-no-ping-linksys-e3000-via-serial-connection/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Linux MP3-&gt;M4B Audiobook generator.</title>
		<link>http://www.lukemacneil.com/2011/09/26/linux-mp3-m4b-audiobook-generator/</link>
		<comments>http://www.lukemacneil.com/2011/09/26/linux-mp3-m4b-audiobook-generator/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 00:18:02 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[m4b]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/?p=261</guid>
		<description><![CDATA[My grandfather LOVES audiobooks. Many of the lower cost audiobooks come in MP3 format. There are a few windows apps that take these MP3s and convert them to bookmark friendly M4B files, however they are wonky at best. Many linux script based solutions require the (potentially hundreds) of mp3 files be renamed in a logical &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/09/26/linux-mp3-m4b-audiobook-generator/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>My grandfather LOVES audiobooks. Many of the lower cost audiobooks come in MP3 format. There are a few windows apps that take these MP3s and convert them to bookmark friendly M4B files, however they are wonky at best.</p>
<p>Many linux script based solutions require the (potentially hundreds) of mp3 files be renamed in a logical order, which is just kindof a pain in the ass.</p>
<p>After dicking around with this for hours at varying points in time, I found a tool that actually works. Well. It&#8217;s called &#8216;abc&#8217; (Audio Book Creator).</p>
<p>You can get it here: http://www.ausge.de/modules.php?name=Downloads&amp;d_op=getit&amp;lid=6</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/09/26/linux-mp3-m4b-audiobook-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook is fired.</title>
		<link>http://www.lukemacneil.com/2011/09/21/facebook-is-fired/</link>
		<comments>http://www.lukemacneil.com/2011/09/21/facebook-is-fired/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 14:56:58 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Random Ranting]]></category>
		<category><![CDATA[faceboo]]></category>
		<category><![CDATA[google+]]></category>
		<category><![CDATA[social networking]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/?p=260</guid>
		<description><![CDATA[I liked facebook for about a year mostly when I was trying to pursue a music career. After that, its just another site I troll that annoys me. Today, I quit. Google+ only.]]></description>
			<content:encoded><![CDATA[<p>I liked facebook for about a year mostly when I was trying to pursue a music career. After that, its just another site I troll that annoys me. Today, I quit. Google+ only.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/09/21/facebook-is-fired/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MySQL makes me want to kill babies.</title>
		<link>http://www.lukemacneil.com/2011/07/31/mysql-makes-me-want-to-kill-babies/</link>
		<comments>http://www.lukemacneil.com/2011/07/31/mysql-makes-me-want-to-kill-babies/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 21:45:29 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[percona]]></category>
		<category><![CDATA[xtradb]]></category>
		<category><![CDATA[zabbix]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=206</guid>
		<description><![CDATA[So I&#8217;ve got this database, this large database, on a large box with 24G of memory. I&#8217;m using SLES 11.1 with MySQL 5.5 Percona XtraDB configured to use an innodb_buffer_pool of 14G. My theoretical max memory footprint should be about 16.4 GB. My tables are partitioned daily, and split into single files. As the day &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2011/07/31/mysql-makes-me-want-to-kill-babies/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;ve got this database, this large database, on a large box with 24G of memory.</p>
<p>I&#8217;m using SLES 11.1 with MySQL 5.5 Percona XtraDB configured to use an innodb_buffer_pool of 14G.</p>
<p>My theoretical max memory footprint should be about 16.4 GB.</p>
<pre class="brush: plain; title: ; notranslate">
[OK] Maximum possible memory usage: 16.4G (69% of installed RAM)
</pre>
<p>My tables are partitioned daily, and split into single files. As the day goes on, I watch mysql slowly eat all the systems memory until it finally restarts itself.</p>
<p>For example&#8230;</p>
<pre class="brush: plain; title: ; notranslate">
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 8371 mysql     10 -10 18.1g  16g 6576 S  136 68.9 254:03.69 mysqld
</pre>
<p>Why is the virtual size 18.1g? I have no idea.</p>
<p>If I run FLUSH TABLES in mysql, this will free up. Does anyone know why?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2011/07/31/mysql-makes-me-want-to-kill-babies/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Record Cancelled &#8211; Anywhere but here.</title>
		<link>http://www.lukemacneil.com/2010/05/25/new-record-coming-anywhere-but-here/</link>
		<comments>http://www.lukemacneil.com/2010/05/25/new-record-coming-anywhere-but-here/#comments</comments>
		<pubDate>Tue, 25 May 2010 08:14:01 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Notes and Musings]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=170</guid>
		<description><![CDATA[It has been some time since I have entered the studio to create something new to share with you all.I could not be more honored than to have been able to do this with my great friends John Gerard and Adrienne Fawkes. Our record is currently in production, and will be available shortly. I think &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/05/25/new-record-coming-anywhere-but-here/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><a href="http://www.lukemacneil.net/wp-content/uploads/2010/05/IMAGE-0_2010-05-25-111334-0400.jpg"><img class="size-medium wp-image-214 alignleft" style="margin-left: 10px; margin-right: 10px; margin-top: 2px; margin-bottom: 2px; border-width: 1px; border-color: black; border-style: solid;" title="Thomas" src="http://www.lukemacneil.net/wp-content/uploads/2010/05/IMAGE-0_2010-05-25-111334-0400-300x224.jpg" alt="" width="300" height="224" /></a>It has been some time since I have entered the studio to create something new to share with you all.I could not be more honored than to have been able to do this with my great friends <a href="http://www.johngerard.com">John Gerard </a>and <a href="http://www.pianogirl.org">Adrienne Fawkes</a>.</p>
<p class="reflect" style="text-align: left;">Our record is currently in production, and will be available shortly. I think everyone will be pleasantly suprised at the quality of songwriting, preformance, and production ala <a href="http://www.sologuitar.com">Steve Rapson</a>.</p>
<p class="reflect" style="text-align: left;">The record features 8 full length tracks, and will be titled &#8220;Anywhere but here&#8221;. Due for release early this summer.</p>
<p class="reflect" style="text-align: left;"><em><strong>Edit: We decided not to release this record. I&#8217;m sure you can find a bootleg.</strong></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/05/25/new-record-coming-anywhere-but-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 10.04</title>
		<link>http://www.lukemacneil.com/2010/05/05/ubuntu-10-04/</link>
		<comments>http://www.lukemacneil.com/2010/05/05/ubuntu-10-04/#comments</comments>
		<pubDate>Wed, 05 May 2010 19:59:38 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=54</guid>
		<description><![CDATA[I gotta say, it may be the best out of the box desktop OS I’ve tried out in a long time. &#160; Ubuntu One (dropbox/mobile.me) is amazing, it’s got an iTunes like store now, and syncs with ipod/iphone out of the box. They did a really, REALLY good job of integrating IM, Email, and Social &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/05/05/ubuntu-10-04/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;">I gotta say, it may be the best out<br />
of the box desktop OS I’ve tried out in a long<br />
time.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;">Ubuntu One (dropbox/mobile.me) is<br />
amazing, it’s got an iTunes like store now, and syncs with ipod/iphone out of<br />
the box.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;">They did a really, REALLY good job<br />
of integrating IM, Email, and Social networking into one place<br />
too.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;">Really<br />
slick.<o:p></o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;"><o:p>&nbsp;</o:p></span></font></p>
<p class="MsoNormal"><font size="2" face="Arial"><span style="font-family: Arial; font-size: 10pt;"><a href="http://www.ubuntu.com/products/whatisubuntu/1004features" title="blocked::http://www.ubuntu.com/products/whatisubuntu/1004features">http://www.ubuntu.com/products/whatisubuntu/1004features</a><o:p></o:p></span></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/05/05/ubuntu-10-04/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disable PHP warnings in seyret</title>
		<link>http://www.lukemacneil.com/2010/04/29/disable-php-warnings-in-seyret/</link>
		<comments>http://www.lukemacneil.com/2010/04/29/disable-php-warnings-in-seyret/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 02:36:52 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=24</guid>
		<description><![CDATA[The seyret video module used on this site is awesome, but the PHP warnings it was spewing out on my site were unacceptable. Finally tracked it down. The errors looked like this: Notice: Undefined variable: catlistoption in /home/content/html/components/com_seyret/views/video/video.view.php on line 0 Warning: Invalid argument supplied for foreach() in /home/content/html/libraries/joomla/html/html/select.php on line 68 This was driving &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/04/29/disable-php-warnings-in-seyret/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The seyret video module used on this site is awesome, but the PHP warnings it was spewing out on my site were unacceptable. Finally tracked it down.</p>
<p>The errors looked like this:</p>
<p><strong>Notice</strong>: Undefined variable: catlistoption in <strong>/home/content/html/components/com_seyret/views/video/video.view.php</strong><br />
on line <strong>0</strong></p>
<p><strong>Warning</strong>: Invalid argument supplied for foreach() in <strong>/home/content/html/libraries/joomla/html/html/select.php</strong><br />
on line <strong>68</strong></p>
<p>This was driving me crazy. I checked my php5.ini file, errors turned off, threw a .htaccess file in the specific folder&#8230; no love, I tried manually putting error_reporting(0) into the questionable file, the ioncube loader didn&#8217;t like that one bit. Then I started poking around the seyret code and found this:</p>
<pre class="brush: php; title: ; notranslate">
 //Don't forget to delete
 error_reporting(E_ALL);
 ini_set('display_errors', 1);
 </pre>
<p>Hiding out in /home/content/html/components/com_seyret/seyret.php</p>
<p>Looks like whoever put that in there forgot to delete it <img src='http://www.lukemacneil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Commenting out those lines clean up the view. The errors themselves don&#8217;t seem to affect the functionality of the plugin, so I&#8217;m not too concerned about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/04/29/disable-php-warnings-in-seyret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Busted Westinghouse TV SK-32H540S</title>
		<link>http://www.lukemacneil.com/2010/04/27/busted-westinghouse-tv-sk-32h540s/</link>
		<comments>http://www.lukemacneil.com/2010/04/27/busted-westinghouse-tv-sk-32h540s/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 20:54:16 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[broken]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[tv repair]]></category>
		<category><![CDATA[westinghouse]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=52</guid>
		<description><![CDATA[I got a frantic call from my mom a while back about her Westinghouse TV. She would turn it on, and then seconds later, the display would go blank. The audio stayed on, and the blue power indicator stayed lit, but there was absolutely nothing on the screen. I looked at it a bit, and &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/04/27/busted-westinghouse-tv-sk-32h540s/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I got a frantic call from my mom a while back about her Westinghouse TV.<br />
She would turn it on, and then seconds later, the display would go blank.<br />
The audio stayed on, and the blue power indicator stayed lit, but there was absolutely nothing on the screen.</p>
<p>I looked at it a bit, and couldn&#8217;t find anything obvious, so I took it home for a closer look.</p>
<p>I&#8217;ve never seen the inside of an LCD TV or monitor before, so I was a little surprised to find how clean it is in there.<br />
Everything is very clean and elegant, and there&#8217;s not too much going on.</p>
<p><a href="http://www.lukemacneil.net/wp-content/uploads/2010/04/west1.jpg"><img class="alignnone size-medium wp-image-177" title="west1" src="http://www.lukemacneil.net/wp-content/uploads/2010/04/west1-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>After a half hour or so of examining the innards, I stumbled across what I believe is the problem.<br />
The inverter board has 3 transformers on it. The middle transformer has melted. I can see that the back of the circut<br />
board has some char on it.</p>
<p><a href="http://www.lukemacneil.net/wordpress/wp-content/uploads/2010/04/west2.jpg"><img class="alignnone size-medium wp-image-179" title="west2" src="http://www.lukemacneil.net/wordpress/wp-content/uploads/2010/04/west2-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>I&#8217;m not much for electrical repairs like this, but it doesn&#8217;t seem too difficult. I think this just has to be removed and replaced.<br />
I found replacement transformers online for $29.99.</p>
<p>She&#8217;s already bought a new TV, but when I get sick of looking at the 32&#8243; nightmare sitting on my kitchen table, I&#8217;ll likely see if it&#8217;s something I can do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/04/27/busted-westinghouse-tv-sk-32h540s/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jailbreaking iPhone OS 3.1.3</title>
		<link>http://www.lukemacneil.com/2010/04/24/jailbreaking-iphone-os-3-1-3/</link>
		<comments>http://www.lukemacneil.com/2010/04/24/jailbreaking-iphone-os-3-1-3/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 19:29:12 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=51</guid>
		<description><![CDATA[If you&#8217;ve updated your firmware to 3.1.3, don&#8217;t ask Geohot for help. In fact, don&#8217;t ask anyone. You&#8217;re in idiot. It&#8217;s clearly documented that 3.1.3 is not supported by blackra1n. The dev team has released a jailbreak, but it requires that your phone be previously jailbroken prior to update. If you&#8217;ve updated to apple&#8217;s 3.1.3, &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/04/24/jailbreaking-iphone-os-3-1-3/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve updated your firmware to 3.1.3, don&#8217;t ask Geohot for help. In fact, don&#8217;t ask anyone. You&#8217;re in idiot. It&#8217;s clearly documented that 3.1.3 is not supported by blackra1n. The dev team has released a jailbreak, but it requires that your phone be previously jailbroken prior to update. If you&#8217;ve updated to apple&#8217;s 3.1.3, then, it isn&#8217;t.</p>
<p>I&#8217;m one of these morons that, even though I knew better, updated to 3.1.3 for no reason. There is a solution to rejailbreak your phone. It took me a few tries, but I was able to jailbreak using the newer jailbreak solution Sn0wbreeze. </p>
<p>I can confirm that this 3.1.3 jailbreak does in fact work, though it may take a few tries on your part to get it right. </p>
<p>http://ih8sn0w.com/index.php/welcome.snow</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/04/24/jailbreaking-iphone-os-3-1-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Barnes and Noble Nook.</title>
		<link>http://www.lukemacneil.com/2010/04/24/barnes-and-noble-nook/</link>
		<comments>http://www.lukemacneil.com/2010/04/24/barnes-and-noble-nook/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 15:56:26 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=50</guid>
		<description><![CDATA[Why is this device for sale, and why do people like it?I really, really, want to like this thing. It&#8217;s slow, eink flicker is ridiculous, the dual display action is&#8230; confusing at best. I took a look at the nook in one of the Barnes and Noble stores yesterday. Why bother putting a browser on &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2010/04/24/barnes-and-noble-nook/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Why is this device for sale, and why do people like it?<br />I really, <b>really</b>, want to like this thing.</p>
<p>It&#8217;s slow, eink flicker is ridiculous, the dual display action is&#8230; confusing at best.</p>
<p>I took a look at the nook in one of the Barnes and Noble stores yesterday. Why bother putting a browser on it? An unplayable game of chess?<br />Really, folks, there is no way, NO WAY, this thing is worth $259.00. It feels like a kids toy tablet from the toy section of Walmart, and performs about the same.</p>
<p>I thought&#8230; hey, I have a lot of PDFs, the nook supports PDF, maybe that&#8217;d be a good thing to have.</p>
<p>Yea well.. PDF sucks, always has, always will, and I have zero confidence that the shitty nook would render the shitty PDF format in a pleasurable way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2010/04/24/barnes-and-noble-nook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Replace array key with new array key.</title>
		<link>http://www.lukemacneil.com/2009/12/10/replace-array-key-with-new-array-key/</link>
		<comments>http://www.lukemacneil.com/2009/12/10/replace-array-key-with-new-array-key/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:07:42 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=30</guid>
		<description><![CDATA[I found that in my model, if the table columns were not explicity set, I ran into problems. This is the block of code I used to check an options array, and replace any non explicit table columns with explicit ones.]]></description>
			<content:encoded><![CDATA[<p>I found that in my model, if the table columns were not explicity set, I ran into problems. This is the block of code I used to check an options array, and replace any non explicit table columns with explicit ones.</p>
<pre class="brush: php; title: ; notranslate">
/*
* This block will take any option keys that do not have a table
* explicitly set, and will append the given table to them.
*/
$keywords=array('limit','offset','sortBy','sortDirection','joins');
foreach ($options as $key=&amp;gt;$value){
if (!in_array($key,$keywords)){
if (!preg_match ('/[^a-z]/i', $key)) {
$options[$table.'.'.$key]=$options[$key];
unset($options[$key]);
}//end if
}//end if
}//end foreach
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/12/10/replace-array-key-with-new-array-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recover files from Apple Time Machine backup on linux.</title>
		<link>http://www.lukemacneil.com/2009/12/08/recover-files-from-apple-time-machine-backup-on-linux/</link>
		<comments>http://www.lukemacneil.com/2009/12/08/recover-files-from-apple-time-machine-backup-on-linux/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:31:42 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[data recovery]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[timemachine]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=23</guid>
		<description><![CDATA[I was playing with a hackintosh for a month or so, and one of the neatest features it has is Time Machine backups. When I got sick of dicking around with MacOS, I threw linux back on my box. Then I mounted up the Time Machine backup drive and&#8230; hrmf. It is less than easy &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/12/08/recover-files-from-apple-time-machine-backup-on-linux/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I was playing with a hackintosh for a month or so, and one of the neatest features it has is Time Machine backups. When I got sick of dicking around with MacOS, I threw linux back on my box. Then I mounted up the Time Machine backup drive and&#8230; hrmf.</p>
<p>It is less than easy to navigate.</p>
<p>If you&#8217;ve done this and you need to pull off your mp3s or something, you can just use the find command to search the full disk and copy files off of it.</p>
<pre class="brush: bash; title: ; notranslate">
find . -name *.mp3 -print0 |xargs -0 -i cp {} /datastore/tmp/
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/12/08/recover-files-from-apple-time-machine-backup-on-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSuSE 11.2 Remote Administration (VNC) Black screen</title>
		<link>http://www.lukemacneil.com/2009/12/07/opensuse-11-2-remote-administration-vnc-black-screen/</link>
		<comments>http://www.lukemacneil.com/2009/12/07/opensuse-11-2-remote-administration-vnc-black-screen/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 15:03:23 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[black screen]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[remote administration]]></category>
		<category><![CDATA[vnc]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=22</guid>
		<description><![CDATA[In previous opensuse versions, it has been posible to enable vnc administration easily by enabling the service in YAST. In OpenSuSE 11.2, this option is still available, but does not work well by default. The issue, I believe is that the default window manager has changed to KDE4. Although KDE4 is the default window manager &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/12/07/opensuse-11-2-remote-administration-vnc-black-screen/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>In previous opensuse versions, it has been posible to enable vnc administration easily by enabling the service in YAST.<br />
In OpenSuSE 11.2, this option is still available, but does not work well by default.</p>
<p>The issue, I believe is that the default window manager has changed to KDE4. Although KDE4 is the default window manager in 11.2, I still use GNOME.</p>
<p>When connecting to the vnc server on display :0, all that&#8217;s drawn is a black screen with a gray X. To fix this, I changed the default window manager to gnome, and the default display manager to GDM.</p>
<p>These settings can be changed by editing the files in /etc/sysconfig, or using the /etc/sysconfig editor in yast.</p>
<p>Set DISPLAYMANAGER to &#8216;gdm&#8217; and DEFAULT_WM to &#8216;gnome&#8217;</p>
<p>You&#8217;ll have to restart the X server, and after that, remote connections via VNC will open up gdm and allow you to log in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/12/07/opensuse-11-2-remote-administration-vnc-black-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CA Siteminder and SLES 10/11</title>
		<link>http://www.lukemacneil.com/2009/11/20/ca-siteminder-and-sles-1011/</link>
		<comments>http://www.lukemacneil.com/2009/11/20/ca-siteminder-and-sles-1011/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 18:44:54 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=21</guid>
		<description><![CDATA[CA Siteminder (And every CA product I&#8217;ve ever had the misfortune of using) is a steaming pile of shit. I mean that with all due respect. Considering the default installation package doesn&#8217;t work on stock SLES10/11, here are the hacks to make it work. Follow the normal installation procedure, which will fail when you select &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/11/20/ca-siteminder-and-sles-1011/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>CA Siteminder (And every CA product I&#8217;ve ever had the misfortune of using) is a steaming pile of shit.<br />
I mean that with all due respect. Considering the default installation package doesn&#8217;t work on stock SLES10/11, here are the hacks to make it work.</p>
<p>Follow the normal installation procedure, which will fail when you select your apache version (2.2). When it bombs out looking for your apache config, just give in and manually select your apache config dir (/etc/apache2) and let the installation proceed.</p>
<p>After the package is installed add the following to your /etc/apache2/httpd.conf</p>
<pre class="brush: plain; title: ; notranslate">
LoadModule sm_module &amp;quot;/usr/local/CA/Siteminder/webagent/bin/libmod_sm22.so&amp;quot;
SmInitFile &amp;quot;/etc/apache2/WebAgent.conf&amp;quot;
</pre>
<pre class="brush: plain; title: ; notranslate">
# Added for CA Siteminder on 09/09/09
Alias /siteminderagent/pwcgi/ &amp;quot;/usr/local/CA/Siteminder/webagent/pw/&amp;quot;

Options Indexes MultiViews ExecCGI
AllowOverride None
Allow from all

Alias /siteminderagent/pw/ &amp;quot;/usr/local/CA/Siteminder/webagent/pw/&amp;quot;

Options Indexes MultiViews ExecCGI
AllowOverride None
Allow from all

Alias /siteminderagent/ &amp;quot;/usr/local/CA/Siteminder/webagent/samples/&amp;quot;

Options Indexes MultiViews ExecCGI
AllowOverride None
Allow from all
</pre>
<p>Also.. siteminder requires some environment variables to be set in order for LLAWMP to start up.<br />
To load these, I&#8217;ve added the configuration script to the apache startup script /etc/init.d/apache2</p>
<pre class="brush: plain; title: ; notranslate">
#
# load the configuration
#
. /usr/local/CA/Siteminder/webagent/nete_wa_env.sh
</pre>
<p>&#8230; Now, how CA can get away with selling this trash is beyond me&#8230; but they do, and you probably have to use it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/11/20/ca-siteminder-and-sles-1011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code content</title>
		<link>http://www.lukemacneil.com/2009/11/06/code-content/</link>
		<comments>http://www.lukemacneil.com/2009/11/06/code-content/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 16:31:28 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=26</guid>
		<description><![CDATA[I&#8217;ve added a new category to the site under the &#8220;Linux&#8221; section. This category is entitled &#8220;Code&#8221; and will hold snippets of code in various languages (Mainly BASH, JavaScript, and PHP). This information is here to help others, but mainly as a repository for my own use. Anyone is welcome to use or modify this &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/11/06/code-content/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added a new category to the site under the &#8220;Linux&#8221; section. This category is entitled &#8220;Code&#8221; and will hold snippets of code in various languages (Mainly BASH, JavaScript, and PHP). This information is here to help others, but mainly as a repository for my own use. Anyone is welcome to use or modify this code in your own projects.{jcomments on}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/11/06/code-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sync iPod with VMware Server on linux host.</title>
		<link>http://www.lukemacneil.com/2009/03/21/sync-ipod-with-vmware-server-on-linux-host/</link>
		<comments>http://www.lukemacneil.com/2009/03/21/sync-ipod-with-vmware-server-on-linux-host/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 01:59:37 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=20</guid>
		<description><![CDATA[Like many others, I&#8217;ve been having trouble syncing my ipod with my windows virtual machine in both VMWare Workstation 6.5 and VMware Server 2.0.To get around this issue, I had written a few scripts to unload the USB modules (and actually forcefully rename them because the blacklist was not honored) on VMWare Workstation. I recently &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/03/21/sync-ipod-with-vmware-server-on-linux-host/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Like many others, I&#8217;ve been having trouble syncing my ipod with my windows virtual machine in both VMWare Workstation 6.5 and VMware Server 2.0.<br />To get around this issue, I had written a few scripts to unload the USB modules (and actually forcefully rename them because the blacklist was not honored) on VMWare Workstation.</p>
<p>I recently switched over to exclusive use of VMware server 2.0, and I found the solution on the VMWare Forums.</p>
<p>none /proc/bus/usb usbfs devgid=46,devmode=664 0 0</p>
<p>&#8230; Append that line to /etc/fstab. <br />&nbsp;<br />I can confirm this resolves the USB issue with VMWare Server 2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/03/21/sync-ipod-with-vmware-server-on-linux-host/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to cancel your XM subscription Hassle free.</title>
		<link>http://www.lukemacneil.com/2009/03/05/how-to-cancel-your-xm-subscription-hassle-free/</link>
		<comments>http://www.lukemacneil.com/2009/03/05/how-to-cancel-your-xm-subscription-hassle-free/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 15:30:45 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=19</guid>
		<description><![CDATA[I got my yearly renewal notification from XM radio today, and I noticed it was set to auto renew&#8230;. I was happy to keep my service, but I called to have the auto-renew canceled so I could pay as I go. Unfortunatly, XM did that thing to me that they do to everyone&#8230; transferring around.. &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2009/03/05/how-to-cancel-your-xm-subscription-hassle-free/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I got my yearly renewal notification from XM radio today, and I noticed it was set to auto renew&#8230;. </p>
<p>I was happy to keep my service, but I called to have the auto-renew canceled so I could pay as I go.<br />
Unfortunatly, XM did that thing to me that they do to everyone&#8230; transferring around.. I spend well over an hour on hold, and I wasn&#8217;t even going to cancel my account. After the hold music went dead but the call was still going, I decided to do some searching around.<br />
XM is doing this to everyone to avoid cancellations.<br />
<br />
So I kept searching until I found a direct number to XM&#8217;s corporate office.</p>
<p>The number is 877-967-4672</p>
<p>I called this number and spoke to a gentleman by the name of John Pollard at Extension 36812 <br />
He was &#8220;curious&#8221; as to how I found the number to the direct line, and asked what website I found it on because they were &#8220;Keeping a spreadsheet of that information&#8221;.&nbsp; I refused to provide it.<br />
But I think it best that this number be posted to assist in the further prevention of XM&#8217;s unethical billing practices.</p>
<p>He was kind enough to offer me the next years subscription at half the price, but considering the hassle I chose to just let it expire.<br />
I was sure to obtain a written confirmation that this has been done that I will use if there is any further billing or collections attempts.<br />
XM&#8230;. All I got to say is&#8230; no wonder you&#8217;re stocks are trading at $0.11<br />
Hopefully Opie and Anthony are brought back to terrestrial radio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2009/03/05/how-to-cancel-your-xm-subscription-hassle-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel Tuning in HPUX &#8211; ulimits.</title>
		<link>http://www.lukemacneil.com/2007/12/08/kernel-tuning-in-hpux-ulimits/</link>
		<comments>http://www.lukemacneil.com/2007/12/08/kernel-tuning-in-hpux-ulimits/#comments</comments>
		<pubDate>Sat, 08 Dec 2007 18:54:06 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=18</guid>
		<description><![CDATA[Every time I come across a ulimit issue, It takes 4 hours to figure out. So I&#39;ve decided from this point forward I will document each one. Simple request came in&#8230; A DBA was trying to do an Oracle Upgrade on an HPUX box, and ran into an issue. The install was failing, and Oracle &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/12/08/kernel-tuning-in-hpux-ulimits/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Every time I come across a ulimit issue, It takes 4 hours to figure out. So I&#39;ve decided from this point forward I will document each one.
<p>Simple request came in&#8230; </p>
<p>A DBA was trying to do an Oracle Upgrade on an HPUX box, and ran into an issue.</p>
<p>The install was failing, and Oracle suggested that he have the sysadmins raise the maxdsiz ulimit. </p>
<p>&nbsp;</p>
<p>So we got the call, investigated it, and hit this&#8230; like we always do.</p>
<p>&nbsp;</p>
<p>mybox# ulimit -d 1048576</p>
<p>sh: ulimit: The specified value exceeds the user&#39;s allowable limit.</p>
<p>&nbsp;</p>
<p>So, this being HPUX, we opened up SAM and took a look.</p>
<p>SAM reported the maxdsiz&nbsp; as 385875968&#8230; well above the limit 1048576 I was trying to set.</p>
<p>&nbsp;</p>
<p>Then after a few hours, I came to the realization. SAM, that big asshole reports in bytes, whereas ulimit reports in kilobytes. Big difference. So the kernel limit in SAM when converted to Kilobytes was&nbsp; 376832. That&#39;s well below the 1048576 I was trying to set it to, and thus, the reason for the error.</p>
<p>&nbsp;</p>
<p>Next, we scheduled a time to rebuild the kernel with the new settings. </p>
<p>When it was time, we opened up SAM, and to my dismay, SAM wanted the kernel paremeter in HEX. As if I wasn&#39;t already pissed off at it. Anyway. I converted the byte count to HEX, which ended up being&nbsp; 0&#215;40000000. After that, I rebuilt the kernel and ran into another sumbling block, it wouldn&#39;t build.&nbsp;</p>
<p>&nbsp;</p>
<p>I was able to trace this to a disk space issue. /stage was filled up. I found an old copy of the kernel in there that I moved off to another partition, and then finally, I was able to build the kernel using SAM with the new parameters, reboot the machine, and everyone was happy.</p>
<p>&nbsp;</p>
<p>Another issue I encountered after the reboot is that sysdef reports the information differently than kmtune. The main difference being kmtune reports it correctly and sysdef doesn&#39;t. I didn&#39;t concern myself too much with why because sysdef is apparently depreciated anyway.</p>
<p>&nbsp;</p>
<p>And theres the HPUX Kernel Tunable Issue Story.&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/12/08/kernel-tuning-in-hpux-ulimits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to UNIX &#8211; Lesson II</title>
		<link>http://www.lukemacneil.com/2007/09/16/introduction-to-unix-lesson-ii/</link>
		<comments>http://www.lukemacneil.com/2007/09/16/introduction-to-unix-lesson-ii/#comments</comments>
		<pubDate>Sun, 16 Sep 2007 15:49:38 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=17</guid>
		<description><![CDATA[As I touched upon in the previous lesson, UNIX is made up entirely of flat files. We learned how to move throughout the filesystem and list the files held therein. Every single part of the unix machine is a simple, editable text file. This makes it extremely vital for us to understand how to view, &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/09/16/introduction-to-unix-lesson-ii/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p align="center" class="MsoNormal" style="text-align: center;"><span style="font-size: 24pt;"><o:p> </o:p></span></p>
<p></p>
<p align="center" class="MsoNormal" style="text-align: center;"><span style="font-size: 24pt;"><o:p></o:p></span></p>
<p align="center" class="MsoNormal" style="text-align: center;"><o:p> </o:p></p>
<p align="center" class="MsoNormal" style="text-align: center;"><o:p> </o:p></p>
<p align="center" class="MsoNormal" style="text-align: center;"><o:p> </o:p></p>
<p align="center" class="MsoNormal" style="text-align: center;"><o:p> </o:p></p>
<p class="MsoNormal">As I touched upon in the previous lesson, UNIX is made up entirely of flat files. We learned how to move throughout the filesystem and list the files held therein.</p>
<p class="MsoNormal">Every single part of the unix machine is a simple, editable text file. This makes it extremely vital for us to understand how to view, edit, copy, and delete these files.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now in this lesson, we&rsquo;ll learn how to work with these files. </p>
<p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The first and most obvious reason for this, is that we&rsquo;ll need to view log files. </p>
<p class="MsoNormal">System events and other important information are logged in plain readable text files.</p>
<p class="MsoNormal">There&rsquo;s a lot of information held in those files, so the more we know about manipulating text files, the faster we can find relevant information.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We may also want to copy screen output to a file for later viewing. This is commonly done to monitor performance statistics, to create a point in time snapshot of what the system was doing when the file was created. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As we learned in the last lesson, the systems configuration files are stored in the /etc partition. Viewing and editing these files is a critical operation to the UNIX admin. To back up these files for protection against a mistake, we simply copy the file and give it a different name. /etc/hosts becomes /etc/hosts.bak, or /etc/hosts.bak.091607.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Making a backup of a file before you edit it is not only best practice, it helps to create a history of the machine. Unix Admins can view the old backed up files and see the settings the machine used to have. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">All of the principals that you learn here will apply throughout your technological career. The most complicated and sophisticated operations make use of these very basic tools. Therefore it is wise to experiment, and become comfortable text editors, file manipulation, and safe habits.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now, to be safe, we will contain our experiments as a non root user, and inside our home directory. You know now that when you log onto a box, by default you&rsquo;ll be placed inside your home directory. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">login as: luke<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@www.lukemacneil.com&#8217;s password:<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Linux <st1:city w:st="on"><st1:place w:st="on">cambridge</st1:place></st1:city> 2.6.20-16-realtime #2 SMP PREEMPT Fri Jun 15 04:43:25 CEST 2007 i686<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The programs included with the Ubuntu system are free software;<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">the exact distribution terms for each program are described in the<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">individual files in /usr/share/doc/*/copyright.<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">applicable law.<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Last login: Sun Sep 16 08:39:11 2007 from gw3.marsh.com<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We can tell from this that I am in my home directory because of the ~ in the last line.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Just to be sure, and also for review I will verify this by issuing the &ldquo;pwd&rdquo; command.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ pwd<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">/home/luke<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now that I am sure of where I am on the filesystem, and I know I am running as a nonprivliged user, I can go ahead and start playing with files.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">First, we need a file to work with. For this exercise I will name the file &ldquo;file.txt&rdquo;.</p>
<p class="MsoNormal">Unix has a very simple and very magical command called &ldquo;touch&rdquo;. &ldquo;touch&rdquo; will create a brand new empty file. See what happens when I type &ldquo;touch file.txt&rdquo;:</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ touch file.txt<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ ls<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">adrienne.mp3<span style="">  </span>backup.sh<span style="">  </span>Desktop1<span style="">   </span><em style=""><u>file.txt</u></em><span style="">  </span>Music<span style="">    </span>song2<span style="">   </span>vmware<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Audio Files<span style="">   </span>compiz.sh<span style="">  </span>Documents<span style="">  </span>Images<span style="">    </span>rsync<span style="">    </span>tcpsyn<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Backups<span style="">       </span>Desktop<span style="">    </span>Downloads<span style="">  </span>Money<span style="">     </span>Scripts<span style="">  </span>Videos<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Notice that a directory listing now shows my file there. To see more about the file I&rsquo;m going to print out a listing in long format.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ ls -l<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">total 5212<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rw-r&#8211;r&#8211;<span style="">   </span>1 luke luke<span style="">  </span>5203238 2007-08-22 13:51 adrienne.mp3<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">  </span>21 luke users<span style="">    </span>4096 2007-09-13 16:04 Audio Files<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>5 luke users<span style="">    </span>4096 2007-06-01 05:09 Backups<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rwxr-xr-x<span style="">   </span>1 luke luke<span style="">      </span>550 2007-09-16 10:24 backup.sh<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rwxr-xr-x<span style="">   </span>1 luke users<span style="">   </span>16444 2007-09-05 14:22 compiz.sh<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwx&#8212;&#8212;<span style="">   </span>2 luke users<span style="">    </span>4096 2007-09-05 13:27 Desktop<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwx&#8212;&#8212;<span style="">   </span>2 luke users<span style="">    </span>4096 2007-08-21 14:43 Desktop1<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>5 luke users<span style="">    </span>4096 2007-09-15 13:12 Documents<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">  </span>18 luke users<span style="">    </span>8192 2007-09-13 15:14 Downloads<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><em style=""><u><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rw-r&#8211;r&#8211;<span style="">   </span>1 luke luke<span style="">        </span>0 2007-09-16 10:27 file.txt<o:p></o:p></span></u></em></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>9 luke users<span style="">    </span>4096 2007-07-24 14:36 Images<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>2 luke users<span style="">    </span>4096 2006-11-01 01:46 Money<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x 146 luke users <span style="">   </span>4096 2007-08-20 11:07 Music<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>2 luke users<span style="">    </span>4096 2007-08-15 03:57 rsync<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>2 luke users<span style="">    </span>4096 2006-12-11 08:00 Scripts<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>6 luke luke<span style="">     </span>4096 2007-07-24 17:48 song2<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rw-r&#8211;r&#8211;<span style="">   </span>1 luke users<span style="">    </span>7509 2007-04-16 20:18 tcpsyn<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>3 luke users<span style="">   </span>28672 2007-08-13 20:03 Videos<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">drwxr-xr-x<span style="">   </span>3 luke users<span style="">    </span>4096 2007-06-01 04:59 vmware<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Lets analyze this line piece by piece.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rw-r&#8211;r&#8211;<span style="">   </span>- </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The permissions on the file</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">1 &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The amount of files (signifigant if this were a directory)</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The owner of the file</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The group of the file</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">0 &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The size of the file</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">2007-09-16 &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">The date the file was last modified</span></em><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">10:27 &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">At what time the file was last modified<o:p></o:p></span></em></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">file.txt &ndash; </span></strong><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Filename<o:p></o:p></span></em></p>
<p class="MsoNormal"><em style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></em></p>
<p class="MsoNormal">We can tell from this information that it&rsquo;s an empty file&hellip; the file size is 0.</p>
<p class="MsoNormal">For now, we&rsquo;re going to put some text in this file so we can play with it. The simplest way to do this is with the unix &ldquo;echo&rdquo; command.<span style="">  </span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ echo &quot;Hello World&quot;<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">Hello World<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></strong></p>
<p class="MsoNormal">See here that the echo command will print out the text on the screen. Now, we want to direct so instead of printing out on the screen, it prints into the file.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$ echo &quot;Hello World&quot; &gt;&gt; file.txt<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">luke@cambridge:~$<o:p></o:p></span></strong></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Now, ls shows us the file like this:</p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;">-rw-r&#8211;r&#8211;<span style="">   </span>1 luke luke<span style="">       </span><u>12</u> 2007-09-16 10:44 file.txt<o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style=""><span serif="" sans="" reference="" ms="" style="font-size: 9pt;"><o:p> </o:p></span></strong></p>
<p class="MsoNormal">Instead of 0, we can see that the file is now 12k in size. It is no longer empty.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">There are many ways that we can view the contents of the file. You can use the &ldquo;man&rdquo; command to find out more about each individual command. Specifically what options can be applied.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">More, less, tail, cat, and vi.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">&ldquo;more&rdquo; &ndash; displays the file one page at a time</p>
<p class="MsoNormal">&ldquo;less&rdquo; &ndash; displays the tail end of the page</p>
<p class="MsoNormal">&ldquo;cat&rdquo; &ndash; concatenate files and print to screen</p>
<p class="MsoNormal">&ldquo;vi&rdquo; &ndash; standard text editor</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Try these four commands on files of varying sizes to get an idea for when each may be useful. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Since there are so many different types of UNIX operating systems, it&rsquo;s difficult to find things that are uniform across them. But the one thing you can always bet on, is the good old text editor &ldquo;vi&rdquo; will every single machine, no matter how stripped down. That&rsquo;s why when choosing a text editor, &ldquo;vi&rdquo; is a wise choice. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We&rsquo;ll use our file.txt as a test file. </p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Open up a terminal session, and type &ldquo;vi file.txt&rdquo;</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Vi isn&rsquo;t your average text editor. It was developed before keyboards looked the way they do now, so there are lots of different ways to edit the text. There are piles of books written just on vi, and I will only touch it briefly. I highly suggest that you use google to learn as much as you can about vi, because effiecently editing text makes life much easier.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">There are two modes in vi. The edit mode and the command mode. Think of the command mode as the toolbar in windows. Since this is entirely text driven, the menus and commands are key combinations instead of mouse clicks. The edit mode confidently named.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Instead of writing out how vi works, I will refer you to this well written tutorial.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="http://acs.ucsd.edu/info/vi_tutorial.shtml">http://acs.ucsd.edu/info/vi_tutorial.shtml</a></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Read, practice, and digest that, and then we will continue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/09/16/introduction-to-unix-lesson-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Unix &#8211; Lesson 1</title>
		<link>http://www.lukemacneil.com/2007/09/14/introduction-to-unix-lesson-1/</link>
		<comments>http://www.lukemacneil.com/2007/09/14/introduction-to-unix-lesson-1/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 20:14:49 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=16</guid>
		<description><![CDATA[The following is the first in a series of documents that I am drafting as an Introduction to UNIX for my coworkers. I will frequently post short lessons that build upon each other, until this becomes a giant collection and a complete unix tutorial. Introduction to UNIX. Lesson 1 &#160; &#160; The first thing about &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/09/14/introduction-to-unix-lesson-1/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The following is the first in a series of documents that I am drafting as an Introduction to UNIX for my coworkers. I will frequently post short lessons that build upon each other, until this becomes a giant collection and a complete unix tutorial.
<p align="center" style="text-align: center;" class="MsoNormal"><span style="font-size: 24pt;">Introduction to UNIX.<o:p></o:p></span></p>
<p align="center" style="text-align: center;" class="MsoNormal"><span style="font-size: 24pt;">Lesson 1<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">The first thing about UNIX that is necessary to understand is that it is a file based operating system.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Every single setting is controlled by a flat file&hellip;. <span style="">&nbsp;</span>including the physical devices are attached to the machine. These files can be added, deleted, and edited, which makes it critically important to observe file permissions. </p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">The user &quot;root&quot; is also referred to as &quot;Super User&quot;, because the root user has full access to modify any file on the OS. While this is necessary in some cases, for the novice, it is also extremely dangerous. Always be very careful when running as the root user, because a mistake that would be impossible in windows, is very possible in UNIX. </p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p align="center" style="text-align: center;" class="MsoNormal">I will talk more about user accounts later, but for now, always remember:</p>
<p align="center" style="text-align: center;" class="MsoNormal"><em style="">&quot;To heir is human, to really f*** up requires root&quot;.</em></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">All *nix machines (AIX, HP-UX, Solaris, Linux.. etc) are command driven operating systems. Although they do have optional graphical interfaces, the command line interface or <strong style="">CLI</strong>, is the primary method of interacting with the machine. </p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">There are an infinant number of commands, and <strong style=""><em style=""><u>it is impossible to memorize them all, so before we go any further I will explain the most important command of all. This is the &quot;man&quot; (manual) command.<o:p></o:p></u></em></strong></p>
<p class="MsoNormal"><strong style=""><em style=""><u><o:p><span style="text-decoration: none;">&nbsp;</span></o:p></u></em></strong></p>
<p class="MsoNormal"><span style="">&nbsp;</span>&quot;man&quot; will give a concise description of each command along with a list of all possible switches and flags, and generally a few practical examples of the command in action. Issuing the command &quot;man man&quot; will give you the manual page of the man command.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Next, to get to some practical working knowledge of how to navigate the UNIX command prompt.</p>
<p class="MsoNormal">To those that are familiar with DOS, this will prove to be very similar. Learning UNIX now will give you a considerable advantage over those that don&#8217;t within the next few years, when Microsoft releases Microsoft Windows Server 2008&#8230; One of their main selling points is that they are revamping their CLI interface.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">A file system consists of files, and directories. Directories contain files, and may also contain other directories. This can be thought of as a regular file cabinet. Inside the cabinet there are folders, inside those folders, other folders.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">All UNIX systems have the same basic directory structure.</p>
<p class="MsoNormal">This is very important to know.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><strong style="">/ </strong><em style="">- root <o:p></o:p></em></p>
<p class="MsoNormal"><strong style="">/home</strong> <em style="">- home directory for user files</em></p>
<p class="MsoNormal"><strong style="">/var</strong> <em style="">- logs</em></p>
<p class="MsoNormal"><strong style="">/tmp</strong> <em style="">- temporary files</em></p>
<p class="MsoNormal"><strong style="">/opt</strong> <em style="">- optional third party software</em></p>
<p class="MsoNormal"><strong style="">/usr</strong> <em style="">- user files (user installed programs&#8230; much like the &quot;Program Files&quot; in Win)</em></p>
<p class="MsoNormal"><strong style="">/bin</strong> <em style="">- essential binary programs (critical executable commands)</em></p>
<p class="MsoNormal"><strong style="">/sbin</strong> &#8211; <em style="">system binary programs (executable commands for system maintenance)</em></p>
<p class="MsoNormal"><strong style="">/etc</strong> <em style="">- system configuration files</em></p>
<p class="MsoNormal"><strong style="">/boot</strong> <em style="">- kernel images and conf files</em></p>
<p class="MsoNormal"><strong style="">/lib</strong> <em style="">- kernel modules and libraries</em></p>
<p class="MsoNormal"><strong style="">/mnt</strong> &#8211; <em style="">mounted filesystems (extra hard drives, usb stuff, cdroms, floppies)</em></p>
<p class="MsoNormal"><strong style="">/root</strong> &#8211; <em style="">root&#8217;s home directory.</em></p>
<p class="MsoNormal"><strong style="">/proc</strong> &#8211; <em style="">This is a special directory that holds information about the hardware of the machine.<o:p></o:p></em></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">This will differ slightly between different machines, but it is the basic frame of the UNIX directory structure.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">By default, when each user logs onto the machine, he will start out in his home directory. For the root account, you would begin in /root&#8230;. for user accounts, you would start in /home/username.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">The main filesystem commands are &quot;cd&quot; and &quot;ls&quot;</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">cd = &quot;Change Directory&quot;</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><strong style="">cd /home<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></strong></p>
<p class="MsoNormal"><em style="">Change the current working directory to /home. The &#8216;/&#8217; indicates relative to root, and no matter what directory you are in when you execute this command, the directory will be changed to &quot;/home&quot;.<o:p></o:p></em></p>
<p class="MsoNormal"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p class="MsoNormal"><strong style="">cd httpd<span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></strong></p>
<p class="MsoNormal"><em style="">Change the current working directory to httpd, relative to the current location which is &quot;/home&quot;. The full path of the new working directory is &quot;/home/httpd&quot;.<o:p></o:p></em></p>
<p class="MsoNormal"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p class="MsoNormal"><strong style="">cd ..<span style="">&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></strong></p>
<p class="MsoNormal"><em style="">Move to the parent directory of the current directory. This command will make the current working directory &quot;/home.<o:p></o:p></em></p>
<p class="MsoNormal"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p class="MsoNormal"><strong style="">cd ~</strong></p>
<p class="MsoNormal"><em style="">Move to the user&#8217;s home directory which is &quot;/home/username&quot;. The &#8216;~&#8217; indicates the users home directory.<o:p></o:p></em></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">If at any time you forget where you are in the file system, you can use the &quot;pwd&quot; command to &quot;Print Working Directory&quot;</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">This &quot;cd&quot; command will move you all throughout the filesystem. To see what&rsquo;s inside a folder, we use the &quot;ls&quot; (list) command. (dir in dos) &quot;man ls&quot; will give you all the switches that work with ls, the combinations therein will allow you to sort the files in any way you can imagine. </p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Generally the way that I sort my files is &quot;ls -ltr&quot; which will give the listing in long format, so I can see the permissions, sort by the modification time, in reverse&#8230;. this allows me to see the newest files last. Here is the output:</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">luke@cambridge:/home$ ls -ltr</p>
<p class="MsoNormal">total 32</p>
<p class="MsoNormal">drwx&#8212;&#8212;<span style="">&nbsp;&nbsp; </span>2 luke<span style="">&nbsp;&nbsp; </span>users<span style="">&nbsp; </span>16384 2006-07-03 17:09 lost+found</p>
<p class="MsoNormal">drwxr-xr-x<span style="">&nbsp; </span>22 luke<span style="">&nbsp;&nbsp; </span>users<span style="">&nbsp;&nbsp; </span>4096 2007-06-14 00:01 tcpsyn</p>
<p class="MsoNormal">drwxr-xr-x<span style="">&nbsp;&nbsp; </span>2<span style="">&nbsp;&nbsp; </span>1002<span style="">&nbsp;&nbsp; </span>1002<span style="">&nbsp; </span>4096 2007-06-23 09:39 mjamil</p>
<p class="MsoNormal">drwxr-xr-x<span style="">&nbsp;&nbsp; </span>3 mythtv mythtv<span style="">&nbsp; </span>4096 2007-07-15 22:53 mythtv</p>
<p class="MsoNormal">drwxr-xr-x 100 luke<span style="">&nbsp;&nbsp; </span>users<span style="">&nbsp;&nbsp; </span>4096 2007-09-13 16:05 luke</p>
<p class="MsoNormal">luke@cambridge:/home$</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">There are many ways to sort files, so play around with ls&#8230;. It&#8217;s one command that you will use every day.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Practice using ls and cd to navigate in and out of directories. Poke around. </p>
<p class="MsoNormal">These two commands are not harmful and will not affect performance.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Whenever you get lost, use &ldquo;cd ~&rdquo; to travel back to your home directory. If you forget where you are type &ldquo;pwd&rdquo;</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Explore, use the man command to formulate different variations of the &ldquo;ls&rdquo; command and use what works for you. Everyone does things a little differently, and there is no right or wrong way. There is more than one way to do everything&hellip; and the goal is to know as many of them as possible.</p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p align="center" style="text-align: center;" class="MsoNormal"><o:p>&nbsp;</o:p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/09/14/introduction-to-unix-lesson-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>(Very) Basic Networking Principals</title>
		<link>http://www.lukemacneil.com/2007/09/09/very-basic-networking-principals/</link>
		<comments>http://www.lukemacneil.com/2007/09/09/very-basic-networking-principals/#comments</comments>
		<pubDate>Sun, 09 Sep 2007 14:40:59 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=48</guid>
		<description><![CDATA[Networking is arguably the most important aspect of our jobs. The one common thing between all interconnected computers, is the network. It is vital to all operations that Datacenter Operations have a firm grasp on basic networking principals. At the most basic level, we can compare a computer network to our own neighborhood. We have &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/09/09/very-basic-networking-principals/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Networking is arguably the most important aspect of our jobs.  The one common thing between all interconnected computers, is the network.  It is vital to all operations that Datacenter Operations have a firm grasp on basic networking principals.     At the most basic level, we can compare a computer network to our own neighborhood.  We have our house, our roads, our towns, states, and highways.<br />
This excellent analogy is most likely the reason that the internet was nicknamed the information superhighway.</p>
<p>First. We have our desktop computer (our house)<br />
Our house holds all kinds of personal items, our personal files, financial information, pictures. From there we communicate on an individual personal level. We have a mailbox, a telephone, and all sorts of tools and objects that bring us personal satisfaction.</p>
<p>Each house has a telephone. Each telephone is assigned a unique telephone number. This is the number that we give to people when we want to be reached. Each computer on the network is assigned a unique IP address, which can be thought of as a phone number.</p>
<p>Since on a daily basis we talk to so many people, it&#8217;s near impossible to memorize everybodies number. For this reason, the phone book was created. The phone book maps peoples names and addresses.. We open up the book, look for John Q. Public, and theres his number. Computers do the same thing&#8230; except they call the phone book DNS&#8230; or Domain Name Service. It&#8217;s DNS that makes it possible to reach the computer at 10.2.208.21 by it&#8217;s name&#8230; Sahara. </p>
<p>Every time you access sahara, the computer sends a request to it&#8217;s DNS server (or phonebook) which says&#8230; &quot;I&#8217;m looking for the computer named sahara&quot;. The DNS server then responds with &quot;sahara is at 10.2.208.21&quot;. Provided the DNS server is updated with everyones name and address, this is a seamless process, and you are routed directely to sahara&#8217;s address.</p>
<p>Each house has multiple entrances and exits. Doors, windows, bulkheads&#8230; We can open and close these at any time. We can allow or deny people in and out. In the computer world, we call these ports. If we were concerned about the security of our home, it would be obvious that we want the minimum number of ports open. We might leave our third floor window open when we are away, but with any prudence, we lock our front door. We don&#8217;t want people easily walking into our house to snoop around, steal, or vandalize anything&#8230; and we can&#8217;t lock the house up too tight, or we wouldn&#8217;t be able to get out when we wanted to.</p>
<p>Next, we have our roads. We need roads if we are to ever leave the house. Everyone understands that. <br />
If lots of people are traveling on the same road at the same time&#8230; we get traffic. If the traffic is heavy, we&#8217;re still going to get where we&#8217;re going, but it&#8217;s going to take longer than it would otherwise. These roads, are our network cables. The roads my have intersections (switches) and at some point, lead us out of the neighborhood (at the router).</p>
<p>In some cases we may want to secure our entire neighborhood. Prisons secure their walls to keep inmates from getting out.<br />
The Chinese built the great wall to keep invaders out.. <br />
When securing our networks, we call these barriers Firewalls. </p>
<p>We can put a firewall in front of our house. We can put a firewall in the middle of our street. We can put a firewall at the border of our country. These are designed to keep people who shouldn&#8217;t leave in, and to keep people who don&#8217;t belong out.</p>
<p>So this is an analogy of a network. Lets take a look at some of the tools we use to navigate around it.</p>
<p>PING (Also called ICMP)<br />
For example, we want to ping sahara. <br />
We issue the ping command, ping goes from our house out it&#8217;s designated window (or port), travels down the street, over to the dns server and says &quot;Hey, I&#8217;m looking for sahara, what&#8217;s it&#8217;s address&quot;.  <br />
The DNS server then returns &quot;10.2.208.21&quot;. So we continue down the street to the house at 10.2.208.21. We crawl through the window, and if we get in&#8230; we then return back home and return how long it took to take the trip.</p>
<p>If we don&#8217;t get in&#8230; there could be a few different reasons. <br />
1.) ping couldn&#8217;t get out our home window.<br />
2.) ping couldn&#8217;t get down the street.<br />
3.) ping couldn&#8217;t find the DNS server (or the phone book), or the DNS server couldn&#8217;t find the entry for sahara. (or maybe sahara was at one address yesterday, but they moved and forgot to get their entry updated in the phonebook)<br />
4.) ping got blocked by a firewall somewhere<br />
5.) ping couldn&#8217;t get into saharas house.</p>
<p>TRACERT:<br />
Tracert is like a gps tracking system for ping. It&#8217;s sending a ping request, and returning more information about it.<br />
we issue the command tracert sahara<br />
tracert sends a ping request down the road, and at every intersection it reports back how long it took to get there. This way, if there is a roadblock somewhere&#8230; we can see where it is. We can also see between which points there was traffic. This is especially helpful in environments like ours, which are basically made up of neighborhoods (or subnets) that are connected at intersections (or routers)</p>
<p>NMAP:<br />
nmap (network map)  is a tool that I use regularly. (it is not installed by default, so I generally nmap from the server raynham, although there are others that have it, and there is a windows version that is free)</p>
<p>Nmap will scan an address, and report back what ports (or windows) are opened. <br />
This is a quick way to see what services are enabled on a given server. </p>
<p>[root@raynham ~]# nmap localhost</p>
<p>Starting Nmap 4.03 ( http://www.insecure.org/nmap/ ) at 2007-09-08 20:05 EDT<br />
Interesting ports on localhost (127.0.0.1):<br />
(The 1662 ports scanned but not shown below are in state: closed)<br />
PORT      STATE SERVICE<br />
22/tcp    open  ssh<br />
25/tcp    open  smtp<br />
111/tcp   open  rpcbind<br />
631/tcp   open  ipp<br />
791/tcp   open  unknown<br />
825/tcp   open  unknown<br />
2049/tcp  open  nfs<br />
5900/tcp  open  vnc<br />
8009/tcp  open  ajp13<br />
8080/tcp  open  http-proxy<br />
50000/tcp open  iiimsf<br />
50002/tcp open  iiimsf</p>
<p>Nmap finished: 1 IP address (1 host up) scanned in 0.201 seconds<br />
[root@raynham ~]#</p>
<p>
From this output we can see that port (or window) 22 is open.. This is generally the port used for ssh.</p>
<p>Networking as a subject can get as deep as you want it to. Google searching on any of these commands will give more than enough information.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/09/09/very-basic-networking-principals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veritas/Symantec Netbackup Woes.</title>
		<link>http://www.lukemacneil.com/2007/08/05/veritassymantec-netbackup-woes/</link>
		<comments>http://www.lukemacneil.com/2007/08/05/veritassymantec-netbackup-woes/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 16:06:24 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=47</guid>
		<description><![CDATA[This weekend a veritas disaster was dumped on me. This is how I deleted, and recreated entries for the library robot, and it&#8217;s drives.To be honest, I don&#8217;t even know what the original issue was, but for some reason, Sun was called out to replace a card in our StorageTek L40 tape library. The card &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/08/05/veritassymantec-netbackup-woes/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This weekend a veritas disaster was dumped on me. This is how I deleted, and recreated entries for the library robot, and it&#8217;s drives.To be honest, I don&#8217;t even know what the original issue was, but for some reason, Sun was called out to replace a card in our StorageTek L40 tape library. The card was replaced, and from that point forward, all of the drives in the library went down and we began recieving SCSI errors in our system log.</p>
<p> The errors looked something like this:</p>
<p> <font face="Helv" size="2">
<p>Aug 4 10:15:09 gcand715 tldcd[303]: [ID 359089 daemon.error] TLD(0) mode_sense ioctl() failed: No such file or directory</p>
<p>Aug 4 10:15:11 gcand715 tldcd[303]: [ID 832037 daemon.error] scsi command failed, may be timeout, scsi_pkt.us_reason = 1</p>
<p>Aug 4 10:15:11 gcand715 tldcd[303]: [ID 359089 daemon.error] TLD(0) mode_sense ioctl() failed: No such file or directory</p>
<p>Aug 4 10:15:11 gcand715 tldcd[303]: [ID 832037 daemon.error] scsi command failed, may be timeout, scsi_pkt.us_reason = 1</p>
<p>Aug 4 10:15:11 gcand715 tldcd[303]: [ID 769352 daemon.error] TLD(0) Mode_sense error, SCSI INTERFACE ERROR</p>
<p>Aug 4 10:15:12 gcand715 tldcd[303]: [ID 958280 daemon.notice] TLD(0) opening robotic path /dev/sg/c4t1l0</p>
<p>Aug 4 10:15:12 gcand715 tldcd[303]: [ID 832037 daemon.error] scsi command failed, may be timeout, scsi_pkt.us_reason = 1</p>
<p>Aug 4 10:15:13 gcand715 last message repeated 1 time</p>
<p> </font><br /> We called sun back out to look at the issue. <br /> The card replaced on the tape library by the sun contractor was configured incorrectly. . I guess it is a similar sort of mistake as putting a battery the wrong  way into a <a href="http://www.miracle-ear.com/">hearing aid</a>. It is easily done but also easily corrected. The library was set in SCSI LVD mode rather than SCSI HVD. There was a jumper on the board that dictates this setting. We also noted that the previous engineer had neglected to configure the SCSI IDs for each drive. They were all set to unassigned.</p>
<p> So, we assigned SCSI id 0 to the tape library. Then we assigned SCSI id 1-4 to each of the drives inside. </p>
<p> After assigning the id&#8217;s, we did a reconfigure reboot<br /> #touch /reconfigure<br /> #reboot</p>
<p> When the box came up, the errors in /var/adm/messages changed a little.</p>
<p> Aug 5 03:10:41 gcand715 tldcd[324]: [ID 958280 daemon.notice] TLD(0) opening robotic path /dev/sg/c4t1l0<br /> Aug 5 03:10:42 gcand715 tldcd[324]: [ID 985024 daemon.error] TLD(0) key = 0&#215;5, asc = 0&#215;24, ascq = 0&#215;0, INVALID FIELD IN CDB<br /> Aug 5 03:10:42 gcand715 tldcd[324]: [ID 321662 daemon.error] TLD(0) Mode_sense error, CHECK CONDITION<br /> Aug 5 03:10:42 gcand715 tldd[289]: [ID 641686 daemon.notice] DecodeQuery() Actual status: Unable to sense robotic device<br /> Aug 5 03:10:42 gcand715 tldd[289]: [ID 320639 daemon.error] TLD(0) unavailable: initialization failed: Unable to sense robotic device</p>
<p> Since the error changed, we assumed that the SCSI IDs had been changed and that the issue was with our drive mappings. The engineer left and I called up Symantec (Veritas).</p>
<p> Veritas ran me through some tests. <br /> First, we tried to run the sgscan command to scan the SCSI bus.<br /> It just hung. I left it running for a good 15 minutes with no output.</p>
<p> So veritas had me rebuild the sg driver by following their technote 266501. <br /> After rebuilding the sg driver they asked me to run the sgscan again, but I got the same results.<br /> Veritas then decided that this was still a hardware issue, and that I should call storagetek back out to take another look.</p>
<p> Well, storagetek returned today. We went and looked at the library, and he brought some tools to test the SCSI Bus. He hooked up his laptop to the library and was able to move the robot, move tapes&#8230; etc. Unfortunatly I was still recieving unable to control robot error messages.</p>
<p> When scanning the bus with iostat -En, I noted that the OS saw 2 drives. A Quantum DLT 8000 and a Quantum DLT 7000.</p>
<p> We dug a little further and found that there were 3 Quantum DLT 8000 drives and 1 Quantum DLT 7000. I checked on the box using the tpconfig command to see what veritas was expecting to find, and&#8230; It was looking for 4 DLT 8000s. We came to the conclusion that a drive was replaced with a 7000 instead of an 8000. </p>
<p> We removed the 7000. Took it off the SCSI bus, and added the other 3 drives to the same bus. Verified that iostat -En showed 3 DLT 8000s, and tried to test the robot. </p>
<p> Well the robot didn&#8217;t work. In a random attempt, we changed the SCSI id for the L20 library from 0 to 5, did a reboot reconfigure, and then just because, I tried an sgscan.</p>
<p> This time sgscan worked.<br /> It dumped out the scsi devices.</p>
<p> #sgscan<br /> /dev/sg/c4t1l0: Tape (/dev/rmt/0): &#8220;QUANTUM DLT8000&#8243; <br /> /dev/sg/c4t2l0: Tape (/dev/rmt/6): &#8220;QUANTUM DLT8000&#8243; <br /> /dev/sg/c4t3l0: Tape (/dev/rmt/7): &#8220;QUANTUM DLT8000&#8243; <br /> /dev/sg/c4t5l0: Changer: &#8220;STK L40&#8243;</p>
<p> Theres the 3 tape drives and the library itself.</p>
<p> Now I ran robtest, and it spat out an error about being unable to find the robot at /dev/sg/c4t4l0<br /> Well, my sgscan results tell me that the robot is at /dev/sg/c4t5l0 </p>
<p> I tried, just to test, adding a new robot to the netbackup config by using the bpadm comand. <br /> I added a new robot at /dev/sg/c4t5l0, saved the configuration, and ran robtest again.</p>
<p> Sucess. </p>
<p> So at the end of the day, I used bpadm to delete the robot and the drives, and then I recreated them in bpadm with the correct addresses.</p>
<p> I followed the instructions given by tpconfig:</p>
<p> The Media Manager device daemon is active on this machine.<br /> If any device changes are made, the daemon must be<br /> stopped and restarted for the changes to take effect.<br /> To do this enter:<br /> /usr/openv/volmgr/bin/stopltid<br /> /usr/openv/volmgr/bin/ltid </p>
<p> Press any key to continue or CTRL-C to terminate tpconfig</p>
<p> And then, I ran vmoprcmd to check the status of the tapes.. and:</p>
<p> PENDING REQUESTS</p>
<p> DRIVE STATUS</p>
<p> Drv Type Control User Label RecMID ExtMID Ready Wr.Enbl. ReqId<br /> 0 dlt TLD root No GU3229 Yes Yes 0 <br /> 1 dlt TLD &#8211; No &#8211; - <br /> 2 dlt TLD &#8211; No &#8211; - </p>
<p> ADDITIONAL DRIVE STATUS</p>
<p> Drv DriveName Shared Assigned Comment <br /> 0 QUANTUMDLT80000 No gcand715 <br /> 1 QUANTUMDLT80001 No &#8211; <br /> 2 QUANTUMDLT80002 No &#8211; </p>
<p> Voilia.</p>
<p> The tapes are no longer under AVR control, they&#8217;re controled by TLD. <br /> I ran a test backup, and you can see that tape drive 0 grabbed tape number GU3229.</p>
<p> Hope this helps someone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/08/05/veritassymantec-netbackup-woes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ego and the Sysadmin.</title>
		<link>http://www.lukemacneil.com/2007/07/25/ego-and-the-sysadmin/</link>
		<comments>http://www.lukemacneil.com/2007/07/25/ego-and-the-sysadmin/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 13:48:52 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[arrogance]]></category>
		<category><![CDATA[ego]]></category>
		<category><![CDATA[engineer]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=46</guid>
		<description><![CDATA[I&#8217;m a reader of Ben Rockwood&#8217;s Blog.. And his recent entries about the life of the sysadmin have really got me thinking. He hits the nail on the head every time and I&#8217;ve decided to write a little about my own experience in the IT industry.First of all, I&#8217;m not trying to copy Ben at &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/25/ego-and-the-sysadmin/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a reader of Ben Rockwood&#8217;s Blog.. And his recent entries about the life of the sysadmin have really got me thinking. He hits the nail on the head every time and I&#8217;ve decided to write a little about my own experience in the IT industry.First of all, I&#8217;m not trying to copy Ben at cuddletech, http://www.cuddletech.com/blog/ &#8230; I&#8217;m just agreeing with him.</p>
<p>Ego is the driving force behind the sysadmin.<br />
Certainly in myself.</p>
<p>It&#8217;s definatly not a bad thing. I mean, ego is the reason that I&#8217;ve learned the things I&#8217;ve learned. It&#8217;s what&#8217;s forced me to do what I do. Without ego, there would be no reason to work to constantly be better.</p>
<p>Unfortunatly, in me at least, ego goes way to far. I know this is true, it bothers me, and it affects my attitude towards work. Just recently I was handed an assignment that I felt was below me, even though I know that I&#8217;m not above anything,  ego made me quit.</p>
<p>Luckily it worked out in my favor, I was able to find a better position in a better company for a lot more money, but it certainly could have gone the other way.</p>
<p>Ben makes the point that we are not above anyone. We are not smarter, better, or less expendable. I know that&#8217;s true.  Why then do I still find myself feeling superior and above tasks?</p>
<p>The thing is, I know I&#8217;m not that good. I&#8217;ve met many, many sysadmins that are just so much better than I will ever be. I almost never immediatly know the answer to an issue. The thing that makes me good is that I am not afraid of not knowing the answer. I will take on any issue, regardless if it&#8217;s over my head, and I will find the solution.</p>
<p>I&#8217;m in this line of work because I love it. I don&#8217;t want to answer phones, log calls, this is not just a job for me. This is what I want to do with my life.  I want to work on  complicated issues that challenge me and make me a better admin.</p>
<p>People are miserable all the time. All the time. Working jobs they hate.<br />
I will not be one of those people.</p>
<p>Unfortunatly this attitude is restricting for me. An overconfident person is annoying. I&#8217;m an overconfident person. I&#8217;m annoying. I know this is going to get me in trouble eventually, and I want it to go away.</p>
<p>So, his entry dug up these feelings. Made me think about my attitude, how I interact with others, and where I want my career and my life to go.  That&#8217;s all.</p>
<p>The ego has to be toned down.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/25/ego-and-the-sysadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xorg.conf for dual video cards, monitors, and tv out.</title>
		<link>http://www.lukemacneil.com/2007/07/22/xorg-conf-for-dual-video-cards-monitors-and-tv-out/</link>
		<comments>http://www.lukemacneil.com/2007/07/22/xorg-conf-for-dual-video-cards-monitors-and-tv-out/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 17:21:24 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=45</guid>
		<description><![CDATA[I have an LCD for my primary display that runs compiz. I have a CRT too, that I use for mythtv.&#160; And I have the TV OUT clone the CRT to my TV.&#160; Here&#8217;s my xorg.conf. Section &#34;ServerLayout&#34; &#160; &#160; Identifier &#160; &#160; &#34;Default Layout&#34; &#160; &#160; Screen &#160; &#160; &#160; &#160; &#34;Main Screen&#34; 0 &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/22/xorg-conf-for-dual-video-cards-monitors-and-tv-out/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I have an LCD for my primary display that runs compiz.<br />
I have a CRT too, that I use for mythtv.&nbsp;<br />
And I have the TV OUT clone the CRT to my TV.&nbsp;<br />
Here&#8217;s my xorg.conf.
<ol>
<li class="li1">
<div class="de1">Section &quot;ServerLayout&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Default Layout&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Screen &nbsp; &nbsp; &nbsp; &nbsp; &quot;Main Screen&quot; 0 0</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Screen &nbsp; &nbsp; &nbsp; &nbsp; &quot;Second Screen&quot; RightOf &quot;Main Screen&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; InputDevice &nbsp; &nbsp;&quot;Generic Keyboard&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; InputDevice &nbsp; &nbsp;&quot;Configured Mouse&quot;</div>
</li>
<li class="li1">
<div class="de1">EndSection</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Section &quot;Files&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; # path to defoma fonts</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/misc&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/cyrillic&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/100dpi/:unscaled&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/75dpi/:unscaled&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/Type1&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/100dpi&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/usr/share/X11/fonts/75dpi&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; FontPath &nbsp; &nbsp; &nbsp; &nbsp;&quot;/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Module&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;bitmap&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ddc&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;extmod&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;freetype&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;int10&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;type1&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;vbe&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Load &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;glx&quot;</div>
</li>
<li class="li1">
<div class="de1">EndSection</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Section &quot;InputDevice&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Generic Keyboard&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Driver &nbsp; &nbsp; &nbsp; &nbsp; &quot;kbd&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;CoreKeyboard&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;XkbRules&quot; &quot;xorg&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;XkbModel&quot; &quot;inspiron&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;XkbLayout&quot; &quot;us&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;InputDevice&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Configured Mouse&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Driver &nbsp; &nbsp; &nbsp; &nbsp; &quot;mouse&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;CorePointer&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;Device&quot; &quot;/dev/input/mice&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;Protocol&quot; &quot;ExplorerPS/2&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;ZAxisMapping&quot; &quot;4 5&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;Emulate3Buttons&quot; &quot;true&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Monitor&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Main Monitor&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; HorizSync &nbsp; &nbsp; &nbsp; 30-83</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; VertRefresh &nbsp; &nbsp; 56-75</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;DPMS&quot;</div>
</li>
<li class="li1">
<div class="de1">EndSection</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Section &quot;Monitor&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Second Monitor&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; HorizSync &nbsp; &nbsp; &nbsp; 28.0 &#8211; 51.0</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; VertRefresh &nbsp; &nbsp; 43.0 &#8211; 60.0</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;DPMS&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Device&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Laptop&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Driver &nbsp; &nbsp; &nbsp; &nbsp; &quot;nvidia&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; BusID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;PCI:3:0:0&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Device&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;External&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Driver &nbsp; &nbsp; &nbsp; &nbsp; &quot;nvidia&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; BusID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;PCI:4:8:0&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Option &quot;Twinview&quot; &quot;true&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &quot;TwinViewOrientation&quot; &quot;Clone&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; #Option &quot;ConnectedMonitor&quot; &quot;CRT-0, TV-0&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &quot;MetaModes&quot; &quot;800&#215;600,800&#215;600&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Screen&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Main Screen&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Device &nbsp; &nbsp; &nbsp; &nbsp; &quot;Laptop&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Monitor &nbsp; &nbsp; &nbsp; &nbsp;&quot;Main Monitor&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; DefaultDepth &nbsp; &nbsp;24</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;AddARGBGLXVisuals&quot; &quot;True&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; SubSection &nbsp; &nbsp; &quot;Display&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Depth &nbsp; &nbsp; &nbsp; 16</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; Modes &nbsp; &nbsp; &nbsp;&quot;1280&#215;1024&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; EndSubSection</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; SubSection &nbsp; &nbsp; &quot;Display&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Depth &nbsp; &nbsp; &nbsp; 24</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; Modes &nbsp; &nbsp; &nbsp;&quot;1280&#215;1024&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; EndSubSection</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Screen&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Identifier &nbsp; &nbsp; &quot;Second Screen&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; Device &nbsp; &nbsp; &nbsp; &nbsp; &quot;External&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Monitor &nbsp; &nbsp; &nbsp; &nbsp;&quot;Second Monitor&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; DefaultDepth &nbsp; &nbsp;24</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;AddARGBGLXVisuals&quot; &quot;True&quot;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; SubSection &nbsp; &nbsp; &quot;Display&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Depth &nbsp; &nbsp; &nbsp; 16</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; Modes &nbsp; &nbsp; &nbsp;&quot;1024&#215;768&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; EndSubSection</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; SubSection &nbsp; &nbsp; &quot;Display&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Depth &nbsp; &nbsp; &nbsp; 24</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; Modes &nbsp; &nbsp; &nbsp;&quot;1024&#215;768&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; EndSubSection</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">Section &quot;Extensions&quot;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Option &nbsp; &nbsp; &nbsp; &nbsp; &quot;Composite&quot; &quot;Enable&quot;</div>
</li>
<li class="li2">
<div class="de2">EndSection</div>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/22/xorg-conf-for-dual-video-cards-monitors-and-tv-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using the sc console on a solaris box.</title>
		<link>http://www.lukemacneil.com/2007/07/22/using-the-sc-console-on-a-solaris-box/</link>
		<comments>http://www.lukemacneil.com/2007/07/22/using-the-sc-console-on-a-solaris-box/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 16:49:35 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=15</guid>
		<description><![CDATA[The Sun Advanced Lights Out Manager (ALOM)&#160;console allows you to see console messages and diagnose issues beyond what may be logged at the OS level. &#160; You get to the console from the rj45 port on the back of the server, and connect it to the serial port of a laptop. Then you can use &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/22/using-the-sc-console-on-a-solaris-box/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.sun.com/servers/alom.html">Sun Advanced Lights Out Manager (ALOM)</a>&nbsp;console allows you to see console messages and diagnose issues beyond what may be logged at the OS level. </p>
<p>&nbsp;</p>
<p>You get to the console from the rj45 port on the back of the server, and connect it to the serial port of a laptop. Then you can use hyperterminal to access the box.</p>
<p>On some servers, the sc port is also the console port. So to switch, you issue #.<br /> hash dot.</p>
<p>Nobody can ever remember the passwords. <br /> So the guys in #solaris helped me out.</p>
<p>If you can log into the box, and get to a root prompt then you can issue the scadm command. This shows all the users, allows you to set new ones, and to reset passwords.</p>
<p> Once in the sc prompt, these are some helpful commands:</p>
<p> <strong>sc&gt; consolehistory -v<br /> sc&gt; showlogs -v</strong> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/22/using-the-sc-console-on-a-solaris-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controlling two computers with one infrared remote.</title>
		<link>http://www.lukemacneil.com/2007/07/17/controlling-two-computers-with-one-infrared-remote/</link>
		<comments>http://www.lukemacneil.com/2007/07/17/controlling-two-computers-with-one-infrared-remote/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 18:27:47 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=14</guid>
		<description><![CDATA[My mythtv server has one infrared receiver because it comes with the pvr-150 card. My mythfrontend is a different machine that has no infrared receiver. This is how I pass the infrared signals over the network to control both boxes with one receiver and one remote.I&#8217;ve done this 3 times and it&#8217;s always a headache &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/17/controlling-two-computers-with-one-infrared-remote/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>My mythtv server has one infrared receiver because it comes with the pvr-150 card. <br />
My mythfrontend is a different machine that has no infrared receiver.<br />
This is how I pass the infrared signals over the network to control both boxes with one receiver and one remote.I&#8217;ve done this 3 times and it&#8217;s always a headache to figure out, so I figure i&#8217;ll write it down this time.</p>
<p>I&#8217;m assuming you&#8217;ve already got an infrared receiver, it shouldn&#8217;t matter if it&#8217;s a pvr-150 or not, and that you&#8217;ve got lirc installed and accepting signals on one host.</p>
<p>Reading through the LIRC documentation suggested this could be done, but I haven&#8217;t found any tutorials, or even anyone else that&#8217;s doing it.</p>
<p>Anyway. On the lirc server. The one that has the infrared reciever working (which can be verified by typing &quot;irw&quot; and pressing buttons on the remote) we have to start lirc with the &#8211;listen option.</p>
<p>This may vary between different versions of lirc and different distros.</p>
<p>On my debian server, I manually edited the /etc/init.d/lircd file, and modified this line:<br />
start-stop-daemon &#8211;start &#8211;quiet &#8211;exec /usr/sbin/lircd &#8212; &#8211;listen </p>
<p>by adding &#8211;listen to the startup script, lirc opens up a port and listens for client connections. I found out later that it&#8217;s better to edit /etc/lirc/hardware.conf and add &quot;&#8211;listen&quot; to the LIRCD_ARGS variable. Either way works. The second is cleaner.</p>
<p>So now LIRC is listening for client connections on the server that has the infrared reciever. </p>
<p>On my mythfrontend, which is now running on ubuntu studio, I installed lirc, copied the lircd.conf file for my remote to /etc/lirc and set the /etc/lirc/hardware.conf LIRCD_ARGS to LIRCD_ARGS=&quot;&#8211;connect=ip.of.the.server&quot;.</p>
<p>After doing that and tring to run lirc, I noticed irw wasn&#8217;t working. And here is what it said in the messages file: </p>
<p>Jul 17 18:03:37 cambridge lircd-0.8.2-CVS[3665]: lircd(userspace) ready<br />
Jul 17 18:03:37 cambridge lircd-0.8.2-CVS[3665]: connected to 192.168.0.102<br />
Jul 17 18:03:40 cambridge lircd-0.8.2-CVS[3665]: accepted new client on /dev/lircd<br />
Jul 17 18:03:40 cambridge lircd-0.8.2-CVS[3665]: could not open /dev/lirc<br />
Jul 17 18:03:40 cambridge lircd-0.8.2-CVS[3665]: default_init(): No such device or address<br />
Jul 17 18:03:40 cambridge lircd-0.8.2-CVS[3665]: caught signal</p>
<p>So, even though it was connected to my lirc server, it was still trying to access a raw infrared device at /dev/lircd.</p>
<p>To resolve this, I set the lirc driver to NULL in /etc/lirc/hardware.conf.</p>
<p>
After that, I can control my frontend by passing infrared signals to my backend. <br />
This is obviously useful for MythTV, but think of all the possibilities&#8230; data centers can assign commands to infrared signals. Reboot boxes with a remote control.. anything. All with one remote and one infrared receiver.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/17/controlling-two-computers-with-one-infrared-remote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sampo describes buffering, periods, and latency.</title>
		<link>http://www.lukemacneil.com/2007/07/17/sampo-describes-buffering-periods-and-latency/</link>
		<comments>http://www.lukemacneil.com/2007/07/17/sampo-describes-buffering-periods-and-latency/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 01:51:36 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=44</guid>
		<description><![CDATA[The following is a transcript from a conversation I had with Sampo, one of the Ardour developers in which he explained to me exactly how audio buffering works. People like this are what make linux so awesome. I don&#8217;t really understand the period/buffer settings, I&#8217;ve got them to bring the latency down. tcpsyn: the buffer &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/17/sampo-describes-buffering-periods-and-latency/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>The following is a transcript from a conversation I had with Sampo, one of the Ardour developers in which he explained to me exactly how audio buffering works. People like this are what make linux so awesome.</p>
<p><tcpsyn> I don&#8217;t really understand the period/buffer settings, I&#8217;ve got them to bring the latency down.<br />
<sampo_v2> tcpsyn: the buffer size means how many samples at a time jackd retrieves from the sound card and the size of the buffers it sticks to jackd clients for processing<br />
<tcpsyn> and how does that affect perfomance vs latency?<br />
<sampo_v2> tcpsyn: so the smaller the buffer is, the more jackd needs to switch between clients per &quot;amount of real world time&quot;<br />
<tcpsyn> and the lower the latency<br />
<tcpsyn> since it&#8217;s doing it more often?<br />
<sampo_v2> yes<br />
<tcpsyn> I see.<br />
<sampo_v2> no to the second question<br />
<tcpsyn> oh<br />
<sampo_v2> tcpsyn: the bigger the buffer is, the more .. buffering, jackd needs to do. so it needs to wait to gather all these samples, run them through all the applications and feed those samples back to the interface<br />
<tcpsyn> and the more latency&#8230; ?<br />
<sampo_v2> tcpsyn: the larger the buffer is = the larger chunk of real world time it represents<br />
<sampo_v2> tcpsyn: and more latency<br />
<tcpsyn> aye.<br />
<tcpsyn> well that makes sense.<br />
<sampo_v2> tcpsyn: the number of periods refers to lower level hardware buffering<br />
<sampo_v2>tcpsyn: but it also affects latency<br />
<sampo_v2>tcpsyn: it basically means how many of these buffers the sound card uses by itself. the more of these there are, the less chance of having xruns or even worse &#8211; missed samples.<br />
<tcpsyn> so higher is better<br />
<sampo_v2> tcpsyn: and more latency<br />
<sampo_v2> tcpsyn: but the number of periods is not as simple as that<br />
<sampo_v2> tcpsyn: how well it works, and how it actually works is device and driver dependent<br />
<sampo_v2> tcpsyn: it&#8217;s more like, there will be a good value for your device and you should stick with it<br />
<tcpsyn> and do either of those affect cpu cycles?<br />
<sampo_v2> tcpsyn: the lower the buffer size, the more switching between applications the system needs to do<br />
<sampo_v2>tcpsyn: say you are running at mythological 1/4 of a second frames and you have two applications using jack<br />
<sampo_v2> tcpsyn: that would mean that jackd would need to run both applications four times per second to create a steady flow of audio<br />
<sampo_v2>tcpsyn: so it means 4 * 2 (the number of application) switches between applications per second  (this is a gross simplification though)<br />
<sampo_v2> tcpsyn: if you would increase the buffer size to an amount of frames which would be equal to 1/2 of a second<br />
<sampo_v2> tcpsyn: there would only be 2 * 2 switches between applications per second<br />
<sampo_v2> tcpsyn: and the closer to zero the buffer size gets, the more predominant the time it takes to switch between applications get (as compared to the time to actually process the audio data)<br />
<tcpsyn> I have to read this like 500 times.</tcpsyn></sampo_v2></sampo_v2></sampo_v2></sampo_v2></sampo_v2></sampo_v2></sampo_v2></tcpsyn></sampo_v2></sampo_v2></sampo_v2></sampo_v2></tcpsyn></sampo_v2></sampo_v2></sampo_v2></tcpsyn></tcpsyn></sampo_v2></sampo_v2></tcpsyn></sampo_v2></tcpsyn></sampo_v2></tcpsyn></sampo_v2></tcpsyn></tcpsyn></sampo_v2></tcpsyn></sampo_v2></tcpsyn></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/17/sampo-describes-buffering-periods-and-latency/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring a PreSonus Firepod for Pro Audio in Gentoo</title>
		<link>http://www.lukemacneil.com/2007/07/10/configuring-a-presonus-firepod-for-pro-audio-in-gentoo/</link>
		<comments>http://www.lukemacneil.com/2007/07/10/configuring-a-presonus-firepod-for-pro-audio-in-gentoo/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 18:45:13 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=13</guid>
		<description><![CDATA[For the last 5 years or so, I&#8217;ve done all my scratch recordings with an old school PCI M-Audio Delta 4/4, and to be honest, that worked just fine. But since my box doesn&#8217;t have much in the way of available PCI slots, I decided to give the PreSonus Firepod a try. This is how &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/10/configuring-a-presonus-firepod-for-pro-audio-in-gentoo/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>For the last 5 years or so, I&#8217;ve done all my scratch recordings with an old school PCI M-Audio Delta 4/4, and to be honest, that worked just fine. But since my box doesn&#8217;t have much in the way of available PCI slots, I decided to give the PreSonus Firepod a try. </p>
<p>This is how I&#8217;ve configured my firepod to work with Ardour.These guys are on to something&#8230; the linux audio geeks. Let me tell you JACK is an amazing piece of software. It allows me to route my audio, in or out, to wherever I damn well please. </p>
<p>It&#8217;s shameful to admit, that this is the first FireWire product I&#8217;ve ever tried, so I really wasn&#8217;t sure what to expect under linux. I was pleasantly suprised at how easy it was to configure.</p>
<p>First, I grabbed the freebob drivers from http://freebob.sourceforge.net/index.php/Main_Page</p>
<p>I downloaded the newest stable tar.gz file and unzipped it in a temp directory.</p>
<p>#gzip -d *.gz<br />
#tar -xvf *free*</p>
<p>Then, I changed to the directory and ran the configure script.</p>
<p>#cd *free*<br />
#./configure</p>
<p>On the first try, the configure script complained about missing libraries. Here are the libraries you&#8217;ll need to install the FreeBob (FFADO) drivers for a firewire audio interface.</p>
<p>1.) libavc1394<br />
2.) libraw1394<br />
3.) libeic61883</p>
<p>So I emerged those three packages and ran the configure script again. This time, it ran to completion.</p>
<p>Next I compiled the package and installed it.</p>
<p>#make<br />
#make install</p>
<p>And voila, the driver is installed.</p>
<p>I gave jack a quick fire up to test, set the driver to freebob and&#8230; damn, it didn&#8217;t work. It failed with the error &quot;Driver Freebob Not Found&quot;.</p>
<p>So some research later, I found that the JACK ebuild in the portage tree doesn&#8217;t make use of the freebob USE flag. Fortunately the package in the pro-audio overlay does. So I had to enable the pro-audio portage overlay.</p>
<p>#layman -fa pro-audio</p>
<p>and then re-emerge JACK<br />
#emerge jack-audio-connection-kit</p>
<p>After it compiled, I fired up qjackctl again and gave it another shot and&#8230;.. No luck.<br />
Permission Denied.</p>
<p>So, I noted that udev gives permission to /dev/raw1394 like so:<br />
crw-rw&#8212;- 1 root video 171, 0 Jul 10 18:39 raw1394</p>
<p>I tried to change the permissions for /dev/raw1394 in /etc/udev/permissions.d as suggested in the freebob documentation, but I had no love. So being as lazy as I am, I just added my user account to the audio group in /etc/group</p>
<p>I rebooted the machine for good luck, even though it&#8217;s not required&#8230; and when it came back up&#8230; So did my firepod.</p>
<p>Not exactly plug and play, but one of the easier devices to configure.  I was expecting it to take longer to configure, and work poorly if at all, but it works just fine. Free&#8217;s up my PCI slot, and gives me 8 inputs and 8 preamps.</p>
<p>Not bad for $400.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/10/configuring-a-presonus-firepod-for-pro-audio-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MythTV and Comcast.</title>
		<link>http://www.lukemacneil.com/2007/07/08/mythtv-and-comcast/</link>
		<comments>http://www.lukemacneil.com/2007/07/08/mythtv-and-comcast/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 19:23:30 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=43</guid>
		<description><![CDATA[MythTV is amazing. Really. Amazing. I don&#8217;t have a single bad thing to say about MythTV. Comcast on the other hand&#8230;.So I&#8217;m sure everyone has heard about the terrestrial migration to digital cable. I think it&#8217;s a good thing. Free up some frequencies, use better ones for entertainment. I dig that. But comcast.. what the &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/08/mythtv-and-comcast/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>MythTV is amazing. Really. Amazing. I don&#8217;t have a single bad thing to say about MythTV. Comcast on the other hand&#8230;.So I&#8217;m sure everyone has heard about the terrestrial migration to digital cable. I think it&#8217;s a good thing. Free up some frequencies, use better ones for entertainment. I dig that.</p>
<p>But comcast.. what the fuck.</p>
<p>The FCC requires cable companies to pass on some digital channels unencrypted. So comcast does that. The only thing is&#8230; there aren&#8217;t that many. The rest of the channels comcast encrypts with 5C encryption.</p>
<p>Why do I care? </p>
<p>Because at the moment I&#8217;m using NTSC tuner cards to record analog television. Soon, there will be no analog television, so my setup won&#8217;t work. I could get some QAM tuner cards, fair enough&#8230; and with them record the unencrypted channels, but the rest of them..no. Comcast makes you rent their set top box to decrypt their programming. Won&#8217;t even sell me the set top box. They force you to rent it. </p>
<p>This is starting to get rediculous, and we aren&#8217;t doing anything about it.</p>
<p>I&#8217;m a consumer, and I buy things. When I want something, I get it. When I do that, I should be able to do whatever I want with what I buy. Now I&#8217;m being insulted by this monopolistic dynasty. And it&#8217;s not only comcast. All of them are doing it. Aren&#8217;t supposed to mod the Microsoft Xbox, can&#8217;t use the iphone on non cingular networks, DRM on DVDs and Digital Music.. This is bullshit, and we need to do something about it. If business started pulling this crap 200 years ago, we&#8217;d be throwing a lot more than tea in the river.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/08/mythtv-and-comcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris Log Monitoring Script</title>
		<link>http://www.lukemacneil.com/2007/07/08/solaris-log-monitoring-script/</link>
		<comments>http://www.lukemacneil.com/2007/07/08/solaris-log-monitoring-script/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 11:41:46 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=42</guid>
		<description><![CDATA[I wrote this script a while back to automate watching our logs.I don&#39;t even know if it still works, but I figured I&#39;d post it here. It may be helpful to someone. #!/bin/sh ########################################################### # Log alert file, by Luke MacNeil. 11/09/2005 # This script is meant to be called from cron to monitor # &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/08/solaris-log-monitoring-script/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I wrote this script a while back to automate watching our logs.<br />I don&#39;t even know if it still works, but I figured I&#39;d post it here. It may be helpful to someone.
<pre>
#!/bin/sh
###########################################################
# Log alert file, by Luke MacNeil. 11/09/2005
# This script is meant to be called from cron to monitor
# at whatever interval you like. 

# Summary of features.
#
# checklog reports all new log file entries since its last run.
# it uses a tmp file to hold its history. the tmp file is specified
# by an argument.
#
# usage= checklog /path/to/logfile /path/to/tmpfile
# ex. checklog /var/log/syslog /tmp/syslog.tmp
#
# checkdisk reports the status of the disk -
# usage= call with no arguments.
#

###########################################################
#Initalize Variables
###########################################################

# Path and name of the temporary file used to send the system report
REPORTLOG=/tmp/report.log 

# Set the hostname
HOSTNAME=`hostname` 

# The subject line that will be mailed to you
SUBJECT="Status report for $HOSTNAME" 

# The sender that will be mailed to you
FROM="Automated Reporting System" 

BREAKER="-------------------------------------------------------------------------"
TODAY=`date` #today's date.

###########################################################
touch $REPORTLOG #Create temporary report file.
###########################################################
#Actual log checking function, works on 3 parameters space delimted
###########################################################
checklog(){
	LOGFILE=$1 #Argument 1
	TMPFILE=$2 #Argument 2

	# Grabs the number of lines from the log
	CURRENTCOUNT=`awk 'END { print NR }' $LOGFILE` 

	echo ""
	echo "Preparing System Log Differential Report for $LOGFILE"
	# If tmp file doesnt exist create it.
	# If it does, get the previous count.
		if [ -f $TMPFILE ]
			then
				TMPCOUNT=`cat $TMPFILE`
			else
				echo "Creating Temp File $TMPFILE"
				echo "$CURRENTCOUNT" > $TMPFILE
				TMPCOUNT=`cat $TMPFILE`
		fi 

	###Compare counts.
	echo "Comparing...."
	echo "Old Count = $TMPCOUNT"
	echo "New Count = $CURRENTCOUNT"

	if [ $TMPCOUNT -eq $CURRENTCOUNT ]
		then
			echo "Nothing to report."
			echo ""
	else
		if [ $TMPCOUNT -lt $CURRENTCOUNT ]
			then
				echo "Old Count is Less than the Current Count"
				echo "Reporting new entries"
				DIFFERENCE=`expr $CURRENTCOUNT - $TMPCOUNT` # Get the difference between counts.
				NEWENTRIES="`tail -$DIFFERENCE $LOGFILE`" # Grab the new lines from the log.
				echo "Date: $TODAY" >> $REPORTLOG
				echo "Hostname: $HOSTNAME" >> $REPORTLOG
				echo $BREAKER >> $REPORTLOG
				echo "$LOGFILE Report" >> $REPORTLOG
				echo "$NEWENTRIES" | sed G >> $REPORTLOG
				echo $BREAKER >> $REPORTLOG
				echo $CURRENTCOUNT > $TMPFILE #rewrite the tempfile to reflect the changes.
				echo ""
		fi
	fi
}

checkdisk(){
	df -k >> $REPORTLOG
}

############################################################
# Run the function on these different log files. Include 3 parameters.
# ex. chklog /path/to/log /path/to/tmpfile $REPORTLOG
# This is the section you want to modify if your adding/removing
# logs to monitor.
############################################################

checklog /var/log/syslog /tmp/syslog.tmp
checklog /var/adm/messages /tmp/messages.tmp
checklog /opt/SUNWwbsvr/https-bigadmin/logs/access /tmp/webaccess.tmp
checkdisk

#############################################################
# Mail the reported results
#############################################################

### Adjust to send/mail to who is needed (root by default)
cat $REPORTLOG | mailx -r "$FROM" -s "$SUBJECT" root
echo "Report sent to root"

#############################################################
# Clean up report file.
#############################################################
rm $REPORTLOG
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/08/solaris-log-monitoring-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veritas Netback &#8211; Drives come up in AVR rather than ACS.</title>
		<link>http://www.lukemacneil.com/2007/07/08/veritas-netback-drives-come-up-in-avr-rather-than-acs/</link>
		<comments>http://www.lukemacneil.com/2007/07/08/veritas-netback-drives-come-up-in-avr-rather-than-acs/#comments</comments>
		<pubDate>Sun, 08 Jul 2007 09:33:43 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=41</guid>
		<description><![CDATA[Veritas products have always been confusing. I&#39;m writing here to archive an experience that we had with netbackup and ACSLS (Automated Cartridge System Library Software) in our data center. Essentially, all of the drives in our media library were up as AVR (Automatic Volume Recognition) as opposed to ACS (Automated Cartridge System). This means that &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/08/veritas-netback-drives-come-up-in-avr-rather-than-acs/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>
Veritas products have always been confusing. I&#39;m writing here to archive an experience that we had with netbackup and ACSLS (Automated Cartridge System Library Software) in our data center. Essentially, all of the drives in our media library were up as AVR (Automatic Volume Recognition) as opposed to ACS (Automated Cartridge System). This means that the netbackup server was not communicating correctly with the ACSLS server, and unable to control the tape library robot.
</p>
<p>
(These examples have been edited.) 
</p>
<p>
<br />
A drive that is in Automatic Volume Recognition mode (AVR) is not controlled by a robot. This means that once the tape is in the drive and written to.. It just stays there until someone takes it out. Obviously this is not optimal for a backup infrastructure that does thousands of backups. Especially when there just happens to be a giant robotic arm sitting there doing nothing.<br />
&nbsp;<br />
The issue was first noticed by our backup team who use the NetBackup GUI to schedule and monitor backups. I was able to see the issue on the UNIX side by typing:
</p>
<address>
<br />
#vmoprcmd</address>
<address>
Drv Type Control User Label RecMID ExtMID Ready Wr.Enbl. ReqId </address>
<address>
0&nbsp;&nbsp;&nbsp;hcart3&nbsp; AVR&nbsp;&nbsp;&nbsp;&nbsp; root Yes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;2 </address>
<p>
<br />
Generally, you would note that Drive 0 would be under the control of ACS rather than AVR. We were able to note the following errors in /usr/openv/volmgr/debug/acsssi/event.log
</p>
<address>
<br />
07-07-07 14:07:50 SSI[0]: ONC RPC: csi_freeqmem(): status:STATUS_QUEUE_FAILURE; Dropping from Queue: Remote Internet address: 0.0.0.0,Port: 0 , ssi_identifier: 1304, Protocol: 822083584, Connect type: 0; </address>
<address>
<br />
07-07-07 14:13:10 SSI[0]: ONC RPC: csi_rpccall(): status:STATUS_NI_FAILURE; failed: clntudp_create() RPC UDP client connection failed, RPC: Rpcbind failure Remote Internet address:x.x.x.x, Port: 0;</address>
<p>
So we can see here that there&#39;s an issue with the UDP connection. We also noticed entries like this in /var/adm/messages </p>
<address>
<br />
Nov 15 11:28:06 hoehpt07 acsd[8807]: ACS(0) Response has not been returned by Mount command sequence 4434, ACS status = 72, STATUS_PENDING</address>
<p>
<br />
So this shows us that a response has been sent, but never returned. All of our querys on the ACSLS server returned sane. Veritas support agreed. The issue actually turned out to be on the ACSLS server. </p>
<p>A few days prior, a change had been made enabling a firewall on the ACSLS server. Reversing the change resolved the issue. I don&#39;t remember exactly how the ACSLS menu was laid out, but this is how we got there:
</p>
<address>
<br />
#ssh acslsserver</address>
<address>
#su &#8211; acsss</address>
<address>
#acsss_config</address>
<p>
<br />
In that menu there was a secure firewall setting. Disabling it, restarting ACSLS, and rebooting the media server resolved the issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/08/veritas-netback-drives-come-up-in-avr-rather-than-acs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gig Tough</title>
		<link>http://www.lukemacneil.com/2007/07/03/gig-tough/</link>
		<comments>http://www.lukemacneil.com/2007/07/03/gig-tough/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 03:33:14 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Notes and Musings]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=169</guid>
		<description><![CDATA[&#34;&#8230;When the room is noisy, smoky, uninterested in your act, and you still get in the zone where you are 100% focused on the music, are thinking of nothing else, and get transported to the place where it all feels right, sounds good&#8230; that&#39;s the hardest and the best thing you can do. Anonymous.&#34; Gig-tough &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/07/03/gig-tough/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.lukemacneil.com/images/stories/steve.jpg" style="float: left;" hspace="6" alt="Image" title="Image" border="0" />&quot;&#8230;When the room is noisy, smoky, uninterested in your act, and you<br />
still get in the zone where you are 100% focused on the music, are<br />
thinking of nothing else, and get transported to the place where it all<br />
feels right, sounds good&#8230; that&#39;s the hardest and the best thing you<br />
can do. Anonymous.&quot;</p>
<p>
Gig-tough performers are most likely to connect with a crowd. This<br />
is because they have developed the ability to do their best in any<br />
situation. Part of that is the vibe they give off apart from the words<br />
and music. The audience is smart. They detect how an artist feels from<br />
the subtlest clues. There is no place to hide.</p>
<p>Entertainers are there to give. Whether they get back what they<br />
want, or expect, or deserve is not under their control. Who would stand<br />
in front of a stove and promise it wood as soon at it gives some heat?<br />
Being gig-tough is a way of thinking. Attaining this mind-set is<br />
simple, but not easy.</p>
<p>My Christmas Guitar Tour revealed the elemental truth in this<br />
idea. Nineteen gigs in twenty-one days: an open mike feature, The Tam,<br />
Borders Books, Passim, two radio interviews, restaurants, coffee shops,<br />
living rooms. I hated the first several gigs. The sound was never<br />
right, I thought I played poorly, I thought the audience was<br />
indifferent, nobody bought CD&#39;s. I thought, &quot;What am I doing here?&quot;</p>
<p>Half-way through, everything improved. I started to enjoy<br />
producing the music. People sang along, they bought CD&#39;s. Maybe the<br />
secret is a good room, a good crowd, planets in alignment&#8230; but, this<br />
is the same room, and the same kind of people as last week where I had<br />
a hellish gig and died a miserable musical death. And I&#39;m wearing the<br />
same clothes, playing the same songs on the same guitar. The only<br />
variable? My thoughts, and the feelings they engendered. After several<br />
gigs in a row, I began to get over it, as they say. I was able to get<br />
immersed in the sound of the guitar, executing the parts I had<br />
carefully worked out.</p>
<p>One Friday night at Strawberry Fair I came out of the zone after<br />
an extended improvisation on Moonlight In Vermont: re-harmonized<br />
melody, dissonant chords&#8230; exotic scales to stretch the ears. People<br />
politely clapping. Where? What&#8230;? &quot;Whoa!&#8230; forgot where I was,&quot; I<br />
said to the group grinning on my left. This is where I want to be every<br />
time I perform. I have a better time, the audience is more entertained,<br />
and it&#39;s what the pros do.</p>
<p>Martin Sexton performed two shows at Passim on December 28th. He<br />
found the zone several times. Each time he did, the audience went with<br />
him. They screamed and clapped. The deeper he got into a song, the more<br />
they responded. His face turning red, his eyes squinting and shut<br />
tight, writhing in place, belting out the song. The crowd went nuts.<br />
(By the way, have you ever seen a performer doing all those things but<br />
not connecting? This is the difference between actually being there,<br />
and pretending to be there. The audience knows the difference. They are<br />
smarter than we.) After the song, they yell approval. This feels good<br />
to a performer. It feels good to Marty, so he tells them, &quot;Oh, I do<br />
love it when you carry on like that!&quot; He grins widely, authentically,<br />
slightly embarrassed. The humble side of him wants look down and<br />
shuffle his toe on the floor. The pro knows he must stand there, open<br />
and naked to accept the collective approval of the people. His eyes are<br />
open. He looks out, taking in everybody.</p>
<p>Singer/songwriter Jon Carmen has said, &quot;Playing to roomful of<br />
attentive people is generally good, while playing to an empty room or<br />
people who aren&#39;t listening generally sucks.&quot; Producer/songwriter Crit<br />
Harmon observes, &quot;It&#39;s better to work a room that features music and<br />
has beer, than a room that features beer and has music.&quot; All true.<br />
Divinely inspired wisdom, even. So we strive to find the good rooms and<br />
avoid the bad. We regale each other with gig horror stories. On the way<br />
to a new venue we imagine success, achieving the next level.</p>
<p>The one thing to avoid is thinking about, or dwelling in any way<br />
on how the gig is going while performing. Because it affects the act.<br />
We don&#39;t get in the zone, and are too aware of everything going on in<br />
the room: Geez, could those two talk any louder over there? Is the<br />
sound technician intentionally trying to sabotage me? This stage is too<br />
high, I can&#39;t connect. This stage is too low, my space is being<br />
violated. Oh, no! They are going to smoke right in front of me! A<br />
performer either learns to deal and grow past the bad gigs, or they<br />
quit playing. What&#39;s a singer/songwriter to do? Try this:</p>
<p>* Be humble&#8211;Humility comes from outside ourselves. Find a source.<br />
* Be empty of expectations&#8211;Expectations come from our own thoughts. Try thinking less.<br />
* Be gig-tough&#8211;Do a lot of gigs. Always be ready to work. There are<br />
seven days in a week. When there are eight offers a week, then be<br />
picky. </p>
<p>The purpose: to develop an ability to personally connect with the<br />
audience via the music. Bruce Marks, Director of the Boston Ballet, was<br />
interviewed by Gail Harris. She asked him what he looks for in a<br />
world-class dancer. He said, &quot;Well, everybody who comes to the Boston<br />
Ballet is highly skilled. Technical perfection is a given at this<br />
level. I look for that spark of human connection; a dancer who takes in<br />
the audience with her eyes. Laura Young (Boston Ballet School principal<br />
dancer) can make eye contact with three hundred people at the same<br />
time. You can see it going forth from the stage out to the theater, and<br />
back from them to her. The great ones all make that personal<br />
connection.&quot;</p>
<p>Patty Smith was interviewed by Terry Gross on the NPR show Fresh<br />
Air. Terry asks, &quot;You started off reading your poetry in bars?&quot; &quot;Yes,&quot;<br />
said Patty, &quot;Normally they had bands, but on off nights, or as an<br />
opening act, I would get to do fifteen or twenty minutes. At first<br />
people would ignore me or even try to shout me off the stage. But I<br />
stayed up there and wouldn&#39;t be driven off; eventually I started to<br />
connect. The last few minutes they paid attention.&quot;</p>
<p>My intense Christmas tour re-inforced what I have learned about<br />
performing. However, I could not execute until I leaped into the fray<br />
and did it. I have now learned the only way out of the s&#8211;t is through<br />
it. Not around, over, or under it.</p>
<p>My act is better. I enjoy gigging more than ever. I seem to learn<br />
every time I go out as a watcher or a doer, so I resolve to get out of<br />
the house even more in 1997. See you there.</p>
<p><a href="http://www.soloperformer.com/">Steve Rapson</a><br />
released his first CD, Christmas Guitar, in November 1996. A cover-rock<br />
band leader for twenty years, he is now an acoustic soloist, producer,<br />
songwriter, and host of Java Jo&#39;s Open Mike. His next CD, Romantic<br />
Guitar, will be released in February. email him at<br />
Rapson@soloperformer.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/07/03/gig-tough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disecting the Motorola Q Hardware.</title>
		<link>http://www.lukemacneil.com/2007/06/26/disecting-the-motorola-q-hardware/</link>
		<comments>http://www.lukemacneil.com/2007/06/26/disecting-the-motorola-q-hardware/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 19:04:12 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=12</guid>
		<description><![CDATA[I had to perform a small surgery on my motorola q. Below are the pics of the hardware, how to disassemble and replace the keyboard and screen. My initial problem is that the 5 way rocker button on my phone became way too sensitive. First, I had to uncover the screws. They&#39;re covered by little &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/06/26/disecting-the-motorola-q-hardware/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>I had to perform a small surgery on my motorola q. Below are the pics of the hardware, how to disassemble and replace the keyboard and screen.<br />
My initial problem is that the 5 way rocker button on my phone became way too sensitive.</p>
<p>First, I had to uncover the screws. They&#39;re covered by little gray rubber pieces. I removed them with a small flathead screwdriver. </p>
<p>
The screws themselves are torques. You&#39;ll need a T6 screwdriver to remove them. I picked up a set at lowes for $6.00.<br />
<img src="http://www.lukemacneil.com/images/stories/q/q.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q2.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>After removing the screws, the plastic casing comes apart. It&#39;s clipped together with plastic clips that are pretty hard to pull apart. Be forceful, but be careful.</p>
<p>After taking the back casing off, there are a few pieces clipped on.. First the plastic white clip that holds the camera in place. This is held on by two plastic clips. One on each side.</p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q3.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>After removing the white plastic clip, the riser board is exposed. This is held on by one contact plug. Carefully rock the plug out and remove the riser card.</p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q4.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>With the riser card out of the way, you can see the ribbon cable that attaches the screen. This is connected with the same type of plug as the riser card was. Carefully wiggle it out. Be careful not to pull too hard on the ribbon cable&#8230; if you want to see the screen again.</p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q5.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>With the screen disconnected, it&#39;s possible to remove the guts of the phone, and to get to the screen and keyboard. </p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q6.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>After getting to this point. I could see pretty clearly what the problem was. The contact on the keyboard where the center rocker button presses down was worn away. I&#39;ve had the phone for a month and the button was down to the metal. But, then I realized that this is not Motorola&#39;s fault, it&#39;s Verizons. The carying case that they sold me was not intended for an extended battery. Having the phone on my side squeezed into the leather case so tightly must have aggrivated the keyboard.&nbsp; The verizon rep who sold me the case should have let me know that even though it fit, it wasn&#39;t to be used with an extended battery. This is bullshit tbh and I&#39;m pissed. But anyway.</p>
<p>At first I tried to cover the metal contact with a piece of electrical tape.</p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q7.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>But unfortunately&#8230; and logically, it did the opposite of what I wanted and held the contact down. Finally, since I&#39;m too cheap to buy the $10.00 replacement keyboard off ebay, I took my little knife and scraped the metal contact for that one button off of the keyboard. This works, I just lose the center button. Fortunatly for me, the scroll wheel does the same thing.</p>
<p>Once you&#39;ve replaced or destroyed whatever you need to, put the phone back in the opposite order.</p>
<p><img src="http://www.lukemacneil.com/images/stories/q/q1.jpg" hspace="6" alt="Image" title="Image" border="0" /></p>
<p>All of this will obviously void your warranty, and it&#39;s certainly possible to break the phone, but it&#39;s really not as delicate as they want you to think it is. Just like a computer, be careful with the screwdriver on the circuit boards (Even though after removing the initial 4 screws you don&#39;t need it anymore.</p>
<p>Hope this helps someone, or gives them the courage to at least try fixing their broken piece of shit Q before dropping a few hundred on a new one.</p>
<p>-Luke.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/06/26/disecting-the-motorola-q-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syncing Evolution with Scheduleworld and BitPim.</title>
		<link>http://www.lukemacneil.com/2007/06/09/syncing-evolution-with-scheduleworld-and-bitpim/</link>
		<comments>http://www.lukemacneil.com/2007/06/09/syncing-evolution-with-scheduleworld-and-bitpim/#comments</comments>
		<pubDate>Sat, 09 Jun 2007 02:25:53 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=11</guid>
		<description><![CDATA[This is an older tutorial that I had written when I was syncing evolution with scheduleworld and my Samsung phone with bitpim. Hopefully this will be of use to someone. Today I&#39;m posed with a dilemna. I keep a calendar of gigs and events to let people know where I will be performing, and I &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/06/09/syncing-evolution-with-scheduleworld-and-bitpim/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>This is an older tutorial that I had written when I was syncing evolution with scheduleworld and my Samsung phone with bitpim. Hopefully this will be of use to someone.</p>
<p>
Today I&#39;m posed with a dilemna.</p>
<p>I keep a calendar of gigs and events to let people know where I will be performing, and I make this calendar available to the world using Google Calendar.<br />
So far, this has worked out perfectly for me. I book a gig somewhere, and return to my computer, where I log onto my google calendar, and add the information. By doing this, it automatically posts the information to my website. So I have a single place to keep track of my events. <br />
I also have a seperate google calender for my personal appointments, that I keep to myself.</p>
<p>This is all great, but I&#39;m a forgetful person. If I don&#39;t take care updating the gig calendar as soon as I book a gig&#8230; I forget, and that generally turns into disaster. And if I ever try to manually update the calendars everywhere that I want them displayed&#8230; I wouldn&#39;t have any time for gigging in the first place.</p>
<p>My goal here, is to tie everything together.<br />
Not only do I want reminders beeping at me when I have something coming up, but I want to be able to add an event to my website by creating an appointment on my cell phone. For an added layer of complexity I would like to also syncronize this data with my personal computer calendar. Since I am an avid linux enthusiast, my scheduler of choice is Novell Evolution. Most of you however, will be using Microsoft Outlook.</p>
<p>I want as many things as possible beeping and blinking at me to ensure that I take care of everything I need to take care of, weather it be booking a gig, scheduling a newspaper interview, following up with a radio station submission, getting my eyes checked, or taking my girlfriend on a date.</p>
<p>There are quite a few different ways to acomplish this using expensive commercial software&#8230; But I&#39;m a cheapskate, and if it can be done for free, I&#39;ll find a way.</p>
<p>My first step, was to create a calendar with google by registering at the address below:<br />
http://www.google.com/calendar</p>
<p>After creating an account, I logged into my new google calendar, and created two calendars.</p>
<p>1.) Gig Calendar<br />
2.) Personal Calendar.</p>
<p>After creating the calendars, I started adding my events. They are grouped by color, so that it&#39;s easy to see. A blue event on my calender is a gig, and a red one is a personal appointment. If I only want to look for my gigs for the next month, I can set my Personal Calendar to invisible and vise versa.</p>
<p>Now, I had to set the gig calender to be shared to the world. <br />
Under the settings for the Gig Calendar there is an option called &quot;Share this Calendar&quot; &#8230; There are a few different options for sharing, and for this calender, I set the setting for &quot;Share all information on this calendar with everyone&quot;. This gives the whole world access to see what I put on the calendar. My events even become archived in Google&#39;s Search results. On the Personal Calendar, I set the option &quot;Do not share with everyone&quot;. I don&#39;t need the world paying attention to when my bills are due.</p>
<p>Google has now become the main place that I will store my data. Not only is the interface easy to use, but I can also access it anywhere that I can reach the interent. I will consider Google Calender as my calender &quot;backend&quot;.</p>
<p>Now for my next trick, I want to display the gig calender on my website. Google makes this easy.<br />
Here are the steps.</p>
<p>1.) Log into google calendar.<br />
2.) Open up the settings menu for the Gig Calender.<br />
3.) Select &quot;Share this Calendar&quot;. This will open up the sharing options.<br />
4.) Under the sharing options, there is a tab called &quot;Calendar Details&quot;. Click on that tab.<br />
5.) At the bottom of the options menu, there are 3 choices. XML, ICAL, and HTML. For this task, I chose the HTML option.<br />
6.) Google will provide a link to the calender, that I can use anywhere I want. But I don&#39;t want my visitors to have to click a link to view my calender, I want it embedded on the page. For this reason, Google created the &quot;Configuration Tool&quot;. This tool provides some options on controlling how the embedded calender will behave. Should it be a month view or an adgenta view.. Sould there be a title for the calender? Should users be able to cycle through the months, or do I only want to display a month at a time. It also lets me chose the background color to help it integrate seemlesly onto my page. After chosing my options, it provides a small bit of HTML that can be copied onto any webpage.<br />
7.) Now, all I have to do is copy the HTML segment into my page. The results can be seen on www.lukemacneil.com/events.php. I can copy that code into any webpage where I want to display my calendar, and when new events are added to google, the websites will automatically reflect the pages.</p>
<p>This in itself saves me alot of work, and minimizes the risk that I&#39;ll make a mistake, or forget to update an events list somewhere.</p>
<p>Now, to take this a step further, I want to control the google calender from within my native scheduler, Evolution.<br />
Evolution provides a plugin that will display the Google Calender information, that is very easy to use, but it&#39;s limited to viewing. Using this plugin I will be able to see my upcoming events, but I can&#39;t add, or change anything. That just doesn&#39;t do it for me, so I started searching around for another method. What I found, is a solution created by Mark Swanson called &quot;ScheduleWorld&quot;. Aparently, Mark expereneced the same syncronization frustration, so he created ScheduleWorld to centralize his Schedule, and made it available to everyone. ScheduleWorld is a web application that acts as a middleman between google calender and other apps that need access to it.</p>
<p>The first step in implementing this solution, is to sign up for an account at http://www.scheduleworld.com</p>
<p>After the initial account is created, you can create calenders in ScheduleWorld the same way they were created in Google Calender. I made two, to reflect the calenders I made with Google.</p>
<p>1.) Gig Calender<br />
2.) Personal Calender</p>
<p>After creating the calenders, in order to syncronize with google, permission must be granted to ScheduleWorld to do so. To grant that access, click on the ScheduleWorld &quot;preferences&quot; option. There will be three sets of options. A main options window, that controls the start and end of your day, your password, and some other general preferences, and then a set of options for each of the calenders that you created.<br />
It is here that you must grant ScheduleWorld access to your Google Calender. </p>
<p>After granting ScheduleWorld the necissary access and saving your changes, scroll down to the bottom of the preferences page, and you will see 3 different sets of Configuration Settings.</p>
<p>These are the settings that your applications can use to access the ScheduleWorld data. There are three sets, for three different types of applications. Since I am using Evolution, I am only concerned with the bottom one, which for me, looks like this:</p>
<p>Server URL:&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; http://sync.scheduleworld.com/funambol/ds<br />
Username: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *****<br />
Password: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; The same password you used to log in here.<br />
Events URI: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; cal2<br />
Events type: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; text/calendar<br />
Tasks/Todos URI: &nbsp;&nbsp;&nbsp; task2<br />
Tasks/Todos type: &nbsp;&nbsp;&nbsp; text/x-todo<br />
Contacts URI: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; card3<br />
Contacts type: &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; text/vcard</p>
<p>This is the information that I will feed to evolution in order to allow it to talk with ScheduleWorld, and thus, Google Calender.</p>
<p>Now for my next trick.<br />
How the hell do I tell evolution about this great middleman thats going to give it the power to update my google calender.</p>
<p>As of this writing, by Mark&#39;s suggestion, a program called syncevolution seems to be the best bet.<br />
syncevolution is a command line tool that handles the actual data transfer from Evolution to ScheduleWorld&#8230; It can be obtained from http://www.estamos.de/projects/SyncML/</p>
<p>I&#39;ve been struggling with syncevolution, but I will do my best here to outline the steps to configure it and make it work under my circumstances. YMMV.</p>
<p>1.) Download the syncevolution sourcecode from http://www.estamos.de/projects/SyncML/</p>
<p>2.) Decompress the source archive:<br />
# gzip -d syncevolution-0.4.tar.gz<br />
# tar -xvf syncevolution-0.4.tar</p>
<p>3.) After decompression the software must be compiled and installed.<br />
# cd syncevolution-0.4<br />
# ./configure<br />
# make &amp;&amp; make install<br />
This will create the syncevolution binary, and install it&#39;s configuration files.</p>
<p>4.) There are a number of configuration files that need to be edited to make this work. On my machine they were installed in<br />
/usr/local/etc/ .. Some of these files need to be copied to your home directory and modified. <br />
# cd ~<br />
# mkdir .sync4j/evolution<br />
# cp -a /usr/etc/scheduleworld_1 ~/.sync4j/evolution</p>
<p>5.) After copying the configuration files, they must be edited.<br />
The main configuration file is located in ~/.sync4j/evolution/scheduleworld_1/spds/syncml/config.txt</p>
<p>Update this file to look like this:</p>
<p>syncURL = http://sync.scheduleworld.com/funambol/ds<br />
deviceId = sc-api-nat<br />
username = (The username given to you in the ScheduleWorld preferences. This is not your login username or your google username)<br />
password = (The password that you created to log into ScheduleWorld)<br />
useProxy = F<br />
proxyHost =<br />
userAgent = SyncEvolution<br />
logdir =<br />
maxlogdirs =<br />
maxModPerMsg = 100000<br />
begin =<br />
end =<br />
firstTimeSyncMode = 0</p>
<p>Notice, that the only changes from the stock config file are username and password.<br />
Also note, that syncevolution seems to really dislike whitespace at the end of each entry, so make sure there are no trailing spaces.</p>
<p>This should take care of interfacing with ScheduleWorld.<br />
Now we&#39;ve got to tell syncevolution about the calenders (also tasks and todos) in Evolution, so it knows what to update.<br />
Typing syncevolution with no arguments will give you a list of available calenders. If you would like to create a seperate calender in evolution for the Google Calender data then create it now. After you&#39;ve got evolution set up the way you want it run the following: </p>
<p># syncevolution</p>
<p>My output looks like this:</p>
<p>[luke@cambridge syncml]$ syncevolution</p>
<p>address books:<br />
Personal (file:///home/luke/.evolution/addressbook/local/system)<br />
Everyone (file:///home/luke/.evolution/addressbook/local/1158164819.3026.0@cambridge.lukemacneil.com)</p>
<p>calendars:<br />
Personal (file:///home/luke/.evolution/calendar/local/system)<br />
Gig Calendar (file:///home/luke/.evolution/calendar/local/1161926726.21234.3@cambridge.lukemacneil.com)<br />
Birthdays &amp; Anniversaries (contacts:///)</p>
<p>tasks:<br />
Personal (file:///home/luke/.evolution/tasks/local/system)<br />
SyncEvolution test #1 (file:///home/luke/.evolution/tasks/local/1161927067.21234.5@cambridge.lukemacneil.com)</p>
<p>
You can see that it points to the location of my Gig Calendar file that I&#39;ve created in evolution. The location in this example is: file:///home/luke/.evolution/calendar/local/1161926726.21234.3@cambridge.lukemacneil.com</p>
<p>So now I have to plug that into the the syncevolution config file.<br />
The calendar config file is located in ~/.sync4j/evolution/scheduleworld_1/spds/sources/calendar_1/config.txt<br />
There are also addressbook and todo files in the ~/.sync4j/evolution/scheduleworld_1/spds/sources/ directory&#8230; Right now I am only concerned with the calendar.</p>
<p>My config.txt looks like this:</p>
<p>sync = two-way<br />
syncModes = two-way,refresh-from-client,refresh-from-server<br />
type = text/calendar<br />
evolutionsource = file:///home/luke/.evolution/calendar/local/1161926726.21234.3@cambridge.lukemacneil.com<br />
uri = cal2<br />
evolutionuser =<br />
evolutionpassword =<br />
last =</p>
<p>Notice that the only change I have made is to evolutionsource, and it&#39;s value is the location that we found in the step above.<br />
You may edit the configuration files for the addressbook and tasks the same way.</p>
<p>At this point, syncevolution is configured, and you can perform an actual sync by typing the following:<br />
# syncevolution scheduleworld_1 calender_1</p>
<p>BITPIM.<br />
My cell phone is a Samsung A650.<br />
I&#39;m using Bitpim to transfer my calender and contacts to it.<br />
Upon recieving my data cable, I was unable to connect to the phone from bitpim.<br />
Here was the problem:</p>
<p>After connecting the USB cable to my linux box (Fedora Core 5) and the phone (Samsung A650), I tried to detect the phone in Bitpim. The port was listed, but it was listed as unavailable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/06/09/syncing-evolution-with-scheduleworld-and-bitpim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The First Gig</title>
		<link>http://www.lukemacneil.com/2007/05/24/the-first-gig/</link>
		<comments>http://www.lukemacneil.com/2007/05/24/the-first-gig/#comments</comments>
		<pubDate>Thu, 24 May 2007 18:45:48 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Notes and Musings]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=168</guid>
		<description><![CDATA[Which came first, the audience or the performer? Was the first performance of all time inspired by a random group of people in need of entertainment? Or, were the caves and forests of yesteryear filled with lone singers belting out their hearts without ever intending to present their talents to others? These aren&#39;t silly questions &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/05/24/the-first-gig/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p class="body">
<img src="http://www.lukemacneil.com/images/stories/markbaxter4.jpg" style="float: left;" hspace="6" alt="Image" title="Image" border="0" /><br />
Which<br />
came first, the audience or the performer? Was the first performance of<br />
all time inspired by a random group of people in need of entertainment?<br />
Or, were the caves and forests of yesteryear filled with lone singers<br />
belting out their hearts without ever intending to present their<br />
talents to others? These aren&#39;t silly questions if you&#39;re passionate<br />
about performing. Because the answer to this &quot;chicken or the egg&quot;<br />
paradox provides the key for connecting with modern-day audiences. And<br />
while I&#39;m not quiet old enough to have been there at the beginning,<br />
there is a lot of evidence as to how the first gig must have<br />
transpired.
</p>
<p class="body">

</p>
<p></p>
<p class="body">
Imagine a man at the<br />
dawn of humanity. He&#39;s walking along looking for food on some random<br />
Friday when he stubs his toe on a rock, again. The guy is not only in a<br />
fair amount of pain but also really aggravated. What are the chances of<br />
that happening twice in one outing? He can&#39;t think those actual words<br />
because he has yet to develop language but he knows he&#39;s not having a<br />
good day. Not only has he scared away any potential meals with his<br />
angry cries but he&#39;s also caught the ear of a nearby human who<br />
cautiously heads in the direction of the commotion. The curious<br />
onlooker crouches behind a bush and watches as the injured man vents<br />
his frustration by shrieking and howling at the top of his lungs. And<br />
so, in this very unceremonious manor, the first performance unfolded.<br />
Musicologists and critics will later refer to this type of emoting as<br />
&quot;rock music.&quot; After all, it was inspired by hitting a stone.
</p>
<p class="body">
Without knowing each other, a connection was made<br />
between those two ancient people. The spectator was captivated by the<br />
expressions and sounds of the other man because he related to the<br />
feelings. He continued to spy as the unsuspecting performer&#39;s voice<br />
then swooped up in delight upon discovering some berries, and then<br />
groaned downward in disappointment as the last berry was consumed. The<br />
vocal sounds triggered feelings of empathy in the one-man audience.<br />
Bonding with the stranger, he also released a sigh when the berries<br />
were gone, inadvertently calling attention to himself. Suddenly aware<br />
that he was being watched, the performer&#39;s heart skipped a beat as he<br />
realized that his actions had captured the emotions of another person.<br />
Wanting to explore this new connection further, the performer was sorry<br />
to see his audience scurry away into the forest.
</p>
<p class="body">
The next night the man who had witnessed the<br />
impromptu performance wanted to share the experience with his woman.<br />
This being a time well before political correctness and without the<br />
ability to actually ask her if she&#39;d like to see something interesting,<br />
he simply dragged her by the hair until he found the man he had spied<br />
on. Not only did this create the still-honored tradition of Saturday<br />
being date night, but it also doubled the audience of the previous day<br />
for the rookie performer. So the stage was set but just before the<br />
second gig of all time could get under way, something unexpected<br />
occurred.
</p>
<p class="body">
Stage fright seized the performer&#39;s mind and<br />
body. How would he recreate the special circumstances that existed the<br />
day before? What was it that made his audience return? He desperately<br />
wanted to connect with these people yet he was in the dark about their<br />
desires. At a loss for what to do he ran over and purposely kicked a<br />
large rock with his bare foot. It certainly hurt but not like the day<br />
before. Embarrassed, he stifled his discomfort. His audience sat<br />
stone-faced. Then he grabbed some berries and woofed them down. He<br />
scanned the two onlookers for approval; bypassing the enjoyment he had<br />
previously experienced when eating the fruit. No reaction from his<br />
audience, until the woman shot a disapproving glance to her man for<br />
dragging her out of the cave for nothing.
</p>
<p class="body">
Seem familiar? Since the second gig in<br />
history performers have struggled with trying to please an audience.<br />
And since that second gig, audiences have been subjected to a<br />
hit-or-miss chance of attending a great live show. What was true then<br />
is true now: An audience is most interested in how the performer feels.<br />
The first gig was spontaneous. The connection was real because the<br />
feelings were real. The next night the performer was so preoccupied<br />
with the mood of his audience that he failed to connect his emotions to<br />
the actions of his show. It&#39;s a simple rule: The singer leads the room.<br />
Let down your guard and feel something and the audience will be yours.<br />
Step on stage with your shields up and you&#39;re in for a long night.
</p>
<p class="body">
Every human responds to basic emotions in<br />
the same way. We all cry when sad and laugh when happy. There are no<br />
exceptions anywhere on the planet. All healthy people communicate with<br />
melody in their voices as an extension of their feelings. Our pitch<br />
rises when we&#39;re excited and falls for disappointment. These are the<br />
same melodic cues that every song attempts to capture. In other words,<br />
music stimulates our emotions by imitating the sounds we produce<br />
naturally. On hearing a melodic cue, we quickly assess if the gesture<br />
is authentic. If we deem it real, we begin to search our own feelings<br />
for a connection.
</p>
<p class="body">
Unfortunately many people feel uncomfortable<br />
navigating their emotions in public. They clam up and close the pathway<br />
from head to heart. The irony is that these are the people who would<br />
gain the most from opening up a little. So it is up to the performer to<br />
create an environment safe enough that the biggest hold-outs surrender<br />
to their emotions. That&#39;s why your audience has ventured out in the<br />
first place. They long to feel something but don&#39;t know how to get out<br />
of their own way. It&#39;s the old safety in numbers theory &#8211; which is why<br />
performers and audiences alike love a big crowd. The flip side is why<br />
it&#39;s such a challenge to have a good show when there are only six<br />
people in the club.
</p>
<p class="body">
As always, it&#39;s best to lead by example. On<br />
any given night, during any song on the set list, there is an<br />
opportunity to connect with your emotions &#8211; and therefore your<br />
audience. You don&#39;t have to act out the lyrics. Think big picture. Joy,<br />
love, loneness or heartbreak are all typical song subjects because<br />
everybody can relate. To keep your performance real, draw from your<br />
experience. The heartbreak you&#39;re singing about doesn&#39;t have to be the<br />
heartbreak you&#39;re feeling. You can reminisce about the family dog that<br />
recently passed away during a break-up song. If you&#39;re still missing<br />
that pooch your audience will pick up on those feelings and start<br />
searching their hearts for what they miss most. Before long everyone is<br />
tearing up. No one has to know that the &quot;she&quot; that left you had four<br />
legs and a very cold nose.
</p>
<p class="body">
So which came first? The answer is neither<br />
audience nor performer. It was emotion that started the whole<br />
entertainment business. And it is the pursuit of an emotional<br />
experience that draws people out of the comfort of their modern day<br />
caves and brings them elbow to elbow with strangers. It is an agreement<br />
with the way you feel about things that will inspire someone to start<br />
your fan club. So start connecting the way you feel to the songs you<br />
sing and inspire your audience to explore their emotions. Because no<br />
matter how well you can sing or play, it&#39;s the way you make people feel<br />
that is remembered most.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/05/24/the-first-gig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Mics &#8211; Our Philosophy</title>
		<link>http://www.lukemacneil.com/2007/05/23/open-mics-our-philosophy/</link>
		<comments>http://www.lukemacneil.com/2007/05/23/open-mics-our-philosophy/#comments</comments>
		<pubDate>Wed, 23 May 2007 16:47:10 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Notes and Musings]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=167</guid>
		<description><![CDATA[Here is an article that was written by Trish and Phil Knudsen regarding our reason for attending open mics, and posted on their homepage www.trishandphil-music.com. I&#39;m using it here with their permission. &#34;We are now into our fourth month of hosting the TCAN open mike. We felt the time was right to tell you something &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/05/23/open-mics-our-philosophy/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.lukemacneil.com/images/stories/avatars/trishandphil.jpg" style="float: left;" hspace="6" alt="Image" title="Image" border="0" />Here is an article that was written by Trish and Phil Knudsen regarding our reason for attending open mics, and posted on their homepage www.trishandphil-music.com. I&#39;m using it here with their permission.</p>
<p><em>&quot;We are<br />
now into our fourth month of hosting the TCAN open mike. We felt the<br />
time was right to tell you something about our philosophy of the open<br />
mike- here at TCAN and in general.</p>
<p>We see<br />
the open mike as a community event &#8211; not necessarily a performance<br />
event. It&#39;s a time to hear, and really listen to, other people who<br />
share their gifts with us. The performers are at various stages in<br />
their musical development. Some may see the open mike as their only<br />
musical or spoken word outlet, some may use the open mike to test new <br />
musical<br />
collaborations and musical styles. Some people may use the open mike to<br />
showcase their talent in the hope of being offered a feature, or an<br />
opening slot at some venue. All of these are valid reasons for<br />
involvement. The key thing holding all these ideas together is that we<br />
are here for each other. We shouldn&#39;t get involved in the open mike for<br />
ourselves only &#8211; although performance may also feed our own souls as we<br />
sing, express ourselves and receive appreciation from others&#8230;</em></p>
<div id="Oobj810">
<div id="Grtf752" class="dfltt">
<em><br />
So &#8211; to the point of this note on philosophy. We have been asked<br />
several times why TCAN is a one song open mike, or why we don&#39;t start<br />
earlier, or why we don&#39;t do a second round of songs. The answer simply<br />
is: time. Our goal is to provide the opportunity to play but there is a<br />
great deal of support and work that goes on to make it happen. You may<br />
come to the open mike and sit for a long time listening to other folks<br />
and then get your chance to perform your song. If the night is only a<br />
success for you because you are performing &#8211; you are missing a huge<br />
aspect of the open mike &#8211; I might say you are missing the point<br />
entirely.</p>
<p>TCAN is a &quot;listening&quot; open mike. There are no distractions like<br />
alcohol, dinner plates, loud talking or TV screens. You have the chance<br />
to perform on a stage with a great sound system and stage lighting. The<br />
people who volunteer each week have full time jobs and do this as<br />
volunteers because we believe in community. No, we don&#39;t get paid. We<br />
arrive early, set up the refreshments, make coffee and take care of<br />
some administrative tasks. The sound volunteer sets up microphones for<br />
multiple performers, for guitars, and for the piano. We run a sound<br />
check which can often take some time. We get everything ready for you<br />
to come and play.<br />
</em>
</div>
</div>
<div id="Oobj817">
<em><br />
</em>
</div>
<div id="Oobj828">
<div id="Ggeo356" class="dfltt">
<em><br />
At the<br />
end of the night we clean up, take out the trash, take down the sound<br />
system and make a final look around the venue for trash and anything<br />
people may have forgotten. On a given night we get home between 11:30<br />
and midnight . This may get later as we advertise and more people come<br />
to the open mike. Currently, we range from 6 to 20 open mikers. On<br />
occasion, when there is a light crowd we go to a two song format. It is<br />
not the norm. </p>
<p>There are some people who rarely come to TCAN&#39;s open mike because it&#39;s<br />
only a one song open mike. There are only a couple of two song open<br />
mikes on evenings: Amazing Things (for now), sometimes &quot;The Sit N Bull&quot;<br />
and that might be it, locally. Other one song open mikes include: The<br />
Emerson Umbrella, The Continental Cafe and the venerable Club Passim.</p>
<p>We can&#39;t start the open mike at TCAN any earlier because we sometimes<br />
need to stay at work a little late, and we like to eat dinner before we<br />
come. An 8PM start works well for those of us who volunteer to host and<br />
run the sound board.</p>
<p>So &#8211; let&#39;s leave our very practical reasons for a one song open mike.<br />
Here is the best reason. With a one song open mike we give more people<br />
an opportunity to perform. That gives each of us more chance to hear<br />
our very talented friends share their music and poetry with us. We<br />
build our community, we get to enrich our own creativity, and we<br />
encourage each other. In my opinion, that IS what the folk community is<br />
all about. That&#39;s why we love open mikes!</p>
<p>We would love to know what you think. There is a guestbook on page one that you can use, or email Trisha and me at:</p>
<p>&nbsp;<a href="mailto:hosts@lyricguitarmusic.com">hosts@lyricguitarmusic.com</a>.&quot;</em>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/05/23/open-mics-our-philosophy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syncronizing a Motorola Q with Linux</title>
		<link>http://www.lukemacneil.com/2007/05/22/syncronizing-a-motorola-q-with-linux/</link>
		<comments>http://www.lukemacneil.com/2007/05/22/syncronizing-a-motorola-q-with-linux/#comments</comments>
		<pubDate>Tue, 22 May 2007 05:27:36 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=10</guid>
		<description><![CDATA[Being a linux user can sometimes (often) be a pain in the ass. Since there&#39;s no native ActiveSync support for linux, we have to get &#34;creative&#34;. &#160;For the last few weeks I have been playing with a Motorola Q. It&#39;s a popular smartphone, and I&#39;m positives that these phones are going to get more impressive &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/05/22/syncronizing-a-motorola-q-with-linux/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Being a linux user can sometimes (often) be a pain in the ass.  Since there&#39;s no native ActiveSync support for linux, we have to get &quot;creative&quot;.
<p>&nbsp;For the last few weeks I have been playing with a Motorola Q. It&#39;s a popular smartphone, and I&#39;m positives that these phones are going to get more impressive with each passing year. The phones operating system is Windows Mobile 5, which in my opinion is complete dogshit, but the phone is pretty cool.</p>
<p>I&#39;m not an organized person. Everyone knows that. But I try. I try to get things so organized (at least digitally) that I confuse the hell out of myself. One example is with my calendars.</p>
<p>I use two main calendars. My personal calendar, for everything that isn&#39;t a gig, and my gig calendar, for everything that is. My goal is to centralize these calendars and make it so I can&#39;t possible forget something I&#39;ve tried so hard to remind myself of, no matter where I may be sitting.</p>
<p>To do this, I first need a central point. Since I&#39;m rebuilding my computer all the time, I had to host it elsewhere&#8230; So I chose google calendar. It&#39;s a great web app, and it&#39;s free, and I can access it from any internet browser.</p>
<p>So I created two separate calendars in my google account, and named them Personal and Gigs. Simple enough.</p>
<p>Now I&#39;m a very lazy person. It&#39;s unlikely that I&#39;m going to wake up in the morning and log on to view my google calendar, I want a pop up to display on my screen when an event is coming up. For this I need a desktop client. I&#39;ve tried them all. Really, all of them. The one I think I&#39;ve finally settled on is Mozilla&#39;s Thunderbird. It&#39;s the nicest looking, and supports the most plug ins.</p>
<p>So I installed Thunderbird on my computer. Keeping in mind that I also want to access these calendars from my mobile device, I decided to use syncml, it&#39;s a newer standard for transferring [[PIM]] data between devices.</p>
<p>By suggestion of Redth in #linuxpeople, I checked out Mark Swanson&#39;s ScheduleWorld website.</p>
<p>ScheduleWorld is another calendering website that synchronizes with google calendar.<br />I created an account with scheduleworld, and made two calendars, named Personal and Gigs, and I set each calendar to synchronize with the appropriate google calendars.<br />The big difference between these web applications, is that ScheduleWorld provides syncml support and google does not. ScheduleWorld is the hub from which I feed my calendars and contacts to my desktop and mobile device. </p>
<p>SyncML is not enabled by default in either thunderbird or windows mobile 5 (or even outlook) yet, although I&#39;m sure in the near future all [[PIM]] applications will incorporate it. To get the functionality, Thunderbird needs an extension and WM5 needs a program. I&#39;ve chosen SyncSW and Synthesis SyncML respectively.</p>
<p>After feeding the plugins my scheduleworld username and password, both the mobile device, and my desktop computer will synchronize all of my contacts and calendar data.</p>
<p>I have had success using other email clients, such as Evolution and Kontact, but I&#39;ve found Thunderbird and the SyncSW extension to be an easier, more reliable, cleaner solution.</p>
<p>Also, to display my Upcoming gigs on the website, I&#39;ve just embedded a copy of my google calender on the Gig Calendar page. Simple. Google even provides the [[HTML]] to do it.</p>
<p>This takes care of synchronizing my calendars and contacts&#8230; But there&#39;s still mail.</p>
<p>To syncronize my mail I&#39;ve found IMAP to be the best solution. </p>
<p>First, I took all the email addresses that I have, and forwarded them all to one. I auto forward my hotmail, gmail, and whatever else right over to my comcast email account. Comcast does my spam filtering for me, and I have one central place that holds all my mail from many locations.</p>
<p>Next I installed Dovecot IMAP Server on my debian box here at my house. The machine is always on, and I use it for lots of things. </p>
<p>After installing the imap server, I installed fetchmail, and created a fetchmail rule to grab all the mail from comcast via [[POP]]. Fetchmail then delivers the mail to procmail, which delivers the mail to my IMAP Maildir.</p>
<p>It&#39;s a lot of steps, and it&#39;s confusing for a beginner, but all it&#39;s doing is mirroring my comcast mailbox to my local server. IMAP allows me to access the same mail, the same mailbox, from any machine, including the Motorola Q. </p>
<p>This way, if I read a message on my phone, and come back to my computer, the message is still there, but it&#39;s marked as read&#8230; and vice versa.</p>
<p>There are other ways to do this&#8230; but for me, I have found this to be the most reliable and cheapest (free) way to do what I want it to do.</p>
<p>Next, I need to transfer files. <br />I&#39;ve been unsuccessful in getting anything done using a USB cable, which is a shame. There are projects such as [[synce]] that others have reported success with, but not me. I&#39;ve even tried using the USB connection in a VMware Windows XP Virtual Machine, but to no avail. </p>
<p>I have been able to get consistent reliable results transferring files using Bluetooth.</p>
<p>The initial bluetooth configuration was another project entirely, and unfortunatly, I didn&#39;t document it as I went. The information that I can give you is:</p>
<p>I&#39;m using kbluetoothd as a bluetooth server and a little USB Bluetooth Dongle for bluetooth support in my desktop. After creating a pairing between the phone and the desktop, I am able to browse the phone as if it were a local filesystem by using the OBEX protocol.</p>
<p>Now all of this gives me most of the functionality of Microsoft&#39;s Activesync, with the exception of installing EXE files. I can still install .CAB files on the phone by transferring the files over bluetooth to my storage card and running them from the phone, but I can&#39;t install packages that were intended to be installed with ActiveSync. There&#39;s no way that this can be accomplished without a reliable USB connection. I&#39;ve asked the folks over at VMWare for their support, and we&#39;ll see what comes of it.</p>
<p>I hope that this will be helpful to someone.</p>
<p>-Luke.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/05/22/syncronizing-a-motorola-q-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I control my lights and appliances from my cell phone.</title>
		<link>http://www.lukemacneil.com/2007/05/14/how-i-control-my-lights-and-appliances-from-my-cell-phone/</link>
		<comments>http://www.lukemacneil.com/2007/05/14/how-i-control-my-lights-and-appliances-from-my-cell-phone/#comments</comments>
		<pubDate>Mon, 14 May 2007 08:30:22 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=9</guid>
		<description><![CDATA[After watching a demo of linux mce on youtube, I became intrigued by X10, and what it can do for me. [[X10]] is a standard of passing commands to lights and appliances through the existing [[AC]] power in a house. With an inexpensive modules that plugs into your computer, it&#8217;s possible to send commands to &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/05/14/how-i-control-my-lights-and-appliances-from-my-cell-phone/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>After watching a demo of linux mce on youtube, I became intrigued by X10, and what it can do for me.
<p>[[X10]] is a standard of passing commands to lights and appliances through the existing [[AC]] power in a house. </p>
<p>With an inexpensive modules that plugs into your computer, it&#8217;s possible to send commands to your lights to turn on, off, dim, and hosts of other things.</p>
<p> I immediatly bought an X10 starter kit off of ebay for about $50.00. It came with more than enough for me to start the project.</p>
<p> The first step, was to plug the the tranciever module into the wall, and plug my computer into it. There is also a serial connection that plugs into the computer to send the signals. After plugging it in, I had to get linux to recognize the device and send signals. This took quite a while because of my inexcusable ignorance of how linux handles [[serial devices]]. </p>
<p> After checking [[dmesg]] for serial devices in the computer, I came to the conclusion that there was only one. </p>
<p> #dmesg | grep tty<br /> <b>serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A<br /> </b><br /> The serial device is /dev/ttyS2. </p>
<p> Now the device is connected, I needed some kind of software to control it.<br /> Some googling suggested that MisterHouse would be a good start. So I installed misterhouse and was quickly overly confused by it&#8217;s bulk. MisterHouse is software that&#8217;s far more than I need&#8230; and it&#8217;s configuration and use is extremely confusing.</p>
<p> After I gave up on Misterhouse, I found a simple command line utility called [[heyu]].<br /> Heyu sends X10 signals straight from the console using short concise commands like this:<br /> <b>#heyu on a1</p>
<p> </b>This command would turn on the X10 device labeled a1. <br /> Very simple.</p>
<p> This is exactly what I needed. </p>
<p> To take it to the next level, I wanted to be able to control my appliances from my cell phone. <br /> Although there were some projects around the web that boasted the ability to do this, I was unable to find anything that worked&#8230; so what I did.. is simple.</p>
<p> I wrote a very short php script to execute heyu commands from the web. <br /> It&#8217;s extremely simple and very lightweight.</p>
<p> And&#8230; here it is:</p>
<p>{codecitation} &#8216;Main Light&#8217;,<br />	&#8216;A3&#8242; =&gt; &#8216;Red Lamp&#8217;,<br />	&#8216;A4&#8242; =&gt; &#8216;Desk Light&#8217;,<br />	&#8216;A5&#8242; =&gt; &#8216;Heater&#8217;,<br />	&#8216;A13&#8242; =&gt; &#8216;Outside Light&#8217;<br />);<br />$currentstatus=shell_exec(&#8216;heyu show h A&#8217;);<br />?&gt;</p>
<form method="post" action="index.php">
<table>
<tbody>
<tr>
<td></td>
<td>
<select name="&lt;?=$id?&gt;">
<option>off</option>
<option selected="selected">off</option>
<option>on</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input name="submit" type="submit"></td>
</tr>
</tbody>
<p>document.location=&#8217;index.php&#8217;&#8221;;<br />
}//end if<br />
{/codecitation}</p>
<p>This allows me to see the status of all my devices that I have specified in the array, and gives me the control to turn them off and on as I please. Now I don&#8217;t have to spend so much every year on heat&#8230; I can just warm the room up a few minutes before I get home.</p>
<p>You are obviously allowed to use and modify the above script to your hearts content.</p>
<p>-Luke.</table>
</form>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/05/14/how-i-control-my-lights-and-appliances-from-my-cell-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I got started with linux.</title>
		<link>http://www.lukemacneil.com/2007/04/27/how-i-got-started-with-linux/</link>
		<comments>http://www.lukemacneil.com/2007/04/27/how-i-got-started-with-linux/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 03:45:57 +0000</pubDate>
		<dc:creator>tcpsyn</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.lukemacneil.net/wordpress/?p=40</guid>
		<description><![CDATA[Some people who don&#8217;t know me, don&#8217;t know that I&#8217;m a computer geek. Others are well aware. But when I say computer geek, that does not mean I will come to your house and clean the spyware of your windows PC. Really. Don&#8217;t ask. When I say I &#34;work with computers&#34;&#8230; that does not mean &#8230; </p><p><a class="more-link block-button" href="http://www.lukemacneil.com/2007/04/27/how-i-got-started-with-linux/">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<p>Some people who don&#8217;t know me, don&#8217;t know that I&#8217;m a computer geek. Others are well aware. But when I say computer geek, that does not mean I will come to your house and clean the spyware of your windows PC. Really. Don&#8217;t ask. When I say I &quot;work with computers&quot;&#8230; that does not mean that I will come over and help you transfer the pictures off your new digital camera. I&#8217;m a [[linux]] geek&#8230; and if you need, I&#8217;ll help you with linux all day long.
</p>
<p>As a little kid, before the internet was available, we had BBSs. <br />
A [[BBS]] was a bulletin board system where people could dial in with a modem, leave messages on the board forums, download files, and play games. I loved these things. I frequented all of the ones that were in the local area code. </p>
<p>Eventually, I started my own, and although nobody visited, it gave me some exposure to how computers talk to each other. </p>
<p>I started with linux because I wanted to run my own [[MUD]], and the software ran on linux. So I got some disks from a friend, and some tutorials off of the local Bulletin Boards, and started at it.</p>
<p>Linux is an operating system. It&#8217;s software that tells your computer how to interact with itself, and with you. Most people turn on their computers and use Microsoft Windows&#8230; which is also an operating system. The difference between the two, is that Linux is [[Open Source]]. That means that the source code is open to the public to look at and modify. There are no secrets. And because of this, some of the brightest people in the world have come together to develop a massive library of software. Almost all of it is completely free of charge. </p>
<p>While I admit, the fact that the software is free had a hand in abolishing windows from my household&#8230; It&#8217;s really the community of people that keeps me interested, always wanting to learn more. </p>
<p>I&#8217;m not a developer, meaning I don&#8217;t actually write the software.. But I add my time in testing, debugging, documenting, and helping others.. That&#8217;s how I give back to the community, and in all these years, I&#8217;ve never tired of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lukemacneil.com/2007/04/27/how-i-got-started-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

