published 3 months ago
(02.08.2009 11:45)
According to SpeakerRate. 5 is the maximum rating.
rated > 4.5
(both videos aren’t online yet)
- Dead simple JavaScript Unit Tests in Rails with Blue Ridge and Screw.Unit, Dr. Nic Williams 4.52
- Agile Happiness, Paul Campell 4.52
rated > 4
rated > 3.5
- Rails i18n From the Trenches 3.99
- Plenary: JRuby & Rails 3.98
- Sphinx: Beyond the Basics 3.96
- Sneaking Ruby & Rails Into Big Companies 3.95
- Invoicing Gem – Sales & Payments In Your App 3.95
- CouchDB and Ruby 3.90
- From the Keyboard to the Community 3.90
- Distributed and Concurrent Programming using RabbitMQ and EventMachine 3.84
- Agile Deployment with Ruby 3.84
- Mobilize Your Rails Application 3.83
- Launching Ruby on Rails projects: A checklist 3.77
- Bringing the Web to Your Desktop with MacRuby 3.57
rated > 3
- Rails Is a Hammer 3.33
- Panel Q&A 3.29
- Working with Legacy Rails Apps – Technical Debt Hell and how to work your way out of it 3.28
- Git Basics 3.20
- Behaviour driven monitoring with cucumber-nagios (no ratings)
Posted in ruby | Tags conference, rails, ratings, talks, underground | no comments | no trackbacks
published 3 months ago
(26.07.2009 19:38)
Update: added links to conference-related stuff at the bottom of this post.
Some notes, roughly chronological, left in draft state.
- Rails developers usually don’t seperate data access layer and domain model.
- This can constrain how easily the domain model can be changed. If done, saving/loading and validating data is on the DAOs, and “the interesting stuff” (business logic) lives in the model objects.
- Q: how do you develop a domain model? A: may should be explained in Analysis Patterns
- SASS and lesscss are nice extensions to css. They require processing the CSS, however.
- at least three German-speaking universities now have courses where they use Rails (Bremen, Potsdam, Salzburg).
- Refactor vs. Rewrite. First, “find out the hard core of what the client actually needs”. Be brave and delete, change.
- clients of “rescue mission” projects didn’t get what they wanted from their last dev shop. The time and money reserved for the project are usually already spent, so they are in a hurry. => as a dev team, you need to show progress as early as possible.
- do the agile thing as well—prioritize by business need
- Don’t change code that you don’t like but which works well. Overcome your own prejudice and deal with the client’s money responsibly. Part of being professional, imho. Resist the Not invented here syndrome. Especially if the code is well tested. You can always refactor it when continue to work in that area.
- don’t dive into removing complexity as a first refactoring step. Look for easy targets first.
- Watch team morale on legacy code projects. Always pair.
- Read the Refactoring book before starting, and really apply the techniques step by step when doing non-trivial stuff. Always keep the application running while changing structure.
- When coding normal apps, refactor as you go, don’t see it as a separate activity, don’t speciallly reserve time for it.
- always manage your client’s expectations. Underpromise, overdeliver.
- JRuby has the by far best compatibility of the alternative Ruby implementations. It has an extensive test suite.
- It allows you to change between 1.8 and 1.9 with a command-line switch.
- ActiveRecord via JDBC is slow.
- JRuby is the only Ruby implementation with real native threads.
- Rack allows inserting code before and after the application handles a request. And allows plugging together different frameworks and components, and access session data from one in the other via Rack::Session. “Middleware” examples: Rack::Profiler, Rack::MailExceptions, Rack::Cache.
- Rails 3 release: “could roll it up and ship” any time. Rails development has always been like that. There’s never a “Todo” list of what will go into a release.
- They will do so when they feel they have done enough. But at least one thing Yehuda would like to do is get ActionMailer on the rewritten ActionController code.
- London’s monthly Rails usergroup meetings easily exceed 100 people.
- to introduce new technologies in places reluctant to change, first do ugly or boring stuff no one wants to do anyhow. With Ruby that could be: automate manual processes, write a test tool, small internal applications, quickly build prototypes, wire together systems. Realize that Ruby is perfect for glue code. Introduce the techniques (agile), not only the technologies.
- A couple of experienced people fear that the new JVM Scripting languages (Clojure, Scala, ...) may stop the stream from Java-resignees to Ruby.

- CouchFoo is intended to allow smooth ActiveRecord/RDBMS => CouchDB migration. This is a good first step to get on the couch. Then you can start wrapping your head around how to persist stuff with document-oriented databases, which I find the hardest part. “Performance tuning” of CouchDB is a whole new topic to be discovered.
- With couchDB, the cost of index updates is incurred at read, not at write as with RDBMS. Index updates at read can be suppressed with :update => false. Read CouchFoo::Base for performance info.
- #bulk_save for performance.
- a good use for document-oriented DBs is when the data structure changes often and future “schema” development is unpredictable.
- CouchFoo generates views for simple AR-style finders on the fly. Nice!
- Dr Nic once more proved to be the best Rails entertainer (_why is in his own league, of course, but wasn’t present to present).
- the i18n gem has great new features in 0.2.0 and edge: pluggable extensions, translation procs, advanced pluralization rules (implemented with procs), translation fallbacks, backend fallbacks, etc. Using it in current Rails currently requires a hack, however. See the Unicode CLDR Project for a massive amount of localization information.
- Globalize 1 happily overused metaprogramming, had to hack into Rails big-time, and as such is a PITA to migrate to the new Rails i18n. Any solutions?
- Kasabian kick Oasis’ ass on stage (according to London press).
- Rough trade in Brick Lane reminds you what’s cool about a real-world record store.
- LBI has 400 employees, a large terrace where you can work, and friendly people doing lots of barbecues.
- ExtJS is a useful rich client library with nice client-server data transportation, interface elements and data binding. It doesn’t have to look like Windows. It lacks a high-level architecture, though. It’s not free for commercial work (150 per developer), only for open source.
- Food in London is better than expected; even the traditional (Lamb stew, Apple Crumble & custard). Girls are cuter than expected, as well.
- London weather follows the same patterns as in Hamburg. Quick rains, lots of grey skies, sometimes sun. A bit warmer.
- Kevin Davy played the trumpet for Lamb, on tracks like Merge. Today he has fun playing around with electronic effects at his Jazz gigs.
- ””Now wash your hands””:http://www.flickr.com/photos/phil76/3759350196/in/set-72157621719325175/ was a design agency that built cool stuff in their time. Today only toilets in Indian restaurants remind of their glory.
- Hashrocket has guest pairs regulary. You can visit them at Jacksonville, Florida, stay at their guest house, and pair with them on the regular work.
- London is green, can be sunny and beautiful.
- a taxi from Russell square to Denmark Hill costs less than 20 pounds. Good if you’ve already spent the same amount on beer.
- the mapping of the British pound shapes and sizes to their value is only obvious to the British themselves. They lovingly call the coins shrapnel.
- Conaissence can be seen as underlying principle of many OOP design rules. And it’s a word that only Jim Weirich uses, so far.
- the Rails community is as great as ever.
- Smaller conferences are better.
For a more throrough summary of the talks, continue reading at rubypond: day 1, day 2.
Links:
Posted in ruby, travel, coding, photography, the rest | Tags london, rails, underground | no comments | no trackbacks
published 5 months ago
(19.06.2009 23:19)
I just published my first gem on github, all_tweets_must_die. It will become the core of a web app that regularly deletes your old tweets automatically. If you want to use twitter but value your privacy, this thing is for you.
I build the whole thing for fun and exercise. I’ll try to use as much new stuff as possible – Sinatra for the web app, Cucumber for testing it, CouchDB for storing user auth and preferences, and – if I actually get a couple of users on the site – possibly a small Erlang or Scala program for tweet deletion, connected to Ruby with Thrift. Lot’s of cool new technology, a lot of buzz. I know :-)
Posted in ruby, coding | Tags gem, github | no comments | no trackbacks
published about 1 year ago
(21.07.2008 00:19)
$KCODE = 'u'
require 'rubygems'
require_gem 'activerecord'
require 'rest_client'
class MyModel < ActiveRecord::Base
end
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:database => "hello_world",
:encoding => 'UTF8'
)
MyModel.find(:all).each do |record|
p RestClient.post('http://localhost:5984/hello_world', record.to_json)
end
Posted in ruby, coding | Tags activerecord, couchdb, json, mysql, rest, ruby | no comments | no trackbacks
published about 1 year ago
(12.07.2008 22:28)
»When the burning husks of your startups warm
the last of your bones, remember I told you so.«
— Zed, in Rails is a Ghetto
Posted in ruby, coding | no comments | no trackbacks
published about 1 year ago
(22.06.2008 16:23)

taken at the Rails Konferenz 2008 by patrick lenz.
Posted in ruby, coding, mac | Tags 2008, konferenz, mac, rails, ruby | no comments | no trackbacks
published about 1 year ago
(16.12.2007 19:21)
“The Sapir-Whorf Hypothesis theorizes that thoughts and behavior are determined (or are at least partially influenced) by language. […] To this day it has not been completely disputed or defended, but has continued to intrigue researchers around the world.”
Posted in ruby, coding, wisdom & quotes | no comments | no trackbacks
published about 1 year ago
(11.11.2007 15:04)
—Matz, on Ruby becoming “Enterprisey” (via project.ioni.st)
that’s almost a shock, makes me afraid. but he’s right—at last railsconf europe for example, sun, ibm & co showed up. pushing their tools, and ideas of “how to develop”, without any deeper knowledge of ruby. let’s hope they’ve learnt or are willing to learn, and aren’t just disguising just to enter this market and sell their stuff to people who can’t tell the difference.
make sure ruby and the community stay the way they are, it’s what’s makes it special, and what made it successful.
Posted in ruby, coding | no comments
published over 2 years ago
(07.10.2007 14:02)
duck typing is actually a simple concept. the best explanations i have come across (from wikipedia 1,
2):
»Suppose you see a bird walking around in a farm yard. This bird has no label that says ‘duck’. But the bird certainly looks like a duck. Also, he goes to the pond and you notice that he swims like a duck. Then he opens his beak and quacks like a duck. Well, by this time you have probably reached the conclusion that the bird is a duck, whether he’s wearing a label or not.” (Immerman 1982, p. 102)«
So, in programming, duck typing is a style of dynamic typing in which an object’s current set of methods and properties determines the valid semantics, rather than its inheritance from a particular class, or implementation of a formal interface.
The ruby mailing list has a great post called ”How to duck type? - the psychology of static typing in Ruby”, explaining the rationale and why duck typing is a good thing (in ruby). an excerpt:
»Many people coming to Ruby from a statically-typed language are somewhat
afraid of Ruby’s dynamism, or “don’t get it(TM)”. David Black and I (edit: Tim Bates)
believe that this is in part because it is thought that the uncertainty
and changeability built into Ruby are dangerous and one wants to find
shelter from them.«
Posted in ruby, coding | Tags duck, ruby, typing | no comments
published over 2 years ago
(11.08.2007 16:32)
jetzt.de (the “youth” magazine of the süddeutsche zeitung) gives an interesting overview of 25 current german startups, asking every one of them around a dozen questions.
greenmiles.de
i found the greenmiles.de idea particularly interesting: you enter your planned trip and transportation type, then they calculate how much co2 is produced. you can then donate an appropriate amount of money to climate conservation programs, allowing you trip to be climate neutral. of course very rough, but nevertheless interesting feedback on how much co2 one of us produces in his day to day life. for example, one round-trip flight hamburg-munich produces 9m³ of co2, which equals a cost of 8 euros.
german startup technology choices
i was curious which technologies these startups would consider best for their success, so i looked at the programming languages and frameworks they used. here are the results:
|
60%
|
php
|
|
16%
|
ruby (= ruby on rails)
|
|
16%
|
java
|
|
4%
|
asp.net
|
|
4%
|
(project offline)
|
a couple of observations:
php & java have been at the availability of web developers since at least 1999 (that’s when i started) and ruby on rails had it’s 1.0 release in december 2005. so i can only say: go rails! :-)
so let’s say konichiwa to these ruby on rails projects:
looking at php
of course with 60%, php is the most important language by far. it’s the technology one needs least development experience for, and it allows fast results; therefore very appealing. working with less experienced developers however also means things can go really bad down the road – remember the studivz scalability and security issues, for example.
and still not all of the startups seem to do their php development in a professional way. some use a CMS (typo3) as a base for their site, others still run php version 4, which has been replaced by php5 three years ago and is now discontinued.
there is only rails
the java and php projects use a variety of frameworks, but in the ruby projects – there is only rails. that’s good – a ruby web developer will almost certainly know how to work with rails. a php developer will more than likely not know how to work with your framework, since there are so many open source php frameworks out there, and still many people roll their own one.
on a side note, only one startup runs on microsoft technology …
i figured out what a site runs by looking at their webserver’s responses (server type, cookie name) and the generated html. if in doubt i checked their tech jobs postings, too. for the technically inclined, here’s the full list:
dealjaeger.de java
spickmich.de php
cellity.com java (jboss)
autoaid.de php (symfony) AND/OR python
hitflip.de php
verwandt.de php
amiando.de java
dawanda.de ruby on rails (/w mongrel server)
hiogi.de php
zeitkapsel.de php
wazap.de java
schutzgeld.de php (typo3)
frazr.de php
rankaholics.de php
sevenload php
imedo.de ruby on rails (/w mongrel server)
globalzoo.de php
greenmiles.de php (typo3, still php4!)
jajah.com asp.net
mitbringzentrale.de – (offline)
mymuesli.de php (still php4!)
qype.de ruby on rails (/w lighttpd server)
spielerkabine.de ruby on rails (/w lighttpd server)
edelight.de php
studivz.de php
Posted in ruby, php, coding | no comments