<?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>david winter &#187; uni</title>
	<atom:link href="http://davidwinter.me.uk/articles/tag/uni/feed/" rel="self" type="application/rss+xml" />
	<link>http://davidwinter.me.uk</link>
	<description>you were expecting someone else?</description>
	<lastBuildDate>Mon, 28 Jun 2010 20:37:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Line breaks in OpenOffice.org</title>
		<link>http://davidwinter.me.uk/articles/2007/05/21/line-breaks-in-openofficeorg/</link>
		<comments>http://davidwinter.me.uk/articles/2007/05/21/line-breaks-in-openofficeorg/#comments</comments>
		<pubDate>Mon, 21 May 2007 10:10:23 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[openoffice.org]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://davidwinter.me.uk/articles/2007/05/21/line-breaks-in-openofficeorg/</guid>
		<description><![CDATA[A really frustrating issue I had when writing my project report, was that of dealing with source code formatting. I had created a new style for source code similar to that I use on my blog; a box with a border and coloured background. The problem I was having was when pasting source code into [...]]]></description>
			<content:encoded><![CDATA[<p>A really frustrating issue I had when writing my project report, was that of dealing with source code formatting. </p>

<p>I had created a new style for source code similar to that I use on my blog; a box with a border and coloured background. The problem I was having was when pasting source code into the document. Each line had a <em>paragraph</em> break between itself and the next, which meant that there was a spacing between each. To fix this, I had to insert a manual <em>line</em> break between each line. Luckily I found a shortcut to pull this off, which was <code>Shift</code> + <code>Enter</code>.</p>

<p>Does anyone know of an easier way of pasting in text and using line breaks rather than paragraph breaks?</p>
]]></content:encoded>
			<wfw:commentRss>http://davidwinter.me.uk/articles/2007/05/21/line-breaks-in-openofficeorg/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Graphviz&#8211;for drawing directed graphs</title>
		<link>http://davidwinter.me.uk/articles/2007/03/14/graphviz-for-drawing-directed-graphs/</link>
		<comments>http://davidwinter.me.uk/articles/2007/03/14/graphviz-for-drawing-directed-graphs/#comments</comments>
		<pubDate>Wed, 14 Mar 2007 20:11:56 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[apps]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[uni]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://davidwinter.me.uk/articles/2007/03/14/graphviz-for-drawing-directed-graphs/</guid>
		<description><![CDATA[This semester at University, I&#8217;m taking &#8216;Compiler Design &#38; Techniques&#8217; as a module. The second coursework involves drawing Finite State Machines diagrams that represent regular expressions. Rather than using a word processor to draw these diagrams with a rather untidy look about them, I went in search of a tool that&#8217;d help me produce high [...]]]></description>
			<content:encoded><![CDATA[<p>This semester at University, I&#8217;m taking &#8216;Compiler Design &amp; Techniques&#8217; as a module. The second coursework involves drawing <a href="http://en.wikipedia.org/wiki/Finite_state_machines">Finite State Machines</a> diagrams that represent regular expressions. Rather than using a word processor to draw these diagrams with a rather untidy look about them, I went in search of a tool that&#8217;d help me produce high quality drawings. I&#8217;d heard that Latex was good for mathematical diagrams, but that seemed like overkill as I only wanted the diagrams, not a whole new document syntax to learn.</p>

<p><span id="more-61"></span></p>

<p>I come across <a href="http://www.graphviz.org/">Graphviz</a>. Open source and available on near enough all platforms&#8211;<a href="http://www.ryandesign.com/graphviz/">Mac</a>, <a href="http://www.graphviz.org/Download_linux.php">Linux</a> and <a href="http://www.graphviz.org/Download_windows.php">Windows</a>. Using a very simple syntax, you create <code>dot</code> files and then using the <code>dot</code> tool, you can generate PNG images of your diagrams.</p>

<p>Here is an example <code>dot</code> script:</p>

<pre><code>digraph my_fsm {
    label = "ab*(cd)+|b";
    rankdir = LR;
    node [shape = doublecircle]; 3 4;
    node [shape = circle];
    0 -&gt; 1 [label = "a"];
    1 -&gt; 1 [label = "b"];
    1 -&gt; 2 [label = "c"];
    2 -&gt; 3 [label = "d"];
    3 -&gt; 2 [label = "c"];
    0 -&gt; 4 [label = "b"];
}
</code></pre>

<p>Following is an explanation of the above script:</p>

<ol>
<li>I&#8217;m declaring the graph as a directed graph with <code>digraph</code>.</li>
<li><code>my_fsm</code> is just the name I&#8217;ve given the graph. This can be anything.</li>
<li>I add a label to the graph which holds the regular expression that I&#8217;m drawing. This isn&#8217;t required, but just helps by giving it a title.</li>
<li><code>rankdir</code> specifies the direction of the diagram. I&#8217;m specifying &#8216;left to right&#8217; with <code>LR</code>.</li>
<li>So that I can differentiate between accepting states and normal states, I&#8217;m declaring that nodes 3 and 4 will have a double circle around them.</li>
<li>For all other nodes, I just want to use the normal <code>circle</code> shape.</li>
<li>Lastly, I declare the nodes and their edges. Also, I add a label to each edge.</li>
</ol>

<p>Once you save the file, you can run it through the <code>dot</code> program using the following command:</p>

<pre><code>dot my_file.dot -Tpng -o my_fsm.png
</code></pre>

<p>You&#8217;ll need to check where <code>dot</code> was installed. With the Mac installer package it is installed to <code>/usr/local/graphviz-2.12/bin/dot</code>, so you&#8217;ll need to modify the above command to reflect the correct location.</p>

<p>The outputted file, <code>my_fsm.png</code> in this example, should result in something that looks like the one below.</p>

<p><img src="http://davidwinter.me.uk/wp-content/uploads/2007/03/my_fsm.png" alt="Finite State Machine Example" /></p>

<p>A very handy tool indeed. There is a <a href="http://www.graphviz.org/Documentation/dotguide.pdf">PDF guide</a> on all the commands available. Of which, I&#8217;m next going to look for how to space the graph out a bit more as it&#8217;s a little squashed at the moment.</p>

<p>Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidwinter.me.uk/articles/2007/03/14/graphviz-for-drawing-directed-graphs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Access Control for Subversion with Apache2 and Authz</title>
		<link>http://davidwinter.me.uk/articles/2006/03/03/access-control-for-subversion-with-apache2-and-authz/</link>
		<comments>http://davidwinter.me.uk/articles/2006/03/03/access-control-for-subversion-with-apache2-and-authz/#comments</comments>
		<pubDate>Fri, 03 Mar 2006 09:05:03 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://davidwinter.me.uk/articles/2006/10/13/access-control-for-subversion-with-apache2-and-authz/</guid>
		<description><![CDATA[My group project at University now consists of three smaller projects that provide an overall RSS service. I want to let the guys work on these, while still letting me keep my other coursework jut accessible to me. At the moment, I just have basic http authentication set-up which isn&#8217;t so great for pulling off [...]]]></description>
			<content:encoded><![CDATA[<p>My group project at University now consists of three smaller projects that provide an overall RSS service. I want to let the guys work on these, while still letting me keep my other coursework jut accessible to me. At the moment, I just have basic http authentication set-up which isn&#8217;t so great for pulling off what I want. </p>

<p>Please welcome on stage the Apache2 mod, <code>authz_svn</code>&#8230;</p>

<p><span id="more-22"></span></p>

<p>If you followed my other <a href="http://davidwinter.me.uk/articles/2006/02/16/subversion-over-apache-2-on-ubuntu">howto</a>, you&#8217;ll have all the pre-requisites for this.</p>

<p>First of all, we need to create an Access Control file.</p>

<pre><code>sudo nano /etc/apache2/svn_access_control
</code></pre>

<p>In this file, you&#8217;ll want to put some rules. I&#8217;ll first of all go over these and then provide some examples.</p>

<h3>Permissions</h3>

<p>There are only two types of permission:</p>

<ul>
<li>Read only &#8211; <code>r</code> &#8211; a user can check-out a copy of a project.</li>
<li>Read and Write &#8211; <code>rw</code> &#8211; a user can check-out and commit changes to a project.</li>
</ul>

<h3>Users</h3>

<p>These are the same usernames that you have set in your password file that you created in the previous <a href="http://davidwinter.me.uk/articles/2006/02/16/subversion-over-apache-2-on-ubuntu">howto</a>. You can always add more users to this file using:</p>

<pre><code>sudo htpasswd2 -m /etc/apache2/dav_svn.passwd bill
</code></pre>

<p>When prompted, enter the password for the user.</p>

<h3>Repository Location</h3>

<p>You specify the above rules in certain locations for the repository. These go between square brackets.</p>

<pre><code>[/]
</code></pre>

<p>The above will specify rules for the root of the repository.</p>

<pre><code>[/wowapp/trunk]
</code></pre>

<p>The above will specify rules for a project named &#8216;wowapp&#8217; in the trunk location.</p>

<h3>User Groups</h3>

<p>You can create groups of users and then use those for rules. You do this under a special heading in square brackets:</p>

<pre><code>[groups]
mygroup = dave, mike
</code></pre>

<p>This will create a group called &#8216;mygroup&#8217; which &#8216;dave&#8217; and &#8216;mike&#8217; belongs to.</p>

<p>And now for some examples.</p>

<h3>Examples</h3>

<pre><code>[groups]
team = bob, bill
devteam = bob, barry, brett

[/]
@team = r
bob = rw

[/wowapp/trunk]
@team = r
@devteam = rw
brenda = rw
</code></pre>

<p>In this example:</p>

<ul>
<li>Created a group <code>team</code> which has two members; <code>bob</code> and <code>bill</code>.</li>
<li>Created another group, called <code>devteam</code> which has three members; <code>bob</code>, <code>barry</code>, <code>brett</code>.</li>
<li>In the root of the repository, I&#8217;ve given the group <code>team</code> read permissions.</li>
<li>Also, in the root, <code>bob</code> has read and write permissions.</li>
<li>In the trunk of <code>wowapp</code>, the group <code>team</code> has read permission. </li>
<li>Also, the <code>devteam</code> group has read and write permissions.</li>
<li>And another user, called <code>brenda</code> has read and write permissions.</li>
</ul>

<p>Once you&#8217;ve created your desired access controll file, save the changes in nano by hitting <code>CTRL O</code>, hit enter to save the name, then <code>CTRL X</code> to quit Nano.</p>

<p>We just need to now link this access control file with our Subversion set-up.</p>

<pre><code>sudo nano /etc/apache2/mods-enabled/dav_svn.conf
</code></pre>

<p>Here&#8217;s the example from the previous how-to:</p>

<pre><code>&lt;Location /svn&gt;
  DAV svn
  SVNPath /home/svn

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
&lt;/Location&gt;
</code></pre>

<p>All you need to add is the following line:</p>

<pre><code>AuthzSVNAccessFile /etc/apache2/svn_access_control
</code></pre>

<p>So that the file looks like this:</p>

<pre><code>&lt;Location /svn&gt;
  DAV svn
  SVNPath /home/svn

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd

  AuthzSVNAccessFile /etc/apache2/svn_access_control

  Require valid-user
&lt;/Location&gt;
</code></pre>

<p>Save the file, and then restart Apache2:</p>

<pre><code>sudo /etc/init.d/apache2 restart
</code></pre>

<p>You should now have access control working for Subversion over Apache2.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidwinter.me.uk/articles/2006/03/03/access-control-for-subversion-with-apache2-and-authz/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Using IRC and other IM apps at University</title>
		<link>http://davidwinter.me.uk/articles/2006/02/06/using-irc-and-other-im-apps-at-university/</link>
		<comments>http://davidwinter.me.uk/articles/2006/02/06/using-irc-and-other-im-apps-at-university/#comments</comments>
		<pubDate>Mon, 06 Feb 2006 08:59:31 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[uni]]></category>

		<guid isPermaLink="false">http://davidwinter.me.uk/articles/2006/10/13/using-irc-and-other-im-apps-at-university/</guid>
		<description><![CDATA[At University, they&#8217;ve blocked ports for all IM applications, including IRC. This sucks, because IRC can actually be really helpful for asking for advice on things such as C++ or C. Also, our computing society has an IRC channel (#wmin-compsoc on Quakenet) and it was a real pain that we couldn&#8217;t communicate with members at [...]]]></description>
			<content:encoded><![CDATA[<p>At University, they&#8217;ve blocked ports for all IM applications, including IRC. This sucks, because IRC can actually be really helpful for asking for advice on things such as C++ or C. Also, our computing society has an IRC channel (#wmin-compsoc on Quakenet) and it was a real pain that we couldn&#8217;t communicate with members at the University.</p>

<p>I&#8217;d seen Douglas Bowman&#8217;s &#8220;how-to&#8221; on <a href="http://www.stopdesign.com/log/2005/02/07/secure-email.html">secure email</a> using SSH tunnelling and thought that perhaps I could use this to get around the problem I was having. And, I&#8217;d be right in thinking that.</p>

<p><span id="more-14"></span></p>

<h4>SSH rocks</h4>

<p>I can&#8217;t stress how cool SSH is &#8211; it let&#8217;s me control my iMac at home while I&#8217;m at Uni, I can transfer my files backwards and forwards and <em>now</em> lets me connect to IRC.</p>

<p>On my iBook that I use at Uni, I&#8217;ve got <a href="http://colloquy.info">Colloquy</a> as my preferred IRC client. In the Terminal on my iBook I enter in:</p>

<pre><code>ssh -N -L 6668:irc.quakenet.org:6667 davidwinter@xxx.xxx.xxx.xxx
</code></pre>

<p>Where <code>xxx.xxx.xxx.xxx</code> is the IP address of my home computer.</p>

<p>Once you&#8217;ve entered this command, entered your password for the SSH connection &#8211; leave the Terminal window open. When you&#8217;re finished, hit Control C to quit SSH.</p>

<p>In Colloquy, I create a new connection with the following details:
* Chat Server: localhost
* Chat Server Port :6668</p>

<p>Connect using those details, and then you should be able to join <code>#wmin-compsoc</code> perfectly.</p>

<p>Problem solved. I&#8217;ll try briefly to explain what the <code>ssh</code> command does. 
1. First of all, we want a <code>ssh</code> connection, but without a shell prompt of the computer we&#8217;re connecting to. That&#8217;s what the <code>-N</code> flag is for. 
2. <code>-L</code> flags this as a local port tunnel. 
3. You then first specify the port that you&#8217;ll use on the computer your using (in my case, my iBook) to tunnel out of the network you&#8217;re currently connected to.
4. Then the server/IP address you want to access.
5. Then the IP address that you&#8217;d normally connect to if you weren&#8217;t having a firewall issue. For IRC, this is 6667.
6. Then you follow all of the above with the SSH connection, which in my case is to my iMac at home. The first part being my username on the computer, and then the IP address.</p>

<p>Basically, my iMac at home is being used as a bridge between Quakenet and the network at University. The whole connection is secure as it&#8217;s being encrypted over ssh. So, there&#8217;s no vulnerability for the University&#8217;s network technicians to worry about.</p>

<p>Obviously for this all to work, you need some kind of &#8216;bridge&#8217; computer online that you can connect to. Otherwise this isn&#8217;t going to work.</p>

<p>Also, this could be used for getting around other kinds of firewall blocked applications. However, remember the connection will be significantly slower as first of all, it&#8217;s all being encrypted, and secondly because it&#8217;s having to go via a bridge computer.</p>

<h4>Meebo!</h4>

<p>As I said, I could use ssh port tunnelling to connect to MSN, iChat etc. But why bother when I can use the very cool <a href="http://meebo.com">Meebo</a>. It&#8217;s a Web 2.0 application that let&#8217;s you connect to MSN, AIM, Yahoo! and Jabber instant messaging servers all at the same time, and simply through a web site. No need to download any software. Excellent.</p>
]]></content:encoded>
			<wfw:commentRss>http://davidwinter.me.uk/articles/2006/02/06/using-irc-and-other-im-apps-at-university/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
