Content here is by Michael Still mikal@stillhq.com. All opinions are my own.
See recent comments. RSS feed of all comments.


Wed, 31 Dec 2008



Blathering for Wednesday, 31 December 2008

posted at: 09:45 | path: /blather | permanent link to this entry


Blathering for Thursday, 01 January 2009

    12:00: Mikal shared: Cheap toilet paper imports get flushed - National - smh.com.au
      There is nothing finer than an article which combines discussions of toilet paper with the word "dumping". Even "anti-dumping" is funny in this context. I do wonder how the Customs Service measures the costs of production for a product in China though.



    Tags for this post: blather

posted at: 09:09 | path: /blather | permanent link to this entry


Tue, 30 Dec 2008



Books read in December 2008

posted at: 17:20 | path: /book/read | permanent link to this entry


Daughter of the Empire

posted at: 17:16 | path: /book/Raymond_E_Feist_and_Janny_Wurts | permanent link to this entry


Sun, 28 Dec 2008



Blathering for Monday, 29 December 2008

posted at: 07:37 | path: /blather | permanent link to this entry


Sat, 27 Dec 2008



Isaac Asimov's Robot City: Prodigy

posted at: 19:35 | path: /book/Arthur_Byron_Cover | permanent link to this entry


Blathering for Saturday, 27 December 2008

posted at: 16:15 | path: /blather | permanent link to this entry


Thu, 25 Dec 2008



Blathering for Thursday, 25 December 2008

posted at: 15:45 | path: /blather | permanent link to this entry


Isaac Asimov's Robot City: Cyborg

posted at: 13:12 | path: /book/William_F_Wu | permanent link to this entry


Wed, 24 Dec 2008



Polgara the Sorceress




    ISBN: 0345422554
    Del Rey (1998), Mass Market Paperback, 768 pages
    LibraryThing
    This is the final continuation of the Belgariad and the Malloreon series, following on from the Belgarath the Sorcerer continuation. The two continuation books are really just the same stories told from other perspectives, yet Belgarath the Sorcerer managed to be a really interesting read. It probably helped that Belgarath's story predates the Belgariad by thousands of years. On the other hand, most of the territory covered in this book is not new.

    This book started well, but the tone quickly became annoying for me. I think it was the several hundred pages of Arendish history that ruined it for me -- its just not that interesting where Polgara's bathroom is located, and who won a particular jousting match. There are also these really annoy asides littered throughout the text. The same element appeared in Belgarath, but seemed less annoying there for some reason. It annoyed me that there would be a passage of prose, broken in the middle with supposedly witty comment, which invariably fell flat.

    The other problem with this book is that Polgara herself comes across as a bit of a sociopath. She's always sure of herself, and lacks depth as a character because of it. I've got kids, and I find a character who is dumped into raising an orphan at zero notice being so self assured all the time. Surely she made mistakes and learnt something along the way? You wouldn't know it from the book though -- all of that is glossed over.

    On the other hand, the book is ok apart from the long middle bit in Arendia. This would have been a better book if that had been omitted.

    Tags for this post: book david_eddings magic prophecy sword_and_sourcery fantasy
    Related posts: Belgarath the Sorcerer; Castle Of Wizardry; Pawn of Prophecy; The Seeress of Kell; Sorceress of Darshiva; The Malloreon


posted at: 18:32 | path: /book/David_Eddings | permanent link to this entry


MythBuntu 8.10 just made me sad

posted at: 17:26 | path: /mythtv/mythbuntu | permanent link to this entry


Mon, 22 Dec 2008



Parenting advice

    Top tip for parents -- don't teach your kids to "wet willy" people. It might seem like fun at the time, but they'll end up wet willying you when you least expect it. Oh, and when you ask why they don't do it to mum, they'll say "because we love her". That is all.

    Tags for this post: blog

posted at: 18:35 | path: /diary | permanent link to this entry


Thu, 18 Dec 2008



Blathering for Thursday, 18 December 2008

posted at: 17:30 | path: /blather | permanent link to this entry


Wed, 17 Dec 2008



Blathering for Wednesday, 17 December 2008

    15:15: Mikal shared: BBC NEWS | Business | The Box
      The BBC is tracking a shipping container around the planet. I am a bit surprised to discover that there are refrigerated shipping containers. I wonder how they power the chillers while the container is on a ship?

    15:15: Mikal shared: BBC NEWS | Business | Thinking inside the box
      More on shipping. I love this quote:

      ""It costs less to ship a container between China and Felixstowe than it does to then send it on the road to Scotland," says Philip Damas, research director at shipping consultancy Drewry."

      Does that mean I shouldn't feel guilt about eating foreign foods, but should feel guilt about eating local?

    16:30: Mikal shared: Tips and tricks to get the most out of your iPod's battery
      I suffer from terrible iPod battery life (less than a day). Apparently that might be because I press "skip" quite a lot (hundreds of times a day, depending on my mood at the time). This forces the memory cache to empty faster than expected, and the hard disk therefore has to spin up to fetch more data. It seems like a flash based iPod would solve my problems.



    Tags for this post: blather

posted at: 16:30 | path: /blather | permanent link to this entry


Mon, 15 Dec 2008



Blathering for Tuesday, 16 December 2008

posted at: 07:13 | path: /blather | permanent link to this entry


Sun, 14 Dec 2008



Blathering for Sunday, 14 December 2008

    18:15: Mikal shared: Dahon Matrix 8-Speed Folding Bike @ Performance Bicycle
      I am very tempted by this folding bike. My current bike is around seven years old, and was kinda cheap at the time. This is a folding bike, but its got 26 inch wheels, which means its still good for a free ride on ACTION. I wonder if anyone has anything to say about folding bikes, cause I really know nothing about them...

    18:15: Mikal shared: 26" folding bikes [Archive] - Bike Forums
      Well, the 2004 version of the Dahon got good reviews. That's gotta be a good sign, given I've never heard of Dahon before.

    21:30: Mikal shared: Telstra's broadband mystery
      It seems like Telstra's NBN RFC team didn't do well in their school assignments? If the marking criteria include a certain piece, it certainly seems like you should include it.



    Tags for this post: blather

posted at: 21:30 | path: /blather | permanent link to this entry


Darkspell

posted at: 12:24 | path: /book/Katharine_Kerr | permanent link to this entry


Blathering for Monday, 15 December 2008

posted at: 06:04 | path: /blather | permanent link to this entry


Fri, 12 Dec 2008



The state of Blu Ray on Linux / MythTV

    The DVD drive in one of my MythTV machines has given up the ghost. I have to go to Fry's tomorrow to replace a dead hard disk, so I'll pick up a new drive while I am at it. I am surprised to discover that Blu Ray drives are now just $90. I wonder what the state of Blu Ray playback on Linux is like at the moment. How's the MythTV support? Time to find out.

    Tags for this post: mythtv bluray

posted at: 19:28 | path: /mythtv/bluray | permanent link to this entry


Thu, 11 Dec 2008



Merging entries in an iTunes library

posted at: 09:49 | path: /macintosh/osx/itunes | permanent link to this entry


Wed, 10 Dec 2008



Amtrak Wars

posted at: 21:57 | path: /book/Patrick_Tilley | permanent link to this entry


Earth Thunder




    ISBN: 0747400024
    Timewarner (1991), Paperback, 384 pages
    LibraryThing
    This is the last book of the Amtrak Wars series. I'm much less comfortable with Steven's character in this book -- he's always been a bit mixed up, and I don't blame him for that given his background, but in this book he's actively disloyal to those he loves, which is something new. That made the first 50 or so pages of this book quite hard to read, because I find it hard to read books where I hate the main protagonist.

    A lot of people complain about the ending of this book, especially as its the last Amtrak Wars book written, but doesn't resolve the main plot line. I didn't think it was that bad though, although perhaps that's because the coda didn't appear in earlier versions? The coda resolves a lot for me, and although the ending is sad, I thought it was fair.

    I liked this book overall.

    Tags for this post: book patrick_tilley combat post_apocalypse prophecy magic
    Related posts: Death Bringer; Iron Master; Cloud Warrior; Amtrak Wars; First Family; Blood River


posted at: 21:36 | path: /book/Patrick_Tilley | permanent link to this entry


Blathering for Wednesday, 10 December 2008

posted at: 20:45 | path: /blather | permanent link to this entry


Killing a blocking thread in python?

posted at: 14:03 | path: /python | permanent link to this entry


Tue, 09 Dec 2008



Blathering for Tuesday, 09 December 2008

posted at: 14:30 | path: /blather | permanent link to this entry


Mon, 08 Dec 2008



Upgrading Ubuntu Feisty now that its end of lifed

posted at: 20:28 | path: /linux/ubuntu | permanent link to this entry


Parked domains

posted at: 10:21 | path: /research | permanent link to this entry


Sun, 07 Dec 2008



Blathering for Sunday, 07 December 2008

posted at: 11:45 | path: /blather | permanent link to this entry


Sat, 06 Dec 2008



A failed attempt to visit Muir Woods

    The day after Thanksgiving we mounted an expedition to Muir Woods. The drive from our place is quite interesting, as you cut through San Francisco on the way. When we got there it was really crowded, despite only being about 10:30am. In the end we had to park way down the access road. Because the kids would have been tired out by the mere walk back to the redwoods, we instead went for a wander down one of the other tracks near where the car was parked. It was really nice, although not very redwoody. In fact, the hills in the distance felt quite "Australia" with all their dead grass and eucalyptus trees. I was glad we went, even though we didn't see many redwoods.

                                           

    See more thumbnails

    Tags for this post: events pictures 20081129-muirwoods photo

posted at: 10:20 | path: /events/pictures/20081129-muirwoods | permanent link to this entry


Fri, 05 Dec 2008



Blocking hotmail.com

posted at: 21:20 | path: /diary/spam | permanent link to this entry


Thu, 04 Dec 2008



Blathering for Thursday, 04 December 2008

    17:45: Mikal shared: Domainr, the domain search engine
      Heh. An "interesting" service. Enter a word in the search box, and it will find you all the domain names that approximately match it.



    Tags for this post: blather

posted at: 17:45 | path: /blather | permanent link to this entry


gtalkbot 1.4

    Its been a while between gtalkbot releases, and that's mainly because the current version "just works" and no one has reported any bugs or feature requests. However, the other day I was running a lot of long lived commands, and started getting annoyed at not knowing when they were finished. I thought it would be nice to get sent an IM when a command had completed. So, I implemented that in this new release.

    There is a simple shell script called notify.sh, which you need to modify to have the right path for an outbox directory. This directory is watched by gtalkbot, and files in the directory are processed as part of the idle loop. The format for files in the directory is the jabber ID to send to on the first line, and then the message on the remaining lines. I guess that means you don't have to use the shell script at all if you want, just have something dump files in the magic directory.

    You then need to add this line to the gtalkbot config file:

      connectwith	myaccount@gmail.com
      password	mypassword
      pluginsdir	/data/src/gtalkbot/plugins
      outboxdir	/data/src/gtalkbot/outbox
      authfile	/data/src/.gtalkbot-passwd
      


    So, there you go. I now get IMs when commands are completed, by running them like this:

      $ longcommand; echo "long command done" | notify mikaljabber@gmail.com
      


    The source for gtalkbot 1.4 is here.

    Tags for this post: gtalkbot release
    Related posts: gtalkbot 1.3; RemoteWorker v74; Another version of blather; MythNetTV release 2; MythNetTV release 7; Renaming mbot to gtalkbot

posted at: 17:25 | path: /gtalkbot | permanent link to this entry


Blog spam

posted at: 13:14 | path: /diary/spam | permanent link to this entry


Internet traffic

posted at: 11:34 | path: /diary | permanent link to this entry


Blathering for Friday, 05 December 2008

posted at: 06:12 | path: /blather | permanent link to this entry


Wed, 03 Dec 2008



Blathering for Wednesday, 03 December 2008

    09:33: Mikal shared: Exploding Offer Season
      I hadn't heard of an exploding offer until I moved to the US. The other thing I would suggest doing if you're subject to one is to make sure that the recruiters at the other companies know that you've been made an exploding offer. They shouldn't view it as a threat (these things are quite common) and ill quite often rearrange your interviews so that they can make you an offer before your other one explodes. Microsoft seems to be the big user of these exploding offers as best as I can tell.

    09:33: Mikal shared: Swiss precision
      It sounds like moving to Switzerland is about as much of a pain as it was moving to the US. Perhaps its painful to move to any country?

    09:33: Mikal shared: Register of penalty notices | NSW Food Authority
      Scary. A list of restaurants in New South Wales which have been served with a penalty notice for violating food safety standards. I should remember to check this next time I eat out...

    09:33: Mikal shared: Apple's completely unsurprising Black Friday deals appear on Australian site
      Why is Apple running Thanksgiving sales in Australia? Will they be running a Queens Birthday sale in the US soon?

    09:33: Mikal shared: Notes on Hacking the Roku Netflix Player
      This fellow has made some interesting progress on hacking the Roku Netflix player. I wonder if Roku have considered allowing a streaming frontend that either does uPNP or MythTV directly?

    09:33: Mikal shared: InstallMythBuntu - atv-bootloader - Google Code
      An alternative to Roku's box as a MythTV frontend is the AppleTV, which does currently work. This page is the install instructions for MythBuntu on an AppleTV. Pity its twice the price of the Roku box.



    Tags for this post: blather

posted at: 09:33 | path: /blather | permanent link to this entry


Tue, 02 Dec 2008



Death Bringer

posted at: 21:22 | path: /book/Patrick_Tilley | permanent link to this entry


Sun, 30 Nov 2008



Books read in November 2008

posted at: 19:15 | path: /book/read | permanent link to this entry


Sat, 29 Nov 2008



Blood River




    ISBN: 0747400008
    Sphere Books Ltd. (1988), Paperback, 368 pages
    LibraryThing
    This is the fourth book in the Amtrak Wars series. Its pretty good, about the same level of writing as Cloud Warrior and Iron Master, which I guess means it was better than First Family (which was mostly a connector between the first and third books in the series). In this book we learn that the first family are even more nasty than previously disclosed, and that Cadillac is possibly the most annoying person on the planet.

    This book must not have been very popular in the US, because I've never seen it for sale in the US, but its reasonably common in Australia. That's a shame because the copy I have is about to fall apart, which means I'll have to wait until next time I am back home to try and find a replacement copy.

    Overall this book was quite readable, and I enjoyed it.

    Tags for this post: book patrick_tilley combat post_apocalypse prophecy magic
    Related posts: Death Bringer; Iron Master; Cloud Warrior; Amtrak Wars; Earth Thunder; First Family


posted at: 16:17 | path: /book/Patrick_Tilley | permanent link to this entry


Wed, 26 Nov 2008



Isaac Asimov's Robot City: Suspicion

posted at: 15:21 | path: /book/Mike_McQuay | permanent link to this entry


PNGtools 0.4

posted at: 15:16 | path: /pngtools | permanent link to this entry


Tue, 25 Nov 2008



Isaac Asimov's Robot City: Odyssey

posted at: 17:39 | path: /book/Michael_P_Kube_McDowell | permanent link to this entry


Packet capture in python

    I'm home sick with a cold today and got bored. I wanted to play with packet capture in python, and the documentation for pcapy is a little sparse. I therefore wrote this simple little sample script:

      #!/usr/bin/python
      
      # A simple example of how to use pcapy. This needs to be run as root.
      
      import datetime
      import gflags
      import pcapy
      import sys
      
      FLAGS = gflags.FLAGS
      gflags.DEFINE_string('i', 'eth1',
                           'The name of the interface to monitor')
      
      
      def main(argv):
        # Parse flags
        try:
          argv = FLAGS(argv)
        except gflags.FlagsError, e:
          print FLAGS
      
        print 'Opening %s' % FLAGS.i
      
        # Arguments here are:
        #   device
        #   snaplen (maximum number of bytes to capture _per_packet_)
        #   promiscious mode (1 for true)
        #   timeout (in milliseconds)
        cap = pcapy.open_live(FLAGS.i, 100, 1, 0)
      
        # Read packets -- header contains information about the data from pcap,
        # payload is the actual packet as a string
        (header, payload) = cap.next()
        while header:
          print ('%s: captured %d bytes, truncated to %d bytes'
                 %(datetime.datetime.now(), header.getlen(), header.getcaplen()))
      
          (header, payload) = cap.next()
      
      
      if __name__ == "__main__":
        main(sys.argv)
      


    Which outputs something like this:

      2008-11-25 10:09:53.308310: captured 98 bytes, truncated to 98 bytes
      2008-11-25 10:09:53.308336: captured 66 bytes, truncated to 66 bytes
      2008-11-25 10:09:53.315028: captured 66 bytes, truncated to 66 bytes
      2008-11-25 10:09:53.316520: captured 130 bytes, truncated to 100 bytes
      2008-11-25 10:09:53.317030: captured 450 bytes, truncated to 100 bytes
      2008-11-25 10:09:53.324414: captured 124 bytes, truncated to 100 bytes
      2008-11-25 10:09:53.327770: captured 114 bytes, truncated to 100 bytes
      2008-11-25 10:09:53.328001: captured 210 bytes, truncated to 100 bytes
      


    Next step, decode me some headers!

    Tags for this post: python pcapy example
    Related posts: Dear lazy web: writing to the win32 event log in Python; Implementing SCP with paramiko; mbot: new hotness in Google Talk bots; Calculating a SSH host key with paramiko; Twisted conch; Example 2.1 from Dive Into Python

posted at: 10:22 | path: /python/pcapy | permanent link to this entry


Mon, 24 Nov 2008



Daggerspell

posted at: 18:01 | path: /book/Katharine_Kerr | permanent link to this entry


Blathering for Monday, 24 November 2008

    12:15: Mikal shared: SOCKS - Wikipedia, the free encyclopedia
      Huh. I didn't realize there is a socks proxy built into OpenSSH. Now if only there was a way to create new port forwards after the connection is opened.

    14:52: The internets strike again. I am now assured in the comments to this post that you can in fact add a new port forward to an existing ssh connection. Next, can someone tell me how to get ssh to make me a cup of tea?


    Tags for this post: blather

posted at: 14:52 | path: /blather | permanent link to this entry


Sat, 22 Nov 2008



Foundation and Earth




    ISBN: 0586071105
    Collins (1994), Mass Market Paperback, 512 pages
    LibraryThing
    I really like how Asimov wraps up the extended Foundation series. Specifically, I'd previously complained while reading Pebble in the Sky that it was hard to believe that everyone simply forgets that they originated on Earth -- this book and Foundation's Edge go a long way to resolving that annoyance for me. Its also good to find out what happened to Aurora and Solaria finally -- especially given the Solaria mystery has been bothering me since Robots and Empire.

    Speaking just about this book so a moment, I do find the use of sex as a plot development method quite odd. There are three examples that bother me -- when Bliss is slipped through interstellar customs with the explanation that she's just a whore and therefore not important enough to make an issue of; the second is when Trevize basically shags his way out of an awkward situation, despite the other protagonist being quite hostile initially; and finally where he bonks someone on a rural world. I find all three of those incidents a little out of place with the rest of the book, and in fact the rest of the series. Other authors use those kinds of plot elements, but they seem out of place in Asimov's work.

    Overall, I loved this book and it was a good conclusion to the series.

    Tags for this post: book isaac_asimov robot foundation
    Related posts: Prelude To Foundation ; Isaac Asimov's Foundation Series; Robots and Empire ; Foundation's Edge ; Foundation and Empire; Foundation's Triumph


posted at: 12:05 | path: /book/Isaac_Asimov | permanent link to this entry


Fri, 21 Nov 2008



Blathering for Friday, 21 November 2008

    09:45: Mikal shared: Buy One Dodge Ram, Get One Free [Deals]
      You know the US auto industry is in trouble when they start offering buy one get one free deals on cars.

    15:00: Mikal shared: Article about backyard chicken owners
      I didn't realize that other people found chickens entertaining too. I figured it was just me. There is nothing more entertaining than throwing a mound of kitchen scraps into the coup and then watching the chickens argue over a banana peel. Its hard to explain... Perhaps when I move back to Australia I'll setup ChickenCam.



    Tags for this post: blather

posted at: 15:00 | path: /blather | permanent link to this entry


Some time in the park, and Andrew lost a front tooth

    I've been quite slack with putting photos online recently. This set is from the kids playing in the park a couple of weekends ago, as well as some shots of Andrew after he lost his first front tooth.

                                           

    See more thumbnails

    Tags for this post: events pictures 20081121 photo

posted at: 00:00 | path: /events/pictures/20081121 | permanent link to this entry


Tue, 18 Nov 2008



Blathering for Wednesday, 19 November 2008

posted at: 07:36 | path: /blather | permanent link to this entry


Mon, 17 Nov 2008



Foundation's Edge




    ISBN: 0586058397
    Hunter Publishing+inc (1994), Paperback, 432 pages
    LibraryThing
    I'm back to reading Foundation Series books actually written by Isaac Asimov. This one is the fourth in the Foundation Series if you count them in the order they were written, but is the second last in chronological terms. Its set 500 years after the failure of the first galactic empire, and follows the first Foundation's attempt to discover if the second Foundation still exists. Well, its a bit more complicated than that, but I don't want to ruin it for you.

    As an aside, the user interface described for the ship's computer is really cool. Its a bit like augmented reality, mixed with gesture control, mixed with a direct interface into the brain. I'm not saying I want one in my house, but its cool that a book written in 1983 still has a user interface description which isn't dated, and still seems plausible.

    This book has minor inconsistencies with the story presented in the second foundation trilogy (Foundation's Fear, Foundation and Chaos and Foundation's Triumph), but I see that more as a failure in those followup authors than in this book. In fact, I've already complained about how untrue to Asimov's vision some of those books are elsewhere.

    This is a good read, and I enjoyed it greatly.

    Tags for this post: book isaac_asimov robot foundation hugo nebula award
    Related posts: Foundation and Empire; Mona Lisa Overdrive; Robots of Dawn ; Count Zero; Neuromancer; Caves of Steel


posted at: 18:40 | path: /book/Isaac_Asimov | permanent link to this entry


Blathering for Monday, 17 November 2008

posted at: 16:15 | path: /blather | permanent link to this entry


Automatically creating folders for mailing lists

    I've been using some simple procmail rules to automatically create folders for mailing lists for ages. Tony asked me for those rules today, so I figured I'd just put them online.

      ##########################################################################
      # Mailman
      
      :0:
      * List-Id:.*<\/[^>]*
      $MATCH
      
      :0:
      * List-Post: ]*
      $MATCH
      
      ##########################################################################
      # Majordomo lists (sometimes don't have <>'s around the address
      
      :0:
      * X-Mailing-List:.*<\/[^>]*
      $MATCH
      
      :0:
      * X-Mailing-List:.*\/.*
      $MATCH
      
      ##########################################################################
      # Ezmlm
      
      :0:
      * Mailing-List: .* \/[^ ;]*
      $MATCH
      
      ##########################################################################
      # I'm not sure what creates this one...
      
      :0:
      * X-Loop: \/.*
      $MATCH
      


    Tags for this post: procmail
    Related posts: Procmail filtering mailing list traffic, by magic

posted at: 14:59 | path: /procmail | permanent link to this entry


Sun, 16 Nov 2008



Wanted: someone to edit / review some MythTV stuff for me

    I'm looking for someone with solid MythTV experience and a good grasp of the English language to help me out with a project. All I can promise in return is glory, and that will be proportional to the eventual success of the project. If you're interested in spending some time (probably around 40 hours or so, spread over a couple of months) on such a project drop me a line.

    Tags for this post: mythtv

posted at: 19:00 | path: /mythtv | permanent link to this entry


Sat, 15 Nov 2008



Andrew and Matthew turn 2 and 3

    Wow, these pictures are really old. I'm in the process of going through my photo collection and regenerating all the associated HTML. In the process I found these pictures of Andrew and Matthew's shared birthday party from when they turned 3 and 2 respectively. Heck, its only three years late, so I guess I should put them online.

    Looking back, I think I forgot to put these online because about that time I was run off my feet with LCA 2005. That's my excuse and I'm sticking to it.

                                           

    See more thumbnails

    Tags for this post: events pictures 20050314 photo

posted at: 21:34 | path: /events/pictures/20050314 | permanent link to this entry


The Riftwar Series

posted at: 14:39 | path: /book/Raymond_E_Feist | permanent link to this entry


A Darkness at Sethanon

posted at: 14:33 | path: /book/Raymond_E_Feist | permanent link to this entry


Random pictures from around the house

    Andrew and Matthew playing, some art that Matthew randomly did on the floor, and the pumpkins Andrew and Matthew decorated at the work Halloween party.

                             

    Tags for this post: events pictures 20081115 photo

posted at: 00:00 | path: /events/pictures/20081115 | permanent link to this entry


Fri, 14 Nov 2008



On a memeomatic

    I'm on vacation today, and so I had a bit more time that usual to just think. So, when Jeff posited a meme detector for planets, I wrote one. Except its of course never just that simple. My initial implementation only took a few minutes to write, but sucked.

    What I did was I wrote a script which scanned through the list of posts from the planet's RSS feed, and kept a tally of which sequences of words (let's call them sentences, even though they're not) appear in which posts. Then, if a sentence appears in more than four posts, and those posts are from at least two domains, we've found a meme.

    That's actually a reasonable algorithm. Its big advantage is that it only has to take one pass through the posts, which means its order is linear -- O(n). Now, the problem with that algorithm is that there a small differences in some of the sentences (for example people mistype a sentence), and I ended up finding too many copies of the same meme.

    Here's some sample output from that version:



    If you look at those you'll see that they're all the same meme, but the code found it three different ways. I need an algorithm which accurately finds the meme only once.

    I should stop here and mention that I think this problem would be an excellent interview question. If you were going to ask the question in an interview you'd probably phrase it more as:

    Given a list of strings, find substrings repeated between the strings, and return a list of the substrings and the strings containing them.


    When the problem is phrased like that, I am sure that some folk think of an algorithm which compares each string with each other, looks for some sort of largest substring between the two, and then builds a table of those. However, the problem with that is that the order would be O(N^2), which is ok for a planet RSS feed, but wouldn't be so great if the set of strings you wanted to compare was something like every page on the Internet.

    Anyway, I think its possible to rescue my initial implementation by providing a final pass which checks if matches overlap and combines them if they do. For example, if the only difference between two detected memes is one post, then they're probably the same meme and can be combined.

    That's a interesting problem in itself. Its easy to measure the difference in the list of matching posts for two memes, but that comparison has O(N^2), which I just said was a bad thing. However, this is a vacation day and I couldn't think of anything better, so that's what I ended up using. I guess I'll wait for a smart interview candidate to think of a better way for me.

    You can see output from memeomatic in this blather post for today. The blather code I wrote a while ago makes it really to post messages to my site, which is why I've reused it here (you just call a method on a python module, and a pre-existing Rube Goldberg machine takes care of the rest).

    My code:

      import feedparser
      import os
      import re
      import shelve
      import sys
      import unicodedata
      import urllib
      
      
      _SENTENCE_LENGTH = 5
      
      
      def Normalize(value):
        normalized = unicodedata.normalize('NFKD', unicode(value))
        normalized = normalized.encode('ascii', 'ignore')
        return normalized
      
      
      def ListDifference(l1, l2):
        delta = []
        
        for l in l2:
          if l not in l1:
            delta.append(l)
      
        return len(delta)
      
      
      plugins_dir = '%s/plugins' % os.getcwd()
      print 'Appending %s to module path' % plugins_dir
      sys.path.append(plugins_dir)
      import blather
      
      data = shelve.open('memes.slf', writeback=True)
      data.setdefault('sentences', {})
      data.setdefault('titles', {})
      data.setdefault('content', {})
      data.setdefault('content_orig', {})
      data.setdefault('memes', [])
      
      ds = blather.DataStore()
      
      changed = False
      
      # Scan feeds, looking for new posts. This just populates the database.
      for feed in data['feeds']:
        print
        print 'Fetching %s' % feed
        d = feedparser.parse(feed)
      
        # Newest entries are first
        entries = d.entries
        entries.reverse()
        
        for ent in entries:
          print '  Considering %s' % ent.title
          data['titles'][ent.link] = ent.title
          
          content = Normalize(ent.description)
          data['content_orig'][ent.link] = content
          content = ' '.join(content.split('\n'))
          content = re.sub('<[^>]*>', '', content)
          content = re.sub('[^\w]+', ' ', content)
          content = content.lower()
          data['content'][ent.link] = content
      
          words = content.split()
          for i in range(len(words) - _SENTENCE_LENGTH):
            key = ' '.join(words[i:i + _SENTENCE_LENGTH])
            data['sentences'].setdefault(key, [])
      
            if not ent.link in data['sentences'][key]:
              data['sentences'][key].append(ent.link)
      
      # Now we have a database of sentences and the posts which share them. What we
      # really want is a collection of shared sentences that form a meme, and the
      # posts which contain those sentences.
      for sentence in data['sentences']:
        found = False
      
        if len(data['sentences'][sentence]) > 4:
          domains = {}
          
          # Its possible that they're all from one domain...
          for url in data['sentences'][key]:
            domain = url.strip('http://').split('/')[0]
            domains[domain] = True
      
          # Its not a meme unless the sentence is shared by at least four posts.
          # Try to find an existing meme which contains these posts.
          for (sentences, urls, published) in data['memes']:
            if not found and ListDifference(urls, data['sentences'][sentence]) < 2:
              data['memes'].remove((sentences, urls, published))
      
              if sentence not in sentences:
                sentences.append(sentence)
      
              new_titles = []
              for u in data['sentences'][sentence]:
                if not u in urls:
                  urls.append(u)
                  new_titles.append('<a href="%s">%s</a>'
                                    %(u, data['titles'][u]))
      
              data['memes'].append((sentences, urls, published))
              found = True
      
              if published and new_titles:
                print 'Added posts to an existing meme'
                ds.AddMessage('Memeomatic extended an existing meme: %s'
                              % ', '.join(new_titles))
                changed = True
      
          if not found and len(domains) > 1:
            print ('Created a new meme for "%s" with %s'
                   %(sentence, data['sentences'][sentence]))
            data['memes'].append(([sentence], data['sentences'][sentence], False))
      
      # Publish new memes
      for meme in data['memes']:
        (sentences, urls, published) = meme
        if not published:
          titles = []
          for url in urls:
            titles.append('<a href="%s">%s</a>' %(url, data['titles'][url]))
          
          ds.AddMessage('Memeomatic found a new meme: %s' % ', '.join(titles))
          data['memes'].remove((sentences, urls, published))
          data['memes'].append((sentences, urls, True))
          print 'Published a new meme'
          changed = True
      
      if changed:
        ds.Save()
      data.close()
      


    So there you go. I haven't set this as a cron job yet, as I want to baby sit it for a while to make sure its doing the right thing. I might one day get around to trusting it enough to just turn it on.

    Tags for this post: meme memeomatic
    Related posts: Book meme de jour

posted at: 22:04 | path: /meme | permanent link to this entry


It seems planet is a bit too trusting with dates?

posted at: 21:55 | path: /diary | permanent link to this entry


Book meme de jour

    I don't normally get involved in this whole meme thing, but I want to test memeomatic some more. So, here goes...

    Instructions:
    • Grab the nearest book.
    • Open it to page 56.
    • Find the fifth sentence.
    • Post the text of the sentence in your journal along with these instructions.
    • Don't dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.


    So, I'm currently reading A Darkness at Sethanon, which means its close to hand. The sentence is "They are correct as written, Commander."

    Tags for this post: meme
    Related posts: On a memeomatic

posted at: 21:29 | path: /meme | permanent link to this entry


Blathering for Saturday, 15 November 2008

posted at: 10:06 | path: /blather | permanent link to this entry


Thu, 13 Nov 2008



Bypassing Australia's imminent internet filter

    Paul has thoughts on how to avoid Rudd's internet filter. I am left wondering why he doesn't just suggest Tor though. Its designed for exactly this sort of censorship, requires no account in another country, and is cross platform. The only catch is that Tor does block some traffic (for example bittorrent), so you can't just use it for all your traffic.

    Tags for this post: blog

posted at: 21:25 | path: /diary | permanent link to this entry


Another dynamic element to the site

posted at: 19:55 | path: /site | permanent link to this entry


Blathering for Thursday, 13 November 2008

posted at: 12:45 | path: /blather | permanent link to this entry


Blathering for Friday, 14 November 2008

posted at: 08:28 | path: /blather | permanent link to this entry


Tue, 11 Nov 2008



irtrans remote control stops working

    I've been using a Zalman HD160B media center case for quite some time, and I love it. It came with an irtrans based LCD and remote control built into the case, which has always worked nicely as well. Until yesterday when the remote stopped working.

    When I run the irserver command in a terminal so I can see the output, I get this:

      # ./irserver -codedump -debug_code -loglevel 4 /dev/ttyUSB0
      Name   : 
      Version: D5.03.08
      FW SNo : 18780
      Capab  : Power On; 
      FW Cap : 3964953
      USB SNo: 
      Node   : /dev/ttyUSB0
      
      IRServer Version 5.7.08
      [ 0]:                      D5.03.08     SN: 18780
      Remote zalman               compiled:     1 Timings -     45 Commands
      Total:   1 Remotes  -   1 Timings -  45 Commands
               0 CCF Data -   0 CCF RAW -   0 CCF Error
      


    No joy. Rebooting the machine, replacing all the batteries, and restarting the server all did nothing. The server still doesn't see events from the remote. I'm not sure how to determine if this is a receiver hardware problem or not -- I'm kinda out of other ideas. Suggestions welcome.

    Update: of course, disassembling the PC and reseating all the cables fixed the problem. I wonder if it is temperature related?

    Tags for this post: mythtv irtrans irserver remote
    Related posts: Apple remote for older ibook?

posted at: 19:04 | path: /mythtv | permanent link to this entry


Finding locking deadlocks in python

    I re-factored some code today, and in the process managed to create a lock deadlock for myself. In the end it turned out to be an exception was being thrown when a lock was held, and adding a try / finally resolved the real underlying problem. However, in the process I ended up writing this little helper that I am sure will be useful in the future.

      import gflags
      import thread
      import threading
      import traceback
      import logging
      
      ...
      
      FLAGS = gflags.FLAGS
      gflags.DEFINE_boolean('dumplocks', False,
                            'If true, dumps information about lock activity')
      ...
      
      class LockHelper(object):
        """A wrapper which makes it easier to see what locks are doing."""
      
        lock = thread.allocate_lock()
      
        def acquire(self):
          if FLAGS.dumplocks:
            logging.info('%s acquiring lock' % threading.currentThread().getName())
            for s in traceback.extract_stack():
              logging.info('  Trace %s:%s [%s] %s' % s)
          self.lock.acquire()
      
        def release(self):
          if FLAGS.dumplocks:
            logging.info('%s releasing lock' % threading.currentThread().getName())
            for s in traceback.extract_stack():
              logging.info('  Trace %s:%s [%s] %s' % s)
          self.lock.release()
      


    Now I can just use this helper in the place of thread.allocate_lock() when I want to see what is happening with locking. It saved me a lot of staring at random code today.

    Tags for this post: python lock deadlock debug
    Related posts: Implementing SCP with paramiko; Packet capture in python; Interesting technique for finding leaks in code; mbot: new hotness in Google Talk bots; Calculating a SSH host key with paramiko; Twisted conch

posted at: 15:46 | path: /python | permanent link to this entry


Sun, 09 Nov 2008



Slight site hickup

posted at: 18:52 | path: /site | permanent link to this entry


Bill the Galactic Hero on the Planet of Bottled Brains

posted at: 13:39 | path: /book/Robert_Sheckley | permanent link to this entry


James and Jeanette's wedding down the beach

    I've been uber slack about putting pictures of James and Jeanette's wedding online. Given their wedding was ages ago, and the reception last weekend, it seems like I am running out of excuses.

                                           

    See more thumbnails

    Tags for this post: events pictures 20080531-sjrwedding photo

posted at: 11:45 | path: /events/pictures/20080531-sjrwedding | permanent link to this entry


Blathering for Monday, 10 November 2008

    10:15: Mikal shared: DHL Cuts 9,500 Jobs, No More Shipping Inside US []
      Wow. DHL is pulling out of the US domestic market.

    12:48: Sitting in a room at work waiting for John Hodgman to start talking. He appears to have brought a travelling minstrel with him. I wish I had minstrels.
    13:30: Mikal shared: This American Life
      John Hodgman's session on "This American Life".



    Tags for this post: blather

posted at: 09:58 | path: /blather | permanent link to this entry


Sat, 08 Nov 2008



Blathering for Sunday, 09 November 2008

    09:15: Mikal shared: Frequent flier mile run
      I'm always a bit surprised when someone I know announces they are doing a mileage run. The idea of flying somewhere and back without leaving the airport solely for the frequent flier miles seems so terribly wasteful to me. I assume people pick the cheap sectors for their mileage runs. I wonder how they find them?



    Tags for this post: blather

posted at: 08:43 | path: /blather | permanent link to this entry


Fri, 07 Nov 2008



Foundation's Triumph

posted at: 21:04 | path: /book/David_Brin | permanent link to this entry


Blathering for Friday, 07 November 2008

    11:30: Mikal shared: Popularity-Based Selective Markov Model
      I am trying to read an interesting academic paper per week. This paper discusses training Markov models to help determine what web content to prefetch. Prefetching is of course desirable as it reduces the latency visible to the user.



    Tags for this post: blather

posted at: 11:30 | path: /blather | permanent link to this entry


Thu, 06 Nov 2008



Blathering for Thursday, 06 November 2008

posted at: 16:15 | path: /blather | permanent link to this entry


Tue, 04 Nov 2008



Belgarath the Sorcerer




    ISBN: 0345403959
    Del Rey (1996), Mass Market Paperback, 736 pages
    LibraryThing
    This book is a follow on from The Belgariad and The Malloreon written from the perspective of one of the protagonists in those two series -- Belgarath the Sorcerer. This book has quite a different style from the others. It is written in the first person as Belgarath's personal memoir. The book is really long at over 700 pages, and covers a 6,000 year (ish) period. That means that the book tends to skip around and over some things at a very high level. That's probably a good thing, as it stops you from getting bogged down in boring detail you don't care about.

    One problem with this book is that to people who have read the previous series, this is all old territory. You totally know what is about to happen, and that makes it a lot less fun to read. I'm also not sure I'm a big fan of the first person style either. However, I did enjoy this book more than some of the others I have read recently, despite it not being Eddings' best work.

    Tags for this post: book david_eddings magic prophecy sword_and_sourcery fantasy
    Related posts: Polgara the Sorceress; Castle Of Wizardry; Pawn of Prophecy; The Seeress of Kell; Sorceress of Darshiva; The Malloreon


posted at: 22:52 | path: /book/David_Eddings | permanent link to this entry


Mon, 03 Nov 2008



Adium crashes on launch

posted at: 17:16 | path: /macintosh/osx | permanent link to this entry


Blathering for Tuesday, 04 November 2008

posted at: 09:47 | path: /blather | permanent link to this entry


Sun, 02 Nov 2008



Dynamic site comments

posted at: 20:07 | path: /site | permanent link to this entry


Books read in October 2008

posted at: 15:14 | path: /book/read | permanent link to this entry


Blathering for Monday, 03 November 2008

posted at: 08:16 | path: /blather | permanent link to this entry


Sat, 01 Nov 2008



Blathering for Sunday, 02 November 2008

posted at: 13:54 | path: /blather | permanent link to this entry


Thu, 30 Oct 2008



The children being cute at Halloween parties

posted at: 17:20 | path: /events/pictures/20081030-halloween | permanent link to this entry


Blathering for Friday, 31 October 2008

posted at: 08:31 | path: /blather | permanent link to this entry


Wed, 29 Oct 2008



Blathering for Thursday, 30 October 2008

posted at: 18:21 | path: /blather | permanent link to this entry


Tue, 28 Oct 2008



Blathering for Wednesday, 29 October 2008

posted at: 08:40 | path: /blather | permanent link to this entry


Mon, 27 Oct 2008



Comcast Lies

    I know you're all dying to hear about how much Comcast sucks. I imagine that what is happening is that I am suffering under Comcast discovering that during an economic downturn people start cancelling optional services like expensive pay TV. Anyways, several weeks ago Comcast jacked up our bill (nearly doubling it), so we called. They said "try this other line up which is cheaper". We said "ok". After a day or so it was evident that the service didn't work, and we created a service order. The installer came out, had a look, and said that the service we had been sold could never have worked because we were analog customers and needed digital to get the channels we had been sold. Anyways, he convinced us to convert to digital, and that got us a new low rate again. Until the bill came and was double what we had been told by the installer's dispatcher it would be.

    So we rang Comcast yet again. They said we were lying and had to pay the higher rate. I explained that calling my wife a liar was a bad plan, and they could either honour the stated rate or we'd cancel. The account is now cancelled, so you can see how that ended.

    I know that Comcast has a reputation for terrible customer service, but this is the first time I've experienced it. Wow, such arrogance. To be honest, I'm glad we cancelled the account. I can get two 4-disk-at-a-time deals from Netflix for what the low rate was meant to be with Comcast (yes, we could have got 16 disks at once with what Comcast wanted us to pay). What we'll probably do is some combination of free to air, Netflix DVDs, Netflix streaming, and buying DVDs for the kids. All up we'll end up with more content, at a higher quality, for less money. So there you go.

    Tags for this post: blog comcast
    Related posts: Free on demand from Comcast; Getting rid of cable TV?

posted at: 15:59 | path: /diary | permanent link to this entry


You Can Be The Stainless Steel Rat

posted at: 14:12 | path: /book/Harry_Harrison | permanent link to this entry


Bill the Galactic Hero: The Planet of the Robot Slaves

posted at: 13:49 | path: /book/Harry_Harrison | permanent link to this entry


linux.conf.au domain name

posted at: 08:29 | path: /conference/lca2009 | permanent link to this entry


Blathering for Tuesday, 28 October 2008

posted at: 07:14 | path: /blather | permanent link to this entry


Sun, 26 Oct 2008



Australian Commonwealth Government expenditure on Microsoft product licensing

    An email thread on the CLUG list got me curious about expenditure on Microsoft products by the Australian Commonwealth Government. It turns out the new Rudd government requires all departments to list all contracts over $100,000 on their website twice a year (admittedly I was tipped off to this by yet another mail thread, this one on the Link mailing list). So I dug through and pulled out the details. Note that where it wasn't possible to determine what the expenditure was for I left it out -- for example it seems many departments buy IT licenses from a reseller, and those are reported as lump sums. Sometimes I have included consulting services as well, which might not be 100% fair.

    This only took about an hour to generate, which was much easier than I realized.

    DepartmentExpenditureSource URL
    Parliament House$740,040Source
    Agriculture, Fisheries and Forestry--Source
    Attorney General's$1,046,133
    $118,140
    Source
    Broadband, Communications and the Digital Economy--Source
    Department of Defense$469,700
    $275,001
    $11,704,345
    $226,270
    $519,982
    $259,325
    $1,432,000
    $1,432,000
    $972,400
    $235,750
    Source for Defense
    Source for DMO
    Education, Employment and Workplace Relations$4,500,000
    $160,000
    $580,160
    $1,819,356
    $201,108
    Source
    Environment, Water, Heritage and the Arts--Source
    Families, Housing, Community Services and Indigenous Affairs--Source
    Finance and Deregulation--Source
    Foreign Affairs and Trade--Source
    Health and Ageing$340,560
    $1,159,639
    $1,161,466
    Source
    Human Services--Source
    Immigration and Citizenship$2,149,930Source
    Infrastructure, Transport, Regional Development and Local Government--Source
    Innovation, Industry, Science and Research$425,676
    $2,608,992
    Source
    Prime Minister and Cabinet$543,000Source
    Resources, Energy and Tourism--Source
    The Tresury----
    Total: $35,080,973


    As best as I can tell, that's for a six month period. If correct, that would make the use of Microsoft software about a $70 million decision annually.

    Tags for this post: blog australian government microsoft extenditure
    Related posts: The first press coverage of the actual conference?; The Last Colony ; Open Computing in Government Co-Conference; More press; Thanks Grant; MySQL User Conference coming up

posted at: 20:14 | path: /diary | permanent link to this entry


Silverthorn




    ISBN: 0553270540
    Spectra (1986), Mass Market Paperback, 343 pages
    LibraryThing
    The characters of the Magician Books battle a new enemy in this book. The book centers around Prince Arthura's poisoned wife and the quest to find the cure. There seems to have been some criticism of this book for being a fantasy cliche (something which people seem to say about a lot of Feist's books), but that's a pretty easy accusation to make with fantasy works -- they all seem to have the same basic them. I guess that's what a genre is -- a shared theme. The book is well written and quite readable.

    Wikipedia page on Silverthorn has this rather startling accusation to make:

    Since its release, the term 'Silverthorn' has been adopted to describe any book in a series (although typically the middle book of a trilogy) that has served little purpose other than to set up a climax in the final book. This term can also be applied to a similar phenomenon in film or television series. This style of book typically has little overall substance, and is often quite poor when compared to the other books in the series.


    That's a pretty unfair thing to say. This book has a story that stands on its own, and progresses the plot of the overall series as well. If I was to make the "does little but setup the next book in the series" accusation, I would point the finger at Tilley's First Family, which does nothing apart from setup Iron Master.

    Tags for this post: book raymond_e_feist midkemia kelewan npr_top_100_sf riftwar_saga combat fantasy sword_and_sorcery
    Related posts: Magician: Master; Magician: Apprentice; A Darkness at Sethanon; Daughter of the Empire; Servant of the Empire; The Riftwar Series


posted at: 14:12 | path: /book/Raymond_E_Feist | permanent link to this entry


Sat, 25 Oct 2008



Blathering for Sunday, 26 October 2008

    14:00: Mikal shared: brad's life - Android Garage Door Opener, part 2
      Ok, so Brad is mad and has his garage door opening when his Android phone comes within wifi range of his house. I wonder how he tells that he's not walking past instead of riding on the bike, and I wonder what terrible thing keeping the wifi manager open does to his battery life?

    22:00: Mikal shared: More SoCal Freeway Economics
      An interesting measure of the state of the US economy -- people are driving less.



    Tags for this post: blather

posted at: 15:37 | path: /blather | permanent link to this entry


Mikal's unreliable guide to buying secondhand sci fi in Mountain View

posted at: 10:23 | path: /book/MountainView | permanent link to this entry


A somewhat random collection of phone pictures

    This is a relatively random collection of photos from the camera on one of my phones. I've been meaning to put them online for a while, so some of them are a little old now...

                                           

    See more thumbnails

    Tags for this post: events pictures 20081025-android photo

posted at: 08:25 | path: /events/pictures/20081025-android | permanent link to this entry


Fri, 24 Oct 2008



The android and I

    I don't talk much on this site about what I do at work. There are a couple of reasons for that -- what I do is somewhat too specialist to describe easily (I am a member of the Site Reliability Engineering Group, who are tasked with making google.com the most reliable site on the Internet), somewhat technical (you see, if we tweak the thingie on that cluster just a little, we can decrease the doodily by 15 milliseconds!), and frankly I'd rather not spend all my time talking about work at home.

    On the other hand, sometimes something makes me so proud that I just have to say something. Previous examples are the open sourcing of Slack, Google open sourcing patches for MySQL, and describing how we deploy MySQL servers at the MySQL Users Conference, and the LCA 2007 MythTV tutorial that Google went out of its way to help with.

    This week's proud moment is the launch of Android. I've been coding on and off for the platform since August last year, and have had a Dream handset in my pocket since July this year. Frankly, I don't bother to power my blackberry on any more. However, the point of this post isn't to convince you to go and get yourself an Android handset -- I'd like to think people will do that on the handset's merits alone. The point is however to say that its very cool that Google has worked so hard on an open source mobile platform, released the source code as promised, and that it largely went off without a hitch.

    Astute observers will note that I've change job at Google a few times -- I was hired as a Linux system admin and supported our customer support email system for a while, I then went and turned up new serving clusters for a year, and now I am a mobile reliability engineer. That level of movement inside the company is entirely normal, and I think is probably one of the best perks of the job. In that last capacity I have been helping the Android guys with the launch of their server side for the last month or so. That's my final excuse for taking the Android launch personally.

    So, there you go.

    Tags for this post: android launch
    Related posts: Cool people I have met at work; On syncing with Google Contacts

posted at: 07:33 | path: /android | permanent link to this entry


Thu, 23 Oct 2008



Blathering for Thursday, 23 October 2008

posted at: 15:15 | path: /blather | permanent link to this entry


Wed, 22 Oct 2008



Blathering for Wednesday, 22 October 2008

posted at: 07:45 | path: /blather | permanent link to this entry


Tue, 21 Oct 2008



The Stainless Steel Rat Joins the Circus

posted at: 22:40 | path: /book/Harry_Harrison | permanent link to this entry


Mon, 20 Oct 2008



Blathering for Monday, 20 October 2008

posted at: 16:00 | path: /blather | permanent link to this entry


Blathering for Tuesday, 21 October 2008

posted at: 07:24 | path: /blather | permanent link to this entry


Sun, 19 Oct 2008



Blathering for Sunday, 19 October 2008

posted at: 20:45 | path: /blather | permanent link to this entry


Foundation and Chaos

posted at: 19:21 | path: /book/Greg_Bear | permanent link to this entry


Top Gear Australia, again

    Ok, so the second episode is better. Perhaps its just taking the presenters some time to find their "voice". However, I do think the studio stuff still tries too hard to be Top Gear UK. The challenge was excellent, except Clarkson would have found a way to destroy the utes.

    Tags for this post: blog

posted at: 11:17 | path: /diary | permanent link to this entry


Sat, 18 Oct 2008



How far is Wrest Point from the LCA 2009 venue?

posted at: 21:43 | path: /conference/lca2009 | permanent link to this entry


Book covers



    I was bored this afternoon, so I tweaked my bloxsom plugin which was already using ISBN number tags to produce links to LibraryThing. It now fetches cover art for the book (if available) and puts that into posts magically. If you're interested in such things its really easy to fetch cover images from LibraryThing.

    Tags for this post: book

posted at: 21:15 | path: /book | permanent link to this entry


Fri, 17 Oct 2008



Blathering for Friday, 17 October 2008

posted at: 10:45 | path: /blather | permanent link to this entry


Thu, 16 Oct 2008



Magician: Master

posted at: 14:57 | path: /book/Raymond_E_Feist | permanent link to this entry


Blathering for Thursday, 16 October 2008

posted at: 10:00 | path: /blather | permanent link to this entry


Wed, 15 Oct 2008



Blathering for Wednesday, 15 October 2008

posted at: 11:00 | path: /blather | permanent link to this entry


Tue, 14 Oct 2008



Blathering for Tuesday, 14 October 2008

posted at: 09:15 | path: /blather | permanent link to this entry


Mon, 13 Oct 2008



Solving a slow app startup on MacOS

posted at: 21:07 | path: /macintosh/osx | permanent link to this entry


Blathering for Monday, 13 October 2008

posted at: 12:30 | path: /blather | permanent link to this entry


Sun, 12 Oct 2008



Magician: Apprentice




    ISBN: 0553564943
    Spectra (1994), Mass Market Paperback, 528 pages
    LibraryThing
    This is the reworked version of Magician, although its split into two books and there is some content that was dropped as part of the editing process for the original version. This version was developed for the tenth anniversary of the original publication. I read the original version as a kid and was so proud of myself when it finished it -- it was by far the longest book I had ever read at the time.

    I've seen people online complain that this book is just a big ball of cliche. There are dwarves, wizards with funny hats, elves, and so on. But there are also new ideas here, such as alien invaders in a fantasy novel and so on. Overall I think the cliches don't get in the way and are largely used a sort of short hand... Feist doesn't need to explain what a dwarf is, so he can skip that bit and get on with telling the story.

    After rereading this as an adult, I still really like this book.

    Tags for this post: book raymond_e_feist midkemia kelewan npr_top_100_sf riftwar_saga combat fantasy sword_and_sorcery
    Related posts: Silverthorn; Magician: Master; A Darkness at Sethanon; Daughter of the Empire; Servant of the Empire; The Riftwar Series


posted at: 19:30 | path: /book/Raymond_E_Feist | permanent link to this entry


The Sarah Jane Adventures

    We picked up a couple of Sarah Jane Adventures (yet another Doctor Who spinoff, this one centered around a former companion of a previous Doctor, and targetted at children) from Netflix. To be honest, its not my thing -- the acting isn't as good, the effects are cheaper, and the plot lines simplistic. Then again, it is aimed at kids, and my two certainly seem to like it.

    Tags for this post: blog sarah jane adventures

posted at: 16:00 | path: /diary | permanent link to this entry


Blathering for Sunday, 12 October 2008

    11:15: Mikal shared: Terminator Wiki
      Cool wiki of Terminator details. I couldn't remember the details of the T888, and the wiki had everything I wanted to know.



    Tags for this post: blather

posted at: 11:15 | path: /blather | permanent link to this entry


Sat, 11 Oct 2008



Top Gear Australia

posted at: 19:45 | path: /diary | permanent link to this entry


Wondering how low it can go

posted at: 08:12 | path: /diary | permanent link to this entry


Fri, 10 Oct 2008



MacOS' RSS screen saver really unreliable?

posted at: 20:06 | path: /macintosh/osx | permanent link to this entry


Thu, 09 Oct 2008



The Stainless Steel Rat Goes To Hell

posted at: 19:50 | path: /book/Harry_Harrison | permanent link to this entry


Wed, 08 Oct 2008



Blathering for Wednesday, 08 October 2008

    15:45: Mikal shared: This American Life
      An interesting NPR program on how the sub prime crisis happened. Its all about a global pool of money desperate to invest in high return securities, and the banking industry which was happy to provide them. Listen to it!

    17:00: Mikal shared: This American Life
      A followup to the previous NPR podcast about the current state of the US economy. This one is interesting too.



    Tags for this post: blather

posted at: 17:00 | path: /blather | permanent link to this entry


Tue, 07 Oct 2008



Iron Master

posted at: 20:08 | path: /book/Patrick_Tilley | permanent link to this entry


Mon, 06 Oct 2008



Blathering for Tuesday, 07 October 2008

    12:30: Mikal shared: Unit Structures Facebook Dataset Identified
      Facebook released an anonymized set of social network data for research purposes. It seems its been quickly identified as the social network for Harvard. This has interesting parallels to the AOL search logs release a while back.



    Tags for this post: blather

posted at: 09:40 | path: /blather | permanent link to this entry


Sun, 05 Oct 2008



paramiko exec_command timeout

posted at: 12:20 | path: /python/paramiko | permanent link to this entry


Sat, 04 Oct 2008



Blathering for Saturday, 04 October 2008

    12:30: Mikal shared: Tracing the origin of HIV-1
      I didn't realize HIV is so old. Apparently they've found samples going back to 1960, whereas I have always thought of HIV as a 1980s problem.



    Tags for this post: blather

posted at: 12:30 | path: /blather | permanent link to this entry


Blathering for Sunday, 05 October 2008

    19:30: Mikal shared: The Daily Dish | By Andrew Sullivan
      Wonder how bad sub-prime is in America? 700 homes in SoCal are foreclosed per day. This video gives an interesting look at the "trash out" process, which is what happens when you abandon stuff instead of paying your loan.



    Tags for this post: blather

posted at: 09:39 | path: /blather | permanent link to this entry


Fri, 03 Oct 2008



Blathering for Friday, 03 October 2008

    11:47: Mikal shared: Marketplace: Credit Crisis Confusion: the one-act play
      Finally I understand the subprime crisis!

      "Seller: Right. So, I think the Q-grades are dumped and leveraged upwards across 25 underplummeries? Our unicorn gives it a kick, and presto: you've got 300 percent annual growth.

      Buyer: Now, you just said "unicorn." There is such a thing?

      Seller: Uhhh. Kind of? Honestly, I don't know. Don't care!

      Buyer: Well, you also said "300 percent." So, I'm sold!"

    18:00: Mikal shared: Consumerist Forced To Cut Staff [PSAs]
      Its sad that consumerist is cutting two staff. I read Consumerist all the time, and its a great site. The economic downturn is quite noticable at the moment -- a couple of car dealers on El Camino Real have closed already...



    Tags for this post: blather

posted at: 18:00 | path: /blather | permanent link to this entry


MythNetTV release 6

    New things in this release:

      Better testing:
    • r114: Unit tests for video.py
    • r148: Updated unit test now that we create more tables
    • r151: Start work on syndication unit tests
    • r153: Unit test for bad syndication dates, as well as more flexibility in db connections needed for this unit test
    • r157: Nicer unit test failure output, and refactor GetVideoDir() into the utility module
    • r181: Slightly improve syndication unit tests
    • r183: Add flag parsing to unit tests, and fix some more flag name changes


      Better documentation:
    • r117: Added a man page for video.py -- I'm not 100% happy with its name though


      Bug fixes:
    • r114: Fixed a bug where the new filename for video transcode could be the same as the input filename, resulting in video corruption. This was found with one of the new video.py unit tests
    • r116: The logic for the --prompt flag was the wrong way around. Fixed.
    • r119: Nicer download status messages
    • r121: Handle 404s in feed updates better
    • r129: Slight tweak to SVN submit script
    • r131: More accurate tracking of proxy usage (update during download, instead of just at the end)
    • r137: Proxy budget being exceeded doesn't count as a failed download attempt
    • r143: Subscribe now renables inactive subscriptions
    • r146: Add support to decimals to utility byte printer, fix a bug in the check for video directories
    • r155: Have users send problems to the mailing list, instead of me personally
    • r161: Don't throw exceptions for the videodir command line
    • r167, 169: Display friendly sizes in records_tool output
    • r171: Move verbose update arg into a flag
    • r173: Add "-vo null" to mplayer invocation per Ryan Lutz. This improves support on machines without X, and speeds up the identify operation
    • r175: Import patch from Thomas Mashos which fixes subscription removal, started work on syndication unit test improvements
    • r177: Fix character escaping bug in show subtitles during import
    • r179: Renamed --datadirdefault to --datadir. If set this will now change your data directory, regardless of if there was a previous value set.
    • r190: Recording_tool now prompts for deletes
    • r192: Improved explainvideodir output
    • r194: Don't crash in explainvideodir if there is no video directory
    • r197: Order results by subtitle in recordings_tool output


      New features:
    • r115: Upgraded schema to version 15 to support http_proxies for subscriptions. Added http_proxy command line, which allows you to use HTTP proxies for specified URLs. Moved HTTP accesses to use the proxy code.
    • r127: Bump schema to v17, and add proxy use tracking including the "proxyusage" command
    • r133: Allow daily budgets for proxy usage
    • r115: Provide a user agent for HTTP requests, instead of just Python-urllib/1.17
    • r117: Users will now be prompted to subscribe to an announcements video feed. This will happen exactly once. This behavior may be disabled with the --nopromptforannounce command line flag.
    • r125: Add a full info dump command to video.py's command line interface
    • r139: Bump schema to 19, and implement categories with the "category" command
    • r141: Implement recording group support, and clarify category support
    • r151: Implement a helper (recordings_tool) for handling the MythTV recordings table, this is useful for testing.
    • r159: Add videodir and explainvideodir debugging commands, and update man page
    • r163: Add title list feature to recordings_tool
    • r165: Include recording count in title list
    • r185: Add the resetattempts command


      Development changes:
    • r123: Added a submit script to automate putting the revision number into the ChangeLog
    • r135: Tweak to new ChangeLog auto logging formatting


    Release 6 continues the tradition of better testing, improves the documentation (a little, there is more work to be done there), fixes a bunch of bugs, and implements some new features which will hopefully be useful to others. Please grab your copy here.

    Tags for this post: mythtv mythnettv release
    Related posts: MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 5; MythNetTV beta 4; MythNetTV release 4

posted at: 13:09 | path: /mythtv/mythnettv | permanent link to this entry


Thu, 02 Oct 2008



The Malloreon

posted at: 20:34 | path: /book/David_Eddings | permanent link to this entry


The Seeress of Kell

posted at: 20:20 | path: /book/David_Eddings | permanent link to this entry


Wed, 01 Oct 2008



Blathering for Wednesday, 01 October 2008

    09:15: Mikal shared: District considers hiring private eye
      My kids are in the Whisman School district. The campus they are at has around 150 more kids this year than last, and is really crowded. Is seems like hiring a private investigator to find incorrectly enrolled kids is going a bit far though.



    Tags for this post: blather

posted at: 09:15 | path: /blather | permanent link to this entry


Tue, 30 Sep 2008



Books read in September 2008

posted at: 20:01 | path: /book/read | permanent link to this entry


Sorceress of Darshiva

posted at: 19:55 | path: /book/David_Eddings | permanent link to this entry


Mon, 29 Sep 2008



Blathering for Monday, 29 September 2008

posted at: 16:15 | path: /blather | permanent link to this entry


Sun, 28 Sep 2008



Demon Lord of Karanda

posted at: 18:00 | path: /book/David_Eddings | permanent link to this entry


Sat, 27 Sep 2008



Blathering for Sunday, 28 September 2008

posted at: 13:06 | path: /blather | permanent link to this entry


Fri, 26 Sep 2008



Foundation's Fear




    ISBN: 0061056383
    Eos (1998), Mass Market Paperback, 624 pages
    LibraryThing
    This book is a solid zero stars in my mind. I got to page 372, but simply couldn't wade through the chore any longer. The plot meanders, and its not clear to me where the story is going. Worse still, basically nothing has happened yet. I am a little surprised, given the generally positive LibraryThing reviews. I should have read the Amazon reviews instead. Some examples:

    Normally, I do a lot of my reading on the train (BART for those of you familiar with San Francisco), getting to and from work. An engrossing book keeps me awake and I read it relatively quickly. "Foundation's Fear", especially the first half of it, set a record for putting me to sleep. There were days in when I only managed to read a couple of pages. A paragraph or two and I'd be out, even before the train started moving. As others here have pointed out, there is a lot of boring dialogue and description and much of it focuses around the Voltaire and Joan of Arc artificial entities. Hundreds of pages of philosophical noodling and descriptions of imaginary scenes conjured up in cyberspace become numbing.


    And another:

    This book is not good, not because it's not Asimov but because it's simply not good. I had the luxury of reading it within the context of the other two "new" books and while that helps in hindsight, it doesn't while you're slogging through Benford's weighty prose.

    Don't expect Asimov but then the reader shouldn't. As Bear and to a lesser extent Brin show, authors can bring a fresh perspective on the topic and do it fairly well. Benford never seems to make up his mind which of his myriad little sub plots will be the main plot and thus, nothing really happens that expands our understanding of the Foundation Galaxy. Moreover, instead of fleshing out some of Asimov's admittedly skimpy ideas in the Foundation galaxy or introducing new themes that build upon previous concepts, instead, we take a quantum leap into a muddled unknown with concepts (aliens and tiktoks being the two most egregious examples) that clearly don't belong in the Foundation setting.


    This book differs from Asimov's view of the Foundation universe in important ways:

    • This book is much more explicit about Dors' nature than Asimov ever was. There was some element of doubt in Forward the Foundation right up until Dors' death. That is not the case with this book.
    • This book reworks Hari's entry into the First Minister position, which I found annoying. Especially because the discussion around that entry is slow, and lacks action. Basically the new version was kinda boring.
    • Worm holes are a major part of the economic makeup of the galactic empire in this book, but somehow Asimov never mentioned them in his books.
    • This book dwells on computers, robots, artificial intelligence, and aliens -- all things Asimov left out of his books (except for robots of course). Its not like Asimov was unaware of these things, he just didn't use them in this universe.
    • This book is really long (600 pages), but nothing much seems to actually happen in the first several hundred. The Sims sequence is the first really interesting part of the book, and even that drags on into long boring descriptions of polygons waving in the virtual wind.


    Tags for this post: book gregory_benford isaac_asimov robot foundation
    Related posts: Prelude To Foundation ; Isaac Asimov's Foundation Series; Robots and Empire ; Foundation's Edge ; Foundation and Empire; Foundation's Triumph


posted at: 21:16 | path: /book/Gregory_Benford | permanent link to this entry


Thu, 25 Sep 2008



Blathering for Thursday, 25 September 2008

posted at: 21:30 | path: /blather | permanent link to this entry


Wed, 24 Sep 2008



Sticklers, Sideburns and Bikinis

posted at: 13:48 | path: /book/Graeme_Donald | permanent link to this entry


Tue, 23 Sep 2008



Please help me test trunk

    I'm getting ready to do another MythNetTV release, as I've fixed quite a few things recently. I'd appreciate people testing the new code before I do an official release. You can get the current code like this:

      svn co http://www.stillhq.com/mythtv/mythnettv/svn
      


    That will create a directory called mythnettv, with a subdirectory named trunk, which is the latest development version of the code. You should probably create that directory somewhere where you don't mind a new directory being created.

    This release has lots of small changes, which are listed in the ChangeLog which will be downloaded with the code.

    Thanks.

    Tags for this post: mythtv mythnettv
    Related posts: MythNetTV mailing list; MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 6; MythNetTV release 5

posted at: 20:42 | path: /mythtv/mythnettv | permanent link to this entry


Blathering for Wednesday, 24 September 2008

posted at: 10:40 | path: /blather | permanent link to this entry


Factory reset

    Huh. I just had to factory reset the roku netflix box after suffering from the forever downloading my instant queue problem. In my case the device was in this state for over a week (it was acting weird, so I watched a different device and completely forgot about it). Its disappointing that a factory reset is needed, and that power cycling the device does just work.

    I wonder if reactivating the device counts in the four device limit that netflix imposes?

    Tags for this post: netflix roku
    Related posts: Netflix and the Roku streaming box

posted at: 07:34 | path: /netflix/roku | permanent link to this entry


Mon, 22 Sep 2008



Second Foundation

posted at: 20:58 | path: /book/Isaac_Asimov | permanent link to this entry


King of the Murgos

posted at: 15:44 | path: /book/David_Eddings | permanent link to this entry


Does anyone else think its odd

posted at: 14:06 | path: /diary | permanent link to this entry


Wed, 17 Sep 2008



The Stainless Steel Rat for President

posted at: 19:57 | path: /book/Harry_Harrison | permanent link to this entry


Blathering for Wednesday, 17 September 2008

    12:00: Mikal shared: DNS Prefetching (or Pre-Resolving)
      Its a little interesting that Chrome does DNS prefetching. What I find really interesting is that it provides reporting to the user about how much time it has saved. Now that is cool.

    15:00: Mikal shared: Reserve flags end of credit country - Local News - News - General - The Canberra Times
      Its news to me that Australian bank deposits are only insured up to $20,000. I always thought that all of your deposits were insured. Interesting.

    15:15: Mikal shared: Core Principles for Effective Banking Supervision: Self-Assessment for Australia
      Hmmm. Now I am confused. According to this document, we don't have any deposit insurance at all...

      "It should be noted that Australia does not have any form of deposit insurance scheme to protect
      depositors in a failed institution. Though the absence of such a scheme is unusual by world standards,
      this must also be read against the background of the Australian system in which no depositor has, since
      the passing of the Banking Act in 1945, ever lost funds held in an authorised bank."

    15:15: Mikal shared: Customers could recover $20,000 if Australian bank collapses | Business | News.com.au
      Oh, I think I understand now. There is currently no deposit insurance, but the Reserve Bank of Australia is currently recommending that depositors get $20,000 of insurance. That seems like a very low number given that US depositors get $100,000 USD per bank.



    Tags for this post: blather

posted at: 15:26 | path: /blather | permanent link to this entry


Fixed LibraryThing links

    I only just realized that the links to LibraryThing that I automatically insert into book posts only work if you have a LibraryThing account. I've now fixed that so that there is a link to a public page, as well as a link to your personal library if you use LibraryThing and also have a book that I mention.

    Tags for this post: book

posted at: 13:09 | path: /book | permanent link to this entry


Tue, 16 Sep 2008



Blathering for Tuesday, 16 September 2008

    10:45: Mikal shared: Mobile Network Code - Wikipedia, the free encyclopedia
      A interesting list to scan. I don't know much about mobile protocols, but apparently there is this big unified list of mobile networks for each country. Its interesting to see a bunch of people listed for Australia that I have never heard of.

    20:00: Mikal shared: Qantas to offer only canned net content - BizTech - Technology - smh.com.au
      It seems odd that Qantas hasn't thought through the porn filtering issue for its new A380s until now... Worse, delaying all live internet access seems like the wrong solution. Perhaps this is just an excuse for an undisclosed project slippage?



    Tags for this post: blather

posted at: 20:00 | path: /blather | permanent link to this entry


Guardians of the West

posted at: 13:35 | path: /book/David_Eddings | permanent link to this entry


Weird paramiko problem

    I had a strange paramiko problem the other day. Sometimes executing a command through a channel (via the exec_command() call) would result in an exit code being returned, but no stdout or stderr. This was for a command I was absolutely sure always returns output, and it wasn't consistent -- I'd run batches of commands and about 10% of them would fail, but not always on the same machine and not always at the same time. I spent ages looking at my code, and the code for the command running at the other end of the channel.

    Then it occurred to me that this seemed a lot like a race condition. I started looking at the code for the paramiko Channel class, and ended up deciding that the answer was to check that the eof_received member variable was true before trying to close the channel.

    It turns out this just works. I've my code running commands for a couple of days now and have had zero more instances of the "no output, but did exit" error. So, there you go. Its a shame that member variable doesn't have accessors and isn't documented though. I guess that makes my code a little more fragile than I would be happy with.

    Tags for this post: python paramiko bug race condition
    Related posts: Implementing SCP with paramiko; Calculating a SSH host key with paramiko; Multiple file support with scp; paramiko exec_command timeout; Executing a command with paramiko; PNGtools 0.4

posted at: 11:41 | path: /python/paramiko | permanent link to this entry


Mon, 15 Sep 2008



Blathering for Monday, 15 September 2008

    10:00: Mikal shared: The cloud computing security farce - auxesis' musings
      Lindsay has an interesting take on the Background Briefing coverage of cloud computing. I think he has a point about the generational gap -- it seems to me that the younger you are the more willing you are to trade personal information to things like social networks in return for some benefit. Often those benefits are intangible (I have more friends on Facebook than you!), but sometimes not (I get lots of job offers from LinkedIn!). Its an interesting discussion, and its not clear to me where society will end up drawing the line.



    Tags for this post: blather

posted at: 10:00 | path: /blather | permanent link to this entry


Sun, 14 Sep 2008



Couldn't determine the video directory?

    A couple of people have contacted me in the last couple of days with an error where MythNetTV can't determine the directory to put videos in. The error would look something like this:

      Importing data/tekzilla--0050--tehbunniez--hd.h264.mp4 Traceback (most recent call last): File "./mythnettv", line 453, in main(sys.argv) File "./mythnettv", line 212, in main mythnettvcore.DownloadAndImport(db, guid, out=out) File "/home/mythbox/Scripts/mythnettv/mythnettvcore.py", line 92, in DownloadAndImport prog.Import(out=out) File "/home/mythbox/Scripts/mythnettv/program.py", line 472, in Import raise FilenameException(self.db, 'Could not determine the video ' program.FilenameException: Could not determine the video directory for this machine. Please report this to mythnettv@stillhq.com


The stack trace is mostly irrelevant. The problem here is that MythNetTV couldn't decide what directory to put the video in once downloaded. Please execute the following SQL statements against your MythTV database:

    select * from storagegroup where groupname="MythNetTV";
    select * from storagegroup where groupname="Default";
    select * from settings where value="RecordFilePrefix"; 
    


This will dump all of the possible places MythNetTV will look for a video directory.

Once you've dumped this information, perform some simple checks:

  • Is there anything listed at all? If not, you need to configure storage groups with the MythTV user interface
  • Is there anything listed with the hostname that MythNetTV is running on? If not, you need to add configuration entries for your current hostname.


If you're still having problems, please send email to mythnettv@stillhq.com, with the output of those select commands, and the output of the hostname command.

Tags for this post: mythtv mythnettv tips video directory problems
Related posts: MythNetTV beta 4; MythNetTV release 1; MythNetTV mailing list; MythNetTV release 2; MythNetTV release 7; LCA 2007 Video: CFQ IO

posted at: 10:32 | path: /mythtv/mythnettv/tips | permanent link to this entry


Blathering for Sunday, 14 September 2008

    10:00: Mikal shared: PicoLCD 4X20-Sideshow
      I am seriously tempted by these USB LCD displays. They're cheap, and have Linux drivers. If only I had something to display! Via Engadget.



    Tags for this post: blather

posted at: 10:00 | path: /blather | permanent link to this entry


Sat, 13 Sep 2008



Foundation and Empire




    ISBN: 0553293370
    Spectra (1991), Mass Market Paperback, 320 pages
    LibraryThing
    This is the second book in the original foundation trilogy, which I am reading as part of the the extended Foundation series that I am working my way slowly though. This book contains two stories -- both of them Seldon crises, although one of them unpredicted by Hari. As Hari had always said in the series -- his techniques can only predict broad social trends, and the not the work on individuals. What happens if a single person who could not be predicted appears? This story covers that scenario.

    I found this book harder to read than the previous one, but that might have been because I've had a pretty distracted week. Once I actually sat down to read without too many interruptions, I enjoyed it.

    The comments from others on LibraryThing are fair though -- the character names are odd, and the writing does feel a little awkward.

    (LibraryThing for some reason gets the ISBN mapping for this book wrong. The above link's ISBN is right, but this link goes to the right place).

    Tags for this post: book isaac_asimov robot foundation hugo award
    Related posts: Foundation's Edge ; Robots of Dawn ; Caves of Steel; Mona Lisa Overdrive; Count Zero; Nightfall (short stories)


posted at: 18:22 | path: /book/Isaac_Asimov | permanent link to this entry


Fri, 12 Sep 2008



Blathering for Friday, 12 September 2008

posted at: 08:15 | path: /blather | permanent link to this entry


Thu, 11 Sep 2008



Blathering for Thursday, 11 September 2008

posted at: 21:45 | path: /blather | permanent link to this entry


Wed, 10 Sep 2008



Foundation

posted at: 18:16 | path: /book/Isaac_Asimov | permanent link to this entry


Tue, 09 Sep 2008



Dear Goodreads, about Chrome...

posted at: 10:21 | path: /chrome | permanent link to this entry


Mon, 08 Sep 2008



Forward the Foundation

posted at: 16:41 | path: /book/Isaac_Asimov | permanent link to this entry


Sun, 07 Sep 2008



Netflix and the Roku streaming box

    Catherine and I only just signed up for Netflix, and we love it. I was so enthused that I ponyed up the $99 for a Roku Netflix player. The player is Linux based, and streams a subset of the DVDs available on Netflix over the Internet. The protocol seems to be HTTP based, with WMV video files.

    The Roku was a really good choice. I've been away all weekend at a work event, and when I got back I discovered that the kids have developed a taste of Astro Boy, all from the streaming service. I'm really impressed with the device and how easy it is to use, the kids have no problems with it at all.

    I am aware that there is a software implementation for the Xbox 360 coming soon. I wonder if anyone knows someone at Netflix who I could talk to about a MythTV version?

    Tags for this post: netflix roku
    Related posts: Factory reset

posted at: 17:20 | path: /netflix/roku | permanent link to this entry


Blathering for Monday, 08 September 2008

posted at: 08:37 | path: /blather | permanent link to this entry


Thu, 04 Sep 2008



Blathering for Thursday, 04 September 2008

posted at: 20:00 | path: /blather | permanent link to this entry


Wed, 03 Sep 2008



Executing a command with paramiko

    I wanted to provide a simple example of how to execute a command with paramiko as well. This is quite similar to the scp example, but is nicer than executing a command in a shell because there isn't any requirement to do parsing to determine when the command has finished executing.

      #!/usr/bin/python
      
      # A simple command example for Paramiko.
      # Args:
      #   1: hostname
      #   2: username
      #   3: command to run
      
      import getpass
      import os
      import paramiko
      import socket
      import sys
      
      # Socket connection to remote host
      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      sock.connect((sys.argv[1], 22))
      
      # Build a SSH transport
      t = paramiko.Transport(sock)
      t.start_client()
      t.auth_password(sys.argv[2], getpass.getpass('Password: '))
      
      # Start a cmd channel
      cmd_channel = t.open_session()
      cmd_channel.exec_command(sys.argv[3])
      
      data = cmd_channel.recv(1024)
      while data:
        sys.stdout.write(data)
        data = cmd_channel.recv(1024)
      
      # Cleanup
      cmd_channel.close()
      t.close()
      sock.close()
      


    Tags for this post: python paramiko exec
    Related posts: Implementing SCP with paramiko; Calculating a SSH host key with paramiko; Multiple file support with scp; paramiko exec_command timeout; Weird paramiko problem; Packet capture in python

posted at: 15:11 | path: /python/paramiko | permanent link to this entry


Implementing SCP with paramiko

    Regular readers will note that I've been interested in how scp works and paramiko for the last couple of days. There are previous examples of how to do scp with paramiko out there, but the code isn't all on one page, you have to read through the mail thread and work it out from there. I figured I might save someone some time (possibly me!) and note a complete example of scp with paramiko...

      #!/usr/bin/python
      
      # A simple scp example for Paramiko.
      # Args:
      #   1: hostname
      #   2: username
      #   3: local filename
      #   4: remote filename
      
      import getpass
      import os
      import paramiko
      import socket
      import sys
      
      # Socket connection to remote host
      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      sock.connect((sys.argv[1], 22))
      
      # Build a SSH transport
      t = paramiko.Transport(sock)
      t.start_client()
      t.auth_password(sys.argv[2], getpass.getpass('Password: '))
      
      # Start a scp channel
      scp_channel = t.open_session()
                
      f = file(sys.argv[3], 'rb')
      scp_channel.exec_command('scp -v -t %s\n'
                               % '/'.join(sys.argv[4].split('/')[:-1]))
      scp_channel.send('C%s %d %s\n'
                       %(oct(os.stat(sys.argv[3]).st_mode)[-4:],
                         os.stat(sys.argv[3])[6],
                         sys.argv[4].split('/')[-1]))
      scp_channel.sendall(f.read())
      
      # Cleanup
      f.close()
      scp_channel.close()
      t.close()
      sock.close()
      


    Tags for this post: python paramiko scp
    Related posts: Multiple file support with scp; Calculating a SSH host key with paramiko; paramiko exec_command timeout; Weird paramiko problem; Executing a command with paramiko; Packet capture in python

posted at: 13:28 | path: /python/paramiko | permanent link to this entry


Robot Visions

posted at: 13:07 | path: /book/Isaac_Asimov | permanent link to this entry


Blathering for Wednesday, 03 September 2008

posted at: 11:15 | path: /blather | permanent link to this entry


Tue, 02 Sep 2008



The Belgariad

posted at: 19:36 | path: /book/David_Eddings | permanent link to this entry


Enchanters End Game

posted at: 19:29 | path: /book/David_Eddings | permanent link to this entry


Blathering for Tuesday, 02 September 2008

posted at: 15:15 | path: /blather | permanent link to this entry


Chrome user agent

posted at: 13:24 | path: /chrome | permanent link to this entry


Sun, 31 Aug 2008



Books read in August 2008

posted at: 11:38 | path: /book/read | permanent link to this entry


TCP_DENIED/403 for cache accesses using squid

    I just spent some time debugging why squid wouldn't work for localhost, but seemed to work for other clients on my network. To cut a long story short, Linux for some reason wasn't using 127.0.0.1 for traffic to localhost. It was instead using the public IP address for the machine, which didn't match either the localhost ACL or the local network ACL. I am sure there is some fancy reason that this is the case, but if you see this problem, then consider checking your localhost ACL.

    Tags for this post: linux squid

posted at: 10:21 | path: /linux/squid | permanent link to this entry


Sat, 30 Aug 2008



Blathering for Saturday, 30 August 2008

posted at: 17:00 | path: /blather | permanent link to this entry


MythNetTV release 5

    New things in this release:

    • There is now a users mailing list at http://lists.stillhq.com/listinfo.cgi/mythnettv-stillhq.com
    • Moved to a public SVN server at http://www.stillhq.com/mythtv/mythnettv/svn/
    • Added the 'justone' syntax to the download command
    • Another try at using gflags. This means that all the command lines have changed slightly.
    • Moved the core of MythTV out of the user interface file.
    • Started writing unit tests
    • Changed user output code so that it doesn't insist on writing to stdout. You can now write to other file descriptors, which makes things like unit tests much easier to write.
    • Added video/msvideo to the enclosure whitelist
    • Added HTTP download progress information
    • Added a flag which turns off the prompts for markread (--noprompt)
    • Patches from Thomas Mashos
      • Search ~/.mythtv/mysql.txt, /usr/share/mythtv/mysql.txt and /etc/mythtv/mysql.txt in that order for MySQL connection information
      • A manpage
      • setup.py
    • video.py now has a simple command line interface to let you query it
    • Fix update of inactive programs bug per http://ubuntuforums.org/showpost.php?p=5580005&postcount=4
    • Better DB error handling
    • Included a COPYING file with the right version of the GPL (it was missing before)
    • Fixed a bug where programs would be downloaded more than once (found with a unit test!)
    • Started raising exceptions instead of just sys.exit(1). This should make life easier for user interfaces in the future
    • Default to using storage groups for storing recordings before falling back to the RecordFilePrefix. This makes the behaviour: use a storage group named "MythNetTV" if it exists; use the default storage group if it exists; use the value of RecordFilePrefix.
    • Transcode avc1 videos, because some need it
    • Force ASCII encoding of title, subtitle, and all fields in the database to get around feeds which use unicode which python / MySQL can't store correctly
    • If there is only one attachment to an item, and its not in our whitelist of video formats, then warn the user that you're assuming its a video file and then add it to the todo list
    • Slight tweak to the signature of video.MythNetTvVideo.Transcode()
    • Fix buf in RepairMissingDates which caused it to consistently crash
    • Fix typo in date warning code
    • Better handling of videos where the length of the video cannot be determined by mplayer


    Release 5 is by far the best tested release of MythNetTV yet, with both unit tests and several users working quite closely with me to resolve problems found in the wild. You can grab your copy here.

    Tags for this post: mythtv mythnettv release
    Related posts: MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 6; MythNetTV beta 4; MythNetTV release 4

posted at: 15:11 | path: /mythtv/mythnettv | permanent link to this entry


Fri, 29 Aug 2008



Castle Of Wizardry

posted at: 21:55 | path: /book/David_Eddings | permanent link to this entry


Thu, 28 Aug 2008



Blathering for Friday, 29 August 2008

    09:15: Mikal shared: CPU vs GPU - paintball version
      The Mythbusters paint with a paintball robot at a Nvidia event.

    15:15: Mikal shared: Amazon.com: android
      Wow. There are heaps on Android development books out already. I guess most of them must be with the older versions of the SDK and pretty badly out of date already?



    Tags for this post: blather

posted at: 16:46 | path: /blather | permanent link to this entry


Magician's Gambit

posted at: 16:40 | path: /book/David_Eddings | permanent link to this entry


Tue, 26 Aug 2008



Queen of Sorcery

posted at: 19:10 | path: /book/David_Eddings | permanent link to this entry


Open Source video creation

posted at: 10:53 | path: /diary | permanent link to this entry


Mon, 25 Aug 2008



First Family




    ISBN: 0671655671
    Baen (1986), Paperback
    LibraryThing
    I finished this book on the bus into work this morning (I had a pretty distracted weekend, and didn't get much reading done). This is the second book in the Amtrak Wars series, and takes place immediately after Cloud Warrior. The book feels like it is only half a book -- there is plot development such as learning more about Roz, meeting the First Family, and the Iron Masters, but there isn't much action. Basically I look back on the book and wonder what happened in it -- it would have been better to combine this with the next book and have a complete story in one.

    Tags for this post: book patrick_tilley combat post_apocalypse prophecy magic
    Related posts: Death Bringer; Iron Master; Cloud Warrior; Amtrak Wars; Earth Thunder; Blood River


posted at: 09:59 | path: /book/Patrick_Tilley | permanent link to this entry


Sun, 24 Aug 2008



Please help me test trunk

    I'm preparing a new release of MythNetTV, and would like some help testing the code, as I have re-factored how the user interface works and there is some risk that I have broken things in the process. You can get the code like this:

      svn co http://www.stillhq.com/mythtv/mythnettv/svn
      


    That will create a directory called mythnettv, with a subdirectory named trunk, which is the latest development version of the code. You should probably create that directory somewhere where you don't mind a new directory being created.

    The biggest change is that the command line syntax has changed slightly -- the dashes have been removed from the commands. Therefore, to update your list of feeds, you now use:

        mythnettv update
      


    Instead of:

        mythnettv --update
      


    And so on. This was done so that I could add "real" flags, which are used to change default values like where the database configuration is read from, as well as what the default location for the temporary data directory is.

    "Real" flags which are currently supported are:

        --datadirdefault:  The default location of the data directory
          (default: 'data')
      
        --db_host:  The name of the host the MySQL database is on,
                    don't define if you want to parse
                    ~/.mythtv/mysql.txt instead
          (default: '')
        --db_name:  The name of the database which MythNetTV uses,
                    don't define if you want to parse 
                    ~/.mythtv/mysql.txt instead
          (default: '')
        --db_password:  The password for the database user, don't
                    define if you want to parse 
                    ~/.mythtv/mysql.txt instead
          (default: '')
        --db_user:  The name of the user to connect to the database
                    with, don't define if you want to parse 
                    ~/.mythtv/mysql.txt instead
          (default: '')
      
        --[no]commflag:  Run the mythcommflag command on new videos
          (default: 'true')
      


    (These are the result of adding the gflags module back into the implementation).

    I am hoping to release this version in the next few days, so if you find any bugs please send email to the mailing list.

    Tags for this post: mythtv mythnettv
    Related posts: MythNetTV mailing list; MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 6; MythNetTV release 5

posted at: 14:42 | path: /mythtv/mythnettv | permanent link to this entry


Thu, 21 Aug 2008



Blathering for Thursday, 21 August 2008

    17:00: Mikal shared: TSA Employee Grounds 9 American Airlines Planes By Attempting To Break Into Them [Tsa]
      I love the level of incompetence this shows. The TSA can protect us all by damaging planes on the tarmac. Hurrah!

    17:00: Mikal shared: Microsoft's data centers growing by the truckload
      An article about Microsoft's containerized datacenters. Basically they fill containers with machines, plug them in, and then run away as fast as they can. When X% of the machines in the container have failed, they unplug the entire container and send it off for remanufacture. What I want to know is -- do the failed machines continue to draw power? That sounds like a bit of an environmental problem to me...

    17:00: Mikal shared: TSA Follies
      Schneier on the awesomeness of breaking planes while trying to see if they're secure, and how the TSA is considering pressing charges against the airline!

    22:00: Mikal shared: If asked, would you know how many houses you own?
      I remember when an Australian politician (I don't remember who) was asked how much a loaf of bread was, and couldn't answer. I love the idea that McCain doesn't even remember how many houses he owns. I guess that's what happens when you're running for office and already overwhelmed with other details.



    Tags for this post: blather

posted at: 22:00 | path: /blather | permanent link to this entry


The Spy Within




    ISBN: 1586421484
    Steerforth (2008), Hardcover, 320 pages
    LibraryThing
    LibraryThing, of which I am a member runs a program where members are shipped early copies of books for free, with the preference for them writing a review when they're done reading the book. The books are shipped by the publisher directly to the reviewers. This isn't that uncommon in the publishing industry -- both of my books have experienced a similar process, although less formal.

    (In fact, any very early review of a book on a site light amazon.com should be viewed with a little bit of caution I suppose. These people probably got their review copies for free from the publisher.)

    LibraryThing's implementation is a little different though, mainly because of the scale at which they hand out books, and the fact that the publishers don't appear to get any direct say in who gets the books. That means that there is less incentive to write a positive review, and that more people get access to early copies of new books. You can see a list of the books LibraryThing is currently handing out here.

    The Spy Within is the true story of a senior CIA agent who turned out to also be a Chinese spy. Its the first book I've received through the early review program, so I am still learning the ropes and have sat on this book for a few weeks before actually reading it.

    As I said earlier, this is the "true story" a senior Chinese spy within the CIA. However, it should be noted that large portions of the book are pure speculation -- inserted simply to make the story more readable. In addition, as with all such works, the book is based on a limited number of interviews, and is subject to the biases of those who provide source material.

    This kind of book isn't really my thing, and I would read less one one non-fiction contemporary history book a year. However, I found this to be an engaging read, especially because the books manuscript flows much like a novel. However, the story simply wasn't that gripping (so, Larry Chin was a dick, I get it). Its hard for non-fiction to compete with fantasy for story lines I suppose.

    Tags for this post: book tod_hoffman espionage biography non_fiction
    Related posts: The Man in the Rubber Mask; Some Girls: My Life in a Harem; On Cars; Being Geek; Cally's War; Sticklers, Sideburns and Bikinis


posted at: 21:43 | path: /book/Tod_Hoffman | permanent link to this entry


SIGCOMM 2008

    SIGCOMM 2008 had about 600 people attend, and felt a little like one of the early AUUG conferences. One of the things I am learning as I get older is that I am having increasing trouble sitting in hard hotel meeting chairs all day -- my back just wont let me. Surprisingly, I find most university lecture theatre seats more comfortable.

    Below is a summary of the talks I thought are particularly good.

    Don Towsley keynote

    Don Towsley is the winner of the 2008 ACM SIGCOMM Award. His talk wasn't really a paper, he instead spoke about the need for models when performing Internet measurement research. If you don't have a theoretical model, then you don't have a way of verifying that your samples from the Internet are valid or not. This is an interesting point I hadn't considered, and which affects my own research work. My new problem is I'm not really sure how to produce models which have meaning to my current SMTP survey project. Additionally, Don asserts that PhD candidates shouldn't attempt to implement new applications. Instead they should work on enabling new applications. This observation is based on many years of supervising PhD candidates and their relative success.

    A Case for Adapting Channel Width in Wireless Networks

    Microsoft Research -- WiFi cards use a fixed bandwidth of 20 MHz. Using this quite large bandwidth for idle connections consumes a lot of power. This research proposes varying the size of the channel depending on what needs to be transferred -- 5MHz for an idle connection, up to 40 MHz for an active transfer. This does require a protocol for both sides of the connection to agree on a channel width. Sample implementation using the Zune peer to peer song sharing protocol.

    Spamming Botnets: Signatures and Characteristics

    Microsoft Research -- using URL extraction and a regular expression generator to find spam emails from botnets. Extract URLs from emails, track by domain over time and note bursty arrivals of such URLs. Send the bursty ones to a regular expression generator, which is then generalized to exclude victim specific IDs as well as domains, and then filter based on that. An interesting talk.

    To Filter or to Authorize: Network-Layer DoS Defense Against Multimillion-node Botnets

    University of California, Irvine -- DoS flooding attacks are a serious problem. The number of sources can be huge, as well as the packet count and bandwidth consumed. There are currently two schools of though on DoS protections -- filtering (anyone can send, and then filters are added when an attack occurs), and capability based systems (senders request permission before sending, and then use proof of that permission in each packet they send). This paper compares the two approaches.

    BitTorrent is an Auction: Analyzing and Improving BitTorrent’s Incentives

    University of Maryland -- the amount of research that is being conducted into peer to peer protocols, especially BitTorrent, is really interesting. This paper presented an alternative algorithm for how to select which blocks to offer for upload in return for the highest possible download rates. Specifically, it reframes BitTorrent as an auction system, in which leechers should be bidding the lowest possible in order to be selected as a download partner. This is implemented in BitTyrant (http://bittyrant.cs.washington.edu/). The rest of the talk focuses on strategies for gaming BitTorrent based on this observation. Very interesting. Implemented in a client at http://www.cs.umd.edu/projects/propshare/.

    Network Discovery from Passive Measurements

    UW Madison -- the traditional approach to mapping the Internet is to use active measurements. This paper proposes a solution using passive measurements. The underlying problem is that you have data in the form (source IP, destination IP, number of hops) and from that you need to determine which hops are in common for any given pair of readings.

    Taming the Torrent: A Practical Approach to Reducing Cross-ISP Traffic in Peer-to-Peer Systems

    Northwestern University -- this paper proposes piggy backing on CDN networks in order to determine which peer to peer clients are nearly to a p2p leecher. The network routing overlays produced by these networks can be used to select peers which can provide downloads more efficiently.

    Tags for this post: conference sigcomm2008

posted at: 15:48 | path: /conference/sigcomm2008 | permanent link to this entry


Wed, 20 Aug 2008



Blathering for Wednesday, 20 August 2008

posted at: 09:44 | path: /blather | permanent link to this entry


Tue, 19 Aug 2008



Blathering for Tuesday, 19 August 2008

    19:00: Mikal shared: Level of IPv6 Usage Is Vanishingly Small
      IPv6 traffic vanishingly small as a percentage of IPv4 traffic. News at 11.

    19:00: Mikal shared: The DB2 book is done!
      Cool! Grant's book on DB2 has been published finally... He's been working on the project for quite some time, so its nice to seem it finished.

    22:00: Mikal shared: AMS-IX - Statistics
      Although, the Amsterdam Internet Exchange certainly seems to be passing a lot of IPv6 packets.



    Tags for this post: blather

posted at: 22:00 | path: /blather | permanent link to this entry


Pawn of Prophecy




    ISBN: 0552148075
    LibraryThing
    The Belgariad is a pretty formula fantasy epic, with striking similarities to things like stories of King Arthur. The series is written in a style which is very accessible to younger readers, which might explain why I loved these books as a kid. Its also a pretty "safe" story, in that nothing truly bad is allowed to happen to the main character, who is a child who grows up during the books. That might be why I loved these books so much as a child, and read them many times.

    As an adult, this is a pretty easy read, and quite entertaining. I imagine its a lot like the Harry Potter series in its accessibility, although I haven't actually read Harry Potter as its not my kind of thing.

    I quite like this book, and would recommend it to young readers interested in fantasy books.

    Tags for this post: book david_eddings magic prophecy sword_and_sourcery childhood npr_top_100_sf fantasy
    Related posts: Castle Of Wizardry; Enchanters End Game; Magician's Gambit; Queen of Sorcery; Belgarath the Sorcerer; Polgara the Sorceress


posted at: 17:34 | path: /book/David_Eddings | permanent link to this entry


Hotel Max

    When I was looking for a hotel to stay at for SIGCOMM 2008, I had trouble finding one in downtown Seattle which wasn't insanely expensive. In the end I picked Hotel Max because it was only moderately expensive, instead of insane like the Grant Hyatt. The hotel is interesting because apparently it was quite run down until a few years ago when it was done up. Now every room has its own unique art, and the halls and lobby are filled with different bits of art as well. Very hip.

    The room itself is quite small by American standards, which means its about the same size as the room that I stayed in while staying in London a few years ago. The shower and bathroom are literally cupboards off a corridor, but the bed is a full size queen. I'm not surprised about that given the yelp.com reviews.

    Given all I do in hotels is sleep and work on my laptop, I like this place. If I had the kids with me I would go insane however. Also be careful to get a room that faces Stewart Street. Mine faces an alley and I can hear the binging noise from the streetcar until about 10pm, and the air conditioning plant from the building next door for a while after that. I still slept ok though, so I guess people turned all that stuff off at some point during the night.

    Update: I was wrong. The binging isn't the street car, its instead the beeping thingie that all underground carparks seem to have here to warn pedestrians that there is a car about to enter the sidewalk. Its very annoying.

    Tags for this post: travel usa washington seattle hotel
    Related posts: Paul Allen's Science Fiction Museum; Ice hotels again; I think I've worked out the problem with the hotel network; In a holding pattern; On hotel Internet that sucks; Beware the concierge at the Rendezvous Hotel!

posted at: 16:25 | path: /travel/usa/washington/seattle | permanent link to this entry


Mon, 18 Aug 2008



Blathering for Monday, 18 August 2008

    15:45: Mikal shared: Android SDK v.9 Image Gallery
      TechCrunch has a gallery of Android screenshots online if you're interested in such things.

    18:34: In Seattle. At Gordon Biersch to be exact. Its a little worrying that they have a large selection of martinis for under $9. I will have to try one after my burger I suppose. Until then its waiting for my food and watching olympic women's baseball on the TV over the bar... I didn't even know baseball was an olympic sport.
    18:40: Ok. I am clearly not an expert on baseball only having seen about two games, but I am pretty sure you're not meant to pitch underarm. Is that a women's baseball thing or something?
    18:45: Perhaps I am just showing my lack of sporting knowledge in general... Is handball a real sport? The TV in the bar has moved on to men's handball, and it looks like a cross between the game I played as a kid (with a tennis ball and one or three other people), and basketball. Its a pretty boring sport that could perhaps be improved if all the players were issued knives.


    Tags for this post: blather

posted at: 18:45 | path: /blather | permanent link to this entry


Cloud Warrior

posted at: 17:47 | path: /book/Patrick_Tilley | permanent link to this entry


The currently broken state of video for Linux

posted at: 08:55 | path: /linux/v4l | permanent link to this entry


Sat, 16 Aug 2008



Isaac Asimov's Foundation Series

posted at: 22:21 | path: /book/Isaac_Asimov | permanent link to this entry


Robot Dreams

posted at: 21:33 | path: /book/Isaac_Asimov | permanent link to this entry


Why sync twice on shutdown?

posted at: 12:26 | path: /linux | permanent link to this entry


A day in San Francisco

    Most of the folks I work with actually live in San Francisco and commute down to Mountain View each day. I wouldn't be willing to do such a long commute each day (especially given San Francisco isn't my favorite city), but I am willing to do it occasionally. I spent yesterday in the San Francisco office, which means all those guys could have a break from commuting. I might end up doing this more regularly if we can work out the logistics a bit better.

    The commute was a bit insane. Light rail from my house to Castro Street in Mountain View. The Caltrain shuttle to work. Then a work run shuttle to San Francisco. At least I didn't have to do the light rail in the evening -- Catherine and the kids picked me up from work. All up I think I spent about two and a half hours commuting yesterday.

    The San Francisco office is really nice, and I got to bump into a bunch of people I haven't seen in ages like Chris (who used to take me shooting in Phoenix). That worked out well because apparently I should visit some folks in the Seattle office next week, even though I didn't realize they existed until yesterday.

    (Have I mentioned that I am in Seattle next week for SIGCOMM 2008 yet? I don't think I have. I am in Seattle next week -- let me know if you're there and want to have a coffee or something. I probably wont make it out to Redmond or Kirkland though because I wont have a car.)

    Anyways, while in San Francisco I made an effort to go to the Pirate supply store at 826 Valencia -- San Francisco's only independently owned pirate supply store. It was cool. I knew the trip was coming up, so for the last week I've asked people to recommend second hand science fiction books stores in San Francisco as my gtalk status message... Its cool that three people replied with recommendations, and all of them said that I should go to Borderlands Books. The store is small, but had a great selection. The best David Drake, Roger McBride Allen, and Terry Pratchett collections that I have seen in any bookstore so far. Finally, we went to Ritual Roasters for a coffee. They make a good coffee, and have a cool logo. A bit crowded though. All of this was for my first time in the Mission as well, which was an interesting place. A lot like Newtown, but with more hispanic people and a lot dirtier.

    So, I think I'm trying to say I had fun. I'll be going back to the San Francisco office again I am sure.

    Tags for this post: blog san francisco
    Related posts: Public transport to San Francisco from Santa Clara; How open source hackers party

posted at: 09:28 | path: /diary | permanent link to this entry


Thu, 14 Aug 2008



Blathering for Thursday, 14 August 2008

    11:45: Mikal shared: Electric Porsche
      This dude converted a porsche 911 to electric!

    11:45: Mikal shared: Electro Automotive: Parts Price List
      Wow, a deluxe universal conversion kit is only $7,000 USD. That's a lot cheaper than I expected.

    11:45: Mikal shared: Electro Automotive: DC Conversion Kits
      A supplier of electric car conversion kits. Tempting.

    11:45: Mikal shared: Electric Car Conversion Kit (for beginners)
      I've wanted to build myself a kit car for a while, although I've always been stopped by the fact that I live in an apartment in the US. It occurs to me though that I should do this when I move back to Australia sometime in the indeterminate future. When I do, why not make it an electric car as well? That sounds like a seriously fun project.



    Tags for this post: blather

posted at: 11:45 | path: /blather | permanent link to this entry


Wed, 13 Aug 2008



MythNetTV mailing list

posted at: 16:56 | path: /mythtv/mythnettv | permanent link to this entry


MythNetTV release 4

    New things in this release:

    • Removed gflags because people found it hard to find
    • Bug fix patch from David Linville applied
      • Fixed broken imports caused by refactoring
      • Transcode not needed for avc1 and m4v
    • Another bug fix patch from David Linville applied
      • Store filesize in the db
    • Removed some namespace imports I am not a fan of
    • Made verbosity optional for --update
    • Small code cleanups
    • Let the user know of repeated attempts to download a program
    • Documented the need for bittornado for bittorrent to work
    • Abandon downloading after 3 failed attempts (you can configure the number)
    • Detect stuck bittorrent downloads


    Release 3 had a few bugs folks reported, this release should fix those problems. Let me know if you still see any. You can grab your copy here.

    Tags for this post: mythtv mythnettv release
    Related posts: MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 6; MythNetTV release 5; MythNetTV beta 4

posted at: 16:47 | path: /mythtv/mythnettv | permanent link to this entry


Blathering for Wednesday, 13 August 2008

    10:15: Mikal shared: Advice Fail
      An excellent failure to provide the advice requested.



    Tags for this post: blather

posted at: 10:15 | path: /blather | permanent link to this entry


Tue, 12 Aug 2008



Blathering for Tuesday, 12 August 2008

posted at: 16:12 | path: /blather | permanent link to this entry


Mon, 11 Aug 2008



Getting rid of cable TV?

    I'm thinking of getting rid of comcast and getting a high def over the air tuner as well as a netflix subscription. I'd be interested in people's opinions of netflix. I guess I'm just fed up with comcast's woeful customer service, quite ordinary analog reception, and complete lack of any new programming. Its been about six months since there was something we really wanted to watch on the channels we get, and I've only just noticed...

    Tags for this post: mythtv comcast
    Related posts: Free on demand from Comcast; Comcast Lies

posted at: 20:35 | path: /mythtv | permanent link to this entry


Recent comments

posted at: 18:57 | path: /site | permanent link to this entry


Discovering the CASE statement

    In an effort to speed up my database updates, I've been looking for ways to batch some of my updates. CASE seems like the way to go:

    mysql> create table bar(a tinyint, b tinyint);
    Query OK, 0 rows affected (0.02 sec)
    
    mysql> insert into bar(a) values(1), (2), (3), (4), (5);
    Query OK, 5 rows affected (0.00 sec)
    Records: 5  Duplicates: 0  Warnings: 0
    
    mysql> select * from bar;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 | NULL | 
    |    2 | NULL | 
    |    3 | NULL | 
    |    4 | NULL | 
    |    5 | NULL | 
    +------+------+
    5 rows in set (0.00 sec)
    
    mysql> update bar set b = case a
        ->   when 1 then 42
        ->   when 2 then 43
        ->   when 3 then 44
        ->   else 45
        ->   end;
    Query OK, 5 rows affected (0.00 sec)
    Rows matched: 5  Changed: 5  Warnings: 0
    
    mysql> select * from bar;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 |   42 | 
    |    2 |   43 | 
    |    3 |   44 | 
    |    4 |   45 | 
    |    5 |   45 | 
    +------+------+
    5 rows in set (0.00 sec)
    


    I see stuff online which warns not to forget the else, otherwise you get a default of null, so I guess I should bear that caveat in mind...

    Tags for this post: mysql case statement
    Related posts: Managing MySQL the Slack Way: How Google Deploys New MySQL Servers; I won a radio shark and headphones!; Conference Wireless not working yet?; Live journal mission statement; Drizzle Developer Day; Linux presence at Education Expo

posted at: 09:37 | path: /mysql | permanent link to this entry


The Complete Robot

posted at: 09:33 | path: /book/Isaac_Asimov | permanent link to this entry


Solar rebate grumble

posted at: 09:33 | path: /solar | permanent link to this entry


Isaac Asimov's Utopia




    ISBN: 0441004717
    Ace (1999), Edition: Reprint, Paperback, 368 pages
    LibraryThing
    Utopia is the third and final Asimov universe book from Allen. It centers around an attempt to accellerate the terraforming of a planet by drastic measures which drive third law robots wild... The measures are so drastic that they endanger humans, whilst protecting a large number of humans. Unfortunately three law robots have trouble seeing the difference between the two.

    I don't think this book is as well written as the earlier two Allen books (Caliban and Inferno) and therefore not as good as the Asimov books set in the universe. It was however reasonably engaging and I'm not offended that I spent time and money on it. An ok book, but nothing special basically.

    Tags for this post: book roger_macbride_allen isaac_asimov robot caliban detective
    Related posts: Isaac Asimov's Caliban; Isaac Asimov's Inferno; Asimov's Mirage; Asimov's Chimera; Caves of Steel; Caliban Series


posted at: 09:31 | path: /book/Roger_MacBride_Allen | permanent link to this entry


Sat, 09 Aug 2008



The Stainless Steel Rat Series

posted at: 22:36 | path: /book/Harry_Harrison | permanent link to this entry


The Stainless Steel Rat Wants You

posted at: 22:34 | path: /book/Harry_Harrison | permanent link to this entry


Fri, 08 Aug 2008



Isaac Asimov's Nightfall Short Stories

    Asimov published two books named Nightfall 1 and Nightfall 2 which are collections of short stories. I have both of these books in a single volume named "Nightfall', which is not to be confused with the novel of the same name by Asimov and Silverberg. I was getting quite confused about which robot short stories I had already read already (many appear in more than one collection), so I built this table to help:

    Nightfall
    1969
    The Complete Robot
    1982
    Robot Dreams
    1986
    Robot Visions
    1990
    Nightfall
           
    Green Patches
           
    Hostess
     
       
    Breeds There a Man
     
       
    C-Chute
           
    In a Good Cause
           
    What If -
           
    Sally
       
    Flies
           
    Nobody Here But -
           
    It's Such a Beautiful Day
           
    Strikebreaker
     
       
    Insert Knob A in Hole B
           
    The Up-to-date Sorcerer
           
    Unto the Fourth Generation
           
    What is this Thing Called Love?
           
    The Machine That Won the War
     
       
    My Son, the Physicist
           
    Eyes Do More Than See
     
       
    Segregationist
     


    Tags for this post: book isaac_asimov robot anthology
    Related posts: Isaac Asimov's Robot Short Stories; The Rest of the Robots; Robot Dreams ; Nightfall (short stories) ; Robot Visions; The Complete Robot

posted at: 11:55 | path: /book/Isaac_Asimov | permanent link to this entry


Thu, 07 Aug 2008



Blathering for Thursday, 07 August 2008

posted at: 15:00 | path: /blather | permanent link to this entry


Noticed that smtpsurvey.stillhq.com is down?

posted at: 09:11 | path: /research/smtp/survey | permanent link to this entry


Wed, 06 Aug 2008



The Rest of the Robots

posted at: 19:41 | path: /book/Isaac_Asimov | permanent link to this entry


Blathering for Wednesday, 06 August 2008

posted at: 19:00 | path: /blather | permanent link to this entry


Tue, 05 Aug 2008



Blathering for Tuesday, 05 August 2008

    10:15: Mikal shared: Commuter Cars
      I saw a Tango parked in the carpark at work this morning. I've always been tempted by electric cars, and so I dug a little further. I would be a lot more interested in these things if it wasn't $100,000 USD.

    10:30: Mikal shared: Global Electric Motorcars : Price Your Own
      On the other hand, the GEM cars seem to have come down in price heaps. I remember looking a year ago and these being more like $20,000 USD each. They seem to be only around $7,000 USD now. I wonder if I can import one into Australia?

    19:30: Mikal shared: Telstar Logistics: Flight Report: Airborne in an Emirates A380 at SFO
      This blog was invited to a tour of the Emirates A380 fitout. Features for first class include a private little room thingie, and a shower. Yes, a shower. Apparently economy isn't too bad, if you don't mind people stink.



    Tags for this post: blather

posted at: 19:30 | path: /blather | permanent link to this entry


SSL, X509, ASN.1 and certificate validity dates

posted at: 15:53 | path: /python/tlslite | permanent link to this entry


Overall comment spam statistics

posted at: 02:13 | path: /site | permanent link to this entry


Mon, 04 Aug 2008



Blathering for Monday, 04 August 2008

    10:00: Mikal shared: Amazon.com--News Release
      abebooks.com is being acquired by Amazon. It will be interesting to see if having second hand science fiction listed on amazon.com will make it harder to get the rare stuff (because more people can find it), or easier (as more bookstores sign up).

    10:52: I brought some Australian kitkats back to the US for folks in the office to try. They're impressed with the mint ones, which are apparently better than the green tea flavored ones I picked up in Tokyo a while ago.
    11:00: Mikal shared: JetBlue To Charge $7 For Pillow-Blanket Kit [Jet Blue]
      Wow. Now JetBlue is charging customers for a pillow and blanket. Coupled with fees for checked bags and the TSA, I am starting to feel like I'd rather walk places than fly.



    Tags for this post: blather

posted at: 11:00 | path: /blather | permanent link to this entry


Sun, 03 Aug 2008



Stainless Steel Visions

posted at: 20:36 | path: /book/Harry_Harrison | permanent link to this entry


Fri, 01 Aug 2008



Blathering for Friday, 01 August 2008

posted at: 02:00 | path: /blather | permanent link to this entry


Books read in July 2008

posted at: 00:00 | path: /book/read | permanent link to this entry


Thu, 31 Jul 2008



The Stainless Steel Rat Saves The World

posted at: 01:32 | path: /book/Harry_Harrison | permanent link to this entry


Wed, 30 Jul 2008



Blathering for Wednesday, 30 July 2008

    01:30: Mikal shared: Aussie businesses ignore online customer inquiries - Business - iTnews Australia
      When I worked for an Australian software company, people in the US would often ask us why our web products lagged everyone else so much. To answer, I'd point them at target.com (a web commerce site), and target.com.au (a bunch of PDFs of scanned catalogs). They would gasp.

      The state of Australian online customer service is terrible in general it seems, based on the survey results discussed in this article.

    03:54: Its wierd how so many of the blog comment spams I seem to get this day don't even seem to have valid URLs in them. One day I'll bother to do an analysis of what these people are doing and try and work out the sense to it. I have quite a lot of data now, given that I have around 370,000 blog comments (almost all spam!) in my database.


    Tags for this post: blather

posted at: 03:54 | path: /blather | permanent link to this entry


Tue, 29 Jul 2008



Blathering for Tuesday, 29 July 2008

    04:15: Mikal shared: Reliable DNS Forgery in 2008: Kaminskys Discovery
      DNS attacks explained. An interesting read.

    04:27: Mikal shared: Starbucks axes 61 stores and 685 jobs - National - smh.com.au
      Wow. Starbucks is closing 61 of its 84 stores in Australia. I guess that's an admission of defeat. It seems there will be no Starbucks in Canberra soon.

    05:00: Mikal shared: The DNS Vulnerability
      Schneier's thoughts on the most recent DNS vulnerability. He's right that Kaminsky did the right thing, although I am not convinced that a security engineer would have predicted this problem. Heck, I'm sure lots of the vendors who needed to write a patch have such engineers. There is still room for luck in such things.

    23:00: Mikal shared: QBE shares hit by trader error
      Hmmm. It seems that perhaps trading systems should have some sort of safeguard? I wish I'd had some buy orders for random low prices in...



    Tags for this post: blather

posted at: 23:00 | path: /blather | permanent link to this entry


The Stainless Steel Rat's Revenge

posted at: 20:46 | path: /book/Harry_Harrison | permanent link to this entry


Prelude To Foundation

posted at: 04:10 | path: /book/Isaac_Asimov | permanent link to this entry


Mon, 28 Jul 2008



Hosting changes

posted at: 22:01 | path: /site | permanent link to this entry


Wed, 23 Jul 2008



The Stainless Steel Rat

posted at: 06:10 | path: /book/Harry_Harrison | permanent link to this entry


Tue, 22 Jul 2008



Pebble in the Sky




    ISBN: B000K052KS
    LibraryThing
    This is Asimov's first book, and not his best. Its set on an Earth which is radioactive (possibly because of a global nuclear war as supposed in the book, or perhaps because of events described in Robots and Empire). There is a galactic empire at this point, and overall humans have forgotten that they originated on Earth.

    (I find that a little hard to believe by the way. Whilst it is true that we have lost historical records from thousands of years ago, we do have some and archeology has constructed at least a partial history for humanity. Additionally, we now have pretty solid record keeping as a society, and it is left unexplained where all those records might have gone. Finally, there is no mention of techniques like carbon dating, which presumably could have been used to prove that Earth is indeed the original planet.)

    I did like the general gist of the book, although the conclusion was unsatisfying as well. Overall, not Asimov's best work.

    Tags for this post: book isaac_asimov foundation hugo award
    Related posts: Foundation's Edge ; Foundation and Empire; Robots of Dawn ; Caves of Steel; Ender's Game; Cyteen: The Vindication


posted at: 23:07 | path: /book/Isaac_Asimov | permanent link to this entry


Bunyip is dead

posted at: 18:51 | path: /anu | permanent link to this entry


Sun, 20 Jul 2008



Blathering for Sunday, 20 July 2008

posted at: 18:00 | path: /blather | permanent link to this entry


The Currents of Space




    ISBN: 0553293419
    LibraryThing
    "The Currents of Space is a 1952 novel by the American science fiction author Isaac Asimov. It is the second of three books labelled the Galactic Empire series. Each occurs after humans have settled many worlds in the galaxy after the second wave of colonisation that went beyond the Spacer worlds and before the era of decline that was the setting for the original Foundation series. Each of the three is only loosely connected to other works, being separated by a fairly large gulf of centuries."


    That's the description from Wikipedia. This book is completely separate from The Stars Like Dust, in that while it might use the same universe the characters are entirely different and there quite a distance between the books in the time line of the series. Really, they're separate novels entirely.

    I found it quite hard to get into this book, and I don't think it is as well written as The Stars Like Dust. The problem might have been that I found it pretty hard to care about Rik, and the Florina / Sark division was a bit shallowly constructed. Its hard to imagine a segregation system which is as completely effective as the one described. How did it ever occur? Why didn't people fight back? Did people never randomly fall in love with the "wrong" set of have affairs?

    I persevered however, and the second half of the book is much better that the first, including some twists I didn't expect. Overall an ok book, but not fantastic.

    Tags for this post: book isaac_asimov foundation
    Related posts: Prelude To Foundation ; Isaac Asimov's Foundation Series; Robots and Empire ; Foundation's Edge ; Foundation and Empire; Foundation's Triumph


posted at: 04:44 | path: /book/Isaac_Asimov | permanent link to this entry


Sat, 19 Jul 2008



Blathering for Saturday, 19 July 2008

    17:00: Mikal shared: BBC NEWS | Americas | US slips down development index
      "Americans live shorter lives than citizens of almost every other developed nation, according to a report from several US charities.The report found that the US ranked 42nd in the world for life expectancy despite spending more on health care per person than any other country.Overall, the American Human Development Report ranked the world's richest country 12th for human development."



    Tags for this post: blather

posted at: 17:00 | path: /blather | permanent link to this entry


Thu, 17 Jul 2008



Blathering for Thursday, 17 July 2008

posted at: 19:45 | path: /blather | permanent link to this entry


Tue, 15 Jul 2008



Blathering for Tuesday, 15 July 2008

    15:30: Mikal shared: Teenager sets new Rubik's Cube world record | NEWS.com.au
      Have I mentioned that my sister in law is Australia's fastest rubiks cube solver? She's very good -- I can nearly solve the first to layers of the cube after only a few hours of tuition!

    17:45: Mikal shared: ABC Canberra - Free public transport worth re-considering: Stanhope
      Canberra has a problem with not enough people using the bus network. That's probably because various governments over the years have cut back the service to the point where its kind of useless. I have a bus option to the city every 30 minutes on a weekday morning, but have to wait an hour for a bus on the weekend to get to the closest town center. I think Stanhope is on the right track by examining pricing for the bus system, but he also needs to roll out a more useful network as well. Oh, and light rail would be nice too. kthxbye.

    21:45: Mikal shared: IPv6 routing history
      A graph of the number of unique prefixes in the IPv6 BGP "cloud". This is a measure of the number of networks currently using IPv6.

    21:45: Mikal shared: Default-free zone - Wikipedia, the free encyclopedia
      I hadn't heard the term DFZ (Default Free Zone) until recently, and today decided it was time to find a good definition. I think this one is as good as any, and its an interesting read.

    23:15: Mikal shared: Chinese restaurant called TRANSLATE SERVER ERROR
      I dream of one day eating at that most remarkable of dining establishments: "translate server error".



    Tags for this post: blather

posted at: 23:15 | path: /blather | permanent link to this entry


Mon, 14 Jul 2008



Blathering for Monday, 14 July 2008

    15:45: Mikal shared: Help Mythbusters recreate Archimedes' death ray
      Want to be involved with a Mythbusters shoot and can get yourself to the Bay Area? Read this.

    15:45: Mikal shared: Preoccupations - Expressing Passions (Just Not Your Own) - News Analysis - NYTimes.com
      An interesting New York Times article by a ghost writer -- a person who writes books that other people take most of the credit for. I guess people feel uncomfortable with this sort of thing because it feels intellectually dishonest, but then again, there are lots of other examples of places where the person at the front of the stage isn't the major contributor. Examples I can think of include acting on stage (there are dozens of other people involved), or race car driving (where the engineers to build and maintain the cars a vital, but never discussed). An interesting read.



    Tags for this post: blather

posted at: 15:45 | path: /blather | permanent link to this entry


Sun, 13 Jul 2008



Blathering for Sunday, 13 July 2008

posted at: 22:00 | path: /blather | permanent link to this entry


MythNetTV release 3

    New things in this release:

    • Started work on an RSS exporter for MythTV recordings
    • DX50 doesn't need transcode
    • Tweaked supported video mime types so "Tikibar TV" and "Ask a ninja" work
    • First cut of Bittorrent support
    • Schema upgrades
    • Archive recordings as well as importing them
    • Improved --list output
    • Subtitle restrictions on download as well
    • Make subscriptions inactive instead of deleting them (for unsubscribe)
    • Better filename safening
    • More markread options
    • Refactored code to be more sane
    • Don't archive things imported from the archive location
    • Bulk import (--importmanylocal)


    This version was a long time coming. Sorry about that. You can grab your copy here.

    Tags for this post: mythtv mythnettv release
    Related posts: MythNetTV release 2; MythNetTV release 7; MythIpTV Beta 1; MythNetTV release 6; MythNetTV release 5; MythNetTV beta 4

posted at: 21:36 | path: /mythtv/mythnettv | permanent link to this entry


Sat, 12 Jul 2008



The Stars, Like Dust