<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>RubyEnRails.nl</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <link href="stylesheets/theme/rubyenrails.css" media="screen" rel="Stylesheet" type="text/css" />
  <link href="stylesheets/theme/local.css" media="screen" rel="Stylesheet" type="text/css" />
  <script src="javascripts/cookies.js" type="text/javascript"></script>
  <script src="javascripts/prototype.js" type="text/javascript"></script>
  <script src="javascripts/effects.js" type="text/javascript"></script>
  <script src="javascripts/typo.js" type="text/javascript"></script>
  <script type="text/javascript"></script>
</head>
<body>
  <div id="cols">
    <div id="col1a">
      <a class="logo" href="index.html"><img src="images/theme/logo2.gif"></a>

      <div id="sidebar">
        
      
      <div class="sidebar-node">
        <h3>English</h3>
<ul>
  <li><a href="articles/category/english.html">This Blog In English</a></li>
</ul>


      </div>
    
      
      <div class="sidebar-node">
        <h3>Colofon</h3>
<ul>
  <li><a href="pages/auteurs.html" title="Auteurs">Auteurs</a></li>
</ul>


      </div>
    
      
      <div class="sidebar-node">
        <h3>Categorie&euml;n</h3>
<ul id="categories">
  
  <li><a href="articles/category/english.html">english</a> <em>(27)</em></li>
  
  
  <li><a href="articles/category/ruby-on-rails.html">ruby on rails</a> <em>(88)</em></li>
  
  
  <li><a href="articles/category/ruby.html">ruby</a> <em>(114)</em></li>
  
  
  <li><a href="articles/category/events.html">events</a> <em>(43)</em></li>
  
  
  <li><a href="articles/category/dagmethode.html">dagmethode</a> <em>(18)</em></li>
  
  
  <li><a href="articles/category/daily_method.html">daily_method</a> <em>(19)</em></li>
  
  
  <li><a href="articles/category/nieuws.html">nieuws</a> <em>(14)</em></li>
  
  
  <li><a href="articles/category/ajax.html">ajax</a> <em>(5)</em></li>
  
  
  <li><a href="articles/category/edge.html">edge</a> <em>(4)</em></li>
  
  
  <li><a href="articles/category/onderwijs.html">onderwijs</a> <em>(5)</em></li>
  
  
  <li><a href="articles/category/opinie.html">opinie</a> <em>(4)</em></li>
  
  
  <li><a href="articles/category/tips.html">tips</a> <em>(9)</em></li>
  
  
  <li><a href="articles/category/blog.html">blog</a> <em>(4)</em></li>
  
  
  <li><a href="articles/category/java.html">java</a> <em>(4)</em></li>
  
  
  <li><a href="articles/category/web-2-0.html">web 2.0</a> <em>(3)</em></li>
  
</ul>


      </div>
    
  


      </div>
    </div>
    <div id="col1b">
       <div class="post">
  <h2><a href="articles/2009/05/28/time-zones.html">Time Zones</a></h2>
<p class="auth">Geplaatst door Michiel de Mare
<span class="typo_date" title="Thu, 28 May 2009 21:28:00 GMT">do, 28 mei 2009 21:28:00 GMT</span></p>
<p>Tijdfuncties in Rails zijn op sommige punten nogal wankel. Zo zou je verwachten dat <code>Time.now</code> en <code>0.seconds.ago</code> gelijk zijn. Dat is niet zo:</p>


<pre><code>&gt;&gt; Time.now
=&gt; Thu May 28 23:28:37 +0200 2009
&gt;&gt; 0.seconds.ago
=&gt; Thu, 28 May 2009 23:28:42 CEST +02:00
</code></pre>

	<p>Nadere inspectie leert dat <code>Time.now</code> een normaal Ruby <code>Time</code> instantie is, terwijl <code>0.seconds.ago</code> een <code>ActiveSupport::TimeWithZone</code> object is.</p>


En dat kan een flink verschil maken! Bij deze code bijvoorbeeld:
<pre><code>&gt;&gt; Time.now.to_s(:db)
=&gt; "2009-05-28 23:33:08" 
&gt;&gt; 0.seconds.ago.to_s(:db)
=&gt; "2009-05-28 21:33:16" 
</code></pre>

	<p>De to_s(:db) method wordt gebruikt in find queries en named scopes, en bovenstaand verschil maakt dat het gebruik van <code>Time.now</code>, <code>Time.parse</code> en <code>Time.at</code> af te raden is wanneer het als database-parameter gebruikt kan worden. Rails converteert <code>Time</code> instanties wel in <code>TimeWithZone</code> objecten bij ActiveRecord-attributen. Als alternatief kan <code>Time.zone.now</code> etc. gebruikt worden.</p>


Kortom: <code>u.published_at = Time.now</code> werkt prima, maar wanneer je in je environment.rb een lokale tijdzone hebt staan, gaat dit verkeerd in Rails 2.3.2:
<pre><code>named_scope :begun, proc{{:conditions =&gt; ['started_at &lt; ?', Time.now]}}</code></pre>

	<p>Weest op uw hoede!</p>


	<p><a href="http://workingwithrails.com/recommendation/new/person/5468-michiel-de-mare"><img alt="Recommend Michiel de Mare" title="Recommend Michiel de Mare" src="http://workingwithrails.com/images/tools/compact-small-button.jpg" /></a></p>

    
  <p class="meta">Tags <a href="articles/tag/rails.html" rel="tag">rails</a>, <a href="articles/tag/ruby.html" rel="tag">ruby</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2009/05/28/time-zones.html#comments">5 reacties</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2009/05/07/denhaag-rb.html">denhaag.rb</a></h2>
<p class="auth">Geplaatst door Remco van 't Veer
<span class="typo_date" title="Thu, 07 May 2009 14:45:00 GMT">do, 07 mei 2009 14:45:00 GMT</span></p>
<p>Op 11 mei vindt alweer de 3<sup>de</sup> <a href="http://dhrb.org">denhaag.rb</a> meeting plaats.</p>


	<p>Deze keer niet in de kroeg maar op het strand van Scheveningen, bij <a href="http://www.borabora.nl/">Bora Bora</a>.</p>


	<p>Voor meer details &rarr; <a href="http://dhrb.org">http://dhrb.org</a></p>

    
  <p class="meta">Geplaatst in <a href="articles/category/events.html" rel="tag">events</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2009/05/07/denhaag-rb.html#comments">1 reactie</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2009/03/04/deventer-nl-genomineerd-voor-de-grand-prix-webcommunicatie.html">Deventer.nl genomineerd voor de Grand Prix Webcommunicatie</a></h2>
<p class="auth">Geplaatst door Remco van 't Veer
<span class="typo_date" title="Wed, 04 Mar 2009 11:01:00 GMT">wo, 04 maa 2009 11:01:00 GMT</span></p>
<p>Een oproep van <a href="http://nedforce.nl/">nedforce</a>:</p>


<blockquote>
Beste allemaal,

	<p>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!</p>


	<p>We gaan natuurlijk voor de winst en kunnen alle stemmen gebruiken op
<a href="http://www.grandprixwebcommunicatie.nl/stemmen">http://www.grandprixwebcommunicatie.nl/stemmen</a>. Stemmen kan zonder
registratie en binnen een minuut.</p>


	<p>Alvast bedankt en zegt het voort!</p>


	<p>Met vriendelijke groet,</p>


Roderick
</blockquote>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby-on-rails.html" rel="tag">ruby on rails</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2009/03/04/deventer-nl-genomineerd-voor-de-grand-prix-webcommunicatie.html#comments">1 reactie</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2009/01/22/amsterdam-rb-februari-registratie.html">Amsterdam.rb februari registratie</a></h2>
<p class="auth">Geplaatst door Remco van 't Veer
<span class="typo_date" title="Thu, 22 Jan 2009 09:59:00 GMT">do, 22 jan 2009 09:59:00 GMT</span></p>
<p>Volgende maand pakt <a href="http://tty.nl/"><span class="caps">TTY</span></a> groots uit als gastheer van de februari <a href="http://amsterdam-rb.org">amsterdam.rb</a> bijeenkomst.  Er staan op dit moment drie interessante presentaties op het programma.  Ik zelf kijk erg uit naar de presentatie van <a href="http://olabini.com/blog/2009/01/talking-about-ioke-at-amsterdamrb/">Ola Bini over Ioke</a>.  Maar Ruby en Rails komen ook aanbod in combinatie met <a href="http://www.openstreetmap.nl/">OpenStreetMap</a> en <acronym title="Unified Modeling Language">UML</acronym>.</p>


	<p>De verwachtte opkomst is groot en de ruimte beperkt.  Om de brandweer (en natuurlijk vooral <span class="caps">TTY</span> zelf) gerust te stellen is daarom registratie noodzakelijk:</p>


	<p>&rarr; <a href="http://amsterdamrb.eventbrite.com/">http://amsterdamrb.eventbrite.com/</a></p>

    
  <p class="meta">Geplaatst in <a href="articles/category/events.html" rel="tag">events</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2009/01/22/amsterdam-rb-februari-registratie.html#comments">geen reacties</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2009/01/10/denhaag-rb.html">denhaag.rb</a></h2>
<p class="auth">Geplaatst door Michiel de Mare
<span class="typo_date" title="Sat, 10 Jan 2009 09:55:00 GMT">za, 10 jan 2009 09:55:00 GMT</span></p>
<p>We hebben er weer een nieuwe telg aan de .rb familie bij! denhaag.rb houdt 26 januari zijn <a href="http://groups.google.com/group/denhaag-rb/browse_thread/thread/556fcf169ddf8165">eerste bijeenkomst</a></p>


	<p>Daarnaast aanstaande maandag de tweede aflevering van <a href="http://groups.google.nl/group/amsterdam-rb/browse_thread/thread/e7ba2dadcc55c629/50b9e7f98027622e?show_docid=50b9e7f98027622e&#38;pli=1"><span class="caps">ACK</span></a> (Amsterdam Coders Kollective) &#8211; amsterdam.rb met laptops.</p>


	<p>Nog even en je kunt elke dag van de maand bier drinken en over Ruby praten!</p>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby.html" rel="tag">ruby</a>, <a href="articles/category/events.html" rel="tag">events</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2009/01/10/denhaag-rb.html#comments">geen reacties</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2008/12/18/onderzoek-adoptie-ruby-on-rails.html">Onderzoek adoptie Ruby on Rails</a></h2>
<p class="auth">Geplaatst door Remco van 't Veer
<span class="typo_date" title="Thu, 18 Dec 2008 09:19:00 GMT">do, 18 dec 2008 09:19:00 GMT</span></p>
<p>Maarten doet onderzoek naar de acceptatie van Ruby on Rails in het bedrijfsleven.  Om informatie te verzamelen heeft hij een <a href="http://www.cs.uu.nl/survey/ror">enqu&ecirc;te</a> opgesteld.  Hij vraagt maar een paar minuten van je tijd;</p>


<blockquote>
Beste redactie,

	<p>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.</p>


	<p>De enquête bestaat uit twee pagina&#8217;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.</p>


	<p>De enqu&ecirc;te is hier te vinden: <a href="http://www.cs.uu.nl/survey/ror">www.cs.uu.nl/survey/ror</a></p>


	<p>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!</p>


Met vriendelijke groet,<br/>
Maarten Nefkens
</blockquote>

	<p>Maarten heeft belooft de uitkomsten met ons te delen.</p>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby-on-rails.html" rel="tag">ruby on rails</a>, <a href="articles/category/onderwijs.html" rel="tag">onderwijs</a>, <a href="articles/category/opinie.html" rel="tag">opinie</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2008/12/18/onderzoek-adoptie-ruby-on-rails.html#comments">1 reactie</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2008/12/12/clojure-aanroepen-vanuit-jruby.html">Clojure Aanroepen Vanuit JRuby</a></h2>
<p class="auth">Geplaatst door Michiel de Mare
<span class="typo_date" title="Fri, 12 Dec 2008 11:50:00 GMT">vr, 12 dec 2008 11:50:00 GMT</span></p>
<p>Alleen in het <a href="articles/2008/12/12/calling-clojure-from-jruby.html">Engels</a></p>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby.html" rel="tag">ruby</a>&nbsp;<strong>|</strong>&nbsp;Tags <a href="articles/tag/clojure.html" rel="tag">clojure</a>, <a href="articles/tag/jruby.html" rel="tag">jruby</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2008/12/12/clojure-aanroepen-vanuit-jruby.html#comments">geen reacties</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2008/12/05/rails-ik-hou-van-je-maar.html">Rails, ik hou van je, maar...</a></h2>
<p class="auth">Geplaatst door Michiel de Mare
<span class="typo_date" title="Fri, 05 Dec 2008 17:46:00 GMT">vr, 05 dec 2008 17:46:00 GMT</span></p>
<p>... er zijn grenzen.</p>


<pre><code>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)

</code></pre>

	<p>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!</p>


	<p>Ter vergelijking, dit kost 34 microseconden in Ruby 1.8, 13 microseconden in JRuby, en 0.04 microseconden in Clojure</p>


	<p><a href="http://workingwithrails.com/recommendation/new/person/5468-michiel-de-mare"><img alt="Recommend Michiel de Mare" title="Recommend Michiel de Mare" src="http://workingwithrails.com/images/tools/compact-small-button.jpg" /></a></p>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby.html" rel="tag">ruby</a>, <a href="articles/category/ruby-on-rails.html" rel="tag">ruby on rails</a>&nbsp;<strong>|</strong>&nbsp;Tags <a href="articles/tag/performance.html" rel="tag">performance</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2008/12/05/rails-ik-hou-van-je-maar.html#comments">geen reacties</a></p> 
  </div>
 <div class="post">
  <h2><a href="articles/2008/12/04/empathie-r-b.html">Empathie R B</a></h2>
<p class="auth">Geplaatst door Michiel de Mare
<span class="typo_date" title="Thu, 04 Dec 2008 02:06:00 GMT">do, 04 dec 2008 02:06:00 GMT</span></p>
<p>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 <code>HashWithIndifferentAccess</code>?</p>


	<p>Dankzijn <code>irb</code> is het nu eindelijk mogelijk om een antwoord op die vragen te krijgen. Als je in een irb-sessie <code>irb object</code> invoert, dan start je een nieuwe subsessie waarbij jij <code>self</code> dat nieuwe object wordt. Je bekijkt de wereld dus door de ogen van dat object (net als <code>instance_eval</code>, alleen krijg je nu meteen feedback per instructie. Overigens is <code>instance_eval</code> een vreselijke saaie naam &#8211; ik stel voor <code>mind_control</code> of <code>snatch_soul</code>).</p>


<pre><code>&gt;&gt; modern = Tag.find_by_name 'modern'
=&gt; #&lt;Tag id: 1070167864, name: "modern"&gt;
&gt;&gt; irb modern
&gt;&gt; name
=&gt; "modern" 
&gt;&gt; photos.count
=&gt; 483
&gt;&gt; irb photos.first
&gt;&gt; tags.map &#38;:name
=&gt; ["baden", "badkamer", "eenvoudig", "grijs"]
&gt;&gt; irb brand
&gt;&gt; collections.map &#38;:name
=&gt; ["glassbath", "ifiumipo"]
&gt;&gt; jobs
=&gt; #0-&gt;irb on main (#&lt;Thread:0x341ac&gt;: stop)
#1-&gt;irb#1 on #&lt;Tag:0x20440&gt; (#&lt;Thread:0x1f8&gt;: stop)
#2-&gt;irb#2 on #&lt;Photo:0x1fcec&gt; (#&lt;Thread:0x1f8&gt;: stop)
#3-&gt;irb#3 on #&lt;Brand:0x1f9b0&gt; (#&lt;Thread:0x1f0&gt;: running)
&gt;&gt; fg 2
=&gt; #&lt;IRB::Irb: @context=#&lt;IRB::Context:0x1fcc820&gt;&gt;
&gt;&gt; large?
=&gt; false
&gt;&gt; irb_exit
</code></pre>

	<p>Zoals je ziet kun je verschillende subsessies open hebben staan. Met <code>jobs</code> krijg je een overzicht, met <code>fg</code> schakel je over naar een andere sessie, en met <code>irb_exit</code> sluit je de huidige sessie af.</p>


	<p>Met alleen <code>irb</code> maak je een schone sessie aan, waarin je kunt experimenteren zonder je huidige <code>bindings</code> te veranderen.</p>


	<p><a href="http://workingwithrails.com/recommendation/new/person/5468-michiel-de-mare"><img alt="Recommend Michiel de Mare" title="Recommend Michiel de Mare" src="http://workingwithrails.com/images/tools/compact-small-button.jpg" /></a></p>

    
  <p class="meta">Geplaatst in <a href="articles/category/ruby.html" rel="tag">ruby</a>&nbsp;<strong>|</strong>&nbsp;<a href="articles/2008/12/04/empathie-r-b.html#comments">1 reactie</a></p> 
  </div>


  <p id="pagination">Oudere artikelen: 1 <a href="articles/page/2.html">2</a> <a href="articles/page/3.html">3</a>  ... <a href="articles/page/20.html">20</a></p>

      <script type="text/javascript">
//<![CDATA[
show_dates_as_local_time()
//]]>
</script>
    </div>
    <div id="col2">
      <a href="https://remworks.net/">
        <img src="https://remworks.net/images/banner.png" />
      </a>
    </div>
  </div>
</body>
</html>
