<?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>Max Manders &#187; Linux</title>
	<atom:link href="http://maxmanders.co.uk/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://maxmanders.co.uk</link>
	<description>thoughts of a web developer</description>
	<lastBuildDate>Wed, 04 Apr 2012 19:50:12 +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>Quick Wiki With Vim And Dropbox</title>
		<link>http://maxmanders.co.uk/2012/04/04/quick-wiki-with-vim-and-dropbox/</link>
		<comments>http://maxmanders.co.uk/2012/04/04/quick-wiki-with-vim-and-dropbox/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 19:50:12 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=528</guid>
		<description><![CDATA[I&#8217;m a big fan of Wikis. I like the idea of being able to dump my brain somewhere that I can keep organised, and access anywhere. If I don&#8217;t have to juggle something in my mind, it&#8217;s one less thing for me to worry about. There are lots of applications out there that let you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big fan of Wikis. I like the idea of being able to dump my brain somewhere that I can keep organised, and access anywhere. If I don&#8217;t have to juggle something in my mind, it&#8217;s one less thing for me to worry about. There are lots of applications out there that let you manage a list of tasks, todo lists etc., but I like the flexibility a Wiki affords me to readily organise larger amounts of information.</p>
<p>I&#8217;ve tried various web based solutions for the obvious benefit that I can access them everywhere, however since I spend a lot of my time in Vim, I wanted something that doesn&#8217;t involve a browser, yet offers the same flexibility and access-everywhere (well, where there&#8217;s Vim) that a web based wiki offers.</p>
<p>That&#8217;s where <a title="Vimwiki" href="http://code.google.com/p/vimwiki/">Vimwiki</a> comes in. Vimwik is a Vimball that, once installed, allows you to create linked documents using a similar syntax to Markdown, Restructed Text etc. By default, it creates a &#8216;vimwiki&#8217; directory in your home directory. I simply moved that directory to my Dropbox and created a symlink to my home directory.</p>
<p>It also features commands to export one or all pages to linked, local HTML files and allows you to create multiple separate wikis if you want. If, like me, you&#8217;re a fan of Vim and wikis, give it a shot!</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2012/04/04/quick-wiki-with-vim-and-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Missing LaTeX &#8216;Glossaries&#8217; Package In Ubuntu</title>
		<link>http://maxmanders.co.uk/2012/01/05/missing-ubuntulatex-glossaries/</link>
		<comments>http://maxmanders.co.uk/2012/01/05/missing-ubuntulatex-glossaries/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 22:54:10 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=482</guid>
		<description><![CDATA[I had cause to use the glossaries package in LaTeX today to take care of all my glossary management needs.  The idea of being able to create an external file to define all of my acronyms and definitions, and then include them as required in a separate section that is automatically included in a table [...]]]></description>
			<content:encoded><![CDATA[<p>I had cause to use the <code>glossaries</code> package in <code>LaTeX</code> today to take care of all my glossary management needs.  The idea of being able to create an external file to define all of my acronyms and definitions, and then include them as required in a separate section that is automatically included in a table of contents is very appealing.  Unfortunately, the <code>glossaries</code> package isn&#8217;t installed as part of the Ubuntu <code>texlive-latex-*</code> packages, nor is it separately installable via Aptitude.<span id="more-482"></span>  I had expected that something as common as glossary management would be included, bud sadly that&#8217;s not the case.</p>
<p>Thankfully, the TexLive installation is quite modular, and it&#8217;s relatively straight forward to install new environments and packages. Through trial and error, I&#8217;ve discovered the missing packages required to use <code>glossaries</code> are: <code>glossary</code>, <code>glossaries</code>, <code>xfor</code> and <code>etoolbox</code>.</p>
<p>Firstly, we need to find the location to install local <code>tex</code> packages</p>
<pre class="brush: bash">[max@dolphin ~] $ kpsewhich -expand-var "\$TEXMFLOCAL"
/usr/local/share/texmf</pre>
<p>Now that we know where to install the packages, we can download and install them. The following redacted typescript will download and extract the packages to the appropriate local location and rebuild the <code>LaTeX</code> package map.</p>
<pre class="brush: bash">[max@dolphin ~] $ wget http://mirror.ctan.org/macros/latex/contrib/glossary.zip -P /tmp/
[max@dolphin ~] $ wget http://mirrors.ctan.org/install/macros/latex/contrib/glossaries.tds.zip -P /tmp/
[max@dolphin ~] $ wget http://mirrors.ctan.org/install/macros/latex/contrib/xfor.tds.zip -P /tmp/
[max@dolphin ~] $ wget http://mirrors.ctan.org/install/macros/latex/contrib/etoolbox.tds.zip -P /tmp/
[max@dolphin ~] $ sudo unzip /tmp/glossaries.tds.zip -d /usr/local/share/texmf
[max@dolphin ~] $ sudo unzip /tmp/xfor.tds.zip -d /usr/local/share/texmf
[max@dolphin ~] $ sudo unzip /tmp/etoolbox.tds.zip -d /usr/local/share/texmf
[max@dolphin ~] $ sudo mkdir -p /usr/local/share/texmf/tex/latex/{contrib,html}
[max@dolphin ~] $ cd /tmp/
[max@dolphin ~] $ unzip glossary.zip &amp;&amp; cd glossary
[max@dolphin glossary] $ latex glossary.ins
[max@dolphin glossary] $ sudo cp glossary.sty /usr/local/share/texmf/tex/latex/contrib/
[max@dolphin glossary] $ sudo cp glossary.perl /usr/local/share/texmf/tex/latex/html/
[max@dolphin glossary] $ cd /usr/local/share/texmf/
[max@dolphin glossary] $ sudo texhash</pre>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2012/01/05/missing-ubuntulatex-glossaries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSMTP Local MTA Using Google Apps Account</title>
		<link>http://maxmanders.co.uk/2011/09/22/ssmtp-local-mta-using-google-apps-account/</link>
		<comments>http://maxmanders.co.uk/2011/09/22/ssmtp-local-mta-using-google-apps-account/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 09:05:38 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=411</guid>
		<description><![CDATA[While there are plenty of MTAs out there, I find it quite handy to have SSMTP installed locally; it&#8217;s quick to install and configure and lacks some of the overhead of a more enterprise MTA such as Sendmail, Postfix, Exim etc.  The following assumes you have a &#8220;Google Apps for Domains&#8221; user account &#8212; ssmtp_user@domain.com &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>While there are plenty of MTAs out there, I find it quite handy to have SSMTP installed locally; it&#8217;s quick to install and configure and lacks some of the overhead of a more <em>enterprise</em> MTA such as Sendmail, Postfix, Exim etc.  The following assumes you have a &#8220;Google Apps for Domains&#8221; user account &#8212; ssmtp_user@domain.com &#8212; through which you will relay all email.  Additionally, the steps below work on Ubuntu 10.10, similar steps should work on other distributions.</p>
<p><strong>Install SSMTP</strong></p>
<pre class="brush: bash">
sudo apt-get install ssmtp
</pre>
<p><strong>Edit configuration in /etc/ssmtp/ssmtp.conf</strong></p>
<pre class="brush: bash">
# Backup the original first
sudo cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.out
# Truncate the file and add the following
mailhub=smtp.gmail.com:587
hostname=ssmtp_user@domain.com
root=ssmtp_user@domain.com
AuthUser=ssmtp_user@domain.com
AuthPass=<ssmtp_user_password>
UseSTARTTLS=yes
UseTLS=yes
FromLineOverride=yes
</pre>
<p><strong>Edit revaliases map in /etc/ssmtp/revaliases.conf</strong></p>
<pre class="brush: bash">
# Add a line for each local user who should be able to send email
root:smtp_user@domain.com:smtp.gmail.com:587
max:smtp_user@domain.com:smtp.gmail.com:587
</pre>
<p><strong>Send Email!</strong><br />
You should now be able to send email, e.g. from the shell using</p>
<pre class="brush: bash">
echo "Testing" | mail -s "Test Email" someone@example.com
</pre>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2011/09/22/ssmtp-local-mta-using-google-apps-account/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automating Internet Explorer VPC Images On VirtualBox</title>
		<link>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/</link>
		<comments>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 21:55:05 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=306</guid>
		<description><![CDATA[In order to facilitate testing of websites in different browsers, Microsoft have released what they call their &#8216;Application Compatibility Virtual PC Images&#8216;.  These time-limited V12n solutions are great for quickly bringing up a VM for a particular version of Internet Explorer but they are built for Microsoft&#8217;s Virtual PC (VPC) software. I work predominantly with Linux and [...]]]></description>
			<content:encoded><![CDATA[<p>In order to facilitate testing of websites in different browsers, Microsoft have released what they call their &#8216;<a title="Microsoft Application Compatibility VPC Images" href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;displaylang=en" target="_blank">Application Compatibility Virtual PC Images</a>&#8216;.  These time-limited <a title="Virtualization (V12n)" href="en.wikipedia.org/wiki/Virtualization" target="_blank">V12n</a> solutions are great for quickly bringing up a VM for a particular version of Internet Explorer but they are built for Microsoft&#8217;s Virtual PC (VPC) software.</p>
<p>I work predominantly with Linux and use <a title="Virtual Box" href="http://www.virtualbox.org" target="_blank">Virtual Box</a> as my V12n application of choice.  Later versions of Virtual Box support VPC&#8217;s VHD disk image format.  This means it&#8217;s possible to run these VPC images under VirtualBox, but it involves downloading and extracting files from the win32 executables; downloading drivers for the ethernet adapter and other time consuming steps that I&#8217;d rather not repeat every time my IE VM expires.  I&#8217;m a programmer, therefore I&#8217;m lazy and don&#8217;t like doing things more than once; I&#8217;d rather script something to do it for me.  In keeping with this virtue, I&#8217;ve written <a title="msie2vbox" href="http://maxmanders.co.uk/msie2vbox">msie2vbox</a> to automate this stuff for me.  It&#8217;s on <a title="msie2vbox on Github" href="https://github.com/maxmanders/msie2vbox/" target="_blank">Github</a> with a GPLv3 license.  There&#8217;s some outstanding todo items but it does the job for me, and I thought it might be of use to others.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2011/03/06/automating-internet-explorer-vpc-images-on-virtualbox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Manage Your Home Directory With Subversion</title>
		<link>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/</link>
		<comments>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 21:16:28 +0000</pubDate>
		<dc:creator>maxmanders</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxmanders.co.uk/?p=275</guid>
		<description><![CDATA[Revision control systems serve their purpose well for managing codebases, but they can also be used to good effect for configuration management.  I&#8217;ll discuss how I&#8217;ve used Subversion to manage the configuration of my home directory.  The same goal could probably be achieved just as easily with Git.  While I use Git and Github for [...]]]></description>
			<content:encoded><![CDATA[<p>Revision control systems serve their purpose well for managing codebases, but they can also be used to good effect for configuration management.  I&#8217;ll discuss how I&#8217;ve used Subversion to manage the configuration of my home directory.  The same goal could probably be achieved just as easily with Git.  While I use Git and Github for personal projects, I have employed this solution at work where we use Subversion.<span id="more-275"></span></p>
<p>I&#8217;m often jumping on and off of a number of different servers where I use a variety of programs such as Gnu Screen and Vim.  If I tweak <em>~/.vimrc</em> for example, I have to remember to copy the changed file to all of the other servers I use, which is a pain.  I could request that home directories be auto-mounted using autofs, but this solution is something I can implement myself in isolation without effecting any other users.  The idea is to store configuration files in SVN so that when I make a change on one server, I can push that change to SVN and pull the change down to any other server I happen to be on.  The approach I&#8217;m taking here is to have a local working copy in my home directory, and to have configuration files symlinked into that working copy.  This could be made more flexible by having different configurations stored in a separate branch and switching branches depending on your needs.</p>
<p>I&#8217;m sure there are better ways to do this, such as having the entire home directory in subversion, and automatically updated on login.  Perhaps you could use SVN externals to provide a modular approach to managing your configuration.  The great thing about SVN, and more generally Linux is that there are plenty of different ways to achieve your goal.</p>
<p>Before I go on, I&#8217;ve made a few assumptions based on my server configuration &#8211; Ubuntu 10.04 with Apache 2.2.14 and Subversion already installed.  The first thing we need to do is enable SVN over HTTP.</p>
<pre class="brush: bash">sudo apt-get install libapache2-svn</pre>
<p>Once installed, we need to configure the module in <em>/etc/apache2/mods-enabled/dav_svn.conf<br />
</em></p>
<pre class="brush: bash">
DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user</pre>
<p>This configuration will allow you to refer to your repositories via e.g. http://example.com/svn, where the actual location of your repositories on the filesystem is <em>/var/lib/svn</em>.  We&#8217;re also using basic authentication here, so we&#8217;ll need to add a valid user.</p>
<pre class="brush: bash">sudo htpasswd -c /etc/apache2/dav_svn.passwd username</pre>
<p>Next, we need to create our SVN directory and create a first repository</p>
<pre class="brush: bash">sudo mkdir -p /var/lib/svn
sudo svnadmin create /var/lib/svn/homedir
sudo chown -R :www-data /var/lib/svn
sudo chmod 700 /var/lib/svn
sudo chmod -R 755 /var/lib/svn/homedir
</pre>
<p>Now, on a server that has a good baseline set of configuration files, we can check out a working copy</p>
<pre class="brush: bash">svn co http://example.com/svn/homedir .</pre>
<p>Add some configuration files</p>
<pre class="brush: bash">cp ~/.bashrc ~/.vimrc ~/.vimrc ~/homedir
cd ~/homedir
svn st | awk '/\?/ {print $2}' | xargs svn add
svn commit -m "Initial Commit"</pre>
<p>We can now symlink our files to those in the working copy</p>
<pre class="brush: bash">ln -sf ~/homedir/.bashrc ~/.bashrc
ln -sf ~/homedir/.vimrc ~/.vimrc
ln -sf ~/homedir/.screenrc ~/.screenrc</pre>
<p>If we do this on all the servers we use, we can make a change in one place, commit it to SVN, and then update our working copy somewhere else to get the most up-to-date version of the files.  As I said before, I&#8217;m sure this can be enhanced and tweaked to be more efficient, but this serves my needs for now.</p>
]]></content:encoded>
			<wfw:commentRss>http://maxmanders.co.uk/2010/10/14/manage-your-home-directory-with-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

