<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Graham King</title>
    <link>https://darkcoding.net/</link>
    <description>Recent content on Graham King</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 09 Jan 2024 21:54:00 -0400</lastBuildDate><atom:link href="https://darkcoding.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The memory remains: Permanent memory with systemd and a Rust allocator</title>
      <link>https://darkcoding.net/software/rust-systemd-memory-remains/</link>
      <pubDate>Tue, 09 Jan 2024 21:54:00 -0400</pubDate>
      
      <guid>https://darkcoding.net/software/rust-systemd-memory-remains/</guid>
      <description>A Rust object that survives program restart thanks to Rust allocators, systemd&amp;rsquo;s file descriptor store, and syscall memfd_create.</description>
    </item>
    
    <item>
      <title>Linux: What can you epoll?</title>
      <link>https://darkcoding.net/software/linux-what-can-you-epoll/</link>
      <pubDate>Thu, 20 Oct 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/linux-what-can-you-epoll/</guid>
      <description>On Linux what can you turn into a file descriptor and then monitor with epoll?</description>
    </item>
    
    <item>
      <title>Underrust: Multiple Return Values</title>
      <link>https://darkcoding.net/software/rust-multiple-return-types/</link>
      <pubDate>Tue, 18 Oct 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/rust-multiple-return-types/</guid>
      <description>How does Rust return values, and does it make any difference to us programmers?</description>
    </item>
    
    <item>
      <title>Overthinking Leetcode&#39;s Two Sum with SIMD</title>
      <link>https://darkcoding.net/software/two-sum/</link>
      <pubDate>Sun, 09 Oct 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/two-sum/</guid>
      <description>When is the linear scan Two Sum solution faster than a map? What if we use AVX-512 instructions?</description>
    </item>
    
    <item>
      <title>Underrust: What is the cost of sync::Once?</title>
      <link>https://darkcoding.net/software/cost-of-sync-once/</link>
      <pubDate>Sun, 18 Sep 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/cost-of-sync-once/</guid>
      <description>In Rust, what is the performance cost of using sync::Once after the initial setup?</description>
    </item>
    
    <item>
      <title>Underrust: Does it matter what type (u8, u32, ...) I use?</title>
      <link>https://darkcoding.net/software/does-it-matter-what-type-i-use/</link>
      <pubDate>Fri, 02 Sep 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/does-it-matter-what-type-i-use/</guid>
      <description>In Rust, how does using a different primitive type (u8, i32, u64, &amp;hellip;) change the generated assembly?</description>
    </item>
    
    <item>
      <title>The Underrust: Rust&#39;s assembly output</title>
      <link>https://darkcoding.net/software/underrust-rust-assembly-output/</link>
      <pubDate>Wed, 31 Aug 2022 00:00:00 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/underrust-rust-assembly-output/</guid>
      <description>Assembly: In all the world of the programmer, there is no more important output.</description>
    </item>
    
    <item>
      <title>A very small Rust binary indeed</title>
      <link>https://darkcoding.net/software/a-very-small-rust-binary-indeed/</link>
      <pubDate>Fri, 01 Jul 2022 09:00:32 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/a-very-small-rust-binary-indeed/</guid>
      <description>Can we make a Rust program that&amp;rsquo;s as small as it&amp;rsquo;s assembler equivalent?</description>
    </item>
    
    <item>
      <title>A random number you already have: The stack address</title>
      <link>https://darkcoding.net/software/a-random-number-you-already-have/</link>
      <pubDate>Sun, 05 Jun 2022 16:19:39 -0700</pubDate>
      
      <guid>https://darkcoding.net/software/a-random-number-you-already-have/</guid>
      <description>Thanks to Address Space Layout Randomization you can use the address of a stack variable as a zero-cost random number.</description>
    </item>
    
    <item>
      <title>Return Value Optimization in Rust</title>
      <link>https://darkcoding.net/software/return-value-optimization-in-rust/</link>
      <pubDate>Sat, 26 Feb 2022 14:49:47 -0800</pubDate>
      
      <guid>https://darkcoding.net/software/return-value-optimization-in-rust/</guid>
      <description>Rust avoids memory copies by optimizing return value placement.</description>
    </item>
    
    <item>
      <title>Rust atomics on x86: How and why</title>
      <link>https://darkcoding.net/software/rust-atomics-on-x86/</link>
      <pubDate>Sun, 30 Jan 2022 15:18:06 -0800</pubDate>
      
      <guid>https://darkcoding.net/software/rust-atomics-on-x86/</guid>
      <description>On x86 it doesn&amp;rsquo;t really matter what sync::atomic::Ordering you choose.</description>
    </item>
    
    <item>
      <title>Rust is also C</title>
      <link>https://darkcoding.net/software/rust-is-also-c/</link>
      <pubDate>Mon, 17 Jan 2022 09:04:46 -0800</pubDate>
      
      <guid>https://darkcoding.net/software/rust-is-also-c/</guid>
      <description>Safety is boring, let&amp;rsquo;s do pointer arithmetic.</description>
    </item>
    
    <item>
      <title>epoll: The API that powers the modern internet</title>
      <link>https://darkcoding.net/software/epoll-the-api-that-powers-the-modern-internet/</link>
      <pubDate>Mon, 03 Jan 2022 15:46:10 -0800</pubDate>
      
      <guid>https://darkcoding.net/software/epoll-the-api-that-powers-the-modern-internet/</guid>
      <description>Linux&amp;rsquo;s epoll API solved the C10K problem, enabling fast and afforable Internet services.</description>
    </item>
    
    <item>
      <title>Scripting Minecraft server with Python</title>
      <link>https://darkcoding.net/software/scripting-minecraft-server-with-python/</link>
      <pubDate>Sat, 11 Dec 2021 16:22:11 -0800</pubDate>
      
      <guid>https://darkcoding.net/software/scripting-minecraft-server-with-python/</guid>
      <description>Minecraft has an API. If you run your own server you can program it from Python.</description>
    </item>
    
    <item>
      <title>Rust Performance 101 in 5 Minutes</title>
      <link>https://darkcoding.net/software/rust-performance-101-in-5-minutes/</link>
      <pubDate>Wed, 16 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/rust-performance-101-in-5-minutes/</guid>
      <description>Is your Rust program CPU bound? Here are the very first things you can do on Linux.</description>
    </item>
    
    <item>
      <title>CPU silently disappointed with your choice of instruction ordering</title>
      <link>https://darkcoding.net/software/cpu-silently-disappointed-with-your-choice-of-instruction-ordering/</link>
      <pubDate>Wed, 09 Jun 2021 23:10:34 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/cpu-silently-disappointed-with-your-choice-of-instruction-ordering/</guid>
      <description>An adventure in CPU out-of-order instruction execution.</description>
    </item>
    
    <item>
      <title>Traits: Rust&#39;s unifying concept</title>
      <link>https://darkcoding.net/software/traits-rusts-unifying-concept/</link>
      <pubDate>Sun, 31 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/traits-rusts-unifying-concept/</guid>
      <description>Rust&amp;rsquo;s traits are a single concept that unifies interfaces, abstract classes, mix-ins, operator overloading, contraints on generics, and more.</description>
    </item>
    
    <item>
      <title>A day in the life of a professional software engineer</title>
      <link>https://darkcoding.net/software/a-day-in-the-life-of-a-professional-software-engineer/</link>
      <pubDate>Sun, 20 Dec 2020 23:05:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/a-day-in-the-life-of-a-professional-software-engineer/</guid>
      <description>Just a normal day reversing linked lists on the whiteboard.</description>
    </item>
    
    <item>
      <title>Three things I wish I’d known learning Rust</title>
      <link>https://darkcoding.net/software/three-things-i-wish-id-known-learning-rust/</link>
      <pubDate>Thu, 19 Nov 2020 00:04:14 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/three-things-i-wish-id-known-learning-rust/</guid>
      <description>It will take longer to learn than most languages, the standard library is small so you&amp;rsquo;ll need dependencies, and a lot of behavior is in traits.</description>
    </item>
    
    <item>
      <title>Quote of the day: A stirring speech</title>
      <link>https://darkcoding.net/behaviour/quote-of-the-day-a-stirring-speech/</link>
      <pubDate>Thu, 11 Jun 2020 00:14:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/quote-of-the-day-a-stirring-speech/</guid>
      <description>&amp;hellip; because, at every new incident, your fortitude was to be called forth, and your courage exhibited; because danger and death surrounded it, and these you were to brave and overcome. For this was it a glorious, for this was it an honourable undertaking.</description>
    </item>
    
    <item>
      <title>The simplest CLI that could possibly work</title>
      <link>https://darkcoding.net/software/the-simplest-cli-that-could-possibly-work/</link>
      <pubDate>Sat, 06 Jun 2020 18:12:06 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/the-simplest-cli-that-could-possibly-work/</guid>
      <description>In Go, what&amp;rsquo;s the simplest possible way to put all your ad-hoc tools in one place?</description>
    </item>
    
    <item>
      <title>Collect and handle multiple errors in Go</title>
      <link>https://darkcoding.net/software/collect-and-handle-multiple-errors-in-go/</link>
      <pubDate>Fri, 22 May 2020 17:33:53 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/collect-and-handle-multiple-errors-in-go/</guid>
      <description>In Go, how do you run several operations that might return an error, and return those errors at the end? Here&amp;rsquo;s how I do it.</description>
    </item>
    
    <item>
      <title>A developer goes to a DevOps conference</title>
      <link>https://darkcoding.net/software/a-developer-goes-to-a-devops-conference/</link>
      <pubDate>Fri, 13 Sep 2019 17:54:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/a-developer-goes-to-a-devops-conference/</guid>
      <description>Two days at PDX DevOpsDays, a gathering of system administrators who use version control, and write a lot of YAML.</description>
    </item>
    
    <item>
      <title>Reading MediaRecorder’s webm/opus output</title>
      <link>https://darkcoding.net/software/reading-mediarecorders-webm-opus-output/</link>
      <pubDate>Fri, 27 Jul 2018 19:34:18 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/reading-mediarecorders-webm-opus-output/</guid>
      <description>&lt;p&gt;Javascript can now record, manipulate and play sound thanks to a whole range of audio-related API&amp;rsquo;s. One of the simpler and more useful parts of that is &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;MediaRecorder&lt;/a&gt; which can record sound, typically from the user&amp;rsquo;s microphone.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const stream = await navigator.mediaDevices
    .getUserMedia({audio: true, video: false});  // Media Capture and Streams API
const mediaRecorder = new MediaRecorder(stream); // MediaStream Recording API
mediaRecorder.ondataavailable = (ev) =&amp;gt; {        // ev is a BlobEvent
    // ev.data is a Blob. Send it to the server.
};
mediaRecorder.start(50);  // call ondataavailable every 50ms
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MediaRecorder&lt;/code&gt; on Chrome produces output with mime type &lt;em&gt;audio/webm;codecs=opus&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Let me guide you through the WebM / Matroska / EBML maze&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.webmproject.org/docs/container/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;WebM&lt;/a&gt; format is a container, which can contain many things. In our case it contains audio encoded with the &lt;a href=&#34;https://en.wikipedia.org/wiki/Opus_%28audio_format%29&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Opus&lt;/a&gt; codec. We are only going to look at the container, not the encoded audio.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Javascript’s async/await and Promise in a few words</title>
      <link>https://darkcoding.net/software/javascripts-async-await-and-promise-in-a-few-words/</link>
      <pubDate>Fri, 27 Jul 2018 14:30:45 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/javascripts-async-await-and-promise-in-a-few-words/</guid>
      <description>This is a very common pattern in Javascript:</description>
    </item>
    
    <item>
      <title>Growing software, in two tweets</title>
      <link>https://darkcoding.net/software/growing-software-in-two-tweets/</link>
      <pubDate>Thu, 29 Mar 2018 18:34:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/growing-software-in-two-tweets/</guid>
      <description>&lt;p&gt;Gardening is my preferred metaphor for software. When I grow a new piece of software, there is a very predictable path I go through as I attempt to manage it’s complexity. It is, in fast-forward, the history of programming language design. That process is short enough to capture in about 400 characters, as two tweets.&lt;/p&gt;
&lt;blockquote class=&#34;twitter-tweet&#34; data-lang=&#34;en&#34;&gt;
  &lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;
    Growing software, in two tweets:&lt;br /&gt;1. Write `main`. Put your program in there.&lt;br /&gt;2. `main` too big? Extract functions. Use global vars.&lt;br /&gt;3. Too many functions? Group functions and their data (replacing global vars) into objects.
  &lt;/p&gt;&amp;mdash; grahamking (@grahamking) 
&lt;p&gt;&lt;a href=&#34;https://twitter.com/grahamking/status/973271794827214848?ref_src=twsrc%5Etfw&#34;&gt;March 12, 2018&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&#34;twitter-tweet&#34; data-conversation=&#34;none&#34; data-lang=&#34;en&#34;&gt;
  &lt;p lang=&#34;en&#34; dir=&#34;ltr&#34;&gt;
    4. Too many objects? Group objects into packages. Make some methods private.&lt;br /&gt;5. Too many packages? Split out a new project, either library or network service.&lt;br /&gt;6. Iterate from 2 when other functions grow too big.
  &lt;/p&gt;&amp;mdash; grahamking (@grahamking) 
&lt;p&gt;&lt;a href=&#34;https://twitter.com/grahamking/status/973271795619979264?ref_src=twsrc%5Etfw&#34;&gt;March 12, 2018&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>What Made Maddy Run</title>
      <link>https://darkcoding.net/behaviour/what-made-maddy-run/</link>
      <pubDate>Sat, 11 Nov 2017 21:58:29 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/what-made-maddy-run/</guid>
      <description>What Made Maddy Run by Kate Fagan, is a book about the importance of doing what you love, of really listening to the people close to you.</description>
    </item>
    
    <item>
      <title>Learn Better – book notes</title>
      <link>https://darkcoding.net/behaviour/learn-better-book-notes/</link>
      <pubDate>Mon, 22 May 2017 04:25:28 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/learn-better-book-notes/</guid>
      <description>Learn Better, by Ulrich Bosner is an interesting, valuable book, that is too long.</description>
    </item>
    
    <item>
      <title>systemd socket activation in Go</title>
      <link>https://darkcoding.net/software/systemd-socket-activation-in-go/</link>
      <pubDate>Sat, 09 Apr 2016 19:01:26 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/systemd-socket-activation-in-go/</guid>
      <description>To start a server on a port below 1024 (i.</description>
    </item>
    
    <item>
      <title>The Joy of systemd</title>
      <link>https://darkcoding.net/software/the-joy-of-systemd/</link>
      <pubDate>Tue, 12 Jan 2016 16:51:04 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/the-joy-of-systemd/</guid>
      <description>Three years ago when I wrote The Joy of Upstart, that was the easiest way to turn your scripts into daemons.</description>
    </item>
    
    <item>
      <title>How Ada Lovelace solved problems</title>
      <link>https://darkcoding.net/ideas/how-ada-lovelace-solved-problems/</link>
      <pubDate>Fri, 11 Dec 2015 05:02:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/how-ada-lovelace-solved-problems/</guid>
      <description>Over 170 years ago, on Friday 21st July 1843, at 4 o’clock, Ada Lovelace was working on a mathematics problem, possibly on the first known computer program (it was written that summer).</description>
    </item>
    
    <item>
      <title>Facebook’s code quality problem</title>
      <link>https://darkcoding.net/software/facebooks-code-quality-problem/</link>
      <pubDate>Sat, 31 Oct 2015 23:15:51 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/facebooks-code-quality-problem/</guid>
      <description>&lt;p&gt;&lt;strong&gt;tl;dr&lt;/strong&gt;: It looks like Facebook is getting the textbook results of ignoring code quality.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update&lt;/em&gt;: More examples, and insights from ex-employees in the &lt;a href=&#34;https://www.reddit.com/r/programming/comments/3r90iy/facebooks_code_quality_problem/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;reddit discussion&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Facebook has a software quality problem. I’m going to try to convince you with three examples. This is important because it demonstrates the time-honored principle that &lt;strong&gt;quality matters&lt;/strong&gt;. In demonstrates it, as Facebook engineers like to say, at scale. I don’t work at Facebook or any competitor, I’m just an observer.&lt;/p&gt;
&lt;h2 id=&#34;exhibit-a-8220ios-can8217t-handle-our-scale8221&#34;&gt;Exhibit A: “iOS can’t handle our scale” &lt;/h2&gt;
&lt;p&gt;About a month ago a Facebook engineer gave this presentation: &lt;a href=&#34;http://www.slideshare.net/quellish/simon-whitaker&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;iOS at Facebook&lt;/a&gt;, which was followed by a discussion &lt;a href=&#34;https://www.reddit.com/r/programming/comments/3m5n2n/facebook_engineer_ios_cant_handle_our_scale/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;on reddit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Facebook iOS app has over &lt;a href=&#34;http://quellish.tumblr.com/post/126712999812/how-on-earth-the-facebook-ios-application-is-so&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;18,000 Objective-C classes&lt;/a&gt;, and in a single week 429 people contributing to it. That’s 429 people working, in some way, on the Facebook iOS app. Rather than take the obvious lesson that there are too many people working on this application, the presentation goes on to blame everything from git to Xcode for those 18,000 classes.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Decrypt your HTTPS traffic with mitmproxy</title>
      <link>https://darkcoding.net/software/decrypt-your-https-traffic-with-mitmproxy/</link>
      <pubDate>Mon, 26 Oct 2015 00:18:04 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/decrypt-your-https-traffic-with-mitmproxy/</guid>
      <description>tl;dr Use the mitmproxy doc, return here if trouble.</description>
    </item>
    
    <item>
      <title>OSCON 2015: Impressions</title>
      <link>https://darkcoding.net/software/oscon-2015-impressions/</link>
      <pubDate>Wed, 26 Aug 2015 03:19:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/oscon-2015-impressions/</guid>
      <description>I attended OSCON for the first time this year in Portland.</description>
    </item>
    
    <item>
      <title>GopherCon 2015: Favorite talks</title>
      <link>https://darkcoding.net/software/gophercon-2015-favorite-talks/</link>
      <pubDate>Fri, 31 Jul 2015 03:58:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/gophercon-2015-favorite-talks/</guid>
      <description>GopherCon was in Denver again this year, and a lot of fun it was, mostly the meeting of wonderful people.</description>
    </item>
    
    <item>
      <title>We are Equality</title>
      <link>https://darkcoding.net/society/we-are-equality/</link>
      <pubDate>Thu, 30 Jul 2015 04:33:21 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/we-are-equality/</guid>
      <description>When the President of the United States of America wants to send an email, we don’t close email-space, and delay your email so his very important one can go through.</description>
    </item>
    
    <item>
      <title>Building shared libraries in Go: Part 2</title>
      <link>https://darkcoding.net/software/building-shared-libraries-in-go-part-2/</link>
      <pubDate>Fri, 24 Jul 2015 21:12:45 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/building-shared-libraries-in-go-part-2/</guid>
      <description>In part 1 we called a very simple Go shared library from Python.</description>
    </item>
    
    <item>
      <title>Building shared libraries in Go: Part 1</title>
      <link>https://darkcoding.net/software/building-shared-libraries-in-go-part-1/</link>
      <pubDate>Wed, 15 Jul 2015 02:22:07 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/building-shared-libraries-in-go-part-1/</guid>
      <description>Since 1.</description>
    </item>
    
    <item>
      <title>How memory is allocated</title>
      <link>https://darkcoding.net/software/how-memory-is-allocated/</link>
      <pubDate>Fri, 10 Jul 2015 15:38:57 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/how-memory-is-allocated/</guid>
      <description>tl;dr man 2 brk</description>
    </item>
    
    <item>
      <title>Go: Slice search vs map lookup</title>
      <link>https://darkcoding.net/software/go-slice-search-vs-map-lookup/</link>
      <pubDate>Tue, 30 Jun 2015 06:09:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-slice-search-vs-map-lookup/</guid>
      <description>tl;dr Use a map.</description>
    </item>
    
    <item>
      <title>Software engineering practices</title>
      <link>https://darkcoding.net/software/software-engineering-practices/</link>
      <pubDate>Fri, 19 Jun 2015 02:08:49 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/software-engineering-practices/</guid>
      <description>A selection of software engineering practices, from notes I took at an XTC meetup many years ago.</description>
    </item>
    
    <item>
      <title>How I read job postings</title>
      <link>https://darkcoding.net/behaviour/how-i-read-job-postings/</link>
      <pubDate>Wed, 17 Jun 2015 23:40:02 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/how-i-read-job-postings/</guid>
      <description>In the interests of illustrating the complicated programmer psyche for the benefit of anyone involved in recruitment, here’s the two things I look at in a job advert:</description>
    </item>
    
    <item>
      <title>Go: The price of interface{}</title>
      <link>https://darkcoding.net/software/go-the-price-of-interface/</link>
      <pubDate>Tue, 26 May 2015 23:43:48 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-the-price-of-interface/</guid>
      <description>Go&amp;rsquo;s empty interface{} is the interface that everything implements.</description>
    </item>
    
    <item>
      <title>Science fiction: Ancillary Sword</title>
      <link>https://darkcoding.net/society/science-fiction-ancillary-sword/</link>
      <pubDate>Wed, 13 May 2015 03:56:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/science-fiction-ancillary-sword/</guid>
      <description>It was a gesture meant to comfort.</description>
    </item>
    
    <item>
      <title>Quotes from veteran software engineers</title>
      <link>https://darkcoding.net/software/quotes-from-veteran-software-engineers/</link>
      <pubDate>Mon, 02 Mar 2015 06:53:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/quotes-from-veteran-software-engineers/</guid>
      <description>The software industry is the most fashion-conscious industry I know of.</description>
    </item>
    
    <item>
      <title>Raw sockets in Go: Link layer</title>
      <link>https://darkcoding.net/software/raw-sockets-in-go-link-layer/</link>
      <pubDate>Sat, 31 Jan 2015 20:55:57 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/raw-sockets-in-go-link-layer/</guid>
      <description>Continuing our dive into the Internet Protocol Suite from Go (See part 1 Raw sockets in Go: IP layer), we are going to the link layer, so we can see the IP headers.</description>
    </item>
    
    <item>
      <title>Continuous Delivery: my notes</title>
      <link>https://darkcoding.net/software/continuous-delivery-my-notes/</link>
      <pubDate>Sun, 25 Jan 2015 04:44:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/continuous-delivery-my-notes/</guid>
      <description>Continuous Delivery, by Jez Humble and David Farley is about three big ideas to get your code into production more reliably:  Make a deployment pipeline: commit -&amp;gt; unit test -&amp;gt; acceptance test -&amp;gt; … -&amp;gt; deploy -&amp;gt; release Automate everything.</description>
    </item>
    
    <item>
      <title>Release It: Write software for production</title>
      <link>https://darkcoding.net/software/release-it-write-software-for-production/</link>
      <pubDate>Mon, 10 Nov 2014 05:12:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/release-it-write-software-for-production/</guid>
      <description>We need to design software to run in production.</description>
    </item>
    
    <item>
      <title>What a visit from Reddit looks like</title>
      <link>https://darkcoding.net/society/what-a-visit-from-reddit-looks-like/</link>
      <pubDate>Tue, 04 Nov 2014 04:58:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/what-a-visit-from-reddit-looks-like/</guid>
      <description>My credit card generator was recently on the front page of reddit.</description>
    </item>
    
    <item>
      <title>Learning assembler on Linux</title>
      <link>https://darkcoding.net/software/learning-assembler-on-linux/</link>
      <pubDate>Sat, 23 Aug 2014 03:49:14 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/learning-assembler-on-linux/</guid>
      <description>For entertainment, I&amp;rsquo;m learning assembler on Linux.</description>
    </item>
    
    <item>
      <title>Dump Go Abstract Syntax Tree</title>
      <link>https://darkcoding.net/software/dump-go-abstract-syntax-tree/</link>
      <pubDate>Sat, 28 Jun 2014 19:09:44 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/dump-go-abstract-syntax-tree/</guid>
      <description>Go has good support for examining and modifying Go source code.</description>
    </item>
    
    <item>
      <title>Sync, a Unix way</title>
      <link>https://darkcoding.net/software/sync-a-unix-way/</link>
      <pubDate>Sat, 24 May 2014 04:49:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/sync-a-unix-way/</guid>
      <description>Ever since Dropbox, I&amp;rsquo;ve been searching for a self-hosted, secure (and now Condi-free) way of keeping my machines synchronised and backed up.</description>
    </item>
    
    <item>
      <title>GopherCon 2014 favorite talks, notes</title>
      <link>https://darkcoding.net/software/gophercon-2014-best-talks-and-notes/</link>
      <pubDate>Sun, 04 May 2014 18:39:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/gophercon-2014-best-talks-and-notes/</guid>
      <description>&lt;p&gt;My favorite talks at &lt;a href=&#34;http://gophercon.com/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;GopherCon 2014&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://peter.bourgon.org/go-in-production/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Peter Bourgon: Best Practices for Production Environments&lt;/a&gt; Soundcloud were an early Go adopter, and this talk is their distilled learnings from two years of Go: Repo structure, config, logging, testing, deployment, and lots more. The one talk you need if you’re starting (or running) a significant Go project, and you want to do it right.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/gophercon/2014-talks/raw/master/petar-maymounkov-go-circuit.pdf&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Petar Maymounkov: The Go Circuit: Towards Elastic Computation with No Failures&lt;/a&gt; Stick with this one. It starts off quite academic, but gets fascinating very fast. He models whole companies as a distributed system (based on &lt;a href=&#34;https://en.wikipedia.org/wiki/Communicating_sequential_processes&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;CSP&lt;/a&gt;), then builds a language-agnostic cluster programming library where the API is a filesystem &lt;a href=&#34;https://gocircuit.github.io/circuit/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;The Circuit&lt;/a&gt;. One of the highlights of the conference for me was building a filesystem with Petar in the hallway.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/gophercon/2014-talks/raw/master/John_Graham-Cumming_A_Channel_Compendium.pdf&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;John Graham-Cumming: A Channel Compendium&lt;/a&gt; John is the author of those great in-depth &lt;a href=&#34;http://blog.cloudflare.com/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Cloudflare blog&lt;/a&gt; posts. Solid talk about Go channels. &lt;code&gt;nil&lt;/code&gt; channels always block, so you can ‘disable’ a select clause by setting a channel to nil. Closed channels never block. Heartbeat is just &lt;code&gt;time.Tick&lt;/code&gt;, timeout is &lt;code&gt;time.After&lt;/code&gt;. Go programs are small sequential pieces joined by channels.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those are the three talks I enjoyed most. Here are my general notes on the conference and a few of the other talks.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Raw sockets in Go: IP layer</title>
      <link>https://darkcoding.net/uncategorized/raw-sockets-in-go-ip-layer/</link>
      <pubDate>Sat, 01 Mar 2014 23:41:48 +0000</pubDate>
      
      <guid>https://darkcoding.net/uncategorized/raw-sockets-in-go-ip-layer/</guid>
      <description>In the Internet protocol suite we usually work at the transport layer, with TCP or UDP.</description>
    </item>
    
    <item>
      <title>Three best programming books</title>
      <link>https://darkcoding.net/software/three-best-programming-books/</link>
      <pubDate>Sat, 01 Mar 2014 22:19:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/three-best-programming-books/</guid>
      <description>Here are my three favorite programming books, the ones I consider most important and would most recommend.</description>
    </item>
    
    <item>
      <title>Go: How slices grow</title>
      <link>https://darkcoding.net/software/go-how-slices-grow/</link>
      <pubDate>Thu, 12 Dec 2013 04:49:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-how-slices-grow/</guid>
      <description>In Go (golang) what happens to memory when you append to a slice?</description>
    </item>
    
    <item>
      <title>My setup: Hardware</title>
      <link>https://darkcoding.net/behaviour/my-setup-hardware/</link>
      <pubDate>Sat, 07 Dec 2013 23:46:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/my-setup-hardware/</guid>
      <description>Here&amp;rsquo;s my current setup, and the hardware I got, in case you were curious.</description>
    </item>
    
    <item>
      <title>Kinesis Advantage after four months</title>
      <link>https://darkcoding.net/software/kinesis-advantage-after-four-months/</link>
      <pubDate>Sat, 07 Dec 2013 22:58:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/kinesis-advantage-after-four-months/</guid>
      <description>Update Nov 2021: It&amp;rsquo;s been eight years, I&amp;rsquo;m typing this on that original keyboard, it&amp;rsquo;s still my primary keyboard.</description>
    </item>
    
    <item>
      <title>Realtime Conf 2013: Favorite talks</title>
      <link>https://darkcoding.net/software/realtime-conf-2013-favorite-talks/</link>
      <pubDate>Tue, 22 Oct 2013 04:33:21 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/realtime-conf-2013-favorite-talks/</guid>
      <description>Realtime Conf 2013 just finished in Portland.</description>
    </item>
    
    <item>
      <title>WordPress Black Hat SEO dissected</title>
      <link>https://darkcoding.net/software/wordpress-black-hat-seo-dissected/</link>
      <pubDate>Tue, 17 Sep 2013 20:00:29 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/wordpress-black-hat-seo-dissected/</guid>
      <description>Last weekend a friend asked me why there were pharma links hidden in her GoDaddy hosted WordPress site, and that led me into the WordPress black hat SEO rabbit hole.</description>
    </item>
    
    <item>
      <title>Quote: Look well to each step</title>
      <link>https://darkcoding.net/misc/quote-look-well-to-each-step/</link>
      <pubDate>Wed, 11 Sep 2013 02:08:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/quote-look-well-to-each-step/</guid>
      <description>From the epilogue of Jon Krakauer&amp;rsquo;s &amp;ldquo;Into the Wild&amp;rdquo;:</description>
    </item>
    
    <item>
      <title>What if everyone worked remotely?</title>
      <link>https://darkcoding.net/behaviour/what-if-everyone-worked-remotely/</link>
      <pubDate>Mon, 02 Sep 2013 15:49:44 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/what-if-everyone-worked-remotely/</guid>
      <description>What would happen if everyone had the freedom to work remotely?</description>
    </item>
    
    <item>
      <title>How GPG works: Encrypt</title>
      <link>https://darkcoding.net/software/how-gpg-works-encrypt/</link>
      <pubDate>Tue, 30 Jul 2013 21:02:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/how-gpg-works-encrypt/</guid>
      <description>Here&amp;rsquo;s what happens when you encrypt a message with GPG / GnuPG (and probably other OpenPGP implementations):</description>
    </item>
    
    <item>
      <title>Online upgrades in Go</title>
      <link>https://darkcoding.net/software/online-upgrades-in-go/</link>
      <pubDate>Sun, 21 Jul 2013 04:40:55 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/online-upgrades-in-go/</guid>
      <description>tl;dr Send your socket fd over a UNIX domain socket: syscall/passfd_test.</description>
    </item>
    
    <item>
      <title>Quote of the day: Bruce Schneier</title>
      <link>https://darkcoding.net/society/quote-of-the-day-bruce-schneier/</link>
      <pubDate>Fri, 14 Jun 2013 03:02:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/quote-of-the-day-bruce-schneier/</guid>
      <description>The lesson here is that it is insufficient to protect ourselves with laws; we need to protect ourselves with mathematics</description>
    </item>
    
    <item>
      <title>SSH and OpenPGP keys</title>
      <link>https://darkcoding.net/ssh-and-openpgp-keys/</link>
      <pubDate>Thu, 30 May 2013 00:00:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/ssh-and-openpgp-keys/</guid>
      <description>OpenPGP / GnuPG  From keyserver: gpg --recv-keys B3B929D2</description>
    </item>
    
    <item>
      <title>Co-located teams are a business risk</title>
      <link>https://darkcoding.net/behaviour/co-located-teams-are-a-business-risk/</link>
      <pubDate>Mon, 27 May 2013 22:53:22 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/co-located-teams-are-a-business-risk/</guid>
      <description>Early in my career, I worked for a company run by two ex-military officers.</description>
    </item>
    
    <item>
      <title>We are all polyglots</title>
      <link>https://darkcoding.net/software/we-are-all-polyglots/</link>
      <pubDate>Thu, 02 May 2013 16:24:11 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/we-are-all-polyglots/</guid>
      <description>I used to know two programming languages at any one time; what I called a serious language and a what I called a scripting language.</description>
    </item>
    
    <item>
      <title>Rust: What I learnt so far</title>
      <link>https://darkcoding.net/software/rust-what-i-learnt-so-far/</link>
      <pubDate>Fri, 26 Apr 2013 21:58:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/rust-what-i-learnt-so-far/</guid>
      <description>Update 2021: DO NOT USE THIS BLOG POST TO LEARN RUST The language has changed tremendously.</description>
    </item>
    
    <item>
      <title>PyCon 2013: My two favorite talks</title>
      <link>https://darkcoding.net/software/pycon-2013-my-favorite-talks/</link>
      <pubDate>Tue, 26 Mar 2013 15:41:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/pycon-2013-my-favorite-talks/</guid>
      <description>PyCon is an annual gathering of Python programmers.</description>
    </item>
    
    <item>
      <title>Chapter books for a three / four year old</title>
      <link>https://darkcoding.net/misc/chapter-books-for-a-three-four-year-old/</link>
      <pubDate>Tue, 05 Mar 2013 22:32:12 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/chapter-books-for-a-three-four-year-old/</guid>
      <description>&lt;p&gt;Starting in summer 2012, when my son was 3.5, I started reading chapter books to him, a chapter or two a night. Before we started chapter books, it was always easy to find good books to read to them (from board books upwards). Now though, I struggled finding good chapter books for this age group.&lt;/p&gt;
&lt;p&gt;I’ve collected a list of the ones we tried, in order, with notes if appropriate. I’m linking all the books to Amazon to be clear which book it was, but we got most from our local library.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/gp/product/B000N750GY/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B000N750GY&amp;amp;linkCode=as2&amp;amp;tag=darkcoding-20&#34;&gt;Jason’s Quest&lt;/a&gt;&lt;img loading=&#34;lazy&#34; src=&#34;//www.assoc-amazon.com/e/ir?t=darkcoding-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=B000N750GY&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt; – A lovely book to start with. A wonderful adventure, which never gets too frightening, or too hard to follow, and the good folks win in a good way.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/gp/product/0142410349/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0142410349&amp;amp;linkCode=as2&amp;amp;tag=darkcoding-20&#34;&gt;Fantastic Mr. Fox&lt;/a&gt;&lt;img loading=&#34;lazy&#34; src=&#34;//www.assoc-amazon.com/e/ir?t=darkcoding-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=0142410349&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt; – Might have been a little too frightening at the beginning, with the mean farmers trying to kill the fox. In retrospect I would have saved it till he was a few months older.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.amazon.com/gp/product/0316186465/ref=as_li_ss_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0316186465&amp;amp;linkCode=as2&amp;amp;tag=darkcoding-20&#34;&gt;Mr. Popper’s Penguins&lt;/a&gt;&lt;img loading=&#34;lazy&#34; src=&#34;//www.assoc-amazon.com/e/ir?t=darkcoding-20&amp;#038;l=as2&amp;#038;o=1&amp;#038;a=0316186465&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; style=&#34;border:none !important; margin:0px !important;&#34; /&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Google World</title>
      <link>https://darkcoding.net/society/google-world/</link>
      <pubDate>Sat, 23 Feb 2013 04:54:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/google-world/</guid>
      <description>First thing in the morning, I check my gmail on my Google Nexus 7 tablet, or my Nexus 4 phone, whichever is nearest.</description>
    </item>
    
    <item>
      <title>Keyword arguments in C</title>
      <link>https://darkcoding.net/software/keyword-arguments-in-c/</link>
      <pubDate>Tue, 15 Jan 2013 05:03:49 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/keyword-arguments-in-c/</guid>
      <description>This is valid C nowadays:</description>
    </item>
    
    <item>
      <title>How will you measure  your life? – book notes</title>
      <link>https://darkcoding.net/society/how-will-you-measure-your-life-book-notes/</link>
      <pubDate>Mon, 31 Dec 2012 18:37:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/how-will-you-measure-your-life-book-notes/</guid>
      <description>How Will You Measure Your Life?</description>
    </item>
    
    <item>
      <title>Why I prefer Android to iOS</title>
      <link>https://darkcoding.net/software/why-i-prefer-android-to-ios/</link>
      <pubDate>Mon, 31 Dec 2012 17:53:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/why-i-prefer-android-to-ios/</guid>
      <description>Our house has two iOS devices (an iPad and and iPod Touch), and two Android devices (Nexus 7 tablet, Samsung Galaxy phone).</description>
    </item>
    
    <item>
      <title>Tools for Change, Social Change Conference 1995 notes</title>
      <link>https://darkcoding.net/behaviour/tools-for-change-social-change-conference-1995-notes/</link>
      <pubDate>Tue, 23 Oct 2012 04:31:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/tools-for-change-social-change-conference-1995-notes/</guid>
      <description>In these months of American politicians trying to influence you, I thought it interesting to look at ways of using the same tools for positive change.</description>
    </item>
    
    <item>
      <title>David Suzuki on television</title>
      <link>https://darkcoding.net/behaviour/david-suzuki-on-television/</link>
      <pubDate>Tue, 23 Oct 2012 01:11:29 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/david-suzuki-on-television/</guid>
      <description>David Suzuki tells of making television science programs.</description>
    </item>
    
    <item>
      <title>Resident and Virtual memory on Linux: A short example</title>
      <link>https://darkcoding.net/software/resident-and-virtual-memory-on-linux-a-short-example/</link>
      <pubDate>Wed, 03 Oct 2012 05:29:42 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/resident-and-virtual-memory-on-linux-a-short-example/</guid>
      <description>Tools like top show processes using two kinds of memory:</description>
    </item>
    
    <item>
      <title>What is WebRTC? Post on LincolnLoop’s blog</title>
      <link>https://darkcoding.net/software/what-is-webrtc-post-on-lincolnloops-blog/</link>
      <pubDate>Wed, 12 Sep 2012 16:33:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/what-is-webrtc-post-on-lincolnloops-blog/</guid>
      <description>I blogged What is WebRTC over on Lincoln Loop’s blog:</description>
    </item>
    
    <item>
      <title>John Cleese – Take micro creativity retreats</title>
      <link>https://darkcoding.net/ideas/john-cleese-take-micro-creativity-retreats/</link>
      <pubDate>Sat, 08 Sep 2012 22:43:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/john-cleese-take-micro-creativity-retreats/</guid>
      <description>John Cleese gives a great talk on creativity (embedded below).</description>
    </item>
    
    <item>
      <title>Does success at high school predict success in life?</title>
      <link>https://darkcoding.net/society/does-success-at-high-school-predict-success-in-life/</link>
      <pubDate>Tue, 04 Sep 2012 05:39:23 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/does-success-at-high-school-predict-success-in-life/</guid>
      <description>Lives of Promise, by Karen Arnold, is a 14 year study of achievement and life choices.</description>
    </item>
    
    <item>
      <title>Democracy at work</title>
      <link>https://darkcoding.net/society/democracy-at-work/</link>
      <pubDate>Fri, 31 Aug 2012 08:35:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/democracy-at-work/</guid>
      <description>Most people reading this will be lucky enough to live in a democratic society.</description>
    </item>
    
    <item>
      <title>What is SPDY? Post on Lincoln Loop’s blog</title>
      <link>https://darkcoding.net/software/what-is-spdy-post-on-lincoln-loops-blog/</link>
      <pubDate>Thu, 12 Jul 2012 20:00:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/what-is-spdy-post-on-lincoln-loops-blog/</guid>
      <description>I blogged an introduction to and explanation of SPDY, the next-gen HTTP.</description>
    </item>
    
    <item>
      <title>Optimize for motivation: Post on Lincoln Loop’s blog</title>
      <link>https://darkcoding.net/behaviour/optimize-for-motivation/</link>
      <pubDate>Fri, 15 Jun 2012 16:15:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/optimize-for-motivation/</guid>
      <description>Excited to have my first post on Lincoln Loop’s blog, about intrinsic motivation, flow, and why you don’t find cats in offices:</description>
    </item>
    
    <item>
      <title>Go: Targeting a different architecture #golang</title>
      <link>https://darkcoding.net/software/go-targeting-a-different-architecture/</link>
      <pubDate>Thu, 14 Jun 2012 00:08:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-targeting-a-different-architecture/</guid>
      <description>Problem: You’re on a i386 machine, and you need to build for amd64, or vice-versa.</description>
    </item>
    
    <item>
      <title>Finally understanding Unicode and UTF-8</title>
      <link>https://darkcoding.net/software/finally-understanding-unicode-and-utf-8/</link>
      <pubDate>Thu, 31 May 2012 22:25:18 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/finally-understanding-unicode-and-utf-8/</guid>
      <description>Unicode maps 32-bit (4 byte) integers, also called code points or runes, to characters.</description>
    </item>
    
    <item>
      <title>Go @ Vancouver Polyglot Unconference</title>
      <link>https://darkcoding.net/software/go-vancouver-polyglot-unconference/</link>
      <pubDate>Sat, 26 May 2012 00:05:33 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-vancouver-polyglot-unconference/</guid>
      <description>I attended Vancouver’s Polyglot Unconference, met some wonderful people, and got to present a session on Go (#golang).</description>
    </item>
    
    <item>
      <title>Ward Cunningham quotes</title>
      <link>https://darkcoding.net/society/ward-cunningham-quotes/</link>
      <pubDate>Mon, 09 Apr 2012 00:14:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/ward-cunningham-quotes/</guid>
      <description>There’s an excellent interview of Ward Cunningham at InfoQ (Nov 2011).</description>
    </item>
    
    <item>
      <title>Code coverage in django with ‘coverage’ and ‘django-jenkins’</title>
      <link>https://darkcoding.net/software/code-coverage-in-django-with-coverage-and-django-jenkins/</link>
      <pubDate>Thu, 15 Mar 2012 17:59:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/code-coverage-in-django-with-coverage-and-django-jenkins/</guid>
      <description>Getting unit test code coverage in python, and in django, is easy thanks to coverage:</description>
    </item>
    
    <item>
      <title>In-memory key-value store in C, Go and Python</title>
      <link>https://darkcoding.net/software/in-memory-key-value-store-in-c-go-and-python/</link>
      <pubDate>Tue, 13 Mar 2012 05:00:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/in-memory-key-value-store-in-c-go-and-python/</guid>
      <description>On paternity leave for my second child, I found myself writing an in-memory hashmap (a poor-man’s memcached), in Go, Python and C.</description>
    </item>
    
    <item>
      <title>Go after four months #golang</title>
      <link>https://darkcoding.net/software/go-lang-after-four-months/</link>
      <pubDate>Wed, 29 Feb 2012 02:56:34 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/go-lang-after-four-months/</guid>
      <description>Update Nov 2021: I spent almost a decade doing Go full time and I still love it.</description>
    </item>
    
    <item>
      <title>Who we are. Why we do it.</title>
      <link>https://darkcoding.net/society/who-we-are-why-we-do-it/</link>
      <pubDate>Mon, 06 Feb 2012 00:37:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/who-we-are-why-we-do-it/</guid>
      <description>A year here and he still dreamed of cyberspace, hope fading nightly.</description>
    </item>
    
    <item>
      <title>Miami Vice: Off-duty</title>
      <link>https://darkcoding.net/misc/miami-vice-off-duty/</link>
      <pubDate>Thu, 02 Feb 2012 04:13:26 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/miami-vice-off-duty/</guid>
      <description>Someone once told me that interesting stories start like this:</description>
    </item>
    
    <item>
      <title>In Go, is your terminal a console or a pipe? isatty golang</title>
      <link>https://darkcoding.net/software/in-go-is-your-terminal-a-console-or-a-pipe-isatty-golang/</link>
      <pubDate>Tue, 03 Jan 2012 17:08:20 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/in-go-is-your-terminal-a-console-or-a-pipe-isatty-golang/</guid>
      <description>Is my terminal connected to the console, or to a pipe?</description>
    </item>
    
    <item>
      <title>Proxy socket.io and nginx on the same port, over SSL</title>
      <link>https://darkcoding.net/software/proxy-socket-io-and-nginx-on-the-same-port-over-ssl/</link>
      <pubDate>Thu, 22 Dec 2011 22:32:26 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/proxy-socket-io-and-nginx-on-the-same-port-over-ssl/</guid>
      <description>&lt;p&gt;My current project has a realtime part, using &lt;a href=&#34;http://socket.io/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;socket.io&lt;/a&gt; on &lt;a href=&#34;http://nodejs.org/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;nodejs&lt;/a&gt;, and a web part using &lt;a href=&#34;https://www.djangoproject.com/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;django&lt;/a&gt; on nginx / gunicorn. Here’s a setup to put them both on the same port, and make them both go over SSL. I’m assuming you’re on Ubuntu.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: I got this working last night, so no promises. You’ll certainly want to tweak haproxy’s config for performance. I also only tested it with socket.io’s web socket transport.&lt;/p&gt;
&lt;h2 id=&#34;overview&#34;&gt;Overview &lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://darkcoding.net/images/2011/12/socketio_web_same_port.png&#34;&gt;&lt;img src=&#34;https://darkcoding.net/images/2011/12/socketio_web_same_port.png&#34; alt=&#34;&#34; title=&#34;socketio_web_same_port&#34; width=&#34;600&#34; height=&#34;120&#34; class=&#34;alignnone size-full wp-image-1344&#34; srcset=&#34;https://darkcoding.net/images/2011/12/socketio_web_same_port.png 600w, https://darkcoding.net/images/2011/12/socketio_web_same_port-300x60.png 300w&#34; sizes=&#34;(max-width: 600px) 100vw, 600px&#34; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.stunnel.org/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;stunnel&lt;/a&gt; decrypts the ssl, so everything after that doesn’t know about it. It decrypts both web traffic (HTTPS to HTTP), and web socket traffic (WSS to WS).&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://haproxy.1wt.eu/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;haproxy&lt;/a&gt; sends web socket traffic to node and web traffic to nginx.&lt;/li&gt;
&lt;li&gt;node runs socket.io, handling the web socket traffic.&lt;/li&gt;
&lt;li&gt;nginx serves static content.&lt;/li&gt;
&lt;li&gt;gunicorn runs python / django, and there’s a database out back somewhere, but that’s not relevant here.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Currently nginx doesn’t&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Pretty command line / console output on Unix in Python and Go Lang</title>
      <link>https://darkcoding.net/software/pretty-command-line-console-output-on-unix-in-python-and-go-lang/</link>
      <pubDate>Wed, 16 Nov 2011 01:17:10 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/pretty-command-line-console-output-on-unix-in-python-and-go-lang/</guid>
      <description>There are lots of easy ways to improve the output of your command line scripts, without going full curses, such as single-line output, using bold text and colors, and even measuring the screen width and height.</description>
    </item>
    
    <item>
      <title>On why hackers don&#39;t work on large teams</title>
      <link>https://darkcoding.net/society/on-why-hackers-dont-work-on-large-teams/</link>
      <pubDate>Thu, 03 Nov 2011 00:05:10 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/on-why-hackers-dont-work-on-large-teams/</guid>
      <description>We’ve know for over 35 years that “adding manpower to a late software project makes it later”.</description>
    </item>
    
    <item>
      <title>Machiavelli on Occupy Wall Street</title>
      <link>https://darkcoding.net/society/machiavelli-on-occupy-wall-street/</link>
      <pubDate>Wed, 02 Nov 2011 22:25:44 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/machiavelli-on-occupy-wall-street/</guid>
      <description>Reading Machiavelli’s The Prince, his advice seems just as relevant today.</description>
    </item>
    
    <item>
      <title>Ad-blocking your iPad</title>
      <link>https://darkcoding.net/software/ad-blocking-your-ipad/</link>
      <pubDate>Tue, 25 Oct 2011 00:01:54 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/ad-blocking-your-ipad/</guid>
      <description>Monitoring iPad network traffic, and blocking advert download.</description>
    </item>
    
    <item>
      <title>Finding memory leaks in Python with objgraph</title>
      <link>https://darkcoding.net/software/finding-memory-leaks-in-python-with-objgraph/</link>
      <pubDate>Tue, 27 Sep 2011 00:37:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/finding-memory-leaks-in-python-with-objgraph/</guid>
      <description>After a frustrating time trying to find a memory leak in my Python code with guppy / heappy hpy, I tried objgraph and, wow, it makes it so easy!</description>
    </item>
    
    <item>
      <title>DjangoCon 2011: Psychology for your webapp</title>
      <link>https://darkcoding.net/behaviour/djangocon-2011-psychology-for-your-webapp/</link>
      <pubDate>Mon, 26 Sep 2011 16:32:07 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/djangocon-2011-psychology-for-your-webapp/</guid>
      <description>I got to do a 5min lightning talk at DjangoCon 2011 in Portland.</description>
    </item>
    
    <item>
      <title>Hostage Negotiation 101</title>
      <link>https://darkcoding.net/behaviour/hostage-negotiation-101/</link>
      <pubDate>Sun, 18 Sep 2011 20:24:18 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/hostage-negotiation-101/</guid>
      <description>I recently finished Gary Noesner’s Stalling for Time: My Life as an FBI Hostage Negotiator, by the F.</description>
    </item>
    
    <item>
      <title>Cleaning up old git branches</title>
      <link>https://darkcoding.net/software/cleaning-up-old-git-branches/</link>
      <pubDate>Fri, 16 Sep 2011 19:14:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/cleaning-up-old-git-branches/</guid>
      <description>After a while working with git, you end up with lots of branches, especially if you use git-flow inspired feature branches.</description>
    </item>
    
    <item>
      <title>Profiling Django for CPU bound apps</title>
      <link>https://darkcoding.net/software/profiling-django-for-cpu-bound-apps/</link>
      <pubDate>Thu, 15 Sep 2011 19:24:17 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/profiling-django-for-cpu-bound-apps/</guid>
      <description>&lt;p&gt;For most Django apps, indeed most webapps, the bottleneck is the database. The biggest gains usually come from reducing the number of queries used, and adding database indexes. &lt;a href=&#34;https://github.com/django-debug-toolbar/django-debug-toolbar&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;django-debug-toolbar&lt;/a&gt; helps a lot here. After that, caching and de-normalization also help reduce database queries.&lt;/p&gt;
&lt;p&gt;But what if your app is CPU bound? How do you find out where it’s spending it’s time? It’s easy with the &lt;a href=&#34;http://packages.python.org/django-extensions/runprofileserver.html&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;runprofileserver&lt;/a&gt; from &lt;a href=&#34;http://packages.python.org/django-extensions/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;django-extensions&lt;/a&gt; – here’s how:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Unicode in Python 2: Decode in, encode out</title>
      <link>https://darkcoding.net/software/unicode-in-python-2-decode-in-encode-out/</link>
      <pubDate>Wed, 10 Aug 2011 23:24:40 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/unicode-in-python-2-decode-in-encode-out/</guid>
      <description>In Python 2 you need to convert between encoded strings and unicode.</description>
    </item>
    
    <item>
      <title>git: Resolving &#39;git gc&#39; error: cannot lock ref</title>
      <link>https://darkcoding.net/software/git-resolving-git-gc-error-cannot-lock-ref/</link>
      <pubDate>Wed, 03 Aug 2011 16:37:01 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/git-resolving-git-gc-error-cannot-lock-ref/</guid>
      <description>If you get an error like this from git::</description>
    </item>
    
    <item>
      <title>The death of Sean Hoare, whistleblower</title>
      <link>https://darkcoding.net/society/the-death-of-sean-hoare-whistleblower/</link>
      <pubDate>Tue, 19 Jul 2011 05:53:35 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/the-death-of-sean-hoare-whistleblower/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;http://en.wikipedia.org/wiki/News_International_phone_hacking_scandal&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;News International phone hacking scandal&lt;/a&gt; is the case of a British tabloid’s staff hacking into several thousand people’s voicemail, over a period of at least six years.&lt;/p&gt;
&lt;p&gt;They listened to voicemail of the 7/7 terrorist attack victims, politicians, a murdered schoolgirl (including erasing some messages, leading the family to think she lived), the British Royal Family, various celebrities, and other journalists.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Contributing to Django: quickstart</title>
      <link>https://darkcoding.net/software/contributing-to-django-quickstart/</link>
      <pubDate>Thu, 07 Jul 2011 05:01:55 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/contributing-to-django-quickstart/</guid>
      <description>Instructions on how to setup a development environment to work on Django core, for example to review proposed patches, and prepare your own.</description>
    </item>
    
    <item>
      <title>Kobo eReader Touch on Ubuntu Linux</title>
      <link>https://darkcoding.net/misc/kobo-ereader-touch-on-ubuntu-linux/</link>
      <pubDate>Thu, 30 Jun 2011 21:22:36 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/kobo-ereader-touch-on-ubuntu-linux/</guid>
      <description>&lt;p&gt;Ten days ago, I received a &lt;a href=&#34;http://kobobooks.com/touch&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Kobo eReader Touch&lt;/a&gt; for father’s day. It’s a lovely device. Here’s my impressions.&lt;/p&gt;
&lt;h2 id=&#34;it8217s-a-usb-device&#34;&gt;It’s a USB device. &lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Plug it in to your Ubuntu machine (or probably any modern Linux distro). It shows up as a USB storage device.&lt;/li&gt;
&lt;li&gt;Drag and drop books in any &lt;a href=&#34;http://kobobooks.com/touch_tech&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;supported format&lt;/a&gt; onto it.&lt;/li&gt;
&lt;li&gt;Unplug, switch on, read books.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It’s that simple. If you had a solid-state MP3 player (before your phone played them), this will feel familiar.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Django class-based views are easy</title>
      <link>https://darkcoding.net/software/django-class-based-views-are-easy/</link>
      <pubDate>Fri, 20 May 2011 15:49:02 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/django-class-based-views-are-easy/</guid>
      <description>Since version 1.</description>
    </item>
    
    <item>
      <title>My experience with django-mptt</title>
      <link>https://darkcoding.net/software/my-experience-with-django-mptt/</link>
      <pubDate>Fri, 29 Apr 2011 23:57:41 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/my-experience-with-django-mptt/</guid>
      <description>In the past few months, I’ve inherited two projects which used django-mptt, a toolkit for adding trees to Django models.</description>
    </item>
    
    <item>
      <title>Improved Ubuntu notifications: gnome-stracciatella-session</title>
      <link>https://darkcoding.net/software/improved-ubuntu-notifications-gnome-stracciatella-session/</link>
      <pubDate>Tue, 15 Mar 2011 18:34:33 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/improved-ubuntu-notifications-gnome-stracciatella-session/</guid>
      <description>If you are an active user of Ubuntu’s notifications, for example via lintswitch you may of noticed that they have two key problems, which are easily solved:</description>
    </item>
    
    <item>
      <title>Elizabeth Yin: You don&#39;t need a programmer, you need a market survey</title>
      <link>https://darkcoding.net/software/elizabeth-yin-you-dont-need-programmer-you-need-a-market-survey/</link>
      <pubDate>Mon, 07 Mar 2011 06:24:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/elizabeth-yin-you-dont-need-programmer-you-need-a-market-survey/</guid>
      <description>These days, for most internet businesses, the number one challenge is customer acquisition and marketing — not building a website.</description>
    </item>
    
    <item>
      <title>Running a Tor relay / node / server on Ubuntu</title>
      <link>https://darkcoding.net/society/running-a-tor-relay-node-server-on-ubuntu/</link>
      <pubDate>Tue, 01 Mar 2011 06:29:04 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/running-a-tor-relay-node-server-on-ubuntu/</guid>
      <description>Updated October 2013: Minor edits.</description>
    </item>
    
    <item>
      <title>No managers, no meetings: Why working from home is so much more productive</title>
      <link>https://darkcoding.net/behaviour/no-managers-no-meetings-why-working-from-home-is-so-much-more-productive/</link>
      <pubDate>Mon, 20 Dec 2010 22:09:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/no-managers-no-meetings-why-working-from-home-is-so-much-more-productive/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.ted.com/talks/jason_fried_why_work_doesn_t_happen_at_work&#34;&gt;Jason Fried at a TEDx event, 17minute video&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The key concepts:&lt;/p&gt;
&lt;p&gt;Ask people where they go to “get work done”, where they are at their most productive: They almost never say ‘the office’. Or if they do, it’s before or after hours.&lt;/p&gt;
&lt;p&gt;Work is like sleep, it proceeds in cycles. You have to go through the light-sleep / light-work cycles to get to the meaty stuff. Every time you get woken up / interrupted, you start from scratch.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>lintswitch: Automatically run pylint / jslint on your code</title>
      <link>https://darkcoding.net/software/lintswitch-automatically-run-pylint-jslint-on-your-code/</link>
      <pubDate>Mon, 13 Dec 2010 21:28:07 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/lintswitch-automatically-run-pylint-jslint-on-your-code/</guid>
      <description>lintswitch is a small Bash script that connects:</description>
    </item>
    
    <item>
      <title>GNU Screen basics quick reference</title>
      <link>https://darkcoding.net/strategy/gnu-screen-basics-quick-reference/</link>
      <pubDate>Fri, 10 Dec 2010 06:06:34 +0000</pubDate>
      
      <guid>https://darkcoding.net/strategy/gnu-screen-basics-quick-reference/</guid>
      <description>Update 2021 Prefer tmux.</description>
    </item>
    
    <item>
      <title>Psychology for your webapp at BarCamp 2010</title>
      <link>https://darkcoding.net/behaviour/psychology-for-your-webapp-at-barcamp-2010/</link>
      <pubDate>Sat, 20 Nov 2010 06:15:42 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/psychology-for-your-webapp-at-barcamp-2010/</guid>
      <description>Update I also presented a 5 minute version at DjangoCon US 2011, as a lightning talk.</description>
    </item>
    
    <item>
      <title>Quote: We want Freedom, not Ping-Pong tables</title>
      <link>https://darkcoding.net/behaviour/quote-we-want-freedom-not-ping-pong-tables/</link>
      <pubDate>Tue, 16 Nov 2010 19:16:33 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/quote-we-want-freedom-not-ping-pong-tables/</guid>
      <description>It’s too bad that companies are still hiding behind glitzy buildings with on-site amenities, flexibility programs and knitting clubs when what people really want are their lives back.</description>
    </item>
    
    <item>
      <title>Question: Income Distribution</title>
      <link>https://darkcoding.net/behaviour/question-income-distribution/</link>
      <pubDate>Thu, 28 Oct 2010 20:43:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/question-income-distribution/</guid>
      <description>Perform the following thought experiment.</description>
    </item>
    
    <item>
      <title>Research Papers Archive</title>
      <link>https://darkcoding.net/research-papers-archive/</link>
      <pubDate>Fri, 22 Oct 2010 15:51:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/research-papers-archive/</guid>
      <description>This directory contains research papers and reports which I intend to read.</description>
    </item>
    
    <item>
      <title>Quote of the day: Materialism</title>
      <link>https://darkcoding.net/behaviour/quote-of-the-day-materialism/</link>
      <pubDate>Fri, 15 Oct 2010 23:18:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/quote-of-the-day-materialism/</guid>
      <description>Materialism and the behaviors that go with it – desiring and buying brand-name clothes and luxury items – are symptoms of insecurity and a coping strategy used to alleviate feelings of self-doubt or bolster a poor self-image.</description>
    </item>
    
    <item>
      <title>Behaviour Change Toolkit</title>
      <link>https://darkcoding.net/behaviour-change-toolkit/</link>
      <pubDate>Mon, 26 Jul 2010 00:13:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour-change-toolkit/</guid>
      <description>As part of my work with Good Energy I have been learning why people behave the way they do, and what tools we have to help them change behavior.</description>
    </item>
    
    <item>
      <title>Kathy Sierra: Give your users super-powers</title>
      <link>https://darkcoding.net/future-of-web-apps/kathy-sierra-give-your-users-super-powers/</link>
      <pubDate>Wed, 07 Jul 2010 06:15:21 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/kathy-sierra-give-your-users-super-powers/</guid>
      <description>Kathy Sierra at the Business Of Software conference last autumn.</description>
    </item>
    
    <item>
      <title>A quote from Richard Stallman</title>
      <link>https://darkcoding.net/ideas/a-quote-from-richard-stallman/</link>
      <pubDate>Wed, 30 Jun 2010 21:06:53 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/a-quote-from-richard-stallman/</guid>
      <description>I have done most of my work while anxious about whether I could do the job, and unsure that it would be enough to achieve the goal if I did.</description>
    </item>
    
    <item>
      <title>Notes from O&#39;Reilly&#39;s Website Optimization</title>
      <link>https://darkcoding.net/software/notes-from-oreillys-website-optimization/</link>
      <pubDate>Sat, 05 Jun 2010 03:59:46 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/notes-from-oreillys-website-optimization/</guid>
      <description>These are my notes from O’Reilly’s Website Optimization.</description>
    </item>
    
    <item>
      <title>You&#39;d be happier without your television. Sell it on Craigslist.</title>
      <link>https://darkcoding.net/behaviour/youd-be-happier-without-your-television-sell-it-on-craigslist/</link>
      <pubDate>Sun, 23 May 2010 00:29:48 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/youd-be-happier-without-your-television-sell-it-on-craigslist/</guid>
      <description>A quote by Martin Seligman, from his book Authentic Happiness.</description>
    </item>
    
    <item>
      <title>Scientific proof: You need to get rid of that TV</title>
      <link>https://darkcoding.net/behaviour/scientific-proof-you-need-to-get-rid-of-that-tv/</link>
      <pubDate>Thu, 13 May 2010 05:46:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/scientific-proof-you-need-to-get-rid-of-that-tv/</guid>
      <description>Two observations found in the literature on social psychology, which explain succinctly why, whatever you personally think about it, you would be mentally much better off without your TV.</description>
    </item>
    
    <item>
      <title>Television and your brain maps</title>
      <link>https://darkcoding.net/behaviour/television-and-your-brain-maps/</link>
      <pubDate>Fri, 05 Mar 2010 19:03:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/television-and-your-brain-maps/</guid>
      <description>The Brain That Changes Itself, by Norman Doidge is a fascinating book about brain plasticity, the ability of our brain to re-wire itself to cope with changing conditions.</description>
    </item>
    
    <item>
      <title>Open up your WiFi</title>
      <link>https://darkcoding.net/society/open-up-your-wifi/</link>
      <pubDate>Mon, 01 Mar 2010 00:28:27 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/open-up-your-wifi/</guid>
      <description>Update: You need to know how to ban MAC addresses on your router, as you will eventually have a neighbor swamp your network with bittorrent.</description>
    </item>
    
    <item>
      <title>Setting up Monit on Ubuntu</title>
      <link>https://darkcoding.net/software/setting-up-monit-on-ubuntu/</link>
      <pubDate>Sun, 28 Feb 2010 23:18:23 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/setting-up-monit-on-ubuntu/</guid>
      <description>Monit tells you if something goes wrong on your server, and tries to fix it.</description>
    </item>
    
    <item>
      <title>Setting up Munin on Ubuntu</title>
      <link>https://darkcoding.net/software/setting-up-munin-on-ubuntu/</link>
      <pubDate>Wed, 17 Feb 2010 05:50:14 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/setting-up-munin-on-ubuntu/</guid>
      <description>Munin is a system monitoring tool.</description>
    </item>
    
    <item>
      <title>Restarting MySQL master-master replication</title>
      <link>https://darkcoding.net/software/restarting-mysql-master-master-replication/</link>
      <pubDate>Sun, 14 Feb 2010 20:24:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/restarting-mysql-master-master-replication/</guid>
      <description>If your MySQL (5.</description>
    </item>
    
    <item>
      <title>Treating the common cold</title>
      <link>https://darkcoding.net/misc/treating-the-common-cold/</link>
      <pubDate>Wed, 27 Jan 2010 06:59:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/treating-the-common-cold/</guid>
      <description>Will Vitamin C really prevent or cure your cold?</description>
    </item>
    
    <item>
      <title>Predictably Irrational, by Dan Ariely</title>
      <link>https://darkcoding.net/behaviour/predictably-irrational-by-dan-ariely/</link>
      <pubDate>Sat, 16 Jan 2010 07:12:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/predictably-irrational-by-dan-ariely/</guid>
      <description>My short notes on Predictably Irrational, by Dan Ariely.</description>
    </item>
    
    <item>
      <title>Influence, by Robert Cialdini</title>
      <link>https://darkcoding.net/behaviour/influence-by-robert-cialdini/</link>
      <pubDate>Wed, 16 Dec 2009 06:42:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/influence-by-robert-cialdini/</guid>
      <description>As an Amazon reviews says, “arguably the best book ever on what is increasingly becoming the science of persuasion.</description>
    </item>
    
    <item>
      <title>How we know what isn’t so, by Thomas Gilovich</title>
      <link>https://darkcoding.net/behaviour/how-we-know-what-isnt-so-by-thomas-gilovich/</link>
      <pubDate>Fri, 27 Nov 2009 06:27:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/how-we-know-what-isnt-so-by-thomas-gilovich/</guid>
      <description>By Thomas Gilovich, social psychologist and CSI Fellow, this well written book explains some of the reasoning and deduction errors we make when trying to understand the world, and ways to avoid making those errors.</description>
    </item>
    
    <item>
      <title>Memcached: List all keys</title>
      <link>https://darkcoding.net/software/memcached-list-all-keys/</link>
      <pubDate>Tue, 20 Oct 2009 16:50:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/memcached-list-all-keys/</guid>
      <description>In the general case, there is no way to list all the keys that a memcached instance is storing.</description>
    </item>
    
    <item>
      <title>Guy Kawasaki&#39;s 10-20-30 presentation rule</title>
      <link>https://darkcoding.net/misc/guy-kawasakis-10-20-30-presentations-rule/</link>
      <pubDate>Thu, 01 Oct 2009 17:41:22 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/guy-kawasakis-10-20-30-presentations-rule/</guid>
      <description>Funny, practical, and well worth 1 minute 50 seconds of your life:</description>
    </item>
    
    <item>
      <title>I&#39;m on identi.ca and Twitter</title>
      <link>https://darkcoding.net/misc/im-on-identi-ca-and-twitter/</link>
      <pubDate>Thu, 17 Sep 2009 16:08:35 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/im-on-identi-ca-and-twitter/</guid>
      <description>I am sharing my thoughts, mainly about web technologies, on identi.</description>
    </item>
    
    <item>
      <title>Social psychology in sales copy: Good copy writing</title>
      <link>https://darkcoding.net/behaviour/social-psychology-in-sales-copy-good-copy-writing/</link>
      <pubDate>Wed, 26 Aug 2009 18:03:35 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/social-psychology-in-sales-copy-good-copy-writing/</guid>
      <description>I recently received an advert for an investment fund in which, as the amateur social psychologist that I am, I noticed illustrated a couple of psychological principles.</description>
    </item>
    
    <item>
      <title>Choosing a message queue for Python on Ubuntu on a VPS</title>
      <link>https://darkcoding.net/software/choosing-a-message-queue-for-python-on-ubuntu-on-a-vps/</link>
      <pubDate>Mon, 10 Aug 2009 05:05:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/choosing-a-message-queue-for-python-on-ubuntu-on-a-vps/</guid>
      <description>Updated Sep 13, 2011 to include redis, remove stompserver, and update beanstalkd</description>
    </item>
    
    <item>
      <title>Quote of the day – monkeys</title>
      <link>https://darkcoding.net/misc/quote-of-the-day-monkeys/</link>
      <pubDate>Thu, 30 Jul 2009 19:09:11 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/quote-of-the-day-monkeys/</guid>
      <description>In response to monkeys stealing his coffee beans, an Indian farmer observes: If you start shooting monkeys, you’ll spend the rest of your life shooting monkeys.</description>
    </item>
    
    <item>
      <title>On cellphone use in cars</title>
      <link>https://darkcoding.net/behaviour/on-cellphone-use-in-cars/</link>
      <pubDate>Mon, 20 Jul 2009 17:11:28 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/on-cellphone-use-in-cars/</guid>
      <description>&lt;p&gt;A very interesting article in the New-York Times on the research behind the risks of being distracted by a cellphone whilst driving:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.nytimes.com/2009/07/19/technology/19distracted.html&#34;&gt;http://www.nytimes.com/2009/07/19/technology/19distracted.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here’s some excerpts:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;in a survey of 1,506 people last year by Nationwide Mutual Insurance, 81 percent of cellphone owners acknowledged that they talk on phones while driving, and 98 percent considered themselves safe drivers. But 45 percent said they had been hit or nearly hit by a driver talking on a phone.
That’s the &lt;a href=&#34;http://en.wikipedia.org/wiki/Lake_Wobegon_effect&#34;&gt;Lake Wobegon effect&lt;/a&gt;, the tendency for overestimate their capabilities in relation to others.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Django dynamic forms and formsets</title>
      <link>https://darkcoding.net/software/django-dynamic-forms-and-formsets/</link>
      <pubDate>Tue, 16 Jun 2009 01:08:23 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/django-dynamic-forms-and-formsets/</guid>
      <description>A couple of great posts which explain Django dynamic forms and advanced formset usage very clearly:</description>
    </item>
    
    <item>
      <title>How and Why to extend Firefox in Javascript</title>
      <link>https://darkcoding.net/software/how-and-why-to-extend-firefox-in-javascript/</link>
      <pubDate>Thu, 11 Jun 2009 03:29:22 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/how-and-why-to-extend-firefox-in-javascript/</guid>
      <description>I will be giving this talk on Friday 12th June, at Open Web Vancouver 2009.</description>
    </item>
    
    <item>
      <title>Unix shared directory permissions: GUID and umask</title>
      <link>https://darkcoding.net/software/unix-shared-directory-permissions-guid-and-umask/</link>
      <pubDate>Wed, 10 Jun 2009 19:11:26 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/unix-shared-directory-permissions-guid-and-umask/</guid>
      <description>I setup my Mercurial repository in the same way we used to do CVS, then SVN: A directory owned by a group, with the GUID bit, and all users who need to commit are in that group.</description>
    </item>
    
    <item>
      <title>Legal 1 Usability 0</title>
      <link>https://darkcoding.net/misc/legal-1-usability-0/</link>
      <pubDate>Wed, 27 May 2009 18:55:46 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/legal-1-usability-0/</guid>
      <description>The cooking instructions for my Tandoori Chicken Breast microwave lunch, are to cook…</description>
    </item>
    
    <item>
      <title>OpenTTD: Trains and signals for beginners – a tutorial</title>
      <link>https://darkcoding.net/misc/openttd-trains-and-signals-for-beginners-a-tutorial/</link>
      <pubDate>Thu, 21 May 2009 07:22:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/openttd-trains-and-signals-for-beginners-a-tutorial/</guid>
      <description>I have been playing Open Transport Tycoon Deluxe, or OpenTTD on and off for a while, but I confess I only understood train signals very recently.</description>
    </item>
    
    <item>
      <title>Quote of the day: Why racists have bad graphic design</title>
      <link>https://darkcoding.net/society/quote-of-the-day-why-racists-have-bad-graphic-design/</link>
      <pubDate>Wed, 20 May 2009 16:34:19 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/quote-of-the-day-why-racists-have-bad-graphic-design/</guid>
      <description>Charlie Brooker on a television advert by the British National Party, England’s (very small) right-wing political party:</description>
    </item>
    
    <item>
      <title>Speaking at Open Web Vancouver 2009 in June</title>
      <link>https://darkcoding.net/future-of-web-apps/speaking-open-web-vancouver-2009/</link>
      <pubDate>Sun, 17 May 2009 21:30:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/speaking-open-web-vancouver-2009/</guid>
      <description>I will be speaking at Open Web Vancouver on Thursday, June 11, 2009 and Friday, June 12, 2009.</description>
    </item>
    
    <item>
      <title>Micro-Zooids: A story</title>
      <link>https://darkcoding.net/ideas/micro-zooids-a-story/</link>
      <pubDate>Sun, 10 May 2009 22:23:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/micro-zooids-a-story/</guid>
      <description>When I was 16, I wrote a computer game, called Micro Zooides.</description>
    </item>
    
    <item>
      <title>Turn on debug output in SVN</title>
      <link>https://darkcoding.net/software/turn-on-debug-output-in-svn/</link>
      <pubDate>Thu, 07 May 2009 23:02:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/turn-on-debug-output-in-svn/</guid>
      <description>After a desktop and server upgrade, my subversion client stopped working.</description>
    </item>
    
    <item>
      <title>Migrating from Picasa to GIMP</title>
      <link>https://darkcoding.net/misc/migrating-from-picasa-to-gimp/</link>
      <pubDate>Wed, 06 May 2009 05:07:13 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/migrating-from-picasa-to-gimp/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update April 2012&lt;/strong&gt; Google has &lt;a href=&#34;http://googleblog.blogspot.de/2012/04/spring-cleaning-in-spring.html&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;discontinued Picasa for Linux&lt;/a&gt;, so I’m going to try to do all my photo editing in GIMP. Here’s what I use most often:&lt;/p&gt;
&lt;p&gt;Basic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Colors / Auto / White-balance&lt;/li&gt;
&lt;li&gt;Colors / Auto / Color enhance&lt;/li&gt;
&lt;li&gt;Colors / Brightness-Contrast / Contrast up by 5 or 10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Warmify:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tools / GEGL Operation / Color temperature / Raise desired by 0.5k or 1k.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sharpen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Filters / Enhance / Unsharp mask&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Original post follows&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I’ve been using &lt;a href=&#34;http://picasa.google.com&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Picasa&lt;/a&gt; to edit my pictures for a long time, and it’s an excellent program. Recently however I’ve started shooting RAW, and I’d like control, so I’ve started using &lt;a href=&#34;http://www.gimp.org/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;GIMP&lt;/a&gt;. It’s more powerful and more complicated than Picasa, so to start myself off I went through all the features of Picasa and made notes on how to duplicate that operation in GIMP. Here are those notes.&lt;/p&gt;
&lt;p&gt;Most of what Picasa does can be replicated with the Colors / Levels or Colors / Curves tool. It’s well worth spending a little time experimenting with both of those (the documentation is very good too).&lt;/p&gt;
&lt;h2 id=&#34;crop&#34;&gt;Crop &lt;/h2&gt;
&lt;p&gt;In the Toolbox, click the Rectangle select tool In its options (beneath the tools), tick ‘Fixed: Aspect Ratio’ Enter 6:4 ratio (for 1.6 sensor, most DSLRs) Tick Highlight. Draw a rectangle on the image that you want to crop to. Image menu / Crop to Selection&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>What is the point of LinkedIn?</title>
      <link>https://darkcoding.net/behaviour/what-is-the-point-of-linkedin/</link>
      <pubDate>Tue, 14 Apr 2009 20:23:47 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/what-is-the-point-of-linkedin/</guid>
      <description>&lt;p&gt;&lt;em&gt;Update 23 Aug 2011&lt;/em&gt;: Finally closed my LinkedIn account. To their credit the ‘Close Account’ feature is straightforward.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update 4 Feb 2011&lt;/em&gt;: Steve Pavlina, in his &lt;a href=&#34;http://www.stevepavlina.com/blog/2011/02/30-day-facebook-fast/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;article about leaving Facebook&lt;/a&gt; writes:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I nuked my Linkedin account at the same time I left Facebook. Linkedin is supposed to be a business networking service, and I had about 350 contacts there, but I always found that service utterly useless, so it was a no-brainer to dump it.
&lt;em&gt;End update&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I’m on &lt;a href=&#34;http://linkedin.com&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;LinkedIn&lt;/a&gt;, I’m connected to 48 people. I go there, I declare to the world that I know these people. And then what?&lt;/p&gt;
&lt;p&gt;If that sounds familiar, you’re not alone. There’s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &lt;a href=&#34;http://www.linkedintelligence.com/smart-ways-to-use-linkedin/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;project to find uses for LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;a &lt;a href=&#34;http://www.happyabout.info/images/onlinkedin.big.jpg&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;book on finding a point to LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;and the company itself had to blog about &lt;a href=&#34;http://blog.linkedin.com/2007/07/25/ten-ways-to-use/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;ten ways to use LinkedIn&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If it takes a blog post, a book, and a community project, to find a point to your web application, I think there may not be one.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Foxden – your life on one page</title>
      <link>https://darkcoding.net/software/foxden-your-life-on-one-page/</link>
      <pubDate>Tue, 07 Apr 2009 00:21:22 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/foxden-your-life-on-one-page/</guid>
      <description>Update (Nov 2010): I have not worked on Foxden for over a year.</description>
    </item>
    
    <item>
      <title>Quote of the day: Congressman Mike Honda</title>
      <link>https://darkcoding.net/ideas/quote-of-the-day-congressman-mike-honda/</link>
      <pubDate>Sat, 21 Mar 2009 17:49:12 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/quote-of-the-day-congressman-mike-honda/</guid>
      <description>Congressman Mike Honda, D-San Jose, writing about opening government databases:</description>
    </item>
    
    <item>
      <title>Eddit: Reddit without the Rrrr!</title>
      <link>https://darkcoding.net/software/eddit-reddit-without-the-rrrr/</link>
      <pubDate>Wed, 18 Mar 2009 16:06:32 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/eddit-reddit-without-the-rrrr/</guid>
      <description>&lt;p&gt;Eddit is a bookmarklet for &lt;a href=&#34;http://reddit.com&#34;&gt;Reddit&lt;/a&gt;, which gives you more signal and less of the noise that makes you go Rrrr! Here’s how it improves reddit:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Flex internals: Setting a button label</title>
      <link>https://darkcoding.net/software/flex-internals-setting-a-button-label/</link>
      <pubDate>Mon, 16 Mar 2009 23:50:32 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/flex-internals-setting-a-button-label/</guid>
      <description>&lt;p&gt;Most ActionScript / Flash applications have a main event loop, triggered by Event.ENTER_FRAME. This is where the animation moves along to the next frame, or the sprites of the game are re-drawn in their new places.&lt;/p&gt;
&lt;p&gt;In the Flex framework, you are expected to call invalidateDisplayList on the framework to say you need an update, and actually do the update when the framework calls your updateDisplayList method. This is the invalidation / validation pattern.&lt;/p&gt;
&lt;p&gt;I went searching in the Flex code to understand how this invalidation / validation step ties in with Flash’s event model. I ignored properties and sizing, and edited the code down to the bare essentials.&lt;/p&gt;
&lt;p&gt;Here is what happens when you change the label of a button:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Choosing the best Flex book – Flex book reviews</title>
      <link>https://darkcoding.net/software/choosing-the-best-flex-book-flex-book-reviews/</link>
      <pubDate>Sun, 15 Mar 2009 22:05:29 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/choosing-the-best-flex-book-flex-book-reviews/</guid>
      <description>UPDATE March 19th: Added First Steps in Flex, and Learning Flex 3.</description>
    </item>
    
    <item>
      <title>Math Dodger: A Flash game</title>
      <link>https://darkcoding.net/misc/math-dodger-a-flash-game/</link>
      <pubDate>Sun, 15 Mar 2009 01:26:28 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/math-dodger-a-flash-game/</guid>
      <description>&lt;p&gt;Los Angeles is under attack, by trigonometric functions! OMG! Trigo-what? If I wanted to do maths, I’d go to San Francisco!! You, like, totally gotta save L.A man. Enter your name, then move your tank.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use the left and right arrow keys to rotate, the forward and back arrow keys to move.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;The barrel of the tank is the little black line. That’s the front.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No, your tank can’t fire. Avoid the mathematical blobs. YEAH!&lt;br&gt;
The longer you live, the more points you get. A score above 100 is, like, totally AWESOME! Good luck Bro.&lt;br&gt;
Let me know in the comments how much you score.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Javascript objects: And what is this?</title>
      <link>https://darkcoding.net/software/javascript-objects-and-what-is-this/</link>
      <pubDate>Mon, 23 Feb 2009 02:06:41 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/javascript-objects-and-what-is-this/</guid>
      <description>When writing object-oriented Javascript, there are two occasions when you need to be careful that this is set correctly: In inner functions and in callbacks.</description>
    </item>
    
    <item>
      <title>Easy object-oriented Javascript the Python way</title>
      <link>https://darkcoding.net/software/easy-object-oriented-javascript-the-python-way/</link>
      <pubDate>Thu, 22 Jan 2009 23:47:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/easy-object-oriented-javascript-the-python-way/</guid>
      <description>Javascript is not an opinionated language.</description>
    </item>
    
    <item>
      <title>This is me</title>
      <link>https://darkcoding.net/behaviour/this-is-me/</link>
      <pubDate>Mon, 19 Jan 2009 05:03:16 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/this-is-me/</guid>
      <description>Have I told you that I have never owned a TV, and never watch it?</description>
    </item>
    
    <item>
      <title>Linux on a potato</title>
      <link>https://darkcoding.net/uncategorized/linux-on-a-potato/</link>
      <pubDate>Thu, 11 Dec 2008 07:38:17 +0000</pubDate>
      
      <guid>https://darkcoding.net/uncategorized/linux-on-a-potato/</guid>
      <description>Offered with no further comment: Hackers successfully install Linux on a potato</description>
    </item>
    
    <item>
      <title>On the American automobile industry</title>
      <link>https://darkcoding.net/finance/on-the-american-automobile-industry/</link>
      <pubDate>Tue, 09 Dec 2008 05:02:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/finance/on-the-american-automobile-industry/</guid>
      <description>Joshua-Michéle Ross at O’Reilly Radar writes about the money the American taxpayer (government) is giving Genera Motors, Chrysler and Ford to save them from bankruptcy:</description>
    </item>
    
    <item>
      <title>Dan Gardner on fear</title>
      <link>https://darkcoding.net/behaviour/daniel-gardner-on-fear/</link>
      <pubDate>Wed, 12 Nov 2008 05:35:17 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/daniel-gardner-on-fear/</guid>
      <description>In the prologue to The Science of Fear, by Daniel Gardner (published as ‘Risk: The Science and Politics of Fear’ in the United Kingdom, Australia and Canada), which I have just started reading, as he talks about the aftermath of the 9/11 terrorist attacks in the United States:</description>
    </item>
    
    <item>
      <title>Plebis.Net. Speak your mind.</title>
      <link>https://darkcoding.net/society/plebisnet-speak-your-mind/</link>
      <pubDate>Tue, 11 Nov 2008 01:34:37 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/plebisnet-speak-your-mind/</guid>
      <description>I have just launched Plebis.</description>
    </item>
    
    <item>
      <title>Internet Explorer not sending NTLM authentication</title>
      <link>https://darkcoding.net/software/internet-explorer-not-sending-ntlm-authentication/</link>
      <pubDate>Wed, 29 Oct 2008 21:01:12 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/internet-explorer-not-sending-ntlm-authentication/</guid>
      <description>At work we setup a Twiki, and Internet Explorer refused to send the NTLM authentication, instead it showed a login popup.</description>
    </item>
    
    <item>
      <title>Keithnote</title>
      <link>https://darkcoding.net/software/keithnote/</link>
      <pubDate>Mon, 25 Aug 2008 03:31:11 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/keithnote/</guid>
      <description>&lt;p&gt;Keithnote is a presentation generator. You provide information such as the title of your presentation, and it downloads relevant images from Flickr. These are stored locally so you can run your presentation whilst offline.&lt;/p&gt;
&lt;p&gt;Keithnote is hosted at Google Code, here: &lt;a href=&#34;http://code.google.com/p/keithnote&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Keithnote&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>MySQL quick reference</title>
      <link>https://darkcoding.net/software/mysql-quick-reference/</link>
      <pubDate>Sat, 16 Aug 2008 00:30:37 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/mysql-quick-reference/</guid>
      <description>&lt;p&gt;A concise reference / cheat-sheet / crib-sheet to MySQL’s commands.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Using Ekiga softphone on Ubuntu Linux on a Thinkpad</title>
      <link>https://darkcoding.net/misc/using-ekiga-softphone-on-ubuntu-linux-on-a-thinkpad/</link>
      <pubDate>Wed, 16 Jul 2008 23:19:48 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/using-ekiga-softphone-on-ubuntu-linux-on-a-thinkpad/</guid>
      <description>&lt;p&gt;For many months now I have been making and receiving telephone calls from my computer. There are two advantages:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It is very cheap. Calls within the United States are about $1/hour!&lt;/li&gt;
&lt;li&gt;It makes your phone number virtual, and configurable, which means for example that my phone number will forward to my cell phone if my computer is offline. It also means you don’t have to be in the same country as your phone number.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I am running Ubuntu Linux on a Thinkpad, but most of this should apply to Ekiga on all platforms, and the principles apply to all Softphones.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Passenger airlines will charge by volume and weight</title>
      <link>https://darkcoding.net/ideas/passenger-airlines-will-charge-by-volume-and-weight/</link>
      <pubDate>Fri, 30 May 2008 23:38:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/passenger-airlines-will-charge-by-volume-and-weight/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Five years after I wrote this, it is actually happening. &lt;em&gt;Samoa Air boss defends charging passengers by weight&lt;/em&gt; on &lt;a href=&#34;http://www.bbc.co.uk/news/world-22001256&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;BBC News&lt;/a&gt; 2nd Apr 2013.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Eight years after I wrote this, The Economist remarks &lt;em&gt;In fact, on a purely economic basis, it makes sense to charge passengers by weight, since that is directly correlated with fuel usage, which goes a long way in determining flight costs&lt;/em&gt; in &lt;a href=&#34;http://www.economist.com/blogs/gulliver/2016/10/scales-justice&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;article&lt;/a&gt; 21st Oct 2016&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;When you send a parcel by air, the price depends on the volume and weight of that parcel. Volume, because you are buying a certain amount of space in the plane. Weight, because the heavier the plane’s cargo, the more fuel it takes to get it off the ground. You pay for the fuel to fly your parcel.&lt;/p&gt;
&lt;p&gt;The pricing structure for air mail / air freight is closely linked to the costs faced by the airline.&lt;/p&gt;
&lt;p&gt;When you travel with your parcels, a disconnect appears. You buy a certain amount of space – typically a seat for yourself, a small bag and one or two big bags. A bigger seat (‘business’, ‘premium’, etc) is more money. Extra bags is more money. But you’re not paying by weight – and I think that will have to change.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A quote from Seth Godin</title>
      <link>https://darkcoding.net/society/a-quote-from-seth-godin/</link>
      <pubDate>Tue, 20 May 2008 05:55:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/a-quote-from-seth-godin/</guid>
      <description>It&amp;rsquo;s hard for me to see why you&amp;rsquo;d bother having someone come all the way to an office just to sit in a cube and type.</description>
    </item>
    
    <item>
      <title>Host your own Internet</title>
      <link>https://darkcoding.net/behaviour/host-your-own-internet/</link>
      <pubDate>Tue, 20 May 2008 04:39:20 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/host-your-own-internet/</guid>
      <description>When I first got my own server (a virtual private server with Linode which I highly recommend), I ran every Internet service I needed on it, and several for my friends.</description>
    </item>
    
    <item>
      <title>Clay Shirky at Web 2.0 Expo – just watch it</title>
      <link>https://darkcoding.net/behaviour/clay-shirky-at-web-20-expo-just-watch-it/</link>
      <pubDate>Fri, 02 May 2008 19:23:53 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/clay-shirky-at-web-20-expo-just-watch-it/</guid>
      <description>If you really don’t want to watch it, read the transcript of Clay Shirky’s talk at Web2.</description>
    </item>
    
    <item>
      <title>Finally an explanation to mod_python: (Re)importing module &#39;django.core.handlers.modpython&#39;</title>
      <link>https://darkcoding.net/software/finally-an-explanation-to-mod_python-reimporting-module-djangocorehandlersmodpython/</link>
      <pubDate>Mon, 25 Feb 2008 23:49:37 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/finally-an-explanation-to-mod_python-reimporting-module-djangocorehandlersmodpython/</guid>
      <description>If you use Django with Apache, no doubt you have noticed lots of these lines in your log file:</description>
    </item>
    
    <item>
      <title>The fine line between populism and racism</title>
      <link>https://darkcoding.net/society/the-fine-line-between-populism-and-racism/</link>
      <pubDate>Tue, 12 Feb 2008 01:16:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/the-fine-line-between-populism-and-racism/</guid>
      <description>&lt;p&gt;As you probably know, the U.S.A. is electing itself a new president. The process is that each of the two parties elects their candidate, then they compete against each other. The four remaining Republicans vying for their parties nomination recently participated in a debate here in California. Here is the &lt;a href=&#34;http://www.cnn.com/2008/POLITICS/01/30/GOPdebate.transcript/index.html&#34;&gt;transcript of the Republican debate of January 30th 2008&lt;/a&gt;. It’s mostly standard political fare, until you get to the topic of immigration. Then, well, see for yourself:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Wine grapes from least to most tannins</title>
      <link>https://darkcoding.net/misc/wine-grapes-from-least-to-most-tannins/</link>
      <pubDate>Tue, 12 Feb 2008 00:40:40 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/wine-grapes-from-least-to-most-tannins/</guid>
      <description>Gamay, pinot noir, sangiovese, tempranillo, zinfandel, syrah, merlot, cabernet sauvignon, nebbiolo.</description>
    </item>
    
    <item>
      <title>Quote of the day</title>
      <link>https://darkcoding.net/software/quote-of-the-day-2/</link>
      <pubDate>Sun, 10 Feb 2008 06:56:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/quote-of-the-day-2/</guid>
      <description>Debugging is twice as hard as writing the code in the first place.</description>
    </item>
    
    <item>
      <title>AJAX, IE6 and System error: -1072896658</title>
      <link>https://darkcoding.net/software/ajax-ie6-and-system-error-1072896658/</link>
      <pubDate>Fri, 08 Feb 2008 02:43:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/ajax-ie6-and-system-error-1072896658/</guid>
      <description>I have just spent a while wrestling with this problem, so in case anyone else comes across it.</description>
    </item>
    
    <item>
      <title>Technologies for better web based applications: XMPP, Flex, and more</title>
      <link>https://darkcoding.net/future-of-web-apps/technologies-for-better-web-based-applications-xmpp-flex-and-more/</link>
      <pubDate>Sun, 27 Jan 2008 20:39:52 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/technologies-for-better-web-based-applications-xmpp-flex-and-more/</guid>
      <description>The difference between a web site and an application is that an application is more dynamic, more responsive, to the user.</description>
    </item>
    
    <item>
      <title>Migrate from Gallery 2 to Flickr</title>
      <link>https://darkcoding.net/misc/migrate-from-gallery-2-to-flickr/</link>
      <pubDate>Thu, 27 Dec 2007 01:04:56 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/migrate-from-gallery-2-to-flickr/</guid>
      <description>&lt;p&gt;I have recently moved all my photos from a &lt;a href=&#34;http://www.gallery2.org/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Gallery 2&lt;/a&gt; instance I ran myself, to &lt;a href=&#34;http://www.flickr.com&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Flickr&lt;/a&gt;. This means I don’t need to keep my Gallery2 install up to date, it frees up lots of disk space on my server, and allows me to more easily share pictures with friends and family. Here’s how I did it:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Keep your unit testing lazy</title>
      <link>https://darkcoding.net/software/keep-your-unit-testing-lazy/</link>
      <pubDate>Wed, 19 Dec 2007 18:49:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/keep-your-unit-testing-lazy/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.odecee.com.au/blogs/?p=12&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Oscar Huseyin&lt;/a&gt;, via JavaLobby, has an interesting post on how much unit testing is good:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over the years, l’ve read lots of commentary, white papers, best practice papers, books on the topic of TDD. I’ve heard the rant of many TDD evangelists who preach about how total code coverage brings you closer to code quality perfection and how you’ve failed when you’ve not been able to achieve these goals. Sure, this is an extreme example of evangelical preaching, where in actual fact, most of these individuals commonly drum down their hard line views of testing by using words like “pragmatism” and statements like “do what works best”. But, why do l feel as if I’ve failed if l have not got 100% code coverage? It’s because l, to some degree, shared some of the religious views about testing.&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Non blocking console input in Python and Java</title>
      <link>https://darkcoding.net/software/non-blocking-console-io-is-not-possible/</link>
      <pubDate>Tue, 18 Dec 2007 20:42:31 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/non-blocking-console-io-is-not-possible/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update Sep 2011&lt;/strong&gt;: If you’re using Google’s Go Lang see &lt;a href=&#34;http://go.pastie.org/813153&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Non blocking console read in Go&lt;/a&gt;. Thanks &lt;a href=&#34;http://groups.google.com/group/golang-nuts/browse_thread/thread/f28f5fc4f69e16ef&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Ostsol&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Heavily updated 9th January 2008&lt;/strong&gt;: This post was originally entitled &lt;em&gt;Non blocking console IO is not possible&lt;/em&gt;. Two helpful comments helped me see the error of my ways. Many thanks to ‘schlenk’ and ‘Bob’ for the help. Non blocking console IO is possible, it just isn’t (easily) portable. Read on to find out how.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I have been doing some programming exercises in Python, Java and ActionScript (Flex), using &lt;a href=&#34;http://smartprogrammer.blogspot.com/2006/04/15-exercises-for-learning-new.html&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;this list from Prashant N Mhatre&lt;/a&gt;. The first exercise sounds simple on the surface:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Display series of numbers (1,2,3,4, 5….etc) in an infinite loop. The program should quit if someone hits a specific key (Say ESCAPE key)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Displaying a list of numbers in an infinite loop is trivial, and stopping on Ctrl-C is trivial, but stopping on a key of your choice (let’s use ESC), makes the problem much more interesting.&lt;/p&gt;
&lt;p&gt;By default the console on Linux and Windows is buffered. It does not send you character data until the Enter key is pressed. In Python the &lt;code&gt;raw_input&lt;/code&gt; method will block until it gets input. In Java you can test the characters available, non blocking, using &lt;code&gt;System.in.available()&lt;/code&gt;, but this still doesn’t fill up until Enter is pressed. There are two ways to solve this:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>XMPP in your browser: Flex 2 with XIFF</title>
      <link>https://darkcoding.net/software/xmpp-in-your-browser-flex-2-with-xiff/</link>
      <pubDate>Wed, 12 Dec 2007 22:40:40 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/xmpp-in-your-browser-flex-2-with-xiff/</guid>
      <description>&lt;p&gt;An entry about using the XIFF API to get your Flex application talking XMPP. If you don’t know what I’m talking about no need to read on really.&lt;/p&gt;
&lt;h2 id=&#34;some-definitions&#34;&gt;Some definitions &lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://en.wikipedia.org/wiki/Xmpp&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;XMPP&lt;/a&gt; is an open protocol for instant messaging, that runs the Jabber network and Google talk.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://en.wikipedia.org/wiki/Adobe_Flex&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Flex 2&lt;/a&gt; is a programmer-friendly way of developing Flash applications, using ActionScript 3, which looks a lot like Java.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.igniterealtime.org/projects/xiff/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;XIFF&lt;/a&gt; is an ActionScript 3 API for XMPP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you put those three items together you get, yes, a paradigm shift in web based application development. But let’s not get fancy just yet (a later blog post might wax lyrical about the future of web apps), for now here are some recipes for doing just about anything with XMPP, ActionScript 3, and XIFF.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Quote of the day</title>
      <link>https://darkcoding.net/software/quote-of-the-day/</link>
      <pubDate>Sat, 17 Nov 2007 02:59:45 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/quote-of-the-day/</guid>
      <description>There’s no shortage of smart people digging the wrong hole really well</description>
    </item>
    
    <item>
      <title>On the road</title>
      <link>https://darkcoding.net/misc/on-the-road/</link>
      <pubDate>Thu, 16 Aug 2007 12:37:26 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/on-the-road/</guid>
      <description>The silence around here is because I have been traveling for two months.</description>
    </item>
    
    <item>
      <title>What really kills people like you ?</title>
      <link>https://darkcoding.net/society/causes-of-death/</link>
      <pubDate>Wed, 04 Apr 2007 10:09:37 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/causes-of-death/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Update 2018&lt;/strong&gt;: The excellent &lt;a href=&#34;https://ourworldindata.org/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Our World In Data&lt;/a&gt; has a &lt;a href=&#34;https://ourworldindata.org/causes-of-death&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Causes Of Death&lt;/a&gt; section.&lt;/p&gt;
&lt;p&gt;Do you remember how we were all going to die of &lt;a href=&#34;http://imdb.com/title/tt0114069&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Ebola&lt;/a&gt;, then &lt;a href=&#34;http://en.wikipedia.org/wiki/SARS&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;S.A.R.S.&lt;/a&gt;, and more recently &lt;a href=&#34;http://en.wikipedia.org/wiki/H5N1_flu&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Avian flu&lt;/a&gt; ?&lt;/p&gt;
&lt;p&gt;Have you got the memo that the &lt;a href=&#34;http://www.tsa.gov/&#34;&gt;job creation program&lt;/a&gt; at airports is because Terrorism is such a big threat to your life ? In England at the moment you are, according to the media, at great threat from &lt;a href=&#34;http://maps.google.co.uk/?q=peckham,london&#34;&gt;drug dealing teenagers&lt;/a&gt;, and &lt;a href=&#34;http://en.wikipedia.org/wiki/Hoodie#Moral_Panic_in_the_United_Kingdom&#34;&gt;anyone younger than you&lt;/a&gt; in general.&lt;/p&gt;
&lt;p&gt;And yet, here you are, reading safely. So instead of tolerating &lt;a href=&#34;http://www.associatednewspapers.com/&#34;&gt;idiots pretending to be journalists&lt;/a&gt;, I went looking for what we should &lt;em&gt;really&lt;/em&gt; be wary of – what really does kill people.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>BarCampLondon2 wrapup</title>
      <link>https://darkcoding.net/society/barcamplondon2/</link>
      <pubDate>Sun, 25 Feb 2007 13:05:28 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/barcamplondon2/</guid>
      <description>Last weekend I attended BarCampLondon2.</description>
    </item>
    
    <item>
      <title>Jimbo – Monitor your server with Jabber</title>
      <link>https://darkcoding.net/software/jimbo/</link>
      <pubDate>Thu, 15 Feb 2007 23:11:37 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/jimbo/</guid>
      <description>&lt;p&gt;Webapps are often built and managed by single person or small teams. For example, I run 11 sites and web apps, just in my spare time, on one virtual server. I need to know if that server is up. We need a lightweight, low/zero maintenance way to monitor applications and servers. Mainly we are concerned about presence of our application. Is it there ?&lt;/p&gt;
&lt;p&gt;Where else does presence matter ? Why, in &lt;a href=&#34;http://en.wikipedia.org/wiki/Instant_Messaging&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Instant Messaging&lt;/a&gt; applications of course. Currently we record presence of our friends in our messenger clients. Well, servers can be our friends too !&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A week in the woods</title>
      <link>https://darkcoding.net/misc/a-week-in-the-woods/</link>
      <pubDate>Sun, 07 Jan 2007 13:42:08 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/a-week-in-the-woods/</guid>
      <description>&lt;p&gt;From the 9th to the 15th May 2004, I went on the Fundamental Bushcraft course with the &lt;a href=&#34;http://www.raymears.com/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Ray Mears School of Bushcraft&lt;/a&gt;, in the Kent countryside. Here’s what happened:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Factual entertainment</title>
      <link>https://darkcoding.net/society/factual-entertainment/</link>
      <pubDate>Tue, 07 Nov 2006 21:34:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/factual-entertainment/</guid>
      <description>Most journalists, I assume, aspire to delivering the truth on what is really going on to the reading public.</description>
    </item>
    
    <item>
      <title>Printing Word And PDF files from Python</title>
      <link>https://darkcoding.net/software/printing-word-and-pdf-files-from-python/</link>
      <pubDate>Tue, 24 Oct 2006 19:13:44 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/printing-word-and-pdf-files-from-python/</guid>
      <description>&lt;p&gt;Recently I had to automate printing a whole bunch of CVs on Windows. Having successfully avoided VBA my whole programming life, it was time to think fast. Thankfully Python has some win32com bindings, which allows you to talk COM to various Windows applications, and get them to print the documents.&lt;/p&gt;
&lt;p&gt;First you need &lt;a href=&#34;https://sourceforge.net/projects/pywin32/&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;the Python win32com bindings&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Wine grapes</title>
      <link>https://darkcoding.net/misc/wine-grapes/</link>
      <pubDate>Sat, 16 Sep 2006 18:01:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/wine-grapes/</guid>
      <description>&lt;p&gt;The reason new world wines use the grapes they do, is because those are the grapes from the big French wines. But which grapes from which wines ? To find out, you could go to the &lt;a href=&#34;http://www.inao.gouv.fr&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Institut National des Appellations d’Origine&lt;/a&gt; and read the text of each appelation. There are over 300. Or there’s the &lt;a href=&#34;http://en.wikipedia.org/wiki/List_of_Appellation_d%27Origine_Contr%C3%B4l%C3%A9e_wines&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;Wikipedia list of French wine Appelations&lt;/a&gt;. Or there’s the handy guide below on which grapes are in which French wines. Happy sipping !&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Wine notes</title>
      <link>https://darkcoding.net/misc/wine-notes/</link>
      <pubDate>Fri, 30 Jun 2006 18:04:56 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/wine-notes/</guid>
      <description>&lt;p&gt;Some notes from a talk / taster I went to on food and wine pairing. It was led by Tom Forrest – and a very interesting and knowledgeable chap he is.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>10 ways to kill a pig</title>
      <link>https://darkcoding.net/misc/10-ways-to-kill-a-pig/</link>
      <pubDate>Fri, 30 Jun 2006 12:05:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/10-ways-to-kill-a-pig/</guid>
      <description>Art at work  This is the webgroup’s first online gallery show.</description>
    </item>
    
    <item>
      <title>carriagereturn.org</title>
      <link>https://darkcoding.net/software/carriage-return-intro/</link>
      <pubDate>Mon, 15 May 2006 21:57:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/carriage-return-intro/</guid>
      <description>carriagereturn.org provides a daily dose of software engineering wisdom to your feed reader or e-mail client – it’s inspiring, thought provoking, and sometimes just plain dangerous.</description>
    </item>
    
    <item>
      <title>Halliburton solves global warming</title>
      <link>https://darkcoding.net/misc/halliburton-solves-global-warming/</link>
      <pubDate>Sat, 13 May 2006 20:12:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/halliburton-solves-global-warming/</guid>
      <description>&lt;p&gt;I got the strangest email today, which I originally took to be spam. Read for yourself:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;May 9, 2006 FOR IMMEDIATE RELEASE&lt;/p&gt;
&lt;p&gt;Contact: mailto:EPDU@halliburtoncontracts.com Photos: &lt;a href=&#34;http://www.halliburtoncontracts.com/EPDU/&#34;&gt;http://www.halliburtoncontracts.com/EPDU/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;HALLIBURTON SOLVES GLOBAL WARMING SurvivaBalls save managers from abrupt climate change&lt;/p&gt;
&lt;/blockquote&gt;</description>
    </item>
    
    <item>
      <title>Markdown quick reference</title>
      <link>https://darkcoding.net/software/markdown-quick-reference/</link>
      <pubDate>Tue, 09 May 2006 22:18:18 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/markdown-quick-reference/</guid>
      <description>I use Markdown to edit this blog.</description>
    </item>
    
    <item>
      <title>Why your company needs a feed reader on every desktop</title>
      <link>https://darkcoding.net/ideas/why-your-company-needs-a-feed-reader-on-every-desktop/</link>
      <pubDate>Tue, 09 May 2006 21:37:11 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/why-your-company-needs-a-feed-reader-on-every-desktop/</guid>
      <description>&lt;p&gt;A &lt;a href=&#34;http://en.wikipedia.org/wiki/Web_feed&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;web feed&lt;/a&gt; is, to quote Wikipedia:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;… a document (often XML-based) which contains content items, often summaries of stories or weblog posts with web links to longer versions. Weblogs and news websites are common sources for web feeds, but feeds are also used to deliver structured information ranging from weather data to “top ten” lists of hit tunes. The two main web feed formats are RSS (which is older and far more widely used) and Atom (a newer format that has just completed the IETF standardization process.) Feeds are subscribed to directly by users with &lt;a href=&#34;http://www.newsonfeeds.com/faq/aggregators&#34; target=&#34;_blank&#34; class=&#34;external&#34;&gt;aggregators&lt;/a&gt; or feed readers, which combine the contents of multiple web feeds for display on a single screen or series of screens&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aggregators and feed readers are widely used, but mainly by tech-savvy individuals. It’s time your company rolled out a feed reader on every desktop PC it owns. Here’s why:&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Timestream: Where does the time go ?</title>
      <link>https://darkcoding.net/behaviour/timestream-where-does-the-time-go/</link>
      <pubDate>Mon, 10 Apr 2006 21:08:47 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/timestream-where-does-the-time-go/</guid>
      <description>UPDATE As of February 2008 mytimestream.</description>
    </item>
    
    <item>
      <title>Amazon cuts negative reviews</title>
      <link>https://darkcoding.net/society/amazon-cuts-negative-reviews/</link>
      <pubDate>Fri, 31 Mar 2006 12:29:36 +0000</pubDate>
      
      <guid>https://darkcoding.net/society/amazon-cuts-negative-reviews/</guid>
      <description>A very interesting article about Amazon censoring a negative review.</description>
    </item>
    
    <item>
      <title>Firefox Sage extension – beginning development</title>
      <link>https://darkcoding.net/sage/firefox-sage-extension-beginning-development/</link>
      <pubDate>Sun, 26 Mar 2006 15:25:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/sage/firefox-sage-extension-beginning-development/</guid>
      <description>I have been using Sage as my feed reader.</description>
    </item>
    
    <item>
      <title>Sage – the graham patch</title>
      <link>https://darkcoding.net/sage/sage-graham-patch/</link>
      <pubDate>Sun, 19 Mar 2006 23:03:17 +0000</pubDate>
      
      <guid>https://darkcoding.net/sage/sage-graham-patch/</guid>
      <description>I’ve started using Sage as my feed reader.</description>
    </item>
    
    <item>
      <title>Shaun Inman – &#34;10 reasons why you need to build an API&#34;</title>
      <link>https://darkcoding.net/future-of-web-apps/shaun-inman-mint-api/</link>
      <pubDate>Sun, 12 Mar 2006 18:08:06 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/shaun-inman-mint-api/</guid>
      <description>Shaun Inman is the creator of Mint.</description>
    </item>
    
    <item>
      <title>Tom Coates – Native to a Web of Data</title>
      <link>https://darkcoding.net/future-of-web-apps/tom-coates-native-to-a-web-of-data/</link>
      <pubDate>Sat, 11 Mar 2006 18:45:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/tom-coates-native-to-a-web-of-data/</guid>
      <description>This is a write-up of my notes from Tom Coates’ presentation at the Future Of Web Apps (futureofwebapps) conference, held in London on Wednesday 8th February.</description>
    </item>
    
    <item>
      <title>Javascript credit card generator fix</title>
      <link>https://darkcoding.net/credit-card/javascript-credit-card-generator-fix/</link>
      <pubDate>Wed, 08 Mar 2006 20:40:30 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/javascript-credit-card-generator-fix/</guid>
      <description>There was a mistake in the Javascript credit card generator, meaning it would not work on MS Internet Explorer or Opera.</description>
    </item>
    
    <item>
      <title>Types of question</title>
      <link>https://darkcoding.net/behaviour/types-of-question/</link>
      <pubDate>Sat, 18 Feb 2006 14:59:43 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/types-of-question/</guid>
      <description>From a Greenpeace workshop</description>
    </item>
    
    <item>
      <title>Cal Henderson – Building Flickr</title>
      <link>https://darkcoding.net/future-of-web-apps/cal-henderson-building-flickr/</link>
      <pubDate>Sat, 18 Feb 2006 13:39:52 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/cal-henderson-building-flickr/</guid>
      <description>These are the notes I took during Cal Henderson’s talk on Building Flickr at the Future of Web Applications conference in London on Wednesday 8th February.</description>
    </item>
    
    <item>
      <title>Joshua Schacter – del.icio.us – Things we&#39;ve learned</title>
      <link>https://darkcoding.net/future-of-web-apps/joshua-schacter-delicious-things-weve-learned/</link>
      <pubDate>Sat, 18 Feb 2006 13:05:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/future-of-web-apps/joshua-schacter-delicious-things-weve-learned/</guid>
      <description>These are the notes I took at Joshua Schachter’s talk at the Future Of Web Applications (futureofwebapps) conference, in London on Wednesday 8th February 2006.</description>
    </item>
    
    <item>
      <title>Why you need a cluster</title>
      <link>https://darkcoding.net/software/why-you-need-a-cluster/</link>
      <pubDate>Thu, 16 Feb 2006 13:37:24 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/why-you-need-a-cluster/</guid>
      <description>If your live web application has more than a couple of users, and they don’t both sit right next to you, you need to cluster it.</description>
    </item>
    
    <item>
      <title>Goodbye mod_jk hello mod_proxy</title>
      <link>https://darkcoding.net/software/goodbye-mod_jk-hello-mod_proxy/</link>
      <pubDate>Wed, 15 Feb 2006 13:18:23 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/goodbye-mod_jk-hello-mod_proxy/</guid>
      <description>I’ve been using Apache as a front end to a cluster of Tomcat servers for a while.</description>
    </item>
    
    <item>
      <title>Javascript and PHP credit card generator</title>
      <link>https://darkcoding.net/credit-card/javascript-and-php-credit-card-generator/</link>
      <pubDate>Wed, 01 Feb 2006 21:39:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/javascript-and-php-credit-card-generator/</guid>
      <description>I have ported the credit card number generator to PHP and Javascript.</description>
    </item>
    
    <item>
      <title>Fire</title>
      <link>https://darkcoding.net/misc/fire/</link>
      <pubDate>Mon, 02 Jan 2006 18:00:16 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/fire/</guid>
      <description>I went on a basic fire fighting course a long time ago.</description>
    </item>
    
    <item>
      <title>Fatigue</title>
      <link>https://darkcoding.net/behaviour/fatigue/</link>
      <pubDate>Sun, 01 Jan 2006 13:59:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/fatigue/</guid>
      <description>This is sourced from Naval Strike and Air Warfare Center; ?</description>
    </item>
    
    <item>
      <title>jUse</title>
      <link>https://darkcoding.net/software/juse/</link>
      <pubDate>Tue, 29 Nov 2005 19:32:21 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/juse/</guid>
      <description>I’ve written a small Python program I’m calling jUse which I’m placing here in the hope that someone might find it useful.</description>
    </item>
    
    <item>
      <title>Creativity</title>
      <link>https://darkcoding.net/behaviour/creativity/</link>
      <pubDate>Sun, 13 Nov 2005 10:55:20 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/creativity/</guid>
      <description>From New Scientist, 29th October 2005:</description>
    </item>
    
    <item>
      <title>Free credit cards</title>
      <link>https://darkcoding.net/credit-card/free-credit-cards/</link>
      <pubDate>Wed, 09 Nov 2005 19:09:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/free-credit-cards/</guid>
      <description>As you can probably tell from some of the comments in the credit card section, some people don’t seem to understand that the generator just makes numbers that look like credit cards, but are IN NO WAY actual credit card numbers.</description>
    </item>
    
    <item>
      <title>JavaWorld unit testing article</title>
      <link>https://darkcoding.net/software/javaworld-unit-testing-article/</link>
      <pubDate>Mon, 07 Nov 2005 11:01:22 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/javaworld-unit-testing-article/</guid>
      <description>JavaWorld have published my third article.</description>
    </item>
    
    <item>
      <title>When thieves fall out</title>
      <link>https://darkcoding.net/history/when-thieves-fall-out/</link>
      <pubDate>Sun, 30 Oct 2005 15:54:10 +0000</pubDate>
      
      <guid>https://darkcoding.net/history/when-thieves-fall-out/</guid>
      <description>by Jeff Elkins  Interesting details are emerging regarding a wartime tiff between General Wesley Clark, former NATO Supreme Allied Commander and General Sir Michael Jackson of Britain, former commander of NATO “peacekeeping” forces in Kosovo.</description>
    </item>
    
    <item>
      <title>CVV numbers</title>
      <link>https://darkcoding.net/credit-card/cvv-numbers/</link>
      <pubDate>Sun, 23 Oct 2005 16:46:27 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/cvv-numbers/</guid>
      <description>CVVs, CVV2s, CVCs, and Indent CVCs are 3-digit Card Verification Values or Card Verification Codes that are all calculated using the same CVV algorithm.</description>
    </item>
    
    <item>
      <title>Luhn formula</title>
      <link>https://darkcoding.net/credit-card/luhn-formula/</link>
      <pubDate>Sun, 23 Oct 2005 16:44:52 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/luhn-formula/</guid>
      <description>A credit card number must be from 13 to 16 digits long.</description>
    </item>
    
    <item>
      <title>Irregular warfare</title>
      <link>https://darkcoding.net/strategy/irregular-warfare/</link>
      <pubDate>Sun, 23 Oct 2005 16:25:14 +0000</pubDate>
      
      <guid>https://darkcoding.net/strategy/irregular-warfare/</guid>
      <description>Political violence, terrorism, military operations other than war (MOOTW), low-intensity conflict, people’s war, revolutionary warfare, war of national liberation, guerrilla war, partisan war, warfare in the enemy’s rear, imperial policing or small wars.</description>
    </item>
    
    <item>
      <title>Sea power</title>
      <link>https://darkcoding.net/strategy/sea-power/</link>
      <pubDate>Sun, 23 Oct 2005 16:24:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/strategy/sea-power/</guid>
      <description>The term sea power covers the control of international trade and commerce, the operation of navies in war, and the use of navies as instruments of diplomacy, deterrence, and political influence in peacetime.</description>
    </item>
    
    <item>
      <title>Land warfare</title>
      <link>https://darkcoding.net/strategy/land-warfare/</link>
      <pubDate>Sun, 23 Oct 2005 16:23:58 +0000</pubDate>
      
      <guid>https://darkcoding.net/strategy/land-warfare/</guid>
      <description>A maritime blockade, strategic bombing or guerilla warfare are coercive techniques to achieve a particular objective.</description>
    </item>
    
    <item>
      <title>International law and the use of force</title>
      <link>https://darkcoding.net/strategy/international-law-and-the-use-of-force/</link>
      <pubDate>Sun, 23 Oct 2005 16:23:03 +0000</pubDate>
      
      <guid>https://darkcoding.net/strategy/international-law-and-the-use-of-force/</guid>
      <description>Although there is no judiciary or policing capability at the international level (aside from the limited actions and powers of the United Nations), there is a still an influential body of international law, respected almost all the time by almost all nations.</description>
    </item>
    
    <item>
      <title>What is strategy</title>
      <link>https://darkcoding.net/ideas/what-is-strategy/</link>
      <pubDate>Sun, 23 Oct 2005 16:22:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/what-is-strategy/</guid>
      <description>Strategy is the art of distributing and applying military means to fulfill the ends of policy – Lidell Hart</description>
    </item>
    
    <item>
      <title>Financial Glossary</title>
      <link>https://darkcoding.net/finance/glossary/</link>
      <pubDate>Sun, 23 Oct 2005 16:19:28 +0000</pubDate>
      
      <guid>https://darkcoding.net/finance/glossary/</guid>
      <description>Commodities  Commodities are anything that you can take physical delivery of, such as sugar, coffee, wheat, etc.</description>
    </item>
    
    <item>
      <title>Derivatives</title>
      <link>https://darkcoding.net/finance/derivatives/</link>
      <pubDate>Sun, 23 Oct 2005 16:18:41 +0000</pubDate>
      
      <guid>https://darkcoding.net/finance/derivatives/</guid>
      <description>A derivative is a financial contract that is based on (derived from) something else, either another financial instrument (a bond, shares, currency, etc) or a commodity (sugar, coffee, energy, etc).</description>
    </item>
    
    <item>
      <title>Finance basics</title>
      <link>https://darkcoding.net/finance/finance-basics/</link>
      <pubDate>Sun, 23 Oct 2005 16:18:11 +0000</pubDate>
      
      <guid>https://darkcoding.net/finance/finance-basics/</guid>
      <description>A loose collection of definitions and information concerning the financial world.</description>
    </item>
    
    <item>
      <title>GUI design</title>
      <link>https://darkcoding.net/software/gui-design/</link>
      <pubDate>Sun, 23 Oct 2005 16:15:29 +0000</pubDate>
      
      <guid>https://darkcoding.net/software/gui-design/</guid>
      <description>User interface design principles  This is the basics to think about when designing a GUI, a website, any software with a user interface.</description>
    </item>
    
    <item>
      <title>Get It Done</title>
      <link>https://darkcoding.net/behaviour/get-it-done/</link>
      <pubDate>Sun, 23 Oct 2005 16:08:05 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/get-it-done/</guid>
      <description>This section presents a system for getting things done.</description>
    </item>
    
    <item>
      <title>Decider Protocol</title>
      <link>https://darkcoding.net/behaviour/decider-protocol/</link>
      <pubDate>Sun, 23 Oct 2005 16:07:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/decider-protocol/</guid>
      <description>This section is inspired by Software for your Head, by Jim and Michele McCarthy.</description>
    </item>
    
    <item>
      <title>Advice</title>
      <link>https://darkcoding.net/behaviour/advice/</link>
      <pubDate>Sun, 23 Oct 2005 16:05:59 +0000</pubDate>
      
      <guid>https://darkcoding.net/behaviour/advice/</guid>
      <description>The best advice I have every been given was to take the highest paying job you can get until you figure out what you want to do.</description>
    </item>
    
    <item>
      <title>A short history of Christianity</title>
      <link>https://darkcoding.net/history/a-short-history-of-christianity/</link>
      <pubDate>Sun, 23 Oct 2005 15:55:12 +0000</pubDate>
      
      <guid>https://darkcoding.net/history/a-short-history-of-christianity/</guid>
      <description>??The term ‘Christian’ was first used in Antioch in Syria around 35-40 AD to designate a new religious community there which included both Jewish and non-Jewish adherents and was marked out by it attachment to ‘Christos’, a Greek translation of the Hebrew title ‘Messiah’, used by Jews to designate their expected national savior.</description>
    </item>
    
    <item>
      <title>Michael Jackson</title>
      <link>https://darkcoding.net/misc/michael-jackson/</link>
      <pubDate>Sun, 23 Oct 2005 15:53:50 +0000</pubDate>
      
      <guid>https://darkcoding.net/misc/michael-jackson/</guid>
      <description>An unexpected page, dedicated to the world’s strange collection of Michael Jacksons.</description>
    </item>
    
    <item>
      <title>Credit card numbers</title>
      <link>https://darkcoding.net/credit-card-numbers/</link>
      <pubDate>Sun, 23 Oct 2005 14:16:56 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card-numbers/</guid>
      <description>Credit card numbers that conform to the Luhn formula (MOD 10 check).</description>
    </item>
    
    <item>
      <title>Credit card generator</title>
      <link>https://darkcoding.net/credit-card-generator/</link>
      <pubDate>Sun, 23 Oct 2005 13:43:17 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card-generator/</guid>
      <description>If you just need a bunch of numbers use the online credit card number generator.</description>
    </item>
    
    <item>
      <title>Laws should expire</title>
      <link>https://darkcoding.net/ideas/laws-should-expire/</link>
      <pubDate>Sun, 23 Oct 2005 13:24:12 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/laws-should-expire/</guid>
      <description>In England in 1388 Richard III made a law stating that all men (or only ages 10-18, versions differ) must own bows and practice archery on Sunday’s and holidays.</description>
    </item>
    
    <item>
      <title>Prawn / Shrimp garden</title>
      <link>https://darkcoding.net/ideas/prawn-shrimp-garden/</link>
      <pubDate>Sun, 23 Oct 2005 13:23:09 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/prawn-shrimp-garden/</guid>
      <description>People grow vegetables or fruit in their gardens, and may keep chickens or other animals.</description>
    </item>
    
    <item>
      <title>Pedestrian crossing</title>
      <link>https://darkcoding.net/ideas/pedestrian-crossing/</link>
      <pubDate>Sun, 23 Oct 2005 13:21:02 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/pedestrian-crossing/</guid>
      <description>In many countries, pedestrian crossings have a button you press to signal your desire to cross.</description>
    </item>
    
    <item>
      <title>Anti-gravity platform</title>
      <link>https://darkcoding.net/ideas/anti-gravity-platform/</link>
      <pubDate>Sun, 23 Oct 2005 13:19:51 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/anti-gravity-platform/</guid>
      <description>Fact 1: Cats always land on their feet.</description>
    </item>
    
    <item>
      <title>Cat stroker</title>
      <link>https://darkcoding.net/ideas/cat-stroker/</link>
      <pubDate>Sun, 23 Oct 2005 13:19:00 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/cat-stroker/</guid>
      <description>Cats love affection, but particularly they love being rubbed on their cheek.</description>
    </item>
    
    <item>
      <title>Dog Rentals</title>
      <link>https://darkcoding.net/ideas/dog-rentals/</link>
      <pubDate>Sun, 23 Oct 2005 13:18:38 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/dog-rentals/</guid>
      <description>If you live in the city and work all day, you probably can’t have a dog.</description>
    </item>
    
    <item>
      <title>Office Mum</title>
      <link>https://darkcoding.net/ideas/office-mum/</link>
      <pubDate>Sun, 23 Oct 2005 13:18:16 +0000</pubDate>
      
      <guid>https://darkcoding.net/ideas/office-mum/</guid>
      <description>Mum’s, over the course of being Mums, develop an extraordinary ability to manage a house, put up with squealing brats, multitask, remember a range of important unconnected information, and generally get things done under duress.</description>
    </item>
    
    <item>
      <title>about</title>
      <link>https://darkcoding.net/about/</link>
      <pubDate>Sun, 23 Oct 2005 12:28:39 +0000</pubDate>
      
      <guid>https://darkcoding.net/about/</guid>
      <description>This site is maintained by Graham King.</description>
    </item>
    
    <item>
      <title>Amusing feedback</title>
      <link>https://darkcoding.net/credit-card/amusing-feedback/</link>
      <pubDate>Thu, 20 Oct 2005 16:47:15 +0000</pubDate>
      
      <guid>https://darkcoding.net/credit-card/amusing-feedback/</guid>
      <description>Everyone that runs a website probably gets some amusing e-mails, and because of the credit card numbers I probably get more than my fair share.</description>
    </item>
    
  </channel>
</rss>
