Queries are a way of asking a computer system questions. (I heard you say ‘duh!’) You’ve probably done this lots in SQL to ask your database questions. How many members have this condition? How much money was sent to these people in August? But how about this one: Which file has the bean named ‘myCrazyService’ in it? Or, How many projects refer to the old version of ‘projectFastMoving’? For these questions you should turn to the *nix-like file utilities.
Standard *nix tools can be used to create queries that your filesystem can answer. Let’s start with find.
The find utility
The find command lets you locate files that are named in a specific way, and that have certain file attributes. Let’s look at an example:
This query searches the current directory, and looks for files with names like: spring.xml, Spring.xml, or sprinG.xml. The i in iname means that the pattern will use a case-insensitive comparison when matching against existing files. Let’s try another:
This code searches the current directory, and will go down only 2 folders below this one in search of matches. It will look for files named like: projector.xml, project.xml, and proj2.xml. Limiting the depth can greatly speed your search. So can starting at a lower level of the directory structure.
I love to find examples of small details around the web that impress me in their innovation, craftsmanship, beauty, or structure. Here’s one I ran across last week:
When you type in a bad password on MobileMe, it doesn’t simply show an error dialog, but animates in a bubble that points to the password box and hovers over the existing text. This is a nice departure from error messages that insert themselves into the 2D HTML layout that’s typical of most websites.
The bottom line? Balsamiq is even cooler than it’s great first impression — you should use it. Bugs? A few. Do they impact me? Not enough to care. Support? Very good. In short: buy it. It’s worth it.
When to use it.
Anytime you want to talk with someone about how something should work. And especially when you’re comparing it to how something works already.
I’ve been using Balsamiq for the last several months. When I say that, I also need to give a bit of explanation. You see, it’s not the kind of application that begs you for daily use. At least not to me. But it’s the kind of app that just aches to be used at certain key points — when you need to -communicate- help someone get what you’re thinking, or when you need to explore that idea that seems just right in your head (Balsamiq will have a way of giving you usable feedback quickly — maybe you really haven’t thought things out so well…), or in a dozen other scenarios that come up.
Think of it as Test-First UI design.
Don’t sit down and start hacking out your rhtml, haml, jsp, or whatever. Mock it up first with Balsamiq. I was amazed at how easy it was to get a decent sketch of our existing website with it, and how quickly my team could recognize what I wanted to do to it with before and after sketches. The conversation about what I wanted went like this, “Here’s our current site. Can everyone recognize it? Good. So here’s what I’m thinking we should do. [5 min conversation about the idea, backend implications, etc] The conversation stayed entirely focused on the idea I was proposing, and wasn’t distracted by the sketch mechanics.
Balsamiq enabled the conversation in an interesting way. It was a bit different from a whiteboard. I originally thought that I’d use Balsamiq but worried that whiteboard would be more agile, more practical for the space that I thought this tool was written for. Over a couple months of using this tool, I found that wasn’t the case. I use the whiteboard all the time still, but I found that the whiteboard isn’t a tool that helps me think about my idea. I’ve seen more productive conversations around a Balsamiq mockup than around a whiteboard. Whiteboard conversations I’ve had seem more half-baked now that I have something else to compare them to. I think a lot of that has to do with forethought. Balsamiq hits a sweet spot where you feel like it prods you to think about your idea just enough to get it decently clear, but because it looks sketchy you don’t get lost in the loop of trying to make it just perfect. It’s enough to have the conversation you want to have.
Try it out and see what kinds of conversations you have with the mockups it generates. It just may surprise you.
Have any experiences with Balsamiq? Drop a comment down below.
I’ve had an iPhone for a while. I’ve had 3 of the 4 versions, actually. I’m trying something with the folders introduced back in iOS 4: I put every app into a folder, even Phone and Safari. Yeah, it’s a bit weird, I think. But it’s forced a new mental process that I like so far.
So I’m picking up some Grails for a consulting gig, and as I’m trying out some of the basics, I feel like the Groovy execution of the Rails-equivalent commands is root-canal-painfully-slow. Check out these timings: