Posted by David Harris
Wed, 15 Mar 2006 21:45:00 GMT
I now understand the way 37signals does business, if I didn’t before. In my recent need for scheduling, I’m going to have to create a tool I like. Maybe I make money off of it, maybe not. But I benefit either way.
enter the problem.
I consider myself an “agile” scheduler. :-) Meaning, that I don’t set a rigid schedule for my personal activities, but rather I have large visions of what I’m doing in a week. I rarely think more than a week out unless it requires travel. However, as of late, I’m finding myself a little too busy with things to not have a calendar of some kind.
enter the process.
So, I searched for about a week looking for a nice “web 2.0” (boy I hate that moniker) calendering application. And I looked at every one I could find. Apparently Google is looking for a calendar soon, and there are hundreds of startups looking for a quick buyout from Google, following the typical web 2.0 way of doing things. Don’t even get me started on how pitiful it is to choose a quick buck over constant innovation.
And my needs were not that complex:
- Easily accessible from anywhere with internet access.
- Accessible from my mobile phone.
- Ease of inputting. I don’t want to have to fill out the equivalent of a tax application just for a reminder to walk my dog.
- An easy URL to remember.
- Fast loading time – there is no reason it should take a minute to load a calendar.
- Non-cluttered.
Yet despite fairly normal constraints, nobody got it right. 30boxes came the closest, but the jumbled look of the application gave the sentiment of future feature creep, and the loading time wasn’t great. Close, but no cigar.
Most of them were for “sharing” your calendar with other people. I have no need to do that, though. I would like a “public” and “private” designation, where I can make some events publically viewable, just a simple boolean answer; do you want others to see it or not? I don’t need reminders, it’s my job to look at my calendar. I don’t need to micromanage my time in a day, just let me input an event, and if I want to include the time I will.
enter the solution.
So, I’m going to roll my own calendar app, and not so Google can buy me out (though I wouldn’t say no). I registered tinycal.com for this purpose. It’s something I am going to use, and if other people see it as a good idea, then great. I might even figure out a way to cash in on it. Here are some of the basics I’m looking at thus far. Please, if you have input comment below, as I may be missing some great ideas. However, if said idea requires interface modifications, then I may not go for it. My goal is simplicity.
The current ideas:
- Obviously ruby on rails. I want to use this sucker right away.
- Each user has his own subdomain, such as http://user.tinycal.com. Like basecamp. The public can look at this and see the events marked public. But it must be logged into in order to see private events or add new events.
- Inputting a new event is simple: double-click the cell and it prompts you for three pieces of information: the event, public/private, and “other data” (which can be location, or time, or whatever you want). The “other data” and the public/private (default private) fields are hidden by default and opened up through a simple link.
- We don’t care about times of events. If you want a time, you can add a simple “8pm” to the front of the event or in the “other data” section. If you want to keep items in order, each box’s events can be ordered manually via dragging the event up and down (scriptaculous sortable lists).
- For God’s sake, no more mouseover information. It’s ugly and most times, you moused over by accident and didn’t want to see extra information. If you want to see the meta data, then you click the event which opens a description box (which of course has edit-in-place).
- Mobile phone access. I want to look at and edit events from my phone. Obviously this won’t be ajaxified, but it will be as simple to navigate.
- I’d like to implement a Google Maps style dragging to scroll the calendar month to month, but I’m not sure of the best implementation for this yet.
- I don’t care about skinning. If I make the interface pretty enough, that will be pointless anyway. Maybe provide a few color schemes though.
- I don’t care about “categories” or anything like that. An event is an event is an event, whether it’s at the office, or a football game, or poker night. Why do we care if it’s categorized or not?
And that’s all I have now. Maybe it will work out, maybe not, but right now I have no other option. These calendar sites are all trying to be the “One Calendar to Rule Them All”, and that’s stupid. I don’t use Outlook because it’s too much to handle. My lifestyle doesn’t require me to know every 10 minutes of my life ahead of time. I just need to know if I’m supposed to be somewhere, or maybe two places, this thursday night.
2 comments | no trackbacks
Posted by David Harris
Mon, 20 Feb 2006 20:31:00 GMT
On the recent SvN blog by 37signals, I was a little perturbed by the people posting comments there.
I thought by now people would be embracing agile standards, less software, and good design principles for maintainability. But apparently some people are lost in wading through the older school of thought that more features makes a better application.
And sometimes, more features do make a better application, if and only if the application cannot survive without those features, or it would diminish the ability for the user to operate the software.
Especially on the web, less is more. There are millions of applications out there, and you are not going to make your mark with the application that does everything. The way you survive, and even thrive, is by making a great application that does one thing perfectly, and paying attention to how your users are using it.
The most valuable thing I have learned is that you cannot use agile methods by asking the user what he needs. Why? It’s very simple: the user doesn’t know what he really needs. The user DOES know what he has seen elsewhere, and will always ask for those sort of features. But what they really need is not those features, but it may be a completely different feature that does a better job than the one he thought of.
The way to go about that is not asking your users what they need, it’s to listen to their complaints, consider what everybody is saying, and find a way that solves it creatively and in a better way than they are asking. If people are asking for timestamps down to the microsecond, why are they asking for that? Well, in the end it may be just to uniquely identify each record to point it out to others. Yet this same problem can be solved in less code with simply adding an anchor to each post and providing a hyperlink generator. Or perhaps you can “tag” a record a certain way, and let people look for the tags. Or maybe clicking a record highlights it, which not only saves your favorites, but also could provide a way to see what you deem as important.
Obviously it doesn’t stop there. In web software, we have to figure out a way to keep feature creep out. The best way I know of is to just say no. Develop a list of boundaries for your software, and adhere to them. Define what your software will and won’t do at time of release, and only deviate in extreme cases or when you think the product will actually benefit. Users eventually dictate the course of a product, but in the end the developer is the artist. As a musician, do I make music for other people, or myself? Only the former if I’m a sellout. I can make a lot of profit and have a gargantuan behemoth of a Web 2.0 taggable application that really just sucks the life out of me. And where is the programming joy in that?! Give me something I love to work on any day over an application that fills every need a user might or might not have. In the end, my ability to fix the application is more important than the trends and whims of my users.
Posted in Thoughts, Programming | 1 comment | no trackbacks
Posted by David Harris
Thu, 05 Jan 2006 18:57:00 GMT
So, yesterday I buy the coolest thing EVER. It’s a Beta Book. For those not familiar with software lingo, “beta” is a prerelease stage where you have people who will be customers or users actually use the software and comment on where it is, so changes can be made to customize it to the people who want it.
Now, I’m learning all about AJAX, which is the ability to basically run an application on the web without having to keep loading new pages. Think GMail or Google Maps, or I think even Yahoo Mail has some AJAX features. Basically just sweet to use. And pretty much all my web application business ideas are based on the concepts AJAX gives me. Except, I’ve kinda been absent from the web world over the past year and haven’t stayed up on things.
So, I went to buy a book from people I trust, the Pragmatic Programmers. They tend to follow the same software development mantra as myself; Less Software, Customer Driven, etc. And I knew they had a book Pragmatic AJAX. Only I did not know it was a Beta Book.
The beta book is basically the concept of instead of waiting to have it printed, you get an electronic copy of the book (PDF format) for a few less bucks in its current condition. You submit “errata” (i.e. typos, incorrect information, potential hazards, etc.) for each page. When new versions are released, you get free upgrades. When the final book is released, you get the final copy and any future upgrades to it, and you have the option of paying a few extra bucks for a paper version. Some companies even give the paper version for free to people who have contributed to finding errors. The main benefit is that you get information right away, and you can stay current to technology, especially important in today’s world. And usually, you get it for cheaper because they know you will contribute too. A better book is published, with little editing needs before publication.
Now, I expand this idea to everything. Art, movies, music, novels, poems, software, anything a person wishes. What if there were a central place to contain people’s personal projects? If they allowed a Beta version of a movie they were creating? Or a video game? And that place would allow other people to not just comment on it, but would have the ability to actually edit it and make changes, kinda a collaboration place.
I just bought the domains ourbeta.com and mybetaproject.com for just this purpose. This is probably at the top of my business ideas list, and one that can make decent money. Instead of charging users for using the site, I simply take a percentage of whatever they make by selling their beta projects from the site. An EXCELLENT way for an entrepreneur to start a portfolio or business, and a way for me to get a cut of it. :)
no comments | no trackbacks
Posted by David Harris
Tue, 13 Dec 2005 18:56:30 GMT
This will be the first of several project introductions, in an attempt to have a foundation for each thing in writing.
Novelpad is a project I thought of about 2 years ago, and bought the domain www.novelpad.com. Originally, the plan was to create a program in C#.NET that sorted a novel into arbitrary sections (such as Parts, Chapters, Sections, or Acts, Sections, etc.) such that it could be used for any project type, a novel, screenplay, etc. However, the more I designed how it would look and function, the more complex it became. At that point in my life, I became enthralled by the Less Software mantra and scratched the whole complex idea, which had about 2000 lines of code already written just for basic stuff.
Enter my love for Ruby on Rails, the platform I’ve discussed here and there. The answer was not to figure out a way to release software that could be bought, but to provide a monthly service at free and paid levels. Instead of figuring out how to get a bunch of large one-time payments, I merely needed a way to provide a software that so helped a novelist’s work that he would be willing to pay a few bucks per month or quarter. This would not only be cheaper on the end-user by allowing me to work on updates and improvements, but it would be a much more budgetable way for me to sustain some sort of income from the project.
So, now the idea has changed. The basic concept is simple. The interface will look like Word, only with basic formatting tools, things you would see in novels. On the left side will be a treeview of blocks that can be arranged as desired, each given a name and a description. These blocks can be moved in and out, such that a chapter becomes a Part, a Section becomes a Chapter, etc. Each block, when moved, will rearrange the final output of the novel. When clicked, the block will open up the text on the right side, where it can be edited and formatted.
That allows for the data of the novel, how it is arranged and what it contains. Next, I will provide a complete formatting section for describing how the hierarchy of the blocks of text will correspond to the final look of the novel. For example, some books have a little ” . . .” separating the sections. Or perhaps they have a funky design surrounding each chapter number. The formatting section will describe how this should be done. Also, it will allow for chapters having names displayed or not, should the chapter number be on its own page, etc.
Finally comes the publishing section. This takes your novel, combines it with the formatting, and exports a full PDF or Word file of your novel, ready for printing, each stamped with your copyright details. It auto-generates a table of contents and/or an index, and will even provide the writer statistics about word usage (i.e. “you used the word ‘exclaimed’ 2236 times” such that he can make edits right away. It will also be able to automatically generate an outline from the block arrangements and description.
Basically, this tool will solve the problem many people have with actually producing their own novel. Microsoft Word sometimes makes things so difficult that people get caught figuring out how to format something, and it steals time they could be writing.
Additional features not yet planned initially would be character databases to store your characters and their information, timeline managers to help preplan a novel and auto-generate the blocks needed, research help such as a thesaurus and atlas and stuff like that, etc.
So there explaines Novelpad, probably one of the middle priority items to develop.
Posted in Programming | 1 comment | no trackbacks
Posted by David Harris
Mon, 05 Dec 2005 23:12:00 GMT
So bear with me as I get this baby back up and running. After toying with numerous blogging software like WordPress and TextPattern and Blogger and just about everything, I found one that stood above the crowd, plus it has a shorter name. Typo. This thing is sweet; I can update my blog without opening a web browser, and it’s created in Ruby on Rails. Not to mention it has several nice little toys you see on the side, where you can see some lists of 43things and 43places, and my new flikr account when I get it running.
So beware, FrictionlessFloor.com is back and better than ever.
Posted in Random | 1 comment | no trackbacks