Aftellen tot de Rad Race

Geplaatst door Michiel de Mare wo, 28 maa 2007 08:15:00 GMT

Vorig jaar hebben Remco en ik meegedaan aan de Rad Race, een wedstrijd waarin aan de hand van een functioneel ontwerp een “enterprise”-achtige applicatie gebouwd moet worden. Tot onze verrassing werden we tweede – we hadden namelijk genoeg fouten gemaakt, zoals op het laatste moment Ruby code inchecken met syntax errors.

Dit jaar zijn we beter voorbereid – we zijn een jaar Rails-ervaring rijker, hebben betere tools, en zijn helemaal RESTful. De winnaars van vorig jaar staan diep bij ons in de schulden. Bovendien weten we al wat we moeten bouwen: een webshop. Kortom, het enige dat er kan misgaan is dat het verkeerde rails-team wint ;-)

Geplaatst in ,  | 5 reacties

Automated Continuous Integration voor Ruby en Rails

Geplaatst door Matthijs Langenberg ma, 26 maa 2007 18:27:00 GMT

Een veelgebruikte techniek binnen extreme programming is het doorlopend uitvoeren van integratietesten, dit wordt continuous integration genoemd.

Hierbij wordt frequent de volledige testcyclus doorlopen, welke stappen als het compilen van de applicatie, het uitvoeren van geautomatiseerde testen en het packagen van een applicatie kan bevatten. In Rails terminologie zou je kunnen denken aan het uitvoeren van een rake taak zoals rake test of rake spec, maar ook het genereren van een rubygem.

Een geautomatiseerde versie van dit proces is bekend als Automated Continuous Integration dit houdt in dat een versiebeheersysteem continu gecontroleerd wordt op wijzigingen en wanneer er een wijziging gedetecteerd wordt het volledige build proces automatisch uitgevoerd wordt. Wanneer er tijdens de integratietest een fout optreedt (een unit test faalt bijvoorbeeld) dan is het mogelijk om elke ontwikkelaar automatisch op de hoogte te stellen d.m.v. een email, sms of een instant message.

De volledige test suite wordt automatisch bij elke commit uitgevoerd en zodoende wordt continu de gezondheid van je applicatie(s) gecontroleerd.

Bij Newminds maken wij hiervoor gebruik van CruiseControl.rb. Dit is een Continous Integration tool geschreven in Rails waarin het mogelijk is om applicaties geschreven in o.a. Ruby, Rails, Java en C++ automatisch te compilen en te testen wanneer er een commit op de centrale subversion repository is gedaan.

In dit artikel beschrijf ik hoe je zelf CruiseControl.rb op kunt zetten, hoe we een standaard Ruby project erin opnemen en wil ik laten zien hoe de functionaliteit op basis van plugins uit te breiden is.

Lees verder...

Geplaatst in ,  | geen reacties

RubyEnRails 2007

Geplaatst door Danny Lagrouw di, 20 maa 2007 20:29:00 GMT

Update 10 maart: de datum is nu vast gesteld op 7 juni

Binnenkort is het weer zover. Een nieuwe Ruby En Rails dag. Vorig jaar was het een zeer geslaagde, zonnige en gezellige dag waar veel Rails en Ruby enthousiastelingen aanwezig waren.

Ook voor dit jaar zijn we bezig om weer een dag te organiseren. Er wordt druk gezocht naar een locatie (waarschijnlijk Amsterdam) en we zijn aan het inventariseren welke sprekers uitgenodigd worden. Waarschijnlijk zal het allemaal plaatsvinden op 31 mei 7 juni.

Heb je zelf nog goede ideeën of verzoeken m.b.t. sprekers op deze dag, laat het achter in de comments of stuur een e-mail naar danny apenstaart rubyenrails.nl.

We zijn op zoek naar sprekers voor:
  • Presentaties van 45-50 minuten;
  • Lightning Quickies™ van 5-15 minuten.
Mogelijke onderwerpen:
  • Handige Ruby libraries (gems)
  • Rails plugins
  • Interessante real-world toepassingen van Rails
  • Tips & truuks, leuke vondsten, enzovoorts

Geplaatst in , ,  | 3 reacties

OpenID

Geplaatst door Michiel de Mare di, 06 maa 2007 13:51:00 GMT

OpenID is helemaal in, de laatste tijd. uzy.nl heeft een interessant artikel over wat het is en wat de voor- en nadelen zijn. Simon Willison noemt zes dingen waar je OpenID voor kunt gebruiken. De jongens van HollandOnRails hebben hun eigen provider geschreven (in RubyOnRails natuurlijk). En DHH is bezig om OpenID in Rails 2.0 te integreren. En voordat het zover is kun je al aan de slag met OpenID, volgens Dan Webb. Ik heb het geprobeerd en met de ruby-openid gem is het echt triviaal.

Ik vroeg me af of je binnen je applicatie exclusief open-id kunt gaan gebruiken, in plaats van als extra functionaliteit voor gebruikers die al een OpenID hebben. Maar ik denk van niet. Want dat betekent ofwel dat je je gebruikers moet doorverwijzen naar een OpenID-provider. En hoeveel gebruikers zullen niet begrijpen wat er gebeurt en afhaken? Ik denk dat je meer dan de helft van je potentiële gebruikers verliest. De OpenID-providers die ik heb gevonden waren niet erg gebruikersvriendelijk. Je wilt tenminste je logo kunnen zetten op de registratie-pagina. Meertalige providers heb ik al helemaal niet gevonden.

Het alternatief is dat je zelf een OpenID-provider wordt. Voor sommige sites kan dat voordelen hebben, zoals sites als AOL, Yahoo en LiveJournal, die een enorm aantal gebruikers hebben. Voor de meeste sites heeft het geen voordelen, vergeleken bij een normale registratieprocedure. Bovendien moet je je gebruikers voorlichten over OpenID, terwijl je ze eigenlijk alleen maar wilt vertellen wat er zo fantastisch is aan jouw eigen site.

Heeft OpenID de toekomst? Heel veel hangt af van Google en Yahoo. Ik gebruik zelf nog geen enkele site waar ik OpenID voor nodig heb, hoewel dat gaat ongetwijfeld snel veranderen. Maar ik heb een flink aantal accounts bij Google en Yahoo. Als ik daar een OpenID aan kan koppelen ben ik meteen om!

Als toetje nog een geweldig presentatie van Dick Hardt over “Identity 2.0”. Een echte aanrader!

Geplaatst in , ,  | 2 reacties

YelloYello: Beter dan Microsoft met Ruby On Rails

Geplaatst door Danny Lagrouw za, 03 maa 2007 14:17:00 GMT

Op een Rails Coffee Morning ergens vorig jaar sprak ik nog met Rails-ontwikkelaars die moeite hadden om werk te vinden. In een paar maanden tijd lijkt de situatie behoorlijk anders: ik krijg nu met enige regelmaat mails van bedrijven die Rails-ontwikkelaars zoeken. De Ruby- en Rails-revolutie voltrekt zich as we speak. Eén van die bedrijven is YelloYello, een startup die dringend op zoek is naar Rails’ers.

YelloYello was onlangs in het nieuws als deelnemer aan Ben jij beter dan Microsoft?. In een interview per email vroeg ik bedenkers Joost Hietbrink en Mik Nijhuis naar hun ervaringen met Rails.

Danny: Wat is YelloYello? Staat internet nog niet vol genoeg met bedrijvengidsen?

Mik & Joost: YelloYello.com is de nieuwe online bedrijven gids! Er zijn inderdaad genoeg bedrijvengidsen.. allemaal hetzelfde.. simpelweg NAW-gegevens opzoeken.. en dat doet iedereen toch wel via Google. Wij zijn als enige compleet ‘anders’.

Bij YelloYello staat niet de adverteerder maar de consument centraal. Bij ons bepaalt de consument welk bedrijf bovenaan komt in de zoekresultaten. Je meldt je aan, nodigt vrienden uit en deelt je ervaringen over bedrijven door het geven van een score. Het resultaat is dat je met YelloYello de beste bedrijven vindt in plaats van de bedrijven die het meest betalen om bovenaan te komen. Je kunt het zien als een bedrijvengids met een sociaal sausje. Binnen YelloYello zijn aanbevelingen van vrienden (waar moet ik zijn voor een goede loodgieter of de beste advocaat) direct verwerkt in de zoekresultaten. Je kunt bij ons dus wel zinvolle zoekresultaten verwachten. Dit zet het traditionele business model volledig op z’n kop!

Een heuse Hollandse Web 2.0 site: YelloYello

Naast het kwaliteitsaspect van bedrijven heeft YelloYello ook veel meer informatie zoals foto’s, uitgebreide beschrijvingen, evenementen, bedrijfsnieuws, lokaal nieuws, politieberichten in de buurt, ervaringen van anderen, waar kan ik met mijn Dinercheque betalen en meer. Door al deze extra informatie ken je het bedrijf al voordat je er zaken mee doet! Je hoeft dus niet meer te beslissen op basis van alleen een bedrijfsnaam en telefoonnummer.

Lees verder...

Geplaatst in  | Tags , , ,  | geen reacties

Server up in een paar minuten met deprec

Geplaatst door Remco van 't Veer do, 01 maa 2007 08:38:00 GMT

Opzoek naar capistrano recepten liep ik een paar dagen geleden tegen deprec aan. Deprec is een setje capistrano recepten om een server productie klaar te maken voor Rails applicaties.

De huidige versie is erg goed in het optuigen van een schone Ubuntu server installatie. Na het draaien van het install_rails_stack recept is de machine verrijkt met Apache 2.2, RubyGems, Rails met dependencies en Mongrel met Mongrel Cluster. Of wel dé Ruby on Rails setup van dit moment.

Maar daar stopt het niet. Deprec kan databases aanmaken en SVN repositories voor je Rails applicatie. Het enige wat je nog op de server hoeft te doen is er je SSH key neer zetten en afentoe apt-get update && apt-get upgrade te draaien.

In de wiki van slicehost staat een uitgebreid artikel over het in productie zetten van een Rails applicatie. En ik sluit me graag bij hen aan “Mike Bailey Earns a Beer”.

Geplaatst in ,  | 2 reacties

Nieuwe ontwikkelingen

Geplaatst door Michiel de Mare vr, 23 feb 2007 16:03:00 GMT

Een hoop nieuwe ontwikkelingen de laatste tijd. Gisteren was rubyenrails.nl bij de door fngtps georganiseerde Coffee Meeting in Amsterdam, de derde alweer, en het wordt er steeds drukker!

Zelf moest ik vroeg weg om op de Universiteit van Utrecht een gastcollege te geven over Ruby aan zo’n 25 informaticastudenten. Dat was een leuke ervaring – veel enthousiasme en veel vragen van de studenten, die momenteel worden grootgebracht op een dieet van voornamelijk Java. Welke universiteit/hogeschool is de eerste om Ruby te geven?

RailsConf is bijna uitverkocht, maar wij zijn er niet bij – Portland is net een stap te ver. Wij proberen wel om in september in Berlijn te zijn! Zien we jullie daar ook terug?

Dan is er natuurlijk de RailsDag – in mei alweer een jaar geleden. Komt er een vervolg? Wij hopen van wel, maar een enthousiaste organisator is nog niet gevonden.

Tenslotte doen wij een nieuwe aanval op de eerste plek in de RAD Race. We zijn inmiddels ouder en wijzer, hebben veel geleerd van onze fouten vorig jaar, toen we tweede werden, en bovendien is Rails nu op versie 1.2 i.p.v. 1.0, en zijn er een stuk meer plug-ins beschikbaar.

We twijfelen alleen over scaffolding. Scaffolding is essentiëel tijdens een wedstrijd, maar wat te gebruiken? De standaard? Ajax-scaffold? Streamlined? Of misschien Hobo?

Wat denken jullie?

Geplaatst in , , ,  | 2 reacties

Hulp gezocht bij maltmaps.com

Geplaatst door Remco van 't Veer wo, 21 feb 2007 08:24:00 GMT

Han is aan het prutselen met Rails en Google Map, en zoekt hulp om van MaltMaps iets mooist te maken.

Hallo,

Ik heb met mijn gebrekkige kennis een Rails Applicatie bij elkaar geprutseld en ik heb ook veel ideeën om het verder uit te breiden. Maar ik merk steeds meer dat het vrij lastig is om mijn ideeën in mijn eentje waar te maken, vooral door mijn gebrekkige web design kennis.

Kunnen jullie misschien op jullie blog een oproep voor me zetten voor vrijwilligers voor mijn project.

Mijn project is te vinden op: www.maltmaps.com.

Mijn dank

Han de Jong

Dus.. hou je van malts en zoek je een excuus om dat nieuwe boek over Google Map en Rails te kopen. Stuur dan een mailtje naar Han.

Geplaatst in ,  | 1 reactie

Schaamteloos scaffolden met Hobo

Geplaatst door Danny Lagrouw zo, 14 jan 2007 14:59:00 GMT

Dat je met scaffolding sneller dan de bliksem een simpele CRUD-applicatie kunt genereren, dat weten we nu wel zo langzamerhand. Het is meestal het eerste dat een nieuwe Rails-gebruiker uitprobeert. En natuurlijk vind je als “echte” Rails-gebruiker scaffolding maar niks, en gebruik je het nooooit. Tot je een keer gevraagd wordt om Rails te demonstreren. Dan maak je dankbaar gebruik van scaffolding om de kracht van Rails te laten zien. De oooh’s en aaah’s zijn niet van de lucht—mits je het slim doet! Stap snel over op het volgende onderwerp en geef je publiek niet de kans om te lang over scaffolding na te denken. Anders kom je snel in een spervuur van lastige vragen terecht:
“Als je zelf iets wilt veranderen is het zeker niet meer zo gemakkelijk?”
“Dit kun je zeker niet in productieapplicaties gebruiken?”
“Die gegenereerde code ziet er best ingewikkeld uit!”
“Dit werkt zeker niet met mijn ingewikkelde legacy-database?”
Enzovoort. Weet wat je doet als je scaffolding gebruikt—en ook als je het demonstreert.

Toch geloof ik wel in scaffolding. Ja, voor prototyping natuurlijk, dat ligt voor de hand. Maar ik zie zeker ook gebruiksmogelijkheden in de uiteindelijke applicatie. Misschien niet voor een hippe, flashy website, maar wel voor de achterliggende beheerschermen.

En dan zijn er natuurlijk ook weer mensen die vinden dat het mooier kan. We hadden al ajax_scaffold, een ge-Ajaxde versie van scaffold. We zagen Streamlined voorbijkomen. En nu kwam ik, op mijn (nog niet voltooide) zoektocht naar custom HTML tags in Rails views, Hobo tegen.

Hobo, een Rails plugin, biedt inderdaad de mogelijkheid om custom HTML tags te definieren in Rails. Dat betekent dat je in je view zelfbedachte tags kunt gebruiken, zoals:

<def tag="time"><%= Time.now %></def>
<p>The time is <time/></p>

De tag-definities kunnen gelukkig ook in een apart bestand ondergebracht worden.

Custom tags is echter maar een onderdeel van wat Hobo te bieden heeft. Door een aantal extensies op ActiveRecord, themes support en slim gebruik van custom tags wil bedenker Tom Locke het ontwikkelen van Rails applicaties nog sneller en gemakkelijker maken. En ook hij biedt met Hobo de mogelijkheid om in luttele minuten een volledig werkende applicatie in elkaar te genereren, compleet met authenticatie, autorisatie en natuurlijk een indrukwekkende screencast. Ik vraag me nog wel af hoe makkelijk het is als je zelf iets wilt veranderen aan de gegenereerde code. En of je dit wel in productieapplicaties kunt gebruiken. En of dit wel met mijn ingewikkelde legacy-database werkt. Enzovoort…

De voorbeeldapplicatie die in de Hobo screencast gegenereerd wordt.

Geplaatst in ,  | 2 reacties

assert_select, HTML::Selector en spinnen

Geplaatst door Remco van 't Veer di, 02 jan 2007 19:41:00 GMT

In Rails-1.2 is de assert_tag methode deprecated geworden ipv daarvan hebben we assert_select gekregen. Dat is mooi want van:
assert_tag :tag => 'div', :attributes => {
  :class => 'articles'
}, :descendant => {
  :tag => 'div', :attributes => {
    :id => "article_#{articles(:first).id}"
  }, :descendant => {
    :tag => 'h1'
  }
}
word ik een beetje scheel. De mensen bij W3C hebben een zeer krachtig taaltje ontwikkeld om dit soort selecties te doen, de CSS selectors, en assert_select geeft de mogelijkheid deze taal te gebruiken in functionele en integratie tests:
assert_select "div.articles div#article_%s h1" % articles(:first).id

Ik ben zo enthousiast dat ik zo’n selector ook in m’n test wil gebruiken om links uit m’n HTML te peuteren waarmee ik dan weer andere tests kan doen. Om precies te zijn, ik wil een spider integratie test welke gewoon alle links in m’n applicatie volgt.

Lees verder...

Geplaatst in ,  | 5 reacties

Oudere artikelen: 1 2 3 4 5 6 ... 9