Posts Tagged ‘web applications’

Listy.us is live, still a work in progress

Tuesday, November 24th, 2009

For those that have been following my work by means other than my blog (twitter, facebook), you already know that my big project, www.listy.us, is alive and kicking. I’ve been meaning to write an actual blog post about it for some time, since it would seem I forgot to do that back in September when the site actually launched. It’s improved a lot since then, I think.

Listy.us is a AJAXified table-based list making application. You create a list, edit it by clicking fields and entering your data, and it’s updated as you tab from item to item. It’s open-ended enough that you can use it for just about any kind of list you want to make. I designed Listy.us as an application that I would personally enjoy using, and I do use it. My user profile shows some of the lists I’ve made on the site so far – the ones I’ve marked as public, at least.

There have been a lot of features cut out in order to get the application on the internet and getting feedback. User groups, templates, and hypertemplates — templates with extra functionality such as pulling down extra data from outside sources — are all still on the list of “things to put back in ASAP.”

There are a lot of different things in this project to write about, so I’m going to try and break it up into a lot of smaller blog posts over the next couple weeks. What do you want to hear about? The marketing? Writing the editor javascript? The decision to remove advertising? Design revisions? Bits and pieces of Zend Framework code used on the backend?

Next post, I think I’ll share how I’m using some Zend Framework components to create a mail templating system for new user emails, comment notifications, and the like.

Post to Twitter Tweet This Post Post to Digg Digg This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Implementing Web Apps as Finite State Machines

Saturday, July 11th, 2009

The revelation that a web application meshes well with the design pattern of a Finite-State Machine (wikipedia link) isn’t really new. It’s discussed in a few other places on the web, usually in a scholarly capacity – the google search returns a lot of articles and research papers. Still, this struck me as something that really should be taught to every fledgeling web developer.

Wikipedia defines an FSM as “a model of behavior composed of a finite number of states, transitions between those states, and actions.

In other words, it’s a map of how your application works, with consideration for how you get from point A to B to C. The pattern can be used to design simple to very complicated web applications. Listy.us is currently being built around a fairly simple FSM pattern where every state ultimately  returns to an idle state when finished. Entering the state sets everything up: dynamic elements, events, etc. Exiting tears down the event namespace (see jQuery – Namespaced events) and does any data saving.

You can read about FSMs as applied to game development at this site (it’s more readable than the wiki entry). In fact, if the area of artificial intelligence and/or game development interests you, I’d recommend picking up the book by that site’s author.

Simple example:
start -> state:idle (enter, run)
-> (click field) -> transition:editMode (exit idle, enter editMode, run editMode)
-> (click out/keypress) -> transition:idle (exit editMode, enter idle, run idle)

Maybe I’ll clean up the FSM design and post it sometime.

Post to Twitter Tweet This Post Post to Digg Digg This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

Marketing’s Bad Name

Tuesday, June 9th, 2009

I’d like to share an experience I had a few years ago: I was at the supermarket, making smalltalk with the cashier, and she asked what I do for a living. I answered truthfully: “I work in marketing.”

I’ve never seen someone go from friendly and cheerful to all business so quickly. From the reaction, you’d think I’d said “I vivisect puppies.” I haven’t told someone “I work in marketing” since – at least not out of context.

The thing is, they’re partly justified. Think of marketing as a consumer and the first things that come to mind are probably an inbox full of spam, copious handfuls of junk mail (physical spam), phone calls while you’re eating dinner, commercials interrupting your night on the couch, and so on. Hell, why stop there? Don’t forget the bots posting nonsensical links in your blogs, or the bots and slimy “marketers” on Twitter (those guys with 50-100X more “following” than “followers”).

Yeah. Nowadays you’d better clarify: “I work in marketing, but I’m not one of the guys you hate.” Luckily these days I can say “I run my own business through websites,” and folks don’t always realize that that job description includes marketing. Being an entrepreneur is much more smalltalk-friendly than working in marketing.

Rule number 1 of modern marketing: Don’t be a dick.

Don’t send people any marketing materials they didn’t ask for: No spam, no junk mail. Blog comment spam, twitter spammers, etc, are Internet extensions of the old-and-broken mechanic of “I will interrupt people, steal their attention and valuable time, and they will buy my product.” People don’t react like that anymore. They hate you for it. I know I do. Don’t do it.

My projects will never spam you. I refuse to be that guy.

Listy.us will feature Google ads for non-paid accounts. Context sensitivity is it’s main selling point; If I have no choice but to show ads to support a project, I’m going to make sure those ads are something you want to see. As soon as a site can stand on its own without ads, the ads will be gone.

Post to Twitter Tweet This Post Post to Digg Digg This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

3 Disciplines that Shape My Work

Sunday, March 22nd, 2009

I’m at an interesting place where I’m influenced by several different “disciplines” of design, and I think that’ll show in my work. There’s a lot of resonance between these; While the first two are pretty obvious, the third may not be. I’ll compact the first two into one for brevity:

(more…)

Post to Twitter Tweet This Post Post to Digg Digg This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post

How to Wrap Your Head Around a Project

Friday, March 20th, 2009

I was making fairly slow progress on my primary project. I headed up to stay with my folks for a couple days and try out a new dentist in the area (I detest driving more than 15 minutes if I’m not going to be staying there for at least 24 hours). When I was packing for a couple days, I made a conscious decision to leave my laptop at home. All I brought was a sketchbook that I keep some of my notes in (ruled notebooks are the pits and remind me of school).

Between just being unplugged for a few days and a few discussions with my Dad who knows a crapload more about databases and project management than I, I think I’ve mostly got my head wrapped around this project. I got about 3 pages of notes down, and I write densely. I think when I head home tomorrow, I’ll be ready to start working on the app. There’s still a little bit of brainstorming left to do, but for the most part, I’m there.

So, if you ever find yourself stuck on a project, try unplugging for a few days. Don’t stop working, but go to paper and pencil if you can. If you aren’t working in computers, do something else to change your perspective; A shift in practice/view tends to lead to new approaches or solutions you hadn’t thought of before. Probably just because you aren’t following a pattern anymore and your brain has to start improvising more readily.

At least, it worked for me. Thought I’d share.

Got another project underway as well. I’m not really going to be talking about these projects directly until they’re at least alpha ready.

Post to Twitter Tweet This Post Post to Digg Digg This Post Post to Reddit Reddit Post to StumbleUpon Stumble This Post