Geplaatst door Michiel de Mare
wo, 15 nov 2006 03:37:00 GMT
Op 19 december zal Charles Nutter bij Finalist in Rotterdam een lezing geven over zijn werk aan JRuby. Toegang is gratis.
Je kunt er hier meer over lezen, en je alvast opgeven. Wacht niet te lang, er is een beperkt aantal plaatsen.
Hopelijk zien we jullie daar!
Update: fix link
Geplaatst in ruby, events | 2 reacties
Geplaatst door Matthijs Langenberg
di, 14 nov 2006 11:38:00 GMT
Al sinds de
web-2.Oh hype gestart is worden mooie
URL’s als
/articles/show/my-first-article
en
/users/profile/quentin
geprefereerd boven
/articles/show/324
en
/users/profile/1225
.
Maar er kleven ook grote nadelen aan
URL’s als
/categories/meat/recipes/chunky-bacon
,
je stapt in feite van het gebruik van oplopende integers voor
primary keys af.
Wat is het nut van je id
veld in je articles
tabel wanneer je
in je URL’s het title
veld gebruikt om artikelen de identificeren?
Want wat gebeurd er wanneer een gebruiker de titel van een artikel aan zou passen?
Lees verder...
Geplaatst in ruby on rails, tips | 3 reacties
Geplaatst door Michiel de Mare
zo, 05 nov 2006 06:16:00 GMT
Stel, je hebt het volgende probleem: je hebt een ‘roman’ object, en je wil de coördinaten van het adres van de schrijver weten, zodat je die kan tonen in je nieuwe google maps mashup. Dat lijkt simpel:
roman.schrijver.adres.postcode.to_coordinates
Deze constructie, waarbij een aantal methodes aan elkaar worden geschakeld en de output van de ene de input van de volgende is, is een Design Pattern. Ik noem hem ‘De Lopende Band’.
Lees verder...
1 reactie
Geplaatst door Matthijs Langenberg
do, 02 nov 2006 07:18:00 GMT
In de komende release van Rails gaat REST een belangrijke rol spelen, maar wat is REST nu eigenlijk?
REST staat voor
REpresentational State Transfer, dit betreft het opvragen en wijzigen van
resources waarbij
gebruik wordt gemaakt van de vier standaard
HTTP request methoden (namelijk:
GET
,
POST
,
PUT
en
DELETE
).
REST is gebaseerd op het feit dat elke
HTTP methode een te ondernemen actie op
een resource (een ‘model’) vertegenwoordigt. Dit maakt het mogelijk om dezelfde
URL voor meerdere acties te gebruiken.
Stel dat ik het eerste artikel van een blog zou willen opvragen:
En nu wil ik hetzelfde artikel verwijderen:
Zoals je ziet blijft de
URL hetzelfde en gebruik ik alleen een ander
HTTP request.
Aangezien requests binnenkomen bij een controller houd dit dus in dat er een mapping plaatsvind van
HTTP methode
naar controller actie en wel als volgt:
HTTP verb |
Controller Action |
CRUD Action |
GET |
show |
READ |
POST |
create |
CREATE |
PUT |
update |
UPDATE |
DELETE |
destroy |
DESTROY |
Lees verder...
Geplaatst in ruby on rails, edge | 4 reacties
Geplaatst door Matthijs Langenberg
ma, 23 okt 2006 11:28:00 GMT
Binnenkort ga ik een serie artikelen schrijven over de nieuwe features die in edge rails, de ontwikkel versie van rails (ook wel trunk genoemd), te vinden zijn.
Om jullie daar van mee te kunnen laten genieten vertel ik eerst hoe het mogelijk is om een applicatie in edge rails te laten draaien.
De makkelijkste methode is om de meegeleverde
rake taken te gebruiken.
Door in een bestaande rails applicatie
rake rails:freeze:edge
uit te voeren wordt er een checkout van de trunk in ‘vendor/rails’ gedaan.
Echter de directories en bestanden die gegenereerd zijn toen je
rails my_app_name
uitvoerde zijn niet bijgewerkt,
hier is ook aan gedacht (uit
rake --tasks
):
rake rails:update # Update both configs, scripts and public/javascripts from Rails
.
rails my_edge_app
cd my_edge_app
rake rails:freeze:edge
rake rails:update
Hoewel ik het volste vertrouwen in de meegeleverde rake tasks heb geef ik toch de voorkeur aan een andere aanpak.
Als ik nu eerst eens een checkout doe van de trunk versie en daar het ‘rails’ script uit vis,
weet ik zeker dat mijn gehele applicatie ‘edge’ is, dit doe je op de volgende manier:
mkdir -p my_edge_app/vendor
cd my_edge_app
svn export http://dev.rubyonrails.org/svn/rails/trunk vendor/rails
ruby vendor/rails/railties/bin/rails
Wanneer je deze applicatie gaat importeren in subversion is het aan te raden om de vendor/rails map eerst te verwijderen voor de import te doen,
hiermee voorkom je namelijk dat je de hele rails trunk meeneemt subversion in.
Wanneer je subversion gebruikt is het aan te raden om de rails trunk als externals te gebruiken (dit is dus alleen mogelijk met een project in subversion).
svn propset svn:externals "rails http://dev.rubyonrails.org/svn/rails/trunk/" vendor
svn update #Zal de laatste trunk in vendor/rails plaatsen.
Elke keer als
svn update
wordt uitgevoerd zal vendor/rails ook geupdate worden.
You live on the edge!
Volgens mij maakt het niet uit welke van de twee methoden gebruikt om edge rails te gebruiken, persoonlijk geef ik de voorkeur aan de laatste,
maar er zullen ongetwijfeld nog andere methoden zijn.
In ieder geval kun je nu gebruik maken van de nieuwste features, waarvan ik RESTful routes en ActiveResource de meest indrukwekkende features vind, hierover later meer.
Geplaatst in ruby on rails, edge | geen reacties
Geplaatst door Danny Lagrouw
ma, 16 okt 2006 10:04:00 GMT
LogicaCMG organiseert een aantal gratis toegankelijke sessies onder de noemer Guru4Pro. Op donderdagavond 2 november a.s. zal guru Chad Fowler een sessie verzorgen over innovaties in softwareontwikkeling. Hij zal in deze Guru4Pro ingaan op de kerninnovaties binnen het Rails framework (en de hype daarachter), met de bedoeling om de geleerde lessen naar andere omgevingen, zoals Java/J2EE, te vertalen die daar hun voordeel mee kunnen doen.
Chad Fowler is o.a. auteur van Rails Recipes en co-auteur van de Pickaxe, is organisator van RubyConf en RailsConf, en geeft regelmatig workshops over Ruby on Rails.
Deelname aan deze avond (inclusief diner en meet&greet met Chad) is geheel gratis. Voor meer informatie en aanmelding: www.logicacmg.com/nl/guru4pro.
Geplaatst in ruby, ruby on rails, events | 4 reacties
Geplaatst door Remco van 't Veer
do, 12 okt 2006 00:12:00 GMT
Laatst sprak ik iemand die rails gebruikt om prototypes te bouwen voor J2EE web applicaties omdat het zo lekker snel werkt. Het uiteindelijke project wordt uitgewerkt in J2EE. Ten opzichte van J2EE is er met rails erg snel iets in elkaar te zetten maar wat doe je als je een prototype nodig hebt voor een rails site?
Je kan natuurlijk gewoon beginnen met rails fancy_shit
en los gaan. Vroeg in de ontwerp fase van een project vind ik dat een beetje overkill, als je alleen maar een beetje wilt goochelen met een paar objectjes om gevoel te krijgen voor het probleem wat je probeert op te lossen.
versus
Gelukkig is er iets veel beters dan rails voor dit soort dingen!
Lees verder...
Geplaatst in ruby | 3 reacties
Geplaatst door Michiel de Mare
ma, 25 sep 2006 04:41:00 GMT
Afgelopen maand heb ik, gesponsord door mijn werkgever, aan een Rails project gewerkt. Lees er hier meer over.
geen reacties
Geplaatst door Remco van 't Veer
za, 23 sep 2006 05:37:00 GMT
Vorige week was ik in London om RailConf Europe bij te wonen. Het waren 2 dagen maal 4 tracks met in totaal 40 presentaties. Helaas heb ik ze niet allemaal bij kunnen wonen. Zie voor wat ik wel bij heb gewoond m’n privé blog artikelen over de eerste en de tweede dag.
Lees verder...
Geplaatst in ruby on rails, events | geen reacties
Geplaatst door Michiel de Mare
do, 07 sep 2006 05:07:00 GMT
Er zijn een paar dingen die ik regelmatig tegenkom in Ruby, en waarvan ik denk dat het makkelijker kan. Dit bijvoorbeeld:
x = foo(y)
return x if x
Wat ik liever zou zeggen is:
only_return_if foo(y)
Een andere is dit:
x = {}
arr.each {|o| x[o] = foo(o) }
Hier zou ik liever zeggen:
arr.make_hash {|o| [o, foo(o)] }
Of de tegenhanger:
x = {}
arr.each {|o| x[o.foo] = o }
Dat schrijf ik liever als:
arr.key_hash &:foo
Voor het bovenste probleem heb ik geen oplossing – de andere kan ik zelf wel aan array toevoegen, maar ik gebruik veel liever een oplossing zonder ‘monkey patching’.
8 september: Update
Het kan! Niet met mijn syntax, maar wel iets vergelijkbaars:
def iff(a)
yield a if a
end
def foo(a)
iff(a) {|x|return x}
'het mocht niet zo zijn'
end
foo('ja!') => 'ja'
foo(nil) => 'het mocht niet zo zijn'
Geplaatst in ruby | 5 reacties