Archive for the 'development' Category

My App Has Been Named!

Saturday, August 16th, 2008

I know you thought you’d never hear from me about this again, but I have finally Named My App. Thanks again to all for the great suggestions. They were so much better than I could have come up with.

And the winner is…

Moviesaurus Rex from Brendan Cullen.

I really liked every suggestion, but as soon as I saw this one I pictured a fat purple dinosaur with big googly eyes tossing DVDs down his gullet with abandon.

Thanks, Brendan! You have won…absolutely nothing! Well, not true. Your idea of a name will go on, your name will forever appear in the credits for the application, and you will have my eternal gratitude. Sorry I can’t afford a real prize.

Now, don’t anyone expect this thing to show up anytime soon. My husband (for some reason) insists that I get paid work done before I work on my personal project. Hmph. Need I lament again about how hard it is to fit my job (well, the one I actually get dough for doing) done?

BUT, that doesn’t mean that this will sit around forever. And I really doubt anyone else will have much interest in it anyway. I’d actually be surprised if there is anyone even reading this far. If you are, here are the features I plan to include.

  • Track movie collection (DVDs, VHS, digital downloads for when I get an iPod that will handle video)
  • Print filtered/unfiltered shopping list
  • Print filtered/unfiltered wish lists
  • Track movies I want to see
  • Track movie release dates (iCal/Google Calendar integration?)
  • UPC/ISBN entry of inventory (lookup through Amazon?)
  • AIR app
  • E-mail reminders (movie release dates)
  • Track movies loaned to people (Address Book/Gmail contact integration?)
  • Track purchase price and provide total investment reports
  • Provide net worth based on median price on Half.com and Amazon Marketplace
  • Updates on wish list items available at Amazon, eBay, and/or Half.com
  • Wish list import from Amazon and Half.com
  • Multiple users
  • Pretty pie charts by genre, price, format (useless eye candy)
  • Search by title, format, keyword, actor
  • Personal ratings and reviews/comments
  • Critic information from Rotten Tomato
  • Ratings from Amazon
  • Images (hosted on Flickr or picasa)
  • Suggest movies to friends or warn them of duds
  • Look up title at library and place a hold
  • Share wish lists with others to provide gift suggestions
  • Series movies linked together somehow
  • Similar movie suggestions

This is not a definite list by any means; just the result of brainstorming and a lot of “Gee, I wish there was an app that would do that” and “Wow! I could use the API to do this” kind of things. As you can see, this is quickly growing bigger than simply tracking what DVDs I have. I’m hoping to track a lot of things. For me it will be really helpful to be able to take a list of movies that I want to see with me to the video store, or a list of movies I have on VHS and I want to get on DVD to Half Price Books. I think there are lots of opportunities here to integrate with other applications and services out there, too. I can’t wait to get started.

Where has my focus gone?

Thursday, July 24th, 2008

Just a short post because I have an incredibly busy day ahead of me. But, I’d like to know where my focus has gone. Does somebody have it? Can they please return it? I’ve looked everywhere: under the bed, in the couch cushions, all the closets, in the garage. It’s nowhere and I desperately need it back.

I remember being able to get into the zone in a nice quiet office. I remember coding away, finishing a module and looking up to find it was time to go home.

* sigh *

Now I’m lucky to get four hours strung together to just work. Even then, there are constant interruptions. Except at one in the morning. Then there are no interruptions. Heh.

I’m getting burned out working this way. An hour here, an hour there. Trying to get back into what I was doing and figure out where I left off. It’s hard, folks. Anyone who tells you that working from home is easy probably also has a bridge to sell you.

* sigh *

And the thing is, even when I have a Sunday with Ray home and I’m holed up in my bedroom office, I still have a hard time focusing. It seems that with the constant interruptions and scattered working hours I have lost my ability to focus. I can’t seem to get to that point where I’m thinking about the code and only the code, and progress feels incredibly slow.

So, please keep an eye out for me. My focus has to be around somewhere. If you see it, can you please let me know? I’ll keep looking.

Name that App!

Wednesday, July 16th, 2008

In my day job, I have the extreme pleasure of coding in Objective-C. Eventually, I will be tasked with porting our web applications over to a language and framework stack that is a bit more web-application-friendly. Naturally, my first thought is Ruby.

In order to learn Ruby, I would like to start a pet project. Now, this isn’t something that I intend to publish or sell or anything like that. This is strictly a learning project for me. What is it?

I want to build a web application that will track movies. Yup, I know. Delicious Library and all that. But, remember, the purpose for me is to learn Ruby. To that end, I have a laundry list of features that I want to include. These are a mixture of features I’d love to have in an application and features that will allow me to learn new things, such as working with APIs from other sites.

The problem is that I just can’t think of a good name for it. If I’m left to my own devices, it will be called something like MediaTracker or MediaKash (get the pun? neither did anyone else). This, dear reader (I do have readers, right?), is where I need your help.

Name My Application

There are lots of really creative types out there and I’m asking you to come up with a name for my application. I have nothing for you to win, other than my sincere thanks. I can include your name in the credits somewhere so that everyone else can give you their sincere thanks as well.

Please post any suggestions you have in the comments. I will post the winner and it will be forever immortalized in my application and the domain it inhabits.

Entering Dates: Use Fewer Options, Not More

Wednesday, July 16th, 2008

A few weeks back the CWSA held a roundtable discussion about form design and development. You were there, weren’t you?

One of the topics brought up was how to enter in dates. Date pickers can be clumsy and ugly, with a host of browser compatibility issues. Providing a blank text field is confusing for the user. Several comboboxes can work, but they get long and there’s lots of mousing involved.

Someone asked about the possibility of a field that would be able to take a value such as “yesterday” or “last monday” and get the right date. There seemed to be some general agreement that this was a great way to go. Let me tell you about my experiences with that.

NSDateFormatter

In Cocoa, we have this really cool object called NSDateFormatter. This object has the sole purpose of taking user-entered date strings and converting them into NSDate objects. It can also take an NSDate object and present a string representation in the format you choose. Cool, right? Wait, it gets better.

With the allowNaturalLanguage option, your fancy-schmancy formatter will also take strings such as “yesterday” and “last monday”, parse it out, and provide the correct date in an NSDate object! We use this functionality all the time in our GUI applications. It really does work quite well.

Since we use an antique version of WebObjects to build our web applications, we are writing them in Objective-C, which means that we have NSDateFormatter available for our date fields on our web forms.

From the beginning, NSDateFormatters have been used to allow our users to enter dates in just about any way they wanted to. We thought it was so cool that a member could type in “today” and get the correct date. It would be great not to require a specific format and allow the user to enter the dates in whatever way came naturally to them. There would be no training required, no questions about how to enter the data. Users would love it!

User Understanding

Our users are constantly confused about how to enter dates. When they ask and we reply, “You can enter the date in any format you wish” they still don’t get it.

“Do I have to use dashes?”

“Yes, you can enter them that way. Or you can just type ‘today’ and it will get the right date.”

“What, the word ‘today’?”

“Yes, or ‘last week’ or ‘next monday’. However you want to enter the date, you can.”

“Okay, so dashes will work, right?”

“Yes, dashes will work.”

I’ve had that conversation over and over, and I know a few others I work with have, too.

Caveat

I do have a caveat to this. Our site was not designed for usability. It was created, written, and designed by developers. Admittedly, the site is complex and hardly user-friendly. Date entry is certainly not the only thing that confuses our users.

Going Forward

We have a port coming up of all of our web applications. Chances are, they won’t be written in Objective-C anymore, which means no more NSDateFormatter. I will not mourn its loss.

The next iteration of our site should be much more user-friendly, as it will be designed with usability in mind. Even so, I will provide a text field with a strictly enforced format. I have learned my lesson. For our users, at least, more choices = more confusion. While parsing out normal English, providing a text field with a strict format requirement will remove all questions about how to enter data.

Take aways

For me, I have more than the concrete takeaway of a strict date-entry format. It is a huge reminder to keep focused on the users and not on what I think is really cool. I’m a geek, my users are not. My users tend to be quite computer illiterate. I see this slowly changing as our oldest members retire and new, Internet-savvy members come in, but it will be a long process.

Lesson for others? Perhaps it is just to remember that even the coolest features might not be the most user-friendly features. Yes, they are a ton of fun for us to implement and they make our fellow developers “ooh” and “aahh”, but stay focused on your users. After all, they are the reason you’re building that site in the first place.