Geplaatst door Michiel de Mare
do, 28 mei 2009 21:28:00 GMT
Tijdfuncties in Rails zijn op sommige punten nogal wankel. Zo zou je verwachten dat Time.now
en 0.seconds.ago
gelijk zijn. Dat is niet zo:
>> Time.now
=> Thu May 28 23:28:37 +0200 2009
>> 0.seconds.ago
=> Thu, 28 May 2009 23:28:42 CEST +02:00
Nadere inspectie leert dat Time.now
een normaal Ruby Time
instantie is, terwijl 0.seconds.ago
een ActiveSupport::TimeWithZone
object is.
En dat kan een flink verschil maken! Bij deze code bijvoorbeeld:
>> Time.now.to_s(:db)
=> "2009-05-28 23:33:08"
>> 0.seconds.ago.to_s(:db)
=> "2009-05-28 21:33:16"
De to_s(:db) method wordt gebruikt in find queries en named scopes, en bovenstaand verschil maakt dat het gebruik van Time.now
, Time.parse
en Time.at
af te raden is wanneer het als database-parameter gebruikt kan worden. Rails converteert Time
instanties wel in TimeWithZone
objecten bij ActiveRecord-attributen. Als alternatief kan Time.zone.now
etc. gebruikt worden.
Kortom:
u.published_at = Time.now
werkt prima, maar wanneer je in je environment.rb een lokale tijdzone hebt staan, gaat dit verkeerd in Rails 2.3.2:
named_scope :begun, proc{{:conditions => ['started_at < ?', Time.now]}}
Weest op uw hoede!
Tags rails, ruby | 5 reacties
Geplaatst door Remco van 't Veer
do, 07 mei 2009 14:45:00 GMT
Op 11 mei vindt alweer de 3de denhaag.rb meeting plaats.
Deze keer niet in de kroeg maar op het strand van Scheveningen, bij Bora Bora.
Voor meer details → http://dhrb.org
Geplaatst in events | 1 reactie
Geplaatst door Remco van 't Veer
wo, 04 maa 2009 11:01:00 GMT
Een oproep van nedforce:
Beste allemaal,
De Ruby on Rails versie van Deventer.nl die we vorig jaar live hebben
gebracht is genomineerd als één van de elf voor de prestigieuze Grand
Prix Webcommunicatie, en daar mogen we als Nederlandse Rails community
trots op zijn!
We gaan natuurlijk voor de winst en kunnen alle stemmen gebruiken op
http://www.grandprixwebcommunicatie.nl/stemmen. Stemmen kan zonder
registratie en binnen een minuut.
Alvast bedankt en zegt het voort!
Met vriendelijke groet,
Roderick
Geplaatst in ruby on rails | 1 reactie
Geplaatst door Remco van 't Veer
do, 22 jan 2009 09:59:00 GMT
Volgende maand pakt TTY groots uit als gastheer van de februari amsterdam.rb bijeenkomst. Er staan op dit moment drie interessante presentaties op het programma. Ik zelf kijk erg uit naar de presentatie van Ola Bini over Ioke. Maar Ruby en Rails komen ook aanbod in combinatie met OpenStreetMap en UML.
De verwachtte opkomst is groot en de ruimte beperkt. Om de brandweer (en natuurlijk vooral TTY zelf) gerust te stellen is daarom registratie noodzakelijk:
→ http://amsterdamrb.eventbrite.com/
Geplaatst in events | geen reacties
Geplaatst door Michiel de Mare
za, 10 jan 2009 09:55:00 GMT
We hebben er weer een nieuwe telg aan de .rb familie bij! denhaag.rb houdt 26 januari zijn eerste bijeenkomst
Daarnaast aanstaande maandag de tweede aflevering van ACK (Amsterdam Coders Kollective) – amsterdam.rb met laptops.
Nog even en je kunt elke dag van de maand bier drinken en over Ruby praten!
Geplaatst in ruby, events | geen reacties
Geplaatst door Remco van 't Veer
do, 18 dec 2008 09:19:00 GMT
Maarten doet onderzoek naar de acceptatie van Ruby on Rails in het bedrijfsleven. Om informatie te verzamelen heeft hij een enquête opgesteld. Hij vraagt maar een paar minuten van je tijd;
Beste redactie,
Als student Business Informatics aan de Universiteit Utrecht wil ik
jullie vragen om mij te helpen met het vinden van respondenten voor
mijn afstudeeronderzoek. Ik verricht onderzoek naar de adoptie van
Ruby on Rails door ontwikkelaars in het bedrijfsleven. Met behulp van
een vragenlijst hoop ik een theoretisch model te valideren dat de
adoptie van Ruby on Rails voorspelt en verklaart. Ik ben op zoek naar
professionele web applicatie ontwikkelaars (ervaring met Ruby on Rails
is niet noodzakelijk), die mijn enquête willen invullen.
De enquête bestaat uit twee pagina’s met vragen en het duurt ongeveer
5 minuten om het in te vullen. De mogelijkheid bestaat om een email
adres achter te laten, zodat ik later de resultaten van het onderzoek
naar de respondent toe kan sturen. Het is ook geheel anoniem in te
vullen.
De enquête is hier te vinden: www.cs.uu.nl/survey/ror
Ik zou het geweldig vinden als jullie het onderzoek op jullie blog
onder de aandacht kunnen brengen, want ik ben dringend op zoek naar
meer respondenten. Als jullie nog vragen hebben over het onderzoek,
stel ze gerust. Bij voorbaat dank!
Met vriendelijke groet,
Maarten Nefkens
Maarten heeft belooft de uitkomsten met ons te delen.
Geplaatst in ruby on rails, onderwijs, opinie | 1 reactie
Geplaatst door Michiel de Mare
vr, 12 dec 2008 11:50:00 GMT
Alleen in het Engels
Geplaatst in ruby | Tags clojure, jruby | geen reacties
Geplaatst door Michiel de Mare
vr, 05 dec 2008 17:46:00 GMT
... er zijn grenzen.
require 'benchmark'
n = 100_000
Benchmark.bm do |x|
x.report { n.times { 7.days.ago } }
x.report { ago = 7.days ; n.times { Time.now - ago } }
x.report { ago = 7.days.to_i ; n.times { Time.now - ago } }
x.report { n.times { 7.days } }
x.report { n.times { Time.now - 604800 } }
end
718.480000 195.710000 914.190000 (950.268875)
694.320000 192.130000 886.450000 (917.117917)
24.570000 8.550000 33.120000 ( 33.580123)
43.620000 12.120000 55.740000 ( 56.452434)
24.860000 8.310000 33.170000 ( 34.039006)
Het verschil zit hem in allerlei tijdzoneberekeningen die de eerste versie uitvoert. Maar wat kunnen mij die schelen? 950 microseconden om uit te rekenen hoe laat het vorige week was, daar zou een Commodore 64 zich voor schamen!
Ter vergelijking, dit kost 34 microseconden in Ruby 1.8, 13 microseconden in JRuby, en 0.04 microseconden in Clojure
Geplaatst in ruby, ruby on rails | Tags performance | geen reacties
Geplaatst door Michiel de Mare
do, 04 dec 2008 02:06:00 GMT
Heb je je wel eens afgevraagd hoe het zou zijn om de wereld te ervaren als een ander? Hoe het zou zijn om George Bush te zijn. Of een gehate dictator. Hoe de wereld eruit ziet door de ogen van je geliefde Fido. Of door die van Blub, de goudvis van je neefje. Hoe zou een vleermuis het leven ervaren? Hoe een HashWithIndifferentAccess
?
Dankzijn irb
is het nu eindelijk mogelijk om een antwoord op die vragen te krijgen. Als je in een irb-sessie irb object
invoert, dan start je een nieuwe subsessie waarbij jij self
dat nieuwe object wordt. Je bekijkt de wereld dus door de ogen van dat object (net als instance_eval
, alleen krijg je nu meteen feedback per instructie. Overigens is instance_eval
een vreselijke saaie naam – ik stel voor mind_control
of snatch_soul
).
>> modern = Tag.find_by_name 'modern'
=> #<Tag id: 1070167864, name: "modern">
>> irb modern
>> name
=> "modern"
>> photos.count
=> 483
>> irb photos.first
>> tags.map &:name
=> ["baden", "badkamer", "eenvoudig", "grijs"]
>> irb brand
>> collections.map &:name
=> ["glassbath", "ifiumipo"]
>> jobs
=> #0->irb on main (#<Thread:0x341ac>: stop)
#1->irb#1 on #<Tag:0x20440> (#<Thread:0x1f8>: stop)
#2->irb#2 on #<Photo:0x1fcec> (#<Thread:0x1f8>: stop)
#3->irb#3 on #<Brand:0x1f9b0> (#<Thread:0x1f0>: running)
>> fg 2
=> #<IRB::Irb: @context=#<IRB::Context:0x1fcc820>>
>> large?
=> false
>> irb_exit
Zoals je ziet kun je verschillende subsessies open hebben staan. Met jobs
krijg je een overzicht, met fg
schakel je over naar een andere sessie, en met irb_exit
sluit je de huidige sessie af.
Met alleen irb
maak je een schone sessie aan, waarin je kunt experimenteren zonder je huidige bindings
te veranderen.
Geplaatst in ruby | 1 reactie