See recent comments. RSS feed of all comments. Raw dump of all comments for research purposes.
ImageMagick book
MythTV book
|
 |
|
 |
|
Wed, 31 Dec 2008
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Sun, 28 Dec 2008
|
|
|
|
|
 |
|
 |
|
Sat, 27 Dec 2008
|
|
|
|
|
 |
|
 |
|

ISBN: 0441373844 Ace (1988), Paperback LibraryThing
| This is the fourth book in the Robot City series, which is based in Asimov's Foundation universe. This one follows Odyssey, Suspicion and Cyborg.
This book has quite a different style, the robot characters using quite convoluted sentences, which I found annoying. It is a little jarring in this series that each book is by a different author -- it takes me a little while to transition between the authors' various styles when I read them, especially when they're back to back. I think what Cover was trying to achieve is a more intellectual style of book than the others in the series, and it suffers the same fate as the Benford's Foundation's Fear -- the style is out of place with the rest of the books in the series, and that decreases from the enjoyment to be derived from this book.
The actual plot line is fine though, if a little simplistic. Because of the very verbose style, it feels like less happened in this book than the others (which are of similar length). Overall, a bit of a disappointment.
Tags for this post: book( ) Arthur_Byron_Cover( ) |
posted at: 19:35 | path: /book/Arthur_Byron_Cover | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
Thu, 25 Dec 2008
|
|
|
|
|
 |
|
 |
|
Wed, 24 Dec 2008
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 18:32 | path: /book/David_Eddings | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 22 Dec 2008
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Wed, 17 Dec 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
|
|
|
|
|
 |
|
 |
|
Sun, 14 Dec 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
|
|
|
|
|
 |
|
 |
|
Fri, 12 Dec 2008
|
|
|
|
|
 |
|
 |
|
Thu, 11 Dec 2008
|
|
|
|
|
 |
|
 |
|
Wed, 10 Dec 2008
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 21:36 | path: /book/Patrick_Tilley | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
It seems that there is no way of killing a blocking thread in python? The standard way of implementing thread death seems to be to implement an exit() method on the class which is the thread, and then call that when you want the thread to die. However, if the run() method of the thread class is blocking when you call exit(), then the thread doesn't get killed. I can't find a way of killing these threads cleanly on Linux -- does anyone have any hints?
Tags for this post: python( )
posted at: 14:03 | path: /python | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 09 Dec 2008
|
|
|
|
|
 |
|
 |
|
Mon, 08 Dec 2008
|
|
|
|
|
 |
|
 |
|
Hypothetically, what would you do with a list of parked domain names? I have a little over 4 million of them up my sleeve as a side effect of another project, and I wonder if they're useful to anyone.
Tags for this post: research( )
posted at: 10:21 | path: /research | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 07 Dec 2008
|
|
|
|
|
 |
|
 |
|
Sat, 06 Dec 2008
|
|
|
|
|
 |
|
 |
|
Fri, 05 Dec 2008
|
|
|
|
|
 |
|
 |
|
Thu, 04 Dec 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
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 17:25 | path: /gtalkbot | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
I estimate (badly, I might add) that I currently use about 200gb of Internet traffic on my DSL link a month. If I'm going to move back to Australia sometime, that's going to become a killer. Unfortunately, because my ISP doesn't bill for traffic here in the US, they don't appear to track my use at all. I think it might be time for me to do some tracking myself.
So, one of life's little questions. Do I use pcap to snarf traffic on the DSL, or use iptable's conntrack stuff in /proc? Just one more thing to ponder.
Tags for this post: blog( )
posted at: 11:34 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 03 Dec 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
|
|
|
|
|
 |
|
 |
|
Sun, 30 Nov 2008
|
|
|
|
|
 |
|
 |
|
Sat, 29 Nov 2008
|
|
|
|
|
 |
|
 |
|
Wed, 26 Nov 2008
|
|
|
|
|
 |
|
 |
|
Wow, this is a blast from the past. When I wrote the pngchunks command in 2003, I had never seen a 64 bit machine, and knew enough to check that an int was the right size, but not enough to just use the guaranteed-to-be-32-bit version from day 1. I'd pretty much forgotten about this code until I got pinged about this Debian bug. The bug reporter is entirely right, this was lame.
PNGtools 0.4 should be 64 bit safe. The pngchunks command works on my 64 bit machines at least.
Tags for this post: pngtools( )
posted at: 15:16 | path: /pngtools | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 25 Nov 2008
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 10:22 | path: /python/pcapy | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 24 Nov 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
|
|
|
|
|
 |
|
 |
|
Fri, 21 Nov 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
|
|
|
|
|
 |
|
 |
|
Tue, 18 Nov 2008
|
|
|
|
|
 |
|
 |
|
Mon, 17 Nov 2008
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 18:40 | path: /book/Isaac_Asimov | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 14:59 | path: /procmail | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 16 Nov 2008
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Fri, 14 Nov 2008
|
|
|
|
|
 |
|
 |
|
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:
Found memes:
- "the cool book or the intellectual one pick the closest": Chris Neugebauer: Meme #42, Thomas Karpiniec: The Book Thing, Jeremy Visser: Book meme, Michael Davies: Meme #42, James Purser: The Meme of the Book, Jon Oxer: Phrase from nearest book, Josh Stewart: random book content, Stewart Smith: phrase from nearest book
- "find the fifth sentence post the text of the sentence": Donna Benjamin: meme-ege, Chris Neugebauer: Meme #42, Thomas Karpiniec: The Book Thing, Jeremy Visser: Book meme, Michael Davies: Meme #42, James Purser: The Meme of the Book, Peter Lieverdink: blog meme #42, Jon Oxer: Phrase from nearest book, Josh Stewart: random book content, Stewart Smith: phrase from nearest book
- "journal along with these instructions dont dig for your favorite": Jeremy Visser: Book meme, Michael Davies: Meme #42, James Purser: The Meme of the Book, Peter Lieverdink: blog meme #42, Jon Oxer: Phrase from nearest book, Josh Stewart: random book content, Stewart Smith: phrase from nearest book
- "grab the nearest book open it to page 56 find": Chris Neugebauer: Meme #42, Thomas Karpiniec: The Book Thing, Jeremy Visser: Book meme, Michael Davies: Meme #42, James Purser: The Meme of the Book, Peter Lieverdink: blog meme #42, Jon Oxer: Phrase from nearest book, Josh Stewart: random book content, Stewart Smith: phrase from nearest book
mi
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( )
posted at: 22:04 | path: /meme | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
It seems that planet is a bit too trusting with dates. For example, if you have a post with a date well into the future, then you can keep that post at the top of the planet output until that date comes around. Its interesting that no one has used that maliciously yet.
You can see an example of what I'm talking about at Planet Linux Australia, where some forward dated posts sit at the top of the page...
Tags for this post: blog( )
posted at: 21:55 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 21:29 | path: /meme | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 13 Nov 2008
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
I got adventurous tonight, and whipped up some javascript which updates the sentence at the end of each post which lists how many comments there are on a post. This means that the site is always up to date, even though all the HTML is static files on disk. It also means I can finally kill that silly hourly regenerate cron job.
Oh, and this is post 3,000 on this site.
Tags for this post: site( )
posted at: 19:55 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
20:53: Memeomatic found a new meme: Stewart Smith: phrase from nearest book, Josh Stewart: random book content, Jon Oxer: Phrase from nearest book, Peter Lieverdink: blog meme #42, James Purser: The Meme of the Book, Michael Davies: Meme #42, Jeremy Visser: Book meme, Thomas Karpiniec: The Book Thing, Chris Neugebauer: Meme #42, Donna Benjamin: meme-ege, Simon Lyall: Economist plus meme
21:14: Memeomatic extended an existing meme: Chris Samuel: Book Meme
21:41: Memeomatic extended an existing meme: Book meme de jour
22:05: Memeomatic extended an existing meme: On a memeomatic
22:21: Memeomatic extended an existing meme: Kees Cook: phrase from nearest book meme
22:21: Memeomatic extended an existing meme: Mike Hommey: Book meme reloaded
22:29: Memeomatic extended an existing meme: Jacob Peddicord: Open Source Bridge
Tags for this post: blather( )
posted at: 08:28 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 11 Nov 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 19:04 | path: /mythtv | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 15:46 | path: /python | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 09 Nov 2008
|
|
|
|
|
 |
|
 |
|
I pushed a bunch of photo files to stillhq.com tonight, all of which I thought were previously published. Unfortunately a bunch of them had the wrong dates associated with them, which spammed the front page and RSS feed with old photo posts. The problem has been corrected now, and hopefully not too many people grabbed the bogus RSS feeds. Sorry for any inconvenience.
Tags for this post: site( )
posted at: 18:52 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Tue, 04 Nov 2008
|
|
|
|
|
 |
|
 |
|
Mon, 03 Nov 2008
|
|
|
|
|
 |
|
 |
|
Sun, 02 Nov 2008
|
|
|
|
|
 |
|
 |
|
Every once in a while someone sends me a nastygram about how I ignored their comment on a post on this site. This has generally been because people don't read the paragraph on the post form about comments not appearing until they have been moderated.
I got all keen this evening, and comments are now returned from a CGI, instead of a static file, which means that unmoderated comments from the last 24 hours now appear immediately on the site. Hopefully this will stop said nastygrams.
Tags for this post: site( )
posted at: 20:07 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 01 Nov 2008
|
|
|
|
|
 |
|
 |
|
Thu, 30 Oct 2008
|
|
|
|
|
 |
|
 |
|
Wed, 29 Oct 2008
|
|
|
|
|
 |
|
 |
|
07:45: Mikal shared: Ben Leslie: Android on ARMv4 (take 2)
This is really impressive. It seems Ben is getting quite close to getting Android working on the ARM4.
Tags for this post: blather( )
posted at: 18:21 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 28 Oct 2008
|
|
|
|
|
 |
|
 |
|
Mon, 27 Oct 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 15:59 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
10:00: Mikal shared: Apple Crisp from Betty Crocker
We make this all the time, but I can never find the recipe when I need it...
Tags for this post: blather( )
posted at: 07:14 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 26 Oct 2008
|
|
|
|
|
 |
|
 |
|
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.
| Department | Expenditure | Source URL |
| Parliament House | $740,040 | Source |
| 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,930 | Source |
| Infrastructure, Transport, Regional Development and Local Government | -- | Source | | Innovation, Industry, Science and Research | $425,676 $2,608,992 | Source |
| Prime Minister and Cabinet | $543,000 | Source |
| 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( )
posted at: 20:14 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 25 Oct 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
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
Fri, 24 Oct 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 07:33 | path: /android | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 23 Oct 2008
|
|
|
|
|
 |
|
 |
|
Wed, 22 Oct 2008
|
|
|
|
|
 |
|
 |
|
Tue, 21 Oct 2008
|
|
|
|
|
 |
|
 |
|
Mon, 20 Oct 2008
|
|
|
|
|
 |
|
 |
|
Sun, 19 Oct 2008
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Fri, 17 Oct 2008
|
|
|
|
|
 |
|
 |
|
Thu, 16 Oct 2008
|
|
|
|
|
 |
|
 |
|
Wed, 15 Oct 2008
|
|
|
|
|
 |
|
 |
|
Tue, 14 Oct 2008
|
|
|
|
|
 |
|
 |
|
09:15: Mikal shared: Palo Alto Online : Woman killed by Caltrain in Mountain View
I as at the Mountain View Caltrain station at about 6:30pm yesterday, and had to walk around the parked train and about a billion police. Its sad that someone died, but I am surprised by how common these incidents are.
Tags for this post: blather( )
posted at: 09:15 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 13 Oct 2008
|
|
|
|
|
 |
|
 |
|
12:30: Mikal shared: Clever Counterterrorism Tactic
Interesting idea. In order to find bomb makers -- just offer to do their laundry at a discount.
Tags for this post: blather( )
posted at: 12:30 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 12 Oct 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 16:00 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
I thought the first episode was ok, but I am left wondering what's different about the show from the original UK version apart from the accents. Oh, and they didn't show us a picture of the track, which I found annoying -- the UK version bothered to explain the design of the track and why it has the corners it does. Anyway, better than nothing while Top Gear is off the air.
Tags for this post: blog( )
posted at: 19:45 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Perhaps this is something that only people living overseas but paying mortgages in Australia care about, but I am amazed by the size and speed of the drop of the Australian dollar against the US dollar. This graph helps explain what I mean:
That's a big correction. I wonder where the bottom will be? Should I move money now? Should I wait? I guess its time to consider dollar cost averaging my exposure to the forex market.
Tags for this post: blog( )
posted at: 08:12 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Fri, 10 Oct 2008
|
|
|
|
|
 |
|
 |
|
Thu, 09 Oct 2008
|
|
|
|
|
 |
|
 |
|
Wed, 08 Oct 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
|
|
|
|
|
 |
|
 |
|
Mon, 06 Oct 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
|
|
|
|
|
 |
|
 |
|
Sat, 04 Oct 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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 13:09 | path: /mythtv/mythnettv | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 02 Oct 2008
|
|
|
|
|
 |
|
 |
|
Wed, 01 Oct 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
|
|
|
|
|
 |
|
 |
|
Mon, 29 Sep 2008
|
|
|
|
|
 |
|
 |
|
Sun, 28 Sep 2008
|
|
|
|
|
 |
|
 |
|
Sat, 27 Sep 2008
|
|
|
|
|
 |
|
 |
|
Fri, 26 Sep 2008
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 21:16 | path: /book/Gregory_Benford | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 25 Sep 2008
|
|
|
|
|
 |
|
 |
|
21:30: Mikal shared: OTS Puts WaMu into Recievership; JPM Buys Assets
WaMu (a reasonably large US bank which people I know use) went under today. Its clients have been sold. I guess their massive network of branches would be worth something.
Tags for this post: blather( )
posted at: 21:30 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 24 Sep 2008
|
|
|
|
|
 |
|
 |
|
Tue, 23 Sep 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 20:42 | path: /mythtv/mythnettv | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 22 Sep 2008
|
|
|
|
|
 |
|
 |
|
Does anyone else think it is odd that my kid's school had a "code red alert" drill this morning? This is where they have the whole school pretend that there is a gun toting maniac on campus, and the class goes to a corner and hides. They practise being quiet while someone beats on the door, that sort of thing.
I find the whole thing just a little disturbing.
Tags for this post: blog( )
posted at: 14:06 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 17 Sep 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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Mon, 15 Sep 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
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 10:32 | path: /mythtv/mythnettv/tips | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Fri, 12 Sep 2008
|
|
|
|
|
 |
|
 |
|
Thu, 11 Sep 2008
|
|
|
|
|
 |
|
 |
|
Wed, 10 Sep 2008
|
|
|
|
|
 |
|
 |
|
Tue, 09 Sep 2008
|
|
|
|
|
 |
|
 |
|
Goodreads seems to need to update its browser detection...
Cause, you know, hard coding browser detection never fails.
Tags for this post: chrome( )
posted at: 10:21 | path: /chrome | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 08 Sep 2008
|
|
|
|
|
 |
|
 |
|
Sun, 07 Sep 2008
|
|
|
|
|
 |
|
 |
|
14:45: Mikal shared: Offline folders - MozillaZine Knowledge Base
Every time I get a new machine I need to remember how to setup Thunderbird's syncing options to not suck. I've just discovered mail.server.default.autosync_offline_stores=true and I have high hopes for it.
14:45: Mikal shared: Thunderbird Help: Tips & Tricks
This is the other setting I can never remember for setting up Thunderbird: mail.check_all_imap_folders_for_new=true
14:45: Mikal shared: Come test mythnettv and the new GUI for it - Ubuntu Forums
Thomas has released his GUI for MythNetTV. It would be interesting to know what people think of it, it looks pretty good to me so far.
Tags for this post: blather( )
posted at: 08:37 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 04 Sep 2008
|
|
|
|
|
 |
|
 |
|
Wed, 03 Sep 2008
|
|
|
|
|
 |
|
 |
|
11:15: Mikal shared: paramiko: ssh2 protocol for python
Paramiko is awesome. I've been using it for a while now for all my SSH client in python needs, and its really nice.
Tags for this post: blather( )
posted at: 11:15 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 02 Sep 2008
|
|
|
|
|
 |
|
 |
|
I am sure this will come in handy... The chrome user agent looks like this:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
Tags for this post: chrome( )
posted at: 13:24 | path: /chrome | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 31 Aug 2008
|
|
|
|
|
 |
|
 |
|
Sat, 30 Aug 2008
|
|
|
|
|
 |
|
 |
|
Fri, 29 Aug 2008
|
|
|
|
|
 |
|
 |
|
Thu, 28 Aug 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
|
|
|
|
|
 |
|
 |
|
Tue, 26 Aug 2008
|
|
|
|
|
 |
|
 |
|
For the upcoming MythNetTV release I am toying with the idea of asking the user if its ok to include a default subscription to an announcement video blog. This blog could be used to inform MythNetTV users of things like new releases, and important bug fixes if such things happen.
This raises the question -- if I wanted to mix creative commons licensed music with some still images (the announcements), what tool is the best to do that? Specifically open source tools please.
Tags for this post: blog( )
posted at: 10:53 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 25 Aug 2008
|
|
|
|
|
 |
|
 |
|
Sun, 24 Aug 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 14:42 | path: /mythtv/mythnettv | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 21 Aug 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
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 21:43 | path: /book/Tod_Hoffman | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Tue, 19 Aug 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
|
|
|
|
|
 |
|
 |
|
Mon, 18 Aug 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
|
|
|
|
|
 |
|
 |
|
Sat, 16 Aug 2008
|
|
|
|
|
 |
|
 |
|
I'm getting really into reading second hand science fiction from the
1950s onwards. I read a few (but nowhere near all) of the Foundation
series as a child, and I remember liking them a lot. Stolen from Wikipedia
as well as other online sources, here is a list of the books in The
Foundation series in Asimov's suggested reading order:
|
Year |
Title |
Notes |
 |
1950 |
I,
Robot |
Robot
short stories. First collection,
which were all included in The Complete Robot, though it also contains
binding text (Mind and Iron), no longer in The Complete Robot. |
 |
1964 |
The
Rest of the Robots |
Robot
short stories. This collection
isn't recommended, as the stories appear in The
Complete Robot as well. |
 |
1982 |
The
Complete Robot |
Robot
short stories. Collection of
Asimov stories written between 1940 and 1976.
|
 |
1986 |
Robot
Dreams |
Robot
short stories. Anthologized in a
book with the same title.
|
 |
1990 |
Robot
Visions |
Robot
short stories. Anthologized in a
book with the same title. This
collection contains Mirror Image, which is referenced in The Robots Of
Dawn and occurs after The Naked Sun. |
|
1992 |
The Positronic Man |
Robot novel based on
Asimov's short story The Bicentennial Man, co-written by Robert
Silverberg. |
 |
1954 |
The
Caves of Steel |
Robot novel. |
 |
1957 |
The
Naked Sun |
Robot novel. |
 |
1983 |
The
Robots of Dawn |
Robot novel. |
 |
1985 |
Robots
and Empire |
Robot novel. |
 |
1993 |
Isaac
Asimov's Caliban |
Caliban trilogy by Roger
MacBride Allen. These three books were quite hard to get, as they're no
longer for sale. |
 |
1994 |
Isaac
Asimov's Inferno |
Caliban trilogy by Roger
MacBride Allen. These three books were quite hard to get, as they're no
longer for sale. |
 |
1996 |
Isaac
Asimov's Utopia |
Caliban trilogy by Roger
MacBride Allen. These three books were quite hard to get, as they're no
longer for sale. |
 |
1951 |
The
Stars, Like Dust |
Galactic Empire series. |
 |
1952 |
The
Currents of Space |
Galactic Empire series. |
 |
1950 |
Pebble
in the Sky |
Galactic Empire series. |
 |
1988 |
Prelude
to Foundation |
Foundation novel. |
 |
1993 |
Forward
the Foundation |
Foundation novel.
Finished by Asimov's wife after his death from unfinished work.
Combines a series of short stories: "Forward the Foundation", became
Part I, "Eto Demerzel". "Cleon the Emperor" became Part II, "Cleon I",
and "The Consort" became Part III, "Dors Venabili". Also includes
"Wanda Seldon" and "Epilogue". |
 |
1951 |
Foundation |
Foundation trilogy. |
 |
1952 |
Foundation
and Empire |
Foundation trilogy. |
 |
1953 |
Second
Foundation |
Foundation trilogy. |
 |
1997 |
Foundation's
Fear |
Second Foundation
trilogy by Gregory Benford. The general concensus seems to be that this
book isn't very good, but the other two are worth reading. Perhaps skip
this one (although the other two will make less sense unless you read a
plot synopsis of this book). |
 |
1998 |
Foundation
and Chaos |
Second Foundation
trilogy by Greg Bear. |
 |
1999 |
Foundation's
Triumph |
Second Foundation
trilogy by David Brin. |
 |
1982 |
Foundation's
Edge |
Final chronological
Foundation books. |
 |
1986 |
Foundation
and Earth |
Final chronological
Foundation books. |
Next step, read them.
Update:
this
amazon list is also useful as it
has a guide to the short story books and how they overlap, as well as a
bunch more robot books written by other authors.
Update:
this Foundation
Series timeline is useful too.
Update:
this page
contains a useful list mapping short stories to later Foundation books.
Tags for this post: book( ) Isaac_Asimov( )
posted at: 22:21 | path: /book/Isaac_Asimov | permanent link to this entry
|
|
|
|
|
 |
|
 |
|

ISBN: 0441731546 LibraryThing
| Robot Dreams is another of the robot short story books from Asimov. It is a bit deceptive though and frankly quite annoying because only one of the stories in the book is a robot story, and its not very long.I am of course ignoring the robot stories that already appear in I, Robot and The Complete Robot. The rest are unrelated short stories by Asimov that aren't about robots, and aren't even consistent with the universe that the Foundation books exist in. That's what makes it so annoying for Asimov to recommend that you read the book as part of the extended Foundation series. Grumble.
Don't get me wrong, the other stories are fine, its just that they're not the robot stories that I was led to believe they would be. Wikipedia is a little more clear on the situation than I was:
Robot Dreams (1986) is a collection of Isaac Asimov's short stories, intended largely to show a series of Asimov robot-inspired drawings by Ralph McQuarrie. All the stories except the title one, written specifically for the volume, can be found in various other Asimov collections. The companion book, which also showcases McQuarrie's drawings (and includes Asimov essays in addition to short stories), is entitled Robot Visions.
This would explain why my reply to James Taylor's comment was so confused.
I'll update my summary of Asimov's robot short stories accordingly.
Tags for this post: book( ) Isaac_Asimov( )
|
posted at: 21:33 | path: /book/Isaac_Asimov | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Nelson wonders why you sync twice on shutdown. I was told in a BSD kernels class run by Kirk McKusick once that the answer is because typing the second iteration gave the machine time to actually push the bits to disk. In other words, there was no good software reason.
Tags for this post: linux( )
posted at: 12:26 | path: /linux | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 09:28 | path: /diary | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 14 Aug 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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Mon, 11 Aug 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 20:35 | path: /mythtv | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Some small hacking on this site today. I've added a recent comments page as well as a RSS feed for comments. During the development I had a little oops and modified the time of some posts, which might have caused some things to appear as new even though they're not. Sorry about that.
Tags for this post: site( )
posted at: 18:57 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 09:37 | path: /mysql | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
I was all keen about installing either solar assisted hot water or perhaps even solar power which feeds back to the grid at our rental house (the house we intend to move back into when we return to Australia). However, it turns out that there is now a means test for the rebate, which means I wont install anything.
It seems pretty odd to me that the government expects me to front up the $14,000 for solar power, and wont provide me any support for doing so. At our usage levels it would take a very long time to pay off a large infrastructure cost like that. Oh well.
Tags for this post: solar( )
posted at: 09:33 | path: /solar | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 09 Aug 2008
|
|
|
|
|
 |
|
 |
|
Fri, 08 Aug 2008
|
|
|
|
|
 |
|
 |
|
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( )
posted at: 11:55 | path: /book/Isaac_Asimov | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 07 Aug 2008
|
|
|
|
|
 |
|
 |
|
07:45: Mikal shared: SWAT team raids mayor, shoots family dog because someone mailed them pot
Its good to see that even Mayors can have their homes broken into by armed government men. Its nice that the police didn't shoot the people as well as the dogs.
09:00: Mikal shared: GROCERYchoice - ACT
I am surprised to discover that Coles is cheaper than Woolworths in the ACT. I wonder what is in those standardized shopping baskets?
09:30: Mikal shared: United States Postal Service - Abbreviations
Random fact for the day: the US postal service has a list of standard street suffix abbreviations. Interesting.
15:00: Mikal shared: Amazon Filler Item Finder
So close to the free shipping amount on Amazon, yet so far. Use this helper site to find an item to push you over the line.
Tags for this post: blather( )
posted at: 15:00 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 06 Aug 2008
|
|
|
|
|
 |
|
 |
|
Tue, 05 Aug 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
|
|
|
|
|
 |
|
 |
|
While I sat here at 2am, too jet lagged to sleep, I whipped up some quick comment spam statistics for this site, which you can see on the left hand side of this page. Its really easy now that I've moved all the comments across to being stored in something a little nicer than a bunch of flat text files on disk. At the moment the scoreboard reads:
5 comments today, 5 of them spam. 370996 comments overall, 370085 of them spam.
Dear spammers, you are annoying.
Tags for this post: site( )
posted at: 02:13 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Mon, 04 Aug 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
|
|
|
|
|
 |
|
 |
|
Fri, 01 Aug 2008
|
|
|
|
|
 |
|
 |
|
Thu, 31 Jul 2008
|
|
|
|
|
 |
|
 |
|
Wed, 30 Jul 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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Mon, 28 Jul 2008
|
|
|
|
|
 |
|
 |
|
Prompted by Andrew's need to move his machine, with which he has been very generously hosting this site since 2005, I have moved stillhq.com to a new hosting provider. If you're reading this message then it means DNS has updated and you're seeing the new host.
Its quite possible that there is broken stuff. Let me know if you find anything.
Tags for this post: site( )
posted at: 22:01 | path: /site | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Wed, 23 Jul 2008
|
|
|
|
|
 |
|
 |
|
Tue, 22 Jul 2008
|
|
|
|
|
 |
|
 |
|

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( ) |
posted at: 23:07 | path: /book/Isaac_Asimov | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
I suspect that the Bunyip super computer at ANU has been dead for a while, and I simply didn't get the memo. However, I was walking into DCS late this morning (we can discuss the fact that it was cold enough here to freeze my hot water pipes overnight later), and the technical support group was demolishing the hardware.
I think its kind of sad really -- there doesn't seem to be anything to replace it, and clusters of inexpensive Linux machines are clearly where its at.
Oh well.
Some links for those interested in Bunyip:
Tags for this post: anu( )
posted at: 18:51 | path: /anu | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 20 Jul 2008
|
|
|
|
|
 |
|
 |
|
Sat, 19 Jul 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
|
|
|
|
|
 |
|
 |
|
Tue, 15 Jul 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
|
|
|
|
|
 |
|
 |
|
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
|
|
|
|
|
 |
|
 |
|
Sat, 12 Jul 2008
|
|
|
|
|
 |
|
 |
|
Fri, 11 Jul 2008
|
|
|
|
|
 |
|
 |
|
03:45: Mikal shared: Top Gear's James May and Richard Hammond "may leave" BBC motoring show - Telegraph
It would be a shame to see the current run of awesomeness end at Top Gear. It seems fair to me to pay the presenters the same amount of money given how much the BBC is making off the series. I wonder if The Telegraph is a reliable source on such matters? Its always hard to tell with British papers...
Tags for this post: blather( )
posted at: 03:45 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Thu, 10 Jul 2008
|
|
|
|
|
 |
|
 |
|
HTTP 1.1 implements chunking as a way of servers telling clients how much content is left for a given request, which enables you to send more than one piece of content in a given HTTP connection. Unfortunately for me, the site I was trying to access has a buggy chunking implementation, and that causes the somewhat fragile python urllib2 code to throw an exception:
Traceback (most recent call last):
File "./mythingie.py", line 55, in ?
xml = remote.readlines()
File "/usr/lib/python2.4/socket.py", line 382, in readlines
line = self.readline()
File "/usr/lib/python2.4/socket.py", line 332, in readline
data = self._sock.recv(self._rbufsize)
File "/usr/lib/python2.4/httplib.py", line 460, in read
return self._read_chunked(amt)
File "/usr/lib/python2.4/httplib.py", line 499, in _read_chunked
chunk_left = int(line, 16)
ValueError: invalid literal for int():
I muttered about this earlier today, including finding the bug tracking the problem in pythonistan. However, finding the will not fix bug wasn't satisfying enough...
It turns out you can just have urllib2 lie to the server about what HTTP version it talks, and therefore turn off chunking. Here's my sample code for how to do that:
import httplib
import urllib2
class HTTP10Connection(httplib.HTTPConnection):
"""HTTP10Connection -- a HTTP connection which is forced to ask for HTTP
1.0
"""
_http_vsn_str = 'HTTP/1.0'
class HTTP10Handler(urllib2.HTTPHandler):
"""HTTP10Handler -- don't use HTTP 1.1"""
def http_open(self, req):
return self.do_open(HTTP10Connection, req)
// ...
request = urllib2.Request(feed)
request.add_header('User-Agent', 'mythingie')
opener = urllib2.build_opener(HTTP10Handler())
remote = opener.open(request)
content = remote.readlines()
remote.close()
I hereby declare myself Michael Still, bringer of the gross python hacks.
Tags for this post: python( )
posted at: 22:27 | path: /python | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
15:30: Mikal shared: Iran hacks world media with Photoshop [Great Moments In Journalism]
Its interesting to see that photoshopping news photos for effect isn't just reserved for Hollywood articles I don't care about. Its good to see people doing it get caught.
18:45: Mikal shared: Petrol prices are going up: Yay!
I wonder what percentage of Australian freight uses the rail network, and if rail is cost effective per tonne compared with trucking. Perhaps its finally time to spend some money on a more modern rail network between the major cities?
22:00: Mikal shared: Issue 1205: urllib fail to read URL contents, urllib2 crash Python - Python tracker
I just hit this bug with a python app that is trying to read a new site in Australia. Its quite annoying, and seems to be because of a server bug. Then again, it seems like urllib2 is quite vulnerable to remote servers causing it to throw an exception. Annoying.
Tags for this post: blather( )
posted at: 22:00 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
|
|
|
|
|
 |
|
 |
|
Wed, 09 Jul 2008
|
|
|
|
|
 |
|
 |
|
05:19: Mikal shared: Stanhope's $1b light rail vision - Local News - News - General - The Canberra Times
Awesome. Canberra has needed something better than buses between the towncenters for a while, and light rail seems like a great way to do it. I much prefer trains to buses, and catch a light rail service to work every day when I am in Mountain View.
14:45: Mikal shared: US Airways Dumps In-Flight Movies, Not Enough Passengers Buying $5 Headsets [US Airways]
It seems that US Airways is going out of its way to not be an attractive travel option. Have airlines really forgotten that things like a free coke and a movie during a five hour flight are there to help you pick their airline, and not just another opportunity for the airline to scrape up another two dollars? Look at Virgin America for example -- people pick them because of the great in flight entertainment, and then look at the price. The last two Virgin America flights I have been on have been full.
15:00: Mikal shared: Android Installer simplifies installation on Nokia N810
Its a shame that the N800 doesn't have a cell phone in it. That would make this a lot more useful than just a internet tablet with a fancy web browser. I guess if you want to start developing for android its worth a look though.
15:00: Mikal shared: Angry, Intoxicated 1st Class Passenger Uses Emergency Slide So He Doesn't Have To Wait For Coach [Drunks On A Plane]
Tee hee hee. Admit it, we've all wanted to taze the slow exiters in front of us who have never seen a plane before.
21:15: Mikal shared: Simon Rumble's random thoughts
Simon Rumble has a pretty thin skin for someone who is happy to blog about how other people's blogs are "crap". Its odd given his previous statements that he likes the slightly irrelevant things he finds on planets that he feels the urge to then critise people for those same irrelevant things he used to like. Surely he could have mentioned his filtered RSS feed without making value judgements about what others chose to put on their sites?
23:15: Mikal shared: stillhq.com : Mikal, a geek from Canberra living in Silicon Valley
Hearing about the pope's trip to Sydney next week and the pain it will cause for people working in the CBD made me remember this game that a friend wrote for me a few years ago. Perhaps it will cheer up someone in Sydney.
Tags for this post: blather( )
posted at: 23:15 | path: /blather | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
I've always found python's Universal Feedparser to be a bit hard to work with when using feeds with XML namespaces. Specifically, if you don't care about the stuff in the namespaces then you're fine, but if you want that data it gets a lot harder.
In the past I've had to do some gross hacks. For example this gem is from the MythNetTV code:
# Modify the XML to work around namespace handling bugs in FeedParser
lines = []
re_mediacontent = re.compile('(.*)<media:content([^>]*)/ *>(.*)')
for line in xmllines:
m = re_mediacontent.match(line)
count = 1
while m:
line = '%s<media:wannabe%d>%s</media:wannabe%d>%s' %(m.group(1), count,
m.group(2),
count, m.group(3))
m = re_mediacontent.match(line)
count = count + 1
lines.append(line)
# Parse the modified XML
xml = ''.join(lines)
parser = feedparser.parse(xml)
Which is horrible, but works. This time around the problem is that I am having trouble getting to the gr:annotation tags in my Google reader shared items feed. How annoying.
In the case of the Google reader feed, the problem seems to be that the annotation is presented like this:
<gr:annotation><content type="html">Awesome. Canberra has needed
something better than buses between the towncenters for a while, and light rail
seems like a great way to do it. I much prefer trains to buses, and catch a
light rail service to work every day when I am in Mountain View.
</content><author gr:user-id="09387883873401903052"
gr:profile-id="114835605728492647856"><name>mikal</name>
</author></gr:annotation>
Feedparser can only handle simple elements (not elements that contain other elements). Therefore, this gross hack is required to get this to parse correctly:
simplify_re = re.compile('(.*)<gr:annotation>'
'<content type="html">(.*)</content>'
'<author .*><name>.*</name></author>'
'</gr:annotation>(.*)')
new_lines = []
for line in lines:
m = simplify_re.match(line)
if m:
new_lines.append('%s<gr:annotation>%s</gr:annotation>%s'
%(m.group(1), m.group(2), m.group(3)))
else:
new_lines.append(line)
d = feedparser.parse(''.join(new_lines))
Gross, and fragile, but working. This is cool, because it now means that I can apply more logic in the shared links that end up in my blather feed. I'm thinking of something along the lines of only shared links with an annotation will end up in that feed, and the blather entry will include the annotation. Or something like that.
Tags for this post: python( ) feedparser( )
posted at: 05:22 | path: /python/feedparser | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Tue, 08 Jul 2008
|
|
|
|
|
 |
|
 |
|
Mon, 07 Jul 2008
|
|
|
|
|
 |
|
 |
|

ISBN: 9994607332 LibraryThing
| This book is another Stainless Steel Rat prequel, although it was written well after the original book. This book takes up from where A Stainless Steel Rat is Born ends -- with Jim arrested (of course), on a surprisingly low tech planet. Jim must then escape, and make his way in the universe once more. He has some unfinished business with some previous acquaintances if he finds a way as well...
Harrison's writing is very easy to read, especially because his science fiction books always seem to require a good dose of suspension of disbelief, although some need more disbelief than others, so I read this book as a break from my quite a lot of Asimov. The book is 300 pages, but I managed to knock it over in a day, which I guess means I found it engaging.
I liked this book. Its silly, and I'm not a better person for having read it, but it was entertaining.
Tags for this post: book( ) Harry_Harrison( ) |
posted at: 03:20 | path: /book/Harry_Harrison | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sun, 06 Jul 2008
|
|
|
|
|
 |
|
 |
|
I have a fancy Logitech 2 megapixel auto focusing webcam which uses the UVC USB class. The camera is well supported by the linux kernel (via the uvcvideo) module, but for some reason there still seem to be very few video4linux2 user space programs out there. Not even my own ancient code for video4linux works. So, before I have to go and port my code to v4l2, does anyone have a recommendation for a command line tool which will capture single frames from a UVC webcam for me?
Tags for this post: linux( )
posted at: 23:55 | path: /linux | permanent link to this entry
|
|
|
|
|
 |
|
 |
|
Sat, 05 Jul 2008
|
|
|
|
|
|