Who's your Customer?

Posted by Doug Wed, 08 Feb 2006 20:35:37 GMT

This is an interesting observation on AJAX web calendars by Joel Spolsky:

Why so many Ajax calendars? My theory is that about a year ago, there was a lot of buzz (possibly true, possibly false) about Google shipping a calendar, and everybody thought, oh gosh, it’s gonna be really good, like Gmail, and then Yahoo! is going to be embarrassed again, and run out and buy the best Ajax calendar company they can find, just like they did with Oddpost, making those very funny kids millionaires overnight. So people aren’t really building calendars to sell to people like me who need calendars: they’re building calendar companies to sell to Yahoo!, which, for some reason, has given up on the old concept of hiring programmers to write code, and is going with this new age concept of buying entire companies on the hopes that they might contain a good programmer or two, which, by the way, is a sure sign of trouble for a technology company.

I haven’t really used any of the web calendars, but he may be right. This fits in with my thinking about building products: you have to build something for customers. I think not enough companies spend time thinking about and delivering what their customers want. In this case even the “Web 2.0” companies are failing at that.

Posted in  | Tags ,  | 7 comments

Calendars and Group Scheduling

Posted by Doug Sat, 17 Sep 2005 06:05:04 GMT

It’s been a pretty good couple of days for Rails coding. I’ve done a bunch of validation tweaks, mostly finished the calendar, and begun on group scheduling.

I was having problems using embedded hidden forms for all my edit and add links on events. I did a couple things to improve the performance of the page. First, I ditched the embedded forms and made them separate page loads. It was cool to have the embedded forms the magically appear and disappear; I miss it. Several people suggested I just embed a single edit form and a single add form and use Javascript to update the values before it’s submitted. If I were a Javascript stud that’s what I’d do. Maybe when I’m all grown up I’ll be smart enough to do that.

The other thing I did was change how I tested for events on calendar days. I had a find_by_day method that would basically find(:all).select { |expr| expr.occurs_on?(day) }. I’d then loop over the calendar days calling that function. What I decided to do instead was simply collect all the TimeExpressions into a single list in the controller and let the view do the select for each day. This exposes more of the model’s logic a little. I like the way the code looks to simply calll find_by_day for each day. However, only doing one find and then doing the selects in the view shaved a fair amount of time off the page load.

So I’m doing some “group scheduling” too. It’s quite limited. The TimeExpressions I’ve been working with is really to build a “free-busy” schedule of available times to book appointments. What I need to do is allow a user to invite another user to an appointment. These two users may have to negotiate an appointment time. So, it makes sense for my Invitations to acts_as_versioned. I had seen acts_as_versioned discussed a couple times on the maling list. Let me just say, I’m really happy with it. I was able to set it up without too much fuss. It works pretty much exactly as advertised. Thanks technoweenie!

Finally, to send out the initial invitations I finally got around to coding some AJAX stuff. It’s quite simple; just a link that makes a single request to send the invitation. I felt so sophisticated! Only about an hour or so to get it studied, written, tested and committed.

Posted in ,  | Tags , , ,  | no comments

Copyright 2001 - 2005 by Lathi.net and Doug Alcorn

Creative Commons, Some Rights Reserved Ruby on Rails Developer Powered by Debian GNU/Linux Powered by Typo