<?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/"
	>

<channel>
	<title>Web Expose</title>
	<atom:link href="http://webexpose.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://webexpose.org</link>
	<description>views from the changing web</description>
	<pubDate>Mon, 18 Jul 2011 12:53:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Science of Building a Website</title>
		<link>http://webexpose.org/2011/07/18/the-science-of-building-a-website/</link>
		<comments>http://webexpose.org/2011/07/18/the-science-of-building-a-website/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 12:53:03 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=89</guid>
		<description><![CDATA[When you start a website, you have a lot of things to consider. First of all, you will of course want to choose the proper website hosting company to support you as you begin to build your site; these companies exist solely to support websites and to make the creation process, as well as maintaining [...]]]></description>
			<content:encoded><![CDATA[<p>When you start a website, you have a lot of things to consider. First of all, you will of course want to choose the proper <a href="http://www.networksolutions.com/web-hosting/index.jsp">website hosting</a> company to support you as you begin to build your site; these companies exist solely to support websites and to make the creation process, as well as maintaining your creation, as easy as possible. Once you have picked your website hosting company, you can set about securing your own domain name, and from there can begin to create your website. At this point, you have what amounts to full creative sway over all aspects of your site that fall within your hosting company’s capabilities, and, generally, the complicated and technical sides of things will be of no concern to you. However, for some people, it can be interesting to learn a bit about the underlying foundations of your website, such as systems like MySQL.</p>
<p>MySQL, which is a sort of abbreviation for the casual term “My Sequel” is what is called a “relational database management system” that may be a part of the operating system of your website. In fact, MySQL is used in a number of the Internet’s most popular and most frequently visited websites, such as Google and Facebook, among others. As noted on the MySQL Wikipedia page (incidentally, the Wikipedia website uses MySQL as well), MySQL exists as a server that allows multiple users access to a number of databases. There are different levels or versions of MySQL available, but, for those interested, it is worth knowing that at least a basic version of the MySQL server may be in use when you create a personal website through a popular hosting company.</p>
<p>This is just one of a number of comprehensive computer programs, coding languages, complex servers, etc. that may be a part of the functionality of your website. Ultimately, it is not necessarily required of you (depending on how your domain host works) to understand this side of things, or to be able to make any sense of it. However, for those with more computer experience, or those who simply have an interest in how things work, and not simply what they result in, these sorts of things can be quite interesting. There is, after all, much to learn about the computer science behind all of the creations you conceive of and the changes you implement while designing your own website. In the end, an increased understanding of this computer science will likely help you to be able to understand how to make a better website as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2011/07/18/the-science-of-building-a-website/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL Command Line Tips</title>
		<link>http://webexpose.org/2009/05/13/mysql-command-line-tips/</link>
		<comments>http://webexpose.org/2009/05/13/mysql-command-line-tips/#comments</comments>
		<pubDate>Wed, 13 May 2009 08:58:18 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[mysql cli]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=87</guid>
		<description><![CDATA[Working with MySQL&#8217;s command line shell is sometimes an exercise in patience. Here are some tips to make your life easier:
Display results vertically to avoid line-wrapping
If you do a select * from a table with a lot of columns, you will often end up with the results being wrapped across your terminal, making them just [...]]]></description>
			<content:encoded><![CDATA[<p>Working with MySQL&#8217;s command line shell is sometimes an exercise in patience. Here are some tips to make your life easier:</p>
<h3>Display results vertically to avoid line-wrapping</h3>
<p>If you do a <code>select *</code> from a table with a lot of columns, you will often end up with the results being wrapped across your terminal, making them just about impossible to read. To display the results vertically (i.e. &lt;column&gt;: &lt;value&gt;), end your query with <code>\G</code> instead of <code>;</code></p>
<pre><code>select * from users \G</code></pre>
<h3>Clear the screen</h3>
<p>If you type <code>help</code> it says that <code>\c</code> is the clear command - this is actually something else (I will cover it later). To clear your screen of output and put a fresh <code>mysql></code> at the top, type: <code>\! clear</code> (or on Windows, <code>\! cls</code>).</p>
<h3>Cancel the current command and clear the input</h3>
<p>How often do you type <code>select * fom uesrs</code> or similar? If you are used to Linux, your instinctive response is to press Ctrl-C - unfortunately in older versions of MySQL this will quit the shell and dump you back to bash (or equivalent). Try this instead:</p>
<pre><code>slect * fom typo\c</code></pre>
<p>The input will be cleared and MySQL won&#8217;t display any errors or warnings.</p>
<h3>Edit your last query</h3>
<p>Often you will <code>select *</code> when you don&#8217;t need to, and if it&#8217;s a multi-line query that you have pasted into the shell, it is laborious to fix. Try <code>\e;</code>.</p>
<p>This will open your last run query in whatever text editor you have defined in <code>$EDITOR</code> (vim/nano, etc.). You can then edit your query and then save and exit, and it will execute with the changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2009/05/13/mysql-command-line-tips/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Accessing the clipboard from OS X command-line</title>
		<link>http://webexpose.org/2009/04/22/accessing-the-clipboard-from-os-x-command-line/</link>
		<comments>http://webexpose.org/2009/04/22/accessing-the-clipboard-from-os-x-command-line/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 20:03:43 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[OS X]]></category>

		<category><![CDATA[cli]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=83</guid>
		<description><![CDATA[pbcopy and pbpaste are the OS X alternatives to the POSIX tool xclip.
pbcopy takes the standard input and places it in the specified paste-board. If no pasteboard is specified, the general pasteboard will be used by default.
pbpaste removes the data from the pasteboard and writes it to the standard output.
For example:
user@host:~/Projects/some/dir/that/is/long$ pwd &#124; pbcopy
The working [...]]]></description>
			<content:encoded><![CDATA[<p><code>pbcopy</code> and <code>pbpaste</code> are the OS X alternatives to the POSIX tool <a href="http://linux.die.net/man/1/xclip"><code>xclip</code></a>.</p>
<blockquote><p><strong>pbcopy</strong> takes the standard input and places it in the specified paste-board. If no pasteboard is specified, the general pasteboard will be used by default.</p></blockquote>
<blockquote><p><strong>pbpaste</strong> removes the data from the pasteboard and writes it to the standard output.</p></blockquote>
<p>For example:</p>
<pre><code>user@host:~/Projects/some/dir/that/is/long$ pwd | pbcopy</code></pre>
<p>The working directory is now in your system clipboard, available for you to paste somewhere.</p>
<h3>Additional links</h3>
<ol>
<li>
<a href="http://prefetch.net/blog/index.php/2009/02/13/pbcopy-pbpaste-in-os-x/">pbcopy / pbpaste in OS X</a>
</li>
<li>
<a href="http://sigpipe.macromates.com/2005/10/11/clipboard-access-from-shell-utf-8/">Clipboard access from shell (utf-8)</a>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2009/04/22/accessing-the-clipboard-from-os-x-command-line/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coloured, paged subversion diff output on Linux-like computers</title>
		<link>http://webexpose.org/2009/04/01/coloured-paged-subversion-diff-output-on-linux-like-computers/</link>
		<comments>http://webexpose.org/2009/04/01/coloured-paged-subversion-diff-output-on-linux-like-computers/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 12:54:49 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=81</guid>
		<description><![CDATA[Using subversion from the command line (svn), I often complained (to myself at least) about the bland output from a svn diff command. This isn&#8217;t strictly a subversion problem, since your regular diff gives the same uninspired output.
Here&#8217;s how to add automatic paging and highlight changes in bright colours.
Install colordiff on Ubuntu:
apt-get install colordiff
OS X:
port [...]]]></description>
			<content:encoded><![CDATA[<p>Using subversion from the command line (<code>svn</code>), I often complained (to myself at least) about the bland output from a <code>svn diff</code> command. This isn&#8217;t strictly a subversion problem, since your regular <code>diff</code> gives the same uninspired output.</p>
<p>Here&#8217;s how to add automatic paging and highlight changes in bright colours.</p>
<p>Install colordiff on Ubuntu:</p>
<pre><code>apt-get install colordiff</code></pre>
<p>OS X:</p>
<pre><code>port install colordiff</code></pre>
<p>Make a new file called <code>svndiff</code> with the following inside:</p>
<pre><code>#!/bin/bash
svn diff $* | colordiff | less -r</code></pre>
<p>Make this file executable (<code>chmod +x svndiff</code>) and copy it somewhere in your path (I put it in <code>/usr/local/bin</code>).</p>
<p>The <code>$*</code> bash argument passes any arguments you give the script to the svn diff command, so you can still do things like:</p>
<pre><code>svndiff file1 file2</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2009/04/01/coloured-paged-subversion-diff-output-on-linux-like-computers/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Coolest guy on the internet</title>
		<link>http://webexpose.org/2009/02/02/coolest-guy-on-the-internet/</link>
		<comments>http://webexpose.org/2009/02/02/coolest-guy-on-the-internet/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 10:50:30 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Fun]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=76</guid>
		<description><![CDATA[Friday saw the start of the Coolest guy on the internet SEO competition. This competition is being run internally at MIH, and is based on a popular and humorous phrase that SEO practitioners often try to rank for. 
Here&#8217;s the wise and generally cool Rafiq with some more info.
Coolest Guy on the Internet 
  [...]]]></description>
			<content:encoded><![CDATA[<p>Friday saw the start of the <a href="http://coolestguyontheinternet.synthasite.com/" title="Coolest guy on the internet">Coolest guy on the internet</a> SEO competition. This competition is being run internally at <a href="http://www.mih.com">MIH</a>, and is based on a popular and humorous phrase that SEO practitioners often try to rank for. </p>
<p>Here&#8217;s the <a href="http://www.webaddict.co.za/2009/02/02/coolest-guy-on-the-internet-gbomb/">wise and generally cool Rafiq</a> with some more info.</p>
<p><a title="View Coolest Guy on the Internet on Scribd" href="http://www.scribd.com/doc/11571846/Coolest-Guy-on-the-Internet" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;">Coolest Guy on the Internet</a> <object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_654646142890717" name="doc_654646142890717" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle"	height="500" width="100%"><param name="movie"	value="http://d.scribd.com/ScribdViewer.swf?document_id=11571846&#038;access_key=key-1ltqerqaa6h5uy4zlkzq&#038;page=1&#038;version=1&#038;viewMode="><param name="quality" value="high"><param name="play" value="true"><param name="loop" value="true"><param name="scale" value="showall"><param name="wmode" value="opaque"><param name="devicefont" value="false"><param name="bgcolor" value="#ffffff"><param name="menu" value="true"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><param name="salign" value=""><embed src="http://d.scribd.com/ScribdViewer.swf?document_id=11571846&#038;access_key=key-1ltqerqaa6h5uy4zlkzq&#038;page=1&#038;version=1&#038;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_654646142890717_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"></embed></object>
<div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;">    <a href="http://www.scribd.com/upload" style="text-decoration: underline;">Publish at Scribd</a> or <a href="http://www.scribd.com/browse" style="text-decoration: underline;">explore</a> others:            <a href="http://www.scribd.com/browse/Creative-Writing/Other?style=text-decoration%3A+underline%3B">Other</a>              <a href="http://www.scribd.com/browse/Creative-Writing/?style=text-decoration%3A+underline%3B">Creative Writing</a>                  <a href="http://www.scribd.com/tag/guy" style="text-decoration: underline;">guy</a>              <a href="http://www.scribd.com/tag/Cool" style="text-decoration: underline;">Cool</a>      	</div>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2009/02/02/coolest-guy-on-the-internet/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Python 3.0 + py30-readline on OS X (MacPorts)</title>
		<link>http://webexpose.org/2009/01/01/python-30-py30-readline-on-os-x-macports/</link>
		<comments>http://webexpose.org/2009/01/01/python-30-py30-readline-on-os-x-macports/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 20:35:22 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Code]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[macports]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[readline]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=70</guid>
		<description><![CDATA[Python 3.0 (release) seems to be in MacPorts now, but the py30-readline package fails to build:
--->  Building py30-readline
Error: Target org.macports.build returned: shell command " \
cd "/opt/local/var/macports/build/_opt_local_var_ \
macports_sources_rsync.macports.org_release_ports \
_python_py30-readline/work/Python-3.0/Modules" &#038;&#038; \
/opt/local/Library/Frameworks/Python.framework/ \
Versions/3.0/bin/python3.0 setup.py build " returned \
error 1
Command output: readline.c:396: warning: passing \
argument 1 of 'free' discards qualifiers from pointer \
target type... 
I fixed it [...]]]></description>
			<content:encoded><![CDATA[<p>Python 3.0 (release) seems to be in MacPorts now, but the <code>py30-readline</code> package fails to build:</p>
<pre><code>--->  Building py30-readline
Error: Target org.macports.build returned: shell command " \
cd "/opt/local/var/macports/build/_opt_local_var_ \
macports_sources_rsync.macports.org_release_ports \
_python_py30-readline/work/Python-3.0/Modules" &#038;&#038; \
/opt/local/Library/Frameworks/Python.framework/ \
Versions/3.0/bin/python3.0 setup.py build " returned \
error 1
Command output: readline.c:396: warning: passing \
argument 1 of 'free' discards qualifiers from pointer \
target type... </code></pre>
<p>I fixed it with the following:</p>
<pre><code>sudo port sync
sudo port install readline
sudo port install py30-readline</code></pre>
<p>The last command will cause the error, but will leave the package unarchived in the following directory:</p>
<pre><code>/opt/local/var/macports/build \
/_opt_local_var_macports_sources_rsync. \
macports.org_release_ports_python_py30- \
readline/work/Python-3.0/Modules</code></pre>
<p>Change to this directory and edit <code>setup.py</code>:</p>
<p>Add <code>/opt/local/include</code> and <code>/opt/local/lib</code> to the respective directory arrays at the top of the file, like so:</p>
<pre><code>lib_dirs = [prefix + '/lib', "/opt/local/lib"]</code></pre>
<p>and the same for the include directory. Save and exit the editor and run the port install command again. It should work now. I still got the following error after installation:</p>
<pre><code>Error: Target org.macports.activate returned: Not a directory
Error: Status 1 encountered during processing.</code></pre>
<p>but it didn&#8217;t seem to affect anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2009/01/01/python-30-py30-readline-on-os-x-macports/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Open MacVim tabs from command-line</title>
		<link>http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line/</link>
		<comments>http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 11:41:39 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[OS X]]></category>

		<category><![CDATA[macvim]]></category>

		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=59</guid>
		<description><![CDATA[MacVim takes vim and provides better integration with Apple&#8217;s OS X - I&#8217;ve only just started using it and I am already loving it. Provided along with the application is a wrapper-script written to handle calls from the command-line:
cd project
mvim project_file.php
MacVim supports tabs, but unfortunately calling mvim multiple times from the command-line results in multiple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/macvim/">MacVim</a> takes <code>vim</code> and provides better integration with Apple&#8217;s OS X - I&#8217;ve only just started using it and I am already loving it. Provided along with the application is a wrapper-script written to handle calls from the command-line:</p>
<pre><code>cd project
mvim project_file.php</code></pre>
<p>MacVim supports tabs, but unfortunately calling <code>mvim</code> multiple times from the command-line results in multiple separate windows opening, instead of multiple tabs in one window. I made the following modifications to the <code>mvim</code> script to correct this.</p>
<p>Add the following line to the top of the file, below the commented section:</p>
<pre><code>tabs=true</code></pre>
<p>Replace the <code>if</code> structure at the bottom of the file with the following:</p>
<pre><code># Last step:  fire up vim.
if [ "$gui" ]; then
  if $tabs &#038;&#038; [[ `$binary --serverlist` = "VIM" ]]; then
    exec "$binary" -g $opts --remote-tab-silent ${1:+"$@"}
  else
    exec "$binary" -g $opts ${1:+"$@"}
  fi
else
  exec "$binary" $opts ${1:+"$@"}
fi
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2008/10/13/open-macvim-tabs-from-command-line/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Does subversion support symbolic links?</title>
		<link>http://webexpose.org/2008/10/03/does-subversion-support-symbolic-links/</link>
		<comments>http://webexpose.org/2008/10/03/does-subversion-support-symbolic-links/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 11:00:43 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=57</guid>
		<description><![CDATA[From the Subversion FAQ:
Subversion 1.1 (and later) has the ability to put a symlink under version control, via the usual svn add command.
Details: the Subversion repository has no internal concept of a symlink. It stores a &#8220;versioned symlink&#8221; as an ordinary file with an &#8217;svn:special&#8217; property attached. The svn client (on unix) sees the property [...]]]></description>
			<content:encoded><![CDATA[<p>From the <a href="http://subversion.tigris.org/faq.html#symlinks">Subversion FAQ</a>:</p>
<blockquote><p>Subversion 1.1 (and later) has the ability to put a symlink under version control, via the usual svn add command.</p>
<p>Details: the Subversion repository has no internal concept of a symlink. It stores a &#8220;versioned symlink&#8221; as an ordinary file with an &#8217;svn:special&#8217; property attached. The svn client (on unix) sees the property and translates the file into a symlink in the working copy. Win32 has no symlinks, so a win32 client won&#8217;t do any such translation: the object appears as a normal file.</p></blockquote>
<p>So I tested this with:</p>
<pre><code>cd propsite/tools/library
ln -s ../../config/database.yml .
svn add database.yml
svn ci -m "Symlink test"</code></pre>
<p>And then on the test server:</p>
<pre><code>cd propsite2
svn up
cd tools/library
ls -la</code></pre>
<p>The symlink is there, and correct.</p>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2008/10/03/does-subversion-support-symbolic-links/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Update GetBundle to use a custom subversion binary</title>
		<link>http://webexpose.org/2008/09/24/update-getbundle-to-use-a-custom-subversion-binary/</link>
		<comments>http://webexpose.org/2008/09/24/update-getbundle-to-use-a-custom-subversion-binary/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 13:02:26 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[OS X]]></category>

		<category><![CDATA[getbundle]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=53</guid>
		<description><![CDATA[GetBundle currently ships with it&#8217;s own svn binary from the 1.4 branch, but it is easy enough to make it use a different one.

Open TextMate
Go to TextMate > Preferences > Advanced
Click Shell Variables
Add a new variable called TM_SVN and set it to the path of the binary you want to use

Close the preference pane and [...]]]></description>
			<content:encoded><![CDATA[<p>GetBundle currently ships with it&#8217;s own <code>svn</code> binary from the 1.4 branch, but it is easy enough to make it use a different one.</p>
<ol>
<li>Open TextMate</li>
<li>Go to <b>TextMate</b> > <b>Preferences</b> > <b>Advanced</b></li>
<li>Click <b>Shell Variables</b></li>
<li>Add a new variable called <code>TM_SVN</code> and set it to the path of the binary you want to use</li>
</ol>
<p>Close the preference pane and open the bundle editor.</p>
<p><b>Bundles</b> > <b>Bundle Editor</b> > <b>Show Bundle Editor</b></p>
<p>Expand the GetBundle entry and in <b>Install Bundle</b> and <b>Update Installed Bundles</b> change:</p>
<pre><code>SVN="${TM_BUNDLE_SUPPORT}/bin/svn"</code></pre>
<p>to</p>
<pre><code>SVN=${TM_SVN:-"${TM_BUNDLE_SUPPORT}/bin/svn"}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2008/09/24/update-getbundle-to-use-a-custom-subversion-binary/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Uninstalling subversion (or any package you&#8217;ve compiled manually)</title>
		<link>http://webexpose.org/2008/09/22/uninstalling-subversion-or-any-package-youve-compiled-manually/</link>
		<comments>http://webexpose.org/2008/09/22/uninstalling-subversion-or-any-package-youve-compiled-manually/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 18:07:23 +0000</pubDate>
		<dc:creator>michael</dc:creator>
		
		<category><![CDATA[Hacks]]></category>

		<category><![CDATA[package]]></category>

		<category><![CDATA[source]]></category>

		<category><![CDATA[stow]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[uninstall]]></category>

		<guid isPermaLink="false">http://webexpose.org/?p=47</guid>
		<description><![CDATA[I compiled subversion 1.4.4 and its dependencies (apr, neon) from source when I first got my Macbook, before I had installed MacPorts. Recently I wanted to upgrade to subversion 1.5, and also remove any trace of my previous compile, so I went to my src folder where I had subversion untarred and tried:
~/Documents/src/subversion-1.4.4$ make uninstall
make: [...]]]></description>
			<content:encoded><![CDATA[<p>I compiled subversion 1.4.4 and its dependencies (apr, neon) from source when I first got my Macbook, before I had installed <a href="http://www.macports.org">MacPorts</a>. Recently I wanted to upgrade to subversion 1.5, and also remove any trace of my previous compile, so I went to my <code>src</code> folder where I had subversion untarred and tried:</p>
<pre><code>~/Documents/src/subversion-1.4.4$ make uninstall
make: *** No rule to make target `uninstall'.  Stop.</code></pre>
<p>Checking out a couple forums I found this had been brought up before and people felt that maintaining an uninstall target in the makefile was unwieldly and wouldn&#8217;t be done any time soon. <a href="http://www.gnu.org/software/stow/">GNU Stow</a> was suggested as a package watchdog, but this cannot be applied retroactively obviously.</p>
<p>The best solution came in the form of using <code>gfind</code> (GNU find), which I first had to install:</p>
<pre><code>sudo port install findutils</code></pre>
<p>Then run:</p>
<pre><code>gfind /usr/local -printf '%T@ ' -ls | sort -n > tfiles</code></pre>
<p>This will put a list of all files in <code>/usr/local</code> ordered by their time-modified fields into <code>svnfiles</code>. Opening this file I found the first mention of <code>apr</code> which had a bunch of entries right before <code>neon</code> which came right before <code>libsvn</code> and <code>svn</code>. I extracted all lines referencing the above 3 packages in the same approximate time-frame and saved them to a new file, <code>svnfilelist</code>.</p>
<pre><code>more svnfilelist | awk '{print $12;}' > svnfilenames
more svnfilenames | xargs sudo rm -rf
</code></pre>
<p>Do <b>not</b> do this without editing the file list by hand, otherwise you will delete a lot of things you don&#8217;t want to delete. It&#8217;s not my fault, etc. </p>
]]></content:encoded>
			<wfw:commentRss>http://webexpose.org/2008/09/22/uninstalling-subversion-or-any-package-youve-compiled-manually/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

