My profile's first blog post
Clearly Michael and I will be using the main RailsSpace blog for our blog entries.
Way back in 1994 some friends and I in the Graduate Aeronautical Laboratories at Caltech discovered that we had a department webserver that would serve our own content at /~user_name/ URLs. We started out competing with each other for hits and instead of personal sites we put up content about our favorite musicians and airplanes. One of us was the teaching assistant for the lab and had control of the ~ta account. We re-christened the initials to stand for "The Asylum" and instead of competing, we pooled our resources to build a "crazy" place on the web where anyone could log on and contribute content. Some of the apps we created were a public bookmarks repository (precursor to del.icio.us), a public writing forum (precursor to wikis), and a web based Lite-Brite emulator and gallery (sort of a primitive, single-celled ancestor to Flickr!).
We gained a lot of attention for these sites and soon film studios and record companies were calling the lab tracking us down to hire us to build dynamic websites for them. It was certainly awkward to get phone calls from Universal Pictures while your Ph.D. thesis advisor was in the lab so we started a business and opened an office with a phone number of its very own.
We spent a few years building custom websites in Perl/CGI while getting our degrees (which we all managed to do, take that you Yahoo! millionaire Stanford dropouts!). Slowly the stress of building websites from scratch in Perl wore us out and the company disbanded. I looked back at the websites and realized that many of them were very similar, so I began offering standard web components to my clients. Meanwhile, Philip Greenspun was running Photo.net and getting many requests from people wanting the code the site ran on. Philip assembled his friends to beef up the Photo.net code and together we founded ArsDigita and open-sourced our code as ACS (ArsDigita Community System), comprised of standard web components and written mostly in Tcl. We used ACS to get exposure amongst poor developers, which led us to be found by rich companies who wanted customizations to the toolkit. Unfortunately, venture capitalists also eyed ArsDigita and once we accepted their money they also had influence; you can read about what happened after that on fuckedcompany.com.
Even with ArsDigita gone from the landscape, the toolkit lived on as "OpenACS" at openacs.org. But, as an independent contractor, could I really convince my clients that a toolkit started by a defunct company was definitely a long term solution? Also, I was pretty sick and tired of programming in Tcl, so I turned to the prettiest language I knew—Python. That pretty much meant using Zope, and at first Zope was awesome. Indeed, there are still some applications for which Zope is a great choice. But Zope has many annoyances as well, and my clients yearned for standard version control, file system access, and better relational database access.
One of my (favorite) ex-employees was now working for Caltech and one day sent me an email about some emerging frameworks she was considering instead of Zope for the next project. Django and Ruby on Rails were on her list, and after a few hours of research I knew Zope was history. Initially I leaned towards Django because it was in Python, but Ruby on Rails was a bit further along, and it had one thing that Django will never have—David Heinemeier Hansson, the creator of Rails. From my experience with ArsDigita and Philip Greenspun I knew the importance of having a compelling, intelligent, and opinionated central figure representing the framework. David, back then, and through at least the time of this writing, has prescribed the philosophy of what Rails is and what it is not.
While DHH is its "creator", Rails clearly is the product of the evolution of web application development. Here's what struck me about Rails:
Web application development always requires some mastery of many fields. You're going to have to know at least a little about templating languages, database access, and procedural programming. But, there's no denying it takes energy to constantly switch back and forth between languages, especially when languages mix within one file. Rails minimizes this—templating language: Ruby, database access: Ruby (mostly), procedural programming: Ruby (duh).
The old way I started a project was to brainstorm everything that might be needed and write a data model in SQL that would hold the final state of the data. Then I would have to write the code to populate the database tables and write the error detection to prevent bad data from going into the database. With Rails migrations, I can now incrementally augment the data model, and with validations I write rules that almost automatically show up in my web application as error reports. Also, migrations are database agnostic, so I don't have to write a new SQL file for the various available databases.
Oh, and there are many more things I have learned about Rails that I love, but frankly, you don't need a long list of great things about Rails to know it's for you. In fact, if you need a long list, then maybe you're not convinced. It's like when I bought my 2001 Nissan Frontier truck: it could carry my dog, it was fast, and it looks like a spaceship—sold!
With Ruby on Rails I can offer a client a site that is completely customized for their needs while still being fun for me to program in. Everyone is happy!
1 blog post
My profile's first blog post
Clearly Michael and I will be using the main RailsSpace blog for our blog entries.
Very engaging career! You basically were pioneer to many existing social networks ...
Hey Aure, I think your work is great. You and Mike have disrupted the websphere in a positive way. Now only people with content can have social networking sites that tick! Thank you!
Just finished the book -- playing around with the source code now.
Thanks, and keep up the good work!
Vitor, thanks, I like to disrupt whatever I can :) and Andrew, congratulations on finishing up the book - no small task!
Hi Aure, enjoying the book, and it's a big help in jump starting my Rails mojo. Thanks! Been back to Albany lately?
Thanks Jon, no I haven't been to Albany/Troy/RPI for a while.
Great stuff guys, with your help I can finally take my idea to new level! :)
hi aurelius, when are you going to put online the zipped version of the book source code in an easy to deploy package? should not be that difficult is it?
There seems to be a bit of a logic error in the age calculation method in the spec model.
As it stands in the book the following example fails...
code.
example.
Here, because the test on the day being greater fails, the code moves onto the routine for calculating a birthday that has not yet come around this year despite the fact that it has.
Replacing the if/else block with the following seems to work:
Thanks to Jeff Rafters blog here for the above code, further explanation is available there along with some other examples.
ha --
i'm searching for "love" in the directory.
you come up second, maybe alphabetically.
i'll go check.
i like this place.
but where are all the females?
I think you are related to Veanna.
Tell me ur not.
Hey Aure, what's up
I keep searching for things like "love" and "being" and "passion" --- you're coming up roses!
I should put Crazy Asylum on my profile, too, in case anyone is looking for someone besides you, in this regard.
~~Summer is ready, when you are~~
-Kim Deal
Sux! I worked hard to work "Loved" into my profile, and still only you and Mike show up in the community search for "love". Hm.
I'm trying to make a change to the double blind email. what would it take to have users msg each other but keeping msg. within the system using a database to store sent and received msg. Am I crazy or is this doable?
Hello, I wold like to know the same thing...can you please pass along an answer if you get one.
Thanks
Let me know when yr free time comes around next year --- so I can pester you. By that time I may have contract work with nolej.net doing nifty string manip's, and I'm feeling much better now that I'm a sysadmin at the local hospital. I actually have interesting ideation, when I'm on earth.
I like the book. It's a well thought out experience for a Rails learner. I like the way you guys introduced some subtle things in a very natural way.
I'm also posting this so I can see whether I'm authorized to delete it when I'm not the blog owner.
anyone know what IE7 moves the new comment field over to the right of the page and not inside of the new comment section like with firefox?
Lovin' the book! RailsSpace is going to be the engine for TeensOnLinux.org. :)
Nice, very nice...
Hey How are you?
I really like this book!
I hope I can do a social network like that with this book! =D
Congrat...
Hey Aure, you look really hot =)
I noticed something missing in the book resources section, the code for _friends.rhtml (listing 14.13) is not there. Could you guyz put it up please? Thanks a lot.