stillhq.com : Mikal, a geek from Canberra living in Silicon Valley (no blather posts) http://www.stillhq.com The life, times, travel and software of Michael Still (no blather posts) en Copyright (c) Michael Still 2000 - 2006 blosxom simplerss20 v20050208hh 180 http://blogs.law.harvard.edu/tech/rss Foundation and Earth /book/Isaac_Asimov Sat, 22 Nov 2008 12:05:00 GMT <table width=100%><tr><td valign=top><img src="/book/Isaac_Asimov/Foundation_and_Earth.cover.jpg"><br/><br/><br/>ISBN: 0586071105<br/><a href="http://www.librarything.com/isbn/0586071105">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0586071105');</script></td><td valign=top>I really like how Asimov wraps up the <a href="http://www.stillhq.com/book/Isaac_Asimov/Foundation_Series.html">extended Foundation series</a>. Specifically, I'd previously complained while reading <a href="http://www.stillhq.com/book/Isaac_Asimov/Pebble_In_The_Sky.html">Pebble in the Sky</a> that it was hard to believe that everyone simply forgets that they originated on Earth -- this book and <a href="http://www.stillhq.com/book/Isaac_Asimov/Foundations_Edge.html">Foundation's Edge</a> go a long way to resolving that annoyance for me. Its also good to find out what happened to Aurora and Solaria finally -- especially given the Solaria mystery has been bothering me since <a href="http://www.stillhq.com/book/Isaac_Asimov/Robots_and_Empire.html">Robots and Empire</a>. <br/><br/> Speaking just about this book so a moment, I do find the use of sex as a plot development method quite odd. There are three examples that bother me -- when Bliss is slipped through interstellar customs with the explanation that she's just a whore and therefore not important enough to make an issue of; the second is when Trevize basically shags his way out of an awkward situation, despite the other protagonist being quite hostile initially; and finally where he bonks someone on a rural world. I find all three of those incidents a little out of place with the rest of the book, and in fact the rest of the series. Other authors use those kinds of plot elements, but they seem out of place in Asimov's work. <br/><br/> Overall, I loved this book and it was a good conclusion to the series. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Isaac_Asimov/Foundation_and_Earth&tag=book&format=.png" border="0" alt="S"></a>) Isaac_Asimov(<a href="http://www.stillhq.com/Isaac_Asimov"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Isaac_Asimov/Foundation_and_Earth&tag=Isaac_Asimov&format=.png" border="0" alt="S"></a>) </i></td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/Isaac_Asimov/Foundation_and_Earth.commentform.html">Comment</a> http://www.stillhq.com/book/Isaac_Asimov/Foundation_and_Earth.html http://www.stillhq.com/book/Isaac_Asimov/Foundation_and_Earth.html Foundation's Edge /book/Isaac_Asimov Mon, 17 Nov 2008 18:40:00 GMT <table width=100%><tr><td valign=top><img src="/book/Isaac_Asimov/Foundations_Edge.cover.jpg"><br/><br/><br/>ISBN: 0586058397<br/><a href="http://www.librarything.com/isbn/0586058397">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0586058397');</script></td><td valign=top>I'm back to reading <a href="http://www.stillhq.com/book/Isaac_Asimov/Foundation_Series.html">Foundation Series</a> books actually written by <a href="http://www.stillhq.com/book/Isaac_Asimov/">Isaac Asimov</a>. 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. <br/><br/> 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. <br/><br/> This book has minor inconsistencies with the story presented in the second foundation trilogy (<a href="http://www.stillhq.com/book/Gregory_Benford/Foundations_Fear.html">Foundation's Fear</a>, <a href="http://www.stillhq.com/book/Greg_Bear/Foundation_and_Chaos.html">Foundation and Chaos</a> and <a href="http://www.stillhq.com/book/David_Brin/Foundations_Triumph.html">Foundation's Triumph</a>), 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. <br/><br/> This is a good read, and I enjoyed it greatly. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Isaac_Asimov/Foundations_Edge&tag=book&format=.png" border="0" alt="S"></a>) Isaac_Asimov(<a href="http://www.stillhq.com/Isaac_Asimov"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Isaac_Asimov/Foundations_Edge&tag=Isaac_Asimov&format=.png" border="0" alt="S"></a>) </i></td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/Isaac_Asimov/Foundations_Edge.commentform.html">Comment</a> http://www.stillhq.com/book/Isaac_Asimov/Foundations_Edge.html http://www.stillhq.com/book/Isaac_Asimov/Foundations_Edge.html Automatically creating folders for mailing lists /procmail Mon, 17 Nov 2008 14:59:00 GMT 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. <br/><br/> <ul><pre> ########################################################################## # Mailman :0: * List-Id:.*<\/[^>]* $MATCH :0: * List-Post: <mailto:\/[^>]* $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 </pre></ul> <br/><br/><i>Tags for this post: procmail(<a href="http://www.stillhq.com/procmail"><img src="http://www.stillhq.com/tagicon.cgi?post=/procmail/000001&tag=procmail&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/procmail/000001.commentform.html">Comment</a> http://www.stillhq.com/procmail/000001.html http://www.stillhq.com/procmail/000001.html Wanted: someone to edit / review some MythTV stuff for me /mythtv Sun, 16 Nov 2008 19:00:00 GMT 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 <a href="mailto:mikal@stillhq.com">drop me a line</a>. <br/><br/><i>Tags for this post: mythtv(<a href="http://www.stillhq.com/mythtv"><img src="http://www.stillhq.com/tagicon.cgi?post=/mythtv/000022&tag=mythtv&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/mythtv/000022.commentform.html">Comment</a> http://www.stillhq.com/mythtv/000022.html http://www.stillhq.com/mythtv/000022.html Andrew and Matthew turn 2 and 3 /events/pictures/20050314 Sat, 15 Nov 2008 21:34:00 GMT Wow, these pictures are really old. I'm in the process of going through my photo collection and regenerating all the associated HTML. In the process I found these pictures of Andrew and Matthew's shared birthday party from when they turned 3 and 2 respectively. Heck, its only three years late, so I guess I should put them online. <br/><br/> Looking back, I think I forgot to put these online because about that time I was run off my feet with LCA 2005. That's my excuse and I'm sticking to it. <br/><br/> <a href="http://images.stillhq.com/events/pictures/20050314//image1.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_toddler_mikal-small-DSC01160.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image2.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_toddler-small-DSC01161.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image3.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_toddler_mikal-small-DSC01162.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image4.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_toddler_birthday_cake_dinosaur-small-DSC01173.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image5.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_toddler_allister-small-DSC01175.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image6.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_toddler-small-DSC01176.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image7.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_toddler_birthday_cake_dinosaur-small-DSC01177.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image8.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01179.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image9.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01181.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image10.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01182.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image11.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01183.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image12.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01185.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image13.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01188.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image14.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01189.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image15.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01191.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image16.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01192.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image17.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01195.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image18.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake_dinosaur-small-DSC01197.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image19.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake-small-DSC01199.JPG"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20050314//image20.html"><img src="http://images.stillhq.com/events/pictures/20050314//andrew_matthew_catherine_toddler_birthday_cake-small-DSC01200.JPG"></a>&nbsp; <br/><br/><a href="http://images.stillhq.com/events/pictures/20050314/thumbnails.html">See more thumbnails</a> <br/><br/><i>Tags for this post: events(<a href="http://www.stillhq.com/events"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20050314/000001&tag=events&format=.png" border="0" alt="S"></a>) pictures(<a href="http://www.stillhq.com/pictures"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20050314/000001&tag=pictures&format=.png" border="0" alt="S"></a>) 20050314(<a href="http://www.stillhq.com/20050314"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20050314/000001&tag=20050314&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/events/pictures/20050314/000001.commentform.html">Comment</a> http://www.stillhq.com/events/pictures/20050314/000001.html http://www.stillhq.com/events/pictures/20050314/000001.html The Riftwar Series /book/Raymond_E_Feist Sat, 15 Nov 2008 14:39:00 GMT This series follows to young kids who grow up in a rural castle on the edge of an empire. Pug ends up being the greatest Magician to ever live, and Thomas ends up being merged with an ancient being of massive power. Its a good series, even if people accuse it of being steeped in cliche. <br/><br/> <table> <tr><td><b>Year</b></td><td><b>Title</b></td></tr> <tr bgcolor="#DDDDDD"><td>1982</td><td>Magician (later sold as <a href="http://www.stillhq.com/book/Raymond_E_Feist/Magician_Apprentice.html">Magician: Apprentice</a> and <a href="http://www.stillhq.com/book/Raymond_E_Feist/Magician_Master.html">Magician: Master</a>)</td></tr> <tr><td>1985</td><td><a href="http://www.stillhq.com/book/Raymond_E_Feist/Silverthorn.html">Silverthorn</a></td></tr> <tr bgcolor="#DDDDDD"><td>1986</td><td><a href="http://www.stillhq.com/book/Raymond_E_Feist/A_Darkness_At_Sethanon.html">A Darkness at Sethanon</a></td></tr> </table> <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Raymond_E_Feist/Riftwar_Series&tag=book&format=.png" border="0" alt="S"></a>) Raymond_E_Feist(<a href="http://www.stillhq.com/Raymond_E_Feist"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Raymond_E_Feist/Riftwar_Series&tag=Raymond_E_Feist&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/book/Raymond_E_Feist/Riftwar_Series.commentform.html">Comment</a> http://www.stillhq.com/book/Raymond_E_Feist/Riftwar_Series.html http://www.stillhq.com/book/Raymond_E_Feist/Riftwar_Series.html A Darkness at Sethanon /book/Raymond_E_Feist Sat, 15 Nov 2008 14:33:00 GMT <table width=100%><tr><td valign=top><img src="/book/Raymond_E_Feist/A_Darkness_At_Sethanon.cover.jpg"><br/><br/><br/>ISBN: 0553263285<br/><a href="http://www.librarything.com/isbn/0553263285">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0553263285');</script></td><td valign=top>This book took longer to read that I would have liked, because I have been busy with other things. Its a good book though, and a fine conclusion to the <a href="http://www.stillhq.com/book/Raymond_E_Feist/Riftwar_Series.html">Riftwar Series</a>. I liked this book a lot, although I do think that Magician (<a href="http://www.stillhq.com/book/Raymond_E_Feist/Magician_Apprentice.html">Apprentice</a> and <a href="http://www.stillhq.com/book/Raymond_E_Feist/Magician_Master.html">Master</a>) was a better book. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Raymond_E_Feist/A_Darkness_At_Sethanon&tag=book&format=.png" border="0" alt="S"></a>) Raymond_E_Feist(<a href="http://www.stillhq.com/Raymond_E_Feist"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Raymond_E_Feist/A_Darkness_At_Sethanon&tag=Raymond_E_Feist&format=.png" border="0" alt="S"></a>) </i> </td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/Raymond_E_Feist/A_Darkness_At_Sethanon.commentform.html">Comment</a> http://www.stillhq.com/book/Raymond_E_Feist/A_Darkness_At_Sethanon.html http://www.stillhq.com/book/Raymond_E_Feist/A_Darkness_At_Sethanon.html On a memeomatic /meme Fri, 14 Nov 2008 22:04:00 GMT I'm on vacation today, and so I had a bit more time that usual to just think. So, when <a href="http://bethesignal.org/blog/2008/11/14/eumemics/">Jeff posited a meme detector for planets</a>, I wrote one. Except its of course never just that simple. My initial implementation only took a few minutes to write, but sucked. <br/><br/> 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. <br/><br/> That's actually a reasonable algorithm. Its big advantage is that it only has to take one pass through the posts, which means its <a href="http://en.wikipedia.org/wiki/Big_O_notation">order</a> 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. <br/><br/> Here's some sample output from that version: <br/><br/> <ul> Found memes: <li>"the cool book or the intellectual one pick the closest": <a href="http://www.noogz.net/website/blog/20081114-Meme42.html">Chris Neugebauer: Meme #42</a>, <a href="http://arctanx.id.au/blog/?p=57">Thomas Karpiniec: The Book Thing</a>, <a href="http://jeremy.visser.name/2008/11/14/book-meme/">Jeremy Visser: Book meme</a>, <a href="http://www.michaeldavies.org/weblog/tech/books/book-meme.html">Michael Davies: Meme #42</a>, <a href="http://jamespurser.com.au/blog/The_Meme_of_the_Book">James Purser: The Meme of the Book</a>, <a href="http://jon.oxer.com.au/blog/id/292">Jon Oxer: Phrase from nearest book</a>, <a href="http://noisymime.org/blog/?p=66">Josh Stewart: random book content</a>, <a href="http://www.flamingspork.com/blog/2008/11/12/phrase-from-nearest-book/">Stewart Smith: phrase from nearest book</a> <li>"find the fifth sentence post the text of the sentence": <a href="http://kattekrab.livejournal.com/50475.html">Donna Benjamin: meme-ege</a>, <a href="http://www.noogz.net/website/blog/20081114-Meme42.html">Chris Neugebauer: Meme #42</a>, <a href="http://arctanx.id.au/blog/?p=57">Thomas Karpiniec: The Book Thing</a>, <a href="http://jeremy.visser.name/2008/11/14/book-meme/">Jeremy Visser: Book meme</a>, <a href="http://www.michaeldavies.org/weblog/tech/books/book-meme.html">Michael Davies: Meme #42</a>, <a href="http://jamespurser.com.au/blog/The_Meme_of_the_Book">James Purser: The Meme of the Book</a>, <a href="http://www.cafuego.net/2008/11/14/blog-meme-42">Peter Lieverdink: blog meme #42</a>, <a href="http://jon.oxer.com.au/blog/id/292">Jon Oxer: Phrase from nearest book</a>, <a href="http://noisymime.org/blog/?p=66">Josh Stewart: random book content</a>, <a href="http://www.flamingspork.com/blog/2008/11/12/phrase-from-nearest-book/">Stewart Smith: phrase from nearest book</a> <li>"journal along with these instructions dont dig for your favorite": <a href="http://jeremy.visser.name/2008/11/14/book-meme/">Jeremy Visser: Book meme</a>, <a href="http://www.michaeldavies.org/weblog/tech/books/book-meme.html">Michael Davies: Meme #42</a>, <a href="http://jamespurser.com.au/blog/The_Meme_of_the_Book">James Purser: The Meme of the Book</a>, <a href="http://www.cafuego.net/2008/11/14/blog-meme-42">Peter Lieverdink: blog meme #42</a>, <a href="http://jon.oxer.com.au/blog/id/292">Jon Oxer: Phrase from nearest book</a>, <a href="http://noisymime.org/blog/?p=66">Josh Stewart: random book content</a>, <a href="http://www.flamingspork.com/blog/2008/11/12/phrase-from-nearest-book/">Stewart Smith: phrase from nearest book</a> <li>"grab the nearest book open it to page 56 find": <a href="http://www.noogz.net/website/blog/20081114-Meme42.html">Chris Neugebauer: Meme #42</a>, <a href="http://arctanx.id.au/blog/?p=57">Thomas Karpiniec: The Book Thing</a>, <a href="http://jeremy.visser.name/2008/11/14/book-meme/">Jeremy Visser: Book meme</a>, <a href="http://www.michaeldavies.org/weblog/tech/books/book-meme.html">Michael Davies: Meme #42</a>, <a href="http://jamespurser.com.au/blog/The_Meme_of_the_Book">James Purser: The Meme of the Book</a>, <a href="http://www.cafuego.net/2008/11/14/blog-meme-42">Peter Lieverdink: blog meme #42</a>, <a href="http://jon.oxer.com.au/blog/id/292">Jon Oxer: Phrase from nearest book</a>, <a href="http://noisymime.org/blog/?p=66">Josh Stewart: random book content</a>, <a href="http://www.flamingspork.com/blog/2008/11/12/phrase-from-nearest-book/">Stewart Smith: phrase from nearest book</a> mi </ul> <br/><br/> 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. <br/><br/> 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: <br/><br/> <div align=center><i>Given a list of strings, find substrings repeated between the strings, and return a list of the substrings and the strings containing them</i>.</div> <br/><br/> 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. <br/><br/> 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. <br/><br/> 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. <br/><br/> You can see output from memeomatic in <a href="http://www.stillhq.com/blather/20081114.html">this blather post for today</a>. 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). <br/><br/> My code: <br/><br/> <ul><pre> 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('&lt;[^&gt;]*&gt;', '', 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]) &gt; 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]) &lt; 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('&lt;a href="%s"&gt;%s&lt;/a&gt;' %(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) &gt; 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('&lt;a href="%s"&gt;%s&lt;/a&gt;' %(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() </pre></ul> <br/><br/> 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. <br/><br/><i>Tags for this post: meme(<a href="http://www.stillhq.com/meme"><img src="http://www.stillhq.com/tagicon.cgi?post=/meme/000002&tag=meme&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/meme/000002.commentform.html">Comment</a> http://www.stillhq.com/meme/000002.html http://www.stillhq.com/meme/000002.html It seems planet is a bit too trusting with dates? /diary Fri, 14 Nov 2008 21:55:00 GMT It seems that <a href="http://www.planetplanet.org">planet</a> 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. <br/><br/> You can see an example of what I'm talking about at <a href="http://planet.linux.org.au">Planet Linux Australia</a>, where some forward dated posts sit at the top of the page... <br/><br/><i>Tags for this post: blog(<a href="http://www.stillhq.com/diary"><img src="http://www.stillhq.com/tagicon.cgi?post=/diary/001105&tag=blog&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/diary/001105.commentform.html">Comment</a> http://www.stillhq.com/diary/001105.html http://www.stillhq.com/diary/001105.html Book meme de jour /meme Fri, 14 Nov 2008 21:29:00 GMT I don't normally get involved in this whole meme thing, but I want to test memeomatic some more. So, here goes... <br/><br/> Instructions: <ul> <li>Grab the nearest book.</li> <li>Open it to page 56.</li> <li>Find the fifth sentence.</li> <li>Post the text of the sentence in your journal along with these instructions.</li> <li>Don't dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.</li> </ul> <br/><br/> So, I'm currently reading <i>A Darkness at Sethanon</i>, which means its close to hand. The sentence is "They are correct as written, Commander." <br/><br/><i>Tags for this post: meme(<a href="http://www.stillhq.com/meme"><img src="http://www.stillhq.com/tagicon.cgi?post=/meme/000001&tag=meme&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/meme/000001.commentform.html">Comment</a> http://www.stillhq.com/meme/000001.html http://www.stillhq.com/meme/000001.html Bypassing Australia's imminent internet filter /diary Thu, 13 Nov 2008 21:25:00 GMT <a href="http://weblog.leapster.org/archives/122-How-to-bypass-Australias-forthcoming-internet-filter..html">Paul has thoughts on how to avoid Rudd's internet filter</a>. 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. <br/><br/><i>Tags for this post: blog(<a href="http://www.stillhq.com/diary"><img src="http://www.stillhq.com/tagicon.cgi?post=/diary/001104&tag=blog&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/diary/001104.commentform.html">Comment</a> http://www.stillhq.com/diary/001104.html http://www.stillhq.com/diary/001104.html Another dynamic element to the site /site Thu, 13 Nov 2008 19:55:00 GMT 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. <br/><br/> Oh, and this is post 3,000 on this site. <br/><br/><i>Tags for this post: site(<a href="http://www.stillhq.com/site"><img src="http://www.stillhq.com/tagicon.cgi?post=/site/000103&tag=site&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/site/000103.commentform.html">Comment</a> http://www.stillhq.com/site/000103.html http://www.stillhq.com/site/000103.html irtrans remote control stops working /mythtv Tue, 11 Nov 2008 19:04:00 GMT 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. <br/><br/> When I run the irserver command in a terminal so I can see the output, I get this: <br/><br/> <ul><pre> # ./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 </pre></ul> <br/><br/> 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. <br/><br/> <i>Update</i>: of course, disassembling the PC and reseating all the cables fixed the problem. I wonder if it is temperature related? <br/><br/><i>Tags for this post: mythtv(<a href="http://www.stillhq.com/mythtv"><img src="http://www.stillhq.com/tagicon.cgi?post=/mythtv/000021&tag=mythtv&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/mythtv/000021.commentform.html">Comment</a> http://www.stillhq.com/mythtv/000021.html http://www.stillhq.com/mythtv/000021.html Finding locking deadlocks in python /python Tue, 11 Nov 2008 15:46:00 GMT 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. <br/><br/> <ul><pre> 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() </pre></ul> <br/><br/> 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. <br/><br/><i>Tags for this post: python(<a href="http://www.stillhq.com/python"><img src="http://www.stillhq.com/tagicon.cgi?post=/python/000006&tag=python&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/python/000006.commentform.html">Comment</a> http://www.stillhq.com/python/000006.html http://www.stillhq.com/python/000006.html Slight site hickup /site Sun, 09 Nov 2008 18:52:00 GMT 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. <br/><br/><i>Tags for this post: site(<a href="http://www.stillhq.com/site"><img src="http://www.stillhq.com/tagicon.cgi?post=/site/000102&tag=site&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/site/000102.commentform.html">Comment</a> http://www.stillhq.com/site/000102.html http://www.stillhq.com/site/000102.html Bill the Galactic Hero on the Planet of Bottled Brains /book/Robert_Sheckley Sun, 09 Nov 2008 13:39:00 GMT <table width=100%><tr><td valign=top><img src="/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains.cover.jpg"><br/><br/><br/>ISBN: 0380756625<br/><a href="http://www.librarything.com/isbn/0380756625">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0380756625');</script></td><td valign=top>(Edited by <a href="http://www.stillhq.com/book/Harry_Harrison/">Harry Harrison</a>.) This book started off better than <a href="http://www.stillhq.com/book/Harry_Harrison/Bill_The_Galactic_Hero_The_Planet_of_the_Robot_Slaves.html">Planet of the Robot Slaves</a>, but I found the random Star Trek and Star Wars rip offs in the middle of the book intensely annoying. This isn't so much a satire it is a disjointed list of ideas. I'm disappointed to be honest. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains&tag=book&format=.png" border="0" alt="S"></a>) Robert_Sheckley(<a href="http://www.stillhq.com/Robert_Sheckley"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains&tag=Robert_Sheckley&format=.png" border="0" alt="S"></a>) </i></td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains.commentform.html">Comment</a> http://www.stillhq.com/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains.html http://www.stillhq.com/book/Robert_Sheckley/Bill_The_Galactic_Hero_On_The_Planet_of_the_Bottled_Brains.html James and Jeanette's wedding down the beach /events/pictures/20080531-sjrwedding Sun, 09 Nov 2008 11:45:00 GMT I've been uber slack about putting pictures of James and Jeanette's wedding online. Given their wedding was ages ago, and the reception last weekend, it seems like I am running out of excuses. <br/><br/> <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image1.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/sjr-small-img_8564.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image2.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/sjr-small-img_8581.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image3.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/sjr-small-img_8582.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image4.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/sjr-small-img_8585.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image5.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/kynan-small-img_8591.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image6.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/kynan-small-img_8592.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image7.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/muncus-small-img_8596.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image8.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/muncus-small-img_8597.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image9.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/nav-small-img_8598.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image10.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/muncus-small-img_8607.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image11.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/ring_sjr-small-img_8626.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image12.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/ring_sjr-small-img_8627.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image13.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach-small-img_8640.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image14.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_sjr_ring-small-img_8645.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image15.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_jeanette-small-img_8647.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image16.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_jeanette-small-img_8657.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image17.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_jeanette-small-img_8658.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image18.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_sjr-small-img_8664.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image19.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_sjr-small-img_8667.jpg"></a>&nbsp; <a href="http://images.stillhq.com/events/pictures/20080531-sjrwedding/image20.html"><img src="http://images.stillhq.com/events/pictures/20080531-sjrwedding/pebble_beach_nav-small-img_8669.jpg"></a>&nbsp; <br/><br/><a href="http://images.stillhq.com/events/pictures/20080531-sjrweddingthumbnails.html">See more thumbnails</a> <br/><br/><i>Tags for this post: events(<a href="http://www.stillhq.com/events"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20080531-sjrwedding/000001&tag=events&format=.png" border="0" alt="S"></a>) pictures(<a href="http://www.stillhq.com/pictures"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20080531-sjrwedding/000001&tag=pictures&format=.png" border="0" alt="S"></a>) 20080531-sjrwedding(<a href="http://www.stillhq.com/20080531-sjrwedding"><img src="http://www.stillhq.com/tagicon.cgi?post=/events/pictures/20080531-sjrwedding/000001&tag=20080531-sjrwedding&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/events/pictures/20080531-sjrwedding/000001.commentform.html">Comment</a> http://www.stillhq.com/events/pictures/20080531-sjrwedding/000001.html http://www.stillhq.com/events/pictures/20080531-sjrwedding/000001.html Foundation's Triumph /book/David_Brin Fri, 07 Nov 2008 21:04:00 GMT <table width=100%><tr><td valign=top><img src="/book/David_Brin/Foundations_Triumph.cover.jpg"><br/><br/><br/>ISBN: 0061056391<br/><a href="http://www.librarything.com/isbn/0061056391">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0061056391');</script></td><td valign=top>This book is pretty good. I'd say its the best of the three Second Foundation Trilogy books in fact. Unfortunately, you need to read the other two in order for this one to make any sense, which is a shame because <a href="http://www.stillhq.com/book/Gregory_Benford/Foundations_Fear.html">the first one sucked</a>, and the <a href=http://www.stillhq.com/book/Greg_Bear/Foundation_and_Chaos.html">second one was ok</a>. <br/><br/> A lot of loose ends get cleaned up in this book. <a href="http://www.stillhq.com/book/Isaac_Asimov/Robots_and_Empire.html">Why did Earth get abandoned</a>? <a href="http://www.stillhq.com/book/Isaac_Asimov/Pebble_In_The_Sky.html">Why did everyone forget their history</a>? Why is Trantor built much like the <a href="http://www.stillhq.com/book/Isaac_Asimov/Naked_Sun.html">cities in the Naked Sun</a>? Why are there all those habitable worlds for the galactic empire to reside on? It seems odd that there would be 25 million habitable worlds out there. There are other examples as well, but I wont bore you with them all. <br/><br/> Another good bit of this book is the time line of all Asimov Foundation stories at the back of the book. I am sure it would have been useful to know about that earlier. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/David_Brin/Foundations_Triumph&tag=book&format=.png" border="0" alt="S"></a>) David_Brin(<a href="http://www.stillhq.com/David_Brin"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/David_Brin/Foundations_Triumph&tag=David_Brin&format=.png" border="0" alt="S"></a>) </i></td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/David_Brin/Foundations_Triumph.commentform.html">Comment</a> http://www.stillhq.com/book/David_Brin/Foundations_Triumph.html http://www.stillhq.com/book/David_Brin/Foundations_Triumph.html Belgarath the Sorcerer /book/David_Eddings Tue, 04 Nov 2008 22:52:00 GMT <table width=100%><tr><td valign=top><img src="/book/David_Eddings/Belgarath_the_Sorcerer.cover.jpg"><br/><br/><br/>ISBN: 0345403959<br/><a href="http://www.librarything.com/isbn/0345403959">LibraryThing</a><br/><script type="text/javascript">GBS_insertPreviewButtonPopup('ISBN:0345403959');</script></td><td valign=top>This book is a follow on from <a href="http://www.stillhq.com/book/David_Eddings/Belgariad.html">The Belgariad</a> and <a href="http://www.stillhq.com/book/David_Eddings/Malloreon.html">The Malloreon</a> written from the perspective of one of the protagonists in those two series -- Belgarath the Sorcerer. This book has quite a different style from the others. It is written in the first person as Belgarath's personal memoir. The book is really long at over 700 pages, and covers a 6,000 year (ish) period. That means that the book tends to skip around and over some things at a very high level. That's probably a good thing, as it stops you from getting bogged down in boring detail you don't care about. <br/><br/> One problem with this book is that to people who have read the previous series, this is all old territory. You totally know what is about to happen, and that makes it a lot less fun to read. I'm also not sure I'm a big fan of the first person style either. However, I did enjoy this book more than some of the others I have read recently, despite it not being Eddings' best work. <br/><br/><i>Tags for this post: book(<a href="http://www.stillhq.com/book"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/David_Eddings/Belgarath_the_Sorcerer&tag=book&format=.png" border="0" alt="S"></a>) David_Eddings(<a href="http://www.stillhq.com/David_Eddings"><img src="http://www.stillhq.com/tagicon.cgi?post=/book/David_Eddings/Belgarath_the_Sorcerer&tag=David_Eddings&format=.png" border="0" alt="S"></a>) </i></td></tr></table> <br/><br/> <a href="http://www.stillhq.com/book/David_Eddings/Belgarath_the_Sorcerer.commentform.html">Comment</a> http://www.stillhq.com/book/David_Eddings/Belgarath_the_Sorcerer.html http://www.stillhq.com/book/David_Eddings/Belgarath_the_Sorcerer.html Adium crashes on launch /macintosh/osx Mon, 03 Nov 2008 17:16:00 GMT Dear Mac Nerds, <br/><br/> Adium upgraded itself this morning, and now crashes on launch. This still happens after rebooting the machine. I'm a MacOS n00b, and have no idea how to debug what is happening. Please be with the helping? <br/><br/><i>Tags for this post: macintosh(<a href="http://www.stillhq.com/macintosh"><img src="http://www.stillhq.com/tagicon.cgi?post=/macintosh/osx/000009&tag=macintosh&format=.png" border="0" alt="S"></a>) osx(<a href="http://www.stillhq.com/osx"><img src="http://www.stillhq.com/tagicon.cgi?post=/macintosh/osx/000009&tag=osx&format=.png" border="0" alt="S"></a>) </i> <br/><br/> <a href="http://www.stillhq.com/macintosh/osx/000009.commentform.html">Comment</a> http://www.stillhq.com/macintosh/osx/000009.html http://www.stillhq.com/macintosh/osx/000009.html