Monday, December 15, 2008

Hypy 0.8.1 - Get your search on here.

Hypy is a fulltext search interface for Python applications. Use it to index and search your documents from Python code. Hypy is based on the estraiernative bindings by Yusuke Yoshida.
  • Fast, scalable
  • Perfect recall ratio by N-gram method
  • High precision by hybrid mechanism of N-gram and morphological analyzer
  • Phrase search, regular expressions, attribute search (including numeric and date comparisons), and similarity search
  • Simple and powerful API
Homepage, downloads, everything, etc.:

This is of course on pypi and can be installed with easy_install or pip. You will need Hyper Estraier installed to use it.

Release Version 0.8.1 (2008.12.15)

* Initial Public Opensourcing.


Friday, December 12, 2008

Sometimes good User Experience means ignoring sanity

Found on Launchpad's "register a project" page, this was one of four FAQ-ish bullet points:
  • Requesting Ubuntu CDs is done at
    (this may sound weird to you, but a lot of people register projects asking for CDs!)
I think this is a practical solution to a real, if insane, problem.  Nice touch on the button, too.

Wednesday, November 12, 2008

"phrase from nearest book" meme

From Agile Testing

The meme:
  • 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.
I am about to make a parody of myself, but this is honest to god page 56 sentence 5 of the closest book to me (apart from a pamphlet on health insurance which was not 56 pages long).

"Magical weapons and other spells (such as lightning bolt) inflict normal damage on him."

Yes, I am reading from the D&D Rules Cyclopedia, a collection of all the Red box/Blue box D&D rules, published 1991.

Sunday, November 09, 2008

Update to dpkg-origins installed package lister

Fixed a serious bug with dpkg-origins (see this post about dpkg-origins).  I forgot to have it check for status 'rc' packages.  These are packages that were installed and then removed.

It now handles them correctly.  (That's what I get for testing on a brand-spanking-new installation of Ubuntu.)

I've also put a version string into it: 0.9, because I'm actually using it myself in my backup plan now, which makes it near production ready!  Go get the dpkg-origins script.

Tuesday, November 04, 2008

U.S. Citizens: Go Make History

Also, can I just say I'm really glad my polling place still uses black felt-tip pens and an optical scanner?  I trust these things way more.  No hanging chads, very nice paper trail.

That is all.

Sunday, November 02, 2008

Ubuntu backup tip: save your package selections, including third-party, for later recovery

Today I wrote a little Python script which will pull a list of all of your installed packages, and then group them by Canonical-supplied, third-party PPA supplied, and manually installed .deb files.  This makes it a snap to automatically restore your package list if your system takes a dump, and even quickly put back your PPAs and manual debs as you go.

It requires python-twisted and python-apt installed.  Here is the script: dpkg-origins.

Recommended usage: Add this command to a script inside /etc/cron.daily:
  dpkg-origins | mail -s "Package selections for `hostname -s` as of `date`"

When calamity strikes and you need to restore, you can pipe this file directly:

  cat selections.txt | sudo dpkg --set-selections && apt-get -u dselect-upgrade

This will begin installing all of the Canonical-supplied packages in selections.txt.  All other packages are commented out, but the file itself contains instructions for restoring your PPA's; then you uncomment some more packages and run the above again.  Finally, at the very top of the file, you will find a commented-out list of the packages (and versions) which were installed directly from a .deb file; manually download and install those.

Friday, October 31, 2008

Hiring in Portland and Fresno

Decipher is hiring web developers.  Decipher is also paying people who know web developers - up to $1000 just for knowing someone who needs a job.  Details below.

We're looking for a manual tester and test engineers in Fresno, CA.
We're looking for web designers, people experienced with design and prototyping on the web, and software engineers in Portland, OR.
If you are one of these people, send us your resume!  If you know one of these people, send us their resume!  We are paying referral bonuses of $250 if we hire your referral, and an additional $750 if they stay at Decipher for 6 months!

Wednesday, October 15, 2008

This is that part in the painting where God's finger touches Adam's

I've been making very exciting progress on Goonmill lately.  The user interface has undergone a complete overhaul, and I undertook a lot of interesting challenges in getting a precise, cross-browser layout with a maximum focus on GM usability.

I've gotten it up to the point where I can use it myself by maintaing (with Tomboy) a Dogfood list, a list of everything I've noticed which would annoy me too much to use it.  As I go through and fix things, I would add to the list, so the list continually gets longer but the things remaining to fix still get shorter over time because I fix more than I find.

As of this writing, that list is 39 items, with 33 crossed off.

I really feel like Goonmill is going to become a useful resource to other people, and I'm looking forward to doing some blog posts or maybe even some kind of lightning talk somewhere on the application of Athena, Twisted and Prototype to a real, modern-look-and-feel web application with a purpose.

Monday, October 13, 2008

Goonmill - still seeking art - samples here!

I mentioned this earlier: I am seeking samples of art for monsters in the System Reference Document for D&D 3.5. These must be openly-licensed, i.e. CC-BY, public domain or other non-restrictive license.  (It must allow derivatives and commercial uses.)  The purpose is to pile the artwork up until every monster in the books has free token art to go with it.  This will make it much easier to include with Virtual Gaming Tables, RPG management software, and the like, but I want it free enough that people can think of their own uses, and not have to worry about whether they are breaking copyright law.  Publish it with your module PDF?  Make a Flash game with it?  I don't see why not.

I am publishing thumbnails of what I have so far, with a complete table of all the monsters.  I need images of 500+ of these monsters, but I have 165 covered so far!  A lot of them would be easy because there is so much repetition; for example, if I had one decent CC-licensed dragon, I could just recolor and reposition him and cover about 95 dragons in that list (not an exaggeration).

There are 110 unique, freely-licensed images in the index below, and (because of duplication) they cover about 165 of the monster entries.

The sample page of my freely-licensed Monster Art.

At the top of the page are thumbnails of all the images I have, culled from  Below that is a table with all the monsters in the SRD, next to the filename of an image if it has one.  My top priority is getting the table filled; second priority is getting higher quality images and more variety for some of them.  Third priority is getting alternate images for as many as possible, so that a creator has a choice of which token to use.

I will release the full archive (full-sized images) as soon as I get off my lazy butt and go get the attributions i need for some of those 110 images.  While they are all freely licensed, some of them do require attribution, and I owe it to the creators to at least provide that before I publish fully.

The reason I am picking this back up again is the Encounter-a-Day blog is throwing around the idea of a monster manual wiki (which I think should be named the Mob Manual), and I have offered this index to help out.

Monday, October 06, 2008

Prism on Ubuntu

I downloaded and started playing with Prism.  And it actually worked, which is cool.  There were only two setup steps:
  1. Unpack the tarball in /usr/local/prism, or /opt/prism or something.
  2. Symlink /usr/lib/firefox/plugins <- /usr/local/prism/plugins so Flash etc. works.
Unsurprisingly, there are still some problems.
  • The Refractor for Prism extension doesn't work very well.  Likely this is a problem with Refractor and not Prism, but what it does is it creates a shortcut icon on the desktop.  The shortcut runs your system Firefox, i.e. the same executable you are using Refractor for.  It doesn't ask for the location of the prism executable. It writes the webapp config to the wrong place, and it puts the wrong options into the Launcher.  That's kinda useless by itself.
  • Running /usr/local/prism/prism and then typing in a URL did create a working shortcut, but unlike Refractor, it didn't automatically grab an icon from the website.  You can try, instead, using Refractor to create the launcher, and then editing the command line so it points to /usr/local/prism/prism, get rid of every option except the "-webapp xxx@xxx" arg, and then move the webapp config dir it creates from ~/.webapps to ~/.prism/$profile/webapps.  It's about the same amount of work as downloading the icon yourself.  Either way, the setup of a webapp is a bit of a mess right now.
  • You get a blank profile, so your fonts, addons, user stylesheets etc. are all missing.  You might be able to fix this by copying a profile from ~/.mozilla/firefox to ~/.prism, and then running prism -ProfileManager, but I didn't experiment.
And one show-stoppingly dumb problem:
  • Every prism application runs in the same process.
I created one for Pandora (which worked fine, once I symlinked Flash), and one for Google Reader.  Ran them both.  Pressed Ctrl+Q to quit one of them . . . and the other one shut down at the same time.  I mean, what?  Isn't a big part of the point of prism to isolate your apps from one another?  If one of them crashes, they don't all crash, and that sort of thing?  That's lame, so sorry, I won't be using Prism yet.

Thursday, September 18, 2008

Bankers of the world: A request

If you're planning to throw yourself on a ritual funeral pyre in the next few days, do you think you could carry the record of my mortgage with you?  Consider it a just atonement.


Wednesday, September 17, 2008

People on the Internets: A request

Please put dates on your pages, such as release notes.  I can't tell how old your page is otherwise.  Thanks!

- Committee of Citizens Concerned About Bitrot on the Internet

Saturday, September 13, 2008

Chrome to have Extensions "Next"

About a week ago, a senior VP at Google announced that yes, they are going to be putting extension support into Chrome.  I'm relieved to hear it.

Tuesday, September 02, 2008

Google Chrome - no extensions!

So, ugh. Chrome does not support extensions. That means no Adblock Plus, no NoScript, no FireGPG, and all those other tweaks we all rely on to get through our day - for each of us, a different set of tweaks, adding up to thousands of features Google won't be developing on its own and therefore nobody will have.

They have to rectify this situation, or quickly see Chrome fork (or worse for them - an anti-Chrome developer groundswell). I can only assume that this is a temporary situation. To tell them what you think, and in the hopes that this situation is only temporary (it's a 0.2 browser right now, after all) go to the support link.

Monday, September 01, 2008

The most exciting part of Google Chrome

You've probably already heard about tomorrow's release of Google's browser project, Google Chrome. (This link is broken, but broken quite differently from other Google 404's. It's a safe bet they are already proxying this page to some other server and will put something there When It's Ready.)

There are many awesome in this, but I'd like to draw you web developers' attention to something that promises to be as exciting as the browser itself:

Comic pages: page 9, page 10, page 11

These pages describe the testing apparatus used to develop Chrome. It describes a continuous integration server that processes every build against a perfect rendering of tens of thousands of sites. The perfect rendering is described as being "a schematic of what the browser thinks it's displaying". I read this as being an internal data structure representing the rendered view.

There are two reasons I love this. First, it means that Google will be Ready on Day One to render the web. It will be "another platform to support", but not to nearly the degree that (for example) Safari or IE7 is another platform to support. This kind of testing apparatus can only lead to a more compliant, more reasonable platform. (At the least, it should have only the same bugs Firefox does. I wonder what they used to make their benchmark renderings?) Edit: I know Chrome is based on WebKit, I should clarify that, if they used Firefox for reference renderings, then their rendering bugs will match Firefox's. Apparently WebKit already does this, but it wouldn't make much sense to use WebKit as the reference rendering for a test of WebKit! So they must be using some other browser; Firefox would make sense.

Second, it means we may finally get the holy grail of web testing: a headless DOM! We currently have a test apparatus that consists of a big, fast Mac machine with a 1920px display and 4 VMware machines, running Selenium on multiple browsers. Automating this is nightmarish, and completely unsuitable for agile development methodologies. We only have one of these, so access to it has to be gated, and the barrier to entry to test your code is huge. (You have to commit it, to start with.) The web badly needs a way to test applications without a browser showing up on your desktop. I just want to see green/red for the question "did my login page render the same way it did last time?"

The phrase "schematic" tantalizingly hints at a test suite with the ability to tell you about test failures in a descriptive way. I imagine seeing something like "div#nameEntry expected position:(258,317) got position(258,0)". But now we've veered away from speculation into wishful thinking.

This makes a big assumption that Google will release the code of the test apparatus. But I'm betting they will, because it makes extremely good business sense. If web devs start to rely on their test engine, their applications automatically support Chrome.

Sunday, August 31, 2008

Gnome/Firefox tip: Pandora as a Separate Application

The problem: Pandora is more like a desktop application than a website. It should stay open when you close your browser. If you do web development, or your browser tends to crash a lot, or you just like to close Firefox sometimes, you probably don't want to lose your tunes. Figure out a way to keep Pandora open when the rest of your web browsing session is gone.

This is a walkthrough for Gnome/Compiz users for isolating Pandora from the rest of Firefox cleanly. Much of this will be applicable to you if you don't use Compiz, and even if you don't use Gnome.

This assumes Firefox 3.0.1/Linux, I can't vouch for command line options on any other version.

When I refer to your Default Firefox Icon, I am talking about whatever means you usually use to launch Firefox, whether it's a toolbar icon, a menu icon, Alt+F2 "firefox", etc.

Create a Clean Pandora Profile

Start by shutting down all instances of firefox completely. Then bring up a Terminal window and type:
firefox -no-remote -ProfileManager
You'll get the small Profile Manager window. Create a new profile, named 'pandora'. You may, if you wish, clean it up. I did all of the following:
  • moved all the controls to the menu bar line at the very top (right-click a blank space and "customize...").
  • hid all the toolbars.
  • edit > preferences and changed the homepage to
Now quit from that firefox window. Once again, run:
firefox -no-remote -ProfileManager
Firefox makes your latest profile the default in all situations. To fix that (you don't want Pandora as your default browser): Select 'default' (or your original profile) from the window that just appeared, and let firefox open. Now your Default Firefox Icon won't open Pandora.

Make a Launcher

Right click on your Gnome menu panel, and "Add to Panel..." Select Custom Application Launcher. Enter the following:
  • Type: Application
  • Name: Pandora
  • Command: firefox -no-remote -P pandora
  • Comment: Opens in a separate Firefox process
(Only the Type and Command must match what I show above.)

Leave that window open for now. Re-launch Firefox using your Default Firefox Icon.

Let's get a pretty icon for the launcher you're about to make. In Firefox, visit: and save the file as ~/.mozilla/firefox/*.pandora/pandora.ico

Now, go back to your New Launcher window (you didn't close it, right? :) and click on the springy-looking icon to change the icon. Choose the icon file you just saved as your icon. Now finish/OK until you are out of the New Launcher window and you have a new launcher.

Bonus Compiz Step: Place Windows Support

The Compiz "Place Windows" plugin lets you put windows on a particular workspace automatically. I want Pandora windows to automatically be placed on desktop 8, and other Firefox windows to automatically be placed on desktop 3. This was the trickiest part of the entire process.

This isn't an explanation of how to use Place Windows (find that elsewhere). This is an explanation of why using Place Windows for the tricked-out Pandora profile is difficult, and how you can fix it.

Problem: Compiz requires you to identify the windows you want to place by window Class, Name, Title, Type, or a few other things. For all firefox windows, Class, Name, Type and so on are the same; so if you want some firefox windows to go one place and some to go another, well, you can't do that with Place Windows unless you can differentiate them by title. But firefox always starts with the same title: "Mozilla Firefox". Compiz only looks at the initial title when it tries to place a window.

Solution: A plugin called MozFox. This is a version of FireSomething, that plugin that lets you randomly name your browser "Fireslug", etc. Bring up your Pandora profile using your new launcher icon, and visit the link above. You will have to create an account and log in there because this is currently an "experimental" plugin.

Install the plugin, and let the Pandora profile restart. When it comes back up, Tools > Addons > MozFox > Preferences. You will have to manually delete everything in the three lists. (You can select multiple to delete at once, then right-click and "delete". This is a pain in the butt.)

Add to each list: "Pandora", "Fire", "fox".

Now in the Place Windows plugin, set it up to match "title=Pandora.*". (You must have Regex Matching on.) Close out of that window, and restart Pandora. When it comes back up, Compiz will automatically position it where you told it to go!

Friday, June 27, 2008

Goonmill - seeking art

I am moving into the final phase before a first release of Goonmill. I am seeking art for any of the monsters found in the D&D 3.5e SRD.
  • The art must be CC-licensed, public domain, or otherwise free to distribute for any purpose. If CC licensed, it may be of the 'attribution' or 'no derivatives' types, but it must not be 'non-commercial'. Goonmill is arguably a commercial effort, even if it is open source.
  • The more uncommon the creature for which you found art, the better. I think I can cover orcs, humans, goblins, human skeletons, human ghosts, and human zombies pretty easily. Variations are welcome.
  • You may of course contribute your own art to the cause, as long as you are willing to license it compatibly.
  • Honestly, I'm not that picky about quality or style at this point. I am looking for 2d art, not models, though. Feel free to render your models to 2d art.
  • Prefer an isometric viewpoint, but not required.
I am collecting this art for use with the D&D 3.5 SRD monsters. It will be released freely once collected. Goonmill will use it as part of the application, but in addition the entire database of art and creature stats will be available for use in other applications or for any other purpose. The "any other purpose" part is why the art must not be CC-NC licensed.

Monday, June 23, 2008

Spam subject lines: A positive sign?

Actual spam subject line received today:
Obama grows great length through herbal supplements

I think it's fair to say that your candidate is viewed in a positive light when he is used as a symbol of male virility. I never got any "Kerry's dong will please your woman all night long", for example.

Thursday, June 12, 2008

Decipher is Hiring

Dear lazyweb,

If you want a job in R&D, and you have strong skills on all of the following, send your resume to the owner of this blog. (If you have any trouble finding the email address, it's on my resume, which you can find on Google.)

  • Javascript
  • CSS
  • Linux development
  • Python
When I say strong, I mean, you really have recent experience building web apps with those skills, in combination. We're in Fresno, and preference will be given to people who can work locally, but all resumes will be read.

We are Decipher, Inc.

Thursday, June 05, 2008

Greenpeace and Broadening Horizons

My stepson, Steven, is attempting to raise money for a semester learning from and about Greenpeace through their GOT program. While I don't agree with everything GP does politically, I do support him learning and broadening his horizons and, well, I am a Green party member so I support things that contain green in the name, or things that are green, or things that encourage greenness. Also, I like whales. :-)

Anyway, it's a serious program, and he's putting together a serious web presence to raise the money to go. He's also trying out Fundable on my suggestion, and I'd really like to see that succeed, because there's a few places I think Fundable could make a huge difference in this new, honor-system based economy we seem to be sailing into.

Thursday, May 22, 2008

Review: Rain-Slick Precipice of Darkness Episode 1

Completed the game. The first time through, it represented about 10 hours of gameplay for me, perhaps 6-7 for someone who actually plays video games often.

On a value-for-money basis, this is really good, especially when you include the enormous amount of value Penny Arcade has provided over the years; I bought this game without even downloading the trailer first, just because PA has earned that money either way. Then, after I completed my second playthrough, I realized that the value was pretty damn good. I may play it again; I will at least go back to my savegame and try to find all the hidden concept art. The game stands on its own merits, and I would have enjoyed playing it even if I didn't know much about Penny Arcade. It's a lot of fun.


I have some criticisms, which I'll start with, but spoiler alert: they're all nitpicks. I'll try not to include any actual game spoilers here.

1) camera is somewhat frustrating at times. I always had the sense that there was some cool stuff offscreen that I could get to if only I could see it. It isn't that big a deal though; very rarely did I have any trouble seeing or navigating to the things the game needed me to see and navigate to.
2) pathfinding AI was basically nonexistent. You really only see this when you are trying to smash something to grab the combat bonus item inside, which you do by clicking on it so the player runs there. My guy couldn't figure out how to get there if there was something more complicated than a lamppost in the way, and not even that if the lamppost was right next to him. Oh well, it amounted to only a few extra clicks. I never got stuck anywhere, either.
3) It was a bit hard to navigate in some places, though. This was particularly noticeable inside Anne-Claire's room, where, to reach her, you must either smash a box or find just the right detritus-free spot on the floor to click on.
4) I wish it was longer. I just wanted to play it more. I would have paid double for a game 50% longer, and still felt it was a good deal. Fortunately, it comes in episodes! I cannot wait for the next episode, and I will purchase it sight unseen again. Based on plot points, I think there will be 4 episodes in total.


Combat is challenging and fun, requiring skill and strategy simultaneously. I'm not going to go into the details of the mechanics since there are plenty of reviews covering those. Timing is important, but not always critical; you can get by most of the way without catlike reflexes. There are lots of options at any point, and it definitely makes a difference which options you use in a given situation. For example, in many places, if you choose the wrong character to attack a particular enemy, the combat will be much more dangerous and take much longer. This is because creatures have particular resistances to certain kinds of attacks. In some combats, for example, Gabe will shine, while in others he will be useless as an attacker, so you use his turn to activate healing and items instead. The same also applies to which items you choose to use; some monsters have abilities that essentially nullify a particular item; but choose a different one and you can vanquish them quickly. So, to win the game, you have to explore all the combat options.

You also have to master the art of managing three characters at once, because if you waste time trying to decide what to do, the enemies will eliminate your opportunity to do it. This isn't too hard after the first level's worth of battles, though. The only thing really requiring fine reflexes was the 'block' maneuver, performed by hitting the space bar at exactly the right time in an attack sequence. The time segment you have to block is different for every enemy attack, and most enemies have more than one, so you really have to watch the animations and practice. You'll be an expert at this by the time you get to the last quarter of the game or so. (The final boss would be really hard if you hadn't mastered the blocking skill by that point.)


The comparisons to ScummVM games are fairly accurate; the adventure portions of the game really feel like Day of the Tentacle, although not nearly as intricate. The puzzles are my favorite kind: the kind that aren't really that difficult to solve. I've always loved adventure games, but I've always been terrible at solving puzzles. I've lately realized why I love them: adventure games reward you for exploring, and I love games in which exploration is a big factor. I like poking around in all the odd corners of a game, and clicking on everything I see to find the hidden jokes and secrets. Besides the hidden "concept art" which supposedly unlocks a bonus comic, there are also items in the game which can give you combat bonuses but aren't necessary to complete the game, and even some hidden combats. At the risk of spoiling, I'll just say: if you get to the endgame with only T. Kemper and Anne-Claire as supplemental characters, you've missed something cool. :-)

Game Technology and Greenhouse

The game is out for 4 platforms simultaneously: PC, Mac, Linux, and Xbox. This is pretty cool; nobody releases major games for Linux, never mind for all of those platforms at once. As a software developer I appreciate the enormous difficulty they faced in accomplishing that; they obviously had to make some smart technology choices to succeed. I ran into technical problems using the Linux version (pulseaudio sound was flaky); I eventually worked around them (shut down all music players, and run with "aoss" instead). When I first encountered this problem, though, I just wanted to play. The multiplatform release came in handy here, and really demonstrated what I think will become the Greenhouse ethos.

I'm using a Macbook Pro, and I have Leopard on this machine as well as Ubuntu Hardy. So, I just downloaded another copy of the game, this time the Mac .dmg file. I already had my license key for the Linux version. After installing it on Leopard, I entered my Linux key, which Just Worked, and started the game up, and was playing immediately. Greenhouse let me download multiple copies of the game for free and use my key in all of them with no hassles whatsoever. Couple that with the simplicity of the initial purchase: You enter your credit card number, your license key displays in your browser immediately (and is emailed to you immediately), and the game starts downloading immediately. They accomplished that (apparently) most difficult of feats for online software retailers: they made the game easier to buy than to pirate.

Humor and Characters

It's a Penny Arcade game, so it really wouldn't be fair to review the game without talking about the humor in it. You can't talk about humor without killing it though, so I'll keep this section short. Here's the bottom line: if you like Penny Arcade, the game will be really funny. During the run-up to the game, the guys put up a massive .wav file to test the bandwidth, asking everyone to download it--smart QA strategy. What was even smarter, though, was that the file was, in the style of their podcast, Gabe and Tycho talking about the making of the game. One of the topics they discuss was that Tycho had to write descriptive text for every damn thing you can click on, even the crabs littering the boardwalk. Well, the time was well-spent. Click on everything you see; you'll be laughing a lot.

The characters have great interactions with each other, and the dialog adds to the game, it doesn't detract. It makes a difference when game dialog is written by someone who writes for a living every day. Jerry Holkins' wit shines through in every conversation tree.


4/5 asterisks: ****_

As one forum denizen on Giant in the Playground said, "You can hit evil hobos with a rake so hard they literally explode. What could not be awesome about that?"

(Tycho just posted on the p-a site, saying "Thank you for letting me be your dungeon master." God I'm jealous.)

Friday, March 28, 2008

40,000 Coat Hangers

The court system put to its highest purpose. That is to say: hilarious entertainment.

Judge: Tell me, Mr Chrysler, do these businessmen of yours also have Gideon Bibles by their bedside at home?

Chrysler: Many of them, sir.

Judge: And where do you get the Gideon Bibles from?

Chrysler: Alas, they, too, have to be taken from hotels.

Judge: Then why are you not also up on a charge of Bible-stealing?

Chrysler: Because the Bibles do not belong to the hotels. They belong to the Gideon Society. And the Gideon Society has decided not to prosecute me, but to forgive me and tell me to go and sin no more.

Judge: And have you sinned no more?

Chrysler: Alas, no.

This really is stellar stuff.

Sunday, March 23, 2008

My second-favorite FF3 feature

Now that most of my extensions (with notable exceptions) support FF3 without hax, I'm going to start using it fulltime. My second-favorite* new feature: you can finally drag items in the Bookmarks menu. Yes, Firefox bookmarks have finally (nearly) caught up to IE5 boomarks in usability.

It's the little things that matter.

* My favorite, of course, is the greatly expanded SVG support, so I can continue work on Glass Vellum.

Saturday, March 22, 2008

iPod video for Linux

Google will tell you that you can convert video to iPod format in Linux using only VLC. When lots of people tell you something on the Internet, and post howtos, this is often a good sign that lots of people on the Internet are idiots. This is one of those times. None of the howtos worked; I was getting either a corrupt file or no audio. I am clearly not the only one, because every single howto I found that explained how to use VLC to transcode video, and there are quite a few, ALSO had commenters saying "um, the audio doesn't work".

I finally discovered a solution, though, so it's sharing time. Note that this is probably unnecessary if you just want to watch video podcasts, because gpodder works fine for that. For non-podcast video, you almost always need to do a conversion.

(Using Ubuntu, version HammurabiHardy Heron.)

For this meal, you will need these ingredients (aptitude install ..):

(every gstreamer plugins package you can find in main or in universe / multiverse)

The avidemux-cli package is optional; handy if you want to convert a whole directory full of files. Note that you are going to install vlc, because it is one of the few players that will reliably play back these files. You want it so you can test your output files before installing them on your ipod, but it may be considered optional.
  1. Open up the avidemux GUI, and open the file you want to convert.
  2. Select menu item Auto > IPOD
  3. Confirm that video is being encoded with XVID4. Optionally change the video bitrate to 1024 through the Configure button.
  4. Audio encoding will still show "Copy". Change it to "AAC". Confirm through the configure button that the bitrate is 128.
  5. Confirm that Format is MP4.
  6. Save. Encoding will begin.
Optional: Batch Conversion. When done, you may save this as a script with "File > Save Project As ..." which allows you to do this from the command line. However, I have already done the work for you. To run it from the command line, get the shell script and .js file from If you save the shell script as "mp4", you can run it in a directory of AVI files, as

mp4 *.avi

Test the converted file in VLC, making sure video isn't crappy and audio exists.

Now copy it to the iPod. You need gtkpod-aac installed for this, or you will get errors saying "compile gtkpod together with yadda yadda". The package gtkpod-aac contains a binary that is already so compiled. You can simply plug in the iPod, choose your model from the supported list in gtkpod, find the iPod in the tree at the left, pick "video inbox", and Add File there to add your file. Save to copy to the ipod, and Eject the ipod.

Saturday, January 19, 2008

Gibbon takes Leopard

My lovefest for OS X is over. I'm switching back to Linux. It isn't a total loss, but it is a complete burnout for a software developer like me. Some things I liked, some things I hated. . .

What's OK:

- Printing is pretty cool. I really liked that printers were so easy to install. OTOH, Ubuntu's printing stuff is almost as good; the only thing missing might be the icon that shows you what your currently-in-use printer actually looks like. Printers seem to be self-healing in OS X as well, which means that they keep working even when they change IP addresses (something that happens with my printer at home).

- FileVault. Encryption is done well up to a point. They succeeded in making it usable for the masses. Then they halfway-blow it! The screen saver and restart-from-suspend/hibernate do NOT require a password by default. So if you do what most people do and just shut the laptop when you're done using it, all that encryption is useless because your filesystem is always sitting around in plain text. FileVault should require you to password-protect those ways in.

- OmniGraffle. If they made a Linux version, I'd pay for it, and this is coming from someone who actually likes Inkscape already.

- iTunes + iPod is pretty damn awesome. Banshee is quite competitive, but to get the same package that OS X has on Ubuntu you need Banshee and gpodder. I like both of them, but they're not integrated, they don't work well with m4a feeds, so this is a clear Mac win, and no surprise.

- VMWare fusion. I love Unity mode for Windows. I don't really use it enough to keep it around, though. VirtualBox is a more-than-adequate replacement. It lacks snapshots but makes up in overall speed.

- Overall attractiveness. Yep, it's pretty. Ubuntu is about 90% of the way there.

- Um... the hardware? I really like the hardware. I just would rather have something else installed on it. OS X certainly comes with all the necessary MBP drivers, and all that hardware Just Works, so that's good. But it's not as if somebody couldn't do the same with a MBP-targetted Ubuntu distribution.

What's broken:

- Terminal. The tabs are horrible.. they won't display icons, they won't display the label of the terminal settings, they don't even obey the settings of itself. The terminal emulation is frequently broken. Readline is frequently broken. ANSI colors are broken. Terminal, you suck. By all accounts, the alternatives are worse.

- Python. For FUCK's sake Apple, this is an embarrassment. Either get it right or stop putting it on there by default. Why do I have to install MacPorts Python every time to work around missing extensions like _bsddb? Why do I get bus errors running simple things that work in Linux?

- Instant Messaging. Adium is the only decent multi-protocol option, and it doesn't support IRC and hides important options. Adium actually is pretty damn close, but it's not all the way there. XChat on the Mac is pretty crappy, and the other IRC alternatives were slow and worse.

- Graphics software. I refuse to pay for and use Photoshop. Aperture is shipped on Leopard as crippleware, I say no to that guerilla tactic as well. Gimp is a terrific piece of software, but it's unusable on a Mac. Yes, you can run it in X11, and if you tried to, you would know what I mean by "unusable".

- OpenOffice. See previous post. Oh my GOD this is terrible. I refuse to pay for and use standards-raping MS Office, which is NOT an improvement over OpenOffice in functionality or performance anyway, even in the best of cases (running on Windows XP, for example). works beautifully on Linux and on Windows; on OS X it vomits.

- Media playback and use. Linux just wins here. Apple has nothing to offer over, say, VLC, which is why I installed VLC on the Mac. It actually runs a treat there, BTW. Apple's software respects region coding and all that other DRM and related rights-restriction bullshit, and I refuse to play that game. VLC is able to redeem Apple here--I think. It remains to be seen whether I can do something fair-use-y like rip my DVDs to the hard drive and play them with VLC, or use VLC to play out-of-region DVDs, but I'm beyond the point of wanting to give OS X a fair shake on this one.

What changes to the OS X ecosystem would be required to win me back?

- Fix

- Fix Python. This is an absolute dealbreaker for me.

I can put up with the rest of the problems, but those two are insufferable.

Friday, January 18, 2008 on the Mac is shit

  1. X11 version:
    1. Requires X11
    2. Actually launches an xterm with a shell session when it runs
    3. Makes you wait a minute before doing anything, then displays a useless "Command timed out" error message
    4. Then runs some Java stuff before finally starting up
    5. Doesn't take X11 with it when you shut it down
    6. Draws menus as window decorations instead of at the top of the Desktop where it belongs in OS X (well, that's an X11 app for you)
  2. NeoOffice:
    1. Utterly broken in Spaces. Won't let you assign it to a particular Space, it just launches wherever you are. Then, sometimes it won't even let you switch away from it, following you around like one of those web popups that just reopens every time it closes.
    2. Doesn't adopt OS X keyboard shortcuts (e.g. Alt+Backspace doesn't erase a word)
    3. Useless Aqua menu: just the NeoOffice menu item itself, not even so much as a "New > Spreadsheet" menu.
  3. Aqua version:
    1. All the icons are upside-down and pink
    2. The clipboard doesn't work, even though the last update said the clipboard was finally fixed
    3. By the way, the last update was July 2007.
Then, just to kick you in the teeth a little, all three of these use different directory structures under ~/Library for storing your settings, so if you're persistent enough, like me, to try all three for due diligence, you have to reinstall your settings each time.

And all three are slow.

I don't get it. is AWESOME on Windows. It blazes in Ubuntu. Why, despite THREE attempts, is it a steaming pile of shit on a Mac?

Sunday, January 06, 2008

My one and only political post

This is my "techie" blog, so I'm not going to spend a lot of time doing politics on here. In fact, I'm only doing one, this one, and I'm only doing it because I want to use this space to advertise my voter registration button. There it is, over to the left, go ahead and click it if you aren't registered, or if you've moved, or if you are currently registered as the wrong party.

I've been a registered Green for years, but I'm switching my affiliation to the Decline to State party for this election season. In California I'm required to either vote in the primary of my party affiliation, or if I have Declined to State, I may vote in any. I intend to remain a Green after this election, but I want to vote for Barack Obama.

The button is there for you guys. If you read this blog and don't consider yourself well-enough educated to get involved in politics, you might think you aren't up to the responsibility of voting. I think this is one of the biggest reasons people don't vote in this country; they are aware that it is an important responsibility, and they don't want to screw it up. (Witness Stephen Colbert's election coverage series, titled "Don't Fuck This Up, America".)

An informed electorate is important to democracy. However, I put it to you that, if you do register right now, you are far more likely to get informed. No matter how ignorant of the issues you are right now, if you take the 2 minutes to get registered, I know you will be more informed in a month, and even better informed still in November. You won't be able to help yourself. You'll start conversations with people about how you just registered, and they'll start talking to you about issues. Thus, the act of registration itself catalyzes a better quality of democracy.

Almost half of the primary elections are being held on Tuesday, Feb. 5, 2008, including California's primary. If you aren't sure, check this PDF calendar. Register, vote.