Mariano Who?
In Afton’s first little league game of the season, visiting Afton beat Greene 8 to 7 in three innings of play (ended early on account of it being a school night). After two innings at second base, closer Joe DeVona was called to the mound, where he recorded two strikeouts and the save in his pitching debut. Afton remains on the road this weekend, when they hope to carry their winning momentum into an afternoon game against Hancock.
Posted on Wednesday, May 9th, 2007.
Backdate Yojimbo Items
An issue that has recently arisen on the Yojimbo mailing list is that imported items are considered created at the time of import. This is logical, but some people would prefer to retain the creation date of the original file. Enter “Backdate Items,” an AppleScript for Yojimbo that gives you the ability to change the creation date of existing items:
A word of warning: this script modifies Yojimbo’s database directly using sqlite3. This is quite certainly an unsupported way to manipulate your data. In fact, Apple clearly states that Core Data files like this should not be tinkered with:
While it is easy enough to look under the covers and see what is going on with the XML and SQLite data formats, you should never modify the data in these files yourself.
But I tinker. If you do, too, please back up your ~/Library/Application Support/Yojimbo/Database.sqlite
file first. Consider yourself warned that this script could potentially mangle that database.
Download Backdate Yojimbo Items Script 1.2 (11k)
Install the script in ~/Library/Scripts/Applications/Yojimbo/
. Usage:
- Select some items in Yojimbo’s list pane.
- Invoke the Backdate Items script.
- Enter the desired date and time in any supported format.
- Click “Creation” or “Creation & Modification” to reset the corresponding timestamps.
- Changes will not be visible until you restart Yojimbo. You may backdate more than once before restarting Yojimbo, but don’t edit a backdated item until you’ve restarted Yojimbo or your changes may be lost.
Examine the script for more information about how it works. The SQLite Database Browser can also be used for this purpose, but you’ll have to manually convert dates to seconds since January 1, 2001 00:00:00 GMT (the NSDate epoch). With any luck, the option to preserve creation dates will eventually be added to Yojimbo’s import facility and this hack can be retired.
Posted on Monday, May 7th, 2007.
GraphicConverter Information Window
Currently, GraphicConverter’s image “Information” window is only visible when GraphicConverter is in the foreground. It is difficult to consult this information when working in another application.
As an interim solution, this AppleScript displays a subset of that information in a Growl notification window (or in an alert, if Growl is not installed). The notification window remains visible in all applications until you dismiss it with a click.
Download Global Image Info Script (5k)
Put the script in ~/Library/Application Support/GraphicConverter/Scripts/
(for GraphicConverter’s script menu) or ~/Library/Scripts/Applications/GraphicConverter/
(for FastScripts or the standard script menu). Select the “Global Image Info” item from the corresponding menu to display the information for the frontmost image.
Posted on Saturday, May 5th, 2007.
Import Yojimbo Note
This little AppleScript for ThisService provides an alternative to Yojimbo’s own “Import Text” service. It creates and opens a new note item containing the currently selected text. Text style is not preserved and the note window that is opened allows you to promptly edit the note’s name or tags.
Download Yojimbo Note Service (33k)
The unzipped service goes in ~/Library/Services/
. You can assign a keyboard shortcut with Service Scrubber. Here is the actual AppleScript:
on process(_selection) tell application "Yojimbo" activate -- could display a dialog prompting user to name/tag note set _item to make new note item with contents _selection open location "x-yojimbo-item://" & (get id of _item) end tell end process
Posted on Friday, May 4th, 2007.
Posterizer Sneak Preview
Posterizer is a little program that helps you make reduced-color versions of your images. You select a palette of colors and the program renders the picture using just those colors. This is nothing that can’t be done already with a capable image editor, but Posterizer makes it more straightforward.
Reduce, reuse, and recycle. Posterizer is based on a simplified version of an image classification demo I wrote in college, repackaged for the desktop instead of the web.
Coming soon for Mac OS X. It’s written in Tcl/Tk and standard C, so Linux and Windows versions are not inconceivable (but they won’t taste nearly as good).
Posted on Wednesday, May 2nd, 2007.
Doodle Time
I’ve posted 27 new drawings for you to peruse. Here are a few of my favorites:
Posted on Monday, April 30th, 2007.
RSOPlayer
Brickley Roscowicz Engineering has released rsoplay, a utility that plays LEGO Mindstorms NXT “.rso
” sound files. To complement this Mac-compatible tool, I’ve created RSOPlayer, a wrapper for rsoplay
that provides enhanced Mac OS X desktop integration.
You can drag RSO files onto RSOPlayer to play them. You can double-click RSOPlayer to select files to play with a file browser. You can even assign RSOPlayer as the default application for RSO files, so that double-clicking an RSO file will automatically play it.
Download RSOPlayer 1.0 (162k)
The download includes the rsoplay
0.1.0 source distribution as well as the RSOPlayer application and source code. RSOPlayer is a Universal Binary and probably requires at least Mac OS X 10.4.
Posted on Tuesday, April 24th, 2007.
Yabba Dabba Doo!
Hurray! The car is home. It rolls and steers, so it is not too difficult to maneuver. As you can see, though, I’ve been experimenting with alternative powerplants.
Posted on Saturday, April 14th, 2007.
LSynth Service
LSynth is a program by Kevin Clague that synthesizes flexible LDraw parts.
lsynthtest.ldr | lsynthtest-output.ldr |
I’ve fiddled with the 2.0 source code to produce a variant that adds some minor features (and probably breaks some others). Most notably, I’ve also packaged this version as a Mac OS X Service, a text-processing filter you can use to run LSynth anywhere you can edit text.
- Download LSynth.service (45k ZIP)
Install the service in ~/Library/Services/
and double-click it to register its availability. To run LSynth, select some LDraw text and select “LSynth” from the “Services” submenu of your current application:
The selected text will be replaced with LSynth’s output. You can use Service Scrubber to add a global keyboard shortcut or to weed out any services you don’t use.
Editor Compatibility
The LSynth Service works great with any conventional Mac OS X text fields. However, some popular editors implement their own text fields that interact with services a little differently. Ideally, the service would recognize these cases and cater to them accordingly, but for the time being workarounds are needed.
Towards that end, I’ve added an LSynth.tcl
filter to my TextWrangler LDraw Kit (adaptable for BBEdit users, too) that acts as a compatibility wrapper for the LSynth Service. TextMate users may need to use the Text bundle’s “Remove Unprintable Characters from Selection” command to clean up misinterpreted line endings after running the service.
LSynth Service Tool
I call my modified version of the LSynth program lsynthst
(for “LSynth Service Tool”) to avoid confusion with the official version. It builds on Mac OS X and Linux, but I haven’t tested it with any other platforms.
- lsynthst Mac OS X Universal Binary (35k ZIP)
- lsynthst Source Code (18k ZIP)
The primary difference between lsynthst
and LSynth 2.0 is the addition of a “filter” mode. Run with no arguments, lsynthst
reads standard input and writes to standard output. Other changes include:
- Case is preserved
- Whitespace insensitive keyphrase recognition
- Unrecognized lines in
SYNTH
blocks are preserved n
as well asrn
line endings can be read- Support for whitespace in constraint part names (silly)
- Wee bit more error handling
- Some things have surely been broken
For more detailed information about the changes made, see my comments in the main.c
source code file. No additions or functional modifications to the actual part synthesis code have been made. The program is packaged as a system service with ThisService.
Development
I cannot support this version of LSynth, nor can the original author. However, I would be glad to receive your feedback, and the source code is, of course, available for your perusal or repair. Eventually, service integration with the next official version of LSynth would be nice.
Posted on Tuesday, April 10th, 2007.
Secure remote screen access with Vine Server
The May issue of Macworld magazine contains an article titled “No-Stress Remote Access” that explains how to secure remote desktop sessions over the internet with SSH. Mac OS X’s built-in Apple Remote Desktop screen-sharing facility is used as a VNC server and Chicken of the VNC is used as the viewer.
Since I’d already been using Chicken of the VNC and Vine Server (previously “OSXvnc”) for this purpose on my local network, it was useful to learn than Vine Server and Apple Remote Desktop sharing can be used interchangeably. This applies to the SSH scenario described in Macworld.
- Start Vine Server on the host Mac
- Enter
ssh -L 5900:127.0.0.1:5900 username@host_ip
at the Terminal on the client Mac and enter the host’s password forusername
when prompted - Connect to
127.0.0.1
(orlocalhost
) in Chicken of the VNC using the host’s VNC password
As described in the article, you may need to fiddle around with your router if the host machine is not connected directly to the internet. Furthermore, if you’re also running a VNC server on the client machine, it should be set to a different port to avoid interference with the SSH connection on port 5900
.
With either VNC server, the end result is that you can connect to your other computer and control it as you normally would, with mouse and keyboard, from anywhere over the internet. The SSH connection encrypts your input and the screen data returned to you to ensure a modicum of privacy.
Posted on Friday, April 6th, 2007.