Just a quick administrative note: I have lately been capturing a quick blurb from the articles that I’ve been socking away in Instapaper, which makes my to read and liked lists a bit more useful.

02/03/12 @ 04:01 PM

I thought it might be fun to build a list of Netflix movies available on Watch Instantly that I enjoyed. Netflix has a Watch It Again section that you can sort by rating. From there, a little jQuery run in Firebug can quickly extract the links of all the movies I rated 4 or 5 stars (5-star entries are in bold). Here they are (list as of 8/13/2011):

Your mileage may vary!

08/13/11 @ 05:37 PM

I created a page for one of my favorite old Listology lists that I have continued to add to over the years: My Favorite Action Scenes.

08/11/11 @ 09:03 PM

This was one of my favorite Listology lists back in the day, and I’ve continued to add to it since. I’m sure I’m missing some, but these are my favorite action scenes. They aren’t all good movies (although many are), but these scenes deliver regardless. One asterisk means it was a tough choice, two means it was damn near impossible.

  • 13 Assassins (2010) … the last 45 (!) minutes of the movie
  • 15 Minutes (2001) … escape from burning apartment
  • 28 Weeks Later (2007) … opening sequence *
  • The Abyss (1989) … waiting for the crane to come down from the surface, and then what happens when it does
  • Aliens (1986) … locked in with the face-huggers.
  • Avatar (2009) … the whole finish
  • The Battleship Potemkin (1925) … the Odessa Steps sequence.
  • Behind the Sun (2001) … the chase through the woods
  • Ben Hur (1959) … the chariot race
  • The Boondock Saints (1999) … the toilet *
  • The Bourne Identity (2002) … the car chase *
  • The Bourne Supremacy (2004) … the car chase *
  • The Bourne Ultimatum (2007) … fight with Desh **
  • Brotherhood of the Wolf (2001) … trying to trap the beast.
  • Brute Force (1947) … breakout, especially on the drainpipe side
  • Casino Royale (2006) … foot chase
  • Chicken Run (2000) … in the pie machine (with plenty of Raiders references)
  • Children of Men (2006) … escaping in the car that won’t start **
  • Crouching Tiger, Hidden Dragon (2000) … shrine fight between Michelle Yeoh and Zhang Ziyi
  • Dawn of the Dead (2004) … retrieving the dog
  • Death Proof (2007) … ship’s mast and all car stuff thereafter
  • District 9 (2009) … wearing the suit
  • District B13 (2004) … opening foot chase **
  • District 13: Ultimatum (2009) … tomaso in drag *
  • Duplicity (2009) … executive tarmac brawl
  • The Empire Strikes Back (1980) … battle on Hoth
  • Equilibrium (2002) … “not without incident” to the end.
  • Fearless (2006) … fight on the high platform **
  • Fist of Legend (1994) … climactic fight *
  • The Four Musketeers (1974) … the convent/cathedral **
  • Goldeneye (1995) … tank chase scene
  • Hard Boiled (1992) … hospital scene
  • Harry Potter and the Goblet of Fire … dragon chase
  • Hero (2002) … duel with Sky *
  • Jurassic Park (1993) … kitchen scene
  • I Am Legend (2007) … the dogs and the ray of sunshine
  • Ip Man … “i want to fight 10 men”
  • Inception (2010) … rotating-gravity fight scene
  • The Incredibles (2004) … Elastigirl and the doors **
  • Ink (2009) … the kidnapping
  • The Iron Giant (1999) … From the diving catch to the end
  • Kill Bill: Vol. 1 (2003) … Go Go Yubari fight (ball and chain)
  • Kill Bill: Vol. 2 (2004) … fight with Elle
  • King Kong (2005) … the bugs ** (or the stampede, or the t-rexes, or the finale – hot damn)
  • Kung Fu Hustle (2004) … two masters vs. the beast **
  • Kung Fu Panda (2008) … fighting over the dumplings **
  • Legend of Drunken Master (1994) … the axe gang fight
  • Let the Right One In (2008) … the pool
  • The Little Mermaid (1989) … the kitchen
  • The Lord of the Rings: The Fellowship of the Ring (2001) … escape from the mines of moria
  • The Lord of the Rings: The Return of the King (2003) … Eowyn and the Witch King *
  • The Matrix (1999) … opening sequence **
  • The Matrix Reloaded (2003) … the highway chase
  • Mr. & Mrs. Smith (2005) … car chase (especially the golf club)
  • Next (2007) … walking out of the casino
  • Oldboy (2003) … hammer time
  • Once Upon a Time in Mexico (2003) … Banderas and Hayek escaping from the hotel room
  • Ong-bak (2003) … climactic sequence, possibly highlighted by saw fight **
  • Our Hospitality (1923) … the rapids/waterfall scene
  • Over the Hedge (2006) … caffeine
  • The Princess Bride (1987) … duel between Inigo and the man in black
  • Prodigal Son (1983) … attack on sleeping opera company
  • The Professional (1994) … police invasion of Leon’s apartment
  • Project A (1983) … the bicycle chase through the narrow alleys (what follows with the flagpole and the clock-tower is great too)
  • Raiders of the Lost Ark (1981) … opening sequence
  • Red River (1948) … the stampede
  • Rumble in the Bronx (1995) … fight at gang headquarters
  • Safety Last! (1923) … the climb
  • Sanjuro (1962) … final duel
  • Saving Private Ryan (1998) … storming the beach (a rare unfrivilous entry here)
  • Shanghai Knights (2003) … singin’ in the rain
  • Sin City (2005) … Marv’s apartment escape
  • Spider-man 2 (2004) … the train
  • So Close (2002) … sword fight (best part of generally good closing sequence)
  • Sorcerer (1977) … the trucks over the rope bridges
  • Stagecoach (1939) … the chase scene
  • Stardust (2007) … voodoo sword fight
  • Star Wars: The Revenge of the Sith (2005) … Palpatine vs. Mace Windu
  • Strangers on a Train (1951) … the merry-go-round scene
  • The Sword of Doom (1966) … the fight in the snow
  • Terminator 2 (1991) … hospital breakout
  • Thirst (2009) … sunrise
  • Three Days of the Condor (1975) … fight with the mailman
  • The Three Musketeers (1973) … stealing food
  • Throne of Blood (1957) … Washizu’s bitter end
  • Tomorrow Never Dies (1997) … car chase via remote control from the backseat
  • Troy (2004) … Achilles vs. Hector
  • The Twilight Samurai (2002) … steel vs. wood
  • The Untouchables (1987) … shootout in Chicago’s Union Station
  • X2: X-Men United (2003) … raid on the school **
  • Zatoichi (2003) … confronting the gang, highlight being showdown with the bodyguard

A few stragglers; these I need to rewatch before I can pick:

  • Die Hard (1988)
  • The Fugitive (1993)
  • Lethal Weapon (1987)
  • The Lord of the Rings: The Two Towers (2002)
  • Speed (1994)
08/11/11 @ 09:01 PM

You might want to give 13 Assassins a go, if you’re looking for something to rent. If you don’t like either (a) samurai movies, or (b) very violent movies (some disturbing scenes, especially in setting up what a monster the bad guy is), you should probably steer clear of this one. But for everybody else, this one’s a keeper. The last 45 minutes is an epic battle that somehow never loses momentum or interest (45 minutes!), in part because you have no idea which, if any, of the good guys are going to survive, or if they will succeed at all, and you really really want them to succeed because the bad guy is so very very bad. Here’s the trailer:

08/11/11 @ 04:05 PM

If you’re looking for something to read, I took a moment to cobble together a couple pages based on my Instapaper feeds: here’s my to-read list, and here is the stuff I liked.

06/08/11 @ 02:30 PM

Sitting for long periods of time is looking pretty harmful. I’ve read other reports that suggests the 8 hours in the chair pretty much negates the hour in the gym, perhaps not for sports, but for long-term health (and for sports I’m sure the glute deactivation, hip flexor tightening, and back rounding don’t help). I have toyed off and on with the idea of a treadmill desk, but in the end I just don’t want to sink the money or space into a treadmill.

So a standing workstation has looked like a nice compromise, and today I put one together. I wanted cheap and easy, so I built something to sit on top of my workbench rather than my office desk, because the workbench is already higher, and I know I can build something that looks nice enough for the workshop, but not really nice enough for the office. Here it is:

Cost about $90, almost all of that in 3/4” pipe nipples (8) and floor flanges (12). The MDF shelves are 16” x 36” by 3/4”. The legs have a flange on one end and rubber feet on the other end, and the flanges screw into the bottom of the unit. The uprights between the first shelf and the second shelf have flanges on both ends. In all cases, you thread the flanges onto the pipes really tight and then you screw all the flanges to the shelves. The top shelf is set slightly to the back relative to the bottom shelf.

I don’t think I’ll want to stand all day, so I’ll probably move from my office to the workshop periodically.

Rock solid, very happy with it. Posting this from it right now.

P.S. I also bought this wireless keyboard/mouse combo ($45) to keep in the workshop, and this router ($70) to get better wireless coverage in my house. Pleased with both so far.

01/23/11 @ 10:16 PM

My push to have donuts declared the Breakfast of Champions probably won’t get anywhere, so I’m turning to oatmeal. I’ve been loving two oatmeal dishes I concocted—Blueberry Pie Oatmeal and Egg Fried Oatmeal—and wanted to share them with you.

The Oats

Both dishes start with the oats. No quick or instant oats for us, it’s steel cut or nothing, and Bob’s Red Mill Steel Cut Oats are the way to fly. The only non-Scottish oat to win the Golden Spurtle, and the Scots know their oats. Yummy. They take awhile to cook though, so I usually make a big batch and then reheat each morning. They don’t seem any the worse the wear to me, but a Scot may beg to differ. Anyway, this makes me about a week’s worth:

  1. Bring six cups of water to a boil.
  2. Add 2 cups of oats (half the bag, so next time you can just add the other half) and half a teaspoon of salt to the water, stir, and reduce the heat to low.
  3. 10 minutes later, stir.
  4. 10 minutes later stir again and remove from the heat.

Eat some and put the rest in the fridge.

Blueberry Pie Oatmeal

Who doesn’t want pie for breakfast? It’s not really pie, but it tastes like a dessert and it’s all healthy stuff, and it’s ridiculously easy:

  1. Stick a ripe banana in your cereal bowl and mash it up with a fork.
  2. Add some Wyman’s frozen blueberries to the bowl. These, as near as I can tell, are a million times better than any other frozen blueberries.
  3. Add some oatmeal (if leftover add some water) and heat in the microwave for a minute or two (depends on how much you’re making).
  4. Stir in some cinnamon (I add a teaspoon) and eat.

Egg Fried Oatmeal

Much like you make fried rice with cold leftover rice, you make this oatmeal with cold leftover oats. Very easy, despite my making it look like a lot of steps:

  1. Mince a garlic clove.
  2. Start heating your pan.
  3. Get out your cold cooked oats, vegetable oil, soy sauce, and 2 or 3 eggs.
  4. Scramble the eggs in a bowl.
  5. Wait for your pan to get hot enough.
  6. Add a tablespoon or so of oil to the pan and swirl it around.
  7. Saute the garlic for a few seconds. I tip the pan to the side and saute the garlic in the pooled oil, otherwise it burns.
  8. Add the eggs and scramble.
  9. While the eggs are still pretty wet add some oatmeal.
  10. Pour soy sauce all over the oatmeal.
  11. Stir fry, breaking up the oatmeal and eggs and just generally mix everything together real well. You can kinda flatten everything out and let it sit for a bit to make a little crust on the oats, before scraping it up, if you’re into that kind of thing.
  12. When it’s hot enough for you and the eggs are cooked enough for you, stop cooking, put it in a bowl, and eat it.
12/18/10 @ 06:51 PM

Ella’s hamster Kiki loves her Cheerios:

09/28/10 @ 07:58 AM

Here’s a nifty technique I’m trying: flagging visited links with a checkmark. Neat trick, but perhaps too gimmicky? I’ll see how it sits. Comments open.

06/10/10 @ 10:48 PM

I say graham crackers + Nutella + Fluff = s’moes (faux s’mores). Mmm!

03/26/10 @ 12:05 PM

I hate burpees. Even at my fastest clip I do them pretty slowly (10 in about 25 seconds), and in no time at all I feel like quitting from exhaustion and misery. About two-and-a-half years ago I managed 100 in just under 10 minutes, and the experience so scarred me that I’ve only worked them half-heartedly and sporadically since.

So, in the spirit of working on your weaknesses, I resolved to make them a staple of my regime, and just managed to get my time back under 10:00. My approach was pretty simple: do 100 burpees every Tuesday and Thursday. For the first workout, set the Gymboss (cool, new 2009 version of an already-great timer!) to 2 minute intervals and do 10 burpees at the top of each interval, resting during the leftover time (yes, that’s a lot of rest!). Every workout, subtract 5 seconds from the intervals. So 1:55 intervals the next workout, then 1:50, etc. Once you get down to 1:00 intervals, and you do 10 at the top of each, you will get your 100 in under 10 minutes.

Here’s how it went for me (date, interval time, total time):

1/14   2:00   18:40
1/19   1:55   17:11
1/21   1:50   16:21
1/26   1:45   15:12
1/28   1:40   14:44
2/02   1:35   14:10
2/04   1:30   13:55
2/09   1:25   13:06
2/11   1:20   12:25
2/16   1:15   QUIT (pulled shoulder at 17, bailed at 50)
2/23   1:15   12:06
2/25   1:10   11:02
3/04   1:05   QUIT (chickened out at 67)
3/05   1:05   10:15 (needed revenge)
3/09   1:00   09:51

This feels pretty close to my wall. The final 30 burpees of that set were ugly, ugly, ugly. Practically staggering to my feet to manage a 1-inch jump. Ugh. But I’ll take it. Not sure what I’ll do at my next workout. Shaving off another 5 seconds each round doesn’t sound like much, but it’d actually represent improving my time by more than 8 percent!

P.S. I know 10:00 isn’t an earth-shaking time. Remember this guy, who cranks out 100 in 5:00 and change? Unreal.

03/09/10 @ 01:29 PM

Just a small housekeeping note: I decided not to renew the domain name for a little Twitter experiment of mine, so Plovr now lives here (it scans Twitter for people looking for help, and lets you respond if you want).

03/03/10 @ 09:33 PM

My wife read an article recently that suggested, probably semi-tongue-in-cheek, that figure skating is not a sport because it is subjectively judged, and the participants wear costumes and perform to music. While I’m not a big fan of subjective judging, I think this unfairly short-changes these athletes. So, out of a great breakfast conversation with some friends, this chart was born (made with gliffy):

Notes:

  • While it seems to me that there are some fat professional baseball players, none of those guys can spend all their time on the couch, and most are in great shape, so baseball is a sport.
  • Perhaps golf was a game before Tiger came along and raised the bar, and now it’s a sport?
  • Not sure about NASCAR or bowling. I know there are physical demands, but can you compete on the elite level without athletic training? If so, game. If not, sport. I’m not making any judgments, I just have no idea personally.

Updated, Alternate: My breakfastmates had proposed a risk clause, which I had taken out for simplicity’s sake, so if you prefer, this version puts it back in. Also, thanks to Alec for the Hemingway clause that also made it in:

Updated, Personal Version: Personally, I like the Hemingway clause but not the risk clause, so this is the version I use:

03/01/10 @ 11:41 AM

I had posted a little something yesterday, but thought it deserved a slightly fuller treatment. Browser tabs are awesome, as all browser makers now recognize. I run three Firefox extensions that play nicely together, and make for a tab experience I love, especially since I tend to have lots of tabs going all the time:

  1. Tab Kit: among other things, this allows me to run the tabs vertically down the left hand side. While it takes getting used to, it’s much better than across the top. Since monitors are wide but web pages tend to be “tall”, you naturally have room on the side if you’re running at a decent resolution, and even with a ton of tabs open you can still see the title of each tab (unlike across the top, where the space for tab titles shrinks with each new tab). It also supports tab grouping and sorting and a bunch of other tweaks.
  2. BarTap: one problem with keeping a ton of tabs going is how long it takes the browser to start up and load all the pages at once (assuming you have FF set to restore your tabs). BarTap solves this by displaying tabs (with the page titles) for all the tabs you had open, but it doesn’t actually load them until you visit them. MUCH faster to start up when you’ve carried over a bunch of tabs. (via rob)
  3. Close Tab by Double Click: self-explanatory.
02/12/10 @ 10:02 PM

Foreword: This post is not specific to Picasa, so don’t be put off by the first couple paragraphs if you don’t happen to use it.

I love Picasa, but for the longest time it had a major annoyance: when downloading photos from your camera it would stick them in a folder dated according to the download date, not the date the picture was actually taken. This has been fixed in recent versions of Picasa, and there is now an option when importing to organize the downloads by date taken:

The problem is, the folder names are what is displayed to you in the Picasa interface, and I had almost 6,000 old photos stored in folders according to download date rather than taken date. I needed a way to automatically reorganize my old photos into a consistent directory structure that used the right dates. I thought I’d find a free tool that would do this easily, and I did, but it’s not easy for a casual user, so I thought I’d write up the steps.

First, MAKE A BACKUP. You have been warned. Okay, backup safely stowed away, go to wherever you keep your photos. We’ll call it Pictures. You probably have a pile of subdirectories there that that look like this:

In Pictures, create a folder called “old”. Move ALL the subfolders and photos from Pictures to Pictures/old:

Next, download ExifTool and unzip the contents to the “old” folder. Rename the resulting file from exiftool(-k).exe to exiftool.exe. This is the tool that will do all the renaming work for you.

So now the “old” folder should contain all your photos (most if not all in badly dated subfolders) and exiftool.exe. While holding down the SHIFT key RIGHT-click the “old” folder. Pick “Open Command Window Here” (note that this option will only appear if you are right-clicking a folder in the RIGHT Explorer pane – stupid Windows). At the prompt, type:

exiftool "-Directory<DateTimeOriginal" -d "../new/%Y-%m-%d" -r .

… and hit ENTER. After churning for awhile and possibly throwing a ton of warnings (some might be important, although for my run none were), it will eventually finish like so (I’ve included some sample warnings):

At this point, most of if not all of your photos have been moved from the “old” directory to a set of properly dated subdirectories in a new “new” directory:

If you’re like me though, some photos (and all videos) might lack the metadata needed for ExifTool to work its magic. I was going to suggest you use Windows Search to find those files, but I just tried that, and it sucks mightily. It missed a TON of photos and videos that I would have lost had I not double-checked. Stupid Windows. So instead, install the Everything search engine, let it do its indexing, then right-click the “old” folder and pick “Search Everything…”

(If I were the MS employee in charge of search I’d hang my head in shame for being so outclassed by a third-party file finder.)

You can then copy-and-paste (or cut-and-paste, or drag-and-drop) all the photos (be sure to look for video files too) that were left behind and put them in a new folder under “new” called “undated” (or whatever you want).

Finally, move all the properly dated subfolders under “new” back up to Pictures, and delete the “old” and “new” folders. The next time you fire up Picasa it might take awhile for it to load as it recompiles all the metadata and whatnot, but when it’s done its UI should reflect the new properly dated folder structure. And since it will respect this structure on future imports, you’ll hopefully never have to do this again.

01/11/10 @ 10:48 PM

I use Remember the Milk to manage my to-do lists. It rocks, and includes great keyboard shortcuts. Two odd ones though (from a Windows perspective) are “r” to rename, and CTRL-SHIFT-slash to “Find.” I want to use F2 to rename, and CTRL-F to find (it’s okay that this would overrides Firefox’s built-in find shortcut, because when I’m on the RTM site, I want to do an RTM find).

Enter AutoHotkey. Here’s a simple script that does a remapping, just for RTM windows:

#IfWinActive Remember The Milk
F2::r
^f::^+/

Love AHK (and RTM).

12/22/09 @ 03:35 PM

I try to keep it pretty selective, but if I don’t post often enough for you I have revived my delicious account, where I’ll be posting these links, plus spillover links. Still good stuff, just maybe a bit less good. Or maybe just less good to me, but even better for you. There will certainly be more to choose from.

12/10/09 @ 11:27 AM

A friend of mine needed to reset her router to the factory defaults, and in so doing needed to have her ISP walk her through the process of getting back online. She had a connection, and got to a server with a “your account has been suspended” page. Great, we can connect, just unsuspend the account, you’d think. Alas, no, protocols must be followed. Protocols that take AN HOUR AND FIFTEEN MINUTES to grind to their inexorable conclusion. This is exactly how it shook out, allegorically, people and houses standing in for computers and networks:

Billy (calling on cell): Mom, the front door is locked, and when I knocked you looked and then went away. Why can’t I come in?

Mom: Who is this?

Billy: It’s me, Mom, it’s Billy.

Mom (typing noises): Oh, right. Billy, you say. Where are you?

Billy: I told you, I’m at the front door.

Mom: How did you get to the front door?

Billy: The bus dropped me off. Like every day. Can I come in?

Mom: Not bloody likely.

Billy: Great. Wait… what?

Mom: I can’t let you in until I walk you through getting home.

Billy: But Mom, I am home. I’m right outside. Just unlock the door.

Mom: I’ll be right back, I’m calling you a cab.

Billy: What? WAIT, why are you calling me a cab?!

Mom: To bring you back to the school. You have to finish classes, gather your things, get on the bus, ride the bus, get off the bus, walk up the driveway, take off your hat, and then I can let you in.

Billy: But I’m here! I did all that! Why can’t you just let me in?

Mom: Well, you’re wearing a hat. What if it’s not you?

Billy: You can’t tell it’s me because of my HAT?! Why didn’t you say so in the first place? Whatever, nevermind that. But since when is my hat a problem? You can recognize my voice! My clothes! My FACE! Fine, I’ll take the stupid hat off… Okay, look out the window, see, it’s off!

Mom: Well lookit that, it IS you! [waves through the glass] Hi honey, I love you! Now hang up so I can call you that cab.

11/19/09 @ 11:59 PM

I occasionally print out really long articles for bedtime reading. If I print directly from the browser, I end up with a TON of pages. So usually what I do is copy the text to Word, shrink the margins down to the minimum (except I go 0.6” top margin to allow room for stapling), convert to two columns with a line and 0.2” between them, and change all the text to Times New Roman 8pt. It ends up looking something like this (from this SI Andre Agassi article I’m looking forward to):

I recorded a macro and mapped it to a toolbar button so I can do it in one click. Here’s the resulting code, if you want to use it:

Sub SaveInk()
  WordBasic.PageSetupMargins Tab:=0, PaperSize:=0, TopMargin:="0.6", _
    BottomMargin:="0.25", LeftMargin:="0.25", RightMargin:="0.25", Gutter:= _
    "0", PageWidth:="8.5", PageHeight:="11", Orientation:=0, FirstPage:=0, _
    OtherPages:=0, VertAlign:=0, ApplyPropsTo:=4, FacingPages:=0, _
    HeaderDistance:="0.5", FooterDistance:="0.5", SectionStart:=2, _
    OddAndEvenPages:=0, DifferentFirstPage:=0, Endnotes:=0, LineNum:=0, _
    CountBy:=0, TwoOnOne:=0, GutterPosition:=0, LayoutMode:=0, DocFontName:= _
    "", FirstPageOnLeft:=0, SectionType:=1, FolioPrint:=0, ReverseFolio:=0, _
    FolioPages:=1
  If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
    ActiveWindow.Panes(2).Close
  End If
  If ActiveWindow.ActivePane.View.Type <> wdPrintView Then
    ActiveWindow.ActivePane.View.Type = wdPrintView
  End If
  With ActiveDocument.PageSetup.TextColumns
    .SetCount NumColumns:=2
    .EvenlySpaced = True
    .LineBetween = True
    .Width = InchesToPoints(3.9)
    .Spacing = InchesToPoints(0.2)
  End With
  Selection.WholeStory
  With Selection.ParagraphFormat
    .LeftIndent = InchesToPoints(0)
    .RightIndent = InchesToPoints(0)
    .SpaceBefore = 0
    .SpaceBeforeAuto = False
    .SpaceAfter = 6
    .SpaceAfterAuto = False
    .LineSpacingRule = wdLineSpaceSingle
    .Alignment = wdAlignParagraphLeft
    .WidowControl = True
    .KeepWithNext = False
    .KeepTogether = False
    .PageBreakBefore = False
    .NoLineNumber = False
    .Hyphenation = True
    .FirstLineIndent = InchesToPoints(0)
    .CharacterUnitLeftIndent = 0
    .CharacterUnitRightIndent = 0
    .CharacterUnitFirstLineIndent = 0
    .LineUnitBefore = 0
    .LineUnitAfter = 0
    .MirrorIndents = False
    .TextboxTightWrap = wdTightNone
  End With
  Selection.Font.Name = "Times New Roman"
  Selection.Font.Size = 8
End Sub
11/03/09 @ 02:17 PM

I tried a variety of jQuery plugins for warning the user when they are about to leave a form with unsaved changes, and I couldn’t quite get any of them to behave exactly the way I wanted. Among other reasons, I needed to support TinyMCE and jQuery tabs. Anyway, I ended up rolling my own, which I’m making available in case it might help somebody else. Here’s the file, usage instructions are in the source comments:

jquery.isdirty.js

Note that this plugin relies on the onBeforeUnload event, which I think is only supported by IE and Firefox, but it works better and is less complicated than other solutions that don’t rely on that event. An unfortunate tradeoff. I wish that event were more widely supported.

10/15/09 @ 11:52 AM

If you read rec.sport.disc via Google Groups or some other spam-laden interface, I worked up an alternative with Yahoo Pipes. Here is a spam-filtered pipe of new RSD topics, and here is a spam-filtered pipe of all RSD messages.

Both those pages include various other subscription options, including RSS, e-mail, and others. Clicking any headline will bring you to the post in Google Groups, where you can read as usual. If there are certain authors you want to filter out you can use my Toadless script.

Another cool thing—and this is key—look for the “Clone” link on the filtered results above. This feature allows you to make your own version of the pipe (it has a nice, non-technical interface) should you want to filter out particular authors, or if the spammers change habits and stuff starts sneaking through. You can customize it to fit your own needs, and then use your cloned pipe instead of mine.

So far, the above plus Toadless pretty much fixes RSD for my purposes.

P.S. What you REALLY want is to subscribe to the pipes above using a newsreader. They are great for keeping up with various Ultimate weblogs and RSD at the same time (and any other sites that offer newsfeeds, for that matter). Google Reader is a great one, here’s a little intro from Google.

07/10/09 @ 08:28 AM

If you read rec.sport.disc via Google Groups, which lacks a killfile that you’d get with a dedicated usenet reader, and wish you could see less of Toad, I wrote a little script that hides his posts. You have to use Firefox with the Greasemonkey extension installed. If you are, click (toadless.user.js) to install my script, and it will hide Toad’s posts when you view a thread. Actually, it replaces them with an innocuous little placeholder, like so:

Also, you can pretty easily update it to hide posts from any user that you don’t want to read anymore. To do that, right-click the monkey in the lower-right corner of Firefox, and go to “Manage User Scripts” -> Toadless -> Edit. Scroll down to line 50 and follow the instructions there.

You might want to also check out my RSD spam workaround. Between this and that, RSD is readable to me again.

UPDATE 7/21/09: The script looks a little different from the example above, but the idea remains the same. It now plays nicer with Google’s expand/collapse code, and you can click any hidden post to reveal it, on the off-chance you need/want the context.

07/02/09 @ 01:02 PM

I had a couple relatively funny spam subjects in a row containing the word “pants,” so did a quick search of the 3,000+ or so spam GMail caught for me recently. 16 feature “pants”:

  • Hold the enormous manfullness in your pants.
  • Suddenly you feel that your pants have steel inside them.
  • Your pants will be in order all the time.
  • If you think that power in your pants is not good enough, check this pill out.
  • US senator crapped his pants!
  • A big equipment in your pants brings big fruits for hot chicks to pick up.
  • You feel like a giant comparing to the midget in your pants?
  • Feel your pants expand with the new formula
  • The vigor in your pants will be unbreakable.
  • More inches in your pants – more attention from female friends.
  • Get king-kong in pants
  • Change the turmoil in your pants with the blue pill.
  • Now you don’t have to turn off the lights when you take off your pants.
  • Chicks will be at a loss for words when you take your pants down.
  • Unzip your pants knowing that you have a real treasure there.
  • Your little friend in your pants is capable only for visiting toilets.
  • The hard friend in your pants will look up into the sky.

“Manfullness,” I must work that one into my vocabulary.

“Are your pants in order all the time?” really wants to be a new way of asking somebody if they’ve got their shit together.

“Suddenly you feel that your pants have steel inside them.” Oh no… Can’t. Bend. Knees…

I do NOT want to know what medical condition “turmoil in your pants” alludes to.

At least a couple of these would make for good fortune cookies.

04/14/09 @ 01:33 PM

I wanted to do something with Twitter, so hatched plovr. It scans Twitter looking for people who need help, and helps you help them (you can reply via the plovr Twitter account, without belonging to Twitter yourself, or you can click through to Twitter and lend a hand as yourself).

If you have a minute, check it out, maybe help a stranger while you’re there!

03/16/09 @ 03:25 PM

Off to see Coraline with Amelia this afternoon! In celebration, a little GIMP work:

She finds it creepy. Mission accomplished. :-)

02/10/09 @ 01:25 PM

(Apologies in advance for the meta-profanity.)

The most recent appearance of the D-word on my radar, from Merlin Mann’s new post at 43 Folders, Photography, and the Tolerance for Courageous Sucking, in which his internal monologue tries to undercut his new hobby:

“Oh, Jesus. Really?“ some voice whined. “Now you’re That Guy? Can’t you just walk out there like a grownup, retrace your steps, and be back here in 5 goddamned minutes? You really need to drag your giant, douchey camera out for a four-block walk? Who’re you now, freakin’ Diane Arbus? Jeez, get a life.”

“Douchey?” When I was in high school, if you used that word as your expletive of choice that was a pretty good indicator that you were somebody I wanted nothing to do with, but now it looks like that simple litmus test is a thing of the past. Not only does Merlin Mann (who I like) use it, but Jon Stewart (who I like) uses it as a comedic crutch (if recent episode of The Daily Show are any indication).

So are they words on the rise, or has my brain decided (totally against my will) to pick them out of the air? A little research…

Google Trends has “douche” marginally on the rise as a search term:

… but I’m wondering about word frequency in text, not in people’s searches. I assume search frequency is more driven by legitimate need and preteens looking up naughty words rather than any linguistic prevalence. Although what’s up with that big spike in late 2004? Anyway, the “news reference volume” is a more what I’m looking for, so off to Google News which gives me a timeline of the actual word usage (as opposed to search usage):

Looks like a spike to me, especially if you contrast with “fuck“, which is the model of a fully saturated cuss word:

Fuck can stay, but I’m already tired of douche. I’m hoping it’s a fad.

12/02/08 @ 09:08 PM

Awhile back I tried kludging together a glute-ham developer. The experiment was a failure, but I didn't realize how much of a failure until buying a real GHD. Night and day, even buying the cheapest one I could find, this Yukon GHD. It's quite nice for the price. The only problem I had was with the footplates, which are too small and too far away to fully engage. Here is my fix:

The pieces are made of 3/4" plywood scraps, and the carriage bolts go on either side of the footplate (so you don't have to drill through it). There are washers in all the obvious places, but also between the front and back plywood pieces that butt up against the edges of the footplate, preventing side-to-side motion. These are perhaps unnecessary, as you can really clamp these on pretty tight.

This modification makes a HUGE difference in the feel of the machine. The increased surface area accommodates my size 12.5 feet nicely, and the added thickness is great too, locking my feet in much better. I can use the GHD much more effectively now than before. I can't imagining owning one of these machines and NOT making this fix.

08/16/07 @ 11:25 AM

I recently discovered that four quarter-inch (1/4") neodymium disc magnets ("rare earth" magnets) will not only fit nicely inside the body of a Bic pen, but they are strong enough to hold both the pen and a shopping list to my refrigerator:

fridge pen

Perfect! The list and the pen will always be right where I want them. And I can just use scrap paper for lists instead of buying ridiculous magnetic notepads. I had disc magnets on hand, but I bet a cylinder magnet would be a great choice as well. You might have to trim a bit off the ink sleeve to make room for the magnet in the barrel, but as I mentioned on my Earth Pen post, this has never caused me any leaks, so trim away.

03/19/07 @ 09:39 AM

In the tradition of posting my AutoHotKey hacks (Universal AutoCorrect with AutoHotKey and Wikipedia and Making the INSERT Key Useful Instead of Annoying), here's a new one that lets you easily convert text you select in any application to upper (CTRL-SHIFT-plus) or lower (CTRL-SHIFT-minus) case:

; Convert Selection to Lower Case
^+-::
bak = %clipboard%
Send, ^c
StringLower, clipboard, clipboard
Send, ^v
clipboard = %bak%
return

; Convert Selection to Upper Case
^+=::
bak = %clipboard%
Send, ^c
StringUpper, clipboard, clipboard
Send, ^v
clipboard = %bak%
return

See either of my previous posts for more detailed information on what AutoHotKey is and how to get it fired up.

01/19/07 @ 03:03 PM

When you have a movie in your queue that is also for sale, Netflix links to it. While I don't object to this in principle, the manner in which they go about it his very distracting. Here's a fix, until they come up with something more unobtrusive (like a tiny dollar sign icon next to the title):

Should do the trick, unless Netflix changes the CSS definitions out from under me.

P.S. You might also like my script for queue reordering.

01/09/07 @ 03:57 PM

If you are the sort of person that uses keyboard shortcut, you probably know that F3 is commonly used as the shortcut for "Find Next". And if you know that, you probably use that command a lot. And you probably still hit F3 in Microsoft Word expecting it to work, only to be disappointed. Despite making that mistake thousands of times.

Or maybe it's just me.

Anyway, here's a quick AutoHotkey script for making F3 work the way you'd expect in Word (it remaps F3 to MS's shortcut for Find Next, SHIFT+F4):

#IfWinActive ahk_class OpusApp ; only in Word
F3::+F4
#IfWinActive ; reset

I could have just remapped the keys in Word itself, but this way I can carry this behavior with me via the AHK scripts I keep on my USB key (and I keep my scripts in sync from my desktop machine to my USB key with Unison, which rocks).

12/02/06 @ 11:36 PM

If you've ever wished you could deselect a radio button this hack is for you. Here's the way radio buttons usually behave:

See how once you select one, there's no way to get back to a state where no radio buttons are selected? Well, here's how to fix that:

11/29/06 @ 12:00 AM

I wanted to be able to easily count up my Netflix returns (630 over the past 5+ years), so whipped up a quick solution. Here's what you do:

11/22/06 @ 12:07 AM

A buddy of mine didn't like the way Word decided which folder he needed when opening documents:

This one has always bothered me. Again, I'm writing along, and I need to open another Word file. I have a thousand folders within folders, because I have notes and papers going back years, organized by time and within that by the course I've taught, the research project, etc. At this level my organization is actually good, I can find things when I want them very quickly.

The folder I want, most frequently, is the same one within which I'm currently writing. For example, I'm working on lecture notes for tomorrow, and I need to check the syllabus in the current course.

But when I hit CTRL + O, of course, it takes me way back up to this high level, to "AlecDox," which is how I renamed whatever uber-macro folder the machine gave me initially. Then I have to open the current semester folder, the current course folder, then the doc I want. Wasted steps. Sometimes, it goes to whatever folder I Opened most recently. But *every time* it restarts, sleeps, or auto-logs me off, which of course it does all the time, it takes me back to the big high AlecDox folder.

Can I tell my computer to respond to every Open command by opening the folder within which I'm currently working -- that is, within which the currently-open document, if there is one, resides?

This is what I ended up having him do to make Word behave this way. Give it a go if you want the same behavior:

  1. Open a Word doc.
  2. Go to "Tools" ⇒ "Macro" ⇒ "Macros..."
  3. Under "Macro name", type:
    FileOpen
  4. Click Create.
  5. Some code representing the current FileOpen behavior will appear in a code editor. Select all of it and delete it. Replace it with this (largely stolen from a guy named Larry):
    Sub FileOpen()
    
    On Error GoTo ErrorHandler
    
    If ActiveDocument.Path <> "" Then
       ChangeTo = ActiveDocument.Path
       ChangeFileOpenDirectory (ChangeTo)
       SendKeys "+{TAB}"
    End If
    
    Application.Dialogs(wdDialogFileOpen).Show
    
    Exit Sub ' Exit to avoid handler.
    ErrorHandler: ' Error-handling routine.
    
    Application.Dialogs(wdDialogFileOpen).Show
    
    End Sub
  6. Close the code editor.

Seems to do the trick! And it turns out I prefer this behavior as well, so set up my own copy of Word to work this way.

11/17/06 @ 09:45 AM

Another quick AutoHotKey script:

#v:: ; Win-V hotkey
clipboard := clipboard
Send, ^v
return

This converts whatever's on the clipboard to plain text (no formatting) and then pastes. I use this all the time when copying some text from a web page to Word because I often don't want the formatting to tag along. I chose Win-V because Ctrl-V is the normal paste shortcut.

Interesting side effect: if you copy a file or folder in Explorer and then use Win-V to paste it, it's path is pasted as text. Also handy.

UPDATE: ruddym contributed this version, which is almost certainly better reliable. Mine hadn't given me any trouble, but his looks more robust, and I've been using it for months. Thanks ruddym!

#v::
Clip0 = %ClipBoardAll%
ClipBoard = %ClipBoard% ; Convert to text
Send ^v ; For best compatibility: SendPlay
Sleep 50 ; Don't change clipboard while it is pasted! (Sleep > 0)
ClipBoard = %Clip0% ; Restore original ClipBoard
VarSetCapacity(Clip0, 0) ; Free memory
Return
10/27/06 @ 01:59 PM

Y'know how sometimes you go to hit the Home key and you accidentally catch the Insert key too, but you don't realize it until you've typed over something, because suddenly you are in "overstrike" mode rather than "insert" mode? I wanted to kill the Insert key, and immediately thought of my favorite utility, AutoHotKey (upon which I built that Wikipedia AutoCorrect thing). But instead of just killing the Insert key, I thought perhaps I could make it do something useful. So I took the "append" script from here and just changed it to fire whenever I hit Insert, like so:

Insert::
bak = %clipboard%
Send, ^c
clipboard = %bak%`r`n%clipboard%
return

This has two effects:

  1. Hitting Insert no longer puts me in "overstrike" mode.
  2. If I have text selected, it is appended to the clipboard (unlike CTRL+C, which replaces whatever is on the clipboard with your new selection).

UPDATE: I added another script, this one for CTRL-Insert. As a web programmer, I'm sometimes faced with a specific repetitive task of going through text and putting stuff around little chunks of text. In this case, I had a bunch of questions on a page that needed to be emphasized, so I needed to wrap them in STRONG tags. Each question was different, so I couldn't do a find/replace with regular expressions. What I wanted was to select the question, hit CTRL-Insert, and have it automatically put the tags around whatever I had selected. My solution is kinda convoluted, and nobody will care about it but me, but here goes anyway. First, the script:

^Insert::
bak = %clipboard%
Send, ^c
StringReplace, clipboard, bak, @@, %clipboard%
Send, ^v
clipboard = %bak%
return

Then, once you have it installed, the steps:

  1. First, type out your "template". You just need to put @@ wherever you want the selected text to be inserted. For my example, the template looks like this:
    <STRONG> @@ <STRONG>
  2. Next, select your template text and copy it to the clipboard.
  3. You're all set. Select a question (or whatever you want between STRONG tags) and hit CTRL-Insert. Continue selecting and CTRL-Inserting as needed. So in my example, if you select "my dog has fleas" and CTRL-Insert it, it is instantly replaced with
    <STRONG> my dog has fleas <STRONG>

Your IDE might do something like this already, but I like that AHK makes this functionality available in any application. And I can bring it along on my USB key, making me more at home on foreign machines.

10/23/06 @ 11:50 PM

[ Be sure to read the final update at the end of this post! ]

I've really been enjoying AutoHotkey (AHK), a tool that lets you execute macros, text expansion, custom keyboard shortcuts, etc. My favorite feature is the text expansion, where it watches what you type and when it recognizes an abbreviation you've defined it will expand it automatically, no matter which application you're typing in. So "ttyl" could be automatically expanded to "talk to you later" in an e-mail, instant message, Word document, browser forms, etc. Very handy.

Anyway, you've probably noticed Word has an "AutoCorrect" feature where it corrects common misspellings on the fly. For example, "teh" gets instantly corrected to "the". I was thinking it would be great to use AHK to get that same functionality in any application. I had slowly been adding my own most common typos to an AHK script, and it worked great, but then I thought it would be nice to have a more comprehensive list. Enter Wikipedia, and its lists of common misspellings! I grabbed the machine-readable download, parsed it, commented out the ambiguous entries (see comments in the script), added in my own person gotchas, and loaded it. Cross-application AutoCorrect! Here's a zip file containing the script if you want to give it a try:

  • wikipedia_autocorrect.zip See UPDATE 5 below for the script's new home.

You'll need AHK installed, of course. And note the "Hotstring" feature this technique uses is only available on Windows NT/2000/XP or higher.

UPDATE: Adam at Lifehacker linked this up, thanks! He notes I could have compiled this for non-AHK users. I probably should have, but didn't because I just assumed folks would want to add their own common misspellings. But if you just want to run it without installing AHK, Adam has made a compiled version available via his post. Very cool.

UPDATE 2: I updated this script to include Tara Gibb's enhancement (see below) and a few more of my own common misspellings. The enhancement lets you highlight a misspelling and hit WIN+H to easily add the correction to the script (so it's self-updating). A nice way to flesh the script out with your own spelling foibles (another reason to not run the compiled version provided at Lifehacker, as this feature won't work there).

UPDATE 3: Quite excitingly, Chris Mallett, the author of AutoHotKey, found this script and linked it up! He also made a couple improvements, which are now reflected in the script available above. I tossed in a few more of my personal common misspellings while I was at it.

UPDATE 4: Reader Shane submitted a pile of Word AutoCorrect words for inclusion, so I folded those in (after removing duplicates). Thanks Shane! While I was at it I also folded in a bunch more of my personal misspellings. In all, there's probably around 700 more entries in the latest version.

UPDATE 5: Chris Mallet and the AutoHotKey community have taken this script under their wing. Specifically, Dewi Morgan has made some terrific improvements, cleaned up the code, and added many more words. I think that version should be considered the definitive version, and is available at the AHK Other Downloads page. Very cool!

08/03/06 @ 01:57 PM

I really liked my Fisher Space Pen, the key attribute being its size: it fit comfortably in the side pocket of my jeans. After I lost it, I really liked my second Fisher Space Pen too. After I lost that one, I thought for a minute before buying another. Did I really care about anything but the size? Had I even once used my Space Pen to write underwater or in the cold vacuum of space? No. To the tune of $15 a pop, did I want to go $45 in the hole to Fisher? No. So here's what I did:

Got myself a dozen of these Bic pens (something like $0.35 each):

Took one apart and cut off around two-thirds of the barrel (cut through the "d" in the "med USA" part of the label):

Lined up the ink sleeve with the remaining part of the barrel to see how much I'd have to remove, then snipped it off (even cutting through the inky part, I've never had any leakage - YMMV):

Assembled, it's as small as a Space Pen, and not as smooth and shiny, so it's less likely to slide out of your pocket (and if it does, who cares?):

With the cap on the back it's long enough to hold comfortably, even with big hands:

I've gone through four or five of these, and have never had a leak. Even though you lose some ink when you trim 'em down, they still last for a good long time.

True, the next time I'm on a top secret mission and my nemesis tries to kill me slowly in a vacuum chamber and my only hope is to write a note on a piece of paper and hold it up to the plexiglass telling the buxum heroine how to turn off the machine I'll be completely hosed, but I'm willing to take my chances.

06/01/06 @ 11:26 PM

Y'know how when you want to paste an Amazon URL to somebody, it's really long, it wraps, and it's ugly? Well, it's possible to greatly shorten such URLs. For example:

http://www.amazon.com/gp/product/B000E6EK3S/
ref=amb_center-9_160116401_1/104-0734288-7167943?
n=130

...becomes:

http://amazon.com/o/ASIN/B000E6EK3S

I had a bookmarklet for doing this conversion with a single click, but in the ultimate display of laziness, I wanted to do it automatically instead. Hence my new "Short Amazon Permalinks" Greasemonkey script. What it does is this: when viewing an Amazon product, it converts the big title text to a link which points to the shortened version of the URL. Now all you have to do is right-click, "Copy Link Location", and you have the shortened version ready for pasting.

To use it you'll have to be running Firefox and Greasemonkey. If you are and want to give it a whirl, click the link to the script above and install it, then visit a worthy Amazon page. It should be all linkified.

02/20/06 @ 12:27 AM

The bookmarklet I was using for shortening Amazon URLs recently broke, so I found this nice one at Distilled Illusions and modified it to handle what is apparently a new URL format at Amazon. Here is my version of the bookmarklet. To use, bookmark that link (putting it in your toolbar makes it very convenient), navigate to an Amazon product page, then click the bookmarklet (bookmark). A popup will appear with the shortened Amazon link for your copying/pasting pleasure. And here's the code, formatted a bit for readability:

javascript:
var index=location.href.indexOf('/-/');
if(index==-1){
  index=location.href.indexOf('gp/product');
  if(index==-1){
    var asin=location.href.substring(index+5,index+15);
  }else{
    var asin=location.href.substring(index+11,index+21);
  }
}else{
  var asin=location.href.substring(index+3,index+13);
}
var u='http://'+location.hostname+'/o/ASIN/'+asin;
w=window.open('','','height=3,width=400');
w.document.write('%3Ca href=%22'+u+'%22%3E'+u+'%3C/a%3E');
w.document.close();

I also modified the output slightly so that the shortened URL is a link. In Firefox you can thus right-click, "Copy Link Location" to get the URL onto the clipboard.

10/25/05 @ 12:11 PM

Hi

I'm Jim Biancolo, and this is stuff I found interesting that I thought you might like too. Here are some of my favorites if you want to start there. Mostly I link to other people, but some stuff is mine, like:

Spillover

I am loving Instapaper, and use if to sock away stuff to read. Here are a bunch of articles I read recently and liked.

Archives

Subscribe

Here are the RSS feeds for this site, my Instapaper reading list, and my Instapaper favorites.

"RSS? What in the blazes are you carryin' on about, boy?"

If you prefer, enter your address below to get updates via e-mail. Powered by Feed My Inbox (they have a good privacy policy).