The Challenge of Legitimately Giving Away an iPod

So, I did a talk at a Flex event in Vancouver that Adobe put on a couple weeks ago, and Scott and I decided to do a survey to get information about how we should price our upcoming workshops.  Instead of asking people what they wanted to pay, we decided to do a contest asking people what they thought the average answer would be.  The winner would get a 16 GB iPod Touch.  If we got real data from a room full of our potential target audience, this would be the best $300 we could possibly spend..

So, we handed out surveys, I did my talk, and everything went really well.  Except, however, that I was left having to email someone to tell them that they had won an iPod Touch.  Can you say spam filter?  Oops.

Anyway, I wrote something that I was hopeful would not get spam-filtered.  No response.  So, I waited a few days and replied to it.  This made it through.

So, congratulations to Arnold Chang, who submitted the best guesses!

And if I’m going to give away an iPod, I at least need to do a cheesy marketing photo.  So, hooray for Photo Booth:

arnold2

The workshop schedule and pricing will be announced soon, by the way.  Thanks to everyone who responded…

Scott’s “S3 on Rails” BoF Talk from RailsConf 2009

Hi,

Scott’s S3 on Rails BoF talk from RailsConf 2009 is here.  (You can download the PDF from that page, or click the “download” button to download the PDF, Keynote, etc.)  Yay GitHub!

Cheers,
Peter

Sopobo: Author Signup is Coming Soon

So, Sopobo is currently just selling Scott’s book on Amazon S3. I am going to be launching a book on RestfulX (that Dima Berastau is co-authoring) on Sopobo soon. Shortly afterward, we will open up Sopobo to authors whose names aren’t Scott Patten and Peter Armstrong!

This isn’t a “launch” in the “company launch” sense; we’re trying to do the Sopobo product in the grand “Lean Startup” tradition of Eric Ries and Steve Blank. However, since we’re going to be having other authors publishing their books on Sopobo, we need to do a “product launch”. Scott is sitting beside me telling me I can’t call this post “Sopobo: The Product Launch is Coming Soon” since people will just read the title and say we’re launching. No, we’re not! But soon you’ll be able to buy other books on Sopobo…

If you want to self-publish a book on Sopobo when Author Signup is available, please email either peter@ruboss.com or scott@ruboss.com and we’ll email you when it’s ready. (Our guess is “sometime in May”.)

RestfulX RailsConf 2009 BoF Presentation: Demo Steps

Note: This is based on this example, which is based on an example that Dima and I built together. Both of us use this example everywhere, and the original origin of the data model is my Flexible Rails book. (No, Flexible Rails doesn’t cover RestfulX; what I mean is that this model.yml is creating an app that strongly resembles the example app in Flexible Rails.)

0. If you have run this before, delete a pomodo.db database from home directory.

1. Create the Rails app, install RestfulX and create the Flex project:

$ sudo gem install restfulx
$ rails -d mysql pomodo
$ cd pomodo

2. Edit config/environment.rb and add:

config.gem "restfulx"

3. Run rx_config with the distributed option:

$ ./script/generate rx_config --distributed

4. Create your data model:
$ emacs db/model.yml

project:
- name: string
- notes: text
- start_date: date
- end_date: date
- completed: boolean
- belongs_to: [user]
- has_many: [tasks]

location:
- name: string
- notes: text
- belongs_to: [user]
- has_many: [tasks]

task:
- name: string
- notes: text
- start_time: datetime
- end_time: datetime
- completed: boolean
- next_action: boolean
- belongs_to: [project, location, user]

note:
- content: text
- belongs_to: [user]

user:
- login: string
- first_name: string
- last_name: string
- email: string
- has_many: [tasks, projects, locations]
- has_one: [note]

5. Generate the app, recreate the database and run your server:
$ ./script/generate rx_yaml_scaffold
$ rake db:refresh
$ ./script/server

6. Import the project into Flex Builder, compile the Flex code and go to http://localhost:3000.

7. Convert the app to AIR:
a) Stop your server.
b) Delete the project in Flex Builder.  (Don’t delete contents.)
c) ./script/generate rx_config -a –distributed
d) Import the pomodo project into Flex Builder again.
e) [WORKAROUND] Fix the routes, which got hosed by rx_config -a –distributed:

map.resources :locations
map.resources :notes
map.resources :tasks
map.resources :projects
map.resources :users

8. Test online/offline:
a) Start your server.
b) Rebuild and run the AIR app.  Note that it’s empty.
c) Start your server.  Note that online detection works.  Do a pull.
d) Create tasks, projects, etc.
e) Do a push.

RestfulX Presentation at RailsConf 2009 BoF

I’m presenting about RestfulX at a BoF at RailsConf tonight (Wednesday, May 6) at 8 PM.

For those not there, these are my RailsConf 2009 slides.  These show a very high level picture of RestfulX, its history, and how it relates to Ruboss.  Most of the presentation will be a walkthrough of the generated RestfulX code and an open discussion.

If you are doing a RestfulX presentation anywhere, I have also prepared a generic version of these slides without the Ruboss history part.  This is available in both PDF format (restfulx_may2009_generic) and a zip file of the Keynote format (restfulx_may2009_generickey).

Cheers,
Peter

Ruboss 2.0

Ruboss has changed a lot in the last year.  For starters, what was once the “Ruboss Framework” (and available under a dual GPL + Commercial license) is now the RestfulX Framework (and available under the MIT license).

So, rather than have a bunch of outdated information confusing Google, it’s time to wipe the slate–or at least the company blog–clean.

At Ruboss, we’re more committed than ever to delivering great software for clients.  Quite often this will involve using the RestfulX framework, but we’re committed to using the right technology for the client’s environment.  (We’re not in the framework licensing business anymore, so we can be neutral here.)

We’re also working on some products of our own, in our copious amounts of free time.  More about that soon…