RailsConf 2008 David Heinemeier Hansson's Keynote Video 7
RailsConf 2008 David Heinemeier Hansson Keynote on Vimeo.
Part of dhh’s message was to spread the message…so I assume I should be fine to publishing these extracts from David’s keynote. I was sitting at the back of the room and took some videos snapshot. I didn’t film all the talk as I didn’t have a tripod, but this will give you a nice overview of the what was going on during the talk…Rails is pretty big, there where lots of people there…and David was going beyond technology and telling the attendance that all Rails developers should seize the opportunity Rails create to improve themselves and not only from a technical point of view. Check it out.
Warning: I didn’t edit the video and didn’t have a tripod so it’s quite ruff and shaky. Also oreilly is going to publish an high quality official one.
Update: video was gone…seems to be back now.
RailsConf tutorial and source code open sourced
Thanks to everyone that attended the Powering AIR with Rails talk. That was really cool. I didn’t realize how hard it is to give such talks, but hey…party time now. It’s fun to give a presentation the first day at a conference, we can now enjoy the rest of the conference.
You can find the slides and the source code at:
http://github.com/danielwanja/railsconf2008
We presented the following 10 AIR applications:
01_AIRBrowser mx:HTML dougmccune CoverFlowContainer 02_HelloBlog ActionScript/Javascript Brige Drag Drop API 03_WebSnippet javascript injection using HTMLComponent File Sprite/drawing API Window API Bitmap manipulation 04_HTMLFileBrowser File System Access AIRAliases.js 05_OfflineCampfire Windowing API flash.desktop.NativeApplication DockIcon SharedObject 06_S3Browser flash.filesystem.File.upload HTTPService + REST (list, create, delete) attachment_fu (S3) 07_SQLExample sql lite from AIR 08_PhotoBooth flash.media.Camera flash.media.Video flash.net.URLLoader attachment_fu (file) 09_TwitterSpider Charting API DataGrid/Filtering 10_TwitterFriends com.adobe.flex.extras.controls.springgraph twitter4r
Enjoy,
Daniel and Tony!
RailsConf 2008 is started.
RailsConf this year has a pre-conference tutorials days which was optional and it’s starting now. However attendance seems already pretty big and there was a quite long queue to the registrations desks. I am now at Denny’s for my breakfast and will skip the first tutorial and meet with Tony to apply the finishing touch to our talk. We have a lot of code to present, I hope we can cover all the details in the 3.5 hours we have. We will publish the slides and the source code of the 10 apps we are going to present, so if you didn’t make it to RailsConf or our talk you still can get a glimpse at what we are presenting. The slides will have code extracts, but during the talk we will not use them as we will run and show the apps, so there is still good value if you attend the talk :-). See you there!
Enjoy, Daniel.
Powering AIR Applications with Rails - RailsConf tutorial preview. 1
Last night I gave a 2 1/2 hour tutorial preview at Derailed (Denver’s Ruby On Rails User Group) of the talk Tony and myself will be giving at RailsConf next week. This allowed me to understand if we have enough material and what needs to be changed for the different sections we are going to present. I guess we have too much material as I wasn’t able to present some of the apps I have created for the presentation. Attendance was pretty low, about 15 people, but the feedback was excellent and it seems they have appreciated the talk. For the talk we will be showing how to code many of the features and ways in which using AIR can enhance your Rails application. Lot’s of code in the second part. We will cover the different APIs AIR provides such a File system access, Native Drag&Drop, Native Windowing, Dock Notification, Sending binary files to S3 via attachment_fu, taking photos from your webcam and sending them directly to your Rails app (attachment_fu again!), how to manipulate the HTML DOM, and of course a couple of twitter related apps, one using twitter4r and the other spidering twitter.com (I hope I am not the guy who is bringing it down)...and much more. If you intend to attend drop us a line. See you there!
Daniel.
My RailsConf Schedule
Railsconf now has an iCal version of the schedule. if you are logged in you can even select individual sessions and you will then have your personal schedule available in iCal format. I know..I know…it’s a little early, but hey, I wanted to see what’s talks they have, and there is really a bunch of goods ones. Here is my selection so far

Interview with the owner of MunchAway: an online food ordering application build with Ruby On Rails. 1
Interview with the owner of MunchAway: an online food ordering application build with Ruby On Rails.

I was working at the end of last year and the beginning of this year part time on a cool Ruby on Rails project. I recently contacted the owner of the project and asked him if I could interview him to share his thoughts on different aspects on the project in an interview to be posted on my blog. He shared openly his views on Ruby on Rails, on using a mix of consultants and employes, and on the project in general. I think you find will his answers informative.
Rob, the owner of lt2sys.com had a vision to make an online food ordering platform that can easily add online food ordering to Restaurants that already use an existing point of sale (basically the touch screens when you order your food at the restaurant). So Rob put together a team of consultants, employees and offshore Rails developers and created the application which has a front-end online ordering, a back-end system to configure new stores, and communication system that interacts with the point of sales. The development of the initial phase took several month and the system is now live serving many restaurants.
Interview with the Rob, the owner of lt2sys
Question: What made you choose Ruby on Rails to develop your solution?
Rob: I made a strategic decision to use what I perceived to be the best available web development technology available. This was difficult for me because by using Ruby on Rails, I was choosing a technology that I had no personal experience in using. I read many blogs and product reviews, and discussed this with my internal staff.
Question: Did you consider other technologies like .Net, Java, Php, Phyton?
Rob: Beside Ruby, the only other product that I considered besides Rails was .Net. We have a lot of .NET expertise inhouse, and I had some Java JSP experience. We had one developer in house with Ruby on Rails expertise.. I didn’t really consider Java because I wanted to use something that my internal team would be willing to use. That came down to Ruby or .NET We debated this for quite a while. I ultimately decided on Ruby because of my longterm frustrations of using Microsoft development products. Every new version of .NET requires more and more resources, the development tools take longer to use, and it seems that Microsoft is constantly changing the languages or key features that you come to rely on.
Question: Where do you see the strong/weak points of Rails?
Rob: My in-house developers and I have had a hard time adapting to development with Rails. This was a key goal of the project – to develop additional inhouse expertise in Rails. I was unable to find sufficient time, and one of my senior .Net developers grew frustrated with Rails and stopped developing with it (however he learned Ruby and continues to contribute with that expertise). On the plus side, for those that understand the Ruby on Rails framework, they do seem to develop new features quickly.
Question: Would you Rails for another project?
Rob: From a technology viewpoint, the answer is Yes, but from a business viewpoint I haven’t made a decision on that yet.
Question: What do you think of developing and running Rails applications for so many customers?
Rob: I took a big risk in utilizing Rails to develop this application. So far it’s working, but the actual performance of the application is just barely acceptable. We need to optimize the application for further expansion.
Question: You used a mix of consultants, employees and offshore resources for this project, can you elaborate on this choice?
Rob: After I had completed the project’s high level design specifications (40+ pages) and a detailed data model in a “platform neutral” fashion, I was in a position to determine how I wanted to develop the project. I knew that due to internal resource constraints that outsourcing was the only real alternative to getting the project done in a timely manner. So I approached the problem of finding outside resources and making a final choice between using Ruby on Rails or .NET more or less simultaneously. Cost was an issue; but also what concerned me was that since I was not providing an extremely detailed design and I didn’t have the right system architecture experience to personally architect an enterprise web application using either Rails or .NET, I wanted the initial developers to be very senior and highly experienced developers who could look at the big picture of systems design and put something together that would support a large number of simultaneous users. I also needed to transfer a lot of domain knowledge to them, so I decided that going offshore for the initial phase of development would entail a tremendous amount of brain damage at best and a highly risky proposition in any case. So I decided that finding the right developers to initially build the system the right way was in our best interest.
Question: How did you ensure proper workflow between the different teams?
Rob: The application has a consumer front end, an administrative console, and a communications component with the restaurant.. I put my Ruby on Rails experts on design of the Front End application, my internal Ruby on Rails expert on the Administrative console, and a 2nd internal resource on the communications component. As I had spec’d out the communications component in great detail this was easier to manager. My ruby on rails experts that were working on the consumer application reviewed the data model and reworked it to make it work better with ruby. I acted as project manager and worked to explain the domain knowledge to all parties and resolve design issues as they occurred. It was a very hands on approach.
Question: Did you have difficulties finding Rails consultants?
Rob: I did. There didn’t seem to be much of a pool locally. Because I needed to transfer a lot of domain knowledge I wanted to find people locally that could come into the office and work. I was able to find 2 very key people to do the Ruby on Rails development, but struggled to find a graphics designer that had experience with Ruby on Rails and Liquid. It seemed to be a very small community of people that actually knew how to work with the technology.
Question: How did you select an offshore service provider?
Rob: I did a number of web searches to find companies offshore that claimed to have experience. I emailed each and began a dialogue with the ones that responded. I had several conversations with each company. Some I dropped off the list because I frankly couldn’t understand what there were saying! Another company I dropped off because I had a conversation with their lead technology guy and he started dissing the technology choices and suggested they could do better. It seemed like a classic case of NIH. The problem with that was I was looking for a company to take over the project and do new development, not rewrite the product! I ultimately got down to two companies, both of which seemed acceptable. I choose one and gave them a project that I felt was low risk to start with. Even if they failed completely the product would not be in jeopardy. Fortunately they did a good job and over time have made several enhancements to the product.
Question: You choose a hosted environment, did you consider using your own servers?
Rob: No. That would require additional investment in IT management resources that frankly we don’t have.
Question: What do you think of Engineyard?
Rob: Engine Yard has been a great choice for us because they have acted as the IT department for MunchAway. It’s great that almost every time I call them a real person that knows something answers the phone!
Question: Did the project work as expect?
Rob: Performance is an issue for us. This is really the only issue, and I expect that we will be able to resolve it over time.
Question: Did you encounter issues?
Rob: The issue that we ran into was that we expected to provide an application that would be easily maintainable the graphics designers by our users. This has not been the case, in fact, we have had to retain a graphics designer with Ruby on Rails and Liquid expertise to help us in this area.
Question: What’s planned next for the application?
Rob: The consumer side of the application needs to be extended so that it can be easily used on IPhone and Blackberry devices.
Question: Is this you first online food ordering application you developed?
Rob: Not directly. We originally developed a middleware application that provides the ability for web developers to interface with Restaurant Point of Sale. This is in use with several different online ordering companies for several years. MunchAway connects to that middleware and provides the full online ordering solution for restaurants.
Question: What differentiates your platform from your competitors?
Rob: Technically, because our middleware application extracts the restaurant’s menu from the point of sale system, we can construct a customer’s web ordering system quickly and maintain it very easily. Also, many online ordering solutions do not integrate with the point of sale system at all; they use a fax machine or email as the delivery mechanism for the order. From a business standpoint we are unique in that we market the product through a well established point of sale dealer network which understands the restaurant customer base and this is a real value add.
Question: Why do you offer a subscription based solution rather than providing one off solutions for you customers?
Rob: SAAS makes sense for our customers as we offer the hosting service as well as ongoing product improvement to our entire customer base.
Question: How restaurants (locations) are now served with your platform?
Rob: At each restaurant we install our middleware application which acts as the conduit between the MunchAway website and the Restaurant Point of Sale System. The middleware extracts menus (which incorporates the business rules of ordering each item on the the POS)_and posts them to the MunchAway website; it also accepts orders from the website and posts them on the restaurant point of sale system. This is a major plus for the restaurant as this eliminates all the labor involved in reentering the order and insures no mistakes are made in the process.
Question: How quickly can you add a new customer/new locations?
Rob: 4 man hours to add the customer’s first location, which includes installing the software at the restaurant POS and applying the customer’s graphic look and feel to the MunchAway website. Locations 2 thru X take 1 hour each to setup.
Question: Can a customer change the look and feel of your solutions?
Rob: No. This was an original goal of the project, but this has not yet been achieved. We rely on a graphic designer with ruby on rails and liquid experience to make customer customizations as needed.
Just signed up for Advanced Rails Studio 1
It’s in Denver on June 12 to 14. And from May 29th to June 1st I’ll be at RailsConf. Wouhao…Not sure when I will do customer work, but it’s gonna be a fun couple of month ahead. I haven’t been at a Rails studio before, but have been at the The Rails Edge Conference and it was a pretty awesome and intense conference, so I expect a lot from the Rails Studio. I’ll keep you informed. Of course before that there will be RailsConf 2008, last year I thought it was getting too big for a conference, but it was still really fun to geek out there. So let’s get ready!!! Let me know if you attend one or the other of these conferences/trainning.
Color Syntax copying for TextMate 1
Just in time for preparing our RailsConf talk I found out how to copy text with color syntax from TextMate. Simply Ctrl+Alt+Cmd+R in TextMate and paste in Keynote. Of course you need the copy-as-rtf-tmbundle from Max Muermann. I was using XCode for that before, but the keyword detection was different that Textmate’s which I prefer.
To install:cd ~/Library/Application\ Support/TextMate/Bundles
git clone git://github.com/drnic/copy-as-rtf-tmbundle.git "Copy as RTF.tmbundle"DrNic put the bundle on github.
Flash Media Server(s) in Ruby? 3
While preparing an application to be presented during our talk for RailsConf I was looking for a “Flash Media Server” written in Ruby that could record video form a Flash Player. I found rubyizumi but it doesn’t support recording (to my understanding). In Javaland they are a couple, red5 and demou, but they are too convoluted for just a demo. Red5 allows Ruby scripting which is pretty cool. I found one which I really like and will certainly use which is named haxe Video which is written in haXe and is very succinct and works. It’s open source and can be found on googlecode. Of course there is Adobe’s Flash Media Server but I would prefer finding a Ruby specific solution. Do you know any Flash Media Server written in Ruby? Drop me a line or a comment.
Don't use networksolutions.com for you domain name searches... 8
I frequently get “great” ideas and reserve some domain names. Call me silly, but this makes the ideas more tangible even if I never work on them. I book my domain names through 1and1.com, for about $7 a year, but I do usually the search on netsol.com . So I searched for some names this morning, then decided to abandon, my idea didn’t need a separate domain for now, and to my surprise I got the following dialog when leaving the site:

So what does that mean? Well, it seems if I click OK they will hide the names I searched for from others users who are doing searches for 4 days. So my recommendation: don’t use networksolutions.com for your search.
