Friday, June 19, 2015
The E-mail Productivity Curve
Brilliant. Captures exactly why we hate email -- and why we love it.
Via: The E-Mail Productivity Curve - Cal Newport
Friday, February 06, 2015
The origins of the Olaf card
The idea was to walk up to a total stranger and hand them the card– without saying a single word. The wordlessness is a crucial element. Your initial communication with the person is solely through the card – and your friendly, hopeful facial expression.
We laughed until our sides hurt.
- 85% of people would laugh, take the card, and keep walking.
- 10-12% would immediately turn and go without any response at all – studiously making no eye contact.
- The remaining 3-5% would look at Sam furtively, look down at the card, look at Sam again … and then reach out very gingerly, tickle him very briefly, and then make a break for it.
Sunday, January 25, 2015
Managing and optimizing lists of password masks
I've been working on some password-cracking research on the side. I thought I'd come up with a cool new idea, but it turns out that someone else already thought of it.
It occurred to me last night that a big list of passwords could be abstracted out into their equivalent masks, and then a frequency count of those masks could be generated, which could then be exhausted in frequency order.
First, I extracted a frequency count of character set combinations (masks) from all eight-characters-longthe RockYou breach's password list, yielding a list of the form:
100:hundredofthese 95: 95ofthese [...] 2:justtwoofthese 1:onlyoneofthese 1:alsoonlyoneofthese
... as follows:
#!/bin/bash
echo "- Getting frequency of character patterns from RockYou ..."
time gunzip -cd rockyou.txt.gz \
| tr '[:lower:]' 'l' \
| tr '[:upper:]' 'u' \
| tr '[:digit:]' 'd' \
| tr "[\ !\"#$%amp;&\'()*+,-./:;<=>?@\[\\\]^_\`{|}~]" 's' \
| sed 's/[^luds]/a/g' \
| strings \
| cut -b1-8 \
| freqcount \
> rockyou.freq.8a
wc -l rockyou.freq.8a
head rockyou.freq.8a
echo "- Generate masks."
echo "- Ignoring all masks with more than three consecutive 'a' charset."
time cat rockyou.freq.8a \
| cut -d\: -f2 \
| sed 's/l/?l/g;s/u/?u/g;s/d/?d/g;s/s/?s/g;s/a/?a/g' \
| egrep -v 'aaaa' \
> rockyou.masks.8
wc -l rockyou.masks.8
head rockyou.masks.8
echo "- Done."
#end of script
Next, I wrote a script to exhaust each one in order by frequency using hashcat:
#!/bin/bash
for mymask in `rockyou.masks.8`; do
echo "- Running mask: $mymask ..."
cudaHashcat64.bin -a 3 -m 1500 \
target-hashes.list \
$mymask
echo "$mymask: done - `date`" >> $0.log
done
#end of script
Then it occurred to me that if someone else had published this info, and had used real corpora of passwords as the input, then our frequency lists would probably look similar. So I did the following Google search:
"?l?l?l?d?d?d?d" "?l?l?l?l?l?d?d?d"
... and the first hit was the KoreLogic blog post.
Dangit! :-) But at least I'm catching up to the state of the art; the KoreLogic article was published in April 2014. :-)
I got the idea from work I had done on some license-plate-collecting stuff I do on the side. I thought of it for capturing high-level patterns in serials, so that people can search for a plate based on the serial. A plate with "BDT 606" on it would match any plate whose serial "mask" is "AAA 999" using my notation. (I then match more closely, but it's used for a high-level search first).
I haven't watched the KoreLogic presentation yet, but I can definitely improve upon my own approach, because I'm being overly aggressive in turning then entire set of non-alphanumeric-but-printable characters into 's':
| tr "[\ !\"#$%&\'()*+,-./:;<=>?@\[\\\]^_\`{|}~]" 's' \
... when most folks use the simple ones (#$%@, etc.) I could create a custom charset for this using the notation as noted here ... and then turn the remaining characters into another custom charset that is the remaining characters.
I then found PACK - the Password Analysis and Cracking Kit, which is is a set of Python scripts to manage masks, including optimizing a set of masks based on a given timeframe (or, "I have 24 hours. Which masks should I use to maximize how many passwords I can crack?")
FreeBSD LSI SAS9211-8i HBA firmware notes
I'll be using this post to store information about LSI HBA firmware, with a focus on FreeBSD (but also drawing upon Linux information). It may also be useful for users of FreeNAS, PC-BSD, unRAID, Nexenta, or ZFSguru.
Why - SATA port density on a budget
If you are using ZFS, you do not need RAID -- you just need lots of fast SATA ports. To maximize the features of ZFS, it needs to directly access attached drives in JBOD mode rather than as RAID. If you can afford them, you can buy the LSI 9211-8i HBA card. Alternatively, you can also buy a less expensive card, and then replace its stock "IR" (Initiator-RAID) firmware by "crossflashing" to an "IT" (Initiator-Target) version of LSI's general firmware for 9211-8i hardware. This option is useful for people building home NAS systems on a budget. Popular cards include the Dell PERC H200 and the IBM ServeRAID M1015. This ServeTheHome post introduces the topic well.
Here is the relevant dmesg for a Dell PERC H200 Internal (H200I) under FreeBSD 8.4-RELEASE. (Note that this particular card's LSI firmware (Phase 9) is out of sync with the FreeBSD driver (Phase 14), which may have unexpected side effects. The system was initially built as a FreeBSD 8.1-RELEASE system in 2010.)
$ uname -r 8.4-RELEASE-p19 $ egrep ^mps0 /var/run/dmesg.boot mps0: <LSI SAS2008> port 0xc000-0xc0ff mem 0xfb3b0000-0xfb3bffff,0xfb3c0000-0xfb3fffff irq 16 at device 0.0 on pci3 mps0: Firmware: 09.00.00.00, Driver: 14.00.00.01-fbsd mps0: IOCCapabilities: 1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDisc> mps0: [ITHREAD]
General flashing tips
Before flashing, and especially before erasing any flash, use the sas2flsh.exe -listall option to note the SAS ID of your device (usually beginning with "0x590"). If you accidentally erase the entire flash (sas2flsh.exe -o -e 6 will retain your SAS ID, but sas2flsh.exe -o -e 7 will wipe it), you will not be able to re-flash the device unless you have this ID. Write it down.
Some earlier versions of sas2flsh.exe allow cards to be flashed from IR firmware to IT firmware; others do not. I and others have had luck with the one that comes with LSI's Phase 7 (AKA P7 or P07) firmware. (Try this link, or search LSI.com for "9211_8i_Package_For_P7_Firmware_BIOS_Upgrade_on_MSDOS_and_Windows" to download the package that contains this version of sas2flsh.exe.
To flash the firmware on cards installed in non-UEFI motherboards, you can create a DOS-bootable USB key using a tool like Rufus. Rufus will make the device bootable with FreeDOS or MS-DOS (well, actually, Windows ME!). I and others have had better luck using the MS-DOS option. (According to that thread, LSI themselves recommend MS-DOS rather than FreeDOS).
Also note that when flashing using sas2flsh.exe there are two different components to be flashed: the firmware (contained in a filename sometimes ending with .fw, and usually named after the device in some way) and the BIOS (usually named something like MPTSAS2.ROM). The firmware component is what your OS driver communicates with. The BIOS component allows you to configure the firmware at boot time, and can enumerate the list of attached hard drives. For ZFS and JBOD purposes, the BIOS is not strictly necessary, and has even been reported to cause problems when present. Erasing the firmware areas sas2flsh.exe -o -e 6 and then just applying the firmware without the BIOS will also result in faster boot times.
A common error that people get when flashing is "Failed to Validate Mfg Page 2". This occurs when you try to flash to the LSI firmware without first erasing the firmware. The techmattr blog has some good information.
Phase 10 firmware or higher is needed for cards in this family (6GB/s HBSa) in order to support drives larger than 2GB. See this LSI KB article (old version cached at the Internet Archive)
FreeBSD flashing considerations
At this writing (2015-01), there have been reports of Phase 20 not playing well with FreeNAS and FreeBSD. Downgrading to Phase 16 (FreeBSD 9.3 and 10.0) or Phase 19 (FreeBSD 10.1) is reported to be more stable.
Under FreeBSD, PC-BSD, and FreeNAS, the desired end state is for the "Firmware" and "Driver" ports of the dmesg line to use identical firmware versions. For FreeBSD 10.1-RELEASE, this is the Phase 19 version. In the dmesg output, the Firmware item is what's on the card, and the Driver item is what the OS supplies.
mps0: Firmware: 19.00.00.00, Driver: 19.00.00.00-fbsd
In fact, FreeNAS will even complain if they are mismatched.
(I also list all of the firmware/OS pairings I know of towards the end of this post.)
Beware when upgrading a FreeBSD-based OS. Depending on the combination of firmware and driver, your drives may disappear from the OS' view until you reflash. This can be especially troublesome if your root filesystem is ZFS.
How to reflash the Dell Internal Tape Adapter 15MCV card as a 9211-8i
There is a card from Dell that looks almost identical to the H200I card, but is actually a Dell Internal Tape Adapter board (Dell part number 15MCV). This is identified in various levels of firmware and utilities as "Int Tape Adapter" or "IntTapeAdptr", and identified under Linux as:
Vendor(0x1000), Device(0x0072), SSVID(0x1028), SSDID(0x1F22)
Cards labeled as "H200" on eBay are sometimes actually these cards instead. Unfortunately, the usual methods for flashing to generic LSI drivers do not work for the Tape Adapter boards. But as discovered by Hardforum user lamune in this post, if you start from the original Dell Internal Tape Adapter firmware, and then, without erasing the current firmware, flash using Supermicro HBA drivers (Phase 16 at this writing) as an intermediate step, you can then flash to the LSI firmware.
Here is the Linux dmesg for my Internal Tape Adapter board, prior to being cross-flashed. Note that capabilities include RAID, and the BIOS has a standard version (07.11.10.00):
$ dmesg | egrep -i 'lsi|mpt|mps|sas' [ 0.000000] HighMem empty [ 5.722377] mpt2sas version 16.100.00.00 loaded [ 5.731608] scsi4 : Fusion MPT SAS Host [ 5.739575] mpt2sas0: 32 BIT PCI BUS DMA ADDRESSING SUPPORTED, total mem (497212 kB) [ 5.739643] mpt2sas 0000:01:00.0: irq 43 for MSI/MSI-X [ 5.739682] mpt2sas0-msix0: PCI-MSI-X enabled: IRQ 43 [ 5.739686] mpt2sas0: iomem(0x00000000dfcb0000), mapped(0xe0280000), size(65536) [ 5.739689] mpt2sas0: ioport(0x000000000000dc00), size(256) [ 6.028016] mpt2sas0: sending diag reset !! [ 7.268013] mpt2sas0: diag reset: SUCCESS [ 7.418064] mpt2sas0: Allocated physical memory: size(4134 kB) [ 7.418070] mpt2sas0: Current Controller Queue Depth(2748), Max Controller Queue Depth(2879) [ 7.418073] mpt2sas0: Scatter Gather Elements per IO(128) [ 7.648484] mpt2sas0: LSISAS2008: FWVersion(07.15.08.00), ChipRevision(0x03), BiosVersion(07.11.10.00) [ 7.648490] mpt2sas0: Dell 6Gbps SAS: Vendor(0x1000), Device(0x0072), SSVID(0x1028), SSDID(0x1F22) [ 7.648492] mpt2sas0: Protocol=(Initiator,Target), Capabilities=(Raid,TLR,EEDP,Snapshot Buffer,Diag Trace Buffer,Task Set Full,NCQ) [ 7.648577] mpt2sas0: sending port enable !! [ 10.168254] mpt2sas0: host_add: handle(0x0001), sas_addr(0x590bxxxxxxxxxxxx), phys(8) [ 15.296010] mpt2sas0: port enable: SUCCESS
Here is a Linux dmesg after successful crossflash of firmware, but skipping installing a BIOS. Note that capabilities no longer include RAID, and BIOS is empty (00.00.00.00)
$ dmesg | egrep -i 'lsi|mpt|mps|sas' [ 0.000000] HighMem empty [ 5.784639] mpt2sas version 16.100.00.00 loaded [ 5.789191] scsi4 : Fusion MPT SAS Host [ 5.793970] mpt2sas0: 32 BIT PCI BUS DMA ADDRESSING SUPPORTED, total mem (497212 kB) [ 5.794039] mpt2sas 0000:01:00.0: irq 43 for MSI/MSI-X [ 5.794081] mpt2sas0-msix0: PCI-MSI-X enabled: IRQ 43 [ 5.794086] mpt2sas0: iomem(0x00000000dfcb0000), mapped(0xe0140000), size(65536) [ 5.794088] mpt2sas0: ioport(0x000000000000dc00), size(256) [ 6.235645] mpt2sas0: Allocated physical memory: size(4964 kB) [ 6.235652] mpt2sas0: Current Controller Queue Depth(3307), Max Controller Queue Depth(3432) [ 6.235654] mpt2sas0: Scatter Gather Elements per IO(128) [ 6.468421] mpt2sas0: LSISAS2008: FWVersion(19.00.00.00), ChipRevision(0x03), BiosVersion(00.00.00.00) [ 6.468429] mpt2sas0: Dell 6Gbps SAS: Vendor(0x1000), Device(0x0072), SSVID(0x1028), SSDID(0x1F22) [ 6.468432] mpt2sas0: Protocol=(Initiator,Target), Capabilities=(TLR,EEDP,Snapshot Buffer,Diag Trace Buffer,Task Set Full,NCQ) [ 6.468517] mpt2sas0: sending port enable !! [ 8.978905] mpt2sas0: host_add: handle(0x0001), sas_addr(0x590b11c017d2a400), phys(8) [ 14.116010] mpt2sas0: port enable: SUCCESS
Known FreeBSD versions and their equivalent target mps driver versions
- 8.2-RELEASE: Phase 12? - not sure, but likely 12.00.00.00-fbsd - did not ship with, but it can be backported
- 8.3-RELEASE: Phase 13 - mps0: Firmware: xx.xx.xx.xx, Driver: 13.00.00.00-fbsd
- 8.4-RELEASE: Phase 14 - mps0: Firmware: xx.xx.xx.xx, Driver: 14.00.00.01-fbsd - LSI P14 firmware
- 9.1-RELEASE: Phase 14 - mps0: Firmware: xx.xx.xx.xx, Driver: 14.00.00.01-fbsd
- 9.2-RELEASE: Phase 14 - mps0: Firmware: xx.xx.xx.xx, Driver: 14.00.00.01-fbsd
- FreeNAS v ?? Phase 15 - mps0: Firmware: xx.xx.xx.xx, Driver: 15.00.00.00-fbsd - LSI P15 firmware (ref)
- 9.3-RELEASE: Phase 16 - mps0: Firmware: xx.xx.xx.xx, Driver: 16.00.00.00-fbsd - LSI P16 firmware
- 10.0-RELEASE: Phase 16 - mps0: Firmware: xx.xx.xx.xx, Driver: 16.00.00.00-fbsd
- Phase 18 was committed but not in a release that I can tell.
- 10.1-RELEASE: Phase 19 - mps0: Firmware: xx.xx.xx.xx, Driver: 19.00.00.00-fbsd - LSI P19 firmware
- 10.2-BETA2: Phase 20 - mps0: Firmware: xx.xx.xx.xx, Driver: 20.00.00.00-fbsd - LSI P20 firmware (reported by Dan Langille)
- 10.3-RELEASE: Phase 20 - mps0: Firmware: xx.xx.xx.xx, Driver: 20.00.00.00-fbsd - LSI P20 firmware
- 11.0-RELEASE: Phase 20? - mps0: Firmware: 20.00.07.00, Driver: 21.01.00.00-fbsd - (The FreeBSD driver is version 21, but the latest Avago firmware download (from 2016-04) still shows Phase 20 as the most recent).
Note:After Avago bought LSI, their new download system sometimes makes direct linking more difficult. This search may help.
FreeBSD firmware installers
I haven't had good luck with these, because they often can only perform a small subset of the actions necessary to upgrade firmware. But if you need them, here they are.
- LSI P14 FreeBSD installer
- LSI P15 FreeBSD installer
- LSI P16 FreeBSD installer
- LSI P19 FreeBSD installer
- LSI P20 FreeBSD installer
(For all firmware and installers, see LSI's archive)
Useful command-line snippets
sas2flsh -listall sas2flsh -c 0 -o -testssid 1028:%SSID% > SSID.out sas2flsh -c %num% -f fwname.fw > flash.out sas2flsh -c %num% -b mptsas2.rom >> flash.out sas2flsh -c %num% -b x64sas2.rom >> flash.out sas2flsh -c %num% -o -reset > reset.out
References
- The LSI SAS2IRCU utility can show basic information about your card.
- Bryan Vyhmeister's blog post about flashing IT firmware
- mycusthelp.info comprehensive guide to many kinds of reflashing scenarios
- LaptopVideo2Go forums post listing all cards in the hardware families that may support cross-flashing.
- This FreeBSD Forums post has good discussion about the process generally, and how to work with UEFI motherboards while flashing.
- FreeNAS thread about mismatching firmwmare and FreeBSD driver versions, and cautioning against P20
- PC-BSD bug report asking for driver version to be updated. PC-BSD stated that they will stick with P16 and skip P18.
- Dan Langille's blog about flashing IT firmware from UEFI on FreeBSD
- FreeNAS thread - general overview of the issues
- LSI driver download list for SAS 9211-8i
- Zorinaq blog post about port counts, hardware compatibility, and overall great overview
- eracks blog post about backporting the mps driver to FreeBSD 8.2
- Handy eBay search: "dell" (ucs-71,h200,h200i,u039m,47mcv,65f44,15mcv,015mcv,00RR9J,0U039M) -h200e
Monday, October 27, 2014
Yubikey FIDO error: "A timeout occurred while waiting for a Security Key to be inserted or tapped."
"A timeout occurred while waiting for a Security Key to be inserted or tapped."
... this may be due to ownership of the device.
The fix, via this Yubico forums post:
echo 'KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120"' | sudo tee /etc/udev/rules.d/70-u2f.rules
Before:
crw------- 1 root root 250, 6 Oct 27 21:57 hidraw6
After:
crw-rw-r-- 1 root plugdev 250, 6 Oct 27 21:59 hidraw6
Activation should now proceed normally. Some folks had to then also restart Chrome. Chrome 38 or higher required.
Wednesday, October 08, 2014
Best fake WHOIS business name ever
Admin Organization: LiddyCorp Tofu Mining Corporation of Antarcticavia https://saintaardvarkthecarpeted.com/blog/
Wednesday, September 05, 2012
A different kind of Rick(man) roll
The project featured an array of glacially paced performances of theater artists and actors all genres and nationalities. With artists featured both singly and in groups, the piece offered a unique and secret glimpse into some of the world’s greatest performing artists.
Via: The Long Now blog
Monday, May 07, 2012
Reframing the acceleration of addictiveness
Paul concludes his essay with We'll increasingly be defined by what we say no to. He's right, we will and are.... and:
The problem is, "saying no" is expensive. It costs you willpower to do so. Explicitly saying no doesn't scale. We need automatic or default ways to "say no". The best word we have for that is "filters".
This is your life and it's ending one minute at a time.Tantek is collecting practical, constructive information about how to improve the odds on his personal wiki. Great reading.
The time you spend giving into your urges and supporting your addictions is time you could have spent being creative and productive.
Monday, March 19, 2012
Smells like a pre-Internet library in here
* Alaska license plates (I had to get the obvious one out of the way first)
* books and magazines
* cardboard boxes
* coins
* computers and peripherals
* computer adapters, cords and computer-related tools
* dowls, rods, tubes
* ID cards
* movie stubs
* paper
* pens and pencils
* plane tickets
* twist ties
* water
... and here are the things that I think that my wife hoards:
* books and magazines
* candles
* checks
* coffee cups
* cookbooks
* glass jars
* greeting cards received
* leftovers
* toiletries
Obviously, we have many bookshelves.
Tuesday, December 27, 2011
APC Masterswitch errors: heap corrupted : non-matching sizes
heap corrupted : non-matching sizes :-22904..13041
This sometimes happens when some revisions of the APC Masterswitch OS have too much uptime.
The issue can be temporarily resolved by rebooting the management card. Even though your terminal is filling up with these errors, you can still actually log in and reboot the card - you just have to do it semi-blind.
For some revisions of OS, the key sequence is:
[username]
[password]
3 (the 'System' menu)
5 (the 'Tools' menu)
1 (the 'Reboot' option)
YES (all in caps, to confirm that you want to reboot)
This will clear the error without power-cycling any devices. I suspect that an OS upgrade would address the issue permanently.
Friday, December 23, 2011
Saturday, October 22, 2011
Using vi key bindings in Perl's debugger on FreeBSD
royce@heffalump$ perl -e 'use Term::ReadKey;'
royce@heffalump$ perl -e 'use Term::ReadLine;'
royce@heffalump$
... and making sure that vi key bindings were listed in my .inputrc:
royce@heffalump$ grep editing-mode ~/.inputrc
set editing-mode vi
... I still couldn't use 'em, as demonstrated by what happened when I tried to use movement keys:
DB<1> testtesttest^[[A
In my research, I discovered that Ubuntu folks were installing a different ReadLine. I eventually found the devel/p5-ReadLine-Perl port, which has this pkg-descr:
Perl 5 ships with a module called Term::ReadLine which is an interface
to command line editing and recall. The version that ships with Perl
is only a stub, and offers little functionality.
This module supplants the Term::ReadLine stubs with real command line
editing and recall facilities, written entirely in Perl. Applications
that use Term::ReadLine do not need to be modified to gain the benefits
of this package; it will happen transparently upon installation.
After installing p5-ReadLine-Perl, I'm up and running.
Monday, September 26, 2011
FreeBSD apr1 upgrade error: Configure: 9904: Syntax error: word unexpected (expecting ")")
Performing libtool configuration ...
. / configure: line 9904: syntax error near unexpected token `lt_decl_varnames, '
... which boiled down to:
. / configure: line 9904: `lt_if_append_uniq (lt_decl_varnames, SHELL,,, '
Fortunately, this thread was eventually resolved by someone finding out that they had some libtoo115 files left over, even though it had been deinstalled. I manually removed the extraneous files with:
# pkg_delete libtool-1.5.24
# rm -rf /usr/local/share/libtool15
# rm -f /usr/local/bin/libtool15 /usr/local/bin/libtoolize15
I am now back up and running!
Thanks to Vladislav Staroselskiy for a very helpful post about the FreeBSD apr1 libtool15 problem.
Thursday, August 18, 2011
A little post-1964-earthquake humor
...
The Great Alaska Earthquake happened in late March of 1964. 9.2 on the Richter scale. As many folks know, it was devastating to many parts of southeast Alaska.
Sometime after that event, I was on D Flight “tearing traffic” as usual during a swing shift. One of the Flight’s 292X1s was a “goosey” sort of guy. He was diligently working away that evening as I approached his work station from behind, preparing to “tear traffic” from his position. As I came up behind him I reached up and tapped the fluorescent light fixture hanging directly above. This started the fixture swinging. Then, “tearing traffic” in front of him, I got his attention and looked up as if to suddenly notice the swinging light fixture. He saw I was looking up so he looked up too. He saw the fixture moving and before he had any second thoughts, leaped out of his chair and at double time made for the Operations door. He went past other folks diligently working, through the doors, down the stairs, past the Air Police person guarding access to the upstairs Operations area, through the first floor foyer and out the front doors of the building to the flag pole located in the center of the secure compound area.
Once he got there he couldn’t understand why others weren’t there too. He was sure he had quickly reacted to an earthquake aftershock.
When no one else was around except him and the flag pole it dawned on him that perhaps the swinging light fixture had not caused what he thought. He strolled back into the building, up to the Air Police person on guard duty, showed the guard his badge and continued on up to the second floor and back to his position in the Operations area. He did not stop or even slow down to answer anyone’s questions about his rapid departure a few minutes earlier.
By that time I figured that he had an idea who was responsible for his quick-reaction to the swinging light fixture.
I managed to avoid his attempts to find me through the rest of the swing shift.
Damn 202s! Not funny! Be a takin' 'er easy. Ur Dad sends
Sunday, August 07, 2011
Remembering William Sleator
Friday, August 05, 2011
William Sleator, 1945 - 2011
I am a big fan. My default online handle, TychoTithonus, is the name of the main character in his book The Green Futures of Tycho.
I emailed with him a few times, and he signed one of my copies, but I regret that I never met him in person.
His work struck a chord with me in ways that are hard to explain. Some part of my childhood is now written in stone.
Other links about his passing:
Update 2011-08-07: William Sleator's obituary in the New York Times.
Tuesday, July 12, 2011
Awkward Family Photos - the Board Game
Wednesday, May 04, 2011
Hawaiian Spam can label contest winner

As some of you may know, I have a collection of SPAM cans. The collector/OCD instinct occasionally compels me to do some web searching for SPAM-related stuff.
This morning, I stumbled upon a brand new can design that renders my collection (temporarily) incomplete.
Hawai'ians are big fans of SPAM. Hormel has been grooving to that vibe, and they recently had a Hawai'i SPAM can label design contest for a special edition the the 25% Less Sodium version.
The winner was announced last week. Congratulations to Hawai'ian artist and designer Scott Kaneshiro of Mililani, Hawai'i! Scott's design was deemed "No Kai 'Oi" (best) by Hormel's judges, and will be used on a special Hawaiian can.
If there's a contest for an Alaskan design, I have a couple of ideas. :-)
UPDATE 2011-05-04 7:05AM AKDT: I found this video of the SPAM can design winner announcement posted by nonstophonolulu. It notes that the can will be available in Hawai'ian stores starting in July, and than Scott won $1000 and a year's supply of SPAM. I also found another entry from the Tasty Island blog.
Wednesday, January 12, 2011
Review of Search Engine Blacklist for Chrome - highly recommended

I was getting really tired of useless quasi-spam in Google search results. It was seriously impacting my productivity (and morale). The tenth time that the same junk domain fools you into selling your eyeballs to it, you really wish that it would die in a registrar fire.
Thursday, December 16, 2010
A Short History of My Shorty
Google Labs has a great new tool called the Books Ngram Viewer. As you can see, the popularity of the phrase "my shorty" in print took off in the mid-1980s.
Side note: Stephanie doesn't believe me that this phrase, currently meaning "my girlfriend", has etymology derived from a phrase for "child" - a diminutive tradition with "my baby" as its most obvious other member. Still researching.


