Engineering Manager and Evangelist

Archive for July, 2004

I’m writing this post right now with an application called Tumult HyperEdit. HyperEdit is a relatively light-weight and simple HTML editor whose primary feature is a live, real-time preview pane. It’s no replacement for a tool like Dreamweaver, but it has certainly found its place among my toolset.

The preview pane actually updates as you type, so you have constant visual feedback. I haven’t tried any type of complex layout yet, but so far, for relatively simple HTML documents, I have found the workflow to be a very useful. The preview pane uses Safari’s rendering engine, so it’s very quick and very compliant.

There are a few other nice features like code snippets, PHP support (you can actually execute PHP scripts), and the ability to link to external CSS files. There are a couple of features I would like to see added, though:

Code completion. Nothing fancy (this thing needs to remain as light-weight as possible, I think), but it would be nice if, when I opened a tag, a closing tag appeared. (To be fair, one can use code snippets to achieve similar functionality.)

I’d like to be able to have my code snippets in drawer rather than a separate window. The one thing I don’t like about OS X is that you tend to have too many windows floating around.

I’d like to be able to link to CSS files using a URL rather than having to have them in a local file. It would be nice to be able to write blog posts while referencing my style sheet on my weblog server.

Finally, if I double click on something in the preview pane, it would be cool if the editing pane jumped to that piece of code.

Developer Center content has been available as an RSS feed for some time, but here’s a new twist. Developer Center content is now being included in the individual Macromedia Product RSS Feeds as well, so in addition to TechNotes, security bulletins and product update notifications, you can also watch for relevant Developer Center content.

How many of you are subscribed to the Macromedia Product RSS Feeds? If you’re not subscribed, why not? There’s no better way to keep up to speed on Macromedia technology. Click here to get started.

I delivered a presentation today to ColdFusion User Group managers via Breeze. It’s basically an introduction to Flash and RIAs for ColdFusion developers. I go through some slides discussing RIAs in general, then dissect a Flash and ColdFusion application line by line. It’s about an hour long, so if you have some time, and you’re curious about Flash and RIAs, check it out.

About three weeks ago, America’s Most Wanted launch a new site with very comprehensive crime-solving and fugitive-finding functionality. And it’s all powered by ColdFusion and Flash (man, I’d love to know how much traffic they are supporting). Macromedia isn’t just changing the web — we’re helping to change the world!

Ask some what the coolest watch is, and they might tell you the Suunto x9. Others will may prefer the new Timex Ironman Data Link, the old Timex Messenger (classic!), an MSN Direct enabled watch, or a good solid Seiko Kinetic Chronograph. Although I either already have, or would love to have, each and every one of these, I think the watch that was delivered to my house this morning beats them all.

I like my devices to specialize. In other words, I like them to perform one primary function, and to do that function really well. That’s why I don’t have a PDA with GSM capabilities. I like my PDA (Clie UX50) and my phone (Sony Ericsson 610) to do their own things, and to do them as well as they can. Integration is great (infrared, bluetooth, etc.), but I haven’t seen many devices that can do multiple things as well as devices that specialize.

Which is why I like Casio G-Shock. I like watches to be:

Accurate

Durable

Maintenance free

Versatile (lots of time-related features)

I recently bought a Casio Solar Waveceptor G-Shock (GW-300) which I wrote about early last month, and while I like it very much and have gotten a lot of use out of it, it isn’t perfect. It’s shortcomings include:

Digital (I prefer analog)

No countdown timer (one of the most useful features of a watch!)

The solar panels are too small to gather light efficiently

So I decided one day that I was going to find the perfect watch no matter what it took, and although it took over a month and more money than I had planned on spending, I finally found and got my hands on the Casio GW-1100J. It has all the features of the GW-300, but it also fixes all the shortcomings. It’s analog (and digital), is has a countdown timer, and the entire face is a solar panel so it gathers light more efficiently than the GW-300. And, of course, its atomic, so it never needs to be set, and it’s shock resistant and water resistant up to 200 meters. (Naturally, it has all the other basic features like multiple alarms, world time, etc.).

It wasn’t easy to get, though. This model isn’t available in the US, and although there is one similar stainless steel version available, once I saw the all black (with inverted LCD), I had to have it. To make matters worse, this particular watch is apparently even difficult to get in Japan! I called Casio several times, and they weren’t able to help (they weren’t even able to give me a phone number in Japan that someone would answer in English). I watched eBay for weeks, send probably five or six unanswered emails, and contacted a friend of mine in Japan who couldn’t help because he was just about to leave for Palau for a month. I finally got in touch with an Australian in Kyoto who knew a supplier who had 2 left. Never having met this guy in my life, and never even having talked to him, I took a chance (he has very good eBay feedback), sent him some money via PayPal, and today, I have the 1100J on my wrist!

This may very well be one of the most exclusive watches in the entire country!

For those of you following the 906 legal rumble, the University of California and Eolas have made their next move in the form of a brief filed with the US Court of Appeals countering Microsoft’s request for an appeal. CNET has a good summary.

Tapping on a button on my PDA which makes an HTTP request through GPRS to a web server which executes an OS level command which relays a message to the device plugged into the serial port which sends a radio signal to an X10 device plugged into an electrical socket which uses the X10 protocol to turn a light on downstairs. (Yes, it really works!)

Anyway, you get the point. As long as two devices have a protocol in common, they can usually “talk” and be integrated in some way, and you can even chain devices together through multiple protocols to achieve something very unusual like a PDA “talking” to a lamp through the Internet.

I bought a digital voice recorder the other day, and I was surprised by how feature rich it was. One of the most interesting features is the ability to set an arbitrary time and date in the future for a recording to be played. Essentially, it’s an alarm clock with a custom alarm. Since my Mac has very impressive voice recognition built-in, I figured it would be kind of interesting to use the voice recorder as a kind of cron or scheduled tasks application. All I have to do is record the commands to make my Mac perform an operation, set a date and time, and leave the recorder near my Mac’s microphone.

(“Wednesday” is the name of my computer, which is required before giving it a command.)

I had to make the recordings a couple of different times to get the timing and the clarity right, but now it works perfectly. That night, I configured the recording to play at 7:00 AM the next morning, and I woke up to a random iTunes track playing. The nice thing about the speakable items scripts I downloaded is that there’s one entitled “silence” and “shut up” so I was then able to stop the music by yelling at my computer, and then go back to sleep.

Admittedly, the end result wasn’t earth-shattering. I’m sure there are several other ways I could have woken up to a random iTunes track that would have been faster and easier to set up. But it’s not the end result that interests me. What interests me is that it was the first time I had every integrated two devices using the protocol of human speech, and it worked wonderfully. Using human speech as a protocol between devices allows us to easily eavesdrop, and even participate in the “conversation”, or intervene in ways bluetooth and infrared obviously don’t allow. Rather than dialing my cell phone with my PDA via bluetooth, maybe some day my PDA can speak instructions (my cell phone already allows for voice dialing) which means I can catch any mistakes that were made (maybe I tapped on a home number rather than cell phone number), and I could also use the exact same mechanism to dial my phone automatically myself. Or any other device capable of talking could use the same “protocol” as well. I can imagine in the future robots talking to each other in plain English so that we can be certain they aren’t conspiring behind our backs (just in time for the opening of “I, Robot”!), or at least about to perform some function that we would rather they didn’t.

Ok, well, this conversation is getting pretty off-topic, even for a Cool Tool Friday post, so I’ll end it here, and let you pick it up in the comments section. Can you think of any other cool scenarios for using the human voice as a machine protocol?