New Easy! app: Tipr

July 12th, 2007 at 2:04 pm by Aaron

 Those of you who’ve been paying attention to the apps that came out of iPhoneDevCamp (or who are using Applists, AppMarks, or any of the other iPhone web app aggregators/launchers) are probably already aware, but we just launched our first micro-application named “Tipr” last week.

Tipr is a super-simple web-based tip calculator aimed at mobile devices. You simply enter the bill total and choose a percentage to tip and Tipr does the rest, giving you the tip amount and the total. As an added benefit, the total is always converted to a palindrome to make it easy to spot fraudulent adjustment of your tip amount or total when scanning your credit card or bank statement.

Tipr started off as a tool for me, really. I have been doing the palindrome thing for over a year now and, even with the calculator on my phone, it takes a minute or so for me to calculate out the tip amount to end up with a palindrome for a total. To speed things up a bit for myself, I built Tipr and it’s proven quite useful. I hope you will find it useful too.

We’re trying to keep Tipr pretty simple, but if you have recommendations for improving it, let us know by leaving a comment.

Wouldn’t it be nice?

June 27th, 2007 at 4:25 pm by Aaron

 Over the last two years, I’ve been wishing for just one thing in CSS: rotation. There’s been some discussion about it on the W3C lists, etc. but no one has made a solid pitch for it yet. Inspired a bit by Andy’s modest column-rule-image proposal, I drafted a spec for CSS 3 Rotation [PDF] back in February. I showed it to a few folks at Web Directions North and got some good feedback.

Out of those discussions, I also realized we really needed a text-wrapping property in CSS 3, so I also drafted a spec for CSS 3 Polygonal Margins [PDF]. The idea is based on the polygons we used for image maps back in the day and would allow complete control over how text wraps around an element.

Anyway, I’ve sat on these for a while and I figured now was as good a time as any to unveil them to the world and solicit your feedback. So what do you think? Could you use this sort of control in your everyday CSS work? How would you want to see it work? Do you think the plans I’ve outlined offer enough flexibility?

Whoops…

June 26th, 2007 at 11:58 am by Aaron

I was doing a little server cleanup and moved this site’s folder, forgetting to set the new folder up for mod_rewrite, so permalinks have been broken for the last week or so. Everything is better now (I hope). Please let me know if you notice any lingering issues.

WebVisions wrapped

May 4th, 2007 at 12:58 pm by Aaron

I just wrapped my presentation at WebVisions and have posted the slides for my talk, titled “Learning to Love Forms,” up on SlideShare. I have also embedded them below (though the formatting is a bit off on some of the longer sidebars).

I’d like to thank everyone who attended and especially those who asked the challenging questions. Hopefully this was a good start to my campaign for getting people to embrace forms instead of running from them.

For those of you who couldn’t attend, enjoy the slides. I will post the audio for the session as soon as it’s available.


“Ruining” reactions

April 8th, 2007 at 11:49 am by Aaron

There’s been some great discussion surrounding my latest article for A List Apart. It is amazing to see how some people get the idea of progressive enhancement and some just don’t (or perhaps refuse to).

Many folks brought up the point that having requirements for a web-based application is akin to having requirements for a desktop one. I couldn’t agree more, which is why, while discussing some of the shortsighted design choices made by the folks at Lala.com, I said

For a closed application or service, this might be acceptable, but for a public website it’s a disaster.

“Public website” is the key there. Lala.com is open to the world. To see the homepage, browse around, or search you don’t have to sign up; you don’t have to agree to do anything. The public-facing portion of the website is open to everyone, so it should be open to everyone.

When you start talking about closed applications, such as GMail or Basecamp or a CMS, it is acceptable to create a set of requirements for your users. After all, they are choosing to use your service. Keep in mind, however, that even when introducing flashy JavaScript-based functionality you should still be keeping your markup clean and semantic and that you should do your best to follow at least the basic accessibility guidelines, especially if you are charging for your app. Even Google came to the realization that they needed a non-JS version of GMail, so you should never rule out having to go that route. And planning for it from the beginning makes it a hell of a lot easier to implement.

One active member of the discussion I’d like to single out is Jean McGuire. Her comments have been very thoughtful and I’d like to take a moment to share a wonderful analogy she made:

For example, if you owned an outdoor goods store, wouldn’t it be a cool idea to have the entrance on the second floor, and have a climbing wall in front to get to it? That would be new! different! unique! But, even leaving out handicapped accessibility requirements (and how much the UPS guy would hate you) do you think any store owner would be that bloody stupid?

Sure, maybe most of the customers would be experienced climbers and would have no problem with the wall. Some might even think it’s fun, not just annoying. But what about the non-climbers shopping for birthday presents for climbers? What about the person who just needs fifty meters of really good rope? What about the person bringing a spouse’s sleeping bag in to get a new zipper? What about the climber with one arm in a cast? For that matter, what about the newspaper reporter coming to do a local business profile on your store? (aka a search engine spider)

Isn’t that just fantastic?

I am really happy that this piece has garnered so many reactions and had gotten people both talking and, most importantly, thinking.

  1. « Previous Entries
  2. Next Entries »