Thursday, December 13, 2007

The MacUpdate Bundle

Hmmm -- was going to buy iWOW tomorrow for $20, but for $50 this bundle looks like the better way to go...  I'm sure I can get my $30 worth out of PulpMotion and iStabilize, even if I never use some of the others.
"Your Deal: The Mac community has triumphantly come together reaching all of the unlock milestones before the unlock countdown expired. Now when you buy this bundle, you become the owner of all 11 applications immediately: PulpMotion, XMIND 2008 Pro, iStabilize, Forklift, RapidWeaver, Swift Publisher, Marine Aquarium, Xslimmer, MemoryMiner Yep, and iWOW 2."

Tuesday, December 04, 2007

New communication technique?

Type only things that require a single hand, despite using QWERTY (punctuation doesn't count for this exercise, because silly unreadable run-ons aren't nearly as fun...):

Examples from an xkcd "blag" post:
  • “We fear a few dwarf watercraft stewardesses were regarded as desegregated after a great Texas tweezer war.”
  • “I’ll kill him in Honolulu, you unhook my pink kimono.”
Here are my "left-handed" remarks (which are perfect for right-handed mouse-o-philes):
  • "Are extra trees ever great weeds?"
  • "Car was safe: waxed, gassed, etc."
  • "A feat: create vast reverberated waves!"
  • "Ever see a bad feast? Excess sweet treats?"
  • "Draft? Wear a sweater."
  • "Axe a rat; feed face; get a barf bag, fast!"

May have to get a Treo...

Treo 750 gets WM6 and HSDPA, finally. Even a free download for AT&T versions on the Palm site... Now, I just need to find out when my current plan dies. Don't really think I want to spend the $550 for the unlocked version, but will have to compare and contrast before making a decision on what and when to buy. Also kinda interested in the BlackJack II, but like the idea of being able to use the same bluetooth receiver and an updated version of the GPS software I've been using on my WM5 PPC.

Sunday, December 02, 2007

GigaPan-tastic

Hopefully, the consumer GigaPan robotic mount will come out of beta soon, but will have a cost similar to its sub-$300 beta price. Sure, you can accomplish the same thing manually, but having a motorized automated mount would be pretty darn wicked! It's also pretty cool that you can browse a growing library of these interactive images not only on the GigaPan site, but also in Google Earth (minimum version 4.2).

Wednesday, November 21, 2007

Free Vectorization Utility

Stanford University's Vector Magic lets you make a vector-based (EPS or SVG) from your image files -- scale away happily after converting...

Copyright vs. Norms

Nice essay, courtesy of BoingBoing: Infringement Nation

Saturday, October 27, 2007

More on bash, arrays, and index values

So, if you "man bash", you will see the following:
Arrays
Bash provides one-dimensional array variables. Any variable may be
used as an array; the declare builtin will explicitly declare an array.
There is no maximum limit on the size of an array, nor any requirement
that members be indexed or assigned contiguously. Arrays are indexed
using integers and are zero-based.
...
Any element of an array may be referenced using ${name[subscript]}.
...
${#name[subscript]} expands to the length of ${name[subscript]}. If subscript is * or @,
the expansion is the number of elements in the array.
...
The unset builtin is used to destroy arrays. unset name[subscript]
destroys the array element at index subscript. unset name, where name
is an array, or unset name[subscript], where subscript is * or @,
removes the entire array.
What does all that mean? It means that index values don't get reset when you unset array elements, so you shouldn't rely on ${#name[*]} in loops, unless you know that the index values are contiguous. So, if you want to loop based on the number of elements, you had better reset the index values by using something like: name=(`echo ${name[*]}`)

Copy and paste the following into a file, and then run it using your favorite implementation of bash (Cygwin, OS X, Linux, BSD, etc.) to see how it all works:
#!/bin/bash
function show_array {
echo There are ${#NUMBERS[*]} numbers in the array.
echo The index positions and values are:
IDX=0
while [ $IDX -lt ${#NUMBERS[*]} ]; do
echo -e $IDX \\t ${NUMBERS[$IDX]}
let IDX+=1
done
}
function pause () {
read -p "$*"
}
echo Bash Shell Array Element Index Handling
echo ----------------------------------------
NUMBERS=(zero one two three four five six seven eight nine)
show_array
pause "Press Enter "
echo ----
echo Now, let\'s unset number five, and see what happens...
unset NUMBERS[5]
show_array
echo Eek!, looks like there\'s a NULL element in there.
echo So, the number of elements has been reset, but the indexing has not.
echo Indexing is non-contiguous by design, so this isn\'t a bug. However,
echo this means that we do not get to see all of the elements if we are
echo looping based on the number of elements in the array.
pause "Press Enter "
echo ----
echo Let\'s try to unset number 1 this time...
unset NUMBERS[1]
show_array
echo Looks like there\'s another NULL element in there, now.
echo Again, the number of elements has been reset, but the indexing has not...
echo The \${#NUMBERS[*]} does not count NULLs, but index values do not
echo change. The while loop produces apparent garbage after some elements
echo have been unset.
pause "Press Enter "
echo ----
echo Enter the cheesy work-around:
echo "It looks like this: NUMBERS=(\`echo \${NUMBERS[*]}\`)"
echo This kills the NULL values and resets the indexing so it is
echo contiguous again...
NUMBERS=(`echo ${NUMBERS[*]}`)
show_array
Happy bash-ing...

Friday, October 26, 2007

GPG Extension for Firefox!

FireGPG is a Firefox browser extension that can handle crypto tasks. I'm going to have to try to integrate this with my "Portable Apps" install of Firefox so that I can use crypto on Gmail and Hotmail from anywhere... Looking forward to trying it out this evening!

Update: Seems to work just fine -- both for encrypting and decrypting. I had to over-ride the default keychain location for GPG and the default GPG location for the extension... Will need to try from a different machine to be completely sure, but I think I've nailed it!

Saturday, October 20, 2007

Rejected Ubuntu Release Names

As I pointed out previously, Ubuntu Releases have all been alliterative animal phrases. While the initial two releases were "Warty Warthog," and "Hoary Hedgehog," the adjectives in these phrases have become somewhat more flattering since, featuring: Breezy, Dapper, Edgy, Feisty, and (currently) Gutsy. With this trend in mind, it is fun to imagine some of the submissions that may have been received and rejected by the Ubuntu team. I submit the following alphabetically-aligned alliterative adjective/animal amalgamations that are unlikely to ever be associated with any project or product:

  • Acrid Amoeba
  • Bald Beaver
  • Cantankerous Cub
  • Devilish Dromedary
  • Evil Elk
  • Fearsome Frog
  • Geriatric Grunion
  • Heinous Hippo
  • Illiterate Ibis
  • Jacobite Joey
  • Killer Kite
  • Lame Llama
  • Mongoloid Mongoose
  • Noisome Nit
  • Onerous Orangutan
  • Precarious Porpoise
  • Queer Quokka
  • Rabid Rat
  • Sterile Serpent
  • Twisted Trout
  • Urbane Ungulate
  • Voluptuous Vixen
  • Warlike Walrus
  • Xenophobic "X-animal"
  • Yucky Yak
  • Zero-sum Zebrafish

Friday, October 19, 2007

Virtual Gutsy

Updated my Ubuntu 7.04 (Feisty Fawn) virtual machine to 7.10 (Gutsy Gibbon) -- nice and smooth via the network install. Since it's in a VM, I don't see the fancy 3D interface elements. C'est la vie...

In other Ubuntu news, the next version has already been given a name (Hardy Heron). I would like to be the first to propose the following properly alliterative animals for future versions:
  • Intrepid Iguana
  • Jocund Jackal
  • Kinetic Kangaroo
  • Lively Lemur
  • Merry Marmot
  • Nifty Newt
  • Obliging Ocelot
  • Puissant Puma
  • Quintessential Quail
  • Robust Raccoon
That ought to last a couple of years...

Wednesday, October 17, 2007

Monday, October 15, 2007

Array Variables in bash

In my efforts to improve my NTFS-3G mount/re-mount script, I had to learn how to implement an array variable. Turns out it's painfully simple, and now I feel that I should go back and eradicate the evil temporary files that I used in some of my earlier quickly-generated scripts. But, I digress... Here are some quick basics that proved useful:
  • Array variables can be implicitly declared, e.g. PETS=(dog cat bird fish) builds a four-element array.
  • To show the whole array, use ${PETS[*]}
  • To show the number of elements in the array, use ${#PETS[*]}
  • Element index starts at zero so ${PETS[1]} will return cat
Here's the sample code that I threw together to make sure I figured it out properly, with comments added in a different font to explain each line of the script:
#!/bin/bash
# build an array of partitions (OS X), populated only with disk#s# for each partition
TEST=(`diskutil list | egrep disk.s. | awk '{print $NF}'`)
PARTS=0
# Build a menu that shows each partition in the array
# but start numbering at 1 instead of 0
while [ $PARTS -lt ${#TEST[*]} ]; do
let COUNT=PARTS+1
echo "$COUNT".\) ${TEST[$PARTS]}
let PARTS+=1
done
# Prompt for / grab user input, and see if it matches something on the menu
echo -n Please select a partition from the menu above:
read TRYIT
case $TRYIT in
[1-${#TEST[*]}])
# NOTE: [1-3]is an expression that matches 1, 2, or 3...
echo You typed a valid number: $TRYIT;;
*)
echo You typed a bad number: $TRYIT;
exit 100; # set a non-zero exit code
esac

Sunday, October 14, 2007

Photo Map Updates

Added a few gallery links to my (Google) photo map:
  • Glacier National Park (Placemark @ Logan Pass)
  • Saint Louis (Placemark @ The Gateway Arch)
  • West Virginia (Placemark @ The New River Gorge Bridge)

NTFS-3G Mount/Re-Mount Script for OS X

Requirements:
Features:
  • Optional Command-Line Parameters:
    • Partition to mount or re-mount (must be specified as the first parameter)
    • Use the force option at mount (can be specified as either first or 2nd parameter)
    • If no parameters are entered, script enters "interactive mode," and prompts user with a menu of confirmed NTFS partitions
  • Handle volumes that are currently using the (read-only) kernel NTFS driver
    • Prompt to unmount, custom exit level if user-aborted
    • Capture name that is assigned in Finder
    • Remount as read/write using the same Finder name
  • Handle volumes that are not currently mounted
    • Mount and assign a default Finder name: NTFS-disk#s#
  • Input Sanitizing
    • Volumes can be entered as "/dev/disk#s#" or (preferably) as "disk#s#"
    • Script throws custom exit level if volume does not exist
    • Script throws custom exit level if mount command fails due to non-NTFS volume
    • Script throws custom exit level if it encounters NTFS-3G errors during mount
  • (Possible Future Enhancements)
    • Add a -? or --help option to the script for über-completeness
    • Silent output -- rely only on the exit codes (Why? -- I can always redirect to /dev/null if I want to call it from within another script)
    • Something I haven't thought of yet...
  • bzip2 compressed version of the script (now includes updates through 1.4).
UPDATES
[Oct. 15] Version 1.1:
  • Implemented volume-unique mount points, so more than one disk can be mounted
  • Implemented menu (via array variable) for volume selection -- type a number instead of having to type disk#s#
[Oct. 16] Version 1.2:
  • Implemented actual type detection using File System field from "diskutil info disk#s#"
  • Previous method used reasonable speculation based on type field from "diskutil list"
  • Learned that array index values can be non-contiguous, and are not changed when array elements are unset. (This led to a later post.)
[Oct. 19] Version 1.3:
  • Added current mount point information to menu (yep, another array)
  • Added header bar to menu
  • Added Quit option to menu
[Oct. 27] Version 1.4:
  • Implemented the file system type detection for volumes that are input from the command line.
  • Previously, this was only implemented for volumes on the menu in "interactive mode."
  • Added an exit level for "Not an NTFS Volume."

Thursday, October 11, 2007

Tuesday, September 11, 2007

Katana vs. 9mm

Further proof that YouTube does, indeed, have everything:

Friday, September 07, 2007

My Plate Runneth Over...

When discussing workloads, we often invoke the analogy of "the plate," and we talk about how "full" our plate is. In this context, we've been consistently reminded of the lessons of youth regarding the need to "clean our plate" at every meal; leaving the merest morsel of work uneaten is one of the few cardinal sins at the dinner table of employment. We're discouraged from over-committing ("take what you want, but finish what you take"), but the illusion that we have control over what we "take" repeatedly breaks down -- especially during "special," or difficult, times. (For now, we'll neglect that "difficult times" tend to become the norm when "Management by Crisis" is the foundational culture of the organization. This management technique, while outwardly easy -- because humans naturally seek leaders in a time of crisis -- is most often really a sign of a "crisis of management" caused by an endemic, and apparently irrevocable, lack of foresight.)

Allow me to extend the analogy of the plate, as it applies in "special times" -- regardless of whether such times have become the rule rather than the exception: Today is a special day, say, your birthday... Your family has taken you to a certain Amarillo steakhouse with a particular penchant for excess. Because you've been raised to "take what you want, but finish what you take," you order the 8 oz. sirloin. Your doctor would advise you to only consume 3-4 oz. of red meat during the course of a meal, but this is a "special day," and this particular steak is the 2nd-most humble slab of beef on the whole menu -- you wouldn't want to disappoint your family, after all. Well, it turns out that your family maintains their traditional values, and therefore can't pass up the opportunity to save some money ("waste not, want not"); so when you get up to wash your hands, your father calls over the wait staff and substitutes the *FREE* 72 oz. steak for your already-slightly-too-robust sirloin. Your meal arrives, and you protest that there clearly must have been some mistake, but your father calmly explains how much money you'll be saving for the family -- if only you can polish off four and a half pounds of beef in under an hour. Even though what your ordered would have cost $16 at the end of the meal, and this abomination costs $72 up front (refunded only if you complete the "challenge" successfully), your father smiles about how much money he is saving for the family, and encourages everyone to "dig in" to their meals. At that point you stop staring at your own plate for a moment and look around the table for the first time; you see that all of your siblings are facing a similar quandary. Since you're not alone, you feel obligated to try; since the clock is already inexorably counting down what remains of your precious hour, you suppress the urge to protest further and start cutting, piercing, shoveling, and chewing... Needless to say, there is an intrinsic -- but unstated -- requirement that you (and all of your siblings) rise to this challenge, lest the whole family should be forced to suffer as a result of your gastronomic ineptitude...

At least that's what seems to happen where I work...

Tuesday, September 04, 2007

World's Largest Photograph

The world's largest photograph was made by converting an aircraft hangar into both a giant camera and giant darkroom.

Useless? Perhaps. Cool? Definitely.

Saturday, September 01, 2007

Bluetooth GPS and VMWare Fusion

Yes, VMWare Fusion does indeed support mapping the MacBook Pro's built-in Bluetooth radio to a Windows VM. As this screencast movie demonstrates, once the radio has been remapped, you can use your Bluetooth devices from within the virtual machine.

Only two minor caveats for my fellow adventurers:
  • Fusion will warn you that you need to load the BootCamp drivers on the VM when you enable the Bluetooth radio for the VM. This can be safely ignored if you are using a physical BootCamp partition as a VM, but is important to keep in mind if you are using a file-based Windows VM onto which you haven't previously installed the Apple built-in Bluetooth radio's driver for Windows.
  • The COM port mappings for Bluetooth devices will be different depending on whether you've accessed the BootCamp partition physically (by rebooting and holding "Option / Alt") or as a virtual machine (from VMWare Fusion). Just be aware of this, and be sure to configure your devices before using them.

The MBP w/ BootCamp Seamless HDD Upgrade

When I got my MacBook Pro (2.33GHz C2D), the biggest 7200rpm drive that Apple offered was too dang small for my tastes, so I opted for the (cheaper) 5400rpm 160GB drive. I had everything configured nicely, but had only carved off 18GB (NTFS) for my XP Pro BootCamp partition. Well, when one game (TOCA 3, which I absolutely refuse to uninstall) sucks up ~6GB of that space, that obviously isn't going to be adequate. Also, since I like to produce vacation videos to commemorate my travels, I need a significant amount of working space on the OS X (HFS+) partition, and didn't want to sacrifice the ability to work a good-sized project without having one of my external drives tethered.

The Problem
I wanted to execute the HDD upgrade -- gaining more space for both OS options, and switching to a 7200rpm mechanism to help whilst performing the aforementioned untethered video work, Photoshop activities, et.al.; however, I would consider a requirement of performing a reinstallation of either OS to constitute failure.

The Hardware for the Solution
First I went to OWC, and procured their Mercury On-the-Go 2.5" SATA external enclosure. I opted for the USB 2.0 / eSATA combo version; after giving strong consideration between the FW800 and eSATA options, I chose the more future-proof eSATA version. After looking at the prices of the versions that included a drive, I realized that I could go to NewEgg and get the Hitachi 7200rpm 200GB SATA-2 2.5" drive (including shipping) while still saving a significant chunk of money vs. the pre-assembled drive from OWC.

The Software for the Solution
I needed a way to replicate or image both OS X and Windows XP. A couple of seconds of Google Search action resulted in finding SuperDuper!, which appeared to fit the bill nicely for my OS X duplication and future bootability requirements.

Since I've been a "PC Guy" for a long time, I had a licensed copy of Symantec's Norton Ghost laying around, and thought that it may meet my needs on the XP side. But, alas, that would have been too easy -- the version I had (Ghost 2003, a.k.a. version 9.0) didn't support the GPT partition scheme, and couldn't make a partition image of the XP BootCamp partition. I had another brilliant idea, and tried to execute the Ghost imaging process from within VMWare Fusion, but Ghost couldn't see the C: drive via the VMWare driver (Curiously, it could see my external drive -- close, but no cigar...) I couldn't see any clear indication that the current Ghost 12 package would resolve this for me, and they wanted $50 (upgrade price) just for the chance to try -- no thanks, I just spent enough hard-earned cash on the hardware... There are also some widely-discussed problems trying to use a *.DMG disk image from OS X's Disk Utility to successfully image BootCamp, so I started the Windows phase of the game with 2 strikes...

Luckily, there are some clever folks out there who know how to leverage tools that have been in development for quite some time and make them accomplish new tasks. Enter WinClone, which is heavily based on the hard work by the good folks at the Linux-NTFS project. This little gem lets you save off an image of your NTFS partition and restore it to another partition. The use of the ntfstools is executed nicely, and WinClone manages to pull off the restoration in a way that continues to make BootCamp happy and bootable.

High-Level Description of the Process
  1. Gather all the required HW and SW for the process
  2. Install the replacement HDD in the enclosure, attach the enclosure to the MBP via USB
  3. "Initialize" the new drive: make a single partition that consumes the whole disk (we'll make the new BootCamp partion later), format it as HFS+, and name it "Macintosh HD" (because we're shooting for a seamless transition)
  4. Use SuperDuper! to make a full and bootable copy using the Backup -- All Files method
  5. Reboot, hold in the "Option / Alt" key, and boot from the newly-cloned drive to make sure it works.
  6. (Optional) Reboot back to the original internal HDD for now.
  7. Run WinClone, create an image file from your BootCamp partition (mine was the 3rd partition -- or slice -- on the first disk on my MBP, namely /dev/disk0s3), and save it as a file somewhere that you'll be able to access later (I would suggest one of your HFS+ partitions, and the clone is a good choice for this purpose, because you won't have to tether an external drive to restore it).
  8. Shut down the computer completely, and prepare for the disassembly. I used a #000 Philips and a T6 Torx driver to perform the dirty work. You can refer to the ExtremeTech or iFixIt guides to complete the diasassembly [remove the plethora of itty-bitty screws that are required to remove the palmrest / top cover (4 on one side, 4 on the other side, 4 on the bottom, 2 on the back, 2 near the memory cover, 2 under the front lip beneath the battery, etc...), disconnect the keyboard/trackpad cable, and remove the drive (2 more screws, some tape, and an interface cable).] Needless to say, use your brain to avoid ESD zapping of your computer's sensitive and/or delicate parts... Note: There were some minor differences between my MBP and the first-gen model used in the iFixIt guide, but they were farily trivial (e.g. no bluetooth board, and different HDD mounting assembly on the right-hand side).
  9. Take the replacement drive out of the external enclosure, migrate the HDD mounting bushings (and / or brackets on other systems) to the replacement drive, install the replacement drive into the system, and put the bloody thing back together...
  10. Boot to your migrated OS X system (if you haven't been following along , you may be horrified that you --temporarily -- have no BootCamp partition). Since you tested it in step 5, you should already know that this will just work. Thanks, again, to SuperDuper! for making this so part of the migration so dang easy.
  11. Run BootCamp Assistant and carve off a new BootCamp partition on your new internal HDD (I chose 45GB this time, because I want more than 2 games on my Windows XP installation).
  12. Start the Windows installation, and get past where you've formatted the C: drive as NTFS. Note: you don't have to finish the Windows installation.
  13. Reboot back into OS X, and run WinClone to restore from the file created in step 7 to your newly-created BootCamp partition (now you can clearly see why I suggested storing the file on the new drive).
  14. Reboot, hold "Option / Alt", boot to Windows, let it run chkdsk, then repeat to complete the Windows portion of the migration.
  15. Grab a cold one, and enjoy...
Getting VMWare Fusion to Recognize the Change
After the upgrade, VMWare Fusion couldn't start the VM that was based on the physical BootCamp partition, because the partition table was different. It recommended removing and re-adding the disk to the VM config file, but there's an easier way. I simply deleted the VM config file (/Users/[your_user]/Library/Application Support/VMWare Fusion/Virtual Machines/Boot Camp/[your /dev/disk#]/Boot Camp partition.vmwarevm), and then let VMWare Fusion rebuild the VM file... That did the trick, and I just hit cancel to avoid re-installing the VMWare tools (since they're already installed).

Mission Accomplished!
That's it: a few hours of time resulted in more space for both OS environments, and a little more speed as well. I also accomplished my prime objective of not having to reinstall either OS, re-apply any customizations, re-download any tools, etc... Oh, yeah, and I walk away with a pretty sweet 160GB bus-powered USB 2.0 HDD that happens to also support connection via eSATA.

Monday, August 27, 2007

LEGO® Construction Video

During my assembly of LEGO® model #10030, the Ultimate Collector's Edition Imperial Star Destroyer, I took photos after each major sub-assembly was completed. These photos have formed the basis for this Shockwave movie, which condenses several days worth of assembly tasks into less than a minute. (I originally thought about taking a bunch more pictures and doing the full-blown time-lapse treatment, but didn't have either the requisite discipline or the requisite level of OCD to follow through with that plan.)

After joining the "elite ranks" of crazy folks who have not only acquired, but also assembled a kit containing 3,104 LEGO® brand interlocking plastic bricks, plates, and various other pieces into this giant (37-inch long!) model, I can honestly say that I don't think the upcoming Ultimate Collector's Millennium Falcon model -- which features more than 5,000 pieces -- is in my future...

P.S. - That really long description and the link that it points to begets its own form of hilarity. I suggest that you follow that link and read the legal text regarding "How LEGO® Enthusiasts May Refer to LEGO Products on the Internet" and related subjects. In fact you should print that page, xerox the printout about 10 times, fold a couple of the xeroxes into a coaster for your coke, and use others as kleenex.

P.P.S. - If you represent the Coca-Cola, Xerox, or Kimberly-Clark corporations, the above P.S. is intended as a parodic commentary on the state of trademarks and IP law in the age of the blogosphere. Such parodic commentary has generally been upheld as a form of fair use, although some may argue that its intrinsic satirical nature undermines my claim. (Reference (PDF): "The Satire/Parody Distinction in Copyright and Trademark Law— Can Satire Ever Be a Fair Use?")

Wednesday, August 22, 2007

Potential Mac Screen Properties Life-Saver

I managed to freak out the display settings for my screen that was set as the primary display (TV via the S-Video out adapter, because I was using Front Row, and didn't want to use mirror mode) on my notebook this morning by magically switching it to PAL and hitting OK while moving the notebook. [This particular maneuver requires a unique mix of uncanny bad luck coupled with a distinct lack of caffeination, and is neither likely to occur nor recommended.] Well, being an resident of the USA, said TV's S-Video input needed an NTSC signal, and so things were not exactly happy. Because of the way OS X puts the properties page for a given screen on that screen (which is normally nice) and because it also lacks a hot-key for moving a window, I was fairly hosed for a while.

Plugging back in my DVI monitor didn't help (separate settings were maintained on a per-device basis), and I simply couldn't find the darn settings anywhere in the Library or elsewhere... I got lucky, though, that monitor happened to have an S-Video input, and managed to sync with the 50Hz signal. That change in luck allowed me to reset the mode in which the TV adapter was running successfully. But, what would I do if I ever hosed something in an manner that was not so easily recoverable?

Enter cscreen, the hard-to-find (because the author abandoned it and his site) utility that allows modification of OS X display settings from the command line. I finally found it on the ScriptBuilders site, and am pleased to report that it works as designed -- allowing screen properties to be properly transmogrified from the command line. This even works from an SSH session, so now no amount of sleep and caffeine deprivation mixed with poor thumb placement can ever cause near-tragic screen gobbledy-gookage ever again...

Oh, yeah, this also makes it easy to switch which screen is the primary, and to rig up some scripts to switch among settings that I may want to use from time to time. Now, I still kinda want to find where these settings actually live, but that's a project for another time.

Monday, August 13, 2007

Monday, July 16, 2007

Hair-brained mumbo-jumbo numero uno

Some corporate linguists like to go with the four E words and the three R words when discussing employer-employee relations. Being a sophisticate, I prefer the verb forms of these words to the contrived noun forms. (Of course, the verb forms imply that action may be required, and management theories are supposed to shy away from that...):
  • E words
    • Empower
    • Enable
    • Engage
    • Encourage
  • R words
    • Respect
    • Recognize
    • Reward
Interestingly, the first two "E words" represent things that individuals in an organization generally get for themselves, because they simply couldn't do their jobs otherwise. Therefore, they only require management intervention in the form of removing external roadblocks. Our theory should incorporate enough management awareness to perceive these roadblocks and act without being prompted / begged to do so.

The other five things can probably be combined into a cohesive formula for employee motivation, if we can figure out how to map them on a chart and subsequently devise a self-test that deterministically and artificially lets people sort themselves accordingly. Of course, before doing that, we'll have to enroll in a post-graduate Psych program.

CEO-speak, merger edition

Bust out your buzzword bingo cards folks. It's merger season, and the CEOs are spouting this season's freshest corp-jive. Two fantastic case studies in highly-evolved, value-added diction that is both empowered by, and leveraging of, the unique corporate lexicon are presented below to enhance your short-term amusement value.

Energizer acquires Playtex. Guess that means we'll soon be seeing the world's first battery-powered ______. Oh, it turns out that Playtex makes other products, Energizer already owns Schick, and this is mostly a bid to compete with P&G (who happens to own Duracell). But, that would sound bad, so here's the official corporate-speak version from Ward M. Klein, Chief Executive Officer of Energizer: "We are very excited about bringing the world-class businesses and people of Playtex into the Energizer family... We see Playtex as an exceptionally great fit with Energizer, with similar customers and distribution channels in the U.S. and Canada, and the opportunity for geographic expansion in many other areas of the world where we currently do business. We also believe there are significant integration and cost reduction opportunities for the combined businesses. Energizer will emerge with a more diversified portfolio of products, and greater scale in the personal care category, which will now be more evenly balanced with our household goods business. It will also provide a platform for possible additional value-adding acquisition
Meanwhile, IHOP will eat Applebee's and turn almost all of their corporate stores into franchises. The quotable clap-trap press release was absolutely full of the word "re-energize;" it includes the following yawn-tastic quote by IHOP Chairman and Chief Executive Officer Julia Stewart, who will lead the management team of the combined Company: “Over the past year and a half, we have been evaluating alternatives that would allow us to leverage IHOP’s proven competencies in order to create additional long-term value for shareholders, including a potential acquisition. Applebee’s meets all of our acquisition criteria and we expect the combination to generate significant additional value for our shareholders.”

Sunday, June 10, 2007

Prescription for innovative management theories

  1. Find a PhD student in psychology.
  2. Assign a thesis wherein said student is expected to spew forth a new and innovative management theory.
  3. Faculty review: Ignore the fact that the great majority of these theories work by way of generalization and over-simplification, and therefore ring just as true as the predictions of your average Ren-Fest midway fortune teller.
  4. Partnering and Profit: Many of these amazing systems go on to become books and even seminars, it's absolutely staggering. Now, to make this work you need a nifty chart and a self-test that allows folks to assign themselves to one of your neatly-defined and mostly useless categories.

In the real world, these generalized categories (e.g. types of motivation, types of interpersonal interaction, etc.) are actually variable and highly situational. But, you can't sell a book that says that...

Thursday, May 24, 2007

Happy Birthday "Star Wars"

Tomorrow, May 25th, officially marks the 30th anniversary of the release of Star Wars. Not surprisingly, this film, along with its sequels and prequels, has served as a cultural anchor for an entire generation. The BBC has joined the festivities by posting the following 30 trivia items.

Monday, April 30, 2007

No ManU on TV for me

Looks I'm going to have to follow along online for the duration. Thank goodness for http://www.premierleague.com/ and its real-time ticker...

FSC isn't running the Manchester Derby this Saturday, and the critical ManU / Chelsea match on Wednesday, May 9th has two problems that I won't be able to work around in real-time:
  • It's only on PPV, and even then only at selected pubs, so a 1pm match is virutally unwatchable
  • I'll be in Washington State, and at a conference, so playing hooky is also 100% off the table

Tuesday, April 24, 2007

Mountain Bike Rides

Here are a couple of maps generated from traces collected by my bicycle GPS device:
It's still fun to play with the toy. These simple trace logs don't include the HRM, speed, or cadence data that make it even more fun...

Friday, March 30, 2007

Dang! No DeepFish for me!

So, yesterday Microsoft Live Labs released DeepFish -- an enhanced browser for Windows Mobile 5 and 6 devices. But, by the time I got around to trying to download it today, they had filled all of their "slots" for the "technology preview."

Guess it's a good thing I still have Opera! Being forced to use Pocket IE is not a valid option...

Tuesday, March 27, 2007

New Hosting Provider

Update: Migration went pretty well, photo map updated with new links.

I am in the process of migrating my site to a new hosting provider. Red Check used to serve me pretty well, but lately they've been pretty close to horrendous in terms of service level. So, I picked up a GoDaddy plan for about 55% of the cost, that offers 10 times as much storage and transfers and lets me configure a greater number of databases, too.

Because I'm not a huge MySQL/PHP expert, I decided to re-create my Coppermine gallery from scratch. Luckily, the batch upload is working on the new site (it always bugged me that it didn't work on the old provider). That means I can also migrate my legacy hand-coded galleries into the database more easily... So, I won't have to maintain two separate gallery pages with perpetually outdated links. I will, however, have to fix the links on my map -- most of them will be broken as a result of the gallery rebuild.

Monday, March 12, 2007

Dan Brown's Doormat?

The graphic on this doormat forms a nice symbiotogram, but is conceptually similar to the ambigrams from Angels and Demons...

Wonder if they'll have a US distributor... I can always claim I just cleaned it and didn't realize that it was "backwards"...

GPS + HRM for the Bikes

I burned my REI Dividend and 20% member coupon on a Garmin Edge 305, which is basically the be-all/end-all of bicycle computers. I got the fully loaded version with the Heart-Rate Monitor (HRM) and the cadence sensor, then went on Amazon and ordered a 2nd cadence unit for the other bike...

I have the unit configured to display seven data points simultaneously: Ride time (stop watch), Current cadence, current speed, ride distance, current time-of-day, current heart rate, and estimated calories burned.

With the GPS and this unit's barometric altimeter that increases the accuracy of elevation data, I can do crazy correlations like notice that as I climbed that easy hill, my speed stayed within a 2mph window, but my heart rate went up 15%. Basically, I'm my own science project now. This week's task: use published mechanisms to establish a good baseline for what my actual max heart rate is. I can download all of the data to my computer and do fun things like analyze my performance over time and even plot course maps using Google maps or Google Earth...

New Template

While my old template was nice and simple, it was also not very stylish. I'm working on customizing this one a bit. All of the font sizes, etc. are different than the old one, so I'm working out the details...

Wednesday, February 07, 2007

Jobs on Music: Pandering or Profound

I can't tell if Steve Jobs' latest rant against the music industry is simply pandering to the masses while whining about the European regulators, or if the "DRM will likely never work" sentiment is sincere. My first two thoughts are:
  • Convenient excuse provided for not inviting others to the table: If it's broken, then we can't fix what we don't own...
  • Instead of whining/blogging, go do some market research or broker a limited-scope deal. Maybe even run a trial and charge a premium for unlocked content (e.g. $0.99, or $1.49 for DRM-free)...

Tuesday, February 06, 2007

Lightroom

Adobe Photoshop Lightroom has graduated from beta, and has sucked a $200 pre-order out of my bank account. I've been using the beta for over a year on both Windows and, more recently, the Mac. I'm sure Aperture is nice, too; but the tools and features of Lightroom met my needs and the bounce across platforms didn't require re-learning. I use it as an image library and a RAW processing engine.

Now, I just have to wait for Photoshop CS3 to come out, and I'll be in image-manipulation Nirvana....

Thursday, January 11, 2007

Before the Music Dies

Update: Got it, watched it, dug it. Erykah Badu still has freaky hair, and her interviews were fun. A bunch of clips and some promo stuff is on the DivX Stage 6 site -- Check it out...

Gonna have to go buy this soon... The Before the Music Dies documentary is now on DVD, so maybe more of us can all learn to enjoy the music while leaving the music business behind...

Wednesday, January 10, 2007

What would it take for me to buy an iPhone?

I may be the last standing survivor of the "old school," wherein my phone is mostly a phone, my iPod is a non-video-playing Nano, and my PDA is primarily a portable GPS and game machine that fills in as VGA-resolution video player and photo browser on the many excursions where I choose to leave my laptop at home. (Note that none of the three non-converged small devices listed above contain a camera; I use a real one, thank you very much.)

The mere fact that I have these three gadgets and gizmos makes me sound like an ideal candidate for a Blackberry, a Blackjack, a Treo, or a newly-announced iPhone (or some other converged device); but that makes the errant assumption that I don't pick-and-choose which device(s) will be carried for a given situation. Since my primary personal and work computers are both laptops, I don't actually use the PDA for so-called traditional PDA-type activities, such as maintaining my contacts and calendars, trying in vain to take notes at meetings, etc... Similarly, the "organizer" features and the stamp-sized photo-browsing ability of the iPod Nano are lost on me -- they don't get used, ever; the same is true of the truly bad games that came on the Nano, each of which have been played exactly once. I do occasionally check my Gmail account from my phone, but it's mostly to justify the fact that I'm paying a few quid every month for a minimal data plan. I access the Gmail app an average of 2-3 times per week. Did I mention that I don't have any games on the phone, or that I use the phone's network connection for non-Gmail things like news or weather less than once a month? It's slow, and the interface sucks.

So, with all that out there to set the context, here are a few key missing features that iPhone 2.0 will need to have in order for me to consider forking over the obscene chunk of change that 1.0 will be listed at, not to mention the --ahem-- massively-lube-requiring fees that Cingular requests for their unlimited data plan. The following incomplete wish list is displayed in no particular order:
  • > An actual, legitimate, "3G" (or beyond) data network connection, and the ability to "share" this connection via tether or Bluetooth. EDGE is slow and sucky for anything but the most casual use. If you want me to believe I can surf real websites with a real browser, give me a real connection. Granted, the iPhone 1.0 may well offer the ability to use it as a "modem," but it wasn't part of the announcement. This is a requirement for the version I buy. If I'm forking over service-provider fees for an unlimited data plan, I want to be able to use said plan with my laptop.
  • > Direct downloads from the iTunes Media Store. If I'm traveling sans-laptop and want a movie I can watch on the plane ride home, or other content I wish to enjoy while on the go. I should be able to take advantage of the fast data network connection (or an available WiFi hotspot) and download content straight to the iPhone while I'm doing the early check-in for my return flight. I would, of course, expect to be able to "reverse-sync" said movie/content to my iTunes library on the computer at home. With the iPhone 1.0, you need a computer to be the middleman, and this sucks rocks.
  • > An open API, an extensible OS, and a supported development environment for 3rd-party applications. If you want to replace my PDA, your platform had better allow me to acquire and load 3rd-party applications.
    • -> You can't think of everything that I will want to do with my iPhone, and will never be able to provide for all of my desires. My name isn't Steve Jobs, which means I didn't have the luxury of asking you to build-in every little thing that I may want in my device. I want to use the device how I want to use it, and I may not even know how I want to use it until after I've mucked around with it for a bit.
    • -> The first app that I want, assuming that OpenSSH isn't an included feature of OS X Embedded, is an ssh client with tunneling support. Since there isn't any Blackberry Enterprise Server pushing encrypted content to it, I want the ability to secure my own communications. Safari-lite had better support proxies, too... Otherwise, I'm gonna need Opera (the actual purveyors of the first "true mobile browsing experience" for all the Windows Mobile devices out there) or another 3rd-party browser.
    • -> A close second on my wish list would be a compelling moving-map GPS navigation offering. I don't need a built-in GPS receiver, Bluetooth is just fine. However, the Google Maps applet isn't good enough for me -- it's fine for static situations, POIs, and general overviews; but (unless I'm missing something), it doesn't provide the standard you-are-here triangle, auto-scrolling map display, and voice prompts that a GPS navigation app includes.
    • -> I would also like to be able to see how a diverse and talented "community" can make clever use of the multi-touch interface. I'd be willing to bet that freeware, shareware, and open-source game offerings, for example, would trump the dross that the iTMS offers for the video iPod.
    • -> If this functionality isn't present, then I will not consider the device, even if the price drops to $100. My current phone supports the mobile JRE thing, but otherwise it's effectively a closed platform. Closed platforms suck the nasty scum-ridden rocks from the bottom of the bog.
  • > More native memory, support for standard flash memory cards, and the ability to access media on those cards. I've got 8GB on my Nano -- and it has a low-dpi, low-res screen and doesn't play video. I shoot still photographs onto a 4GB CF card. If I'm supposed to put my life in my pocket, then I need more flexibility than the built-in 8GB can offer (I'd settle for 16 GB, but for $600 would prefer to see 32 GB; remember you're telling me I can carry my life in my pocket -- I watch and produce high-quality video, and shoot 8MP RAW images with my DSLR -- big files add up fast...).
    • -> I carry a fleet of SD cards with my PDA -- one for games, one for short-term media, one for my GPS application and its map data, etc. If I want to take content that I have created (or format-shifted per rapidly-diminishing fair-use standards) and enjoy it on my PDA, I can just dump it to a card and play it -- no sync operation is needed, so it works from other people's systems, too.
    • -> The idea of having to round-trip content through iTunes (on a computer) just to be able to access it on my so-called converged device sits wrong with me... I understand the need to have a system in place for purchased (and therefore rights-restricted) content, but I reserve the right to vote with my wallet and tend to avoid this type of content. Having to use the same mechanism to access user-generated and/or legally-obtained non-protected content is a bunch of hooey! For example, my PDA has a CF slot, which I can use to review the JPG versions of the photos that I capture alongside the RAWs... I take the card out of the camera, stick it in the PDA, and -- viola -- it just works (with either the native app or a 3rd-party app that I purchased because it was a better fit for my needs). With no support for removable media, the iPhone 1.0 would (once again) force me to use a full-fledged computer as a middle-man. Again, the middle-man requirement sucks rocks, and is a complete deal-breaker for me.
    • -> (For the record, I feel the same way about ActiveSync, I generally prefer to get my WM5 apps as cab files, and load them directly on the device. The same is true for Word docs, Excel sheets, PDFs, MP3s, etc. that I view on the PDA; I'd rather dump it to a card than deal with the way some damn sync app thinks that I want to use my device. If I want it local, I'll copy it local... Don't tell me how to use my device, just let me use it however I see fit! Bleagh!)

Finally got around to...

I finally went out and grabbed the OS X Wacom tablet driver. Even tried messing around with Ink, but so far it is doing worse than WM5's handwriting recognition on my PDA. Therefore, it is probably destined to be a novelty. However, when Photoshop CS3 comes out later this year, I will be glad to have the absolute-positioning capabilities of the pen back -- it makes it so very much easier to work with masks and to add subtle effects..

Sunday, January 07, 2007

Photo Gallery and Map Updated

Now that my photo gallery from Costa Rica has been posted, I have also updated my photo map to have a link to this gallery. The place marker is based off of a GPS read that I pulled from the top of Poás Volcano, near the main crater.