This is BrainLog, a blog by Dan Sanderson. Older entries, from October 1999 through September 2010, are preserved for posterity, but are no longer maintained. See the front page and newer entries.

January 2007 Archives

January 31, 2007

A search for "clock" in Make Magazine's weblog.

LIfehacker: Geek to Live: The command line comeback. A nice summary of Firefox+Google as a command line interface to a bunch of useful things.

Firefox 2 users may have noticed that the Google search bar tries to suggest terms as you type based on other popular searches and relevance. Gina points out that Google's calculator feature is available in this bar: Type any arithmetic expression, such as 100+20/12, and—without having to hit Enter—the answer will appear underneath the box.

How to hire Guillaume Portes. Actually about technical standards, and actually about Microsoft Office "Open" XML.

The first comment on that article makes a good point that Microsoft Office's closed formats grew organically over a very long period of time, and so any published format that's completely compatible is going to be a huge mess. But that doesn't change the fact that OOXML fails to meet the definition of "open." Published is not open.

Not that merely published isn't valuable, but it's only really valuable for scraping your data out of the old format and slapping it into a more useful open data standard, using a single carefully implemented conversion layer. For day-to-day use of data, where new workflow logic that operates on documents new and old has to be implemented quickly, you need a real open format.

January 30, 2007

Analyzing software projects for potential success using the C2I2 Hypothesis.

A Periodic Table of Visualization Methods. Mouse-over for pop-up examples of each.

TextSoap os a Mac OS X application for manipulating formatted text. Formatted text looks nice when it is first created, but it's a big hassle to move around and re-use. In most cases, the best you can hope for is the option to strip all formatting from text on the clipboard, then re-format it manually in the new location. TextSoap lets you apply more precise filters on formatted text, to clean out formatting you don't want but retain formatting you do. It features an Automator-like interface for re-using sets of filters, as well as a manual editor.

January 29, 2007

Googe Book Search + Google Maps = Books: Mapped. Books in Google's index with enough identifiable mentions of real locations now include a Google map of those locations, with cross references to the text.

Multithreaded Game Scripting with Stackless Python.

PagePacker, a little Mac OS X app that makes it easy to print one-off 8-page booklets. The eight pages can be anything you want, using one of the provided pages for organizer-like notes, to-dos and calendars, to any image or PDF you can make yourself. Examples given include an iCal calendar with your appointments, a web page such as driving directions, or a photograph.

The clever folding directions make a quick 8-page booklet with printing on only one side of the paper. I'd like to see something that could take advantage of a duplex printer, or even a cheap printer can print on two sides (like my Canon iP4000). It'd be tricky: Even nice duplex printers have alignment problems, and I'm not sure there's an easy fold-and-cut method for making all pages usable. But a single sheet of 8-1/2"x11" folded three times is a little thick for just 8 images.

I'm looking for more ways to use "paper export" from my computer. I don't even print envelopes because the skill is too far from the tip of my brain to be convenient, but it seems like a little practice would go a long way.

Top Ten Best and Worst Communicators of 2006. From Bert Decker, CEO of Decker Communications, Inc., who has a nifty blog about communication.

Online Image Editors Compared. I can't use online apps for any work-related or otherwise proprietary project, but there may be other uses for these. Enjoy them while they last, since they're really just demos hoping to be bought up and integrated into another product.

January 26, 2007

TickleBooth has links to this year's Oscar-nominated short animated films online. Watch 'em quick while they're still around.

How to Be a Curious Photographer.

Enhancing Gmail In Emacs by scripting W3M-Emacs. It didn't occur to me that Gmail would work in an Emacs web browser.

List of Virtual Console games for the Wii currently available. With RSS feeds for UK and US releases, good since I'm not going to keep browsing the store looking for more old games.

The New Yorker Cartoon Anti-Caption Contest #83.

Get a First Life. "Why can't I build a dirigible with my mind?"

January 24, 2007

Calling Amazon Mechanical Turk With Python and ZSI 2.0

Amazon Mechanical Turk, the micropayment-for-microwork service, includes a web service interface for creating tasks from your own software application. As of this writing, their developer web site has 8 "getting started" code samples for calling MechTurk using various languages and techniques. One of these samples demonstrates how to call MechTurk's SOAP interface from Python using SOAPpy for its SOAP toolkit.

SOAPpy is being superseded by the more thorough and robust Zolera SOAP Infrastructure (ZSI). ZSI 1.x was famous for being difficult to use, at least compared to SOAPpy, but ZSI 2.0 is nearing completion, and it doesn't look half bad. So let's rewrite the Mechanical Turk Python SOAP example using ZSI 2.0-rc3.

continue reading...

Newbie Mac tip: You can set up multiple alarms for an event in iCal. Set the first one as usual, then click the word "alarm" for a pop-up menu to add another alarm. Use the same pop-up menu to remove alarms.



Second Life client released under open source license.

Second Life client: two weeks later.

Flatland: The Movie, official site with trailer. Will star Martin Sheen as the square. The movie will be part of an educational DVD. Looks great.

I paid the $40 for a DVD of the 11-minute 1965 movie starring Dudley Moore. That site now has the first two minutes online, if you want to check it out without paying the money.

January 23, 2007 Why Do Today What You Can Put Off Until Tomorrow, presenting an equation describing procrastination: Desire to Complete Task (U) = Expectation of Success (E) x Value of Completion (V) / Immediacy of Task (I) x Personal Sensitivity to Delay (D), or U=ExV/IxD.


Merlin reviews Scrivener, a new Mac OS X app for writers. The Scrivener home page. Looks awesome. $34.99, with a 30 day free trial.

Re: full screen mode, see also Mark's recent post. Re: full screen mode writing and Mac OS X, I'll paraphrase a tip from Merlin: Use Backdrop and MenuShade to put a solid background behind your favorite editor and hide your menu bar, respectively. Editors are terribly complex, and it's terribly important that you learn how to use yours well, so you shouldn't have to switch to an entirely different editor just for one feature. Better to assemble the necessary features from different pieces of software.

But Scrivener's full-screen mode is more than just a black backdrop behind your editing frame, and of course the editor looks worth considering for its other features.

Jack Bauer Kill Chart: every kill from every episode of 24, with video, still image, and weapon.

January 22, 2007

I often want to include computer source code in my blog articles, but source code can be problematic for page layout. Code tends to be unusually wide or unusually long compared to other article content. Spacing and layout of code is specific and significant, so long lines can't wrap as easily as paragraphs of text can.

HTML's <pre> tag tells the browser to use a fixed-width font and preserve all spacing, so it's an obvious candidate for marking up source code. But the default rendering of <pre> can cause problems for the rest of the page. With old-fashioned table-based layouts, a <pre> with a long line in it can push out the width of the table and cause wrapped paragraphs to be as wide as the longest line of code. With layouts based on styled <div>s, by default long lines overflow or underflow the box that contains them, obscuring the rest of the line and possibly other stuff.

Thankfully, CSS provides an elegant solution for managing content that overflows the bounding box:

pre {
    overflow: auto;
    max-height: 200px;

overflow: auto tells the browser that if the block's content is bigger than the allowed space, the browser should give the box scrollbars. This fixes the problem with long lines: If a non-wrapping line is too big for the content box (such as in my two-column design with a sidebar on the right), the <pre> will get a horizontal scrollbar instead of spilling over the edge.

max-height: 200px tells the browser not to let a <pre> take up more than 200 pixels of vertical space. Combined with overflow: auto, long sections of source code will appear in a reasonably-sized box with scrollbars. This lets readers who are skimming the article skip past long code sections in the middle of articles, and keeps the page height reasonable. I have mixed feelings about this technique: For some articles, the code samples are like mathematical equations, not ancillary content, and shouldn't be hidden away. But it's easy to not set a max-height, if you think it's inappropriate.

An example:

\notes \new PianoStaff <<
  \new Staff {
    \key e \major
    \clef treble
    r4 \relative c' {
      \times 2/3 { e'8 fis cis } \times 2/3 { e b cis }
      \times 2/3 { gis b fis }   \times 2/3 { gis e gis }
      dis2 cis4
  \new Staff {
    \key e \major
    \clef bass
    \relative c, { e8 b' e gis b gis e b e, cis' e gis cis gis e cis }

Update: Anyone who saw this little article on the day it was posted saw me freak slightly when I noticed at the last minute that my stylesheet changes didn't seem to work in some browsers. The problem was entirely user error, and had nothing to do with browser compatibility. All better now.

ATPM 12.09 has a rambling but interesting article about the "business model" for Mori, one of the more interesting outliner applications for the Mac. Mori didn't immediately click for me the first few times I tried it, but their open development model has resulted in compelling extensions and a rich developer community, as the model was intended to do.

Security Now podcast host Steve Gibson interviews "Vista suicide note" Peter Gutmann.

January 19, 2007

Deafness and the Riddle of Identity. (Thanks 3quarksdaily.)

A New Sith, or Revenge of the Hope: Conclusions to draw about Star Wars episodes 4-6 from episodes 1-3.

January 17, 2007

The Nintendo Wii includes the ability to purchase downloadable games at an online store, using the Wii's Internet connection. You buy games using "points," which you pay for with cash. (I assume stores like these use "points" so prices paid for points can vary from currency to currency, while the item point prices stay the same. Wii points cost 1 U.S. cent per point in batches of 1000. The Zune store charges 99 U.S. cents for 79 points, which I assume is intended to confuse U.S. customers about the actual price of a song. But I digress.)

You can purchase points using the Wii itself. To do so, you enter your credit card number using the Wii controller and an on-screen number pad. Because the number pad is difficult to use in this way, your credit card number appears unobscured in big numbers on your television as you key it in, so you know you typed it correctly. In my case, that makes my credit card number visible from the street if my curtains are open an inch or more.

The Wii has the same problem with password fields in their Opera web browser. I was pleased to see that Gmail actually works pretty well (for reading mail anyway) on the Wii, but it displayed my password on the screen while I punched it in.

I'd love to see this fixed, but to be honest, I'm not sure what the fix is. In the case of the Wii store, I'd prefer to purchase points using the web site (not using the Wii), then spend the points on the Wii, but that doesn't seem to be possible yet. For passwords, maybe just an option to obscure during entry?

January 16, 2007

6 Things You Need to Know About Color.

What Does 200 Calories Look Like? Photos of 200 calories worth of various foods.

How to solder.

January 15, 2007

Wil Wheaton reviews Star Trek: The Next Generation: Encounter at Farpoint (Part I) for TV Squad. Other TV Squad articles by Wil, including several more ST:TNG episode reviews.

Full Content RSS Feed in Movable Type

If you read BrainLog using a feed reader, you probably noticed the feed format changed slightly to include the complete text of each entry. Depending on which feed reader you use, this may have made a mess of the last dozen or so entries appearing as new. Sorry about that, but after having spent a couple of weeks using a feed reader for the first time and noticing how most people do full-content feeds, I decided the default Movable Type 40-word excerpts feed was sub-par.

There are lots of good write-ups on sprucing up Movable Type feeds out on the web, but it's worth another one to describe the minimal change to the RSS 1.0 ("RDF") feed template that's provided by default with Movable Type (3.3):

  1. Go to the Templates section of your blog's Movable Type administrative interface.
  2. Edit the "RSS 1.0 Index" template by clicking on it.
  3. In the opening <rdf:RDF> tag near the top, add the following attribute:
  4. Inside the <item>...</item> tag near the bottom, just before the closing tag, add the following element:
      <$MTEntryBody encode_xml="1"$>
      <$MTEntryMore encode_xml="1"$>
  5. Click Save and Rebuild.

I've only tested this with a couple of feed readers so far. Feedback welcome. For instance, I notice other write-ups are suggesting putting the complete text in the "description," instead of using the RSS 1.0 "content" extension.

Look elsewhere for suggestions for doing this in the RSS 2.0 template. (The default Atom feed appears to contain full text already.)

continue reading...

Lawrence Lessig at 23c3: On Free, and the Differences between Culture and Code [Google Video].

23C3, aka the 23rd Chaos Communication Congress.

Pump up the volume in Quicktime, a tip from LifeClever: The Quicktime player's volume control doesn't give you the full range by default. Hold shift while clicking, and you get to turn it up to 11.

January 12, 2007

Mac OS X Productivity Tip

To be more productive using your Mac:

  1. Open a Finder window, then navigate to your Applications folder.
  2. Find NewsFire. Rename it to "Finances".
  3. Still in the Applications folder, find and open the AppleScript folder. Double-click on Script Editor.
  4. Type the following script into the Script Editor window:

    display alert "Shouldn't you be working?"

  5. From the File menu, select "Save As..." The save dialog will open. For Save As, type "NewsFire". For Where, navigate to your Applications folder. For File Format, select "application". Click the Save button.

Works especially well for Quicksilver users.

January 11, 2007 has menus, advice, merchandise, and subscribeable (for pay) weekly menus. It's embarrassing how badly I need someone to tell me what to eat, especially since I'm quite capable of cooking once told. Bookshelves full of cookbooks don't help: I need my meals planned and my options limited.

A classic Ask MeFi thread on dinner hacks includes great advice, as well as links to other "Ask MeFi about dinner" pages.

Amusing animated slides (in Flash form) of a talk about modal logic.

January 10, 2007

If music played over your Airport Express cuts out on a regular basis, if your new Nintendo Wii can't reliably connect to the Internet, if your VPN keeps dropping its connection: change the channel.

802.11b/g wireless networks can operate on any of a dozen slightly different frequencies, and most wireless access points are configured to use channel 1 by default. If you have many wireless access points in your neighborhood, or other wireless devices using similar frequencies (like cordless phones) or other kinds of interference, changing the channel of your access point can make a difference as great as night and day. Try channel 6 or channel 11.

The best part is most client devices don't need to be re-configured to use the new channel, they will simply discover the change the next time they try to connect. Buggy Saints Row: The Musical.

A Simple Guide to Five Normal Forms in Relational Database Theory (1983).

January 9, 2007

Get Rich Slowly: Throw Away your TV and Save a Bundle.

The article primarily addresses the passive consumption model of TV viewing, and its chief recommendation is to make TV viewing intentional. If you value the entertainment you get from TV shows, by far the best way to accomplish this is to get a TiVo. You watch only what you want to watch, only when you want to watch it, and no more. And you can skip the commercials. If your spending is truly so influenced by television advertising, TiVo will pay for itself. Have cake, eat cake. Install GnuCash 2.0 on Intel Macs.

Mac OS X Installation node in the GnuCash wiki.

Banish Quicken From Your Mac Desktop covers GnuCash 1.8 (slightly older than the latest, but possibly easier to do on older Macs).

I hope the dependency nightmare is one of the GnuCash project's highest priorities. You could charge money for a real Mac OS X app bundle for GnuCash.

How to Make A Inexpensive Light Tent.

January 8, 2007, a service and guide for buying and leasing new cars. Testimonial posted to Get Rich Slowly. One key aspect: Do all negotiating by fax and phone, don't go to the dealership.

Scribus: Open Source Desktop Publishing for Linux, Mac OS X and Windows. As in free.

Statistical Data Mining Tutorials, by Andrew Moore.

January 5, 2007

Hooray for AppleJack, the Mac OS X repair utility that runs in single user mode. AppleJack provides easy menu-based, one-button access to several important repair tasks. Free.

Hooray for MacJanitor, a utility that runs all of Mac OS X's maintenance tasks by request. For those of us that turn our Macs off at night, when these maintenance scripts would otherwise get run, this is a great idea. The MacJanitor product description correctly suggests, "Hopefully, this will be addressed in a future update of Mac OS X," and I'd be curious if the utility will still apply to 10.5 next year. It appears it is still useful in 10.4.8 according to the author of MJ.

How To Do Research In the MIT AI Lab (1988 paper).

Georgia librarians have developed open source enterprise-class library management software. It's about time we had open source library management software. Hopefully this will change the state of the art for the better.

January 4, 2007

Notes about food photography from MattBites. Nice. (Thanks Matt.) Building a Game Engine with Cocoa. A board game, anyway. Still looks like a fun introductory tutorial.

TiVoDecode Manager, unofficial TiVoToGo-like software for Mac OS X. It's free. Works with Series 2 TiVos only, not Series 1, Series 3 or DirecTiVos. Can do on-the-fly transcoding to iPod-compatible video files.

January 3, 2007

Boise State Wins Tostitos Fiesta Bowl [YouTube], last 3 minutes.

Google Browser Sync, a Firefox plugin that synchronizes your Firefoxen on all the computers you use to have the same bookmarks, history, persistent cookies, and saved passwords. I still like the plugin's tagging feature, but this one gets to the heart of why I'm using it in the first place.

IBM and Yahoo are giving away a small search engine product that competes with Google's $9,000 intranet search appliance.

Tenser, said the Tensor: "Darmok". Also, Raphael Carter's Darmok Dictionary. (Thanks Brad.)

January 2, 2007

A Cost Analysis of Windows Vista Content Protection. Widely blogged for the phrase, "The Vista Content Protection specification could very well constitute the longest suicide note in history." I'm only just now getting around to it, and it's worth a read. The implications for computer hardware will impact non-Windows and Windows users alike.

Also worth noting for the quality of the writing. It benefits from the latitude to be a bit snarky, but the technical explanations are clear and concise. Semantic Wikis and Disaster Relief Operations. See also Semantic MediaWiki. Migrating to Spring. Rolling with Ruby on Rails Revisited.