Sure, HTTP status codes should be used. But they aren't enough to communicate application-specific messages from an app backend to an AJAX front-end. For example, AJAX on the browser might submit a form and the server returns a 422 (HTTP validation error status code). How will you be able to inform the user that the "email address must contain @" or "foobar is not an acceptable name"? You need to consume some JSON that has a payload of application-specific status messages.
I don't know if this proposal is optimal (smarter guys than me can decide that). But I know that a standard way of communicating application-specific errors would be a big step forward.
A year ago I searched for an adequate in-place editing plugin for Rails that didn't require major surgery to provide error messages to the user. I was surprised at the complexity required to handle a simple error condition. Usually Rails has all the goodness baked in but it seems application-specific status messages with JSON are out of scope. I asked "How to show server errors in Rails with JSON and jQuery" [1] on Stack Overflow and it's received more views than any other question I've ever asked.
I rebuilt a house in the SF Bay Area several years ago.
In-floor radiant heating is my absolute favorite feature. Nothing like it.
On-demand tankless hot water system. With two loops (one open, one closed) and a heat exchanger between the two, one on-demand system can serve your domestic hot water plus the in-floor heating.
Humidity switches in the bathrooms to kick on the exhaust fan when moisture builds up from the shower (an anti-mold measure).
I put in structured wiring for phone, Ethernet (CAT 6), and video. I feel really stupid now as the only video I watch is on the computer and I gave up my landline to go solely cellular. I still like the Ethernet jacks in every room but mostly because I can put my wireless router anywhere. Lesson learned: technology changes rapidly. My structured wiring box looks quaint instead of high-tech after only five years.
A solar tube (basically a round skylight with a thirty foot reflective tube) that brings natural light down to ground floor rooms. Very nice.
One piece of advice: Don't get started on house remodeling or construction if you're doing a startup or trying to run a business. It tends to demand far more time than you have. And it's true it can put a strain on relationships (for the same reason).
Think about the guys in any prison movie: Take time to plan your escape.
1) Instead of digging a hole with stolen spoons in the prison yard, learn to program. "Rails for Zombies" (the tutorial) or Michael Hartl's book can substitute for stolen spoons. Build a personal pet project or find a way to contribute to an open source project. It'll be more fun than digging a hole in the prison yard. And you'll develop a marketable skill that'll get you a job so you don't end up back in prison.
2) While you are developing programming skills, get yourself transferred to a different prison where you can make an easier escape. You can get into any community college in the Bay Area (Laney College in Oakland, for example). Or try SF State or CSU-Hayward. Going to college in the Bay Area will give you a base and you can make your escape to a startup from there.
3) Just like the guys who volunteer in the prison library to get in position for their great escape, once you're in the Bay Area and enrolled in a local college, volunteer for all the startup events and conferences (seems like you've already done that with the TechCrunch events). It'll be a lot easier to ask people about jobs or hookup with a cofounder if you can say you're already living here and have got some useful skills.
You're smart to recognize that you need to escape your current environment to move ahead in your life. Just make the change in a smart way. Or you'll be stuck in solitary confinement for a long time.
In the 1980s, I ran a monthly 24 page punk rock music magazine using this technology. By 1984, after I sold the business, desktop publishing was already pushing out "cold type". "Cold type" -- or phototypesetting -- was what we called the Compugraphic and Linotype machines that used photosensitive paper to image columns of type. As opposed to "hot type" -- the Linotype, Ludlow, and Monotype machines that poured molten lead into molds.
There was something seriously fun about the mechanics of publishing with cold type. It was a very satisfying physical process, involving all the senses: the smell of photoprocessing chemicals, the warmth of the wax machine, the glow of the light table, our art director humming while wearing his Walkman cassette player. And all the tools: xacto knives, rulers, sheets of rub-on borders and alignment crosshairs. Good layout required an aesthetic sense alloyed with a keen eye, mental concentration and fine motor skills. Maybe not so different from Photoshop now but there was an embodied, kinesthetic and sensual aspect that's gone missing.
We thought the combination of the $4000 128K Mac and $6000 Apple Laser Printer was an incredible and liberating technology. Now we barely remember that "desktop publishing" was an innovation. And now I realize I miss the physicality of cold type.
Of course, there were those who decried all that was lost in the transition from hot type to cold type. Famously, it was a desire to recreate the aesthetic qualities of hot type that spurred Donald Knuth to create TEX, the digital typesetting program.
The large ecosystem is one of the biggest benefits to Ruby/Rails development but, yes, it can be difficult to determine which third-party project is best supported or most popular. I'd have gotten lost long ago if it wasn't for Christoph Olszowka's "The Ruby Toolbox" site [1] with its grouping of projects by category and sorting by GitHub watchers, forks, and recent activity. Take a look if you don't know about it already.
Great to see a curated collection of resources about RESTful practices. Hosted on code.google.com... now if only Google would uniformly adopt REST for their own APIs. Google is still using SOAP for the AdWords API and I get hives every time I have to dive into it.
If you want to see how it's done in Ruby on Rails, here's an example app with authentication and user management and MongoDB for data. With a tutorial.
https://github.com/fortuity/rails3-mongoid-devise
I too use Toodledo, on the iPad and web. I have even used it collaboratively to track tasks with my virtual assistant. It's got complexity (you can organize tasks by folders, goals, priorities, status, and more) but if you're not overwhelmed with all the options, you can use it for simple list making. It feels very much like a personal effort by a single developer. It runs well though the interface is pretty much lists and boxes, not design art.
San Francisco is often described as the most cosmopolitan of American cities (excepting NYC). You may find it similar to European cities in terms of nightlife, cinema, cultural activities, and people's eclectic interests. Relative to Europe or Canada, there is little government support of arts or culture but that doesn't stop youth from innovating culture. So you'll find interesting people and interesting activities for entertainment.
San Francisco (and Berkeley/Oakland, across the Bay) are centers for culture and youth with adequate public transit and neighborhoods where rents are relatively cheap. The Peninsula and South Bay (the location of Silicon Valley companies) are suburban (wide expressways, shopping malls and office parks) and compare poorly to SF in terms of cultural activities but offer many opportunities for outdoor recreation. Californians tend to choose outdoor activities for recreation (running, biking, hiking, motorcycles) and late-night partying or club hopping often ends early for those who get up early for outdoor recreation.
Not many people surf (not as many as Southern California or our neighbor Santa Cruz but of course more than Europe!). It's an option if it's your dream. Surfing for some is an activity on a free weekend or an early morning before work (if the waves are good). For others, it is a lifestyle that leaves little time for career pursuits.
It's often said that Americans work longer hours and spend less time enjoying life than most Europeans (if enjoying life is defined as time spent with friends, eating food, drinking, or cultural pursuits). If you work in a startup company, that may be doubly true, as your peers will expect you to be focused on the tasks that will lead to success. You may find that a day at work in the Bay Area moving bits is not much different from the same in a European city. After work hours, you'll be tired but you'll likely find time to try a new restaurant or grab a beer with workmates or a roommate a few times a week. Among entrepreneurs, you will probably not have much free time on weekends and you should not expect holidays.
These are broad generalizations, of course, based on my own personal experience, so suitable only for stimulating thought and discussion. Your mileage may vary.