Posts in Category "General"

Stop Using “rm” on the Command Line (Before It’s Too Late)

True story…

While writing a Python script one day to do a little screen scraping and reporting, the topic of data loss came up between a friend and myself. I was bragging that I had never in my life accidentally lost a single file or piece of data that I wasn’t able to recover. Literally seconds later, while intending to rename my script using “mv”, I accidentally typed “rm” instead and deleted it.

That was just about the last time I used “rm”. I now use a script which, for no particular reason, I call “rr”. Rather than deleting files and/or directories, it moves them to the trash where they can be easily recovered if necessary. Here’s the script itself (configured to work on OS X):


if test $1
    mv $1 ~/.Trash/

Just make the script executable (chmod 755 rr), drop it in your path, and forget “rm” ever existed.

As always, there are several other ways of doing this (remapping “rm”, making an alias, using the Finder, etc.), so pick the way that works best for you. The important thing is to keep yourself from losing hours of work on the command line like I did.

Using Dreamweaver to Write a Novel

I recently released my first science fiction novel entitled Containment, and I wrote most of it using Dreamweaver.

I know Dreamweaver is an unlikely tool for writing fiction, but it was actually exactly what I needed. I started out using an application called Scrivener. Scrivener is an excellent piece of software for both organizing and authoring, and I never had a single problem with it. But after completing my first draft, I decided I wanted to release Containment online under a Creative Commons License and on Amazon’s Digital Text Platform, both of which required the manuscript to be in HTML. So I exported to HTML from Scrivener, and started writing with Dreamweaver.

Just because I work for Adobe doesn’t mean I automatically choose Adobe solutions for everything. I’m a big believer is using the right and the best tool for the job, regardless of your affiliation, so I tried some other tools just to be sure I wasn’t missing anything. I found that Dreamweaver easily outperformed them all. (To be fair, I didn’t try Expressions Web since I usually use a Mac, so I don’t know how it compares to Dreamweaver.)

I was a little hesitant at first because I’ve always been a hand-coding kind of guy. I used to use Vim for all my coding, and I still use it for just about everything but ActionScript and Flex work. But when you’re writing creatively, you really just want the tool to get out of your way so you can focus on the content. I got in the habit of opening Dreamweaver, hitting F4 to close all the panels, then alt+command H to hide all my other windows. Initially I was constantly switching into code view to check on the HTML that Dreamweaver was generating since I have a deep mistrust for code generation in general, but everything Dreamweaver generated was perfect (granted everything I was doing was simple markup — I have not tried Dreamweaver yet for complex sites).

If you have stories, a novel, poems, or non-fiction that you want to share with the world, don’t keep waiting for the right time. Convert it into HTML, and put it online now. Not many of us get rich from writing — especially fiction — so you might as well give your work to the world and see what happens.

I’m Back

Four months and a lot of lines of code later, I’m back at Adobe. Same company, new job. I’m now working on the Apollo team as an Apollo Application Developer. That means my job is to write Apollo applications as Apollo itself is being developed in order to:

  • Give the Apollo team feedback on APIs and other aspects of the runtime.
  • Help advise the team on how developers are going to want certain features implemented.
  • Exercise the Apollo APIs and look for bugs and usability problems.
  • Create a bunch of apps and code libraries that I will give away as sample apps and building blocks for new Apollo projects.

I had a great time while I was off and learned quite a bit about a lot of different technologies which was both refreshing and rejuvenating. When it was time to come back to Adobe, I really wanted to find a job that let me maintain the same level of excitement about what I would be working on day to day. Adobe has a lot of very cool technology in the works right now, but I really think Apollo is especially interesting and has a tremendous amount of potential. I’ll be blogging more about Apollo as I learn more myself.

Taking Some Time Off

I wanted to let everyone know that I’m going to be taking some time off from Adobe starting next week. I’ve been at Macromedia and then Adobe for over three years, and as far as I can remember, I’ve never taken a vacation, so it’s time. I’m not exactly sure how long I’ll be gone, but at least three months.

I won’t be relaxing during my time off, though. There are way too many cool things going on right now that I want to be a part of. I’ll be focusing on Ruby (on and off Rails), Ajax, mobile, and, of course, Flex 2. I might even start playing around with Flash again, which I haven’t done since I got my first Flex Builder 2.0 build.

I won’t be checking Adobe email or posting here while I’m gone, so I’m going to turn off comments to keep out the riffraff. I can be reached at my personal email address (, and you can keep up with what I’m working on through my personal weblog, Living Digitally. Requests and comments relating to MXNA can go to

I will be staying in the bay area, so if you’re ever in town and want to hang out, drop me a line.

Keep building amazing and inspiring things!


I’m dividing my blog into two

In order to keep my Adobe blog more on-topic, I’ve decided to start a second blog. Living Digitally is a place where I will post about anything and everything technology related, but not necessarily Adobe related. All Adobe and work-related content will continue to be posted here while anything else will go on Living Digitally.

I decided to make this change because every time I posted something off-topic on my Adobe blog, I felt a twinge of guilt since people who follow my blog purely for Adobe-related information really had no way to opt out of my general technology posts (and vice-versa). Dividing my blog up into two gives readers more options, and will help keep the Adobe category on MXNA more focused, as well.

What do you use for personal information management?

I’ve used Palm, Outlook/Windows Mobile/GoodLink, Entourage, iCal/Address Book, Sunbird, and the Sidekick 2 for Personal Information Management, and I still haven’t found a solution that has everything I want. In general, I’m a big fan of the Sidekick II and its PIM suite, but it’s not perfect. First, it locks you into the Sidekick/Danger/T-Mobile platform, and second, their web interface is actually worse and less convenient than the UI on the Sidekick. Outlook is pretty nice, but isn’t very cross-platform friendly. Entourage was terrible last time I used it, Apple’s PIM suite is incomplete, and Palm, after all these years, is still missing basic functionality. My questions to you all are:

  1. Do you use PIM software at all?
  2. If so, what do you use, and what do you like/dislike about it?
  3. What devices and/or platforms is your data available on?


My New Mobile Office

I recently moved into a new house in San Francisco which is perfect in all respects except one: it doesn’t have an additional room for me to use as an office. This is the first time in my entire life that I haven’t had a room completely set aside for working, so I’m being forced to adapt. My solution has been to put together a mobile office, or a collection of everything I need to work wherever in my house I can find a flat surface and a little peace and quiet.

Continue reading…

MSN Plays the Beta Game

If you want to compete in the search world, you have to be cool and experimental. First, there was Google Labs. Then, Yahoo! Research Labs. And now, there’s MSN Sandbox.

The only MSN beta apps I’ve played with are TerraServer (very cool), and is a portal app, very similar to Google Homepage, but actually, in my opinion, a little better (if you happen to use IE). It gives you very quick and easy access to recent searches and customized RSS feeds with some nice JavaScript magic. If it worked decently in Firefox, I might actually use it, but I guess Microsoft doesn’t do a lot of QA outside the Windows world.

The Move is Almost Over

I haven’t been blogging much lately because I am still in the process of moving to San Francisco (two weeks after it started). The good news is that I actually got into my house on Saturday, so now it’s primarily a matter of unpacking and getting services turned on. My top priority is an internet connection, and I’m currently investigating both DSL and cable. I’ve used both in the past, and had great luck with both, so at this point, I’m pretty much just comparing pricing.

So my question for you this morning is DSL or cable in the San Francisco area?

How To Change The Web

While reading the weekly Community MX newsletter
this morning, I came across a Wired article entitled New
Browsers, Same Unwanted Ads
. The article predicts that more virus
writers will begin targeting Firefox as it continues to gain in popularity, but
it touches on something else I actually found much more interesting: the evolution
of intrusive advertising. As more and more people find ways to block intrusive
advertising, advertisers continue to find more and more ways to force people to
view clients’ ads:

One advertiser site, [sorry, no free advertising here], states on its homepage
that "due
to the proliferation of pop-up blockers, we have altered our popup code so
that if a blocker is detected, a layer ad will be delivered." Other firms,
Wilson said, are using a technique in which advertisements load in the background
when a person is viewing a web page, then appear immediately when he or she
attempts to visit another URL. Others will force another pop-up on the user
if the first is closed "too

It occurred to me while I was reading the article that the game we play with publishers
and advertisers is actually pretty ridiculous. All of us have the power to end
intrusive advertising without the use of popup blockers, or any other kind of plugin
or utility. It’s called choice. If you don’t like the kinds of ads certain sites
use to support themselves, your best defense is to stop visiting those site. Instead,
patronize sites that have revenue models that you can live with. I can’t think
of any sites out there that rely on intrusive advertising that have content I
can’t find elsewhere. Send those sites a message by denying them your page views.
I’m not saying you should disable your popup blocker, but what I am saying is that
the best way to change the web is to actively participate in and support revenue
models that you believe in. There doesn’t always have to be an adversarial relationship
between publishers, advertisers, and readers, or between businesses and their customers,
for that matter. There are relationships out there that work well for everyone,
and that I believe will ultimately prove the most successful. Relationships, communities,
and conversations are changing business, but the most powerful agent of change
is, always has been, and always will be choice.