<?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>sleepydisco</title>
	<atom:link href="http://www.sleepydisco.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sleepydisco.com</link>
	<description>A blog about technology, music, food and photography.</description>
	<lastBuildDate>Sun, 24 Jan 2010 17:33:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Chicken Mulligatawny Soup</title>
		<link>http://www.sleepydisco.com/food/chicken-mulligatawny-soup</link>
		<comments>http://www.sleepydisco.com/food/chicken-mulligatawny-soup#comments</comments>
		<pubDate>Sun, 17 Jan 2010 13:33:18 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[healthy]]></category>
		<category><![CDATA[mulligatawny]]></category>
		<category><![CDATA[recipe]]></category>
		<category><![CDATA[soup]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=260</guid>
		<description><![CDATA[I came up with this as a variation on a curry recipe. I think it&#8217;s worked pretty well.

Ingredients:

1 tsp groundnut oil (or vegetable oil)
2 medium onions, roughly chopped
2cm piece of ginger, finely chopped
2 cloves garlic, crushed/finely chopped/whatever
4 small carrots, halfed lengthwise and finely sliced
1 tsp garam masala
1 tsp curry powder
1 tsp dried coriander leaves
1/2 tsp [...]]]></description>
			<content:encoded><![CDATA[<p>I came up with this as a variation on a curry recipe. I think it&#8217;s worked pretty well.</p>
<p><img class="size-medium wp-image-301 alignnone" title="Chicken Mulligatawny Soup" src="http://www.sleepydisco.com/wp-content/uploads/2010/01/chicken-mulligatawny-300x199.jpg" alt="A bowl of Chicken Mulligatawny Soup" width="300" height="199" /></p>
<p><span id="more-260"></span>Ingredients:</p>
<ul id="ingred">
<li>1 tsp groundnut oil (or vegetable oil)</li>
<li>2 medium onions, roughly chopped</li>
<li>2cm piece of ginger, finely chopped</li>
<li>2 cloves garlic, crushed/finely chopped/whatever</li>
<li>4 small carrots, halfed lengthwise and finely sliced</li>
<li>1 tsp garam masala</li>
<li>1 tsp curry powder</li>
<li>1 tsp dried coriander leaves</li>
<li>1/2 tsp ground cinnamon</li>
<li>1/2 tsp turmeric</li>
<li>2 chillies (or just the one if you&#8217;re not wanting it too hot) finely sliced</li>
<li>75g Greek yoghurt</li>
<li>2 large (bonless and skinless) chicken thighs (approx 250g), chopped into small 2cm-ish chunks</li>
<li>800ml chicken stock</li>
<li>50g (uncooked) basmati rice</li>
<li>cornflour to thicken (optional)</li>
</ul>
<p>Start by heating the oil in a medium-large pan, and sweat off the onions for about 5 minutes. Add the garlic, ginger, carrot and half of the chilli, and cook for 2-3 more minutes. Transfer about 2/3-3/4 of the mixture to a small blender, and with a bit of water added, blend until you get a very smooth paste. Return the paste back to the pan, add all of the spices, and cook for a couple more minutes. Stir in the yoghurt (a small amount at a time, so that it doesn&#8217;t split), followed by the chicken and cook slowly until not-quite bubbling, before adding the rice and stock. Cook for ten minutes, or so, until the rice and chicken is cooked. If the sauce is too thin, add a couple of teaspoons of cornflour let down with a small amount of warm water, and stir into the soup.</p>
<p>Serves 4, and if you&#8217;re counting, each serving weighs in at a fairly lean 225 calories</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/food/chicken-mulligatawny-soup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wallpaper #1 / Jeremy</title>
		<link>http://www.sleepydisco.com/photography/wallpapers/1-jeremy</link>
		<comments>http://www.sleepydisco.com/photography/wallpapers/1-jeremy#comments</comments>
		<pubDate>Sat, 16 Jan 2010 16:11:18 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Wallpapers]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[jeremy]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=282</guid>
		<description><![CDATA[Jeremy was dicking about, being a douche, but I got him up close and personal.
Download:
1440 x 900
]]></description>
			<content:encoded><![CDATA[<p><a title="That Cat Jeremy" href="http://twitter.com/thatcatjeremy">Jeremy</a> was dicking about, being a douche, but I got him up close and personal.</p>
<p><a href="http://www.sleepydisco.com/wp-content/uploads/2010/01/jeremy.jpg"><img class="alignleft size-medium wp-image-283" title="Jeremy - Wallpaper #1" src="http://www.sleepydisco.com/wp-content/uploads/2010/01/jeremy-300x187.jpg" alt="Cat nose and whiskers - Desktop wallpaper" width="300" height="187" /></a>Download:<a title="1440x900" href="../wp-content/uploads/2010/01/jeremy.jpg"><br />
1440 x 900</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/photography/wallpapers/1-jeremy/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Social Network in the Music Blogosphere</title>
		<link>http://www.sleepydisco.com/computer-science/social-network-in-the-music-blogosphere</link>
		<comments>http://www.sleepydisco.com/computer-science/social-network-in-the-music-blogosphere#comments</comments>
		<pubDate>Sat, 16 Jan 2010 13:39:15 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[msc]]></category>
		<category><![CDATA[network theory]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[recommendation]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/everything-else/master</guid>
		<description><![CDATA[About this time last year, I was busy putting the finishing touches to a data harvesting program which would go off to the internet and grab posts from music blogs when notified of updates via a feed. The motivation was my MSc Computer Science project, at the time untitled, and without much of a plan [...]]]></description>
			<content:encoded><![CDATA[<p>About this time last year, I was busy putting the finishing touches to a data harvesting program which would go off to the internet and grab posts from music blogs when notified of updates via a feed. The motivation was my MSc Computer Science project, at the time untitled, and without much of a plan or a direction to go in. I knew I wanted to do something related to music, and probably to do with recommendations, with a view to creating a hopefully fresh take at how content can be discovered from editorially subjective sources, rather than behavioural sources such as playlists.<span id="more-257"></span></p>
<p>Skip to September, and with the end-of-month deadline nearing, I&#8217;m putting the finishing touches to the project report, now titled: &#8216;The Social Network in the Music Blogosphere&#8217;. It&#8217;s an exploration of the relationships between blogs and the artists that they write about, using network theory, with an analysis of some subject discovery and classification methods. There&#8217;s a chunk of Python code in the appendices (I used a lot of <a title="NetworkX - Python network library" href="http://networkx.lanl.gov/">NetworkX</a>), as well as some subject-based clusterings represented as dendrograms. If that sounds like your bag, you can get your copy of my project report here:</p>
<p>Download PDF:<a href="http://www.sleepydisco.com/wp-content/uploads/2010/01/The-Social-Network-in-the-Music-Blogosphere.pdf"> The Social Network in the Music Blogosphere</a> (3.6MB)</p>
<p>The network dataset of blog-artist relationships is also available:</p>
<p><a href="/msc/download/blog-artist_network.tar.gz">blog-artist_network.tar.gz</a> (301K)<br />
<a href="/msc/download/blog-artist_network.zip">blog-artist_network.zip</a> (299K)</p>
<p>It contains the following files:</p>
<p><span style="text-decoration: underline;">artists.txt</span>: id, and normalized and denormalized versions of all artist names</p>
<pre>ARTIST_ID  ARTIST_NAME  DENORM_ARTIST_NAME</pre>
<p><span style="text-decoration: underline;">blogs.txt</span>: id and name of each blog</p>
<pre>BLOG_ID  BLOG_NAME</pre>
<p><span style="text-decoration: underline;">blog-artist.txt</span>: the edges between a blog and an artist, and the weighting given to the relationship</p>
<pre>BLOG_ID  ARTIST_ID  WEIGHT
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/computer-science/social-network-in-the-music-blogosphere/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>From Man Bag to Camera Bag</title>
		<link>http://www.sleepydisco.com/makes/man-bag-to-camera-bag</link>
		<comments>http://www.sleepydisco.com/makes/man-bag-to-camera-bag#comments</comments>
		<pubDate>Sun, 20 Dec 2009 22:29:17 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Makes]]></category>
		<category><![CDATA[camera bag]]></category>
		<category><![CDATA[cheapskate]]></category>
		<category><![CDATA[duck tape]]></category>
		<category><![CDATA[making]]></category>
		<category><![CDATA[neopreme]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=235</guid>
		<description><![CDATA[Camera bags are expensive. Really expensive. And worst of all, they all look like camera bags unless you&#8217;re willing to pay a premium for a good looking bag, on top of the premium that you&#8217;re already paying for padding. That said, I&#8217;m really really happy with my Lowepro Slingshot 200 AW, with it&#8217;s easy access, [...]]]></description>
			<content:encoded><![CDATA[<p>Camera bags are expensive. Really expensive. And worst of all, they all look like camera bags unless you&#8217;re willing to pay a premium for a good looking bag, on top of the premium that you&#8217;re already paying for padding. That said, I&#8217;m really really happy with my <a title="Lowepro Slingshot 200 AW" href="http://www.amazon.co.uk/Lowepro-Slingshot-Sling-Digital-Lenses/dp/B000B9O83A">Lowepro Slingshot 200 AW</a>, with it&#8217;s easy access, sling-around, hold-everything-I-have goodness. It&#8217;s ace for if I&#8217;m out and about and being a tourist, but it&#8217;s a bit rubbish if I want something that looks anything less than a back-sized fannypack. So I wondered what it would take to come up with something myself.<span id="more-235"></span></p>
<p>I&#8217;ve got a number of bags that I like, but I wouldn&#8217;t want to chuck a camera in them without some sort of protection. Inside a bag, if not held in place, lens caps can come off and lenses can get scratched, and things get rearranged so that it becomes difficult to find what you&#8217;re looking for. And that&#8217;s not to mention all the casual bumps that a bag will inevitably get when worn and on the move.</p>
<p>Both <a title="Billingham accessories" href="http://www.billingham.co.uk/acatalog/Accessories.html">Billingham</a> and <a title="Domke insert" href="http://www.tiffen.com/displayproduct.html?itemnum=720-230&amp;tablename=domke">Domke</a> make stand-alone inserts for their really rather lovely but sadly aspirationally priced bags, for around £30-40. There&#8217;s something in me that finds spending that amount on the padding alone a bit too much. Driven by this, and inspired by a number of DIY camera bag blog posts from <a title="Muddyboots: DIY stealth camera bag" href="http://muddybootsphotography.blogspot.com/2007/08/diy-stealth-camera-bag.html">people who have attempted a similar thing</a>, I took a trip to the rather excellent <a title="Cass Art" href="http://www.cassart.co.uk/shops_01.htm">Cass Art in Islington</a> to see what I could find to help me. I left with a couple of 50cmx50cm neoprene foam sheets (£4 each) and a 2.5m pack of self-adhesive velcro (£7).</p>
<p>Back home, I got a small-ish bag &#8211; at least big enough for a digital SLR an a lens, but not much more. A nice sized man bag, effectively. My aim was to create an adaptable design for an insert that would create enough room for my SLR with a standard zoom lens attached, and whatever extra room I could make. After measuring approximate sizes, I made a rough template for an open-ended boxed rectangle, and cut out panels from the neopreme foam. I then attached them to each other with duck tape (I already had this) and used extra to create flaps to which I attached two lengths of velcro (comb-side). Two strips of the fuzzy side of velcro were added to the other panel, so I ended up with something looking a bit like this:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-218" title="Template for a Camera bag insert" src="http://www.sleepydisco.com/wp-content/uploads/2009/12/back-insert-template1.png" alt="Template for a Camera bag insert" width="296" height="296" /></p>
<p>I&#8217;ve intentionally not mentioned any measurements here, since it&#8217;s very much dependant on the bag, although I found that a depth of around 10cm would be enough for an SLR. Dividers can be made in a similar way. A velcro-flanked square of foam can be strengthed with wire-reinforced cardboard strips. I inserted thickish garden wire into the cardboard&#8217;s corrogated &#8216;pipes&#8217; before attaching the strips to the foam with more duct tape. This provides more vertical strength to the divider to support the weight of an SLR with a lens attached.</p>
<p style="text-align: left;">The following is the end result, shown from the top:</p>
<p style="text-align: center;"><img class="size-full wp-image-240  aligncenter" title="Camera bag from top" src="http://www.sleepydisco.com/wp-content/uploads/2009/12/bag1.jpg" alt="Camera bag viewed from top, with SLR camera inside" width="500" height="375" /></p>
<p style="text-align: left;">And from the front&#8230;:</p>
<p style="text-align: center;"><img class="size-full wp-image-241  aligncenter" title="Camera bag from side" src="http://www.sleepydisco.com/wp-content/uploads/2009/12/bag2.jpg" alt="Camera bag from side" width="500" height="354" /></p>
<p>I managed an insert and divider from a single sheet of foam, about 60cm of velcro tape, and a bit of duck tape, so total the cost is about £7. I&#8217;m now thinking that my <a title="Freitag dragnet bags" href="http://images.google.co.uk/images?q=freitag+dragnet">Freitag bag</a> will be getting a similar treatment shortly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/makes/man-bag-to-camera-bag/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cardboard Macbook stand</title>
		<link>http://www.sleepydisco.com/makes/cardboard-macbook-stand</link>
		<comments>http://www.sleepydisco.com/makes/cardboard-macbook-stand#comments</comments>
		<pubDate>Sun, 20 Dec 2009 18:59:04 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Makes]]></category>
		<category><![CDATA[cardboard]]></category>
		<category><![CDATA[cheapskate]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[lapstop stand]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[making]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=214</guid>
		<description><![CDATA[Working from home, sitting at my desk can be a bit of strain on my neck, since I&#8217;m always looking down at the screen of my 15&#8243; Macbook Pro. Researching the range of laptop stand options available from the Apple store and around, there didn&#8217;t to be anything that wasn&#8217;t either too expensive, flimsy, a [...]]]></description>
			<content:encoded><![CDATA[<p>Working from home, sitting at my desk can be a bit of strain on my neck, since I&#8217;m always looking down at the screen of my 15&#8243; Macbook Pro. Researching the range of laptop stand options available from the Apple store and around, there didn&#8217;t to be anything that wasn&#8217;t either too expensive, flimsy, a little bit ugly, or all of the above. I thought, at the very least, I could solve the expensive part of that equation, and I get the joy of a make as a bonus.<span id="more-214"></span></p>
<p>I&#8217;d been thinking about making a DIY laptop stand for a few weeks, but a glut of reasonably strong cardboard from a recent trip to IKEA spurred me on to make it for real. In addition to cardboard, I also used double-sided tape, and brown packing tape.</p>
<p>It&#8217;s a really really simple design. Here&#8217;s the template:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-221" title="Template for 15&quot; Macbook Pro stand" src="http://www.sleepydisco.com/wp-content/uploads/2009/12/stand2.png" alt="Template for 15&quot; Macbook Pro stand" width="457" height="422" /></p>
<p>I created two of everything here, and stuck them together with double-sided tape, so that each piece was twice-thickness (I guess 5-6mm thick in total). I also re-enforced the cardboard with packing tape &#8211; just wrapping it around and trimming it. This gave me two side panels, a front panel and a slightly thicker back panel.</p>
<p>Cuts were made where the dotted lines are shown on the template; about 1.5cm from the front and 2cm from the back on the side panels. (N.B. the &#8216;front&#8217; is the lowest part on the side panel). All cuts were 2cm deep and wide enough for the thickness of the panels to slot together without a squeeze. On the front panel (the slightly thinner of the two 32cm long pieces, the cuts are made about 1cm from each end, and about 2cm from each end on the back panel. When assembled, this creates a slight tapering towards the back panel, rather than a more flimsy square.</p>
<p>This was designed for a 15&#8243; Macbook Pro with room for an Apple bluetooth keyboard to nuzzle in underneath. I guess it could be prettier, but it does the job and disammembles and reassembles easily for going in and out of storage.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-225" title="15&quot; Macbook Pro stand" src="http://www.sleepydisco.com/wp-content/uploads/2009/12/macbook-stand.jpg" alt="15&quot; Macbook Pro stand" width="560" height="404" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/makes/cardboard-macbook-stand/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documenting HttpServletRequest</title>
		<link>http://www.sleepydisco.com/programming/documenting-httpservletrequest</link>
		<comments>http://www.sleepydisco.com/programming/documenting-httpservletrequest#comments</comments>
		<pubDate>Sun, 20 Dec 2009 14:27:29 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[httpservletrequest]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[reference]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=201</guid>
		<description><![CDATA[For such a core object the HttpServletRequest javadoc is a little lacking in the Examples Dept. when it comes to documented output. With various methods returning various parts of URLs, it&#8217;s often easy to pick the wrong one, so I thought I&#8217;d knock up a little table with the getters which trip me up sometimes.
This [...]]]></description>
			<content:encoded><![CDATA[<p>For such a core object the <a title="HttpServletRequest javadoc" href="http://java.sun.com/webservices/docs/1.6/api/javax/servlet/http/HttpServletRequest.html">HttpServletRequest javadoc</a> is a little lacking in the Examples Dept. when it comes to documented output. With various methods returning various parts of URLs, it&#8217;s often easy to pick the wrong one, so I thought I&#8217;d knock up a little table with the getters which trip me up sometimes.<span id="more-201"></span></p>
<p>This assumes a simple webapp, living on a server on the local machine, sitting under the context called &#8216;context&#8217;, responding to the URL:</p>
<pre>http://localhost:8080/context/hello/world?foo=bar</pre>
<table>
<thead>
<tr>
<th>Method</th>
<th>Response</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>getContextPath()</td>
<td>/context</td>
<td>The context part of the URL. Should be obvious.</td>
</tr>
<tr>
<td>getPathInfo()</td>
<td>/hello/world</td>
<td>The part of the URL after the context, but not including the query string.</td>
</tr>
<tr>
<td>getPathTranslated()</td>
<td>/Users/david/projects/java/hello-world-webapp/target/context/hello/world</td>
<td>Hrm. Sort of where this would be on the local filesystem, but not really.</td>
</tr>
<tr>
<td>getProtocol()</td>
<td>HTTP/1.1</td>
<td>This doesn&#8217;t produce anything verbatum from the URL, such as &#8216;http&#8217; or &#8216;https&#8217; or &#8216;ftp&#8217; or&#8230;</td>
</tr>
<tr>
<td>getQueryString()</td>
<td>foo=bar</td>
<td>Like it says, the query string.</td>
</tr>
<tr>
<td>getRequestURI()</td>
<td>/context/hello/world</td>
<td>Everything from but not including the port, up to but not including the query string.</td>
</tr>
<tr>
<td>getRequestURL()</td>
<td>http://localhost:8080/context/hello/world</td>
<td>This is a StringBuffer object, containing everything but the query string.</td>
</tr>
<tr>
<td>getServerName()</td>
<td>localhost</td>
<td>The server name as presented in the URL, not the hostname of the box.</td>
</tr>
<tr>
<td>getServerPort()</td>
<td>8080</td>
<td>As expected. Good, good.</td>
</tr>
<tr>
<td>getServletPath()</td>
<td></td>
<td>This is the path that the servlet is configured (e.g. in web.xml) to respond to relative to the context. It&#8217;ll be an empty-string if, as here, this is in response to a wildcard mapping &#8220;/*&#8221;.</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/programming/documenting-httpservletrequest/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>URL connection timeouts&#8230; not timing out</title>
		<link>http://www.sleepydisco.com/programming/url-connection-timeouts-not-timing-out</link>
		<comments>http://www.sleepydisco.com/programming/url-connection-timeouts-not-timing-out#comments</comments>
		<pubDate>Tue, 14 Apr 2009 21:48:17 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[url java apache http]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=198</guid>
		<description><![CDATA[After much fussing about, I&#8217;ve found out that the default UrlConnection object in the core Java libraries doesn&#8217;t correctly obey connect or read timeouts set via the setConnectTimeout() or setReadTimeout() methods. The only way I&#8217;ve managed to get this to work, is to add the following arguments to the JVM.
-Dsun.net.client.defaultConnectTimeout=&#60;CONNECT_TIMEOUT&#62;
-Dsun.net.client.defaultReadTimeout=&#60;READ_TIMEOUT&#62;
In future, I&#8217;d be more inclined [...]]]></description>
			<content:encoded><![CDATA[<p>After much fussing about, I&#8217;ve found out that the default <a title="java.net.URLConnection" href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html">UrlConnection</a> object in the core Java libraries doesn&#8217;t correctly obey connect or read timeouts set via the setConnectTimeout() or setReadTimeout() methods. The only way I&#8217;ve managed to get this to work, is to add the following arguments to the JVM.<span id="more-198"></span></p>
<pre>-Dsun.net.client.defaultConnectTimeout=&lt;CONNECT_TIMEOUT&gt;
-Dsun.net.client.defaultReadTimeout=&lt;READ_TIMEOUT&gt;</pre>
<p>In future, I&#8217;d be more inclined to use something like the <a title="Apache HttpCommons Client" href="http://hc.apache.org/httpcomponents-client/index.html">Apache HttpCommons Client</a> which provides a full-featured HTTP client.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/programming/url-connection-timeouts-not-timing-out/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hearty Chicken Stew with Dumplings</title>
		<link>http://www.sleepydisco.com/food/hearty-chicken-stew-with-dumplings</link>
		<comments>http://www.sleepydisco.com/food/hearty-chicken-stew-with-dumplings#comments</comments>
		<pubDate>Mon, 09 Feb 2009 21:35:47 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[chicken]]></category>
		<category><![CDATA[chicken stew]]></category>
		<category><![CDATA[dumplings]]></category>
		<category><![CDATA[recipe]]></category>
		<category><![CDATA[stew]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=192</guid>
		<description><![CDATA[This is a bit of a hybrid recipe inspired from a bit of a Nigella and a bit of one of the anonymous cookbooks I&#8217;ve got hanging about. I&#8217;m proud to say that the dumplings were all my addition, although I didn&#8217;t have all the ingredients to make them so I had to settle for [...]]]></description>
			<content:encoded><![CDATA[<p>This is a bit of a hybrid recipe inspired from a bit of a Nigella and a bit of one of the anonymous cookbooks I&#8217;ve got hanging about. I&#8217;m proud to say that the dumplings were all my addition, although I didn&#8217;t have all the ingredients to make them so I had to settle for a pre-mixed packet.</p>
<ul>
<li>a pack of lardons</li>
<li>two leeks, sliced into small rings</li>
<li>an onion, roughly chopped</li>
<li>1/2 swede, peeled and roughly cubed</li>
<li>a pack of about six good sized skinless, boneless chicken thighs, chopped into bite-sized pieces</li>
<li>three cloves garlic, sliced</li>
<li>handful of parsley, roughly chopped</li>
<li>1 tsp turmeric</li>
<li>1/2 tsp cayenne pepper</li>
<li>1 tsp ground ginger</li>
<li>a bottle of white wine</li>
<li>couple of handfuls of frozen peas</li>
<li>couple of cups of chicken stock</li>
<li>salt and pepper to taste</li>
<li>6-8 dumplings made from packet mix</li>
</ul>
<p>Brown off the <strong>lardons</strong> in a hot stock pot, before adding the <strong>leeks</strong>, <strong>onion, garlic</strong> and <strong>swede</strong>. You don&#8217;t need extra oil, just let them cook in the tasty bacon fat until they&#8217;ve softened up a bit, for about 5 minutes or so. Add the <strong>chicken</strong>, <strong>cayenne</strong> <strong>pepper</strong>, <strong>ground</strong> <strong>ginger</strong>, and <strong>turmeric</strong>, and stir about in the mix before adding in the <strong>bottle of white wine</strong> and<strong> frozen peas</strong>. Top up with the <strong>chicken stock</strong> until it looks like there will be enough liquid for about half an hour&#8217;s cooking, and sit the doughy <strong>dumplings</strong> made from the mix on the top.</p>
<p>Cook for half an hour and when almost done, throw in the chopped <strong>parsley</strong> and season. This can be served on it&#8217;s own in a bowl, or with a generous serving of mashed potatos should make enough for four people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/food/hearty-chicken-stew-with-dumplings/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Between Obvious and Interesting</title>
		<link>http://www.sleepydisco.com/computer-science/between-obvious-and-interesting</link>
		<comments>http://www.sleepydisco.com/computer-science/between-obvious-and-interesting#comments</comments>
		<pubDate>Sat, 07 Feb 2009 22:56:50 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[subjective relationships]]></category>
		<category><![CDATA[summary]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=184</guid>
		<description><![CDATA[This post is a continuation of Good Recommendations, Using Set Theory to analyse Recommendation relationships, Variation within Preferences and Predicting Preferences.
I&#8217;ve offered the idea that good recommendations lie on a scale between Obvious and Interesting. Taken to their extreme, the full line could actually run from Boring through to Random, with Obvious and Interesting somewhere [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a continuation of <a href="http://www.sleepydisco.com/computer-science/good-recommendations">Good Recommendations</a>, <a href="http://www.sleepydisco.com/computer-science/recommendation-relationships">Using Set Theory to analyse Recommendation relationships</a>, <a href="http://www.sleepydisco.com/computer-science/variation-within-preferences">Variation within Preferences</a> and <a href="http://www.sleepydisco.com/computer-science/predicting-preferences">Predicting Preferences</a>.</p>
<p>I&#8217;ve offered the idea that good recommendations lie on a scale between Obvious and Interesting. Taken to their extreme, the full line could actually run from Boring through to Random, with Obvious and Interesting somewhere in between. &#8216;Boring&#8217; recommendations could be said to exist where the Advisor&#8217;s Preference Set is entirely made up of the Common Set (i.e. the Advisee knows at least as much as the Advisor). &#8216;Random&#8217; recommendations could be said to exist where there is no Common Set at all (i.e. A disjoint B )</p>
<p>I&#8217;ve also attempted to explain my thoughts on the kinds of relationships that could exist between an Advisor and an Advisee, and ways in which they could be elaborated. I think I&#8217;ve done that, albeit in a not very scientific way. So there&#8217;s a lot of room for refinement, and there are some gaps to be filled (specifically around calculating variation within a set of preferences and analysing effects of different weightings of those preferences) and some of my assumptions are a little more tenuous than maybe they should be, but I think this could provide the basis for some interesting results.</p>
<p>I&#8217;m also keen to explore the possibility that subjective relationships (rather than behavioural relationships) between Things would produce better/more interesting recommendations and routes for discovery. For my MSc project, I&#8217;m intending to focus on the Music Domain, analysing music blogs to deduce relationships between artists to augment recommendations from existing services such as <a href="http://last.fm">last.fm</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/computer-science/between-obvious-and-interesting/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Predicting Preferences</title>
		<link>http://www.sleepydisco.com/computer-science/predicting-preferences</link>
		<comments>http://www.sleepydisco.com/computer-science/predicting-preferences#comments</comments>
		<pubDate>Sat, 07 Feb 2009 22:46:43 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[information retrieval]]></category>
		<category><![CDATA[jaccard coeffient]]></category>
		<category><![CDATA[predictions]]></category>
		<category><![CDATA[preferences]]></category>
		<category><![CDATA[Project]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[set theory]]></category>

		<guid isPermaLink="false">http://www.sleepydisco.com/?p=158</guid>
		<description><![CDATA[This post is a continuation of Good Recommendations, Using Set Theory to analyse Recommendation relationships and Variation within Preferences.
Does all of this just mean that the underlying rule is to pair the Advisee to the Advisor with biggest Preference Set? And how does that relate to what was concluded earlier about the similarity of the [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a continuation of <a href="http://www.sleepydisco.com/computer-science/good-recommendations">Good Recommendations</a>, <a href="http://www.sleepydisco.com/computer-science/recommendation-relationships">Using Set Theory to analyse Recommendation relationships</a> and <a href="http://www.sleepydisco.com/computer-science/variation-within-preferences">Variation within Preferences</a>.</p>
<p>Does all of this just mean that the underlying rule is to pair the Advisee to the Advisor with biggest Preference Set? And how does that relate to what was concluded earlier about the similarity of the two sets; the <a href="http://en.wikipedia.org/wiki/Jaccard_index">Jaccard co-effient</a>. Taking an extreme scenario illustrated here:</p>
<p><img class="alignnone" title="Very large Advisor Set (A) relative to the Small Advisee Set (B)" src="/images/recom-imgs/large-a-very-small-b.gif" alt="" width="164" height="152" /></p>
<p>Advisor (A) has a Preference Set of a large order of magnitude greater than the Advisee (B). Assuming that there&#8217;s a similar variance within the two sets, and that the previous assertions were correct, then this would clearly be approaching a Utopian case.</p>
<p>In reality we would find it difficult to assume so much about such a small sample relative to the larger one. It would be much better if we could transform the smaller set in to a larger sample on the basis of predicted future recommendations. Such as in the following diagram, where the dashed line shows the expansion of the Advisee&#8217;s original Preference Set to the Advisee&#8217;s Predicted Preference Set (B).</p>
<p><img class="alignnone" title="Predicted Preference Set B" src="/images/recom-imgs/a-b-proj-arrow.gif" alt="" width="217" height="152" /></p>
<p>However, this makes the assumption that growth would be uniformly distributed out from the current Preference Set, and that the coupling of Advisor (A) with Advisee (B) was a good one to begin with and one that holds throughout the introduction of future recommendations.</p>
<p>My assumption would be that the variation within the Preference Sets holds the solution for this. Taking the difference in variation in the Common Set (A∩B) and the Recommendation Set (A—B) as &#8216;pull&#8217; factors towards the Advisor and the difference in variation between the Common Set (A∩B) and B—A as &#8216;push&#8217; factors away from the Advisor, we could infer growth of the Common Set with a the centre weighted towards or away from the Advisee. A greater pull could be shown as in the following diagram:</p>
<p><img class="alignnone" title="Predicted Preference Set with Left Skew" src="/images/recom-imgs/a-b-left-skew.gif" alt="" width="173" height="151" /></p>
<p>Whilst a greater push could be illustrated as:</p>
<p><img class="alignnone" title="Predicted Preference Set with Right Skew" src="/images/recom-imgs/a-b-proj-right-skew.gif" alt="" width="268" height="151" /></p>
<p>The Jaccard co-effient could then be applied to work out the predicted similarity between the two sets. And from this, predict whether the original relationship is likely to provide more interesting, average, or more obvious recommendations.</p>
<p>Formally this can be represented as:</p>
<p>A∩PPS(B) / A∪PPS(B)</p>
<p>where: PPS(X)  = weighted Predicted Preference Set of X</p>
<p>Summary: <a href="http://www.sleepydisco.com/computer-science/between-obvious-and-interesting">Between Obvious and Interesting</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sleepydisco.com/computer-science/predicting-preferences/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
