<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wendbaar.nl</title>
	<atom:link href="http://wendbaar.nl/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://wendbaar.nl/blog</link>
	<description></description>
	<lastBuildDate>Wed, 10 Feb 2010 19:04:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ralf: S3 logfile downloader and merger</title>
		<link>http://wendbaar.nl/blog/2010/02/ralf-s3-logfile-downloader-and-merger/</link>
		<comments>http://wendbaar.nl/blog/2010/02/ralf-s3-logfile-downloader-and-merger/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 18:47:56 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wendbaar.nl/blog/?p=192</guid>
		<description><![CDATA[
	Today we released a new gem called Ralf, it stands for Retreive Amazon LogFiles


	Download the gem at http://gemcutter.org/gems/ralf or browse the source at http://github.com/kjwierenga/ralf

Usage
Prerequirements:

An S3 account (duh)
Enable logging on S3 (use cyberduck for example)

Execution:
r = Ralf.new(:config =&#62; '/my/config.yaml', :date =&#62; '2010-02-01')
r.run

Or run it in one go:
Ralf.run(:config =&#62; '/my/config.yaml', :date =&#62; '2010-02-01')

Parameters:
:config   a YAML [...]]]></description>
			<content:encoded><![CDATA[<p>
	Today we released a new gem called <strong>Ralf</strong>, it stands for <strong>Retreive Amazon LogFiles</strong>
</p>
<p>
	Download the gem at <a href="http://gemcutter.org/gems/ralf">http://gemcutter.org/gems/ralf</a> or browse the source at <a href="http://github.com/kjwierenga/ralf">http://github.com/kjwierenga/ralf</a>
</p>
<h3>Usage</h3>
<p>Prerequirements:</p>
<ul>
<li>An S3 account (duh)</li>
<li>Enable logging on S3 (use <a href="http://cyberduck.ch/">cyberduck</a> for example)</li>
</ul>
<p>Execution:</p>
<pre><code>r = Ralf.new(:config =&gt; '/my/config.yaml', :date =&gt; '2010-02-01')
r.run
</code></pre>
<p>Or run it in one go:</p>
<pre><code>Ralf.run(:config =&gt; '/my/config.yaml', :date =&gt; '2010-02-01')
</code></pre>
<h4>Parameters:</h4>
<pre><code>:config   a YAML config file, if none given it tries to open /etc/ralf.yaml or ~/.ralf.yaml
:date     the date to parse

:aws_access_key_id      (required in config)
:aws_secret_access_key  (required in config)
:out_path               (required in config)
:out_prefix             (optional, defaults to 's3_combined') Prefix the output file
</code></pre>
<p>You can ommit a configuration file when you supply the required parameters <strong>:aws_access_key_id</strong>_, <strong>:aws_secret_access_key</strong> and <strong>:out_path</strong><br />
They take precedence over the config file</p>
<h3>Caveats</h3>
<ul>
<li>There is no logrotation as we know it like on regular unix machines</li>
</ul>
<p>More info: <a href="http://docs.amazonwebservices.com/AmazonS3/latest/ServerLogs.html">S3 Server Access Logging</a></p>
<h3>TODO</3></p>
<ul>
<li>CLI executable</li>
<li>Grouping/combinig on week/month</li>
</ul>
<h3>Credits:</h3>
<p>This plugin is created for <a href="http://kerkdienstgemist.nl" title="Kerkdienst Gemist"><em>kerkdienstgemist.nl</em></a> for processing the logfiles generated by <a href="http://aws.amazon.com/s3/"><em>S3</em></a>.</p>
<p>Authors: <a href="http://github.com/LeipeLeon">Leon Berenschot</a> and <a href="http://github.com/kjwierenga">K.J. Wierenga</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2010/02/ralf-s3-logfile-downloader-and-merger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Screen Saver (a.k.a. a &#8220;Stream Saver&#8221;)</title>
		<link>http://wendbaar.nl/blog/2010/01/twitter-screen-saver-a-k-a-a-stream-saver/</link>
		<comments>http://wendbaar.nl/blog/2010/01/twitter-screen-saver-a-k-a-a-stream-saver/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 10:54:03 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://wendbaar.nl/blog/?p=186</guid>
		<description><![CDATA[Just a quick and dirty experiment: A Twitter ScreenSaver.
]]></description>
			<content:encoded><![CDATA[<p>Just a quick and dirty experiment: A<strong> Twitter ScreenSaver</strong>.</p>
<p><a href="http://wendbaar.nl/blog/wp-content/uploads/2010/01/TwitterStreamSaver.png"><img src="http://wendbaar.nl/blog/wp-content/uploads/2010/01/TwitterStreamSaver-300x245.png" alt="TwitterStreamSaver.png" border="0" width="300" height="245" " align="right" class="right"/></a></p>
<p>
With the <a href="http://developer.apple.com/technology/xcode.html"><strong>Apple Developer Tools</strong></a> installed, you are able to create your own screensavers with <a href="http://en.wikipedia.org/wiki/Quartz_Composer"><strong>Quartz Composer</strong></a>.<br />
(I&#8217;ve been experimenting with this tool a few years ago when it was called <strong>PixelShox</strong>. Later it was bought by Apple to include it in Quicktime.)
</p>
<p>This &#8220;<strong>StreamSaver</strong>&#8221; is still a work in progress and sorry; <strong>OSX 10.5+ only</strong>.</p>
<p>If you have any idea&#8217;s, <a href="http://twitter.com/leipeleon">lemme know!</a>
</p>
<p><a href="http://wendbaar.nl/blog/wp-content/uploads/2010/01/TwitterStreamSaver_1.0.qtz">Download/see it here</a>, and place it in <code>~/Library/Screen Savers</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2010/01/twitter-screen-saver-a-k-a-a-stream-saver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://wendbaar.nl/blog/wp-content/uploads/2010/01/TwitterStreamSaver-150x150.png" length="15105" type="image/png" />
		</item>
		<item>
		<title>Prediction: &#8220;Twitter App Formatting Standards War&#8221;</title>
		<link>http://wendbaar.nl/blog/2010/01/prediction-twitter-app-formatting-standards-war/</link>
		<comments>http://wendbaar.nl/blog/2010/01/prediction-twitter-app-formatting-standards-war/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 13:39:07 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Speculation]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[#client]]></category>
		<category><![CDATA[#formatting]]></category>
		<category><![CDATA[#standard]]></category>
		<category><![CDATA[#TFS]]></category>
		<category><![CDATA[#tweet]]></category>

		<guid isPermaLink="false">http://wendbaar.nl/blog/?p=4</guid>
		<description><![CDATA[Well&#8230;, a war is a little bit exaggerated. But consistency is the issue here, which remembers me the early days of different implementations of webbrowsers (which is still a pain in the ass, ask any random webdeveloper)
For example, today I ran in to the formatting of an URL. In tweetdeck it&#8217;s only clickable when an [...]]]></description>
			<content:encoded><![CDATA[<p>Well&#8230;, a war is a little bit exaggerated. But consistency is the issue here, which remembers me the early days of different implementations of webbrowsers (which is still a pain in the ass, ask any random webdeveloper)</p>
<p>For example, today I ran in to the formatting of an URL. In tweetdeck it&#8217;s only clickable when an URL has the protocol attached to it (http://). So I <a href="http://twitter.com/LeipeLeon/status/7516634199">complained about it</a>, thinking that people didn&#8217;t understand linking in tweets.</p>
<p>Turns out <a href="http://twitter.com/FiXato/status/7518432077">I was wrong</a>, apps like tweetie and the webinterface of twitter itself automagically create a hyperlink from an address prefixed with www without an http://.</p>
<p>So my question is, should there be a standard (like HTML/CSS) or developer guidline to format tweets (or is there one already?)</p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2010/01/prediction-twitter-app-formatting-standards-war/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending prawn documents with ActionMailer</title>
		<link>http://wendbaar.nl/blog/2009/12/sending-prawn-documents-with-actionmailer/</link>
		<comments>http://wendbaar.nl/blog/2009/12/sending-prawn-documents-with-actionmailer/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 08:32:18 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://beriedata.nl/blog/?p=106</guid>
		<description><![CDATA[Problem: How to send a prawn pdf wich normally is generated by a controller.
and keeping it DRY
Required: Prawn &#038; prawnto

first: Make your prawnto settings global with an initializer

?Download prawnto_globals.rbPRAWN_DEFAULT_STYLES = &#123;
  :page_size   =&#62; 'A4',
  :inline      =&#62; true,
  :left_margin =&#62; 50
&#125;

second: create a ActionMailer
./script/generate mailer recipient_mailer [...]]]></description>
			<content:encoded><![CDATA[<h2>Problem: How to send a prawn pdf wich normally is generated by a controller.</h2>
<p>and keeping it DRY</p>
<p>Required: Prawn &#038; prawnto</p>
<p><span id="more-106"></span></p>
<p>first: Make your prawnto settings global with an initializer</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://wendbaar.nl/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=106&amp;download=prawnto_globals.rb">prawnto_globals.rb</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1063"><td class="code" id="p106code3"><pre class="ruby" style="font-family:monospace;">PRAWN_DEFAULT_STYLES = <span style="color:#006600; font-weight:bold;">&#123;</span>
  <span style="color:#ff3333; font-weight:bold;">:page_size</span>   <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'A4'</span>,
  <span style="color:#ff3333; font-weight:bold;">:inline</span>      <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>,
  <span style="color:#ff3333; font-weight:bold;">:left_margin</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">50</span>
<span style="color:#006600; font-weight:bold;">&#125;</span></pre></td></tr></table></div>

<p>second: create a ActionMailer</p>
<pre>./script/generate mailer recipient_mailer invoice</pre>
<p>third: edit the generated recipient mailer (note: because I&#8217;m using the views from the controller I&#8217;ve removed the autogenerated invoice.erb. Otherwise these will be included as well)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://wendbaar.nl/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=106&amp;download=recipient_mailer.rb">recipient_mailer.rb</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p1064"><td class="code" id="p106code4"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># Include (optional) controller helpers</span>
<span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#6666ff; font-weight:bold;">Prawn::Document</span>
  <span style="color:#9966CC; font-weight:bold;">include</span> PdfHelper
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> RecipientMailer <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActionMailer::Base</span>
  <span style="color:#008000; font-style:italic;"># explicitly require prawn, so we get all the goodieness</span>
  <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'prawn'</span>
  <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;prawn/format&quot;</span>
  <span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">&quot;prawn/layout&quot;</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">def</span> invoice<span style="color:#006600; font-weight:bold;">&#40;</span>ledger_item<span style="color:#006600; font-weight:bold;">&#41;</span>
    subject    <span style="color:#996600;">&quot;The subject&quot;</span>
    recipients <span style="color:#996600;">'&quot;Name&quot; &lt;info@example.com&gt;'</span>
    from       <span style="color:#996600;">'&quot;Name&quot; &lt;info@example.com&gt;'</span>
    sent_on    <span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span>
    content_type    <span style="color:#996600;">&quot;multipart/mixed&quot;</span>
&nbsp;
    <span style="color:#008000; font-style:italic;"># the templates live in RAILSROOT/app/views/documents</span>
    <span style="color:#008000; font-style:italic;"># these are views normally generated by the DocumentsController</span>
    part<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:content_type</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;multipart/alternative&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>alternative<span style="color:#006600; font-weight:bold;">|</span>
      alternative.<span style="color:#9900CC;">part</span> <span style="color:#996600;">&quot;text/plain&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>p<span style="color:#006600; font-weight:bold;">|</span>
        <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">body</span> = render_message<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;documents/show.txt&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:ledger_item</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> ledger_item<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      alternative.<span style="color:#9900CC;">part</span> <span style="color:#996600;">&quot;text/html&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>p<span style="color:#006600; font-weight:bold;">|</span>
        <span style="color:#CC0066; font-weight:bold;">p</span>.<span style="color:#9900CC;">body</span> = render_message<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;documents/show.html&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:ledger_item</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> ledger_item<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
    <span style="color:#008000; font-style:italic;"># And here is the magic:</span>
    <span style="color:#008000; font-style:italic;"># probably could be refactored, but it's working!</span>
    attachment <span style="color:#996600;">&quot;application/pdf&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>a<span style="color:#006600; font-weight:bold;">|</span>
      a.<span style="color:#9900CC;">filename</span> = <span style="color:#996600;">&quot;#{ledger_item.period}.pdf&quot;</span>
&nbsp;
      template = <span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">File</span>.<span style="color:#9900CC;">join</span><span style="color:#006600; font-weight:bold;">&#40;</span>Rails.<span style="color:#9900CC;">root</span>, <span style="color:#996600;">'app'</span>, <span style="color:#996600;">'views'</span>, <span style="color:#996600;">'documents'</span>, <span style="color:#996600;">'show.pdf.prawn'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">read</span>
&nbsp;
      pdf = <span style="color:#6666ff; font-weight:bold;">Prawn::Document</span>.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>PRAWN_DEFAULT_STYLES<span style="color:#006600; font-weight:bold;">&#41;</span>;
      pdf.<span style="color:#9900CC;">instance_eval</span> <span style="color:#9966CC; font-weight:bold;">do</span>
        <span style="color:#0066ff; font-weight:bold;">@ledger_item</span> = ledger_item
        <span style="color:#CC0066; font-weight:bold;">eval</span><span style="color:#006600; font-weight:bold;">&#40;</span>template<span style="color:#006600; font-weight:bold;">&#41;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
      a.<span style="color:#9900CC;">body</span> = pdf.<span style="color:#9900CC;">render</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/12/sending-prawn-documents-with-actionmailer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>RER2009 Rumble</title>
		<link>http://wendbaar.nl/blog/2009/11/rer2009-rumble/</link>
		<comments>http://wendbaar.nl/blog/2009/11/rer2009-rumble/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 11:55:20 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wendbaar.nl/blog/?p=149</guid>
		<description><![CDATA[We (@kjw and @leipeleon) participated in the RubyEnRails Rumble last weekend. It was a blast!
]]></description>
			<content:encoded><![CDATA[<p>We (<a href="http://twitter.com/kjw">@kjw</a> and <a href="http://twitter.com/leipeleon">@leipeleon</a>) participated in the <a href="http://2009.rubyenrails.nl/">RubyEnRails</a> Rumble last weekend. It was a blast!</p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/11/rer2009-rumble/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prevent spambots from posting</title>
		<link>http://wendbaar.nl/blog/2009/09/prevent-spambots-from-posting/</link>
		<comments>http://wendbaar.nl/blog/2009/09/prevent-spambots-from-posting/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 22:15:46 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://beriedata.nl/blog/?p=98</guid>
		<description><![CDATA[Just got a report that we&#8217;re getting spammed by a spambot.
Then I recalled a remark @smeevil made about a technique he used to fight off spambots: create a valid form element but put it away somewhere off screen (a hidden field won&#8217;t probably work)
table.rb:

?Download table.rbclass Table &#60; ActiveRecord::Base
  attr_accessor :company
  validates_length_of   [...]]]></description>
			<content:encoded><![CDATA[<p>Just got a report that we&#8217;re getting spammed by a spambot.</p>
<p>Then I recalled a remark <a href="http://twitter.com/smeevil">@smeevil</a> made about a technique he used to fight off spambots: create a valid form element but put it away somewhere off screen (a hidden field won&#8217;t probably work)</p>
<p><span id="more-98"></span>table.rb:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://wendbaar.nl/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=98&amp;download=table.rb">table.rb</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p987"><td class="code" id="p98code7"><pre class="ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> Table <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#6666ff; font-weight:bold;">ActiveRecord::Base</span>
  attr_accessor <span style="color:#ff3333; font-weight:bold;">:company</span>
  validates_length_of       <span style="color:#ff3333; font-weight:bold;">:company</span>,  <span style="color:#ff3333; font-weight:bold;">:maximum</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006666;">0</span>, <span style="color:#ff3333; font-weight:bold;">:allow_nil</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>, <span style="color:#ff3333; font-weight:bold;">:message</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Don't spam us, OK?&quot;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p># new.html.erb:</p>
<pre lang="html" file="new.html.erb">
&lt;%= error_message_on :abuse, :company, {
	:prepend_text =&gt; "&lt;div class='error'&gt;",
	:append_text =&gt; "&lt;/div&gt;",
	:css_class =&gt; "flash"
} %&gt;

&lt;% form_for @table do |f| %&gt;
  &lt;%= f.text_field :company, :class =&gt; "your_company"%&gt;
  &lt;%= f.label :real_field %&gt;&lt;br /&gt;
  &lt;%= f.text_field :real_field %&gt;
&lt;% end %&gt;

&lt;script LANGUAGE="javascript"&gt;
document.getElementById("table_real_field").focus();
&lt;/script&gt;
</pre>
<p># site.css</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left2">Download <a href="http://wendbaar.nl/blog/wp-content/plugins/wp-codebox/wp-codebox.php?p=98&amp;download=site.css">site.css</a></span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p988"><td class="code" id="p98code8"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.your_company</span> <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-1000px</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-1000px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/09/prevent-spambots-from-posting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using github on the mac for non-programmers</title>
		<link>http://wendbaar.nl/blog/2009/06/using-github-on-the-mac-for-non-programmers/</link>
		<comments>http://wendbaar.nl/blog/2009/06/using-github-on-the-mac-for-non-programmers/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 13:30:20 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://beriedata.nl/blog/?p=92</guid>
		<description><![CDATA[A quick and dirty tutorial for some friends of mine.
Needed software:

git-osx-installer: Full native OSX git client.

Nice to have:

Textmate: text editor.
GitHub account (for push rights).
GitX: Grapichal tool for commiting to local repo (OSX 10.5+).

Create account on github
 Go to http://github.com for an account.

Optional: Provide an SSH key for pushing changes.
Clone a Repo

My advice is to generate [...]]]></description>
			<content:encoded><![CDATA[<p>A quick and dirty tutorial for some friends of mine.</p>
<h2>Needed software:</h2>
<ul>
<li><a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3">git-osx-installer</a>: Full native OSX git client.</li>
</ul>
<h2>Nice to have:</h2>
<ul>
<li><a href="http://macromates.com/">Textmate</a>: text editor.</li>
<li><a href="https://github.com/">GitHub</a> account (for push rights).</li>
<li><a href="http://gitx.frim.nl/">GitX</a>: Grapichal tool for commiting to local repo (OSX 10.5+).</li>
</ul>
<h2>Create account on github</h2>
<p> Go to <a href="http://github.com">http://github.com</a> for an account.</p>
<p>
Optional: <a href="http://github.com/guides/providing-your-ssh-key">Provide an SSH</a> key for pushing changes.</p>
<h2>Clone a Repo</h2>
<p><img src="http://beriedata.nl/blog/wp-content/uploads/2009/06/GitHub.jpg"/><br />
My advice is to generate a special dir for the projects (mine is <code>Rails</code>).<br/><br />
Fire up the terminal and type:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p92code12'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9212"><td class="code" id="p92code12"><pre class="shell" style="font-family:monospace;">    # Goto the dir
cd ~/Rails
    # if the repo is read only:
git clone git://github.com/LeipeLeon/facebooker.git
    # if you have push rights:
git clone git@github.com:LeipeLeon/facebooker.git
    # if you installed GitX (as mentioned above)
gitx</pre></td></tr></table></div>

<h2>Adding changes</h2>
<p>With the gitx program it&#8217;s easy to commit thanges to your local repo. When these are ready to commit to the master you sync it first with the <code>HEAD</code> and then push your changes.

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p92code13'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9213"><td class="code" id="p92code13"><pre class="shell" style="font-family:monospace;">    # get changes from the master repo to your local repo
git pull
    # push your changes
git push</pre></td></tr></table></div>

<h3>Additional info:</h3>
<p>If it&#8217;s a rails application you&#8217;re cloning, startup the server with</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p92code14'); return false;">View Code</a> SHELL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p9214"><td class="code" id="p92code14"><pre class="shell" style="font-family:monospace;">    # Copy database credentials, uses sqlite3 as default
cp config/database.yml.example config/database.yml
    # install required gems
rake gems:install
    # make tables
rake db:migrate
    # startup server at http://localhost:3000
script/server</pre></td></tr></table></div>

<p> and you will be able to use the application at http://localhost:3000</p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/06/using-github-on-the-mac-for-non-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://beriedata.nl/blog/wp-content/uploads/2009/06/GitHub.jpg" length="24216" type="image/jpeg" />
<enclosure url="http://beriedata.nl/blog/wp-content/uploads/2009/06/GitHub.jpg" length="24216" type="image/jpeg" />
<enclosure url="http://beriedata.nl/blog/wp-content/uploads/2009/06/GitHub.jpg" length="24216" type="image/jpeg" />
<enclosure url="http://beriedata.nl/blog/wp-content/uploads/2009/06/GitHub.jpg" length="24216" type="image/jpeg" />
		</item>
		<item>
		<title>Burgerweeshuis Evenementen Kalender</title>
		<link>http://wendbaar.nl/blog/2009/05/burgerweeshuis-evenementen-kalender/</link>
		<comments>http://wendbaar.nl/blog/2009/05/burgerweeshuis-evenementen-kalender/#comments</comments>
		<pubDate>Wed, 13 May 2009 22:20:52 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://beriedata.nl/blog/?p=84</guid>
		<description><![CDATA[Bij het gebrek aan een RSS feed van de burgerweeshuis agenda heb ik zelf een (ruby) tooltje gebouwd om alle nieuwe evenementen in google calender te plaatsen.
Tevens wordt elk nieuw evenement automatisch geplaats in het twitter account @burgerweeshuis. Via @nuinhetbw alle evenementen een uur van te voren aangekondigd.
Get yours here:
  
Dit tooltje heeft de [...]]]></description>
			<content:encoded><![CDATA[<p>Bij het gebrek aan een RSS feed van de burgerweeshuis agenda heb ik zelf een (ruby) tooltje gebouwd om alle nieuwe evenementen in google calender te plaatsen.</p>
<p>Tevens wordt elk nieuw evenement automatisch geplaats in het twitter account <a href="http://twitter.com/burgerweeshuis">@burgerweeshuis</a>. Via <a href="http://twitter.com/nuinhetbw">@nuinhetbw</a> alle evenementen een uur van te voren aangekondigd.</p>
<p>Get yours here:<br />
<a href="http://www.google.com/calendar/feeds/e333349c9cothvqgmsfdqbuego%40group.calendar.google.com/public/basic"><img src="http://www.google.com/calendar/images/xml.gif" /></a> <a href="http://www.google.com/calendar/ical/e333349c9cothvqgmsfdqbuego%40group.calendar.google.com/public/basic.ics"><img src="http://www.google.com/calendar/images/ical.gif" /></a> <a href="http://www.google.com/calendar/embed?src=e333349c9cothvqgmsfdqbuego%40group.calendar.google.com&amp;ctz=Europe/Rome"><img src="http://www.google.com/calendar/images/html.gif" /></a></p>
<p>Dit tooltje heeft de aandacht getrokken van diverse andere organisaties en ben dan ook van plan om hier iets meer mee te gaan doen. I&#8217;ll keep you posted!</p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/05/burgerweeshuis-evenementen-kalender/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.google.com/calendar/images/html.gif" length="423" type="image/gif" />
<enclosure url="http://www.google.com/calendar/images/html.gif" length="423" type="image/gif" />
<enclosure url="http://www.google.com/calendar/images/html.gif" length="423" type="image/gif" />
<enclosure url="http://www.google.com/calendar/images/html.gif" length="423" type="image/gif" />
		</item>
		<item>
		<title>Textmate Comments doesn&#8217;t work anymore!</title>
		<link>http://wendbaar.nl/blog/2009/02/textmate-comments-doesnt-work-anymore/</link>
		<comments>http://wendbaar.nl/blog/2009/02/textmate-comments-doesnt-work-anymore/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 10:48:32 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[comment]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://beriedata.nl/blog/?p=78</guid>
		<description><![CDATA[I like to stay on the edge of development so I&#8217;ve installed all the bundles available for TextMate in http://svn.textmate.org/trunk  to my ~/Library/Application Support/TextMate.
But then you get a lot of bundles you don&#8217;t need like Active4D and ASP, so I disabled all the bundles who&#8217;s name didn&#8217;t ring a bell to me. The menu [...]]]></description>
			<content:encoded><![CDATA[<p>I like to stay on the edge of development so I&#8217;ve installed all the bundles available for TextMate in <a href="http://svn.textmate.org/trunk" class="external">http://svn.textmate.org/trunk</a>  to my <code>~/Library/Application Support/TextMate</code>.</p>
<p>But then you get a lot of bundles you don&#8217;t need like Active4D and ASP, so I disabled all the bundles who&#8217;s name didn&#8217;t ring a bell to me. The menu is readable again! Little did I know it was going to bite me in the foot the next day.</p>
<p>I performed this action late at night, just before getting some shut-eye. The next morning I was happily coding away until I discovered the Comment (command + /) feature didn&#8217;t work anymore!</p>
<p>Damn!</p>
<p>At first I thought it was a corrupted bundle, so I disabled all bundles to no avail. Then I reinstalled TextMate, nothing&#8230;.</p>
<p>I have this plugin called <a href="http://ciaranwal.sh/2008/08/05/textmate-plug-in-projectplus" class="external">Project+</a>, updated it: nope, reinstall it: nope, disable it: nope.</p>
<p>With <a href="http://www.appzapper.com/" class="external">AppZapper</a> I deleted the caches: no joy.</p>
<p>So I was already an hour away and I got frustrated&#8230;.. So I enabled all plugins and Tada! IT WORKED AGAIN! By trail and error I found out: <br/></p>
<blockquote><p><span style="color: red;"><b>It&#8217;s all in the bundle called &#8220;Source&#8221;</b></span>.</p></blockquote>
<p>Re-enabling this plugin restores all functionality! Whoohoo!!</p>
<p>So, here we go again, coding happily away&#8230;. <span style="font:'arial unicode MS', arial, geneva, sans-serif bold;">&#9775;</span></p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/02/textmate-comments-doesnt-work-anymore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create a Facebook app with Rails</title>
		<link>http://wendbaar.nl/blog/2009/02/create-a-facebook-app-with-rails/</link>
		<comments>http://wendbaar.nl/blog/2009/02/create-a-facebook-app-with-rails/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 10:57:53 +0000</pubDate>
		<dc:creator>berl</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wendbaar.nl/blog/?p=179</guid>
		<description><![CDATA[In the beginning of this year I scored a programming gig for Wakoopa to spice up their Facebook app.
The original app was created in .NET by a third party and was buggy as hell. The goal was to recreate the app in Rails and have at least the same functionality.
Some befriended (PHP) developers warned me [...]]]></description>
			<content:encoded><![CDATA[<p>In the beginning of this year I scored a programming gig for <a href="http://wakoopa.com/" class="external">Wakoopa</a> to spice up their <a href="http://apps.facebook.com/wakoopatracker/" class="external">Facebook app</a>.</p>
<p>The original app was created in .NET by a third party and was buggy as hell. The goal was to recreate the app in Rails and have at least the same functionality.</p>
<p>Some befriended (PHP) developers warned me that facebook has some serious pitfalls so before I made an estimate for the project I bought a PDF called <a href="http://www.pragprog.com/titles/mmfacer/developing-facebook-platform-applications-with-rails" class="external">Developing Facebook Platform Applications with Rails</a> from <a href="http://www.pragprog.com/" class="external">The Pragmatic Programmers</a> and a PDF book from <a href="http://peepcode.com/products/rails-on-facebook">Peepcode</a>.</p>
<p>Thanks to this PDF and the <a href="http://github.com/mmangino/facebooker/tree/master" class="external">Facebooker plugin</a> it was doable. I made the sample application as described in the PDF and so I had enough knowledge to create the WakoopaFacebook app. My advice: buy it!</p>
<p><span id="more-179"></span><br />
<h3>Facebooker plugin</h3>
<p>The data that has to be shown on the Facebook page comes from the <a href="http://wakoopa.com/api/">Wakoopa API</a>. This has to be converted to FBML markup to be compatible with Facebook. You also have the choice to work with iframes but FBML has some advanced features like automatic substitution of id&#8217;s to user names and userdetails.</p>
<p>A big plus also is that you don&#8217;t need to store all that data (it&#8217;s not permitted by facebook to store data longer than 24 hours), Facebook takes care of it. Also it takes the user&#8217;s privacy setting in consideration.</p>
<p>The Facebooker plugin provides a lot of things for you to make development a breeze. Session handling is automaticly provided by adding <code>ensure_application_is_installed_by_facebook_user</code> to the controller. </p>
<h2>Facebook Caveats</h2>
<p>The <a href="http://wiki.developers.facebook.com/">Facebook Wiki</a> is a mess, so here are some tips that could save you some time. Also all requests from facebook are POST&#8217;s.</p>
<h3>Session Keys</h3>
<p>If the user hasn&#8217;t been to your application for a while (session timed out, 1 hour) or logged out (whichever comes first), the session_key becomes invalid. Costed me a few hours to find out, but you can get infinite session keys. </p>
<p>By asking the user for permission you can use offline_access, this will generate a infinite session key automaticly. (use
<pre>&lt;%= fb_prompt_permission :offline_access, "May we publish on your feeds?" %&gt;</pre>
<p> to ask for access).</p>
<p>There is a difference between timelimited and infinite keys:
<pre>Infinite key:
   83d89fd715ac900df4783a68-741234111111
Temporary key with expiration:
   2.8dDnBR2FKc6yOeN2hHISRw__.86400.1232319600-741234111111</pre>
<p> but I don&#8217;t know the exact scheme of this.
</p>
<p>See <a href="http://wiki.developers.facebook.com/index.php/Extended_permissions">Extended_permissions</a> and <a href="http://wiki.developers.facebook.com/index.php/New_Design_Platform_Changes#Changes_to_Session_Keys">Changes_to_Session_Keys</a> for more details.</p>
<h3>Updating the profile box/newsfeed</h3>
<p>This can take a while (sometimes several seconds!) so make sure you don&#8217;t do that every request cycle. Put it in a separate process. Also publising to the newsfeed requires a session key, use the infinite session key to update the newsfeed if the user is not logged in.</p>
<h3>Make your actions responsive</h3>
<p>Facebook is very tight on timeouts, so if you&#8217;re not responsive enough the user will get a error message. Keep those controllers fast!</p>
<p><span style="font:'arial unicode MS', arial, geneva, sans-serif bold;">☯</span></p>
]]></content:encoded>
			<wfw:commentRss>http://wendbaar.nl/blog/2009/02/create-a-facebook-app-with-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
