Updates from August, 2006

  • AutoFill: BibDesk and DC-HTML

    mike 7:55 pm on August 28, 2006 | 2 Permalink

    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

    mike 2:54 am on August 19, 2006 | 0 Permalink

    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

    mike 3:59 pm on August 18, 2006 | 3 Permalink

    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.

    TextShape

    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.

    http://svn.sourceforge.net/viewvc/leverage/textshape/trunk/

    TextStructure

    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.

    http://svn.sourceforge.net/viewvc/leverage/textstructure/trunk/

    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…

    http://svn.sourceforge.net/viewvc/leverage/oem/trunk/

    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

    mike 3:25 pm on August 17, 2006 | 0 Permalink

    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

    mike 11:27 pm on August 7, 2006 | 4 Permalink

    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!

    mike 7:51 pm on August 3, 2006 | 13 Permalink

    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 3×5 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!

     
  • Universal build of PCRE?

    mike 2:45 am on August 3, 2006 | 2 Permalink

    Dear Lazyweb, I wanted to polish up and push out a project I started more than two years ago in time for WWDC, but it requires PCRE, and I can’t seem to get PCRE to build for i386 in less than twenty minutes. Does anyone know of a universal build of a recent PCRE somewhere (or good specific instructions to build one?)

    Thanks,

    -mike

     
  • Script Dictionary Documentation

    mike 1:13 pm on August 1, 2006 | 3 Permalink

    In relation to my previous post about instant replay in QuickTime Player – The script dictionary almost looks like a program wrote the documentation. For example:

    time scale (integer, r/o) : the time scale of the movie” (uh…) and

    current time (integer) : the current time (can be set by name as well as number)” (units? what names?).

    I guess it all makes sense if you understand a lot about QuickTime movies, but is that the audience for the script dictionary? I suggest not.

    Developers: your script dictionary and its documentation are important user interface concerns – if you put as much consideration into the experience your users have with scripting as you do the GUI and documentation, it will create loyal power users. And they all have blogs these days, so that’s free advertising too…

     
  • Instant replay in QuickTime Player

    mike 1:12 pm on August 1, 2006 | 11 Permalink

    A feature I really miss from having a DVR is the ‘8 seconds back’ button, to catch a play or repeat something funny.

    Recently I’ve been listening to recorded interviews we’ve been doing of HPC developers, and updating my notes (in VoodooPad using them. Since people mumble and use jargon I don’t always understand, I decided I really needed an instant replay button in QuickTime Player. It’ll come in handy if I watch sports on my laptop again, too.

    In order to get it, I wrote this quick AppleScript and bound it to a Quicksilver trigger. If you run it while the movie is playing, it backs up 4 seconds and keeps playing from there.

    -- 4secondsback.scpt
    tell application "QuickTime Player"
        set theMovie to movie 1

    set ctime to current time of theMovie
    set tscale to time scale of theMovie
    
    set current time of theMovie to ctime - (4 * tscale)
    

    end tell

    Update: I just realized that for transcribing interviews I also needed a ‘play/pause’ command that could control QuickTime Player while keeping it in the background, just as the 4secondsback script does. It’s a really simple script, but since QuickTime Player lacks the convenient ‘playpause’ command that iTunes’s scripting dictionary has, I had to do this:

    tell application "QuickTime Player"
        if movie 1 is playing then
            pause movie 1
        else
            play movie 1
        end if
    end tell
    

    I have this set as a trigger for Control-Option-Space, and the 4secondsback script is control-option-’b’. This way I can listen, type, and control the recordings without leaving VoodooPad. Brilliant!

     
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