Kings Of Code - Verslag

Chiel Wester do 02 jul 2009

Twee dagen geleden waren wij aanwezig bij Kings Of Code. Naast het mooie weer en de mooie locatie, was het een geslaagde dag met een aantal interessante presentaties.

De dag begon zeer goed met een energieke presentatie van @Alan. Iedereen was met stomheid geslagen toen bleek dat Alan ook nog eens een groot zangtalent bleek te zijn! Nadat iedereen in ieder geval goed wakker was na dit optreden herinnerde Alan ons er aan waarom we ook al weer web developers zijn geworden!

De dag werd nog beter na de demonstratie van Cappuccino door Francisco Tolmasky en Jorn van Dijk. Met cappuccino wordt het een fluitje van een cent om een fantastische webapplicatie te bouwen (althans het leek erg makkelijk in de demo). Bovendien kan je de applicatie die je hebt gebouwd ook beschikbaar maken als iPhone en Desktop-applicatie!

Na de pauze kon je kiezen uit 2 verschillende tracks:
De eerste ging over HTML5, terwijl de andere over CouchDB ging. Ik was aanwezig bij de presentatie over HTML5. HTML5 is de nieuwe HTML standaard en biedt allerlei componenten om het de developer een stuk makkelijker te maken. Voorbeelden zijn bijvoorbeeld video en audio tags, en diverse form-componenten zoals range en number. Uiteraard gelijk even uitproberen, en in Safari werkt in ieder geval het range input element.

Na HTML5 was het de beurt aan Thomas Fuchs en Amy Hoy om ons te vertellen hoe je de performance van een website aan Client side zo goed mogelijk kunt optimaliseren. Ook wisten ze te vertellen dat ze binnenkort een boek uitbrengen genaamd Javascript Performance Rocks!

Na de lunchpauze (lekkere broodjes) ging de dag verder met een goede presentatie van Chris Chabot over The Open & Social Web. Chris wist goed te vertellen waarom hier zoveel aandacht voor is, en op welke manier het mogelijk wordt om dingen uit te wisselen tussen verschillende social networks.

Vervolgens gingen we naar de presentatie waar we erg benieuwd naar waren: Geoffrey Grosenbach over Ruby On Rails. Helaas werden er geen verrassende dingen verteld over Ruby On Rails. Wel noemde Geoffrey een aantal van de grote voordelen van Ruby On Rails op en daarnaast ook enkele minpunten.

Met nog twee presentaties te gaan kwam als eerste Steven Pemberton vertellen hoe hij de toekomst van coding ziet. Allereerst begon Steven met een analyse van het verleden waarin hij een groot aandeel heeft gehad met onder andere de ontwikkeling van Python en zijn betrokkenheid bij de ontwikkeling van standaards bij W3C. Vervolgens gaf hij zijn visie over de ontwikkelingen die in de toekomst zullen plaatsvinden, waarin hij een grote rol weggelegd ziet voor XForms.

Tot slot een presentatie van Joe Stump, die betrokken is geweest bij de ontwikkeling van Digg.com. Hij ging in op de manier waarop men bij Digg omgegaan is met de enorme groei van de website en de daarbij behorende scaling issues. Hoe kan je ervoor zorgen dat je applicatie met miljoenen bezoekers nog steeds goed bereikbaar blijft? En hoe ga je om met een groeiend ontwikkelteam, hoe verdeel je dan de taken en teams?

Al met al was het een interessante dag met enkele goede, en enkele iets mindere, presentaties. Na afloop was het nog erg gezellig in de Escape!

Gepost in hor |  1 reactie

Kings Of Code

Chris Obdam do 18 jun 2009

Dit jaar is RubyEnRails is wederom community partner van Kings of Code. Op deze conferentie kun je onder anderen Geoffrey Grosenbach (PeepCode), Joe Stump (Digg.com), Thomas Fuchs (script.aculo.us), Chris Wanstrath (GitHub) en Anne van Kesteren (Opera) zien spreken over web development. Onderwerpen die o.a. aan bod komen: Ruby on Rails, HTML5, OpenSocial, CouchDB, Google App Engine, Git, Django, Performance, Scalability en SEO.

Kings of Code vindt plaats op 30 juni in het Tuschinski te Amsterdam. RubyEnRails fans krijgen € 20,- korting bij het gebruik van de volgende kortingscode: rubyenrails

Wij zijn aanwezig met een heuse RubyEnRails Lounge, kom dus gezellig even langs! Vorig jaar hebben we als Ruby on Rails adepten de zaal flink op stelten gezet. Moet dit jaar weer lukken.. :-)

Meer info en registratie op:
http://kingsofcode.org!

Gepost in hor |  0 reacties

Rails Security Issue

Chiel Wester do 04 jun 2009

Sinds gisteren is er op het Rails weblog te lezen dat er een security issue is ontdekt in rails. Het gaat om applicaties waar bepaalde gedeeltes worden afgeschermd middels de authenticate_with_http_digest functie. Deze functie zou false terug moeten geven bij een mislukte login, maar gaf in sommige gevallen nil terug waardoor de beveiliging omzeild kon worden.

De fix is inmiddels doorgevoerd in Rails 2.3-stable en zal ook in toekomstige versies doorgevoerd zijn. Iedereen die gebruik maakt van deze functionaliteit word dringend verzocht om de fix door te voeren!

Gepost in hor |  0 reacties

RubyEnRails 2009

Chris Obdam do 23 apr 2009

Straks is het weer zover, RubyEnRails 2009. We zijn druk bezig met de voorbereidingen. Leuk nieuw element aan de RubyEnRails dag dit jaar is dat we een geekdag organiseren op zaterdag! Tijdens deze dag is iedereen vrij om een workshop te organiseren of gezamenlijk aan een project te werken, later meer!

De website staat helaas nog niet live, maar via HOR wil ik alvast iedereen oproepen om een voorstel van je Ruby of Rails presentatie te sturen naar info@holder.nl.

We zijn erg benieuwd naar de voorstellen voor dit jaar!

Gepost in hor |  6 reacties

Project Euler

Dax Huiberts wo 15 apr 2009

Hier bij Holder houden wij natuurlijk hartstikke veel van programmeren en wij gaan altijd graag een uitdaging aan. Zo ben ik een tijd geleden al eens tegen Project Euler aangelopen en ben ik er afgelopen weekend maar eens echt mee aan de slag gegaan.

Project Euler is een reeks van wiskundige of wiskundig gerelateerde problemen die je met behulp van een programmeertaal naar eigen keuze kan oplossen. Deze problemen laten je goed nadenken over hoe bepaalde problemen op te lossen zijn. In het begin kan je nog wel recht toe recht aan oplossingen gebruiken, maar naarmate je verder komt loop je al snel tegen het probleem aan dat de berekeningen van de recht toe recht aan oplossing jaren in beslag zou nemen en kan je niet anders dan op zoek gaan naar een efficientere oplossing.

Op dit moment los ik de problemen op met Ruby, maar Project Euler is ook zeer geschikt om bekend te raken met een nieuwe programmeertaal. Leuk om bijvoorbeeld functioneel programmeren met Haskell hiervoor te gebruiken.

Op dit moment heb ik al 21 van de 240 problemen opgelost en zal ik in de comments laten weten hoe het vordert. Durf jij de uitdaging aan te gaan en te kijken wie er als eerste 100 problemen op heeft gelost?

Gepost in hor |  6 reacties

Rails Metal: Racen op metalen Ruby wielen

Chiel Wester do 09 apr 2009

Ik sta op deze site omschreven als ‘Snelheidswonder op Ruby wielen’. Dit houd niet alleen in dat ik snel kan programmeren, maar ook dat ik altijd op zoek ben naar manieren om de applicaties die ik bouw zo snel mogelijk te maken.

Vandaar dat ik bijzonder geïnteresseerd was in de nieuwe ‘Rails Metal’ functionaliteit die in Rails 2.3 is ingebouwd.

Metal? Wat is dat?
Rails Metal is zogenaamde Rack Middleware. What the hack is Rack? Rack is een klein framework waarmee je verschillende Ruby frameworks kunt koppelen met een Ruby Webserver zoals Thin of Passenger.

Doordat Ruby On Rails tegenwoordig ook gebruik maakt van Rack, kan je ook gebruik maken van de mogelijkheden die Rack biedt om zogenaamde middleware te koppelen. Een voorbeeld van deze MiddleWare is dus Rails Metal.

Waar is Metal voor?
Metal is speciaal gemaakt voor applicaties die specifieke functionaliteit herbergen die SUPER-DE-SUPER snel moet zijn, en die niet per se gebruik hoeft te maken van de routing en controller functionaliteiten van Rails.

Dat wil ik ook, hoe doe ik dat?
Het meest simpele voorbeeld van Metal is te vinden in dit artikel op het RubyOnRails weblog:

Eerst genereer je de metal class:

script/generate metal Poller

Naast de mapjes controllers, models, helpers en views krijg je het mapje metal met daarin de Poller class. Zet bijvoorbeeld in die file


class Poller
def self.call(env)
if env["PATH_INFO"] =~ /^\/poller/
[200, {"Content-Type" => "text/html"}, "Hello, World!"]
else
[404, {"Content-Type" => "text/html"}, "Not Found"]
end
end
end

En je bent al klaar! Ga naar http://localhost:3000/poller en je krijgt ‘Hello World!’. Look at all the things i’m not doing!

Je kunt in de metal class gewoon gebruik maken van ActiveRecord. Ook kan je eventueel een request object aanmaken om bijvoorbeeld de params in een hash te krijgen:

request = Rack::Request.new(env)
params = request.params

Gepost in hor |  2 reacties

Git Submodules

Chiel Wester do 02 apr 2009

In SVN maakten wij regelmatig gebruik van zogenaamde externals: repositories binnen je eigen repository om bijvoorbeeld externe plugins te includen en ervoor te zorgen dat deze plugins up-to-date blijven.

Nadat we vorig jaar overgestapt zijn op GiT, zijn we enige tijd op zoek geweest naar een vervanging voor de externals functionaliteit.

Giternal
We hebben een tijd lang gebruik gemaakt van Giternal. Met giternal kan je een plugin ‘freezen’ om er voor te zorgen dat de juiste versie van de plugin meegenomen word. Wanneer je een wijziging in de plugin wilt doen kan je unfreezen, de wijziging committen en weer freezen. Het nadeel hiervan bleek al heel snel: Iedere keer wanneer je een ‘freeze’ doet, maakt giternal een tar.gz aan van de .git directory. Deze tar.gz wordt steeds meegenomen bij het pushen van de root repository. Dit betekent dat je repository zeer snel groeit en bijvoorbeeld het clonen van de repository lang kan gaan duren.

De oplossing hiervoor wordt geboden door Git zelf: GIT submodules!

Git submodules
Git submodules werken ongeveer hetzelfde als svn externals: via het commando ‘git submodule add’ kan je een externe repository (een submodule) specificeren. Git maakt vervolgens het bestand .gitsubmodules aan in de root-map waarin gespecificeerd staat welke submodules er zijn.

Met het commando ‘git submodule update’ word de submodule repository daadwerkelijk gecloned in de opgegeven directory. Deze clone is standaard niet gekoppeld aan een branch.

Het grote voordeel van submodules is dat elke submodule gekoppeld wordt aan een specifieke commit. Wanneer je een volgende keer de root-repository gaat clonen voer je twee commando’s uit: ‘git submodule init’ en ‘git submodule update’ en de submodules worden gecloned met de juiste commit!

Capistrano
Blijft nog over: wat moet er bij het deployen gebeuren? Dan moeten de submodules uiteraard automatisch gecloned worden! Hier biedt capistrano de oplossing voor, simpelweg de parameter ‘git_enable_submodules’ toevoegen in de configuratie, en bij het deployen worden de submodules automagisch meegenomen.

Rest mij nog te melden dat submodules in Git beschikbaar zijn sinds versie 1.5.3, dus gebruik je nog een oude versie, dan zal er eerst geupdate moeten worden!

Gepost in hor |  0 reacties

Een kijk op Rails Templating

Martijn Jansen wo 25 maa 2009

In Rails 2.3 hebben we er een nieuwe methode bijgekregen om onze Rails Applicaties op te starten. Rails Templating.

Wat is het precies?
Met dit templating systeem kan je in een ruby file (voor het gemak noem ik deze even template.rb) specificeren welke gems/plugins e.d. je wilt gebruiken binnen je rails project. Bijv.


gem "authlogic"
plugin authentication’, :git => git://github.com/foor/bar.git

Hierdoor word je rails project zo ingesteld dat deze gebruik gaat maken van deze gem en plugin (Je kan ook een svn repository meegeven). Het is wel handig om te weten dat de gems niet worden geinstalleerd. Maar in je template bestand kan je ook aangeven dat je de gems wilt installeren. (Altijd handig)


rake "gems:install"

Mocht je deze rake in sudo willen uitvoeren, dan kan dit zelfs ook door gewoon simpel dit te doen:


rake "gems:install", :sudo => true

Iets anders wat ook altijd handig is, het verwijderen van je public/index.html. Dit kan heel makkelijk door het volgende in je template te specificeren.


run "rm public/index.html"

Als je een aantal standaard scaffolds wil genereren, kan dit ook!


generate(:scaffold, "person", "name:string", "address:text", "age:number")

En met de bijbehorende route.


route "map.root :controller => ‘people’"

En dan natuurlijk migraten.


rake db:migrate

Het is zelfs mogelijk om zelf bestanden aan te maken met dit templating systeem, dit is gewoon mogelijk door in je template bestand het volgende te specificeren.


file app/components/foo.rb’, <<-CODE
class Foo
end
CODE

Je kan ook vragen laten stellen door je template om zo tot bepaalde instellingen te komen, dit lijkt mij toch wel een van de leukste features.


lib_name = ask("What do you want to call the shiny library ?")
lib_name << ".rb" unless lib_name.index(".rb")

lib lib_name, <<-CODE
class Shiny
end
CODE

En de simpele “Yes/No” vragen, dit is vooral handig om een bepaalde flow te bepalen binnen de templates..


rake("rails:freeze:gems") if yes?("Freeze rails gems ?")

En last but not least, hoe maak je nu een rails project aan met de zojuist gemaakte template? Dat is heel simpel:

rails projectnaam -m ~/template.rb

Al met al is dit een erg leuke toevoeging aan Ruby on Rails. Hoop dat ze hiermee blijven door ontwikkelen en dat we met de tijd nog veel meer mogelijkheden krijgen. Benieuwd of er nog meer mogelijkheden zijn? Probeer het zelf eens uit!

Gepost in hor |  0 reacties

Rails 3

Stephan Kaag vr 20 maa 2009

Terwijl Rails 2.3 net officieel het licht heeft gezien wordt er achter de schermen alweer gewerkt aan Rails 3.

Wat de trouwe lezers van de blog natuurlijk weten is dat Rails 3 de versie wordt waarin Rails en Merb verder samen door het leven gaan.

Eén van de ontwikkelaars die op de achtergrond al druk bezig is met de codemerge is Yehuda Katz (wycats). Op zijn weblog is vandaag een interessant in-depth artikel te vinden over de codemerge, deze keer specifiek gericht op de AbstractController.

Gepost in hor |  0 reacties

Rails 2.3 Final (2.3.2)

Martijn Jansen di 17 maa 2009

In navolging op een eerder artikel gepost door Stephan, Rails 2.3 is final! De final versie heeft uiteindelijk versie nummer 2.3.2 meegekregen

Enkele benoemenswaardige features die in deze versie van Rails zitten, overgenomen van het officiële blog.

Templating
Een default template voor je nieuwe rails applicatie vol met je everyday gems, plugins en configs en meer!

Engines
Rails applicaties embedden in Rails applicaties. Een sterk verbeterpunt ten opzichte van eerdere versies hiervan is dat je routing files in de engines nu ook automatisch reloaden net zoals je routes.rb. Als er een app folder bestaat in een engine, dan worden de views/models/controllers/helpers automatisch toegevoegd aan de load path van Rails. Ook de routes in plugins worden automatisch herladen.

Rack
Rails draait nu op Rack, en geeft je toegang tot alle leuke Rack Middleware. Wil je hier meer over lezen? Kijk dan even in de Patch notes van Rails 2.3, daar staat een gedetaileerde omschrijving.

Metal
Metal, kortgezegd een manier om dingen razendsnel uit te voeren. Metal classes gaan buiten de routings en ActionController om en zijn bedoeld voor pure snelheid. Dit gaat wel ten koste van de functionaliteit bruikbaar binnen ActionController

Nested forms
Vaak was dit een heel lastig onderwerp, nested forms.. maar nu niet meer! In deze versie van Rails is het principe nested forms sterk verbeterd en goed bruikbaar.

Zie hier een voorbeeld van nested forms.

Dit was Rails 2.3 in a nutshell, nu is het wachten op de volgende versie!

Gepost in hor |  0 reacties

Welkom op Holland On Rails

Het startpunt voor Ruby On Rails in Nederland. Vind de laatste technieken, meningen en nieuwtjes.

Recente Jobs

Die-Hard programmeur!

Houd jij van bowlen en The A-team? Kom dan bij ons werken! Wij ontwikkelen alleen maar in Rails, dus feest! Daarnaast hebben we Herman Miller stoelen!
(Zomaar een leuk project welke we gemaakt hebben: mijnopenid.nl)

@ Holder, Obdam

Stagiaires zijn welkom

voor opdrachten met leading edge open source technologiën. We bieden zorgvuldige en inhoudelijk goede begeleiding.

@ Agile Dovadi, Amsterdam

Bekijk alle jobs »»

Gereedschapskist

Onmisbare tools voor
iedere developer!
Ruby On Rails
Framework voor de web 2.0 developer. Eindelijk vooruitgang!
TextMate
Editor for true pro's
Typ, tab, top :-)
Nee, niet voor Win.
Made On A Mac
En nou is het over met die saaie grijze Windows bak van je!

Auteurs op deze site

Chris Obdam

'Less is more' evangelist, past dit ook dagelijks toe op zijn tandenborstel.

Chiel Wester

Snelheidswonder op Ruby wielen. Leuk om mee te pair-programmen ;-) Recommend Me

Stephan Kaag

Het eerste Rails coreteam- member uit Nederland? Rails evangelist van het eerste uur.

Paul Engel

Én Rails programmeren én interfaces designen? Je zou hem superman kunnen noemen..

Robbert Dol

Droomt Ruby code, wat anderen een nachtmerrie noemen is voor hem een prettige droom.

Freek Monteban

Het nieuwste telg uit het Holland on Rails nest! Hij doet niets anders meer!