<?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>Chris Jones</title>
	<atom:link href="http://seechrisblog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://seechrisblog.com</link>
	<description>See him blog.</description>
	<lastBuildDate>Wed, 16 May 2012 14:38:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>How to Make Mutt and DKIM Get Along</title>
		<link>http://seechrisblog.com/2012/05/16/how-to-make-mutt-and-dkim-get-along/</link>
		<comments>http://seechrisblog.com/2012/05/16/how-to-make-mutt-and-dkim-get-along/#comments</comments>
		<pubDate>Wed, 16 May 2012 04:06:54 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=262</guid>
		<description><![CDATA[I love Mutt. I love the power and flexibility it gives me over my email. Every so often, though, I run into little problems that I would not normally have on any other mail client. One such problem manifested itself when I was tasked with setting up SPF and DKIM on my company&#8217;s mail servers. [...]]]></description>
			<content:encoded><![CDATA[<p>I love Mutt. I love the power and flexibility it gives me over my email. Every so often, though, I run into little problems that I would not normally have on any other mail client.</p>
<p>One such problem manifested itself when I was tasked with setting up SPF and DKIM on my company&#8217;s mail servers. DKIM reported &#8220;no signature data&#8221; for every message I sent with Mutt. The resulting message had no DKIM signature attached.</p>
<p>After a few days of banging my head into the desk I realized that I had only been testing with Mutt. I did what I should have done from the beginning and sent a message with the mail command on the server itself. It was signed. Then I tried it with Thunderbird. That too worked. Happy that it was actually working I turned my attention to my sadistic mail client.</p>
<p>The problem was that I was using msmtp for my mail delivery. It&#8217;s a useful smtp client that makes sending messages with Mutt trivial without having to configure sendmail or postfix on your local machine. DKIM wasn&#8217;t signing the messages because msmtp was using the mail server as a relay. DKIM doesn&#8217;t like that.</p>
<p>Here&#8217;s the solution. Instead of using msmtp, replace the msmtp configuration options in your muttrc file with <strong>set smtp_url=&#8221;smtp://username:yourpassword@your.mail.server&#8221;</strong>. That will have Mutt sending directly through the SMTP server. More importantly, DKIM will sign them.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2012/05/16/how-to-make-mutt-and-dkim-get-along/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source Dropbox Replacement using SSH and Unison</title>
		<link>http://seechrisblog.com/2012/05/08/open-source-dropbox-replacement-using-ssh-unison/</link>
		<comments>http://seechrisblog.com/2012/05/08/open-source-dropbox-replacement-using-ssh-unison/#comments</comments>
		<pubDate>Tue, 08 May 2012 23:01:00 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=200</guid>
		<description><![CDATA[For nearly a year as of writing this I have been using my own crude replacement to Dropbox. It lacks some of the features that Dropbox and other &#8220;cloud storage solutions&#8221; offer but it does the one thing I need quite well. It synchronizes files between my home server and multiple computers and it does [...]]]></description>
			<content:encoded><![CDATA[<p>For nearly a year as of writing this I have been using my own crude replacement to Dropbox. It lacks some of the features that Dropbox and other &#8220;cloud storage solutions&#8221; offer but it does the one thing I need quite well. It synchronizes files between my home server and multiple computers and it does so (relatively) securely. Here&#8217;s what it does and doesn&#8217;t do and how to do it.</p>
<p>What it does:</p>
<ul>
<li>Securely synchronizes files between multiple computers and a central server over SSH</li>
<li>Provides a public folder that I can link people to with any functional web server</li>
<li>Has a web interface with <a title="AjaXplorer" href="http://ajaxplorer.info/">AjaXplorer</a></li>
<li>Keeps my data in my hands until my control</li>
</ul>
<p>What it doesn&#8217;t do:</p>
<ul>
<li>Version control (yet)</li>
<li>Selective downloading of folders</li>
<li>Sharing of individual folders with others</li>
<li>Place my data in the hands of a questionable third party</li>
</ul>
<p>What you need:</p>
<ul>
<li>A central server (preferably running some for of Linux or Unix) to hold the files</li>
<li>One or more clients to sync with</li>
<li>SSH client and daemon</li>
<li><a title="autossh" href="http://www.harding.motd.ca/autossh/">autossh</a></li>
<li>Unison</li>
</ul>
<p>First, set up the SSH daemon on the server AND the client machines. Then set up a public key for each client machine so they can log into the server without a password. After that, set up a public key for a reverse SSH connection from the server back to the client. This will be accomplished with SSH reverse tunnelling. Here is an example of this between one client machine and the server:</p><pre class="crayon-plain-tag">[user@client1 ~] ssh-keygen -t rsa
[user@client1 ~] ssh-copy-id yourserverusername@example.com
[user@client1 ~] ssh -R 5559:localhost:22 yourserverusername@example.com
[user@example.com ~] ssh-keygen -t rsa
[user@example.com ~] ssh-copy-id -i ~/.ssh/id_rsa.pub '-p 5559 yourclientusername@localhost'
[user@example.com ~] ssh -p localhost -p 5559
[user@client1 ~]</pre><p>&nbsp;</p>
<p>5559 is an arbitrary port chosen for the reverse tunnel to run on. Notice how from the  server you SSH to localhost and wind up back at your client machine. That is what SSH reverse tunnelling does and that is what will facilitate full two way encrypted transportation of files with Unison. After the public keys have been set up you should no longer be prompted for a password going either way. This will allow the process to be automated.</p>
<p>Next, I would recommend setting up <a title="autossh" href="http://www.harding.motd.ca/autossh/">autossh</a>. This will allow the clients to maintain a persistent connection to the server. It will keep trying to re-establish the SSH connection if it fails. That would look like:</p><pre class="crayon-plain-tag">autossh -M 29001 -f -R 5559:localhost:22 yourserverusername@example.com -N</pre><p>29001 is an arbitrarily chosen port that autossh uses for monitoring the connection. In my setup I have that command run whenever a new network connection is made. I also have it check if autossh is already running otherwise it will error out. That looks like this:</p><pre class="crayon-plain-tag">su -c 'if ! ps -C autossh &amp;gt; /dev/null; then autossh -M 29001 -f -R 5559:localhost:22 yourserverusername@example.com -N; fi' yourclientusername</pre><p>The heart of this setup is <a title="Unison" href="http://www.cis.upenn.edu/%7Ebcpierce/unison/">Unison</a>. It is very good at syncing files locally and remotely. In my case I use it over SSH. It is very careful about not losing any data and will report a conflict rather than overwrite a file that it can&#8217;t merge. Unison must be installed on the server AND the clients and they must all be the same version. In my case, my clients run Arch but my server runs Debian stable. Because of this, I have to compile Unison on Debian to keep it updated as the version in the apt repositories is a bit outdated. The Unison command itself looks like this when ran on the server:</p><pre class="crayon-plain-tag">unison -batch /path/to/server/folder ssh://localhost:5559/path/to/client/folder</pre><p>This by itself is not enough. We&#8217;re going to create a script will have the server sync with each client. It can be cronned to run every so often. Mine runs every 10 minutes. Don&#8217;t forget to update the variables for your setup.</p><pre class="crayon-plain-tag">#!/usr/bin/env bash

# Customize these variables for your system. It will not work otherwise.

UNISONPATH=&quot;/usr/local/bin/unison&quot;       # Where unison is installed
MAILCOMMAND=&quot;/usr/bin/mail&quot;              # Use this to send mail
MAILTO=&quot;useroremailaddress&quot;              # Who to send errors to
PORTARR=(5559,5560)                      # List of ports. Add a new port for each connected client
SERVERFOLDER=&quot;/patch/to/server/folder&quot;   # Where the files are stored on the server
CLIENTFOLDER=&quot;/path/to/client/folder&quot;    # This folder much exist on each client

function sync {
    # Checks if unison is already running
    if ! ps -C unison &amp;gt; /dev/null
    then
        # Loops through the port array
        for PORT in ${PORTARR[*]}
        do
            # grep /proc/net/tcp for the hex value of the port to check for a live connection
            PORTHEX=&amp;#x0060;printf &quot;%X\n&quot; $PORT&amp;#x0060;
            SOCKETCHECK=&quot;grep 0100007F:${PORTHEX} /proc/net/tcp&quot;

            # If the connection exists then sync
            if [ -n &quot;&amp;#x0060;${SOCKETCHECK}&amp;#x0060;&quot; ]
            then
                SYNCCOMMAND=&amp;#x0060;$UNISONPATH -batch $SERVERFOLDER ssh://localhost:$PORT/$CLIENTFOLDER 2&amp;gt;&amp;amp;1 | grep CONFLICT&amp;#x0060;

                # If conflicts were found, send an email
                if [ -n &quot;${SYNCCOMMAND}&quot; ]
                then
                    echo $SYNCCOMMAND | $MAILCOMMAND -s &quot;CONFLICTS FOUND&quot; $MAILTO
                fi
            fi
        done
    fi
}

# Run twice so multiple clients are properly synced
sync
sync</pre><p></p>
<p>That&#8217;s the bare basics. The server checks for connections to the clients at the ports you specify. If it finds them it runs Unison over SSH. I have tested this with 3 clients and over 7000 files at once during the initial sync. It was fast, lost no data, and had no conflicts. The end result is a folder I place data in that gets transferred to my server and sent to other clients.</p>
<p>For a public folder set up a web server and point it at a specific folder within the synced directory on the server. I suggest trying out <a title="AjaXplorer" href="http://ajaxplorer.info/">AjaXplorer</a> for a web interface.</p>
<p>Obviously there is a lot of room for improvement. Git could replace Unison for the sake of version control. It would also be nice to get it working with inotify rather than having the server poll the clients. If you got this far, thanks for reading. I&#8217;m open to opinions and suggestions for improvements.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2012/05/08/open-source-dropbox-replacement-using-ssh-unison/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Easy Screenshot Sharing on Linux with Dropbox</title>
		<link>http://seechrisblog.com/2011/05/05/easy-screenshot-sharing-on-linux-with-dropbox/</link>
		<comments>http://seechrisblog.com/2011/05/05/easy-screenshot-sharing-on-linux-with-dropbox/#comments</comments>
		<pubDate>Thu, 05 May 2011 20:54:00 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=174</guid>
		<description><![CDATA[My first post on this blog was Simple Secure Screenshot Sharing for Ubuntu. This is an updated, much easier way to do it. Here are the requirements: Linux &#8211; Needs no explanation Dropbox &#8211; A great way to synchronize and share files. Dropbox makes sharing easy by providing a public link to anything that you [...]]]></description>
			<content:encoded><![CDATA[<p>My first post on this blog was <a href="/2010/03/27/simple-secure-screenshot-sharing-for-linux">Simple Secure Screenshot Sharing for Ubuntu</a>. This is an updated, much easier way to do it. Here are the requirements:</p>
<ul>
<li>Linux &#8211; Needs no explanation</li>
<li><a href="http://www.dropbox.com/">Dropbox</a> &#8211; A great way to synchronize and share files. Dropbox makes sharing easy by providing a public link to anything that you place into Dropbox&#8217;s &#8220;Public&#8221; folder.</li>
<li><a href="http://www.imagemagick.org/script/index.php">ImageMagick</a> &#8211; ImageMagick is a powerful command line image manipulation program. This is what will actually take the screenshots.</li>
<li>xclip &#8211; A command line utility that allows you to copy to the clipboard from the commandline. It will be used to copy the public url from the Dropbox command line application and send it to the clipboard.</li>
</ul>
<p>Install Dropbox, xclip, and ImageMagick then save this simple bash script to &#8220;~/bin/screenshare&#8221;:<br />
<code>#!/bin/bash<br />
#Set the path<br />
IMAGEPATH=~/Dropbox/Public/Screenshot.png<br />
#Save the screenshot to the path<br />
import -window root $IMAGEPATH<br />
#Get the url and send it the clipboard<br />
dropbox puburl $IMAGEPATH | xclip</code></p>
<p>This assumes that your Dropbox path is in ~/Dropbox. Don&#8217;t forget to make it executable with &#8220;chmod +x ~/bin/screenshare&#8221;.</p>
<p>To take a screenshot, from a command line, run dialog, or any other method of issuing commands type &#8220;screenshare&#8221;. Alternatively, you could map it to the Print Screen keyboard button. You should be now able to paste your shared screenshot from the clipboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2011/05/05/easy-screenshot-sharing-on-linux-with-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Use gnome-keyring Without Gnome</title>
		<link>http://seechrisblog.com/2011/01/30/how-to-use-gnome-keyring-without-gnome/</link>
		<comments>http://seechrisblog.com/2011/01/30/how-to-use-gnome-keyring-without-gnome/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 07:02:36 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=171</guid>
		<description><![CDATA[Recently, I set up my lappy with Debian and awesome as the standalone window manager. I am partial to using network-manager but quickly realized that it relied on the gnome keyring manager to save wifi passwords. Without it, I would have to enter my password on every login. I found the solution here. Start nm-applet [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I set up my lappy with Debian and awesome as the standalone window manager. I am partial to using network-manager but quickly realized that it relied on the gnome keyring manager to save wifi passwords. Without it, I would have to enter my password on every login.</p>
<p>I found the solution <a href="https://bbs.archlinux.org/viewtopic.php?pid=565705#p565705">here</a>. Start nm-applet like this in your .xinitrc file or your window manager&#8217;s respective startup configuration file.</p>
<p><code>dbus-launch nm-applet --sm-disable &amp;</code></p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2011/01/30/how-to-use-gnome-keyring-without-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to use locate with xargs</title>
		<link>http://seechrisblog.com/2010/11/24/how-to-use-locate-with-xargs/</link>
		<comments>http://seechrisblog.com/2010/11/24/how-to-use-locate-with-xargs/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 19:38:13 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=164</guid>
		<description><![CDATA[Many are aware of how to use find with xargs. For example, to remove those annoying .DS_Store files OS X leaves everywhere you can do: find . -name .DS_Store -print0 &#124; xargs -0 print rm -f The key here is -print0 and -0 tells find and xargs to use the ascii null character instead of [...]]]></description>
			<content:encoded><![CDATA[<p>Many are aware of how to use find with xargs. For example, to remove those annoying .DS_Store files OS X leaves everywhere you can do:</p>
<p><code>find . -name .DS_Store -print0 | xargs -0 print rm -f</code></p>
<p>The key here is -print0 and -0 tells find and xargs to use the ascii null character instead of spaces. Recently I learned how to do something similar with locate as that command doesn&#8217;t have a -print0 option.</p>
<p><code>locate 'what_you_are_looking_for' -0 | xargs -0 rm -f</code></p>
<p>The -0 in the locate is equivalent to the -print0 in find.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/11/24/how-to-use-locate-with-xargs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Run chkdsk from Windows Server on All Computers in a Windows Domain</title>
		<link>http://seechrisblog.com/2010/10/25/how-to-run-chkdsk-from-windows-server-on-all-computers-in-a-windows-domain/</link>
		<comments>http://seechrisblog.com/2010/10/25/how-to-run-chkdsk-from-windows-server-on-all-computers-in-a-windows-domain/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 23:53:41 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=154</guid>
		<description><![CDATA[Windows is special. This we all know. One of its most especially special tendencies is that it does not automatically run a file system check every so often. It&#8217;s easy enough to automate that on a single machine but what about an entire domain? Here&#8217;s a way I&#8217;ve thrown together to do just that. First, download pstools [...]]]></description>
			<content:encoded><![CDATA[<p>Windows is special. This we all know. One of its most especially special tendencies is that it does not automatically run a file system check every so often. It&#8217;s easy enough to automate that on a single machine but what about an entire domain? Here&#8217;s a way I&#8217;ve thrown together to do just that.</p>
<p>First, download pstools from <a href="http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx">http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx</a> and install it somewhere. For me my path is c:\bin\PsTools. Be sure to replace the path in the following command with where you install it.</p>
<p>Next, open your favorite Windows text editor (plain old notepad will do in this case)  and type <strong>c:\bin\PsTools\psexec.exe \\* -d -u yourdomain\youradminaccoutname -p youradminpassword cmd /C &#8220;echo Y|chkdsk /F&#8221;</strong> Obviously replace &#8220;yourdomain&#8221;, &#8220;youradminaccountname&#8221;, and &#8220;youradminpassword&#8221; with the appropriate information for your setup.</p>
<p>Save it as a .bat file somewhere (c:\bin\chkdsk_whole_domain.bat in my case). Then you can go to the server&#8217;s Windows system scheduler and have it run whenever you like. Now all of the workstation computers will run chkdsk on their next reboot. That&#8217;s one less task you have to do manually!</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/10/25/how-to-run-chkdsk-from-windows-server-on-all-computers-in-a-windows-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Set Up Public WiFi at a Small Business</title>
		<link>http://seechrisblog.com/2010/08/31/how-to-set-up-public-wifi-at-a-small-business/</link>
		<comments>http://seechrisblog.com/2010/08/31/how-to-set-up-public-wifi-at-a-small-business/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 17:50:45 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=140</guid>
		<description><![CDATA[This is a quick writeup of how I set up public wifi access at a small business. The method employs two routers sharing one cable modem connection. This allows a point of sale (POS) system and the public wifi to be on separate networks. This prevents anyone from trying to sniff out credit card transactions. It [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick writeup of how I set up public wifi access at a small business. The method employs two routers sharing one cable modem connection. This allows a point of sale (POS) system and the public wifi to be on separate networks. This prevents anyone from trying to sniff out credit card transactions. It also uses some basic quality of service (QOS) settings to prevent people from hogging bandwidth from the POS system. Here&#8217;s what you will need to duplicate my setup.</p>
<ul>
<li>A wireless router than can have the Tomato Firmware installed on it. I recommend the <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16833124190&amp;Tpk=wrt54gl">Linksys WRT54GL</a></li>
<li>A <a href="http://www.amazon.com/Cisco-Linksys-BEFSX41-EtherFast-Firewall-Endpoint/dp/B00006G2OJ/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1283275548&amp;sr=8-1">wired router with a DMZ port</a></li>
<li>The <a href="http://www.polarcloud.com/tomato">Tomato Firmware</a></li>
</ul>
<p>Now for the setup.</p>
<ol>
<li><a href="http://www.polarcloud.com/firmware">Download</a> and install the Tomato firmware onto the wireless router. Tomato makes a wireless router much more stable and adds features that you&#8217;ll never have with the stock Linksys firmware such as real time bandwidth monitoring, QOS settings, and much more. Carefully read and follow the instructions included in the download. If you do not know what you are doing you can brick your router so don&#8217;t skip reading the installation guide.</li>
<li>Attach the cable modem to the WAN port of the wired router with a patch cable.</li>
<li>Enable DMZ on the wired router and connect the DMZ port of the wired router to the WAN port of the wireless router with a regular network cable.</li>
<li>Attach the POS system to an available LAN port on the wired router.</li>
<li>Set the routers to be on different subnets. For example, set the IP of the wired router to be 192.168.1.1 and the IP of the wireless router to be 192.168.2.1. This will prevent DHCP conflicts.</li>
<li>Change the default admin passwords for both routers to something else.</li>
</ol>
<p>At this point the setup should be working and all connected computers, wired and wireless, should have internet access. All that&#8217;s left is to enable some QOS setting to ensure the POS system will always have bandwidth. This step is optional but could save a headache later on in the event someone decides to abuse the wireless network.</p>
<ol>
<li>Run an internet connection <a href="http://www.speakeasy.net/speedtest/">speed test</a> and note the maximum upload and download bandwidth.</li>
<li>Enable QOS in the Tomato settings on the wireless router.</li>
<li>Under the QOS &#8220;Basic Settings&#8221; page set the inbound and outbound limits to be a little less than the values from the speed test. In my case I left a quarter of the upload and download bandwidth for the POS system just to be on the safe side.</li>
<li>Save your settings. Confirm the settings work by running separate speed tests for each router. The speed for the wireless router should go only to what you set the limit to be.</li>
</ol>
<p>That&#8217;s it! The total cost of this setup is easily less than $100 and in my experience has been very reliable.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/08/31/how-to-set-up-public-wifi-at-a-small-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireless with Arch Linux on the Dell Mini 9</title>
		<link>http://seechrisblog.com/2010/08/02/wireless-with-arch-linux-on-the-dell-mini-9/</link>
		<comments>http://seechrisblog.com/2010/08/02/wireless-with-arch-linux-on-the-dell-mini-9/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 12:30:13 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=135</guid>
		<description><![CDATA[DO NOT FOLLOW THE BELOW ADVICE I was new to Arch at the time and didn&#8217;t know that you had to run &#8220;ck-launch-session nm-applet&#8221; to get it work as a normal user. iwconfig only running as root is not a bug as I described, but rather a lack of knowledge at the time on my [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;"><strong>DO NOT FOLLOW THE BELOW ADVICE</strong></span></p>
<p>I was new to Arch at the time and didn&#8217;t know that you had to run &#8220;ck-launch-session nm-applet&#8221; to get it work as a normal user. iwconfig only running as root is not a bug as I described, but rather a lack of knowledge at the time on my part. I&#8217;m leaving the original post below for archive&#8217;s sake.</p>
<p>&nbsp;<br />
<strong>Original Post<br />
</strong></p>
<p>Recently I&#8217;ve gotten into Arch Linux. Its flexibility, documentation, and well thought out method of configuration make it an excellent distro. I&#8217;ve also been running it primarily on my Dell Mini 9 netbook. This computer has a pesky BCM4312 wireless card from Broadcom. Here&#8217;s how I dealt with it. Criticism and suggestions welcome.</p>
<p>This is assuming that you&#8217;re using <a href="http://en.wikipedia.org/wiki/NetworkManager">Network Manager</a>. The b43 drivers just don&#8217;t work with WEP or WPA making it pretty much useless. First <a href="http://wiki.archlinux.org/index.php/Broadcom_BCM4312">install the broadcom-wl drivers</a>. Then <a href="http://wiki.archlinux.org/index.php/NetworkManager">install Network Manager</a>. Now you&#8217;ll probably notice that still nothing seems to work; not even iwconfig or any of the other command line wireless tools.</p>
<p>The problem appears to be a bug where anything related to wireless networking with the broadcom-wl driver only works as the root user. A quick workaround for this is to enter <strong>visudo</strong> in the command line and add <strong>%wheel ALL=NOPASSWD: /usr/bin/nm-applet</strong> at the end of the file. Save and close. Reboot.</p>
<p>That should get you up and going at least as far network manager is concerned. My final solution for this is to just replace the wireless card with something more Linux friendly. I hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/08/02/wireless-with-arch-linux-on-the-dell-mini-9/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Making VirtualBox More Seamless</title>
		<link>http://seechrisblog.com/2010/06/21/making-virtualbox-more-seamless/</link>
		<comments>http://seechrisblog.com/2010/06/21/making-virtualbox-more-seamless/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 19:38:50 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=119</guid>
		<description><![CDATA[VirtualBox is one of my favorite Virtualization tools. While my primary OS is Linux I still need to visit Windows from time to time to test in IE, Safari, or to use some specific oddball program. The latest versions of VirtualBox starting with version 3.2 has a new feature that makes these trips to Windows [...]]]></description>
			<content:encoded><![CDATA[<p>VirtualBox is one of my favorite Virtualization tools. While my primary OS is Linux I still need to visit Windows from time to time to test in IE, Safari, or to use some specific oddball program. The latest versions of VirtualBox starting with version 3.2 has a new feature that makes these trips to Windows a little less painful.</p>
<p>Many are aware of VirtualBox&#8217;s seamless mode. For those who aren&#8217;t see this <a href="http://www.youtube.com/watch?v=fT33dAGRXIc">video</a> to understand what it is. While seamless mode is old news, what isn&#8217;t is the ability to launch applications in the guest operating system directly from the host with the VBoxManage command line tool. For example, running Linux as the host OS and Windows XP as the guest I can launch IE with the command</p>
<p><code>"VBoxManage guestcontrol execute "Windows XP" "C:\Program Files\Internet Explorer\iexplore.exe" --username windowsusername</code></p>
<p>Replacing &#8220;windowsusername&#8221; with the username you use to log in to the Windows guest and &#8220;Windows XP&#8221; with the name you gave your guest OS in VirtualBox. Arguments can also be passed to the program being launch in the guest OS with the &#8211;arguments flag. For example</p>
<p><code>﻿VBoxManage guestcontrol execute "Windows XP" "C:\Program Files\Internet Explorer\iexplore.exe" --username windowsusername --arguments "http://google.com"</code></p>
<p>While this is all well and good, it is not exactly convenient. In your respective desktop environment it would be relatively simple to create a launcher that can execute this command but it falls short on truly integrating it with the OS. What about the ability to right click on a file on your host desktop and have it open in it&#8217;s respective Windows based program. Using Windows notepad as a simple example, here&#8217;s how to do just that.</p>
<p>First, be sure that you have the VirtualBox guest additions installed. Then, in your VirtualBox settings, create a permanent shared folder in your guest OS to your host&#8217;s home directory. This will give it the access it needs to open files from your host&#8217;s file system.  After that, in &#8220;/usr/local/bin&#8221; create an executable bash script named &#8220;notepad&#8221; and paste into it this code.</p>
<p><code>#!/bin/bash<br />
oldPath=${1//\/home/\/\/VBOXSVR}<br />
newPath=${oldPath//\//\\}<br />
VBoxManage guestcontrol execute "Windows XP" "C:\Windows\notepad.exe" --username windowsusername --arguments "$newPath"</code></p>
<p>This simple script takes the full file path that gets passed in and converts it to a valid Windows path. What goes in as &#8220;/home/username/Desktop/test.txt&#8221; would become &#8220;\\VBOXSVR\username\Desktop\text.txt&#8221;. The path then gets passed to the guest OS&#8217;s program for opening. Save that file and don&#8217;t forget to give make it executable with</p>
<p><code>chmod +x /usr/local/bin/notepad</code></p>
<p>In your respective desktop environment (mine is Gnome) create a file called test.txt on your desktop and associate the command &#8220;/usr/local/bin/notepad&#8221; to it. With Gnome this is done by right clicking on the file, clicking &#8220;Properties&#8221;, going to the &#8220;Open With&#8221; tab and clicking the &#8220;Add&#8221; button. An &#8220;Add Application&#8221; dialog will pop up. In that window, expand the &#8220;Use a custom command&#8221; dropdown and enter &#8220;/usr/local/bin/notepad&#8221; into the textfield provided. Then click the &#8220;Add&#8221; button then the &#8220;Close&#8221; button.</p>
<p>To get the full effect, put your guest OS into seamless mode then right click on &#8220;test.txt&#8221; on your desktop, mouse over &#8220;Open With&#8221;, then click on &#8220;notepad&#8221;. If you did everything correctly the Windows notepad should launch with the contents of &#8220;test.txt&#8221;. Here&#8217;s a video of the whole thing put together.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="570" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Dupi9CGtbko&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="570" height="344" src="http://www.youtube.com/v/Dupi9CGtbko&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>This example can be applied to any Windows program. With a little modification, the script can be applied to other guest operating systems as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/06/21/making-virtualbox-more-seamless/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting Xorg to Work for Ubuntu 10.04 on the iMac G3</title>
		<link>http://seechrisblog.com/2010/06/04/getting-xorg-to-work-for-ubuntu-10-04-on-the-imac-g/</link>
		<comments>http://seechrisblog.com/2010/06/04/getting-xorg-to-work-for-ubuntu-10-04-on-the-imac-g/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 23:48:47 +0000</pubDate>
		<dc:creator>mrchris</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://seechrisblog.com/?p=105</guid>
		<description><![CDATA[If you feel so inclined to install Ubuntu 10.04 on an iMac G3 you&#8217;ll find that xorg doesn&#8217;t work properly without some adjustment. I found the answer as per this forum post. Create /etc/X11/xorg.conf then paste the contents from below into it. # xorg.conf (X.Org X Window System server configuration file) # # This file [...]]]></description>
			<content:encoded><![CDATA[<p>If you feel so inclined to install Ubuntu 10.04 on an iMac G3 you&#8217;ll find that xorg doesn&#8217;t work properly without some adjustment. I found the answer as per this <a href="http://forums.debian.net/viewtopic.php?f=7&amp;t=36188&amp;p=210546&amp;hilit=imac">forum post</a>.</p>
<p>Create /etc/X11/xorg.conf then paste the contents from below into it.</p>
<p><code># xorg.conf (X.Org X Window System server configuration file)<br />
#<br />
# This file was generated by dexconf, the Debian X Configuration tool, using<br />
# values from the debconf database.<br />
#<br />
# Edit this file with caution, and see the xorg.conf manual page.<br />
# (Type "man xorg.conf" at the shell prompt.)<br />
#<br />
# This file is automatically updated on xserver-xorg package upgrades *only*<br />
# if it has not been modified since the last upgrade of the xserver-xorg<br />
# package.<br />
#<br />
# If you have edited this file but would like it to be automatically updated<br />
# again, run the following command:<br />
#   sudo dpkg-reconfigure -phigh xserver-xorg<br />
Section "InputDevice"<br />
   Identifier   "Generic Keyboard"<br />
   Driver      "kbd"<br />
   Option      "XkbRules"   "xorg"<br />
   Option      "XkbModel"   "pc104"<br />
   Option      "XkbLayout"   "us"<br />
EndSection<br />
Section "InputDevice"<br />
   Identifier   "Configured Mouse"<br />
   Driver      "mouse"<br />
EndSection<br />
Section "Device"<br />
   Identifier   "ATI Technologies Inc Rage 128 RL/VR AGP"<br />
   Driver      "r128"<br />
#   Option      "BusID"      "PCI:0000:00:10.0"<br />
#   Option      "Screen"   "0"<br />
#   Option      "VideoRam"   "128000"<br />
#   Option      "MemBase"   ""<br />
#   Option      "IOBase"   ""<br />
#   Option      "ChipID"   ""<br />
#   Option      "SWcursor"   "on"<br />
   Option      "NoAccel"   "on"<br />
#   Option      "Dac6Bit"   "off"<br />
#   Option      "VideoKey"   ""<br />
#   Option      "Display"   "CRT"<br />
   Option      "UseFBDev"   "on"<br />
#   Option      "VGAAccess"   "off"<br />
EndSection<br />
Section "Monitor"<br />
   Identifier   "Generic Monitor"<br />
   Option      "DPMS"<br />
   HorizSync   59-61<br />
   VertRefresh   75-117<br />
EndSection<br />
Section "Screen"<br />
   Identifier   "Default Screen"<br />
   Device      "ATI Technologies Inc Rage 128 RL/VR AGP"<br />
   Monitor      "Generic Monitor"<br />
   DefaultDepth   24<br />
   SubSection "Display"<br />
      Depth      1<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
   SubSection "Display"<br />
      Depth      4<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
   SubSection "Display"<br />
      Depth      8<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
   SubSection "Display"<br />
      Depth      15<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
   SubSection "Display"<br />
      Depth      16<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
   SubSection "Display"<br />
      Depth      24<br />
      Modes      "1024x768"  "800x600"<br />
   EndSubSection<br />
EndSection </code></p>
<p>That&#8217;s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://seechrisblog.com/2010/06/04/getting-xorg-to-work-for-ubuntu-10-04-on-the-imac-g/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

