2006 (old posts, page 6)

MyDreamApp Finalists

Thanks to Gus, I took a quick tour through the MyDreamApp finalists today, and voted for two of them, Portal and Blossom. Portal is a long shot - it's basically proposing to solve multi-computer file syncing seamlessly, but it would be great if done right. See Wil Shipley's comments for why it's hard. Merging is not easy.

Blossom is a great idea to link productivity nannying with emotional appeal - work hard and your desktop plant grows! It needs a new name, but with the right design and art, I think it'd be a hit. If they took a cue from the Nike+iPod multiplayer game, we could compete on productivity - make work a game and compete to see who can build the biggest, healthiest desktop plant. Brilliant!

Today's Windows User Fun Fact: I had to use Internet Explorer to see the entries on the MyDreamApp page - Firefox didn't show the entry details when I clicked on the pictures.

Windows User

I've been a Windows User for two weeks now. Since my powerbook disk died, I've been working on a loaner Dell Lattitude with XP.

I get by. It's not as hard as I would have guessed. Most of my work these days just needs a decent terminal, and SSH from ssh.com (who knew there was a commercial SSH?) works OK. I don't understand why it doesn't save my keyboard preferences, but I muddle through.

I'm using pine for email, and the lack of SpamSieve is shockingly obvious. Sometimes control characters in spam emails garble the screen so badly that I can't tell what I'm deleting.

Otherwise, I use Firefox, and Google calendar keeps my schedule. So far, I haven't missed my iCal integration applescripts (new-todo-in-quicksilver, new-event-from-email, and new-todo-from-email), but I'm sure I will if this goes on longer.

I miss the years of notes I had inVoodooPad. In its place, I've been using emacs org-mode in a terminal. I like the outlining and todo/agenda gathering it can do, and wouldn't be opposed to similar features in VoodooPad. I'd actually been using it in the weeks before my forced switch, but just for the todos.

I've accidentally tried to print about a hundred times when editing text, expecting the old emacs shortcuts to be there. This is OK, though, because I can't configure printers.

There is a similar story for almost every key shortcut I want to use - I have no idea how to switch between tabs in Firefox, and when I did find out how to minimize windows from the keyboard (Alt-space, 'n'), I wished I hadn't, because it only works in half of the programs I use.

One thing Windows does is make me want to give up earlier. I actually just don't care if I can't figure out a good way to do something. This is an exciting new feeling - I just give up and get back to work, and each time, I feel a little more like a real grownup. You know, how you feel after all your youthful dreams have died.

I get more done at work with Windows. I no longer install programs just to try them out (scary!), or hack on minor projects (no friendly tools built-in). Even just surfing around is just not as tempting, and I do less of it, both at work and at home. In moments of weakness, I have considered swapping my PowerBook for three pound Windows laptop, just so I can finish sooner and with better posture. I know I could never do it, but the thought lingers.

Step back: why laptops?

I've been thinking of how I'd work if I didn't have a laptop. One thing's for sure: I wouldn't spend as much time rubbing my neck while waiting for builds, for a couple of reasons.

I'm beginning to wonder if a laptop is really any good at all, let alone necessary. Wouldn't I rather not carry that thing around all the time? Should my hands really sweat when my computer is working hard? Doesn't having a laptop just give me an excuse to pretend I'll be able keep working "later", even though that never really works? Does anyone really gain more productivity from working at a coffee shop than they would using a fast desktop computer?

I think the one thing my laptop is best at is blurring the line between fun and work, and not in a good way for either.

With the heat, weight, relatively poor performance, and especially the paranoia from carrying such an expensive thing around, I've grown to seriously resent my Powerbook, despite being at quite a loss without it.

Has anyone found a good way around the extreme dependence on heavy, fragile, hot-plate laptops, and still been able to get things done in more than one place? Anyone carrying Mac minis around between monitors? Carrying a disk between minis? Strict work/home division? What's your scheme?

Portable gut check

My Powerbook's disk died yesterday around 1pm. Since then I've been thinking about how to get by without it. After taking far too long to realize it was beyond my troubleshooting ability, I took it to the UTC Apple store at 5 or so, and got an appointment for 7:45, then went for a drink. When I came back, the Apple store guy referred me to drivesavers - I'll have to see what their estimate is when they call me back. For now, I assume I'll have to pay whatever they ask - I was careful about backing up notes and papers to my iDisk and keeping important work files in repositories on other machines, but there is still a lot of stuff on that machine that I can't replace, and my full-backup scheme was just inconvenient enough (and my target disk just small enough) that my full backup is pretty stale.

I can keep working for now on lab computers and my old home Mac - I'm pretty impressed with how much I can just transfer over to another mac and keep running - I can check all my mail (IMAP or GMail), read my NetNewsWire subscriptions (Newsgator Online), go through my bookmarks (iSync & .mac). Pretty impressive, even without any effort to stay flexible.

Here's hoping I can be back on track soon - for now I'm only a Mac user at nights, and I'm going to miss a few things during the days, to be sure.

AutoFill: BibDesk and DC-HTML

For my first contribution to BibDesk in a while, I've added the ability to read Dublin Core metadata when it is encoded in HTML META tags on a web page.

What this means is that when using the "New Publications from Web" feature, some sites you browse to will have the publication's information filled in for you, so you don't have to type anything at all. The Eprints.org open archive software does this, so check out their list of archives for examples to test it out on.

It'll be in the next version, which isn't scheduled yet, so if you'd like to try it out sooner, see the nightly builds page and heed its warnings.

If you publish web sites with one-page-per-pubcation and want info about embedding DC terms in your meta tags, see the Dublin Core recommendation.

If you want to support AutoFill for a site that doesn't have one page per publication, or would like to provide more metadata, I suggest waiting for the citation microformat. Feel free to ask why...

Update: I made a 12-second movie of how it works - BibDesk, EPrints and Dublin Core

TextStructure screencast

In case you had no idea what I was talking about in the last post, I've put together a hasty screencast with no script, no soundtrack, and no editing.

In the video you can see a few things:

  • 0:00: I have found a way to show you the palm trees on my street without showing you the rest of my street. Lucky you!
  • 0:08: After I press control-z (not my final choice for a keystroke), we get a nice little display of sections in your file. Right now I have it set up to show me ObjC methods.
  • 0:13: It shows you where you are.
  • 0:16: ... and where you've been.
  • 0:18: you can jump around by clicking on the section header list.
  • 0:30: you can search through the contents and it shows which sections match.
  • 0:38: you can also choose from a list of other ways to slice your text - described by a bunch of regexps in a file you can tweak without recompiling the plugin.
  • 0:49: I use Snapz Pro X and Quicksilver, which you know because I also tried to use iMovie HD and couldn't find the "Don't make my imported movies look like crap" option, so I just uploaded the original movie with no funny titles. Bummer.

Also, the leverage-discuss mailing list is up now, if you want to ask how to use it.

3 more text hack projects on leverage.sourceforge.net

13 months ago, I "launched" the leverage project on sourceforge, supposed to be a place to house all the various OS X / Cocoa text manipulation hacks I've done, including my I-Search for NSTextView InputManager hack.

I haven't touched leverage since, but today I added three more projects to the SVN repository with varying appeal and usability. I also added a mailing list, leverage-discuss.

If you're interested in trying these out or working on one of these hacks, and want to ask a question, using that email list would be best, but you can also email me directly about them.


Here's my 2004 blog post about it: "Usability and Editing Code: TextShapeView" and here's the old home page for it, with a screenshot: TextShapeView.

The code is unchanged, but it works fine on 10.4.



A long time ago, so long I can't even find it with google, I posted somewhere about a hacked version of TexShop that had an outline view in a drawer that showed the section structure of your TeX document.

I never got that working well enough to try adding it to TexShop, but I did realize that it's something that could be useful for other kinds of text as well.

A big project, the TextStructure InputManager adds a key binding to NSTextView that pops up a window with an outline view that tries to represent the current text as an outline, using a scheme of regular expressions that mark some lines of text as "tags" with outline levels, depending on the text. It has a few regexps built in for LaTeX, ObjC, TODO & FIXME lines, and email quoting (which doesn't quite make sense).

You can also search the text for a regexp, and it will highlight the sections which contain a match.

I don't have a screenshot just yet, but I'll post about it more later.


OEM : Open in Emacs

This is a new one, and a work-in-progress. It adds a key binding to open the text of the current text view in an emacs buffer, using a temporary file and emacsclient. It currently has no way to get the text back into the text view from the file when you're done editing it in emacs, and doesn't delete the file. But it's at least partially nifty...


ISIM: Incremental Search in NSTextView

Not new, but it's in there too: http://svn.sourceforge.net/viewvc/leverage/isim/trunk/

FlexTime 1.0 Launches

I've been using Red Sweater software's FlexTime for a while now, and Daniel just announced version 1.0.

FlexTime is a repeating-timer program that is great for either set routines or one-off reminders. (It also has a pretty great name, don't you think?)

It's a solid program that you can use for a number of things. It fills an important niche I care about - helping you deal with your #1 work tool also being your #1 toy.

I use it to do a version of the "(10+2)*" procrastination hack that helps me get on track doing the things I need to do. It works really well, and I love that it lets me pause a routine if work is going really well.

Perhaps the best endorsement I can give it is that even though it does what I need, I am constantly thinking of things I wish it did and ways to improve. Now that I've mentioned that, I guess I'll have to schedule some time to send my list over to Daniel...

Well, time's up - back to work!

XCode 3.0

Apple's XCode 3.0 preview page is a cornucopia of new stuff that I somehow missed all day - until now.

No doubt this is the stuff that everyone at WWDC is talking about. This page represents no less than 3 or 4 really significant changes and some really nice details. Here's a hit list that I haven't seen in any of the coverage I've been looking at today:

  • Garbage Collection in ObjC. I'm curious about the details, but I'm also certain that it's a good thing. I really just think this is a no-brainer and we'll all be asking how we lived without it in a year.

  • Project Snapshots - lets you fiddle with projects and go back to a good state without involving SVN. Nice, it's like Word Versions for XCode. Handy, but a little puzzling why it seems to be duplicating version control functionality.

  • Research Assistant - A 'lightweight window' for reference and API docs. Long overdue, and sounds really handy. Basically what I asked for in a Dashboard Widget long ago.

  • DTrace for Mac OS - this is an extremely useful and powerful dynamic tracing framework from Sun - with a DSL for tracing called "D", and I'm really surprised to see it on OS X. This is nice.

  • Leveraging DTrace, XRay visualizes program behavior. I think DTrace itself is more interesting, based on my experiences with visualization of parallel program behavior and developers (generally allergic) reaction to it, but it's interesting to see Apple give it a serious try. The ability to "track UI events" sounds tantalizingly useful.

  • A new text editor - apparently it can shade text backgrounds according to scope. This could either be a non-starter or really great. I think some will love it after a while and some will hate it immediately. Which are you? Oh, it also does iChat-style popups on your breakpoints. Okay.

  • Finally, Interface Builder 3.0, where they spend a lot of time talking about some extra palletized stuff you can drop in, which is all well and good, but then they drop the boom in the last two sentences: "Interface Builder 3.0 makes localization and diffing easier. And you can include your NIBs in global refactoring tasks." Whoa! That sound you just heard? It was me from 2004, cheering them on.

Update: s/XCode/Xcode/ - thanks.

Take me to WWDC!

I can't make it in person to either WWDC or Buzz's party this year, and as a result, I'm bummed right out. But I haven't sulked, I thought of your feelings too. I came up with a way to make it seem kind of like I was there anyway. It's so crazy, it just might work:

Mike McCracken WWDC flashcards!

Just print one or all of the following pictures, and bring them with you to WWDC. They're all cropped to a 3x5 ratio, so you can tuck them into your HPDA and flash them when appropriate, like a soccer referee - I suggest the following interpretations:

Use "Morning Mike" when you need a non-verbal way to tell someone that it's just too early to discuss APIs, GUIs, or what to do now that Apple makes a free version of your only product:

Use "Confused Mike (Afternoon session)" whenever someone says something that just doesn't make sense. Whether it's their fault, or yours! Bonus points for use when you see a new abuse of the human interface guidelines. This card may also be appropriate just after seeing the amazing demo of Apple's free version of your only product:

Use "Cheers Mike" to suggest a trip to the bar, get women to pose with you, or to celebrate the continued absence of a free version of your only product. This may be the only appropriate card to sport during Buzz's can't-miss Weblogger's Party:

But remember, those are only guidelines. Be creative - my WWDC experience is in your hands!

If you take a picture with one of me, post it on flickr with the tag 'mikewwdc06' so I can see where I've been. Have fun at WWDC - to all of you and me!