<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for Stevey</title>
    <link>http://www.advogato.org/person/Stevey/</link>
    <description>Advogato blog for Stevey</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 10 Feb 2012 16:05:48 GMT</pubDate>
    <item>
      <pubDate>Sun, 5 Feb 2012 13:28:50 GMT</pubDate>
      <title>Some domains just don't learn</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=556</link>
      <guid>http://blog.steve.org.uk/some_domains_just_don_t_learn.html</guid>
      <description>&lt;p&gt;For the past few years the &lt;a href="http://www.steve.org.uk/Software/ms-lite/" &gt;anti-spam system I run&lt;/a&gt; has been based on a simplified version of something I previously ran commercially.&lt;/p&gt;
&lt;p&gt;Although the code is similar in intent there were both explicit feature removals, and simplifications made.&lt;/p&gt;
&lt;p&gt;Last month I &lt;a href="http://repository.steve.org.uk/cgi-bin/hgwebdir.cgi/ms-lite/rev/d8f232f37d88" &gt;re-implimented domain-blacklisting&lt;/a&gt; - because a single company keeps ignoring requests to remove me.&lt;/p&gt;
&lt;p&gt;So LinkedIn.com if you're reading this:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;I've never had an account on your servers.&lt;/li&gt;
&lt;li&gt;I find your junk mail annoying.&lt;/li&gt;
&lt;li&gt;I suspect I'll join your site/service when hell freezes over.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;I've also implemented TLD-blacklisting which has been useful.&lt;/p&gt;
&lt;blockquote&gt;
 &lt;p&gt;TLD-blacklisting in my world is not about blocking mail from foo@bar.ph (whether in the envelope sender, or the from: header), instead it is about matching the reverse DNS of the connecting client.&lt;/p&gt;
 &lt;p&gt;If I recieve a connection from 1.2.3.4 and the reverse DNS of that IP address matches, say, /\.sa$/i then I default to denying it.&lt;/p&gt;
 &lt;p&gt;My real list is longer, and handled via files:&lt;/p&gt;
&lt;pre&gt;
steve@steve:~$ ls /srv/_global_/blacklisted/tld/ -C
ar  br  cn  eg  hr  in  kr  lv  mn  np  ph  ro  sg  tg  ua  ve  zw
aw  cc  cy  gm  hu  is  kz  ma  my  nu  pk  rs  sk  th  ug  vn
be  ch  cz  gr  id  it  lk  md  mz  nz  pl  ru  su  tr  uy  ws
bg  cl  ec  hk  il  ke  lt  mk  no  om  pt  sa  sy  tw  uz  za
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;On average I'm rejecting about 2500 messagse a day at SMTP-time, and 30 messages, or so, hit my SPAM folder after being filtered with CRM114 after being accepted for delivery.  (They are largely from @hotmail and @yahoo, along with random compromised machines.  The amount of times I see a single mail from a host with RDNS mysql.example.org is staggering.).&lt;/p&gt;
&lt;p&gt;(Still looking forward to the development of &lt;a href="https://github.com/baudehlo/Haraka" &gt;Haraka&lt;/a&gt;, a node.js version of qpsmtpd.)&lt;/p&gt;
&lt;p&gt;ObQuote: "Mr. Mystery Guest? Are you still there? " - Die Hard&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 21 Jan 2012 13:28:39 GMT</pubDate>
      <title>So mega-upload is gone</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=555</link>
      <guid>http://blog.steve.org.uk/so_mega_upload_is_gone.html</guid>
      <description>&lt;p&gt;So the site http://megaupload.com/ has been taken offline, amidst allegations of knowingly conducting in piracy.&lt;/p&gt;
&lt;p&gt;There are probably a lot of legitimate users who have lost access to their uploaded files, even if they were offsite backups you can imagine a user owning a website which now has a million dead-links.&lt;/p&gt;
&lt;p&gt;This reminds me of &lt;a href="http://jmtd.net/log/mail_archiving/" &gt;a conversation I overheard&lt;/a&gt; on &lt;a href="" &gt;Jon Dowlands blog&lt;/a&gt; - the summary is that he'd written a (useful) tool to extract attachments from Maildir folders and was wondering how to store and access those attachments.  The upshot seemed to be magical URLs of the form:&lt;/p&gt;
&lt;blockquote&gt;
 &lt;ul&gt;&lt;li&gt;https://file.example.com/sha1/509c2fe2eba509e93987c3024a74d74583c274bd&lt;/li&gt;
 &lt;/ul&gt;&lt;/blockquote&gt;
&lt;p&gt;The comments covered an alternative which was &lt;tt&gt;hash:///sha1/xxxxxxxxxxxxxxxx&lt;/tt&gt;, which then becomes &lt;i&gt;close&lt;/i&gt; to the &lt;a href="http://en.wikipedia.org/wiki/Magnet_URI_scheme" &gt;magnet://&lt;/a&gt; schema.&lt;/p&gt;
&lt;p&gt;I've not yet thought things through, but I can't help thinking that with the redundency already present in the internet we should be looking at non-server-specific links.  Yes there are times right now when you might want to address a specific file on a specific server - but otherwise?  Wouldn't it be nice if you could just access a file from "anywhere" which happened to have the right contents?&lt;/p&gt;
&lt;p&gt;Already my  &lt;a href="http://tasteful.xxx/" &gt;nonporn-but-definitely-adult-site&lt;/a&gt; makes its images available as /img/$md5sum.jpg - and similarly the storage at the back-end of my random &lt;a href="http://linkti.me/" &gt;image upload site&lt;/a&gt; uses SHA1 hashes to store the actual files.&lt;/p&gt;
&lt;p&gt;To make this more complete what we need is something that crawls the internet to find files by hash; then add support in browsers.  Obviously this must be async and could introduce timing issues, but fundamentally it seems like a reasonable approach to the problem of a single host going offline.&lt;/p&gt;
&lt;p&gt;(Consider what happens if imgur.com disappears.  All those links would die, yet 99% of the images would still be available &lt;i&gt;somewhere&lt;/i&gt;.)
&lt;/p&gt;&lt;p&gt;I'm tempted to suggest &lt;a href="http://microformats.org/" &gt;microformat&lt;/a&gt; format but I need to consider the matter.  Right now I'm going to immediately update my current image hosts to use, at the very least:&lt;/p&gt;
&lt;pre&gt;
 &amp;lt;a href="/foo" rel="sha1:xxxxx md5sum:xxxx"&amp;gt;
  &amp;lt;img src="foo.jpg" alt="img name"&amp;gt;
 &amp;lt;/a&amp;gt;
&lt;/pre&gt;
&lt;p&gt;The unfortunate thing is you cannot have a 'rel="xx"' attribute for an image.  So you either have to encode it in the parent link, or add it to the alt attribute which is suboptimal.&lt;/p&gt;
&lt;p&gt;ObQuote: "Now, they tell me I paid my debt to society." - Oceans Eleven (2001)&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 13 Jan 2012 18:28:23 GMT</pubDate>
      <title>Some misc. updates</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=554</link>
      <guid>http://blog.steve.org.uk/some_misc__updates.html</guid>
      <description>&lt;p&gt;
  &lt;b&gt;Security&lt;/b&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Today I made available a 3.2.0 kernel for my KVM guest which has a bastardised version of the PID hiding patch configured:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=0499680a42141d86417a8fbaa8c8db806bea1201" &gt;procfs: add hidepid= and gid= mount options &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=a2ef990ab5a6705a356d146dd773a3b359787497" &gt;bugfix - proc: fix null pointer deref in proc_pid_permission()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;So now on my guest, as myself, I can only see this:&lt;/p&gt;
&lt;pre&gt;
steve@steve:~$ ls -l /proc/ | egrep ' [0-9]+$'
dr-xr-xr-x  7 steve users          0 Jan 13 17:22 15150
dr-xr-xr-x  7 steve users          0 Jan 13 17:29 15739
dr-xr-xr-x  7 steve users          0 Jan 13 17:29 15740
lrwxrwxrwx  1 root  root          64 Jan 13 17:20 self -&amp;gt; 15739
&lt;/pre&gt;
&lt;p&gt;Running as root I see the full tree:&lt;/p&gt;
&lt;pre&gt;
steve:~#  ls -l /proc/ | egrep ' [0-9]+$'
total 0
dr-xr-xr-x  7 root        root                 0 Jan 13 17:20 1
dr-xr-xr-x  7 root        root                 0 Jan 13 17:20 1052
dr-xr-xr-x  7 root        root                 0 Jan 13 17:20 1086
dr-xr-xr-x  7 root        root                 0 Jan 13 17:20 1101
dr-xr-xr-x  7 root        root                 0 Jan 13 17:20 1104
dr-xr-xr-x  7 root        root                 0 Jan 13 17:21 1331
dr-xr-xr-x  7 pdnsd       proxy                0 Jan 13 17:21 14409
dr-xr-xr-x  7 root        root                 0 Jan 13 17:21 14519
..
&lt;/pre&gt;
&lt;p&gt;This (obviously) affects output from &lt;tt&gt;top&lt;/tt&gt; etc too.  It is a neat feature which I think is worth having, but time will tell..&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;
  &lt;b&gt;mod_ifier&lt;/b&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A long time ago I put together an Apache module which allowed the evaluation of security rules against incoming HTTP requests.  &lt;a href="http://www.steve.org.uk/Software/mod_ifier/" &gt;mod_ifier&lt;/a&gt; was largely ignored by the world.  But this week it did receive a little attention.&lt;/p&gt;
&lt;p&gt;The recent rash of Hash Collision attacks inspired &lt;a href="http://yoyo.org/~steve/mod_ifier.html" &gt;inspired a fork with parameter filtering&lt;/a&gt;.  Neat.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Otherwise nothing too much to report - though I guess I didn't actually share the link to the RESTful file store I mentioned previously.  Should you care you can find it here:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://sinatrastore.repository.steve.org.uk/file" &gt;http://sinatrastore.repository.steve.org.uk/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;ObQuote: "I saw a man, he danced with his wife" - Chicago, Frank Sinatra&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 7 Jan 2012 15:28:53 GMT</pubDate>
      <title>Review of the Panasonic Lumix FS-16 camera</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=553</link>
      <guid>http://blog.steve.org.uk/review_of_the_panasonic_lumix_fs_16_camera.html</guid>
      <description>&lt;p&gt;Recently I've been wanting to replace my old point and shoot camera, a &lt;a href="http://www.dpreview.com/reviews/canona620/" &gt;Canon PowerShot A620&lt;/a&gt;.  I've got a pair of DLSR cameras and I &lt;b&gt;do&lt;/b&gt; frequently carry one of them out with me, but there are undoubtedly  occasions where I'd rather not bother, or where I find myself wanting to take a picture without having one to hand.&lt;/p&gt;
&lt;p&gt;Unfortunately the PowerShot is pretty large itself, although significantly less so than the DSLRS I possess.  (I cannot remember the last time I used the PowerShot outside my flat, that is how rarely it goes outdoors).&lt;/p&gt;
&lt;p&gt;The PowerShot has been a good camera to me for many years and the three features I liked the most:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;A real view-finder.&lt;/li&gt;
&lt;li&gt;It runs on 4x AA batteries; easy to find.&lt;/li&gt;
&lt;li&gt;Shoots (smallish) movies.
&lt;ul&gt;&lt;li&gt;This last thing is no longer a concern now I have a &lt;a href="http://www.amazon.co.uk/Kodak-Playsport-Zx3-Waterproof-Pocket/dp/B0033PRPHU" &gt;Kodak Playsport HD video toy&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Picking a replacement camera, even with the help of fine comparison websites like &lt;a href="http://snapsort.com/" &gt;snapsort.com&lt;/a&gt; is hard.  Cameras have moved on and "improved" a lot over the last few years - to the extent that finding one with a built-in viewfinder is hard.  Finding one with a built-in viewfinder &lt;b&gt;and&lt;/b&gt; running on easily replaceable batteries was virtually impossible.&lt;/p&gt;
&lt;p&gt;Eventually I settled on the &lt;a href="http://www.amazon.co.uk/Panasonic-Lumix-FS16-Digital-Camera/dp/B004I1KP8Y" &gt;Panasonic Lumix FS16&lt;/a&gt;, which omits both:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Integrated rechargeable battery.&lt;/li&gt;
&lt;li&gt;LCD-only viewfinder.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;The way that you use the LCD or viewfinder differs pretty significantly, but the LCD wasn't as bad as I'd feared:&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;ViewFinder&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;You hold the camera to your eye, and press the appropriate buttons.&lt;/p&gt;&lt;/dd&gt;
&lt;dt&gt;LCD&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;You typically hold the camera at arms length, which means you're prone to shaking your hands/arms and getting blurry shots.&lt;/p&gt;
&lt;p&gt;Because you're holding the camera relatively far away from your eyes if you have the sun at your back you're liable to need to squint.&lt;/p&gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;The LCD on the Lumix FS-16 isn't amazing, but neither is it horrific and it is better than expected in dark locations.&lt;/p&gt;
&lt;p&gt;So after a week what do I think?  On the whole it is a fine camera, better than the PowerShot in many ways, and while it has draw-backs none are deal-breakers:&lt;/p&gt;
&lt;dl&gt;&lt;dt&gt;Size&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;The best camera is one you have with you; on that basis this camera is a clear win being smaller, lighter, and more compact than the Canon.&lt;/p&gt;
&lt;p&gt;I've taken this camera with me, randomly, to several places and returned with useful and interesting images.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;Low Light&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Low light performance is pretty poor.  With only one manual control you see noise if you're shooting in gloomy pubs, and outdoors.  With the flash you can get acceptable pictures if you're careful - but its a tricky thing to get right.&lt;/p&gt;
&lt;p&gt;(To update this a little: Outdoors at night?  No.  In a pub with poor lighting you'll be alright.)&lt;/p&gt;&lt;/dd&gt;
&lt;dt&gt;Manual Controls&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;The camera features precisely two manual controls:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;"Flash on" vs.  "Flash off".&lt;/li&gt;
&lt;li&gt;ISO can be changed from: Auto, 100, 200, 400, 800, 1200 and 1600.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;There is no notion of shutter speed, nor is there any ability to change the aperture size.  (Though both these values are displayed on the screen as you take a picture I wonder why?  As you can't change anything you can't use the information in any useful fashion, and presumably a non-camera-person wouldn't understand what these numbers represent.)&lt;/p&gt;
&lt;p&gt;The lack of these two controls is a little galling, but pretty common for the low-end P&amp;amp;S cameras.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;Video Recording&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;There is no external MIC so sounds aren't great, but they're not horrible either.&lt;/p&gt;
&lt;p&gt;Video recordings are limited to the smaller of 8 minutes &lt;b&gt;or&lt;/b&gt; 2Gb.  So no long films, but short ones look fine.  Just be aware that once you start recording focus won't change, nor will zooming work.&lt;/p&gt;
&lt;p&gt;Compared to the canon the quality is improved; but the Canon allowed you to (optically) zoom whilst recording.  Here you can only zoom with your feet.&lt;/p&gt;
&lt;/dd&gt;
&lt;dt&gt;Recharging Time&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;When I received the camera it took about an hour to charge.  The battery life seems reasonable -  the level is 2/3 a week later and I've been shooting, reviewing, and deleting regularly.&lt;/p&gt;
&lt;p&gt;(&lt;b&gt;Note&lt;/b&gt;: I never use USB to transfer pictures, I always remove the card and plug it into my PC.  Whether this makes a difference to battery life I don't know.)&lt;/p&gt;&lt;/dd&gt;
&lt;dt&gt;Controls&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;Physical controls are reasonable.  There is a mechanical slide-switch to turn on/off.  I like that, as it is less prone to being knocked by keys, change, etc.&lt;/p&gt;
&lt;p&gt;There is also a physical slide-switch to change from "shoot" to "review current images/videos".   (Same as my Canon)  I think this is a mistake, and don't see why it can't be a soft-button.&lt;/p&gt;&lt;/dd&gt;
&lt;dt&gt;Full Auto&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;There are several modes available in the camera (remember the caveat about lack of aperture/shutter speed) I've been using both full-auto and manual modes, and both are good.  Full auto would suit most people - it has clever face-tracking.&lt;/p&gt;&lt;/dd&gt;
&lt;dt&gt;Focusing Speed&lt;/dt&gt;
&lt;dd&gt;&lt;p&gt;As expected this is not stellar.  Walking to the corner shop the other lunchtime I found a cat in the road, I talked to her and she rubbed herself against my ankles.  Could I focus fast enough to catch her looking up at me?  No.&lt;/p&gt;
&lt;p&gt;For static scenes, and candid shots of people it'll suffice.  For fast action and moving children probably not a chance.&lt;/p&gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;p&gt;On balance, the upgrade was worthwhile.&lt;/p&gt;
&lt;p&gt;ObQuote: "I don't mean to lecture and I don't mean to preach. And I know I'm not your father..." - Spider-Man&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 6 Jan 2012 22:26:57 GMT</pubDate>
      <title>Tonight I've mostly been using Sinatra</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=552</link>
      <guid>http://blog.steve.org.uk/tonight_i_ve_mostly_been_using_sinatra.html</guid>
      <description>&lt;p&gt;This evening I've mostly been using Sinatra to build a little file storage service which uses a REST API.&lt;/p&gt;
&lt;p&gt;That means I can upload a file:&lt;/p&gt;
&lt;pre&gt;
skx@birthday:~/hg/sinatra$ curl -X PUT -F file=@/etc/fstab http://localhost:4567/
{"id":"dbd1bdc11b5a1a8e80588a135648b4c2edffb49a","path":"/"}
&lt;/pre&gt;
&lt;p&gt;Download that same file:&lt;/p&gt;
&lt;pre&gt;
skx@birthday:~/hg/sinatra$ curl -X GET -F id=dbd1bdc11b5a1a8e80588a135648b4c2edffb49a  \
   http://localhost:4567/
# /etc/fstab: static file system information.
..
/dev/cdrom        /media/cdrom0   udf,iso9660 user,noauto     0       0
&lt;/pre&gt;
&lt;p&gt;Get an index of files:&lt;/p&gt;
&lt;pre&gt;
skx@birthday:~/hg/sinatra$ curl http://localhost:4567/
[{"id":"dbd1bdc11b5a1a8e80588a135648b4c2edffb49a","type":"file"}]
&lt;/pre&gt;
&lt;p&gt;And finally we can delete a file:&lt;/p&gt;
&lt;pre&gt;
skx@birthday:~/hg/sinatra$ curl -X DELETE -F "id=dbd1bdc11b5a1a8e80588a135648b4c2edffb49a" \
  http://localhost:4567/
Removed
&lt;/pre&gt;
&lt;p&gt;We can also upload to different paths so we can replicate a
file-system if we wanted to.  (I added in "type" to hold either "file"
or "directory", though I guess if we were to code up a FUSE client we'd
want to store things like ctime, UID, GID, etc.  THe list operation will
show both files and sub-directories)&lt;/p&gt;
&lt;p&gt;The code was trivial once I got the hang of Sinatra, and I'm pretty
pleased with it so far.  I don't yet need to use it for anything, but
I'm thinking of unifying the way that I store images on a couple of
sites - and fetching them via JSON and Javascript might be an option
this was an experiment in that direction.  (Though I'd probably want to
hook in rsync so we replicated the eventual upload location for safety.)&lt;/p&gt;
&lt;p&gt;In other news I've been all organized and upgraded the kernel on my guest:&lt;/p&gt;
&lt;pre&gt;
steve@steve:~$ uptime
 22:00:28 up  4:18,  1 user,  load average: 0.14, 0.05, 0.05
steve@steve:~$ uname -r
3.2.0-kvm-hosting.org-i386-20120106
&lt;/pre&gt;
&lt;p&gt;So for once I'm up to date with a cutting edge kernel.  Happy times.&lt;/p&gt;
&lt;p&gt;ObQuote: "How you expect to run with the wolves come night when you spend all day sparring with the puppies? " - The Wire (Omar)&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 31 Dec 2011 21:27:53 GMT</pubDate>
      <title>The final updates of 2011</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=551</link>
      <guid>http://blog.steve.org.uk/the_final_updates_of_2011.html</guid>
      <description>&lt;p&gt;I've been informed by a couple of people that the &lt;a href="http://www.debian-administration.org/" &gt;Debian Administration&lt;/a&gt; site is down.  Sadly it is; at the moment the host isn't showing anything on the serial console and remotely power-cycling it isn't showing any signs of life.&lt;/p&gt;
&lt;p&gt;At this time of year I don't want to drag anybody in to take care of it, so ETA on recovery/replacement hardware is Monday/Tuesday.&lt;/p&gt;
&lt;p&gt;In other news I've made it to year five of the &lt;a href="http://kvm-hosting.org/" &gt;KVM hosting&lt;/a&gt; sub-project/thing.  Originally started as a Xen host its been running happily for quite some time.  I suspect next year, or the year after that the price/specification ratio will end up losing out and we'll cancel the whole thing - but there are no immediate reasons to make any change.&lt;/p&gt;
&lt;p&gt;Finally I knocked up a simple tool to validate my TinyDNS records prior to uploading them.  It is simplistic, but adequate to catch the kind of mistakes I make:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://tinydns-lint.repository.steve.org.uk/file" &gt;http://tinydns-lint.repository.steve.org.uk/file&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Honestly it probably wants to be rationalised a little more - and check records more carefully.  e.g. Ensure that the host a CNAME refers to itself exists, and making sure that the nameservers specified are valid.&lt;/p&gt;
&lt;p&gt;I just wanted to make something quick after accidentally uploading a zonefile where I'd managed to fat-finger several important records.  le sigh.&lt;/p&gt;
&lt;p&gt;Oddly enough &lt;a href="http://serverfault.com/questions/345455/is-there-a-record-checker-for-tinydns" &gt;asking on serverfault.com&lt;/a&gt; showed no real suggestions - other than actually running tinydns locally and doing a zone-xfer to validate records.  Overkill and harder than I'd like.&lt;/p&gt;
&lt;p&gt;Happy New year if you care about such things..&lt;/p&gt;
&lt;p&gt;"I finished growing up, L&#xE9;on. I just get older. " - Leon&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 26 Dec 2011 18:28:05 GMT</pubDate>
      <title>So I'm a peddler of smut nowadays.</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=550</link>
      <guid>http://blog.steve.org.uk/so_i_m_a_peddler_of_smut_nowadays_.html</guid>
      <description>&lt;p&gt;Over the Christmas period I've not been doing too much.&lt;/p&gt;
&lt;p&gt;December was a month that started out pretty well, in the first 10 days I had five models/friends/random-folk come to pose for me.  (I have a few folk lined up for mid-January, but things tailed off quickly this month due to people having little free time).&lt;/p&gt;
&lt;p&gt;I spent a while mulling over what I was doing with images, as I've recently been doing a fair number of more NSFW images - In December &lt;a href="http://linkti.me/v/4T" &gt;this&lt;/a&gt; and &lt;a href="http://linkti.me/v/4O" &gt;this&lt;/a&gt; were my two favourite shots.&lt;/p&gt;
&lt;p&gt;I've posted NSFW images in various places over the past year (with permission; some volunteers/victims/friends don't want me to share anything, so I don't.  They just hang on my walls.) but I was never consistent.&lt;/p&gt;
&lt;p&gt;Anyway I realised that &lt;tt&gt;.xxx&lt;/tt&gt; domains are now available, so I figured I'd snarf one up and use that.    That lead to &lt;a href="http://tasteful.xxx/" &gt;tasteful.xxx&lt;/a&gt; - which is mostly full of images I didn't actually take, but that will change.  (Sadly "artistic" was gone!)&lt;/p&gt;
&lt;p&gt;In more on-topic news I reported &lt;a href="http://bugs.debian.org/651896" &gt;#651896&lt;/a&gt; - a trivial security issue in another setgid(games) binary.  I've got a couple more of those to tidy up and report in the near future.&lt;/p&gt;
&lt;p&gt;ObQuote: "Bright light. Bright light." - Gremlins&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 3 Dec 2011 17:28:08 GMT</pubDate>
      <title>So I removed some more software from my host</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=549</link>
      <guid>http://blog.steve.org.uk/so_i_removed_some_more_software_from_my_host.html</guid>
      <description>&lt;p&gt;Today I was idly performing some maintainence upon one of my hosts, and it crossed my mind to look beneath &lt;tt&gt;/etc&lt;/tt&gt; in there I found:&lt;/p&gt;
&lt;pre&gt;
/etc/python
/etc/python2.4
/etc/python2.5
/etc/python2.6
&lt;/pre&gt;
&lt;p&gt;That made me look more closely at the contents of &lt;tt&gt;/etc&lt;/tt&gt; - the following command output was surprising:&lt;/p&gt;
&lt;pre&gt;
steve@steve:~$ ls /etc | wc -l
187
&lt;/pre&gt;
&lt;p&gt;Is that average?  Heavy?  Light?  I have no idea, but I purged a hell of a lot of software today.  Now I have only python v2.6 although for some reason I still have:&lt;/p&gt;
&lt;pre&gt;
python
python-apt
python-apt-common
python-central
python-minimal
python-support
python2.6
python2.6-minimal
&lt;/pre&gt;
&lt;p&gt;I suspect I could drop the pything2.6-minimal package, but for the moment I'm done.  I have to make pretty people look exceptional with my magical camera.&lt;/p&gt;
&lt;p&gt;Anyway as part of this cleanup I ran a quick sanity-check on which processes are running and I think, short of kernel processes,  I'm as minimal as I can be.  I understand the purpose and reason for every running service:&lt;/p&gt;
&lt;pre&gt;
UID        PID  CMD
root         1  init [2]
pdnsd    14091  /usr/sbin/pdnsd --daemon -p /var/run/pdnsd.pid
root     14199  /usr/sbin/monit -c /etc/monit/monitrc -s /var/lib/monit/monit.state
root     14206  /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
root     14234  /usr/sbin/cron
102      14595  /usr/sbin/exim4 -bd -q30m
redis    14627  /usr/bin/redis-server /etc/redis/redis.conf
root     14637  /usr/sbin/sshd
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;These are basic services; I use &lt;tt&gt;monit&lt;/tt&gt; to ensure those essential daemons keep running.  The only oddity there is probably the local DNS cache, but it is useful if you run any kind of DNS blacklist-using service, for example.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
root     14794  /sbin/getty -L ttyS0 9600 vt100
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;I need a serial console login for emergencies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
root     14796  runsv node-reverse-proxy
root     14797  /bin/sh ./run
root     14799  /opt/node/bin/node node-reverse-proxy.js --config ./rewrites.js
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;These three processes combine to run my &lt;a href="http://www.steve.org.uk/Software/node-reverse-proxy/" &gt;reverse proxy&lt;/a&gt; which routes incoming HTTP requests to a number of local &lt;tt&gt;thttpd&lt;/tt&gt; instances.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
qpsmtpd  27309    /usr/bin/perl -Tw /usr/bin/qpsmtpd-prefork --port 25 --user qpsmtpd --pid-file /var/run/qpsmtpd/qpsmtpd.pid --detach
..
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;The perl SMTP daemon which runs my incoming mail, passing it to &lt;tt&gt;exim4&lt;/tt&gt; which listens upon 127.0.0.1:2525.  You can read about my setup in the out-of-date &lt;a href="http://book.mail-scanning.com/" &gt;writeup Chris &amp;amp; I put together&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
 /usr/bin/memcached -m 64 -p 11211 -u root -l 127.0.0.1
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Memory cache for transient items.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
s-blog    thttpd -C /etc/thttpd/sites.enabled/blog.steve.org.uk
1030      thttpd -C /etc/thttpd/sites.enabled/edinburgh-portraits.com
s-hg      thttpd -C /etc/thttpd/sites.enabled/hg.steve.org.uk
s-ipv4    thttpd -C /etc/thttpd/sites.enabled/ipv4.steve.org.uk
s-ipv6    thttpd -C /etc/thttpd/sites.enabled/ipv6.steve.org.uk
s-kvm     thttpd -C /etc/thttpd/sites.enabled/kvm-hosting.org
...
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;One &lt;tt&gt;thttpd&lt;/tt&gt; instance is launched for each distinct HTTP site my server runs.  Each site runs under its own UID, with its own chrooted directory tree.  This is important for security.&lt;/p&gt;
&lt;p&gt;Each local instance listens upon 127.0.0.1 - and the reverse proxy previously mentioned rewrites connections to the appropriate one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;
1016     28812     /usr/bin/perl -I./lib/ -I./ /usr/local/bin/blogspam
&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;My anti-spam filter for blog comments.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here is my christmas challenge.  Can you identify each service upon your host?  Do you know &lt;i&gt;why&lt;/i&gt; you're running what you're running?&lt;/p&gt;
&lt;p&gt;Me?  I had no idea I had a dbus deamon running.  Now I've purged it.  Ha!&lt;/p&gt;
&lt;p&gt;ObQuote - "I owe everything to George Bailey. Help him, dear Father." - It's a wonderful life.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 26 Nov 2011 16:06:25 GMT</pubDate>
      <title>Slaughter now tested upon Microsoft Windows hosts.</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=548</link>
      <guid>http://blog.steve.org.uk/slaughter_now_tested_upon_microsoft_windows_hosts_.html</guid>
      <description>&lt;p&gt;Recently I said that my &lt;a href="http://www.steve.org.uk/Software/slaughter/" &gt;perl-based sysadmin tool&lt;/a&gt;, Slaughter, was at the cross-roads.  I wasn't sure if I should leave it alone, or &lt;a href="http://blog.steve.org.uk/slaughter_is_at_the_cross_roads.html" &gt;update it somehow&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I'm generally lazy and busy (yes it is possible to be both simultaneously!) I didn't do anything.&lt;/p&gt;
&lt;p&gt;But happily earlier in the week I received a bunch of updates from   Jean Baptiste which implemented support for managing Windows clients, via Strawberry Perl.&lt;/p&gt;
&lt;p&gt;So I guess the conclusion is:  Do nothing.  Change nothing.  Just fix any issues which are reported to me, and leave it as-is.  (I did a little more than that, refactoring to avoid duplication and improve "neatness".)&lt;/p&gt;
&lt;p&gt;As I said at the time I've had some interesting feedback, suggestions and bugfixes from people over the past year or so - so I shouldn't be surprised to learn I'm not the only person using it.&lt;/p&gt;
&lt;p&gt;ObQuote: "Oh, yes, a big cat! My salvation depends upon it! " - Dracula (1992)&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 22 Nov 2011 20:06:14 GMT</pubDate>
      <title>Goodbye mysql ..</title>
      <link>http://www.advogato.org/person/Stevey/diary.html?start=547</link>
      <guid>http://blog.steve.org.uk/goodbye_mysql___.html</guid>
      <description>&lt;p&gt;Yesterday evening I updated my server to remove MySQL:&lt;/p&gt;
&lt;pre&gt;
steve:~# dpkg --purge mysql-client-5.1 \
                      mysql-common     \
                      mysql-server-5.1 \
                      mysql-server-core-5.1 \
                      python-mysqldb        \
                      libdbd-mysql-perl     \
                      libdatetime-format-mysql-perl
&lt;/pre&gt;
&lt;p&gt;Until last month I had two database in use, one each for a pair of
web-applications.  As of now one is using redis - which I'm already
using for my &lt;a href="http://linkti.me" &gt;image hosting&lt;/a&gt; - and the other application is using SQLite.&lt;/p&gt;
&lt;p&gt;Until recently I had a high opinion of SQLite, although that has now been downgraded a little, it is still a thoroughly excellent piece of software.  I was just surprised at little things it was missing, to the extent I had to rewrite my applications SQL.&lt;/p&gt;
&lt;p&gt;Still one less service is a good thing, and the migration wasn't &lt;i&gt;so&lt;/i&gt; painful..&lt;/p&gt;
&lt;p&gt;In more productive news I recently acquired a nice external flash - the &lt;a href="http://www.amazon.co.uk/Electronic-Speedlight-Speedlite-flashgun-Olympus/dp/B0031YBKA6/" &gt;Yongnuo YN-460 II&lt;/a&gt; is (very) cheap and cheerful, it can be fired remotely with my &lt;a href="http://www.amazon.co.uk/gp/product/B003RI1OAW" &gt;triggers&lt;/a&gt; so I've had a lot of fun with opportunistically taking pictures and experimenting with lighting.&lt;/p&gt;
&lt;p&gt;Most of the results are NSFW, but there are some other examples lurking around including the first time I managed to &lt;a href="http://linkti.me/v/4E" &gt;successfully capture a falling water-drop&lt;/a&gt;.  (Not the best picture, not the most explicit effect, but fun regardless.  I both can and will do better next time!)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Somebody recently asked me to write about "camera stuff under linux" and happily I declined.&lt;/p&gt;
&lt;p&gt;Why decline?  Because there are so many good tools, applications, and
utilities.   (I use local tools for organisation and duplicate detection, rawtherapee for RAW conversion and GIMP for touchups).    Having many available options is fantastic though, and something hard to appreciate for "newcomers" to Linux.&lt;/p&gt;
&lt;p&gt;(Yeah I waited 90 seconds - if I remembered to add -nojava - for Netscape Navigator to start, under X10, with 8Mb of RAM.  Happier days are here.  Sure DRM is bad, secure boot .. an open question, but damn we have it good compared to almost any previous point in time!)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ObQuote: "Yeah, obviously it is only a tactical party. I'm only having a party to eventually get sex." - Peep Show&lt;/p&gt;</description>
    </item>
  </channel>
</rss>

