scrap pad

DrupalCon Paris video

I'm going to Paris this September for DrupalCon; as a professional Drupal developer it is an extremely useful event, and as a full-time web geek it's a great place to socialize with other people who do the same kind of work. I would also like the chance to present on some of the Drupal-as-a-GeoCMS work that has been happening this spring in front of a large audience who will ask sharp questions and then go use our work in their own projects.

I've entered a video contest for a conference ticket refund-- I've been wanting to make a movie with these toys since Easter:

You can vote for me on the DrupalCon Paris site and by rating my video on YouTube. You can also see the other contest entries listed as video responses under the original contest announcement.

php function of the day

Fairly often in Drupal I get handed arrays that have significant keys, but the values are either a label or false-y. I generally don't care about the items with empty values, or I specifically want to remove them. The solution is to use array_filter($arr) to remove any array items with false-y values. In fact, sometimes I don't even care about the labels at all, in which case I might do array_keys(array_filter($arr)). Examples below.

$arr = array(
  'key1' => 'Label 1',
  'key2' => 'Second Label',
  'key3' => 0,
  'key4' => 'Label No. 4',
  'key5' => 0,
);

$arr_filtered = array_filter($arr);
/*
   $arr_filtered = array(
     'key1' => 'Label 1',
     'key2' => 'Second Label',
     'key4' => 'Label No. 4',
   );
*/

$arr_filtered_keys = array_keys(array_filter($arr));
/*
   $arr_filtered_keys = array(
     'key1',
     'key2',
     'key4',
   );
*/

array_filter() can also take a callback as the second argument, which lets you filter out items on your own terms. See the array_filter() documentation.

flat footing

My aunt shared these two "flat footing" videos on facebook:

Drupal Field Formatters

I develop with Drupal 6 at work. One of the things I've been finding useful recently is writing field formatters. Field formatters are handy because they're used to format CCK field content when it gets displayed in nodes and also to format fields in Views. You can choose between formatters for each field of a node type under the 'Display' tab in the node type's settings. In Views, if you choose a display type that uses fields, you can select a different field formatter when you add each field.

To write your own field formatters, you implement hook_field_formatter_info(), then create theme functions for your formatters and add them to your hook_theme() implementation. At one point this was documented in examples packaged with CCK, but it seems the examples are no longer part of the CCK download.

A simple hook_field_formatter_info() implementation looks like this:

/**
* Implementation of hook_field_formatter_info().
*/
function example_field_formatter_info() {
  return array(
    'myformatter' => array(
      'label' => t('My Formatter'),
      'field types' => array('text'),
      'multiple values' => CONTENT_HANDLE_CORE,
    ),
  );
}
  • Your formatter should have a unique handle, in this case "myformatter". Using "x_formatter" or "x_module_name" here makes the theme key name confusing.
  • The 'field types' array contains the names of cck field types applicable to this formatter.
  • 'multiple values' determines the way field content is passed to the theme function. It may be either of two values:
    • CONTENT_HANDLE_CORE means that the formatter is called separately for each value in the field. If a field contains multiple values, then the formatter is called multiple times. Field content is passed to the formatter in $element['#item']. This is the default.
    • CONTENT_HANDLE_MODULE means that the formatter is called only once for a field, and the theme formatter gets all the field values at once. In this case, field content is passed to the formatter in $element[0]['#item'], $element[1]['#item'], $element[2]['#item'], etc. Note that the $elements array contains other information about the field, such as $element['#field_name']

You will need to add the field formatter theme function to your hook_theme() implementation:

/**
* Implementation of hook_theme().
*/
function exmaple_theme($existing, $type, $theme, $path) {
  return array(
    'example_formatter_myformatter' => array(
      'function' => 'theme_myformatter',
      'arguments' => array('element' => NULL),
    ),
  );
}
  • The theme array key, in this case 'example_formatter_myformatter' is constructed from {module name}_formatter_{formatter name}.
  • You don't need to include the 'function' => 'theme_myformatter' line; the default theme function name in this case would be 'theme_example_formatter_myformatter'.

The formatter function itself should return a stuff that is ready to output to the browser:

/**
* Theme function for myformatter from hook_field_formatter_info().
* @param $element
*   Array of formatter info and the item to theme. Field contents will either be
*   in $element['#item'] or $element[$i]['#item'].
*/
function theme_example_formatter_myformatter($element) {
  return strtoupper($element['#item']['safe']);
}
This field formatter simply displays the contents of the text field in all caps. You'll need to clear your cache before your new formatter shows up in the field display choices.

birthday list

I've been trying to think of a snappier way to introduce my birthday list this year, but nothing is surfacing. So: I'm turning 25 next week, this is a list of things I want for my birthday. If you send something via email, put "birthday list" in the subject line and I will not open it until the 18th.

  • a picture of you and your cat (or Mabel)
  • a cookie recipe
  • a long quote
  • a code snippet via twitter
  • a pattern
  • a café recommendation near my work in chicago

addresses

addresses are tricky.

CVS update output

key to the letters in the output from "cvs up"

wheat

What is the average yield of wheat per acre? Also: an acre is 43,560 square feet.

mac drawing app

vector based, core image filters, layers. another Mac indie graphics app, DrawIt. (note to self: try this sometime)

following cvs messages on drupal.org

There are links you can click to find these feeds, but I lost my interactive point-and-click tutorial so I guess I'm stuck hacking URLs.

for a web view of the latest drupal.org cvs messages, go to:
http://drupal.org/cvs
You can narrow it by module by adding an 'nid' query, where the nid corresponds to the project's nid:
http://drupal.org/cvs?nid=38678
You can also click on the 'View CVS messages' link on a project page, which will take you to a url like this:
http://drupal.org/project/cvs/38678
To either of those URLs, you can append a 'branch' query to filter the CVS messages by branch:
http://drupal.org/cvs?nid=38678&branch=HEAD
http://drupal.org/project/cvs/38678?branch=HEAD
You can also use 'rss' in the query if you want to follow the messages in a feed reader:
http://drupal.org/cvs?nid=38678&branch=HEAD&rss=true
http://drupal.org/project/cvs/38678?branch=HEAD&rss=true

three ways to install Bazaar on Mac OS X

  1. fink (fails)
  2. easy_install ("sudo easy_install -U paramiko pycrypto bzr" works)
  3. download the OS X Bazaar installer

guh, don't make me explain.

accidental misspelling?

"accidentally accidently neither of them gets marked as misspelled for me. I feel like one of them must be wrong." But no! The Columbia Guide to Standard American English: accidentally, accidently.

frost

The "dew point" is the temperature where water vapor condenses into dew; it changes based on the amount of water in the air. When the dew point drops below the air temperature, you get dew.

When the dew point drops below freezing, it is called the "frost point"; when the air temperature drops below freezing and the dew/frost point drops below the air temperature, you get frost.

more about frost. I've been waiting for the first frost here but I don't think it has come yet.

rails

Robbie is saving a piece of railroad rail because "you can chunk it up into pieces about this long [2 ft] and it's useful for banging other pieces of metal on"--an improvised anvil. To cut up something like a rail, you would use an acetylene torch. (I had to ask, so I figured I'd write it down).

organic apples

apparently in apple farming one organic alternative to chemical pesticides is clay. I am guessing that would mean that they make a light slurry of clay and water and spray it on the apples.

css "image replacement"

image replacement by covering the text with the image (used today, for future reference).

launchd and cron

cron is deprecated under Mac OS X 10.4 and 10.5; it is replaced by launchd. You can schedule tasks with launchd by making a .plist, putting the plist in ~/Library/LaunchAgents/, and running something like launchd load ~/Library/LaunchAgents/my-task.plist. Cron is still present on the system, though. If you still want to use cron, just set up your crontab as usual with crontab -e and cron will automagically be turned on (launchd will load com.vix.cron, which tells it to check the crontab). a couple more details on launchd and cron, see also crontab.

scp, finally

scp examples with Darth Vader. yarr, I see less sftp in my future.

PDO

wtf is PDO? -- a PHP extension that gives you a class with a standard set of methods for working with data in databases. Why? You can use that standard set of methods. And apparently PDO MySQL operations are faster than native PHP MySQL operations, at least in some cases. The catch? Comes with PHP 5.1. You might have to compile PHP with the pdo_mysql driver (exhibit a, exhibit b).

Eclipse install notes

Today I installed Eclipse. Like my ubuntu-eee install notes, the following is not a how-to. I'm documenting my experiences so that knowlegeable users can compare (and correct me), and so that I have a reference for future Eclipsy activities.

Update: 2008-09-10 Eclipse has not really worked out for me at all. Checking stuff out of SVN and setting up projects worked fine, but when I went to write code, the code-completion features did not work at all--in fact, they crashed Eclipse entirely. I turned them off... and Eclipse still crashed. So maybe the following should serve as a "what not to do"...

  1. First of all I knew I needed to use PDT (PHP Development Tools for Eclipse). So I installed the Eclipse 3.3/PDT 1.0.3 bundle--Eclipse + PDT all pre-packaged. While this was labeled "stable", it turned out to be seriously crashy. So I went all cybermen and deleted it.
  2. The second time around, I installed plain Eclipse (Ganymede), and used Eclipse's internal "update manager" to install...

    Eclipse's update manager is under the help menu as "Software Updates..." (at least on the Mac). The first two plugins I downloaded as .zips and added within the Update Manager via Add Site... > Local... > path/to/unzipped/plugin. Subclipse I installed by adding the update site directly: Add Site... > http://subclipse.tigris.org/update_1.4.x (the other two were less clear about their Eclipse update manager URLs). yay, PHP and SVN support.

  3. I work with Drupal, which uses the .module and .install extensions for some php files, and I had tell Eclipse to treat files with those extensions as PHP. how to force php syntax highlighting in Eclipse--you get more than just syntax highlighting with this.
  4. When I first checked out my project from svn using subclipse, Eclipse didn't set it up as a PHP project, meaning that no code features were available. This FAQ was helpful: How do I manually assign a project Nature or BuildCommand? Project "nature" I guess has some sort of "project type" implications that make various project features and behaviors available, and "build commands" are "parse-y things that report php warnings and errors". As the link above specifies, I went into the .project file in my project's base directory and added the right "nature" and "build commands"; I got the correct values by creating a fresh php project and looking at its .project file.

It remains to be seen whether I actually like working in Eclipse, but I've resolved to give it a good try.

Ubuntu on my Eee 1000

Last week I got an Asus Eee 1000H, and this weekend I installed Ubuntu on it (this is the "Windows" version and came with XP installed--NewEgg had a $100 instant rebate on the 1000H). Thanks to some fantastic software and how-tos from the community, it was mostly straightforward.

The following is not a how-to. I'm documenting my experiences so that knowlegeable users can compare, and so that I have a reference for future linuxy exploits.

  • I got a 4 GB flash drive and turned it into an Ubuntu Live USB. Right on the Eee, I downloaded the Ubuntu ISO via bittorrent (linked on the get Ubuntu Eee page) and UNetbootin, and used UNetbootin to put the ISO stuff on the flash drive. I also downloaded the Ubuntu Eeee kernel from these installing the Ubuntu-eee kernel manually which should fix Eees with Ubuntu but no internet access.
  • How to put a live Ubuntu image on a USB stick
  • I saw instructions to hit escape during startup to switch the boot device, but it wasn't working for me, so hitting f2 (over and over) let me enter the BIOS and switch the boot device.
  • Originally I couldn't seem to boot to the flash drive... to make it work I dumped the contents of the USBTest.zip file from this Pen Drive Linux boot test on my freshly formatted flash drive, running the makeboot.bat file (from the flash drive only!) and then putting the Ubuntu ISO on again with UNetbootin (and choosing to overwrite the exisiting syslinux). So that worked, but may not have been necessary, because I also twiddled some BIOS settings--I'm a total PC noob, and I wasn't exactly sure what needed to be changed.
  • In the BIOS I also disabled "quick boot" and "quiet boot" for the time being. I re-enabled "quick boot" but I haven't paid attention to any difference it might make.
  • I installed Ubuntu over the whole Windows partition.
  • Once I rebooted into my new Ubuntu installation, my flash drive refused to automount--it kept saying "Invalid mount option". It turned out that the fstab (a file that describes how the OS should deal with mounting devices) was messed up. Apparently a bunch of Ubuntu users were having similar issues after installing 8.04.1. My fstab had my USB devices trying to mount as a CDROM (I suspect because Ubuntu assumed that my install device was a CDROM rather than a flash drive).

    First of all I read this page on understanding and editing fstab. fstab is a plain text file located at /etc/fstab. You can only edit it with root permissions, because messing it up can prevent your system from booting.

    Basically, I had a line that looked like this:

    /dev/sdb1       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0

    that needed to look like this:

    /dev/sdb1       /media/usb      auto    auto,user,exec,rw,utf8  0       0

    I examined the fstab with:

    tail /etc/fstab

    I confirmed the device path (in this case, "/dev/sdb1") by plugging in my USB drive, opening a terminal, and typing:

    sudo fdisk -l

    This will prompt for a password, then spit out a block of info about each available drive; the block describing my 4 GB flash drive looked like this (note the "device" and "system", which in this case are "/dev/sdb1" and "W95 FAT32" respectively):

    Disk /dev/sdb: 4009 MB, 4009754624 bytes
    255 heads, 63 sectors/track, 487 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x00000000
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1   *           1         488     3915733+   b  W95 FAT32
    Partition 1 has different physical/logical endings:
         phys=(1023, 254, 63) logical=(487, 124, 63)

    I created the mount point (/media/usb), made a backup, then edited my fstab with vi (for gui, use gedit):

    sudo mkdir /media/usb
    sudo cp /etc/fstab /etc/fstab.bak
    sudo vi /etc/fstab

    This made my flash drives automount as expected.

  • Once I could automount my flash drive, I followed the instructions I mentioned earlier on installing the Ubuntu-eee kernel manually and using the array.org ubuntu-eee repository. This got internet access (and swishy UI effects) working.
  • I updated installed programs via the clicky red arrow and didn't bother to find out the consistent way to access this.
  • I installed Apache, MySQL, and PHP according to these instructions for LAMP on Ubuntu. Basically:

    sudo tasksel install lamp-server

    Patience is a virtue. I think that after installing AMP via tasksel, you can stop and start Apache and MySQL via the Services panel (in the menus at System > Administration > Services).

fish list

Consumer Guide to Mercury in Fish. Also notes whether the species are "in trouble".

subnotebook purchase

Since I won't be able to get the MSI Wind before I go out of the country at the end of the month, I need to get something else to travel with (am not taking my main laptop out of the country with current border policies). I almost got the HP Mini-Note, but then I settled on the larger/faster Asus eee 1000. Pros: ships now. Cons: having to settle.

the future of shopping malls: take 'em away

Daydreams for redeveloping closed shopping malls: The Future of Shopping Malls: An Image Essay. This made me think of visiting that huge posh empty mall in downtown Vancouver.

I think the fallacy here is that the mall construction is fundamentally shitty. First, malls are built with a short lifespan in mind--I'd guess 20 years or so. Second, they're built without considering environmental factors; for example, they have flat roofs and the plan for dealing with snow is to heat the building enough to melt it off; they don't take advantage of solar energy for heat and light, or of trees for shade. If the power is out, you can't heat, cool, or light a mall. Runoff has nowhere to go. Third, many of them aren't accessible without a car: they're surrounded by acres of baking asphalt and have their own exit off the freeway. Unfortunately, malls are a sunk cost, the results of a series of horrible decisions that we need to move past rather than investing ourselves in revitalizing. Rip it up, recycle the parts, and put something green and growing there.

link via boingboing.

topo maps

free topographical maps - kmz layer for google earth, also pdfs of USGS topo maps. Also mentions "Teslin paper", which is extra-durable and waterproof paper, perfect for printing maps and probably plenty of other things, too. thx kb.

freewheel

Sheldon Brown on freewheels, how to replace a freewheel (youtube). Turns out I have a freewheel, so I don't have to replace the whole wheel.

"business mohawk"

this story stuck in my head--I read it years ago but it came up in discussion last night so here it is: The Business Mohawk by Ben Brown.

lost my old .bashrc

Bash prompt customization cheat sheet.

my usual .tcshrc looks approximately like this:

set complete = enhance
set autolist = ambiguous
set prompt="[%t %n@%m:%c03] %# "    # prompt like [1:04pm bec@hat:~] % 
alias ls "ls -AF"

spatial concepts

listing, description, and diagrams of (some?) spatial relationships.

ʇxǝʇ spɹɐʍʞɔɐq puɐ uʍop ǝpısdn

turn regular text into upside-down, backwards unicode text. via this techcrunch article on subverting google trends. (thx t-dub)

water treatment

last week I was enjoying these charts and descriptions of DIY water treatment methods.

wheat in Maine

wheat production is coming back in Maine.

importing m3u playlists into iTunes

I haven't found a way to import m3u playlists into iTunes and have them come through in the correct order. This afternoon I wrote an AppleScript to do it for me. AppleScript makes me crazy--a PDF manual? "natural language"? seriously?

Anyway, this script:

  1. takes a .m3u playlist file that contains relative paths to the music in the playlist--generally, the playlist file will be in the same directory as the music--creates a playlist in iTunes, imports the tracks, and adds them to the new playlist.
  2. may be used by
    • drag-and-dropping m3u files on the script from the Finder
    • double clicking the script and then choosing a file
    • or putting this script in your "~/Library/iTunes/Scripts" folder (create it if it doesn't exist) and accessing it via iTunes' scripts menu.
  3. may be edited by you--open it with the Script Editor application that comes with Mac OS X (in /Applications/AppleScript)
  4. This script is provided without warranty! It is not necessarily well-implemented!

download: Import m3u Playlist into iTunes.zip

Remind me to use something else the next time I feel compelled to do any application scripting.

house full of teacups

hanging lights made from teacups. via boingboing.

fixing bikes

bicycle how-to videos. via kb.

measure: how hard is it to misuse?

Eads pointed me to this ordered list of ways programming interfaces can suck.

homemade "plastic"

make plastic from milk. via nick and make.

retro terminal

GLTerminal: term that emulates screen curvature. hilarious.

growing sprouts

Jen recently inspired me to try to grow sprouts.

drupalcon presentation

In March two of my coworkers and I gave a presentation at DrupalCon Boston 2008; The video is (or will soon be) online at the Internet Archive: DrupalCon Boston 2008 - Drupal as a GIS/Mapping Platform.

word: halophyte

A salt-tolerant plant. New Zealand Spinach is a halophyte.

word: Hegelian

An 18th century philosopher named Hegel had the idea that you can evolve an idea into an absolute, perfect idea. You do this by taking a thesis and it's antithesis and finding another thesis that addresses both... rinse and repeat. This idea is called the "Hegelian Dialectic"; a diagram may be somewhat helpful.

Hegel also had other ideas... wikipedia, lazybones.

tiny laptops

Subnotebook roundup at Boing Boing Gadgets. Like the boingboing editors, I'm drooling over the MSI Wind.

rhubarb season

rhubarb crisp. I've read recipes with half the sugar.

oEmbed

oEmbed was introduced recently (beginning of this month) as a standardized way to get enough info about a resource to embed it; ie, get the format, dimensions, url, title, etc., so that you can build an <img> or <embed> tag for rendering the resource on your page. This is an extremely useful idea; it would let people paste a URL places rather than the youtube embed codes or whatever. However! This scheme requires two URLs to represent the same resource; a more RESTful approach would simply ask the resource's URL for a particular HTTP response. Backdrifter explains: oEmbed FAIL! Represent RESTfully.

(similar, but less readable spec: XRDS)

laser cutter access

Ponoko lets you design stuff to get cut by a laser cutter. I think that the way industrial tools like laser cutters are becoming more and more available to people is very cool.

on using open source

"If you want to use open source, you have to learn to stop being a customer...you have to become a collaborator" -- from a talk on Plone given by Steve McMahon here at NetSquared.

Christine recommends

Fun Home, a graphic novel by Alison Bechdel.

font making

web app for making truetype fonts via kottke.

weird

Platypus...
  1. are venomous.
  2. nurse their young through their abdominal skin(?)

bike repair book

I'm looking for a good bicycle repair book: one that talks about tools, has a ton of diagrams (preferably hand drawn), and plenty of description and best practices. Today I came across a book called "Fix Your Bicycle", by Eric Jorgensen and Joe Bergman, put out by Clymer Publications between 1972 and 1979. It is full of diagrams and photos, from photos describing how to patch tires to technical illustrations of exploded bottom brackets. It also describes bicycle tools and how to use them. In short: I want it. I'm trolling Amazon's used sellers for it this very moment (there are several misspellings, for example).

Also looking good: Anybody's Bike Book, by Tom Cuthbertson (kb has a 1979 edition).

MEC backpacks

uh, backpack shopping alert. sorry.

MEC is a Canadian outdoor gear company that is a little bit like a slimmer, hipper LLBean with all the flannel-fireside-lifestyle crap trimmed away. They have a very good backpack selection, too. As a simple, minimalist overnight pack or travel bag, I liked the 30 liter Brio Crag daypack. Also the tiny Pika daypack is almost exactly like the tiny simple bag I inherited (translation: appropriated) from my mother, exactly right for casual hikes.

apples

kb pointed me to this fantastic Atlantic article about an apple collector and curator. Linked in the article is the Fedco Seeds tree catalog, which has tons of info about cultivating trees as well as descriptions of varieties for sale.

word

"peregrinations". lovely.

fire in the hole

CNN video: flames shooting out of a manhole in Cambridge MA yesterday. (thx Justin)

from work today...

[6:32pm] becw: DRY?
[6:32pm] eads: Don't repeat yourself.
[6:32pm] t-dub: Don't Repeat Yourself
[6:32pm] t-dub: Or eads
...
[6:33pm] nikCTC: oh, it gets better...
[6:33pm] nikCTC: let me double-check my logs
[6:36pm] nikCTC: from April 10th of this year: (02:13:28 PM) becw: DRY, t-dub?

cross-browser

I would agree more if each browser displayed it differently: do web sites need to look exactly the same in every browser? (via)

waterproofing canvas

for future reference: five canvas waterproofers. Iosso Water Repellent is the only nontoxic one there.

front bike racks

platform racks for the front of bikes. (via)

I admit it.

I just took a personality test which asked if I "prefer to stick with things that I know", which I do, but the corollary is that I prefer to know a lot of things.

two "DIY" shoes

... from shoe companies. youtube videos:

backpack shopping

I wish there was more outdoor gear designed like this Lafuma "Eco" backpack. It's hemp plus recycled polyester, and designed with less fabric and fewer plastic bits. Plus, they don't have weird brightly colored panels like most packs. The color of the pack on Lafuma's site is pretty flash: mottled grey with red tabs.

The other pack I'm looking at is the Osprey Stratos 40, which has a bunch of straps for compression and gets universally awesome reviews. Also, I can go check this bag out in person at REI. If I were to get a new pack this spring (doubtful: I already have a pack), this would probably be the one.

recent wikipedia lookups

  • Haberdashery - a shop that sells accessories like hats and gloves, and also sometimes buttons and ribbons.
  • Muntjac - a small omnivorous deer with tusks.
  • Round robin - a pact or petition.

shoe sizes

international shoe size conversion chart. with inches and centimeters as well as shoe sizes.

current book list

Books that I have started recently but have not finished, oldest to newest:

  • Feminism and Science Fiction, by Sarah Lefanu. This needs to be read with a good SF library at hand.
  • Skin, by Dorothy Allison.
  • Trampoline, a short story anthology edited by Kelly Link.
  • The Best American Short Stories, 2006, edited by Ann Patchett. I haven't gotten past the table of contents.
  • The Body in Pain, by Elaine Scarry.
  • Tin House, Vol. 9, #3: Off the Grid.
  • Learning Python, by Mark Lutz.
  • The SFWA European Hall of Fame, a scifi short story collection edited by James Morrow and Kathryn Morrow.

This stack is only seven inches high but feels overwhelming. I probably won't need any more books until at least July; I won't have finished the stack by then, only gotten more impatient with it.

quoth HBO

Says John Adams in part 5 of the eponymous HBO series: "Thanks be to god that he gave me stubbornness, especially when I know that I am right."

CHDK

CHDK -- extra firmware for Cannon digital cameras. Looks like fun. (via)

soil test

UMass soil testing service. $9, tests for heavy metals, among other things. Important for anyone gardening in cities or next to houses that may have been painted with lead paint! If there's lead in the soil and you're a long-term resident, you can do plant-based remediation (so cool).

magazine of *stuff*

Materials Monthly -- a monthly publication from Princeton Architectural Press that includes actual material samples. For example, issue 11 has "Prismatic Stainless Steel", "Hand-finished Acrylic Floor", and "Silver Reflective Film". It comes in a box! via kottke.

cell phone customization

Got a fancy new cell phone tonight (thanks ben!) and found that the only ring tones it will play are .mmf format. Converted my aiffs to wav, then used a crunky but free and handy tool from Yamaha to turn those into mmfs. The phone is a Samsung T509, and the converter software is Yamaha's "Wave to SMAF Converter". mmf!

Now if only I could replace those menu icons...

words for "poor"

Ben recently asked a question about what words to use when talking about poverty.

"coworking"

Coworking in Boston. This article on Betahouse culture is pretty off-putting, though. (Betahouse is a Boston coworking space)

bike insurance

VeloNews on bike insurance.

spicy oven fries

My friend Rachel posted a potato recipe on her lj a few weeks ago, and I made it and it turned out really well. My variation goes like this:

Preheat the oven to 450°.

Put in two tablespoons or so of flour, some adobo powder, and some cumin in a little bowl and mix it up. (alternatively, use flour, salt, pepper, paprika, and onion and garlic powder)

Rinse and dry a couple of potatoes (Yukon golds are delicious of course) and slice them into eighths, lengthwise. Put the slices in a big bowl, drizzle with olive oil and mix up. Drop the flour mixture on top and stir the slices 'till they're coated. Set them skin-down in a pan, then stick 'em in the oven and cook for 15-20 minutes or until they start to get brown.

These are kind of like home-spicy-fries, crispy and spicy on the outside. I think I ate an entire cookie sheet of them.

eads recommends

The BBC TV series "Planet Earth": "It is the coolest nature show ever."

repetition

Tonight's dose of thinking: possibly alternating "rock o'clock" with my current response, "ain't got no job o'clock" would save a little sanity for anyone who has ever asked me the time twice. (If you ask three times, I guess there's nothing I can do for you.)

Noting the above, it would be an extremely bad idea for me to own this tshirt.

skiing to the North Pole

North Pole Speed Record. This blows me away. This guy is trying to set a speed record for the trip to the North Pole, which he is doing unsupported (carrying all his own food and gear), on skis, and hopefully in 30 days. The standing record is 37 days, set in 2005 by a team using dog sleds and resupplying multiple times. (via kottke I think.)

need to make some more beer

Brews to Accessorize the Modern Hipster. via kb.

microblogging

Asaph - a very light 'microblogging' tool with a neat posting interface: apparently all posts are made via a javascript bookmarklet that interacts with the current page (post currently selected text, interactively select a picture, or just post the url). via.

tea

Eads gave me two teabags of this tea, it is delicious: Smoky Tarry Lapsang Souchong.

shoes

I am pretty sure that I am going to get these canvas shoe-boot things (um... "booties"?) but I can't decide whether to get them in black or grey.

a little alliteration

[My suggestion was] not concocted with enough consideration of the context.

listen to

eads recommends the Infinite Mind programs, a series of radio shows on sciencey and social sciency things.

crafty foil+paper

techniques for laminating foil onto paper @ evilmadscientist.

AppleScript 'dialects'

a commenter on this AppleScript history piece says:

... I do think it's a pity they didn't ship AS with both English and Programmer dialects. The English syntax is ideal for inferring the intent of a script, even without knowing the language, while the Programmer syntax's explicit, unambiguous semantics would have been better for understanding the actual mechanics. Users could then switch between the two on the fly to provide whichever view they find most appropriate at the time. ...

Applescript's 'English' makes me crazy every time I use it, I don't even necessarily agree that it is good for 'inferring the intent of a script', but the idea of having 'dialects' that you could just toggle between... that's pretty interesting/funny. (via)

p.s. applescript's 'programmer' dialect was developed but never part of shipped versions of applescript.

"anything but country" and rural environmentalism

One Nation Under Elvis - article at Orion Magazine on how class divisions have hurt the environmental movement. via megan (if you follow my google reader shared items you've seen this before.)

history as a wiki for time travelers

awesome: International Association of Time Travelers Members' Forum. via.

talk like a physicist day

apparently someone named last friday as Talk Like a Physicist Day ("because we're at least as cool as pirates"), which is awesome, except that friday was Pi Day and I have to insist that talk like a physicist day have its own date.

myspace music hate

I hate it when new little bands only have a myspace page with a couple non-downloadable tracks. I want them to have a real web page from which I can download their two or three tracks as mp3s, so that I can put the tracks in playlists and remember who they are five months from now when they may eventually be releasing an album.

p.s. dear bands: take a night off from beering and spend $30 to set up a real site. have someone go grab an account for you at nearlyfreespeech.net, where you can get domain names and feature-complete pay-as-you-go hosting. have them throw Wordpress or Chyrp on your new site, or even use a Blogger account. Post your songs, and the occasional narcissistic photo of yourself looking impossibly hip. If you bother to do it yourself, this can even turn into your post-music-dreams career (see: 25% of the web designer-developers who think they're hot shit).

family movie

for future reference: My grandfather's dog Chico (a great dane) was in the movie "Breakfast for Two", which was made sometime in the 1930s.

Equation Service

I'm surprised that I didn't mention Equation Service here years ago; it's a sweet little service for Mac OS X that lets you write LaTeX equations just about anywhere (TextEdit, Keynote, etc.) and render them to images in place with a keyboard shortcut (or item in the Application->Services menu). This was one of my favorite utilities when I was in school, but I haven't set it back up on Leopard yet.

waxed canvas

pants made out of old army tents (via). also, a waxed canvas parka. waxed canvas is one of my favorite materials, though I really don't have any in my life. yet.

thing I am trying to fix in my brain

Doxygen formatting conventions (specifically for any drupal coding I'm doing.)

lolcat

lolcat for the day

postal code resolution

interesting note on geographic resolution of postal codes--in the US, the five-digit postal code covers a largish land area, whereas in some places (like Canada and the UK) postal codes resolve to a block, sometimes even indicating the side of the street or the building.

browser compatibility testing

Litmus "day passes" -- Litmus is a web app for testing browser compatibility. $18/24 hours. via.

depth of field hate

check out some photos that use depth of field in an acceptable manner (from this post on photography)

VS.

any food blog ever (see Simply Recipes or 101 Cookbooks; almost any photo on any food blog will illustrate depth of field abuse, but A-list food blogs are extremely consistent about it).

aside: this cookie recipe at 101 Cookbooks looks delicious.

google maps api demos

for later: Google Maps API Demo Gallery.

talk last night

was talking with Ben about the grand topic of capitalism and he brought up this bit about Capitalism and Morality (Thai Beer and Monks).

EveryBlock maps

EveryBlock on making their maps.

Archives

who I am