Yabba Dabba Doo!

Fred Flintstone powered Chevrolet

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. Tags: .

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.

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.

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 as rn 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. Tags: .

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.

  1. Start Vine Server on the host Mac
  2. 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 for username when prompted
  3. Connect to 127.0.0.1 (or localhost) 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.

example screenshot

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. Tags: .

45 New Sketches

Done gone drawn a bunch of doodles yesterday and today.

DSCN8212.JPG DSCN8206.JPG DSCN8240.JPG DSCN8235.JPG DSCN8241.JPG

Collect all 45 here! Pens and pencils not included. Paper sold separately.

A few others that might have slipped through the cracks recently:

DSCN8139.JPG Self Portrait with Winter Hat

Also, don’t forget my Favorite Drawings set, in which I toss some of the drawings I particularly like.

Posted on Thursday, April 5th, 2007. Tags: .

Powerplant

engine in barn

This past weekend I had the opportunity to bring home the engine for my hot rod (pictured above). This coming Saturday I anticipate that the car itself will finally come home. I’ll post photos here.

Posted on Thursday, April 5th, 2007. Tags: .

I pick up secret transmissions when I crouch under the table

The other day I attached a pair of cheap old speakers to the underside of my desk. It’s a nice, clutter-free way to get some more volume out of my laptop when I’m working there.

I was fiddling around with the volume today when I thought I heard some static that I hadn’t noticed before. So I leaned under the desk, and the instant I touched the volume knob, the noise resolved into a faint voice. Eureka! I have discovered radio.

Presumably the volume potentiometer is so poorly insulated that it acts as a radio coil. I pick up ESPN talk radio (AM 1330) around 50% volume, but haven’t found any other stations yet. It is not a very practical arrangement for casual listening, since it is barely audible and so difficult to tune, but I am inordinately pleased with this serendipitous receiver. Radio is such a straightforward technology that it happens spontaneously. Chew on that, internet!

Posted on Tuesday, March 6th, 2007.

Some Sketches

DSCN8045.JPG Street Fighting Frenchman

Haven’t posted many drawings recently, so here are a few.

Posted on Sunday, March 4th, 2007. Tags: .

txt2dat online

Hot on the heels of Bitsticker, I’ve made an interface for Ross Crawford’s txt2dat program: txt2dat online. You just enter some text and click a button to download a custom LDraw part with the text stamped right on it. Bring some literacy to the lives of your virtual LEGO people with labeled street signs and storefronts.

Posted on Sunday, March 4th, 2007. Tags: .

PSA: Mac OS X Text Editing Shortcuts

These tips work in just about every modern app that lets you edit text.

If you hold down Option and press the left or right arrows, the cursor moves left or right one word instead of one letter. If you hold down Option while pressing up or down, the cursor moves up or down one paragraph instead of one line.

Hold down the Command key while pressing left or right to jump to the beginning or end of the current line. Hold down Command and press up or down to jump to the beginning or end of the file or field.

Holding down Shift at the same time will cause the corresponding span of text to be selected. In conjunction with the well known shortcuts for cut, copy, and paste, these controls provide a handy way to manipulate and navigate text right from the keyboard. If you’re into that kind of thing.

Posted on Thursday, March 1st, 2007. Tags: .

Bitsticker

Bitsticker example gallery

As recently announced elsewhere, I’ve released Bitsticker, a little script that converts bitmap images into virtual “stickers” that can be used to decorate LDraw models.

So. Art on your LEGO. On your computer. What’s not to love?

Posted on Thursday, March 1st, 2007. Tags: .