Posted 1 day back at Ruby Inside

(Photo credit: Kieran Huggins)
RubyFringe - described as a "pricey, limited-attendance smoozefest" by Ruby documentation co-ordinator James Britt or as "an avant-garde conference for developers that are excited about emerging technologies outside of the Ruby on Rails monoculture" by the organizers - went ahead last week and appears to have been a significant hit. A small conference with a reasonably high ticket price (though far less than RailsConf Europe!), RubyFringe was set to be a very unique sort of conference with parties, drinks and out-of-hours entertainment laid on, and a limited number of tickets made available to ensure a more intimate gathering. The gamble appears to have paid off.
Praise
I'm not quite sure exactly what went down (I had to pull out of attending) but all references I've seen have been almost over-the-top with excitement and praise:
Soleone says: "Rubyfringe was amazing! So many good talks and great people. Best talk: Giles' presentation on computer generated music. Laughed my ass off!"
Rob Sanheim says: "rubyfringe was a blast, and now i can't sleep."
Lennon Day-Reynolds says: "RubyFringe after-party unsurprisingly turned out to be awesome."
Josh Merchant described it as "an amazing - inspirational - creative- experience."
Heck, there are far too many positive mentions to read on Twitter.
Mark McGranaghan of TechCrunch wrote directly to Ruby Inside:
RubyFringe was a huge win. Unspace set out to raise the bar for software conferences, and I think that they succeed. I hope that RubyFringe does for web conferences what Rails did for web development; show others that there is a better way, that it does not require corporate sponsorship, and that it can fun, artistic, and productive all at the same time.
Content
There are over 1000 photos from the event on Flickr.
Joey deVilla has put together some handy notes for most of the presentations.
Rowan Hick has put together a list of his RubyFringe highlights.
InfoQ attended the event and, I am told, will be putting up videos of several presentations on their site soon. Until then, the content of the talks is summarized here.
The next RubyFringe?
With such success, it's inevitable another RubyFringe conference will take place within the next year. If you're interested, Pete Forde suggests joining the Google group, and keeping an eye on RubyFringe.com for more info (although it'll be here at Ruby Inside too). It remains to be seen if the success of RubyFringe will encourage "avant garde" conferences elsewhere in the world or for non Ruby communities generally, but Ruby Inside wants to hear about them if so.

Posted 1 day back at OnRails.org
Thanks to the Degrafa library I was able to add a “US Map of iPhone 3G” Availability in an hour to the hasiphone.com application.
Also I automated the extraction part of the data and check every hour if new data is there. I was assuming that the data changes only once a day and therefore all the delta (the + and – next to the availability) are based on previous day. This morning there were only four stores with iPhones, and hour ago 76 and now 78. So it seems that the data is updated more frequently or I have a bug in my extraction routing. Whatever the situation I am leaving on vacations for the next two weeks and won’t take my notebook with me, so hopefully the data is correct. My good friend Sol will keep an eye on the extraction process to see that we get some daily data. Thanks Sol, ya da man.
Enjoy!
Daniel.
is cool
Posted 1 day back at mir.aculo.us - Home
Prototype Core team member Andrew DuPont’s new book Practical Prototype and script.aculo.us is now available, and it’s a super no-nonsense guide to getting up to speed with the libraries, fast.
Andrew, being a UI developer by heart, doesn’t mess around and gives you hands-on examples for just about everything you can do with the “fraternal twins” Prototype and script.aculo.us.
You’ll learn how to really use all those fancy Prototype collection helpers (like each, detect, select, reject, partition, etc.), master the cool new custom events system, and seriously mess with the DOM; and how’ll see how Prototype can help you with everyday programming tasks with its extensions to functional programming and OOP. Plus of course how to make the most of Ajax and JSON. Last but not least, visual effects are explained, and also how they work by taking advantage of the DOM and how web browsers render websites.
The very interesting closing chapter shows you why things are as they are in Prototype, and will help you read the source code—and write JavaScript, Prototype-style.
Posted 2 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
Since attaining a peak of about 95% usage share during 2002 and 2003, Internet Explorer 6 (IE6) has been rapidly losing market share. As the end of 2008 approaches, significant online services, vendors and web frameworks are dropping support for IE6. Will this year be the end of IE6 and what does this signify for Web 2.0 developers? By Dionysios G. Synodinos
Posted 2 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
Eucalyptus is an open-source software infrastructure for implementing cloud computing. Among its features is interface compatibility with EC2 (both Web service and Query interfaces). By Scott Delap
Posted 2 days back at OnRails.org
The phones are going faster than they are coming, only one store in each of these states are listed as having one type of the models: Florida, New Hampshire, California and Michigan. So if you take into account that some store list phones that didn’t work out of the box as available, the Apples Stores may well be out of stock today.
Data from: Apple.com and visualized by hasiphone.com
Posted 2 days back at 赖洪礼的 blog
Last time I blogged about the state of Ruby on Rails documentation. Those of you who have been around long enough probably remember manuals.rubyonrails.org. Back in the days, this website was very useful. But today, it’s horribly outdated. The first manual is “Upgrading to Rails 1.0?. I don’t think I need to say more.
In fact, it was not too long ago when that website was linked from rubyonrails.org. It appears they removed the link because it’s so old. But why hasn’t that website been updated?
- It’s a database-backed web application. Only a few people have write access to the website so the general public cannot contribute.
- The content management system is horribly out of date and hasn’t had a release since 2006.
Which is a shame. Some of the manuals on that site are really good, if only they’re more up to date.
Ever since I found out that the Ruby on Rails documentation on testing is horribly out of date, I’ve felt this irresistible urge to write documentation. In truth, I had been secretly contributing more documentation. And it was not without result. I’ve been working on converting some of the manuals to Asciidoc format while updating their content at the same time. Asciidoc is the documentation formatting tool used by Git. You write documentation in plain text files, and Asciidoc can convert it for you to HTML, Docbook, PDF, Unix man pages, etc. By saving the manuals in plain text files, they can be put on the Ruby on Rails source repository, so that everybody can contribute. Asciidoc is great - the Phusion Passenger manual is also written in it.
Unfortunately Asciidoc’s default HTML output layout isn’t good enough, and Asciidoc doesn’t allow you to specify a different layout. So I’ve spent my entire Saturday hacking together a new documentation formatting tool, based on Asciidoc: Mizuho. Mizuho accepts Asciidoc input files, and generates nicely formatted HTML. Multi-page HTML output is also supported! Furthermore, the HTML layout can be customized with ERB templates.
How does the result look like? Here are some previews:
These have been generated by Mizuho with the “manualsonrails” template.
I’ve committed the new Asciidoc-formatted manuals to the docrails repository, so you are likely to see a revival of manuals.rubyonrails.org. You can find the manuals source files under railties/doc/guides/.
I’ve spent some time updating “A Guide to Testing Rails Applications”, but it’s likely still out of date. If anyone spots outdated information, please contribute a patch. Thanks. 
Posted 2 days back at Moves On Rails
Some of you probably have written and written tests for applications with activeresource. You might know that you can use httpmock to test applications. However, you cannot properly use parameters, only a path wich contains them in a fixed order. For example, if you want to use the parameters city and country, you have to define the following two entries:
"/visits/2008-01-15?country=Netherlands&City=Groenlo"
"/visits/2008-01-15?city=Groenlos&Country=Netherlands"
Of course, this is no use. A http mock should be able to respond to all parameters, regardless of the order.
So with the adapted http mock, you can just do this:
ActiveResource::HttpMock.respond_to do |mock|
mock.get '/visits/2008-01-15.xml?country=Netherlands&city=Groenlo'',
{}, "<visit><data>somecontent</content></weather>",
200, {}
end
Now write a test containing something like:
Visits.find("2008-01-15'" :params => {
:country => "Netherlands",
:city => "Groenlo").data.should == "somecontent"
And it'll work :).
Download the patch
Also, a request in httpmock defined the following function:
def == (other)
hash == other.hash
end
which is fixed as well.
Posted 2 days back at Too-biased - Home
I’m back from Rubyfringe which was hands down the best conference i’ve been to.
Pete Forde asked me to present on memcached (mem-cache-dee) after my popular blog article Secret to memcached. The talk covers different use cases such as simple html snippet stores to advanced expiry systems such as generational cache keys.
Every talk at rubyfringe was taped so I’ll update this space with the video once its online. In the meantime enjoy the slides which probably make zero sense on their own.
Download the PDF or watch it on slideshare:
Rubyfringe<object height="355" width="425"><param /><param /><param /><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rubyfringe-1216650794678661-8" height="355" width="425"></embed></object>
P.S: 30 minute is the ideal length for talks at a Tech Conference.

Posted 2 days back at Railscasts
If you have a lot of logic associated with the data inside a session, you'll need some central location to put this logic. See how to create a session based model in this episode.
Posted 2 days back at Segment7
RDoc is an application that produces documentation for one or more Ruby
source files. RDoc includes the `rdoc` and `ri` tools for generating and
displaying online documentation.
At this point in time, RDoc 2.x is a work in progress and may incur further
API changes beyond what has been made to the RDoc 1.0.1. Command-line tools
are largely unaffected, but internal APIs may shift rapidly.
- 3 Major Enhancements:
- RDoc now knows about meta-programmed methods, see RDoc::Parser::Ruby
- Reorganized parsers under RDoc::Parser base class
- ri now walks the ancestors of a class looking for a method e.g. ri
File#read displays documentation for IO#read (may require regeneration of
ri data)
- 5 Minor Enhancements:
- Allow links to files
- Default options now taken from RDOCOPT environment variable
- Class method documentation can be found at toplevel now (def X.foo)
- Allow HTML templates distributed as gems to be loaded with the -T option,
just like the standard templates in rdoc/generator/html (so an HTML
template lib/new_template.rb in a gem can be used with rdoc -T
new_template)
- `rdoc -v` prints out files, classes, modules and methods as it goes
- 11 Bug Fixes:
- `ri Foo.bar` now looks for class methods also
- Sections work in the default template again
- Doesn’t warn about :foo:: list item being an unrecognized directive
- RDoc no longer converts characters inside tt tags
- Fixed “unitialized constant RDoc::Markup::ToHtml::HTML”
- Fixed generation of relative links
- Fixed various diagram generation issues
- Fixed templates broken by switch to erb
- Fixed issue with <!
- -> style comments
- Lowercase words are no longer rdoc’d as methods without leading #, as
described in the documentation
- RDoc now correctly sets superclasses if they were originally unknown
Posted 2 days back at work.rowanhick.com
My new home town (not just the place I live, but now HOMEtown) rocks. The unspace crew did a freaking amazing job on RubyFringe. Joey has a huge list of notes on his blog if you want some nitty gritty.
For me personally, here’s the stand outs…
- I have to say Damien Katz’s presentation was extremely raw and powerful. The story of how CouchDB came to be will stick around in a lot of peoples minds for a very long time I’m sure.
- Giles Bowkit’s talk was just an assault on the senses. Wow. Almost want to go to Burning Man now. Looking over the shoulder of my cohort’s laptop on the backchanel it seemed dead quiet in the 5 secs I peeled my eyes off stage.
- Nick Sieger’s Jazz presentation taught me more in 30 mins than any music class ever has (not that I attended many) did in school. Even though I love music. Love it to bits. But he broke it down so well I was stunned. Wow. Thank you.
- Mr Grigsby. Resourceful. What more can I say. This dude plays the system hard.
- Leila had a hard job having the last talk of the day, but her essence was on the money, do something people love (and therefore value) and you’ll do well. If your customers love the stuff you build. You’ve got it made. She showed an extremely hard core passion for her company. Fantastic.
- Less than 200 people seems a perfect number for networking. Not large enough that you’re anonymous, not small enough so you’re talking to the same people. Met so many great people. Hope to stay in touch.
- Libin, my man, you should be THE official Canon product tester. I believe he was trying to hit 1k photos. at time of posting 413 odd photos were up on Flickr but he hasn’t uploaded Sunday’s yet…
Surprisingly technology was less of a focus of most everyone’s presentations. Instead of the usual tech stuff every day on blogs, to mix things up the talks really got into the hearts, minds, and souls of the presenters. All of which just can’t be conveyed in the web medium. The tech presentations that were given were solid as well, it felt like just the right mix between screeds of cool innovative code and deep talks.
It’s amazing what can be achieved in just 30mins !
Posted 2 days back at Smarticus - Home
At RubyFringe, the Github showed a demo of one of their newest creates, Gist. I’ve created a video exploring the soon-to-come goodness. Think Pastie on steroids.

<object height="600" width="800"> <param /> <param /> <param /> <embed src="http://www.vimeo.com/moogaloop.swf?clip_id=1381658&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" height="600" width="800"></embed></object>
BryanL demos Gist: A Super Hot Pastebin from
Bryan Liles on
>Vimeo.
Posted 2 days back at Brainspl.at
Valery Kholodkov has written a very cool nginx module for handling uploads.
The way this works is that you specify a location block to handle the uploads. So if you are using the standard nginx.conf for rails apps then you would add this in your server block right above your “location /” block:
# Upload form should be submitted to this location
location /upload {
# Pass altered request body to this location
upload_pass /internalupload;
# Store files to this location
upload_store /tmp;
# Set specified fields in request body
upload_set_form_field $upload_field_name.name "$upload_file_name";
upload_set_form_field $upload_field_name.content_type "$upload_content_type";
upload_set_form_field $upload_field_name.path "$upload_tmp_path";
}
# Pass altered request body to a proxy
location /internalupload {
proxy_pass http://mongrel;
}
Then make a simple upload form that does a multipart POST to /upload. Now you can have your Rails or Merb app on the backend with a route called /upload. In the action of your app that responds to the /upload route you will get a set of params that look like this(assume the name of your upload fields is called ‘file1’ and ‘file2’):
{"file2.path"=>"/tmp/0000123459", "file1.path"=>"/tmp/0000123458",
"file2.content_type"=>"image/png", "submit"=>"Upload",
"file2.name"=>"Picture 2.png", "action"=>"index",
"file1.name"=>"Picture 1.png", "controller"=>"test",
"file1.content_type"=>"image/png", "test"=>"value"}
What this is doing if parsing the multi-part mime boundaries in C in the nginx plugin, putting the parsed files into files in /tmp and then stipping the multipart stuff out of the POST body and replacing it with the info you need to get the name and location of the file on disk.
This means that by the time the request hits your application, the expensive mime parsing is already done and you simply move the file to it’s final resting place. This is a huge win since now the hard work is done in C in nginx before your app ever gets involved.
Of course this is a fresh new module so do your own testing and deciding whether or not this is a fit for your needs. But I think this is a great plugin and have verified it works as advertised.
Posted 3 days back at InfoQ Personalized Feed for unregistered user - Register to upgrade!
What is the optimal business model for today’s web? Opinions diverge in a series of articles around this issue. While authors seem to share the conviction that simplicity is the key in web environment, they do not necessarily put the same meaning into this term. Is less really more? Or should it rather be more with less? And how do we achieve it? By Sadek Drobi
1 2 3 4 5 ... 472