<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>I'm not multitasking - I'm distracted</title><generator>Tumblr (3.0; @nanosheep)</generator><link>http://nanosheep.tumblr.com/</link><item><title>Of Django Models...</title><description>&lt;p&gt;Note to self, make sure app_label matches what you put in settings.py&amp;#8217;s INSTALLED_APPS section, or syncdb won&amp;#8217;t create tables for your model.&lt;/p&gt;
&lt;pre&gt;class CIJob(Loop):
    """Defines the base class for a CI Job."""
    class Meta:
        app_label = 'ci_job'

INSTALLED_APPS = (
...
    'frontend.ci_job',&lt;/pre&gt;</description><link>http://nanosheep.tumblr.com/post/42436509168</link><guid>http://nanosheep.tumblr.com/post/42436509168</guid><pubDate>Wed, 06 Feb 2013 17:27:20 +0000</pubDate></item><item><title>My wife is just as silly as I am, so when I turned 33 a few days...</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_m33dbeLoPx1qhu881o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My wife is just as silly as I am, so when I turned 33 a few days ago I was ambushed by soot sprites! More pics on the click through.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/21849286898</link><guid>http://nanosheep.tumblr.com/post/21849286898</guid><pubDate>Thu, 26 Apr 2012 15:52:20 +0100</pubDate><category>sootsprite</category><category>silly</category><category>cute</category></item><item><title>laughingsquid:

President Obama &amp; Star Trek’s Lt. Uhura Pose...</title><description>&lt;a href="http://areasofmyexpertise.com/post/20468044189"&gt;laughingsquid:

President Obama &amp; Star Trek’s Lt. Uhura Pose...&lt;/a&gt;: &lt;p&gt;In the UK I would like Leonard Nimoy to nerve pinch David Cameron.. &lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/20470749546</link><guid>http://nanosheep.tumblr.com/post/20470749546</guid><pubDate>Wed, 04 Apr 2012 17:16:46 +0100</pubDate></item><item><title>Font Smoothing - at last!</title><description>&lt;p&gt;Recently I have been using Ubuntu 12.04&amp;#8217;s development branch and while it sometimes exhibits comedy instability (yesterday the crash reporter kept crashing!) and sometimes is just plain frustrating (I still can&amp;#8217;t get my Nvidia graphics card + two external monitors to work smoothly in Unity) I have finally got frustrated and fixed the broken font rendering when using XFCE.&lt;/p&gt;
&lt;p&gt;Turns out that the XFCE font configuration utility sets up some, but not all font smoothing settings. This being Linux, there are several places to look for settings and several different types of font settings to look after. Yay. The key one that it seemed to be missing is the fonts.conf / fonts/conf.d setting. What needed to happen was to enable font smoothing for everyone using the machine was get the soft links in /etc/fonts/conf.d to be:&lt;/p&gt;
&lt;p&gt;10-antialias.conf, 10-hinting.conf, 10-hinting-full.conf&lt;/p&gt;
&lt;p&gt;And remove any other 10- files. I only had to change one on my system.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/19783903602</link><guid>http://nanosheep.tumblr.com/post/19783903602</guid><pubDate>Fri, 23 Mar 2012 15:23:10 +0000</pubDate></item><item><title>No PCI cards for me</title><description>&lt;p&gt;Looks like my &lt;a href="http://www.asus.com/Motherboards/AMD_CPU_on_Board/E35M1M_PRO"&gt;server&lt;/a&gt; is suffering from a bit of shoddy &lt;a href="https://bugzilla.kernel.org/show_bug.cgi?id=38632"&gt;hardware&lt;/a&gt;. I had previously thought that I had hardware that had poor drivers, or just bad hardware, sitting in my PCI slots, but no, I had an ASM1083 PCIe &amp;lt;-&amp;gt; PCI bridge on my motherboard and it doesn&amp;#8217;t play nice.&lt;/p&gt;
&lt;p&gt;Arg!&lt;/p&gt;
&lt;p&gt;So, my expandability is down to using the single PCIe 1x slot that I have left. If I plug anything into the PCI slots the machine grinds to a halt within a few minutes. Great.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/16922175973</link><guid>http://nanosheep.tumblr.com/post/16922175973</guid><pubDate>Thu, 02 Feb 2012 15:48:13 +0000</pubDate><category>ASM1083</category><category>IRQ</category><category>ASUS</category><category>Linux</category></item><item><title>Web site development using an overlay proxy</title><description>&lt;p&gt;&lt;div&gt;&lt;span id="internal-source-marker_0.5517064011655748"&gt;I have just written some updates to the web site at android-build.linaro.org. It is a build service that uses Jenkins as a back end (running at &lt;a href="https://android-build.linaro.org/jenkins)"&gt;&lt;a href="https://android-build.linaro.org/jenkins"&gt;https://android-build.linaro.org/jenkins&lt;/a&gt;&lt;/a&gt;) and uses Django and Apache 2 to serve up the UI that you see. The UI uses JavaScript to dynamically create some page parts by querying Jenkins using JSON and querying an API that we have crafted using Django. A simple front page change is relatively simple since you can create a new instance of the entire server and play with it. My problem was that I was going to change the build pages and needed the build history from the live server to test against.&lt;br/&gt; &lt;br/&gt;My fist thought was that since I was just modifying some JavaScript to use a Greasemonkey script to unload the JavaScript that I was modifying from the page supplied by &lt;a href="http://android-build.linaro.org/"&gt;&lt;span&gt;android-build.linaro.org&lt;/span&gt;&lt;/a&gt; and replace it with my own. This worked at first, but seemed a bit unreliable because if the functions that I wanted to modify had already run by the time Greasemonkey had replaced it with my new script, nothing would actually change. I also realised very early on that I wanted to add a new API, so what I needed was to run the Django development server to serve up the front end pages, serve up my JavaScript using a static file server and proxy in the Jenkins instance running on android-build.linaro.org. Easy right?&lt;br/&gt; &lt;br/&gt;Turns out it is. In node.js you can write a couple of lines of code to proxy a remote HTTPS server. I just needed to make it look like http://localhost:&amp;lt;port&amp;gt;/jenkins alongside the Django development server running on the same port on the server root and serve up static files next to it as well. The code is &lt;a href="https://code.launchpad.net/~dooferlad/junk/dev_proxy"&gt;in launchpad&lt;/a&gt; and pasted below. I will just mention a couple of problems I found along the way and how they were solved.&lt;br/&gt; &lt;br/&gt;The first problem I had was that some API calls to my local Django instance didn’t return the same value as those on the real server. This is because the local development server was not a full blown instance of everything on android-build.linaro.org. Wanting to keep using the Django development server so I could debug my API changes I changed the proxy to map my new/changed API calls to my local Django server and the rest to the remote server.&lt;br/&gt; &lt;br/&gt;The second problem I ran into was that that some parts of &lt;a href="http://android-build.linaro.org/"&gt;&lt;span&gt;android-build.linaro.org&lt;/span&gt;&lt;/a&gt; are only available over HTTP and others only over HTTPS. Some on both. I had started with just an HTTPS proxy, so I added an HTTP one and mapped the connections using the requested URL. Unfortunately this didn’t work. If you visit &lt;a href="http://android-builds.linaro.org/"&gt;&lt;span&gt;android-builds.linaro.org&lt;/span&gt;&lt;/a&gt; you will get a nice web UI. If you visit the server that it is running on (currently an EC2 instance) you will find the standard Apache 2 “It works” page. This is what I was seeing through my proxy - the server name wasn’t being used as I was expecting. Turns out I needed to add in the option “changeOrigin: true” to the proxy settings.&lt;br/&gt; &lt;br/&gt;So, the proxy does the following:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span id="internal-source-marker_0.5517064011655748"&gt;
&lt;ul&gt;&lt;li&gt;If a file called manifest.txt is requested, return a local one. This doesn’t exist on any remote servers yet, but doing this allows me to emulate that it does.&lt;/li&gt;
&lt;li&gt;If a new API call is seen, send it to the local Django development server.&lt;/li&gt;
&lt;li&gt;If a static file is requested, serve it up from the local disk (allows me to test new JavaScript).&lt;/li&gt;
&lt;li&gt;If a relative URL starts with /build serve it up using the HTTP proxy to &lt;a href="http://android-build.linaro.org/"&gt;android-build.linaro.org&lt;/a&gt; (this part of the server isn’t available over HTTPS).&lt;/li&gt;
&lt;li&gt;Everything else is served up by proxying it to android-build.linaro.org. This accounts for all API calls I am not acting on locally and all calls to the Jenkins server.&lt;/li&gt;
&lt;/ul&gt;
Here is the whole thing. It should be easy to modify for any similar projects.&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre&gt;&lt;code class="javascript"&gt;var http = require('http'),
    httpProxy = require('http-proxy'),
    util = require('util'),
    static = require('node-static');
// Create proxy servers for each remote server we are going to talk to.
var proxy_android_build_https = new httpProxy.HttpProxy({
  target: {
    host: 'android-build.linaro.org',
    port: 443,
    https: true
  }
});
var proxy_android_build_http = new httpProxy.HttpProxy({
  target: {
    host: 'android-build.linaro.org',
    port: 80
  },
  changeOrigin: true // Required because the host machine has many virtual hosts on it.
                     // Go to the ec2 instance - you will just the Apache "It worked!" page.
});
var proxy_django = new httpProxy.HttpProxy({
  target: {
    host: 'localhost',
    port: 9000
  }
});
var proxy_static = new httpProxy.HttpProxy({
  target: {
    host: 'localhost',
    port: 10101
  }
});
// Create a node-static server instance to serve static files.
var file = new(static.Server)('/home/dooferlad/dev/android-build/linaro-android-frontend/');
require('http').createServer(function (request, response)
{
  request.addListener('end', function ()
  {
    // Serve files!
    file.serve(request, response);
  });
}).listen(10101);
// Create an HTTP server - this is the one our browser will talk to. Each
// connection to it is routed based on its URL to one of the above servers.
http.createServer(function (req, res)
{
  util.puts(req.url);
  // Special case - when a manifest.txt is requested, return a static file (this isn't enabled on server yet)
  if(req.url.match(/.*manifest.txt$/))
  {
    util.puts("&amp;gt;static, remap");
    req.url = req.url.replace(/.*manifest.txt/, "/static/manifest.txt");
    proxy_static.proxyRequest(req, res);
  }
  else if(   req.url.match(/^\/api\/proxy-remote-file/)
          || req.url.match(/^\/api\/test-dir-exists/))
  {
    // In the case of proxy requests, make sure that localhost isn't used (not whitelisted)
    req.url = req.url.replace(/http:\/\/localhost\//, "http://android-build.linaro.org/")
    req.url = req.url.replace(/https:\/\/localhost\//, "https://android-build.linaro.org/")
    util.puts("&amp;gt;local");
    proxy_django.proxyRequest(req, res);
  }
  else if(req.url.match(/^\/static\//))
  {
    util.puts("&amp;gt;static");
    proxy_static.proxyRequest(req, res);
  }
  // Some parts of android-build.linaro.org aren't available over https...
  else if(req.url.match(/^\/builds\/.*\/\d+\//))
  {
    util.puts("&amp;gt;remote (*http*)");
    proxy_android_build_http.proxyRequest(req, res);
  }
  else
  {
    util.puts("&amp;gt;remote (httpS)");
    proxy_android_build_https.proxyRequest(req, res);
  }
  util.puts(req.url);
  util.puts("---");
}).listen(8001);
&lt;/code&gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/16176852025</link><guid>http://nanosheep.tumblr.com/post/16176852025</guid><pubDate>Fri, 20 Jan 2012 17:33:00 +0000</pubDate><category>HTML</category><category>Django</category><category>Node.js</category><category>JavaScript</category><category>Linaro</category></item><item><title>Thinking if contact cards for JoCo Cruise Crazy II.</title><description>&lt;img src="http://25.media.tumblr.com/tumblr_lwxutbvhRM1qhu881o1_400.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Thinking if contact cards for &lt;a href="http://jococruisecrazy.com/"&gt;JoCo Cruise Crazy II&lt;/a&gt;.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/14943183615</link><guid>http://nanosheep.tumblr.com/post/14943183615</guid><pubDate>Thu, 29 Dec 2011 00:03:11 +0000</pubDate></item><item><title>Backing up backups...</title><description>&lt;p&gt;Since I am paranoid about disk death (I have suffered it several times) and I have machines backing up to, well, a disk, I like to make sure that those backups don&amp;#8217;t vanish if a disk dies or if someone deletes a file by accident. I don&amp;#8217;t need snapshots, I just need to keep as much history as I can. I also don&amp;#8217;t care about keeping old files that have changed - my assumption is that accidental deletions may happen, but changing a backup archive by accident is unlikely.&lt;/p&gt;
&lt;p&gt;For this reason I have hacked together a little script to do just that. You can find it &lt;a href="https://code.launchpad.net/~dooferlad/+junk/sync_delete_oldest"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, you using like this: sync_delete_oldest.py source dest&lt;/p&gt;
&lt;p&gt;You need rsync and unix find, the script is written in python. If your source disk dies, rsync won&amp;#8217;t delete files from the destination disk.&lt;/p&gt;
&lt;p&gt;Well, makes me happy anyway.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/10889709685</link><guid>http://nanosheep.tumblr.com/post/10889709685</guid><pubDate>Sat, 01 Oct 2011 15:59:13 +0100</pubDate></item><item><title>Crashplan Vs Quassel: Port Fight!</title><description>&lt;p&gt;I spend my days on IRC to talk to people I work with and I find that &lt;a href="http://quassel-irc.org/"&gt;Quassel&lt;/a&gt; is a great IRC client and running the back end on my server means that I can always look back at what was discussed over night if I need to. I also always have all my IRC logs wherever I am, which since a lot of important stuff is discussed on IRC is invaluable.&lt;/p&gt;
&lt;p&gt;I am also a data security nut. I have suffered the curse of hard disks going to the great spinning magnet in the sky. I haven&amp;#8217;t found a decent solution to the problem of keeping large quantities of data in sync between multiple computers reliably without spending a fortune, but mostly I want everything backed up. Today I thought I would give &lt;a href="http://www.crashplan.com/"&gt;CrashPlan&lt;/a&gt; a go. The problem was that the GUI wouldn&amp;#8217;t connect to the back end service that does the back up work.&lt;/p&gt;
&lt;p&gt;So, what was going on? Both Quassel and CrashPlan default to using port 4242. CrashPlan&amp;#8217;s GUI just said that it couldn&amp;#8217;t connect to the back end. The back end seemed convinced that it was running (trying to stop it didn&amp;#8217;t throw any errors about it not running). A simple &amp;#8220;port in use&amp;#8221; message from CrashPlan would have been useful!&lt;/p&gt;
&lt;p&gt;Since it is relatively easy to move Quassel to another port (quasselcore -p &amp;lt;port number&amp;gt;) this was easy to solve, but debugging took more than a couple of minutes.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/10728147614</link><guid>http://nanosheep.tumblr.com/post/10728147614</guid><pubDate>Tue, 27 Sep 2011 16:08:07 +0100</pubDate></item><item><title>Adding a new column to a table in django</title><description>&lt;p&gt;Well, &lt;a href="http://www.djangobook.com/en/1.0/chapter05/"&gt;the Django book&lt;/a&gt; basically covers it, but because I am new to this stuff I was left asking myself what my appname was. Turns out this is just the name of the directory containing models.py, so that is easy. Since I am using &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; I used the rather great &lt;a href="http://www.pgadmin.org/"&gt;pgadmin3&lt;/a&gt; to insert the new columns I found by running &lt;span&gt;manage.py sqlall &amp;lt;appname&amp;gt;&lt;/span&gt; rather than resorting to actually writing any SQL.&lt;/p&gt;
&lt;p&gt;Update: &lt;a href="http://south.aeracode.org/docs/about.html"&gt;South&lt;/a&gt; looks like it manages DB changes automatically.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/10407093020</link><guid>http://nanosheep.tumblr.com/post/10407093020</guid><pubDate>Mon, 19 Sep 2011 18:28:00 +0100</pubDate></item><item><title>Adding a raw printer to CUPS</title><description>&lt;p&gt;There seem to be two options:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;lpadmin -p [new queue name] -E -v [URI of printer]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For example, adding a new queue for my HP LaserJet 1200:&lt;/p&gt;
&lt;p&gt;lpadmin -p LaserJetRaw -E -v usb://HP/LaserJet%201200?serial=00CNCF274876&lt;/p&gt;
&lt;p&gt;The other option, which I am not sure if it actually works (not tested), is to set an option in your printer drivers. For me on Ubuntu I tried under Printing [double click on printer], Job Options, scroll to the bottom, add a new option &amp;#8220;format&amp;#8221; and set the value to &amp;#8220;l&amp;#8221;. I have seen it said that this makes CUPS recognise the job as a raw job.&lt;/p&gt;
&lt;p&gt;Both of these are ways of (potentially) getting another machine to send a job directly to a network attached printer without the machine they are being served from from doing any processing. Since my server isn&amp;#8217;t very fast, this may help speed up printing because there are fewer machines processing the data.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/9253698053</link><guid>http://nanosheep.tumblr.com/post/9253698053</guid><pubDate>Mon, 22 Aug 2011 17:09:05 +0100</pubDate></item><item><title>Doing more with less</title><description>&lt;p&gt;Something odd is going on with my server. I upgraded it to an &lt;a href="http://www.asus.com/Motherboards/AMD_CPU_on_Board/E35M1M_PRO/"&gt;ASUS E35M1-M&lt;/a&gt; PRO based system and I have been monitoring its power usage at the plug. First off that when my Kodak ESP 9250 is in its low power state it still draws 5W with the WiFi on. I really should try connecting it to Ethernet and disabling the wireless and see if that helps, but for now just turning it off gives the best power savings! What is really strange is that if I disable GDM on the server, it uses more power than if GDM is running. My guess is that with GDM loaded the graphics card drivers tell the GPU to scale its power usage to what is required. Slightly less odd is when I log in the power usage drops even more after a while, which I expect is because my user is set up to allow the hard disks to spin down. I could use hdparm to get the disks to spin down, but since logging in is fine (it is a home server) I can&amp;#8217;t be bothered. So there you go, if you have an &lt;a href="http://en.wikipedia.org/wiki/AMD_Fusion#.22Zacate.22_.2840nm.29"&gt;AMD E350&lt;/a&gt; based server, try running something graphical and see if your power usage drops!&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/7610610678</link><guid>http://nanosheep.tumblr.com/post/7610610678</guid><pubDate>Thu, 14 Jul 2011 12:29:52 +0100</pubDate></item><item><title>On the joys of migrating disks</title><description>&lt;p&gt;My poor old server. It is running on a &lt;a href="http://www.via.com.tw/en/initiatives/empowered/pc2500_mainboard/index.jsp"&gt;Via PC2500 motherboard&lt;/a&gt; with a lot of disks attached to it via a SATA expansion card. Its OS disk has started making unhappy sounding noises, probably because the disk has spent a lot of time spinning down and then back up again for the last two years, so I thought trying an SSD would be fun. No mechanical parts and the OS doesn&amp;#8217;t do much writing to the disk (just backing up my gmail account using &lt;a title="Imapsync" href="http://www.linux-france.org/prj/imapsync/"&gt;imapsync&lt;/a&gt; and writing logs and using swap), so hopefully it will last a good long time.&lt;/p&gt;
&lt;p&gt;I first booted up &lt;a href="http://www.acronis.com/homecomputing/products/trueimage/index.html"&gt;Acronis True Image 2011&lt;/a&gt;, but it displayed a warning that if a partition was bootable I would have to do stuff to it to make it work, that it didn&amp;#8217;t document for grub, as used by Ubuntu. Next fired up &lt;a href="http://www.acronis.com/homecomputing/products/diskdirector/"&gt;Acronis Disk Director Home 2011&lt;/a&gt;, which gave no such warning. It copies and resizes the partitions, but doesn&amp;#8217;t set the MBR up correctly, so now I have to dive into &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu &lt;/a&gt;to try and fix it. Why isn&amp;#8217;t anything easy? Mind you, at least a GUI did most of the hard work for me!&lt;/p&gt;
&lt;p&gt;Edit: &lt;span&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=24113"&gt;HOWTO: Restore GRUB (if your MBR is messed up)&lt;/a&gt; has the answer:&lt;/span&gt;&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;span&gt;Start using old boot disk&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Hit &amp;#8216;c&amp;#8217; when grub loads to enter command mode&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Use &lt;code&gt;find (hdx,y)/&lt;/code&gt; then hit [Tab] to examine the contents of disks until you find the right one - note that you (probably?) booted from hd0,y. The partition you are looking for is the boot one, which contains lots of files called vmlinuz[bla] and System.map[bla] (among others).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Type &lt;code&gt;root (hdx,y)&lt;/code&gt; (without the trailing /)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Type &lt;code&gt;setup (hdx)&lt;/code&gt; &lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;span&gt;If that worked you should be able to reboot and boot from the new disk.&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After this, SSD #2 is going to find its way into my DVR box (still running Windows XP, with &lt;a href="http://sage.tv/sagetv.html"&gt;SageTV&lt;/a&gt; for DVR duties) to avoid the unresponsive while disk spinning up problem. Acronis normally does a perfectly good job with Windows disks, so hopefully it will be a bit smoother.&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/3604883387</link><guid>http://nanosheep.tumblr.com/post/3604883387</guid><pubDate>Wed, 02 Mar 2011 20:20:00 +0000</pubDate><category>grub,</category><category>mbr,</category></item><item><title>Time for a slightly pointless iTunes update? Hopefully it will bring better iPods!</title><description>&lt;a href="http://www.slashgear.com/apple-considering-24-bit-ipoditunes-update-for-boosted-audio-quality-22135176/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+slashgear+(SlashGear)&amp;utm_content=Google+Reader"&gt;Time for a slightly pointless iTunes update? Hopefully it will bring better iPods!&lt;/a&gt;: &lt;p&gt;Apple may be upping the quality of tracks on iTunes to 24 bit / 96KHz. Dull. Better quality sound out of iPods is more interesting though. Don’t really care about sample rates, but better DACs and amplifiers are always welcome.&lt;/p&gt;
&lt;p&gt;Of course, if we used the entire dynamic range of 16 bit / 44KHz tracks things would sound better anyway on decent kit!&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/3446754369</link><guid>http://nanosheep.tumblr.com/post/3446754369</guid><pubDate>Tue, 22 Feb 2011 17:33:38 +0000</pubDate></item><item><title>Who is trampling my memory?</title><description>&lt;p&gt;I think it must be a common problem for C++ programmers. Something is corrupting memory and valgrind &amp;lt;program&amp;gt; isn&amp;#8217;t helping. I am currently trying the experimental &lt;a href="http://valgrind.org/docs/manual/pc-manual.html"&gt;Valgrind ptrcheck&lt;/a&gt; and the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=c4a25ab9-649d-4a1b-b4a7-c9d8b095df18&amp;amp;displaylang=en"&gt;Microsoft Application Verifier&lt;/a&gt;. I am hoping one of them turns something up. It is times like this that I wish I was programming in a VM!&lt;/p&gt;</description><link>http://nanosheep.tumblr.com/post/3446562560</link><guid>http://nanosheep.tumblr.com/post/3446562560</guid><pubDate>Tue, 22 Feb 2011 17:19:26 +0000</pubDate></item></channel></rss>
