Updates from March, 2006

  • VoodooPad life

    mike 4:18 pm on March 22, 2006 | 14 Permalink

    Plug

    It’s been a while since I’ve said anything about VoodooPad here, but it deserves another round of kudos – I continue to absolutely live in it, and it gets much more useful the longer I use it.

    How I use VoodooPad

    I keep a running set of time-stamped pages under “ResearchLog” and “MeetingNotes”, and all kinds of linked notes from there that I constantly search, occasionally refactor and refine. “MeetingNotes2006-03-21″ leads to “ResearchLog2006-03-22″ and so on. With a simple python script to automate making new “Notes” pages, I don’t have to work too hard to keep the organization and index pages going, and it’s proved to be really useful to recall what I did when, and what problems I ran into.

    As I work, I keep a running log of what I’m doing in each ResearchLog page. What I’ve found most valuable is that I copy in verbatim command lines for configuring and building software I’m using for research (including my own) so I can recreate the same environment elsewhere. This kind of thing has saved my sanity over and over again, enough that I can’t imagine working ‘bare’ (without a VoodooPad window open next to my terminal) any more than I can imagine working without Emacs.

    A tip on style

    A little attention to text style makes my notes pages more useful and easier to find in the Exposé soup. I started using a larger font for the top header and description of each page, so I could distinguish pages easier, and it’s made everything a little more pleasant.

    Here’s a typical set of VoodooPad windows for me – a jumble!

    This zoom shows what it looks like at 100% – the large-print title helps me find the window I want without the Exposé “scrubbing”:

    Still, I don’t want to have to keep doing this all the time, so I made use of the “NewPageTemplate” page (documentation) and set the styles there – now all my new pages have the style I want, and I don’t have to keep using Cmd-Opt-c and Cmd-Opt-v (copy and paste style) over and over.

    Update: One comment asked for larger images, but since you probably don’t want to see my research notes anyway, here’s an RTF file with the contents of my “NewPageTemplate” page.

     
  • Matt Pond PA

    mike 9:40 pm on March 19, 2006 | 2 Permalink

    I meant to post this just after the show, but I didn’t.

    I saw Matt Pond PA play on March 7th at the Epicentre in Mira Mesa.

    The band sounded great, fitting a sometimes symphonic sound from a few band members into a smallish low-ceilinged venue (okay, teen center). I was impressed that their sometimes melancholy songs translated so well to a live performance, and as usual it was fantastic to see actual people play favorite familiar songs in person. As compared to their albums, live, they rocked a little more – which is only right.

    However, the band fails to even mention the date on their running tour blog, and I think I know why. Mira Mesa in general, and the Epicentre in particular, occupy an all-too familiar spot right in the nexus of lame. It’s hard for me not to feel a little sad whenever I drive through the place, a plateau of asphalt wedged between freeways and topped with a layer-cake of condos, strip malls and “communities”. The Epicentre is not a bar or any kind of concert hall – it is a teen center directly across from the local high school. The bathrooms smelled like chalk and institutional cleaners, and although I’m sure I’d have visited the place if it’d existed near my high school, it was clearly trying too hard to be both cool and safe, two things which can never coexist, especially if you’re a minor.

    I’m a little embarrassed for my adopted city because too many bands will experience San Diego as a place where they draw ten percent of their usual crowds and are forced to play at the diner from Saved by the Bell.

    In summary, Matt Pond PA was very good, and I really hope they don’t hold a grudge.

     
  • What a relief.

    mike 8:59 pm on March 19, 2006 | 0 Permalink

    Really, it is a little encouraging that after so many years of staring at browsers, I can still thoroughly entertain myself on a Sunday afternoon by reading the homepages of total strangers.

    However, if it’s still winter, a north-eastern transplant to Southern California does have to be careful when reading accounts of wool coats, comforting snowfall and hot soup at just the right time. It’s been a long time since I’ve actually wanted hot soup. Say what you will about the weather in San Diego – I was debating shorts when I walked out for my coffee today, and sandals were a given, but this kind of weather has never really supported a good bleak mood like a nice cold snowy day would, back home. Sunny blue skies have a way of making you feel ungrateful if your smile doesn’t fit right today.

    Now I realize why it seems like so many people here are healthier than the rest of America. If I can’t maintain a satisfactory sulk under bright sun and pleasant breezes, I have to resort to working out. It’ll do the job, but sometimes I really do miss the old way – a blanket and a book, with hollow curses aimed at the weather.

     
  • MarsEdit 1.1.2

    mike 1:25 pm on March 17, 2006 | 1 Permalink

    Review: My weblog editor of choice.

    MarsEdit 1.1.2

    MarsEdit was recently updated to version 1.1.2, with a few bug fixes. I really like MarsEdit – It does what I need and stays out of my way. I’m not the most demanding user – I have one WordPress weblog and don’t keep up with the latest in blogging tools. I did have my own customized weblog editor, Blapp, that I used for years, so I was expecting to find plenty of things that annoyed me about a program that wasn’t written just for me. To my surprise, it felt comfortable right away – I got started posting with MarsEdit quickly, and haven’t had to learn about all kinds of features that I don’t use. Thumbs up.

     
  • Static Bug Checking in Open Source software

    mike 8:00 pm on March 13, 2006 | 0 Permalink

    Coverity, the company formed by the people behind the Stanford MC Checker, has started posting regular reports from their analysis tools on prominent open-source projects at scan.coverity.com.

    I found out about this through an email from the Coverity CTO on the GCC mailing list, and it seems to have been received with some moderate enthusiasm. I think it’s a good idea, but as usual the specter of false positives makes the developers itchy, especially when they’re publishing bug counts…

    Dawson Engler, the professor at Stanford who was behind all this bug-finding work (and co-founded Coverity) gave a talk recently here at CSE, about newer approaches to finding bugs that uses execution on symbolic inputs – meaning that you mark some inputs to a program as symbolic, and somewhere there’s a theorem prover that goes to work finding out if any value of those inputs can cause an error or a crash – then you can run the original code on the input to verify the problem. A nice consequence here is that the generated ‘bad’ input is then guaranteed to actually be bad, since you can test it and force the error.

    There’s a paper about that from Engler’s group here, and apparently this PLDI 2005 paper from Bell Labs is very similar.

    Here’s Prof. Engler’s slides from talks about the new work on bug finding and an entertaining talk about commercializing the MC Checker.

     
  • Tomorrow's Professor Blog

    mike 6:13 pm on March 7, 2006 | 0 Permalink

    The Tomorrow’s Professor Mailing List, a great resource for tips and info about what professors actually do (as opposed to what you learn in grad school), is now out in a weblog form, in case you’d rather read in an aggregator than a mail client: Tomorrow’s Professor Blog

    I’d recommend poking through the back issues – there’s a lot of wisdom in there.

     
  • Really could've used a MagSafe plug today

    mike 5:11 pm on March 7, 2006 | 5 Permalink

    I don’t remember, but I must have just shot off the couch. You see, when I caught the power cord of my Powerbook in between my toes, there was enough velocity to pull the laptop halfway across the table. It punted my full coffee mug into the hallway, contents flying everywhere.

    The laptop caught some coffee, but avoided the full soaking that the rest of the table got, with the neat trick of being off the table by the time most of the coffee hit.

    I’m just really glad that my carpet is brown right now.

    Anyone else vote for a MagSafe retrofit accessory? I’d drop $29.95 for sure.

     
  • Concurrency is about to be everybody's problem

    mike 1:30 am on March 3, 2006 | 1 Permalink

    Herb Sutter, software architect at Microsoft, chair of the ISO C/C++ committee, and blogger, gave a talk this Monday about the impending concurrency revolution and his project, Concur, an extension to C style languages to support usable concurrent programming. I enjoyed his talk in spite of the job-fair atmosphere (it was also a Microsoft recruiting event) and having to stand the whole time, so I’d say it was a good talk.

    Check out his article “The Free Lunch is Over” for a programmer’s viewpoint on what to do with the processors we’re currently faced with. This is a very exciting time for computing – parallelism has always been the future, and the future is finally now. I am increasingly convinced that as a programmer, if you resist learning how to program concurrent systems, then you will be obsolete very, very soon.

    The reason is that processor architects have density to waste, but they have nearly run out of ways to use extra transistors to make single processors faster – so they’re happily just shipping chips with bunches of smaller processors. According to intel’s (nicely readable) Platform 2015 site, Dual and Quad-core isn’t nearly the end – today’s college freshman will likely start out their career programming not “multi-”, but “many-core” systems (think ‘at least hundreds’), requiring hundreds or thousands of independent threads of execution to avoid leaving performance on the table. Are we preparing students for this? I doubt it.

    So, should we all run off and learn all about pthreads and mutexes? No – concurrent programming is really hard, even to get it almost right on a toy problem. In some areas (like servers and mathematics used for scientific computing), concurrency is a “well-understood” problem, but even there it’s widely understood to be hard. No wonder everybody’s been avoiding it.

    This is really a problem for language designers, framework designers, and compiler writers – how do we build an environment where a reasonably competent developer can write and debug programs with a very high level of concurrency? For everyone else, just keep your eyes peeled – they’re working on it.

    To quote Maurice Herlihy, from an invited speech (ppt slides) at 2005’s PLDI conference (for compiler writers and language jockeys), This situation amounts to a “PLDI Full-employment act”. Interesting times, indeed!

     
  • Applescript Hooks everywhere?

    mike 1:02 am on March 3, 2006 | 0 Permalink

    A quick thought: why not wrap NSUndoManager to support adding scriptable hooks to almost any user action? Surely someone can think of a good scheme to let an application programmer support really thorough scriptability without tons of extra work…

    I thought of this because I’d like a way to mark a To-do item for an email reply as completed once I’d sent the email, and a good way would be with an email-send hook in Apple Mail.

    Okay that’s it, thanks!

     
  • Mail message to iCal Todo script

    mike 12:31 am on March 3, 2006 | 0 Permalink

    After reading Merlin Mann’s suggestion to live in iCal, I thought that even though I don’t use kGTD, it might be a good idea to try to limit the number of places where things I have to do exist. Following on the idea of moving lines of text from VoodooPad to iCal todos, I just wrote a script to take the frontmost email message and add a todo that reminds me to reply to it. I’m getting a little closer to just having one place I need to check tasks.

    tell application "Mail"
        set l to the selection as list
        set selMesg to item 1 of l
        set cont to content of selMesg as string
        set subj to subject of selMesg as string
        set person to sender of selMesg as string
        tell application "iCal"
            set theCal to (first calendar whose title is "Email")
            set theString to "reply to " & person & " about " & subj
            make todo at end of todos of theCal with properties {priority:0, summary:theString}
        end tell
    end tell
    

    This ends up with a todo that says something like “reply to michael_mccracken@mac.com about Locations for the party of the century”

    Of course, it’s best invoked with a twitch and Quicksilver, so just drop it in ~/Library/Scripts so it gets indexed. I called it “NewTodoFromEmail” and Quicksilver calls it “nte”. Clever.

    I based it on my NewEventFromEmail script, which I still use regularly. So nice!

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
esc
cancel