<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>justaddwater.dk &#187; Railsconf</title>
	<atom:link href="http://justaddwater.dk/category/eventsseminars/railsconf/feed/" rel="self" type="application/rss+xml" />
	<link>http://justaddwater.dk</link>
	<description>Instant Usability &#38; Web Standards</description>
	<lastBuildDate>Thu, 02 Feb 2012 08:51:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>RailsConf Europe 2007 Recap</title>
		<link>http://justaddwater.dk/2007/09/22/railsconf-europe-2007-recap/</link>
		<comments>http://justaddwater.dk/2007/09/22/railsconf-europe-2007-recap/#comments</comments>
		<pubDate>Sat, 22 Sep 2007 00:12:12 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/09/22/railsconf-europe-2007-recap/</guid>
		<description><![CDATA[I wanted this post to be named &#8220;Usability Lessons from RailsConf Europe 2007&#8243; — but realized that only some what I want to write below is about usability. So RailsConf Europe this year is over, and there are a few things i want to highlight from a conference that in general was a smash hit. [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted this post to be named &#8220;Usability Lessons from RailsConf Europe 2007&#8243; — but realized that only some what I want to write below is about usability.</p>
<p>So RailsConf Europe this year is over, and there are a few things i want to highlight from a conference that in general was a smash hit.</p>
<h3>Usability and prototyping fits agile development style</h3>
<p>Dave Thomas&#8217; keynote had a great section about art and the work of great artists. Michaelangelo and DaVinci usually worked with prototypes — paper prototypes — that allowed them to iterate fast and wild. Thomas wanted the audience to work in that way too. What a coincidence that we have been using prototyping as a key methodology at work, and for the last year and half with Ruby on rails.</p>
<p>&#8220;Everytime you step away from your keyboard, you engage another part of your brain&#8221;, he said, refering to using whiteboards, papers, napkins, etc, to sketch ideas and think it over. At leas in Capgemini, the next year will be the year of the prototypes, and I still believe that Ruby on Rails is just fit for this purpose. (yes, I know we can and should do a lot more than just prototypes, but it really is a sweetspot where big enterprise organisations with a fixed architectural platform can still taste some of the advantages with Ruby on Rails).</p>
<p style="float: left; margin-top: 0pt; margin-right: 10px; width: 160px"><a href="http://www.flickr.com/photos/jesper/1414028690/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1194/1414028690_bed6089427_m.jpg" title="IMG_3416_crop" alt="IMG_3416_crop" align="left" height="240" width="160" /></a></p>
<p>David Heinemeier gave a good keynote the next morning, and one of the things he mentioned was just a little thing for Rails developers. But actually a brilliant example that software can always benefit from: <strong>Better defaults</strong>. David mentioned that the debugger in the upcoming Rails 2.0 is only working in development environment by default. Which means that your production application won&#8217;t break if you forget to remove a breakpoint. Ruby on Rails have a lot of good defaults.</p>
<p>As you may have noticed I&#8217;m kind of getting obsessed with &#8220;better defaults&#8221;.</p>
<p>it&#8217;s the defaults that matter &#8212; not what your application can be tweaked to do. Sooner or later your harddisk breaks, you need a new laptop, you start a new project, etc. When the defaults are right, you spend less brain capacity on setting up your computer or project and spend more brain capacity solving real problems.</p>
<p>It&#8217;s nice to see that there is a focus on better defaults.</p>
<h3>Our own talk: Beyond Screenscraping</h3>
<p>Mads and I has spent a lot of time preparing our talk &#8220;beyond screenscraping: toolbox for changing the legacy world&#8221;, and although 150 people left the room just before we started, it seemed as the remaining 50 (or so) people enjoyed the show.</p>
<p>One of the questions at the end was a guy that had downloaded the code and tried it out on his companys intranet, and wanted to know how our code would store the password.</p>
<p>That people were able to follow along and could try it out during the presentation was more than we expected. Also I afterwards talked to Rob  McKinnon, that had some similar experience with using a Rails application ( www.theyworkforyou.co.nz ) for creating a political reason for changing a legacy application (in his case to expose data that formerly was very little accessible).</p>
<p>Presentation slides,and more project info can be found on the <a href="http://reform.quickanddirty.dk/">reform plugin homepage</a></p>
<h3 style="clear: left">Enterprise Readiness</h3>
<p>Ruby on Rails have attracted more of the bigger players. This years sponsors included IBM, Sun and Thoughtworks who all seemed eager to tell about how well Ruby on Rails fit into enterprise environments. IBM and Thoughtworks, for instance, claim to employ 50 people working with Rails. David Heinemeier has more thoughts on the involvement from the big players in his blog.</p>
<p>Capgemini where I work also have a dedicated involvement in Ruby on Rails, and here from Denmark we try also to be active in the local Rails community (<a href="http://copenhagenrb.dk/">copenhagen.rb</a>) to give something back.</p>
<p>At Tuesday evening, Jørgen from <a href="http://lenio.dk/">Lenio</a> and <a href="http://codegirl.dk">Codegirl</a>  arranged for a Danes meetup and dinner. Great event, especially because we were more than 30 people. Compare that to last year where we were five or six danes (including David, of course). To continue the trend, each Dane must bring an additional 4 or 5 people each year. So if you make that assumption, we will be 166 next year and 915 Danes at RailsConf 2009 :)</p>
<p>Thanks to Jørgen&#8217;s boss for paying the dinner. They really deserve the mention.</p>
<p>Photos from the evening below. It was really a lovely evening and the discussions continued fueled with beer, as you can probably see on the photos.</p>
<p><a href="http://www.flickr.com/photos/jesper/1413201523/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1053/1413201523_8d779e84d3_m.jpg" alt="IMG_3452" height="160" width="240" /></a></p>
<p><a href="http://www.flickr.com/photos/jesper/1413190853/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1252/1413190853_5837bf797d_t.jpg" alt="IMG_3446" height="67" width="100" /></a><a href="http://www.flickr.com/photos/jesper/1413194401/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1232/1413194401_77fba88922_t.jpg" alt="IMG_3448" height="67" width="100" /></a><a href="http://www.flickr.com/photos/jesper/1414092082/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1069/1414092082_0e4f58bb8b_t.jpg" alt="IMG_3458" height="67" width="100" /></a><a href="http://www.flickr.com/photos/jesper/1413194401/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1232/1413194401_77fba88922_t.jpg" alt="IMG_3448" height="67" width="100" /></a><a href="http://www.flickr.com/photos/jesper/1413197627/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1380/1413197627_75280e7f6a_t.jpg" alt="IMG_3451" height="67" width="100" /></a><a href="http://www.flickr.com/photos/jesper/1413156349/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1045/1413156349_d6ef40be3d_t.jpg" alt="IMG_3441" height="67" width="100" /></a></p>
<p>More info:</p>
<ul>
<li>Casper Fabricius notes: <a href="http://casperfabricius.com/blog/2007/09/17/railsconf-the-art-in-rails/">Dave Thomas keynote</a>, <a href="http://casperfabricius.com/blog/2007/09/18/railsconf2007-dhh/">DHH keynote</a></li>
<li>DHH: <a href="http://www.loudthinking.com/posts/12-good-times-at-railsconf-europe">Good times at RailsConf Europe</a></li>
<li>DHH: <a href="http://www.loudthinking.com/posts/11-sun-surprises-at-railsconf-europe-2007">Sun surprises at RailsConf Europe 2007</a></li>
<li>Justaddwater.dk: <a href="http://justaddwater.dk/2007/09/11/busy-preparing-railsconf-presentation/" rel="bookmark" title="Permanent Link to Busy Preparing RailsConf Presentation">Busy Preparing RailsConf Presentation</a></li>
<li>Justaddwater.dk: <a href="http://justaddwater.dk/2006/05/16/rails-enterprise-business-perspective/" rel="bookmark" title="Permanent Link: Ruby on Rails for the enterprise: Business perspective">Ruby on Rails for the enterprise: Business perspective</a> (May 2006)</li>
<li>Justaddwater.dk: <a href="http://justaddwater.dk/2006/04/12/rails-prototyping/" rel="bookmark" title="Permanent Link: Ruby on Rails as rapid prototyping tool">Ruby on Rails as rapid prototyping tool</a> (Apr 2006)</li>
<li>Justaddwater.dk <a href="http://justaddwater.dk/category/prototyping/">All articles about prototyping</a></li>
<li>Flickr: All my photos from <a href="http://www.flickr.com/photos/jesper/sets/72157594299044587/">RailsConf Europe 2007</a> (and from <a href="http://www.flickr.com/photos/jesper/sets/72157602046575760/">2006</a>)</li>
<li><a href="http://reform.quickanddirty.dk/">Reform plugin homepage</a></li>
</ul>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/dhh" rel="tag">dhh</a>, <a href="http://technorati.com/tag/dave+thomas" rel="tag"> dave thomas</a>, <a href="http://technorati.com/tag/ruby+on+rails" rel="tag"> ruby on rails</a>, <a href="http://technorati.com/tag/railsconfeurope" rel="tag"> railsconfeurope</a>, <a href="http://technorati.com/tag/railsconf" rel="tag"> railsconf</a>, <a href="http://technorati.com/tag/railsconf+europe+2007" rel="tag"> railsconf europe 2007</a>, <a href="http://technorati.com/tag/berlin" rel="tag"> berlin</a>, <a href="http://technorati.com/tag/copenhagenrb" rel="tag"> copenhagenrb</a>, <a href="http://technorati.com/tag/copenhagen.rb" rel="tag"> copenhagen.rb</a>, <a href="http://technorati.com/tag/casper+fabricius" rel="tag"> casper fabricius</a>, <a href="http://technorati.com/tag/speaking" rel="tag"> speaking</a>, <a href="http://technorati.com/tag/event" rel="tag"> event</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/09/22/railsconf-europe-2007-recap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RailsConf Live Notes: Testing Tutorial</title>
		<link>http://justaddwater.dk/2007/09/17/railsconf-live-notes-testing-tutorial/</link>
		<comments>http://justaddwater.dk/2007/09/17/railsconf-live-notes-testing-tutorial/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 15:05:18 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/09/17/railsconf-live-notes-testing-tutorial/</guid>
		<description><![CDATA[<p>Live notes from RailsConf Europe 2007 testing tutorial by Chad Fowler and Marcel Molina.</p>
<p><a href="http://www.flickr.com/photos/jesper/1395418767/" title="Photo Sharing"><img src="http://farm2.static.flickr.com/1342/1395418767_1d23095952_t.jpg" width="100" height="67" alt="IMG_3392_crop" /></a></p>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at RailsConf Europe here in Berlin, and now attending the full-day session &#8220;<a href="http://www.railsconfeurope.com/cs/railseurope2007/view/e_sess/14736">Ruby (and Rails) Testing Techniques: Charity Tutorial</a> by Marcel Molina and Chad Fowler.</p>
<p>Below are the live notes, I wrote with Mads Buus (we wrote the notes collaboratively with Google Docs, <a href="http://docs.google.com/Doc?docid=az54pw3d9f_24hsvwnt&amp;hl=en">direct link</a>).</p>
<p class="Photo"> 	    		<a href="http://www.flickr.com/photos/jesper/1395418767/"><img src="http://farm2.static.flickr.com/1342/1395418767_1d23095952_m.jpg" alt="IMG_3392_crop" height="160" width="240" /></a></p>
<p class="Photo"> 	    		<a href="http://www.flickr.com/photos/jesper/1396313456/"><img src="http://farm2.static.flickr.com/1411/1396313456_e999c55dfe_m.jpg" alt="IMG_3397" height="160" width="240" /></a></p>
<p class="Photo">&nbsp;</p>
<ul>
<li>     Verifying your expectations.</li>
<li>     Guru reads the output&#8221; -testing (just printing stuff out to verify something)</li>
<li>     Testing is better: declare your expectations.</li>
<li>     Real value: Analysis, design process. Bonus: verification.</li>
<li>     If something is too hard to write, you&#8217;re probably doing it wrong (design is wrong)</li>
<li>     Red, green, refactoring. Write a test that fail, the implement until green.</li>
<li>     Red/green testing: Write code to make testing fail&#8230; red. Then write just enough code to make test pass.</li>
<li>     Marcel&#8217;s loops coding/testing is 1-5 minutes. Possible to work with 20 second loops</li>
<li>No &#8216;Code smells&#8217;, no comments. &#8216;method_missing&#8217; needs documentation</li>
</ul>
<p>Your code should be so simple that you shouldnt put comments in your code. If it just says &#8220;test_foo&#8221; [new team members] have to do more brain processing.</p>
<p>Nick: think of my self as a spec writer more than a programmer</p>
<p>Red/green refactor<br />
* refactor your tests before</p>
<p>flunk &#8220;not implemented&#8221; is cool because i can see that it&#8217;s</p>
<p>RSpec makes &#8220;not implemented&#8221; yellow so it doesn&#8217;t mix up with the red</p>
<p>Marcel: Eventually we re all going to be small talk programmers. Ruby is the entry drug</p>
<p>class PokerException &lt; Exception<br />
end<br />
doesnt need right now. always add later. Removed</p>
<p>Chad: i really work in small increments</p>
<p>Marcel: at the beginning i did &#8220;existing? tests&#8221;<br />
&#8230;and within 15 minutes that test becomes so non valuable.</p>
<p>Chad: I challenge you to write long method names &#8230; at least for a day or two<br />
When you follow that style, your code will be cleaner and healthier</p>
<p>Write flunking test to identify an assumptions<br />
def test_all_validation_are_run<br />
flunk &#8216;we probably want to create a validation test case for this&#8217;<br />
end</p>
<p>Chad: Have you run your other test recently?</p>
<p>Chad: Id like to have only one test failing at a time</p>
<p class="Photo"> 	    		<a href="http://www.flickr.com/photos/jesper/1395426465/"><img src="http://farm2.static.flickr.com/1192/1395426465_0bd1d6a2d0_m.jpg" alt="IMG_3403" height="160" width="240" /></a></p>
<p>Mads: Instead of fixing the design, we wirte more tests. Are we thinking too much about test than the code?<br />
Chad: now, were running into friction. and frictions tell us tu stop and think about the design</p>
<p>&#8212; break &#8212;</p>
<p>(my comment: the discussions her usually get into details with &#8220;business-logic&#8221;)</p>
<p>test helper function<br />
card_with(options) is subverting the benefit of the tests as long as Marcel uses that in the test file only.</p>
<p>replaced with<br />
validate_card_with(options)<br />
Card.new(options).validate<br />
end</p>
<p>Later:<br />
validate_number_card_with(options)</p>
<p>NumberCard.new(options).validate<br />
end</p>
<p>Another point:<br />
card.numbers.sort_by{rand}.first</p>
<p>Private methods in Test::Unit<br />
doesnt impact Test::Unit<br />
but the fact is that the reader of the code can ignore them below the private</p>
<p>Chad: TDD enables you to delay difficult decisions.. &#8230; and you keep delaying them, and it ends up that you never have to take the difficult decisions</p>
<p>def self.foo<br />
end<br />
or<br />
class &lt;&lt; self<br />
def foo<br />
end<br />
end</p>
<p>M: Visually the latter is better. Easier to grasp overview of the class. Also when you add private methods later, there are more sections of your class</p>
<p>AgileTalk &#8220;just print all names of your test methods&#8221; (not found by me on google)<br />
rake task</p>
<p>&#8220;Test everything that could possibly break&#8221; quote by kent beck.<br />
That domain spsecific understanding grows over time. So if something weird with card number 11 happens, then you should probably add a test case for number 11.</p>
<p>&#8212;-lunch break&#8212;-<br />
&#8220;if it&#8217;s strip poker I can see why we implement base class&#8221;</p>
<p>$: = LOAD_PATH<br />
$: .unshift File.dirname(__FILE__)<br />
Adding current directory onto our loadpath</p>
<p>DR. Jekyll and Mr hyde<br />
The good Dr. Jekyll writes a test, then laugh at Mr Hyde (the lazy programmer) and force him to implement the smallest amount of code to make it pass</p>
<p>Incremental refactoring: Even if you are able to see more steps ahead, you should do Incremental refactoring and test on the way.</p>
<p>Moving from low-level to high-level</p>
<p><span style="font-weight: bold">Metrics for measuring test quality</span></p>
<p>rake test:ratio (marcels own)<br />
Code to Test Ratio: 1:1.28</p>
<p>Rcov<br />
issue: sometimes reports false negatives (example lines  not covered &#8220;end..end..end&#8221;)<br />
c0, c1, c2 coverage<br />
Line number counting</p>
<p>code to Test ratio and Rcov used together is very good indicators.</p>
<p>Heckle can go into those examaples with more loops on the same line<br />
if foo &amp;&amp; bar &amp;&amp; baz</p>
<p>end<br />
Here Hecle will go in and modify bar until test breaks</p>
<p>Now into the highl-level<br />
require &#8216;flexmock&#8217;<br />
require &#8216;flexmock/test_unit&#8217;<br />
(Jim Weirich (co?)authored it and we tend to use libraries he wrote)</p>
<p>class GameTest<br />
attr_reader :game<br />
def setup<br />
@game = flexmock(&#8216;Game&#8217;)<br />
@dealer  = flexmock(&#8216;Dealer&#8217;)<br />
@player1 = flexmock(&#8216;Player&#8217;)<br />
@player2 = flexmock(&#8216;Player&#8217;)<br />
end</p>
<p>Chad (again): &#8220;it would be interesting to run just what you have and see what it does&#8221;</p>
<p>player.should_receive(:join).once.ordered.with(game)<br />
player.should_receive(:bet).once.ordered</p>
<p>partial mock<br />
from<br />
@game = flexmock(&#8216;Game&#8217;)<br />
to<br />
@game = flexmock(Game.new)<br />
mocks if methods are not implemented.</p>
<p>to<br />
@game = flexmock(Game).new_instances<br />
difference??</p>
<p>&#8212;..<br />
fixtures<br />
pain to deal with, and not so explicit</p>
<p>it makes sense to mock up and never hit the db</p>
<p>class Person &lt; ActiveRecord::Base<br />
end</p>
<p>####test file below:<br />
flexmock(Person).should_recdeive(:find).with(:first).and_return(admin_for)<br />
#&#8230; valid_person definde helper method</p>
<p>assert_equal admin_for_company, Person.admin</p>
<p>Marcel<br />
valid_user_attibutes<br />
create_valid_user<br />
create_valid_user_with_company<br />
#always methods parametrized to be overridden</p>
<p>Marcel: For 2 years, fixtures made me angry with rails</p>
<p>Chad: We only hate it because its not as good as the rest of Rails, but it&#8217;s better than what we had before</p>
<p>===RSpec===<br />
Test::Unit leads to one test per method in your code</p>
<p>Test usually takes longer.<br />
b vs t Behaviours versus testing: So<br />
<span style="font-weight: bold">=&gt; good Test Driven Development with the word &#8220;test&#8221; removed from it</span></p>
<p>Is your name Dan, by any chance? Did you coin the term BDD, by any chance?</p>
<p>rspec is a specification framework</p>
<p>tools more implemented and more into textmate<br />
rake test:spec</p>
<p>it [string]<br />
not passing a block is an unimplemented spec</p>
<p>Its developed way more actively than Test::Unit and it&#8217;s also the tooling around it</p>
<p>RSpec generators (general opinion) they are probably too long</p>
<p>=== Jesper&#8217;s notes below:===</p>
<p>Windows shortcuts for E-texteditor</p>
<ul>
<li>CTRL+R run test file we&#8217;re working in.</li>
<li>CTRL+Shift+R run test in focus</li>
<li>deft + tab &#8220;def test_ &#8230; end&#8221;</li>
</ul>
<p>Idea for &#8220;deft&#8221; shortcut: replace all spaces as-you-type with underscores</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/railsconf" rel="tag">railsconf</a>, <a href="http://technorati.com/tag/berlin" rel="tag"> berlin</a>, <a href="http://technorati.com/tag/marcel+molina" rel="tag"> marcel molina</a>, <a href="http://technorati.com/tag/chad+fowler" rel="tag"> chad fowler</a>, <a href="http://technorati.com/tag/testing" rel="tag"> testing</a>, <a href="http://technorati.com/tag/copenhagenrb" rel="tag"> copenhagenrb</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/09/17/railsconf-live-notes-testing-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Busy Preparing RailsConf Presentation</title>
		<link>http://justaddwater.dk/2007/09/11/busy-preparing-railsconf-presentation/</link>
		<comments>http://justaddwater.dk/2007/09/11/busy-preparing-railsconf-presentation/#comments</comments>
		<pubDate>Tue, 11 Sep 2007 12:31:55 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/09/11/busy-preparing-railsconf-presentation/</guid>
		<description><![CDATA[<p>For the last days, Mads and myself have been working hard on our RailsConf presentation Tuesday next week.</p>
<p><img src="http://conferences.oreillynet.com/images/railseurope2007/banners/speakers/125x125.jpg" alt="Railsconf speaker 2007" height="125" width="125" /></p>
<p>At the presentation we will introduce a Ruby on Rails plugin that can create the foundation for a local Rails app based on forms scraped from a remote application. In our case, an internal application used for timereporting in Capgemini.
</p>]]></description>
			<content:encoded><![CDATA[<p>For the last days, Mads and myself have been working hard on our RailsConf presentation Tuesday next week.</p>
<p><img src="http://conferences.oreillynet.com/images/railseurope2007/banners/speakers/125x125.jpg" alt="Railsconf speaker 2007" height="125" width="125" /></p>
<p>At the presentation we will introduce a Ruby on Rails plugin that can create the foundation for a local Rails app based on forms scraped from a remote application. In our case, an internal application used for timereporting in Capgemini.</p>
<p>My head is too ful of all the details in the presentation but fact is, that we&#8217;re running two trials on the presentation this Thursday the 13th in our Capgemini office in Copenhagen, Denmark.</p>
<p>Let me know if you are interested in hearing the presentation. Readers of this blog are welcome, but make sure to contact me or call me in advance if you like to participate.</p>
<p>More info</p>
<p>Public test presentations Thursday Sept. 13th at 12.15 and 16.00 at the Capgemini office in Gentofte, Copenhagen Denmark. Call me in advance (+45 2373 6220) or <a href="http://justaddwater.dk/contact-us/">via the contact form</a> if you like to attend.</p>
<p>Justaddwater.dk: <a href="http://justaddwater.dk/2007/06/08/railsconf-talk-accepted-prototyping-hacking-enterprise-legacy-applications/" rel="bookmark" title="Permanent Link to RailsConf Talk Accepted: Prototyping, Hacking Enterprise Legacy Applications">RailsConf Talk Accepted: Prototyping, Hacking Enterprise Legacy Applications</a></p>
<p>Railsconf Europe session info: <a href="http://www.railsconfeurope.com/cs/railseurope2007/view/e_sess/14260">Screenscraping as a Tool for Changing the (Legacy) World</a></p>
<p><a href="http://reform.quickanddirty.dk/">Reform plugin website</a> (where you can download presentation, submit bugs, checkout code, add documentation).</p>
<p>UPDATE 2007-09-18 with new URL to Reform plugin: <a href="http://reform.quickanddirty.dk/">reform.quickanddirty.dk</a> (we moved to our Capgemini server for prototype projects: quickanddirty.dk )</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/railsconf" rel="tag">railsconf</a>, <a href="http://technorati.com/tag/berlin" rel="tag"> berlin</a>, <a href="http://technorati.com/tag/europe" rel="tag"> europe</a>, <a href="http://technorati.com/tag/capgemini" rel="tag"> capgemini</a>, <a href="http://technorati.com/tag/presentation" rel="tag"> presentation</a>, <a href="http://technorati.com/tag/ruby+on+rails" rel="tag"> ruby on rails</a>, <a href="http://technorati.com/tag/ruby" rel="tag"> ruby</a>, <a href="http://technorati.com/tag/rails" rel="tag"> rails</a>, <a href="http://technorati.com/tag/madsbuus" rel="tag"> madsbuus</a>, <a href="http://technorati.com/tag/speaking" rel="tag"> speaking</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/09/11/busy-preparing-railsconf-presentation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RailsConf Talk Accepted: Prototyping, Hacking Enterprise Legacy Applications</title>
		<link>http://justaddwater.dk/2007/06/08/railsconf-talk-accepted-prototyping-hacking-enterprise-legacy-applications/</link>
		<comments>http://justaddwater.dk/2007/06/08/railsconf-talk-accepted-prototyping-hacking-enterprise-legacy-applications/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 17:52:55 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2007/06/08/railsconf-talk-accepted-prototyping-hacking-enterprise-legacy-applications/</guid>
		<description><![CDATA[Woohoo. I got a response from O&#8217;Reilly that my talk for RailsConf in Berlin is accepted. I will be presenting with my colleague Mads Buus, who&#8217;s also active in our Copenhagen Ruby user group. Here is the talk proposal: Title: Screenscraping as a tool for changing the (legacy) world Conference: RailsConf Europe 2007 Type/Duration: 45 [...]]]></description>
			<content:encoded><![CDATA[<p>Woohoo. I got a response from O&#8217;Reilly that my talk for RailsConf in Berlin is accepted. I will be presenting with my colleague <a href="http://www.upperbound.net/upperbound/show/HomePage">Mads Buus</a>, who&#8217;s also active in our <a href="http://copenhagenrb.dk/">Copenhagen Ruby user group</a>.</p>
<p><img src="http://justaddwater.dk/wp-content/uploads/2007/06/railsconf-2007-berlin-logo.png" alt="railsconf-2007-berlin-logo.png" /></p>
<p>Here is the talk proposal:</p>
<p>Title: <strong>Screenscraping as a tool for changing the (legacy) world</strong></p>
<blockquote><p>Conference: RailsConf Europe 2007<br />
Type/Duration: 45 Minute Conference Session<br />
Audience Level: Intermediate<br />
Audience Type: web developers, programmers</p></blockquote>
<p>Description Short:</p>
<blockquote><p>Tired of your existing corporate legacy application? Show them you can do better! Learn how to make your own Rails version of a website with ugly UI, bad user feedback, no API.</p>
<p>Use these tools and techniques to build your own, better, user interface on top of an old legacy backend.</p></blockquote>
<p>Description:</p>
<blockquote><p>You sometimes come across web applications that are really bad: Ugly UI, bad user feedback, minimal usability, no API.</p>
<p>To improve such an app, a rails hacker may have to prove him/herself by prototyping improvements first.</p>
<p>Rails makes it possible actually &#8220;taking over&#8221; parts of a legacy app, by presenting the user with a rails UI that submits back to the original app. A prototype that works against the legacy app and is usable and testable by real users.</p>
<p>This session will present you with the techniques and tools you need to do this:</p>
<p>* Advanced two-way screen/form scraping from &#8220;bad&#8221; legacy applications<br />
* Guessing the data model.<br />
* Screenscraping tools and their strengths and weaknesses.<br />
* Helper tools and how to use them (http sniffing, browser submittal, DOM, CSS selector tools, etc)</p>
<p>Along with this, we will discuss how we used this technique on a particular internal timetracking application, and in particular the lessons learned on how to navigate a Rails prototype into the political game in a world of legacy systems.</p>
<p>Screenscraping as a prototyping strategy could be just what you need in a political environment where it&#8217;s hard to convince management to build an existing legacy application in Rails.</p></blockquote>
<p>Mads is the ideal co-presenter for this talk. He is a highly skilled programmer, very opinionated about software development, and also entertaining to listen to. We have quite some work to do, as we have plans to take this talk a step further. And <a href="http://dalager.com/blog/">Christian Dalager</a> has promised to help us out, which makes me look very much forward to this. Not only the presentation itself. But also the process of creating our code. (For now, I can say only that we will be coding a tool to make it even easier to API-ify a legacy app.)</p>
<p>See you at RailsConf, Berlin, September 17-19!</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/rails" rel="tag">rails</a>, <a href="http://technorati.com/tag/rubyonrails" rel="tag"> rubyonrails</a>, <a href="http://technorati.com/tag/event" rel="tag"> event</a>, <a href="http://technorati.com/tag/railsconf" rel="tag"> railsconf</a>, <a href="http://technorati.com/tag/conference" rel="tag"> conference</a>, <a href="http://technorati.com/tag/oreilly" rel="tag"> oreilly</a>, <a href="http://technorati.com/tag/berlin" rel="tag"> berlin</a>, <a href="http://technorati.com/tag/copenhagenrb" rel="tag"> copenhagenrb</a>, <a href="http://technorati.com/tag/madsbuus" rel="tag"> madsbuus</a>, <a href="http://technorati.com/tag/dalager" rel="tag"> dalager</a>, <a href="http://technorati.com/tag/legacy" rel="tag"> legacy</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2007/06/08/railsconf-talk-accepted-prototyping-hacking-enterprise-legacy-applications/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RailsConf presentation notes</title>
		<link>http://justaddwater.dk/2006/09/14/railsconf-presentation-notes/</link>
		<comments>http://justaddwater.dk/2006/09/14/railsconf-presentation-notes/#comments</comments>
		<pubDate>Thu, 14 Sep 2006 11:22:55 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2006/09/14/railsconf-presentation-notes/</guid>
		<description><![CDATA[Just a short note that I just published my first notes from the RailsConf keynote presentations. RailsConf ends tomorrow, Friday, and I expect that more notes will show up on our Rails related website: copenhagen.rb Copenhagenrb.dk: Railsconf Europe Session overview Technorati Tags: railsconf, notes, presentations]]></description>
			<content:encoded><![CDATA[<p>Just a short note that I just published my first notes from the RailsConf keynote presentations. RailsConf ends tomorrow, Friday, and I expect that more notes will show up on our Rails related website: copenhagen.rb</p>
<p><a href="http://copenhagenrb.dk/2006/9/14/railsconf-europe-session-overviews">Copenhagenrb.dk: Railsconf Europe Session overview</a></p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/railsconf" rel="tag">railsconf</a>, <a href="http://technorati.com/tag/notes" rel="tag"> notes</a>, <a href="http://technorati.com/tag/presentations" rel="tag"> presentations</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2006/09/14/railsconf-presentation-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Talk at Reboot8: Prototyping</title>
		<link>http://justaddwater.dk/2006/06/01/my-talk-at-reboot8-prototyping/</link>
		<comments>http://justaddwater.dk/2006/06/01/my-talk-at-reboot8-prototyping/#comments</comments>
		<pubDate>Thu, 01 Jun 2006 09:27:11 +0000</pubDate>
		<dc:creator>Jesper Rønn-Jensen</dc:creator>
				<category><![CDATA[Best of Justaddwater]]></category>
		<category><![CDATA[Events/seminars]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[Railsconf]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://justaddwater.dk/2006/06/01/my-talk-at-reboot8-prototyping/</guid>
		<description><![CDATA[Today is the time for my ten minute presentation at Reboot. I have ten minutes between 16.45 and 17.30 to give my talk. Topic: Prototype driven development with Ruby on Rails, and demo of the application we made at Capgemini with the Danish public Agency of Companies and Commerce. Presentation (Powerpoint format) for download here: [...]]]></description>
			<content:encoded><![CDATA[<p>Today is the time for my ten minute presentation at Reboot. I have ten minutes between 16.45 and 17.30 to give my talk.</p>
<p>Topic: Prototype driven development with Ruby on Rails, and demo of the application we made at Capgemini with the Danish public Agency of Companies and Commerce.</p>
<p><strong>Presentation</strong> (Powerpoint format) for download here:</p>
<p><a title="Powerpoint presentation (1.11MB) Prototype driven development with Ruby on Rails" id="p283" href="http://justaddwater.dk/pres%202006-06-01%20reboot.ppt" /></p>
<p><a title="Powerpoint presentation (1.11MB) Prototype driven development with Ruby on Rails" id="p283" href="http://justaddwater.dk/pres%202006-06-01%20reboot.ppt"> </a><a title="Powerpoint presentation (1.11MB) Prototype driven development with Ruby on Rails" id="p283" href="http://justaddwater.dk/pres%202006-06-01%20reboot.ppt"> </a><a id="p283" href="http://justaddwater.dk/wp-content/uploads/2006/06/pres%202006-06-01%20reboot.ppt">Prototype driven development with Ruby on Rails: Powerpoint version (1.11 MB)</a></p>
<p><a id="p285" href="http://justaddwater.dk/wp-content/uploads/2006/06/pres%202006-06-01%20reboot.pdf">Prototype driven development with Ruby on Rails</a><a href="http://justaddwater.dk/wp-content/uploads/2006/06/pres%202006-06-01%20reboot.pdf">:</a><a id="p285" href="http://justaddwater.dk/wp-content/uploads/2006/06/pres%202006-06-01%20reboot.pdf"> PDF version (1.04MB)</a></p>
<p><del>Request: Could somebody <strong>convert my Powerpoint to PDF?</strong></del></p>
<p><ins>Thanks to Thomas Maas and Guy Dickinson for converting to PDF!</ins></p>
<h3>Additional material</h3>
<p>Here are material if you are looking for more info:</p>
<ul>
<li><a title="Ruby on Rails Website" href="http://rubyonrails.org">Ruby on Rails</a></li>
</ul>
<p>Links to agile software development methods:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile software development</a> (wikipedia)</li>
<li><a href="http://en.wikipedia.org/wiki/Extreme_Programming">Extreme Programming</a> (wikipedia)</li>
<li><a href="http://en.wikipedia.org/wiki/Scrum_%28in_management%29">Scrum (in management)</a> (wikipedia)</li>
<li><a href="http://en.wikipedia.org/wiki/Lean_software_development">Lean software development</a> (wikipedia)</li>
<li><a href="https://gettingreal.37signals.com/">Getting Real</a> (37Signals)</li>
</ul>
<h3>Your feedback</h3>
<p>One more thing: I would really like your feedback! This is my <strong>first presentation in English</strong>, and also my first with many people (potentionally!) listening.</p>
<p>Furthermore, I only have ten minutes, so it will be a big challenge for me to get to the point. Hope you enjoy it.</p>
<p><small>Technorati Tags: <a href="http://technorati.com/tag/reboot" rel="tag">reboot</a>, <a href="http://technorati.com/tag/reboot8" rel="tag"> reboot8</a>, <a href="http://technorati.com/tag/conference" rel="tag"> conference</a>, <a href="http://technorati.com/tag/speaking" rel="tag"> speaking</a>, <a href="http://technorati.com/tag/ruby+on+rails" rel="tag"> ruby on rails</a>, <a href="http://technorati.com/tag/capgemini" rel="tag"> capgemini</a>, <a href="http://technorati.com/tag/copenhagen" rel="tag"> copenhagen</a>, <a href="http://technorati.com/tag/denmark" rel="tag"> denmark</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://justaddwater.dk/2006/06/01/my-talk-at-reboot8-prototyping/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

