<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>RemVee.blog</title>
    <link>http://blog.remvee.net/</link>
    <description>RemVee.blog do { |item| item.mangle }</description>
    <item>
      <title>EXIFR 1.1.1</title>
      <link>http://blog.remvee.net/2011/09/12/EXIFR_1_1_1</link>
      <guid>http://blog.remvee.net/2011/09/12/EXIFR_1_1_1</guid>
      <description>&lt;p&gt;I&amp;#8217;ve added some convenience methods to access &lt;span class="caps"&gt;GPS&lt;/span&gt; because people &lt;a href="https://github.com/soychicka/exifr/commit/6418ac12d54fc79aaeb96fccda052b8f697d99e4"&gt;really&lt;/a&gt; &lt;a href="https://github.com/picuous/exifr/commit/1911eff333f7498b8a8de22c3d27e413889d8572"&gt;seem&lt;/a&gt; &lt;a href="https://github.com/jb-san/exifr/commit/601ed1b27187faa6d151b3aab5709c7c2154ef0d"&gt;to&lt;/a&gt; &lt;a href="https://github.com/remvee/exifr/issues/21"&gt;want&lt;/a&gt; it.  Is should be fully backward compatible with earlier versions;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;EXIFR::JPEG.new('enkhuizen.jpg').gps.latitude  # =&amp;gt; 52.7197888888889
EXIFR::JPEG.new('enkhuizen.jpg').gps.longitude # =&amp;gt; 5.28397777777778&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Mon, 12 Sep 2011 09:00:00 +0200</pubDate>
    </item>
    <item>
      <title>EXIFR 1.0.6</title>
      <link>http://blog.remvee.net/2011/07/23/EXIFR_1_0_6</link>
      <guid>http://blog.remvee.net/2011/07/23/EXIFR_1_0_6</guid>
      <description>&lt;p&gt;&lt;img src="http://blog.remvee.net/attachment/exifr-pleister/pleister.png" class="top-right" alt="" /&gt; Just released &lt;a href="http://exifr.rubyforge.org/"&gt;&lt;span class="caps"&gt;EXIF&lt;/span&gt; Reader&lt;/a&gt; &lt;a href="http://rubygems.org/gems/exifr/versions/1.0.6"&gt;1.0.6&lt;/a&gt; Ruby gem.  This is a bugfix release for &lt;a href="https://github.com/remvee/exifr/issues/20"&gt;issue 20&lt;/a&gt;.  The &lt;span class="caps"&gt;TIFF&lt;/span&gt; decoder now reads as many frames as possible instead of throwing an exception when hitting a bad frame.&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Sat, 23 Jul 2011 12:00:00 +0200</pubDate>
    </item>
    <item>
      <title>Partial content for ring</title>
      <link>http://blog.remvee.net/2011/03/09/Partial_content_for_ring</link>
      <guid>http://blog.remvee.net/2011/03/09/Partial_content_for_ring</guid>
      <description>&lt;p&gt;When streaming audio or video or serving largish files over &lt;span class="caps"&gt;HTTP&lt;/span&gt; you&amp;#8217;ll eventually want to provide seeking resp. continue download capabilities to your application.  I&amp;#8217;ve cooked up some ring middleware to respond to partial content requests and mangle your application responses accordingly.  It works well with the commonly used &lt;a href="http://mmcgrana.github.com/ring/middleware.file-api.html"&gt;ring.middleware.file&lt;/a&gt; wrapper but do read the &lt;a href="http://remvee.github.com/ring-partial-content/remvee.ring.middleware.partial-content-api.html#remvee.ring.middleware.partial-content/wrap-partial-content"&gt;fine print&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Et voil&#225;: &lt;a href="https://github.com/remvee/ring-partial-content"&gt;ring-partial-content&lt;/a&gt;&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Wed, 09 Mar 2011 21:25:00 +0100</pubDate>
    </item>
    <item>
      <title>Basic authentication for ring (and compojure etc.)</title>
      <link>http://blog.remvee.net/2010/08/23/Basic_authentication_for_ring_and_compojure_etc</link>
      <guid>http://blog.remvee.net/2010/08/23/Basic_authentication_for_ring_and_compojure_etc</guid>
      <description>&lt;p&gt;I&amp;#8217;ve always liked &lt;span class="caps"&gt;HTTP&lt;/span&gt; authentication (like basic and digest) over login pages because they look so..  technically savvy.  Finally somebody who bothered to read an &lt;span class="caps"&gt;RFC&lt;/span&gt; to implement it and make me feel warm and welcome like peers do.&lt;/p&gt;
&lt;p&gt;Okay, I must admit, it takes a customer just a couple of moments to request a logout button, which is a real pain to implement, if possible at all.  And I wouldn&amp;#8217;t want to login on something I care about from a public computer either.  But it is very nice for web services!&lt;/p&gt;
&lt;p&gt;Anyway here&amp;#8217;s my implementation as ring middleware: &lt;a href="http://github.com/remvee/ring-basic-authentication"&gt;ring-basic-authentication&lt;/a&gt;&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Mon, 23 Aug 2010 21:26:00 +0200</pubDate>
    </item>
    <item>
      <title>EXIFR 1.0.2</title>
      <link>http://blog.remvee.net/2010/08/04/EXIFR_1_0_2</link>
      <guid>http://blog.remvee.net/2010/08/04/EXIFR_1_0_2</guid>
      <description>&lt;p&gt;&lt;img src="http://blog.remvee.net/attachment/exifr-pleister/pleister.png" class="top-right" alt="" /&gt; Today I released &lt;a href="http://rubygems.org/gems/exifr/versions/1.0.2"&gt;version 1.0.2&lt;/a&gt; of &lt;a href="http://exifr.rubyforge.org/"&gt;&lt;span class="caps"&gt;EXIF&lt;/span&gt; Reader&lt;/a&gt; to fix a Ruby 1.8.6 incompatibility.  Thanks to &lt;a href="http://github.com/Jpunt"&gt;Jasper Haggenburg&lt;/a&gt;, &lt;a href="http://github.com/mokolabs"&gt;Patrick Crowley&lt;/a&gt;, &lt;a href="http://github.com/jywarren"&gt;Jeffrey Warren&lt;/a&gt; and &lt;a href="http://github.com/ileitch"&gt;Ian Leitch&lt;/a&gt; for finding, analyzing and fixing this problem.&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Wed, 04 Aug 2010 21:16:00 +0200</pubDate>
    </item>
    <item>
      <title>EXIFR 1.0.0</title>
      <link>http://blog.remvee.net/2010/04/07/EXIFR_1_0_0</link>
      <guid>http://blog.remvee.net/2010/04/07/EXIFR_1_0_0</guid>
      <description>&lt;p&gt;&lt;img src="http://blog.remvee.net/attachment/exifr/code-snippet.png" class="right" alt="" /&gt; After 4 years &lt;a href="http://exifr.rubyforge.org/"&gt;&lt;span class="caps"&gt;EXIF&lt;/span&gt; Reader&lt;/a&gt; finally reaches it&amp;#8217;s first major-version-day.  It has been pretty stable for a while now and the &lt;span class="caps"&gt;API&lt;/span&gt; didn&amp;#8217;t change in any painful way since the first release.&lt;/p&gt;
&lt;p&gt;So here it is: &lt;strong&gt;version 1.0.0&lt;/strong&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  gem install exifr&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Thanks to Makoto Kishimoto, Mark Lundquist, Victor Bogado, Forian Munz and other people I forgot to record in the &lt;a href="http://github.com/remvee/exifr/blob/release-1.0.0/CHANGELOG"&gt;&lt;span class="caps"&gt;CHANGELOG&lt;/span&gt;&lt;/a&gt; for sending me patches and test images.&lt;/p&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Wed, 07 Apr 2010 22:11:00 +0200</pubDate>
    </item>
    <item>
      <title>(.setText tv "Hello Android from Clojure!")</title>
      <link>http://blog.remvee.net/2009/01/18/setText_tv_Hello_Android_from_Clojure</link>
      <guid>http://blog.remvee.net/2009/01/18/setText_tv_Hello_Android_from_Clojure</guid>
      <description>&lt;p&gt;&lt;img src="http://blog.remvee.net/attachment/clojure-android/hello-android-clojure.png" class="right" alt="" /&gt; Ongeduldig heb ik met de &lt;a href="http://www.android.com/"&gt;Android&lt;/a&gt; &lt;a href="http://code.google.com/android/reference/emulator.html"&gt;emulator&lt;/a&gt; zitten spelen.  M&amp;#8217;n &lt;a href="http://code.google.com/android/dev-devices.html"&gt;dev phone&lt;/a&gt; is onderweg en ik kan natuurlijk niet wachten tot ik ermee aan de slag kan.&lt;/p&gt;
&lt;p&gt;Aardig aan het Android platform is dat het gebruik maakt van Java.  Wat is jammer aan Android is dat het geen gebruik maakt van een &lt;span class="caps"&gt;JVM&lt;/span&gt; maar van de &lt;a href="http://www.dalvikvm.com/"&gt;Dalvik VM&lt;/a&gt;.  Klinkt rampzalig maar valt erg mee, Android blijkt een heel groot deel van het Java Standard Edition class libraries te implementeren.  Dat stemt hoopvol en geeft het gevoel dat, in theorie, alle andere &lt;span class="caps"&gt;JVM&lt;/span&gt; talen (zoals &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt;, &lt;a href="http://jruby.org/"&gt;JRuby&lt;/a&gt;, &lt;a href="http://www.gnu.org/software/kawa/"&gt;Kawa&lt;/a&gt; en &lt;a href="http://clojure.org/"&gt;Clojure&lt;/a&gt;) ook te gebruiken zijn op z&amp;#8217;n Android telefoon.&lt;/p&gt;
&lt;p&gt;Natuurlijk is het allemaal maar theorie en in wat voor bizarre wereld zouden we leven als dat ook echt zou kunnen?!  :)  Toch maakte &lt;a href="http://per.bothner.com/"&gt;Per Bothner&lt;/a&gt; me nieuwsgierig met zijn &lt;a href="http://per.bothner.com/blog/2008/AndroidHelloScheme/"&gt;AndroidHelloScheme post&lt;/a&gt; en ben ik aan de slag gegaan om ook een Clojure variant te maken.&lt;/p&gt;&lt;br /&gt;&lt;a href="http://blog.remvee.net/2009/01/18/setText_tv_Hello_Android_from_Clojure#more" class="more"&gt;Lees verder &#8594;&lt;/a&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Sun, 18 Jan 2009 07:23:00 +0100</pubDate>
    </item>
    <item>
      <title>Laat je JavaScript zichzelf schrijven</title>
      <link>http://blog.remvee.net/2008/01/20/laat_je_javascript_zichzelf_schrijven</link>
      <guid>http://blog.remvee.net/2008/01/20/laat_je_javascript_zichzelf_schrijven</guid>
      <description>&lt;p&gt;Laatst werd me gevraagd wat mooier of beter is:&lt;/p&gt;
&lt;pre&gt;obj.getItem('Status')
obj.getItem('Status') == 'Completed'&lt;/pre&gt;
&lt;p&gt;of&lt;/p&gt;
&lt;pre&gt;obj.getStatus()
obj.isStatusCompleted()&lt;/pre&gt;
&lt;p&gt;Het laatste voorbeeld is beter omdat het minder foutgevoelig is; een tiepfoutje in het eerste geval kan heel lang blijven sluimeren terwijl in de tweede versie de foutmeldingen meteen om je oren vliegen.  Daarbij vind ik de tweede variant ook beter leesbaar.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://blog.remvee.net/attachment/escher-hands/escher-hands.png" class="right" title="Drawing Hands, 1948, M.C. Escher" alt="Drawing Hands, 1948, M.C. Escher" /&gt; De degene die de vraag stelde, gaf me schoorvoetend gelijk.  Maar zou dit niet betekenen dat hij deze methoden voor alle 10 statussen uit zou moeten schrijven en is dat dan niet ook weer foutgevoelig?  Voorzichtig vroeg ik om welke taal het eigenlijk ging; &amp;#8220;JavaScript&amp;#8221;.  Maar natuurlijk hoef je dat niet helemaal zelf uit te schrijven!  JavaScript is, net als Ruby, Lisp en vele andere, een moderne taal en stelt je in staat te meta-programmeren, ofwel programma&amp;#8217;s zichzelf te laten schrijven.&lt;/p&gt;
&lt;p&gt;Dus geen gedonder met een preprocessor en/of rare annotaties meteen aan de slag met de programmeertaal waar je toch al mee bezig was!&lt;/p&gt;&lt;br /&gt;&lt;a href="http://blog.remvee.net/2008/01/20/laat_je_javascript_zichzelf_schrijven#more" class="more"&gt;Lees verder &#8594;&lt;/a&gt;</description>
      <author>remco@remvee.net (Remco van 't Veer)</author>
      <pubDate>Sun, 20 Jan 2008 03:46:00 +0100</pubDate>
    </item>
  </channel>
</rss>

