Panther Expose Keyboard Switching

Filed under: Uncategorized. Tags: . | Leave a Comment 

I mentioned how Expose (the coolest way to manage a billion open windows) had a quirk with keyboard navigation. There was an update to Panther, which included some fixes to Mail, some other stuff, and Expose. Keyboard navigation now appears to work flawlessly. Yay.

Alan, Brian, and myself will be giving a presentation to the EduCause LOVCOP (Learning Objects Virtual Community of Practice) on Friday. We’ll be talking about some of the work we’ve done on sharing learning objects using RSS, and what that pattern of resource sharing/distribution could mean to practicing teachers. We’ll also be giving an overview of the background that led up to the RSS/LO work, and will talk a bit about future directions and implications.

If you want to tune in, just email LearningObjects@educause.edu. The presentation will be given in an audio conference call, with an accompanying wiki web page to back us up. Tune in at 9 am Pacific, 10 am Mountain, 11 am Central, noon Eastern.

Alan has hosted a snapshot of the wiki page, as well as more info on the process we used to prepare the presentation.

UPDATE: The conference call just finished, and went quite well. The audio was recorded, and will be available on the LOVCOP website soon. I’m looking forward to any feedback on the project and/or the presentation.

.Mac Bookmarks

Filed under: Uncategorized. Tags: . | Leave a Comment 

bookmarks.mac.com handy floating widgetI’ve been keeping a copy of my default browser’s “bookmarks.html” (or favorites.html, or whatever the current default browser calls it) on a publically accessible space so I can get to my bookmarks from anywhere.

It works, but is clunky and slow (loading a 200KB file to get a single link isn’t the most efficient way to do the task).

Enter .Mac… Apple just released a new tool that works with iSync, so I can sync up my Safari bookmarks from any Mac I use to my .Mac account.

I can now also browse and use these bookmarks from any browser, just by heading to bookmarks.mac.com and logging in. A handy floating window widget appears, and I can use my entire bookmark collection from anywhere. Sweet.

The process is also automatic… iSync will sync everything up once an hour for me, whether I think about it or not. Everything is just there waiting for me when I need it. Now THAT’s cool.

Cross-platform development for WebObjects

Filed under: Uncategorized. Tags: . | Leave a Comment 

There were announcements from the WOProject and WOLips projects, both of which can be used to develop WebObjects applications (and build them using Ant) on multiple platforms.

WOProject is located here. It’s a set of tools to build WO apps independent of IDE.

WOLips is located here. It’s a plugin for Eclipse that supports the development of WO apps and frameworks.

iChat meeting

Filed under: Uncategorized. Tags: . | Leave a Comment 

I just had my first over-a-distance meeting in iChat today. It worked pretty well… I just started a Chat Room and dragged the other folks’ icons into it. We blabbed on for over an hour planning a presentation for Friday (EduCause LOVCOP – details to follow).

Now, if iChatAV supported multiple video streams, we could have had a virtual meeting… But the text chat worked pretty darned well.

DirectorMX

Filed under: Uncategorized. Tags: . | Leave a Comment 

I just wrote my first Lingo in over 2 years. DirectorMX looks pretty sweet. It’s amazing how it all comes back. I REALLY miss the instant round-tripping, being able to modify code on the fly and have it kick in without recompiling and restarting an application to see the results…

It took a few minutes for the “sprite(me.spritenum).loc = the mouseloc” stuff to trickle back out of my head, but it was still in there…

Generating GUIDs in WebObjects

Filed under: Uncategorized. Tags: . | Leave a Comment 

I’ve been working on some code to generate GUIDs as part of the suite of services for use in the next version of the software that runs CAREO.

When in doubt, hit Google to see who’s already solved it. Turns out David Newmann did a GUID generator as part of his security stuff, and it’s been rolled into the WOExampleHarness.framework provided at /Developer/Examples/JavaWebObjects/Frameworks/WOExamplesHarness (and specifically in the WXUtilties.java class).

In his sample code, he uses a substring of the generated GUID (the first 10 characters). This kept generating the same GUID for me (going against the whole idea of using a GUID), so I told it to use the entire string, rather than the first 10 characters.

It turns out that I actually need the first 23 characters in order to be unique to a single machine. It also appends the machine name (domain name) and IP address so the entire string spits back something guaranteed to be globally unique.

Anyway, the code to generate a GUID and return the portion without the machine name etc… is (assuming you’ve built the WOExampleHarness.framework project):

com.webobjects.examples.utilities.WXUtilities.generateGUID().substring(0, 23)

which will return something like this:

3b9a5f:f642c68f4b:-7fff

Or, to get a truly, really, absolutely GUID, drop the substring() portion, which will return something like this:

3b9a5f:f642c68f4b:-8000|pc063-110.commons.ucalgary.ca/136.159.110.63

Here’s the javadoc comment from David’s generateGUID() method:

    /**
     * Returns an global ID string that is unique with respect to the
     * host on which it is generated.  This GUID is unique under the
     * following conditions: a) the machine takes more than one second
     * to reboot, and b) the machine's clock is never set backward.
     * The method uses the java.rmi.UID class to create a unique number
     * in a name space limited to your machine and then combines this
     * string with your machine's internet address.
     *
     * @return the GUID
     */

Mud Slinging vs. Cutting Diamonds

Filed under: Uncategorized. Tags: . | Leave a Comment 

James Gosling recently described 2 types of development tasks. I like the description. I couldn’t see any way to link directly to the post, so I’ll drop it in here as an excerpt.

I’ve had conversations with several folks in the last couple of days about the craft of software engineering. There are all sorts of ways to slice it up, but one that I find useful in some situations is to divide programming tasks rather crudely into two categories: mud slinging and diamond cutting.

Mud slinging is where what to do is pretty clear. You just wade in and start shoveling. You don’t have to think to hard and you get to feel real productive because lots of motion is happening. I often feel like most of what I do is in this category. It’s not too hard, it needs to get done, Just Do It. I find that it has a personally satisfying rhythm. Relaxing, low stress, regular progress. Lots of lines of code cranked out.

Then there’s diamond cutting. This is where you stare and stare at a problem, and then whack! it breaks open. Not much coding gets done. I find it really frustrating. Why can’t I figure it out? Why? What? How? Sorting socks would be more fun. High stress. But then, it hits me. A dozen quick lines of code and poof, hard problem solved. It’s a real rush. High dynamic range in emotional state.

Of course, it’s impossible to tell the difference between true diamond cutting and generic cluelessness.

WWDC2003 Photos

Filed under: Uncategorized. Tags: . | Leave a Comment 

I put some of my photos from WWDC2003 online. iPhoto insists on sorting photos the wrong way when asked to order by date, so start at the bottom of the page…

← Previous Page