JRuby bijeenkomst geslaagd

Geplaatst door Remco van 't Veer wo, 20 dec 2006 10:30:00 GMT

De JRuby bijeenkomst die gisteren door Finalist georganiseerd is in Rotterdam was een groot succes. Een goede opkomst van tegen de 50 man en natuurlijk super helden Charles en Thomas.

Charles heeft een introductie Ruby gegeven en daarna JRuby gedemonstreerd met jirb (zie ook de webstart versie van Thomas). Een beetje Java Swing in JRuby, windowtje maken met een knop en een label erop. Daarna heeft hij een kleine Swing DSL laten zien; swingbuilder. Vooral die laatste was erg leuk omdat dat goed laat zien waarom het goed is om Ruby te hebben op het Java Platform. Lompe stukken Java code kunnen zo gemakkelijk ver-DSL-t worden.

Na een korte pauze heeft Thomas een Rails inleiding/demo gegeven op JRuby. Daarna heeft Charles nog het aanroepen van EJB’s laten zien en een development build van Netbeans laten zien waar al wat Ruby en Rails support in zit.

Erg leuke avond, hopelijk komt er binnenkort weer een kans om een super ster te ontmoeten!

Geplaatst in , , ,  | 1 reactie

Rails en VIM

Geplaatst door Michiel de Mare ma, 18 dec 2006 12:41:00 GMT

Het wordt tijd om eens wat meer aandacht te besteden aan je ontwikkelomgeving voor Rails. Er zijn een aantal veelgebruikte keuzes: RadRails (voor Eclipse), de JRuby jongens zijn enthousiast over Netbeans, alle rails core-developers schijnen TextMate te gebruiken, maar ik gebruik gewoon VIM!

Er is een Rails-plugin die extra functionaliteit toevoegt aan VIM. Een van de belangrijkste features is navigatie: met gf ga je naar de file waar je cursor boven staat, met :R en :A ga je naar de ‘related’ (bv. migration voor een model) of de ‘alternate’ (bv. functionele test voor een controller) file.

Verder is er een :Rpreview functie om de actie van de controller waar je cursor in staat te openen in een browser. Ook zijn er wrappers voor alle scripts, zodat je bv. generate controller kunt doen en meteen de nieuwe controller geopend wordt.

Er is ook een hele lijst met afkortingen, zodat je alleen ‘pa[’ hoeft te typen in plaats van ‘params[’, en :a voor ’:action => ’.

Al met al van harte aanbevolen voor Vimmers!

Geplaatst in  | 1 reactie

JRuby lezing: laatste kans

Geplaatst door Michiel de Mare ma, 18 dec 2006 12:40:57 GMT

Morgen vindt de lezing over JRuby door Charles Nutter plaats in Rotterdam. Het is nog niet te laat om je hier op te geven.

We hopen jullie daar te zien!

Geplaatst in  | geen reacties

Artikel over Ruby en Rails in Informatie

Geplaatst door Danny Lagrouw do, 07 dec 2006 20:19:00 GMT

In het enterprise-verantwoorde tijdschrift Informatie (november 2006) is een inleidend artikel over Ruby en Ruby on Rails geplaatst. Een mooie gelegenheid om RoR onder de aandacht te brengen van een nog groter publiek. Het artikel is hier als pdf (1MB) te downloaden; zie verder ook de site van Informatie.

P.S. Jaja, het staat natuurlijk vol met fouten die alleen de echte RoR-kenners er uit halen. Kom maar op met dat commentaar!

Geplaatst in , ,  | 3 reacties

Vriendelijke URI's

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 ,  | 3 reacties

RESTful Rails

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:
 GET /articles/1 
En nu wil ik hetzelfde artikel verwijderen:
 DELETE /articles/1 
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 ,  | 4 reacties

Living on the edge

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 ,  | geen reacties

Guru-sessie met Chad Fowler in Delft

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 , ,  | 4 reacties

RailsConf Europe was een succes!

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 ,  | geen reacties

Twee Procs

Geplaatst door Michiel de Mare do, 31 aug 2006 13:22:00 GMT

Eén van de leuke uitbreidingen van Rails op Ruby is de to_proc methode in de Symbol class. Op een plek waar Ruby een Proc verwacht (na een ampersand bijvoorbeeld) maar een ander object tegenkomt, roept Ruby de to_proc methode van dat object aan, die, indien aanwezig, een proc teruggeeft die gebruikt kan worden. Voorbeeld: ['hallo','lezertjes'].map &:upcase geeft ['HALLO','LEZERTJES'].

Ook argumenten worden ondersteund. Als je map bijvoorbeeld aanroept op een Hash worden er twee argumenten (key en value) meegegeven. Om de key door de value te delen doe je dit: {33 => 11,39 => 3}.map &:div, wat geeft [3,13].

Er is alleen één probleem. Ruby maakt geen onderscheid tussen arrays en meerdere argumenten. De to_proc implementatie gaat uit van meerdere argumenten; probeer je een array mee te geven dan gaat het mis: [[1,2,3],[4,5,6],[7,8,9]].map &:first

Je verwacht: [1,4,7], maar je krijgt NoMethodError: undefined method `first' for 1:Fixnum

Ruby 2 gaat als het goed is onderscheid maken tussen arrays en meerdere argumenten. Tot die tijd moeten we de blocks maar even uitschrijven…

Update:

Symbol is natuurlijk niet de enige class die hiervoor te misbruiken is. Hier een variant voor de Regexp:
class Regexp;
  def to_proc; Proc.new {|a|
    a.send source.to_sym
  };end;
end

[[1,2],[3,4]].map &/first/

Geplaatst in ,  | geen reacties

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