Jon Aquino's Mental Garden

Engineering beautiful software jon aquino labs | personal blog

Tuesday, March 28, 2006

American Idol app on Ning

I just finished coding a fully-AJAXified app on Ning for the American Idol folks, and I am super-proud of it. Fully CSS/XHTML-compliant, unobtrusive JavaScript (thanks to Behavior.js), amazingly clean Rubyish JavaScript (yay for Prototype.js!!), cool fade transitions (kudos to the remarkable Scriptaculous library which makes them so easy). This thing is a work of art, and I am ecstatic just thinking about it.

Code to bask in:
Mad props to Kyle Ford who did the visual design.

Freeware timer

OK here's another freeware recommendation, this one from It's called Multi Timer and it's just a little utility that does one thing and does it extremely well: provide you with 10 countdown/countup timers that you can see at a glance.

And it has a pleasant alert sound.

I'm using it right now to help me crank through my backlog of 150 emails in 15-minute bursts.

Saturday, March 25, 2006

FileTargets: Right-click file and copy its path to the clipboard

Here's another little gem I discovered via an alt.comp.freeware search - FileTargets. It lets you right-click a file in Windows and copy its path to the clipboard -- something I find myself doing often these days.

Keep windows always-on-top using NailIt!

NailIt - it's a tiny (33KB) program lets you click any window to keep it Always On Top.

I was getting frustrated hunting for my FTP client among my myriad of open windows so I searched alt.comp.freeware (with YubNub -- acf "always on top") and found this recommendation for NailIt.

Now my FTP program is always visible.

Tuesday, March 21, 2006

Freeware sticky notes alternative: EverNote

While I was enjoying Hott Notes (freeware sticky-notes program), it was giving me a lot of trouble (became excruciatingly slow to delete notes; wouldn't remember settings on startup). Which is too bad because lots of people love it.

And I didn't want to go back to index cards. So I'm going to go with EverNote, which is a freeware (for now?) alternative to Microsoft's acclaimed OneNote software. Basically the idea is that you can throw all sorts of text and notes into it. It's very well done and highly regarded. And it will be a lot faster to input information into than my old way of using index cards.

Sunday, March 19, 2006

Cool words: avuncular, bloviate, truthiness

I came across some cool words today while reading some amazon reviews:

"All this is done in a very avuncular style and I must admit I enjoyed reading the book, and trying out some of the examples/topics on my PC."

"Pages of windy bloviation about how XML doesn't understand tables but but precious little on how to use CSS."

I've started a list of cool words (not much in there yet--just the three I'd mentioned). If you find any similarly interesting and choice words, please add them to the list!

Friday, March 17, 2006

IE JavaScript errors? Use Microsoft Script Debugger

If you're like me, you've been using alert() statements to debug JavaScript errors in IE. It turns out that there is a free download from Microsoft called Script Debugger that makes debugging easier: it opens a window showing what line in the JavaScript caused the error.

(Firefox offers several JavaScript debugging tools, my favorite of which is FireBug -- love the exploratory js command-line).

Wednesday, March 15, 2006

Random software codename generator

Software releases are often accompanied by a "codename" e.g. Panther, Tiger, Longhorn, etc. I like to attach codenames to my software releases, and found a great random codename generator.

  • Ghost Canyon
  • Big Fox
  • Sharp Wind
  • Golden Shield
  • Intrinsic Obelisk

Tuesday, March 14, 2006

Where I find my freeware

I was thrilled to receive this note of appreciation from Tim M:

Thank you for the mental garden. I found your garden while looking for freeware advice on google about 3 months ago. Since then I have found a use for at least 2 or 3 freeware programs you reviewed that have helped me enormously in my projects at home, and also at work.

Just want to quickly mention where I find freeware and how I am confident that they are highly recommended and virus free. The basic source is, though occasionally has highly-rated freeware lists that appear as front-page stories.

To check how good a freeware program is, or if it is known to have spyware/viruses, search for it in the alt.comp.freeware newsgroup.

Free place to host PHP scripts: Ning

If you need a place to host your PHP scripts, or if you just need somewhere to experiment with PHP, the company I work for (Ning) offers free PHP hosting. Actually the purpose of Ning is to be a platform for social apps, but you can just as easily use it for simple one-off scripts :-)

Freeware Sticky Notes: Hott Notes

Trying out this freeware sticky notes program called Hott Notes, because I think I can get ideas out faster by typing rather than scrawling them on index cards as I have been doing for a while.

Hott Notes rocks because it has a cool "crumple" sound effect when you delete stickies; also its stickies have a very nice default appearance, with a gradient background. Also there are three different kinds of stickies: Message, Checklist, and Scribble. The user interface is superb - it's immediately obvious where everything is and what the controls do.

Sunday, March 12, 2006

Never again lose what you typed: Home KeyLogger

I'm trying out a free program called Home KeyLogger which was recommended by Rod on the alt.comp.freeware forums. It basically records all your keystrokes and writes them to a logfile. I was tired of losing what I'd typed because Firefox (or another program) decided to freeze.

So here's what's currently at the end of the log:
. This is because I am tired of losing what I typed because Firefox decides to freeze() or other programan. In fact, here's what's at the end of
Not bad. Actually I had Ctrl-Lefted and Ctrl-Righted quite a bit while typing that, so I don't mind the mangling too much. As long as I have some sort of backup. I hate having to duplicate some bit of inspired creativity -- it's never as good the second time.

Saturday, March 11, 2006

People I Totally Have To Keep In Touch With

Dang - I got an email today from David Gelbart who was a classmate of mine at the University of British Columbia. Hard to believe it's been 7 years - I like the beard David!

Anyway I totally want to remember to ping David once in a while, and so have created an app for helping me (and others) to do this sort of thing: People I Totally Have To Keep In Touch With.

Add the people you want to remember to touch base with!

What Makes Rails Great - Its Directory Structure

The greatest thing about Ruby on Rails is not its code generators. Nor is it its automatic database-to-object mapping (though that is pretty sweet). It's the directory structure.

A Rails app has three main directories: models, views, controllers (also the very important test directory). Here's the key: the controllers set up the variables for the views. So the PhotoController's "new" method sets up the variables for the new.rhtml view. The PhotoController's "edit" method sets up the variables for the edit.rhtml view. I love the consistent naming.

And notice how every "thing" has the same set of actions. Whether a comment, event, person, photo, or topic, they all pretty much do the following: edit, list, new, view. Again, wonderful consistency.

Over the past 6 months I've written a variety of web apps -- hiking reviews, a sports poll, a craigslist clone, find-a-programmer, a social network. Not one using Ruby*. Not one using a framework (gasp). All of them using the extremely clever directory structure that I learned from Ruby on Rails.

Try it with another language!

* They were written in PHP
** The files in the above example are from Group.

Shower idea capture with Crayola Bathtub Crayons

If you're like me you get some of your best ideas in the shower. I need a way to offload those ideas so new brilliant ones can take their place. That's the thing about good ideas -- they take up so much brainspace that they leave no room for the new ones trying to get in.

One way to offload these ideas for later processing is to write them down. This is often a problem in showers, most of which are not equipped with diver's notepads. So head over to your local Wal-Mart and buy a pack of Crayola Bathtub Crayons. You can then write on the shower walls whenever brilliant ideas strike you (and they will!).

Friday, March 10, 2006

Potluck: Assemble Your App From 100 Web Services

From the creator of YubNub (ok it's me) comes a new service that lets people assemble new applications from 100 web services. It's called Potluck, and it hasn't quite hit 100 services yet, but I've made it super-easy to add new ones. The basic idea is to make web services more accessible to Real People by making them as easy as clicking checkboxes.

It took me all of one day to build Potluck (well, a day and a half). It's the glue that unifies, flickr, Google Blog Search, and the other web services into a single app. The idea is simple: each web service gets its own page (or "tab"). All you have to do to contribute a web service is make a webpage for it, host it somewhere (you can get free PHP hosting at Ning), then submit its url. It's more powerful than meets the eye (there are ${named parameters} if you want, for instance).

It's going to be an interesting experiment, and the apps will look a bit rough (demo) until I add the ability to choose from CSS skins (and submit new ones). The goal is a lofty one: offer people a menu of 100 web services that they can build an app out of by ticking a few checkboxes. Let's build it together!

Wednesday, March 08, 2006

Don't like MySpace? Build your own Social Network App with Group

Group is an open-source social networking app that I've been recently working on, and it comes with free hosting (from Ning). To make a copy of it, click Clone This App and customize the questions for your racing club, your next trip to New York, or the next Italian MySpace!

(It's written in PHP (in the Rails style), so if you like programming you can click Edit Source Code).

Monday, March 06, 2006

CSS Aha! Moments

I've been programming computers for many years, but only recently have become aware of the new wave of interest in web design standards. Things like why ems are almost always better than pixels, and why not to use alt for tooltips.

This is all new stuff for me, and as I go along I'm going to capture what I'm learning in this little web app: CSS Aha Moments. Add your own CSS Aha! moments if you like!

Sunday, March 05, 2006

Books I bought with my Amazon gift certificate

I got an Amazon gift cert for my birthday, and got a bunch of books I've been meaning to get for a while. I've seen great recommendations for each of them.

Saturday, March 04, 2006

Why Google Desktop rocks: Caches every webpage you've visited

I love how GDS keeps a cached copy of every webpage I've visited. So when my laptop is not connected to the internet, I can access every single webpage I've viewed. It's like dragging along a part of the internet with me wherever I go -- the part that's most relevant to me, no less.

Thursday, March 02, 2006

EditorWars - Vote for your favorite text editor

Fun little ThisOrThat clone I whipped up in a few minutes: EditorWars. Vote for your favorite text editor!

(Or if you want to set up a battle for something other than text editors, click Clone This App and make your own site!)