<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>devroom.io</title><link>https://www.devroom.io/</link><description>Recent content on devroom.io</description><generator>Hugo</generator><language>en</language><managingEditor>ariejan@devroom.io (Ariejan de Vroom)</managingEditor><webMaster>ariejan@devroom.io (Ariejan de Vroom)</webMaster><atom:link href="https://www.devroom.io/feed.xml" rel="self" type="application/rss+xml"/><item><title>Rocksmith 2014 on CachyOS/Arch Linux</title><link>https://www.devroom.io/2025/12/02/rocksmith-2014-on-cachyos/arch-linux/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/12/02/rocksmith-2014-on-cachyos/arch-linux/</guid><description>&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;
&lt;p&gt;Yes! 2025 is the year of the Linux desktop! I&amp;rsquo;ve always liked Linux as a desktop OS, but one thing was lacking: gaming.&lt;/p&gt;
&lt;p&gt;Lots of things happened in the &lt;em&gt;gaming on Linux&lt;/em&gt; space. I&amp;rsquo;m not an expert, but I think the Steam Deck played a big role. SteamOS, the software that runs on the Steam Deck, is based on Arch Linux and KDE/Plasma. Many games are either compatible with Linux, or they make use of the &lt;em&gt;Proton&lt;/em&gt; compatibility layer developed by Valve. Proton is what allows you to run Windows games on Linux - mostly.&lt;/p&gt;</description></item><item><title>Programming with AI: You're Probably Doing It Wrong</title><link>https://www.devroom.io/2025/08/08/programming-with-ai-youre-probably-doing-it-wrong/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/08/08/programming-with-ai-youre-probably-doing-it-wrong/</guid><description>&lt;p&gt;2025 is the year of Artificial Intelligence. With GPT-5 just released, many developers will re-evaluate their use of large language models for assisting in their daily work.&lt;/p&gt;
&lt;p&gt;I’m here to tell you: you’re probably doing it wrong. And you’re missing out on the real power that AI assisted development can give you.&lt;/p&gt;</description></item><item><title>Downsizing a Proxmox VE Cluster: From Three Nodes to Two Stand‑Alone Hosts</title><link>https://www.devroom.io/2025/07/26/downsizing-a-proxmox-ve-cluster-from-three-nodes-to-two-standalone-hosts/</link><pubDate>Sat, 26 Jul 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/07/26/downsizing-a-proxmox-ve-cluster-from-three-nodes-to-two-standalone-hosts/</guid><description>&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;Over time I&amp;rsquo;ve accumulated quite a bit of hardware for my homelab. I started with a three‑node Proxmox VE setup:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Node ID&lt;/th&gt;
 &lt;th&gt;Hostname&lt;/th&gt;
 &lt;th&gt;Role&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;1&lt;/td&gt;
 &lt;td&gt;Treebeard&lt;/td&gt;
 &lt;td&gt;Main hypervisor (all production VMs &amp;amp; ZFS pool)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2&lt;/td&gt;
 &lt;td&gt;Aragorn&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;Going away&lt;/strong&gt; – VMs are migrating to Treebeard&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;3&lt;/td&gt;
 &lt;td&gt;Samwise&lt;/td&gt;
 &lt;td&gt;Tiny SFF box; runs a single Flight‑Radar VM&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;With &lt;strong&gt;Aragorn&lt;/strong&gt; about to be decommissioned, there’s no real benefit in keeping the two survivors in a formal Corosync cluster. Stand‑alone nodes are simpler to maintain and upgrade.&lt;/p&gt;</description></item><item><title>Proxmox: Replace a failed bootable ZFS disk in rpool</title><link>https://www.devroom.io/2025/04/02/proxmox-replace-a-failed-bootable-zfs-disk-in-rpool/</link><pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/04/02/proxmox-replace-a-failed-bootable-zfs-disk-in-rpool/</guid><description>&lt;p&gt;It&amp;rsquo;s what every sysadmin dreads and prepares for: a failed hard drive.&lt;/p&gt;
&lt;p&gt;Replacing a failed SSD in a Proxmox boot pool (rpool) can be a daunting task, especially considering the critical role it plays in your server’s operation. A mirrored ZFS boot pool provides redundancy, but when one of the drives fails, it’s imperative to address the issue promptly to maintain system integrity and prevent data loss. This article will walk you through the process of replacing a failed SSD in your Proxmox rpool, ensuring that your system remains robust and reliable.&lt;/p&gt;</description></item><item><title>Fixing a Toyota Yaris water leak</title><link>https://www.devroom.io/2025/03/10/fixing-a-toyota-yaris-water-leak/</link><pubDate>Mon, 10 Mar 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/03/10/fixing-a-toyota-yaris-water-leak/</guid><description>&lt;p&gt;I&amp;rsquo;ve owned this Toyota Yaris new from 2010. We don&amp;rsquo;t use it &lt;em&gt;that&lt;/em&gt; often, but it&amp;rsquo;s a cheap
car to own and it&amp;rsquo;s great to have around when needed.&lt;/p&gt;
&lt;p&gt;Unfortunately, during some very wet winter weather, we noticed that the car was very wet on the inside.&lt;/p&gt;</description></item><item><title>Comments are back on the menu</title><link>https://www.devroom.io/2025/02/12/comments-are-back-on-the-menu/</link><pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2025/02/12/comments-are-back-on-the-menu/</guid><description>&lt;p&gt;






 
 
 
 
 
 

 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 &lt;a href="https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-1440.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Comments are back on the menu"&gt;
 &lt;picture&gt;
 
 &lt;source
 type="image/webp"
 srcset="https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-480.webp 480w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-720.webp 720w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-1024.webp 1024w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-1440.webp 1440w"
 sizes="(max-width: 768px) 100vw, 720px"
 /&gt;
 
 
 &lt;source
 srcset="https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-480.png 480w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-720.png 720w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-1024.png 1024w, https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-1440.png 1440w"
 sizes="(max-width: 768px) 100vw, 720px"
 /&gt;
 
 &lt;img
 src="https://www.devroom.io/processed-images/posts/2025/2025-02-12-comments-are-back-on-the-menu/featured-480.webp"
 alt="Comments are back on the menu"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 width="1792"
 height="1024"
 /&gt;
 &lt;/picture&gt;
 &lt;/a&gt;
 
 


&lt;/p&gt;</description></item><item><title>Why Asahi Linux is not for me</title><link>https://www.devroom.io/2024/10/23/why-asahi-linux-is-not-for-me/</link><pubDate>Wed, 23 Oct 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/10/23/why-asahi-linux-is-not-for-me/</guid><description>&lt;p&gt;In &lt;a href="https://www.devroom.io/2024/10/15/macbookpro-m1-with-asahi-linux-fractional-display-scaling-in-gnome/"&gt;previous&lt;/a&gt; &lt;a href="https://www.devroom.io/2024/10/14/macbookpro-m1-with-asahi-linux-fixing-the-touchpad/"&gt;posts&lt;/a&gt; I discussed some &lt;a href="https://asahilinux.org/"&gt;Asahi Linux&lt;/a&gt; specific setup to make
Asahi Linux play nice with my MacbookPro M1 Max.&lt;/p&gt;
&lt;p&gt;After running Asahi for about a week on my &lt;em&gt;production laptop&lt;/em&gt;, I&amp;rsquo;m ready
to do some evaluation.&lt;/p&gt;</description></item><item><title>MacbookPro M1 with Asahi Linux: Fractional Display Scaling in GNOME</title><link>https://www.devroom.io/2024/10/15/macbookpro-m1-with-asahi-linux-fractional-display-scaling-in-gnome/</link><pubDate>Tue, 15 Oct 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/10/15/macbookpro-m1-with-asahi-linux-fractional-display-scaling-in-gnome/</guid><description>&lt;p&gt;The MacbookPro has a high pixels-per-inch screen, or as Apple likes to call it,
a &lt;em&gt;Liquid Retina XDR display&lt;/em&gt;. Including the notch area, it measures in at
3456x2234 pixels at 254 PPI. It&amp;rsquo;s a beautiful screen&amp;hellip;&lt;/p&gt;</description></item><item><title>MacbookPro M1 with Asahi Linux: Fixing the touchpad</title><link>https://www.devroom.io/2024/10/14/macbookpro-m1-with-asahi-linux-fixing-the-touchpad/</link><pubDate>Mon, 14 Oct 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/10/14/macbookpro-m1-with-asahi-linux-fixing-the-touchpad/</guid><description>&lt;p&gt;I&amp;rsquo;m a &lt;em&gt;big&lt;/em&gt; Linux fan. On my Ryzen 3700X desktop rig I run &lt;a href="https://archlinux.org"&gt;Arch Linux&lt;/a&gt;
and I like it. The only times I boot into Windows are to play
&lt;em&gt;Rocksmith 2014&lt;/em&gt;, because I still haven&amp;rsquo;t got that game to work
properly on Steam/Proton.&lt;/p&gt;</description></item><item><title>NowNowNow</title><link>https://www.devroom.io/now/</link><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/now/</guid><description>&lt;p&gt;This is my &lt;a href="https://nownownow.com/about"&gt;Now page&lt;/a&gt; where I share what I&amp;rsquo;m up to &lt;em&gt;right now&lt;/em&gt;. Consider getting your own.&lt;/p&gt;
&lt;p&gt;Updated: 2025-11-14&lt;/p&gt;
&lt;h2 id="personal"&gt;Personal&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Busy with caring for the &lt;strong&gt;family&lt;/strong&gt;, mostly.&lt;/li&gt;
&lt;li&gt;Playing bass guitar (recreationally)&lt;/li&gt;
&lt;li&gt;Bought a 3D printer, so I&amp;rsquo;m printing all the things!&lt;/li&gt;
&lt;li&gt;The Golf Cabrio is currently sitting with the dashboard removed. Still need to put it back together&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="professional"&gt;Professional&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Facilitating Code Retreat workshops and giving &lt;em&gt;Clean Code&lt;/em&gt; master classes.&lt;/li&gt;
&lt;li&gt;Working on a Python/Django app currently, mostly with a project-wide refactoring and improvements.&lt;/li&gt;
&lt;li&gt;Supporting colleagues in their endeavors with craftsmanship and professional development.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Peel before use: mistakes were made</title><link>https://www.devroom.io/2024/04/07/peel-before-use-mistakes-were-made/</link><pubDate>Sun, 07 Apr 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/04/07/peel-before-use-mistakes-were-made/</guid><description>&lt;p&gt;The stock AMD Wraith cooler on my linux box was getting loud. Since I recently migrated the complete system from a (too) tight mini-ATX case to a larger &lt;a href="https://www.corsair.com/us/en/p/pc-cases/cc-9011200-ww/4000d-airflow-tempered-glass-mid-tower-atx-case-black-cc-9011200-ww"&gt;Corsair 4000D Airflow&lt;/a&gt;, I decided to splurge on some new cooling.&lt;/p&gt;</description></item><item><title>Import Google Photos Takeout into Immich</title><link>https://www.devroom.io/2024/03/21/import-google-photos-takeout-into-immich/</link><pubDate>Thu, 21 Mar 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/03/21/import-google-photos-takeout-into-immich/</guid><description>&lt;div class="alert info" role="note" aria-label="Info"&gt;
 &lt;p&gt;&lt;strong&gt;Update 2025-09-08&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It was brought to my attention by several readers that these instructions are outdated and no longer working.&lt;/p&gt;
&lt;p&gt;Immich now provides &lt;a href="https://immich.app/docs/features/command-line-interface/"&gt;Immich CLI&lt;/a&gt;, which allows you to easily upload photos from a terminal.&lt;/p&gt;</description></item><item><title>How to extract multiple .tgz Google takeout archives</title><link>https://www.devroom.io/2024/03/20/how-to-extract-multiple-.tgz-google-takeout-archives/</link><pubDate>Wed, 20 Mar 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/03/20/how-to-extract-multiple-.tgz-google-takeout-archives/</guid><description>&lt;p&gt;I love Google Photos for its easy of use and features. But, it&amp;rsquo;s &lt;em&gt;Google&lt;/em&gt;. As you may knwo I like to selfhost all the things, but for the longest time I was not able to find a good selfhosted alternative for Google Photos.&lt;/p&gt;</description></item><item><title>ZFS: Upgrade single disk to mirror</title><link>https://www.devroom.io/2024/03/07/zfs-upgrade-single-disk-to-mirror/</link><pubDate>Thu, 07 Mar 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/03/07/zfs-upgrade-single-disk-to-mirror/</guid><description>&lt;p&gt;For a while now I&amp;rsquo;ve had a single 3TB WD Green in my NAS to store local &lt;a href="https://www.borgbackup.org/"&gt;Borg backups&lt;/a&gt; before syncing them to &lt;del&gt;Google Drive&lt;/del&gt; a &lt;a href="https://www.hetzner.com/storage/storage-box/"&gt;Hetzner Storage Box&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Because I recently replaced my 3TB Reds for 10TB HGST&amp;rsquo;s, I have some spare drives left.&lt;/p&gt;</description></item><item><title>Arch Linux: Improve boot time performance</title><link>https://www.devroom.io/2024/02/08/arch-linux-improve-boot-time-performance/</link><pubDate>Thu, 08 Feb 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/02/08/arch-linux-improve-boot-time-performance/</guid><description>&lt;p&gt;I run Debian on all my servers. It&amp;rsquo;s a great stable OS and I love it. Proxmox, &lt;a href="https://www.devroom.io/2020/11/12/the-big-diy-nas-update/#proxmox"&gt;which I run on my homelab server&lt;/a&gt;, is also based on Debian.&lt;/p&gt;
&lt;p&gt;However, on my desktop I run &lt;a href="https://archlinux.org/"&gt;Arch Linux&lt;/a&gt;. It&amp;rsquo;s a great distro to tinker with. It comes with a lot of &lt;em&gt;up to date&lt;/em&gt; packages, but it also has the AUR - Arch User Repository. So for any app you can find, there probably is an easy way to install it.&lt;/p&gt;</description></item><item><title>Troubleshooting zfs online not working</title><link>https://www.devroom.io/2024/01/27/troubleshooting-zfs-online-not-working/</link><pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/01/27/troubleshooting-zfs-online-not-working/</guid><description>&lt;p&gt;Yesterday the &lt;a href="https://www.devroom.io/2024/01/24/prepare-new-harddisk-for-zfs/nas/"&gt;first 10TB recertified drive tested all okay&lt;/a&gt;. I&amp;rsquo;ve decided to upgrade the four 3TB drives in my pool to 10TB to expand capacity.&lt;/p&gt;
&lt;p&gt;I have a 16 bay hot-swap chassis with 13 slots filled.&lt;/p&gt;</description></item><item><title>Prepare new harddisk for ZFS/NAS</title><link>https://www.devroom.io/2024/01/24/prepare-new-harddisk-for-zfs/nas/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/01/24/prepare-new-harddisk-for-zfs/nas/</guid><description>&lt;p&gt;You can read more on my homelab and datahoarding problem &lt;a href="https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/"&gt;here&lt;/a&gt; and &lt;a href="https://www.devroom.io/2020/11/12/the-big-diy-nas-update/"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Today I scored two &lt;em&gt;recertified&lt;/em&gt; 10TB HGST drives for very little. Normally I&amp;rsquo;d go for the brand new stuff, but this deal was too good to be true.&lt;/p&gt;</description></item><item><title>Volkswagen Golf Cabrio - Update</title><link>https://www.devroom.io/2024/01/24/volkswagen-golf-cabrio-update/</link><pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2024/01/24/volkswagen-golf-cabrio-update/</guid><description>&lt;p&gt;It&amp;rsquo;s been almost 18 months since I purchased a, let&amp;rsquo;s be honest here, beat-up Volkswagen Golf Cabrio from 1994. At the time my knowledge about car mechanics was pretty much zero. Did I tell you I like a good challenge?&lt;/p&gt;</description></item><item><title>Base2Tone Cave Dark for Slack</title><link>https://www.devroom.io/2023/05/17/base2tone-cave-dark-for-slack/</link><pubDate>Wed, 17 May 2023 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2023/05/17/base2tone-cave-dark-for-slack/</guid><description>&lt;p&gt;I like my colorschemes. The most recent one I discoved is &lt;a href="https://base2t.one/"&gt;Base2Tone&lt;/a&gt; &lt;a href="https://base2t.one/demo/cave/"&gt;Cave Dark&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, naturally I wanted to have it in Slack too, so I created a custom theme. Here it is.&lt;/p&gt;</description></item><item><title>Volkswagen Golf III Cabrio (1994)</title><link>https://www.devroom.io/projects/volkswagen-golf-iii-cabrio-1994/</link><pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/volkswagen-golf-iii-cabrio-1994/</guid><description>And now for something completely different: I&amp;rsquo;m going to fix up 1994 Volkswagen Golf III Cabrio at home.</description></item><item><title>10GB Ethernet with Proxmox and Ryzentosh 3700X with macos Catalina</title><link>https://www.devroom.io/2020/11/18/10gb-ethernet-with-proxmox-and-ryzentosh-3700x-with-macos-catalina/</link><pubDate>Wed, 18 Nov 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/11/18/10gb-ethernet-with-proxmox-and-ryzentosh-3700x-with-macos-catalina/</guid><description>&lt;p&gt;&lt;em&gt;Please read my previous post on my DIY NAS here: &lt;a href="https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/"&gt;1&lt;/a&gt; and &lt;a href="https://www.devroom.io/2020/11/12/the-big-diy-nas-update/"&gt;2&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;10 gigabit&lt;/em&gt;. That is &lt;em&gt;10,000 megabit&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I come from a time when fast internet meant you had ISDN. For reference, that&amp;rsquo;s 192kbps, or roughly 24KB/s.&lt;/p&gt;</description></item><item><title>The Big DIY NAS Update</title><link>https://www.devroom.io/2020/11/12/the-big-diy-nas-update/</link><pubDate>Thu, 12 Nov 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/11/12/the-big-diy-nas-update/</guid><description>&lt;p&gt;&lt;em&gt;Please read my previous post on my DIY NAS here: &lt;a href="https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/"&gt;https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="a-brief-history"&gt;A brief history&lt;/h2&gt;
&lt;p&gt;In May 2019 I decided it was time to jump on the NAS bandwagon. I started out with the following:&lt;/p&gt;</description></item><item><title>Repairing a Xiaomi Roborock S5 Max</title><link>https://www.devroom.io/2020/10/03/repairing-a-xiaomi-roborock-s5-max/</link><pubDate>Sat, 03 Oct 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/10/03/repairing-a-xiaomi-roborock-s5-max/</guid><description>&lt;p&gt;Many less-tech savvy people I know have a robot vacuum cleaner. So why didn&amp;rsquo;t I? I don&amp;rsquo;t know,
so I bought one. I was able to get a good deal through a Chinese reseller that could ship
directly from Spain. As it turned out, they shipped with Amazon.&lt;/p&gt;</description></item><item><title>Repair: Philips 42" 3D LED TV with Ambilight - AGAIN</title><link>https://www.devroom.io/projects/repair-philips-42pfl6057h-12-again/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-philips-42pfl6057h-12-again/</guid><description>This week our Philips TV died. I repaired it before, and it seemed the problem was back.</description></item><item><title>Why I will not repair your amplifier</title><link>https://www.devroom.io/2020/03/29/why-i-will-not-repair-your-amplifier/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/03/29/why-i-will-not-repair-your-amplifier/</guid><description>&lt;p&gt;I like tinkering with electronics and one awesome way of doing that is
by &lt;a href="https://www.devroom.io/tags/audiorepair/"&gt;repairing things that are broken&lt;/a&gt;. I get about ten or more requests
every month from random people from the internet to help them repair there device. My
reaction is always the same: no, I will not. This posts tries to explain why
I say no and what alternative I can offer them.&lt;/p&gt;</description></item><item><title>Test Flutter on Drone CI</title><link>https://www.devroom.io/2020/03/17/test-flutter-on-drone-ci/</link><pubDate>Tue, 17 Mar 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/03/17/test-flutter-on-drone-ci/</guid><description>&lt;p&gt;&lt;em&gt;This post is specific to &lt;a href="https://drone.io/"&gt;Drone CI&lt;/a&gt;, but is probably easily adoptable to other CI systems, like Gitlab.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://flutter.dev/"&gt;Flutter&lt;/a&gt; is UI library based on &lt;a href="https://dart.dev/"&gt;Dart&lt;/a&gt; to create beautiful, natively compiled applications for mobile. Web and desktop targets are also in the works.&lt;/p&gt;</description></item><item><title>A Drone Hugo plugin that works</title><link>https://www.devroom.io/2020/03/11/a-drone-hugo-plugin-that-works/</link><pubDate>Wed, 11 Mar 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/03/11/a-drone-hugo-plugin-that-works/</guid><description>&lt;p&gt;&lt;em&gt;This article contains some background to why I wrote this plugin. If you just want to use it,
see &lt;a href="https://github.com/ariejan/drone-hugo"&gt;github.com/ariejan/drone-hugo&lt;/a&gt; for details.&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I recently moved away from &lt;a href="https://about.gitlab.com/"&gt;Gitlab + Gitlab CI&lt;/a&gt; to a &lt;a href="https://gitea.com/"&gt;Gitea&lt;/a&gt; + &lt;a href="https://drone.io/"&gt;Drone&lt;/a&gt; setup.
Both Gitea and Drone are lightweight and fast, and let&amp;rsquo;s be honest, more than enough for
an engineering enthusiast like myself. They now also run on my &lt;del&gt;NAS&lt;/del&gt; &lt;a href="https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/"&gt;Homelab Server&lt;/a&gt; as docker
containers, which helps to save a few bucks every month in hosting fees.&lt;/p&gt;</description></item><item><title>The git submodule cheat sheet</title><link>https://www.devroom.io/2020/03/09/the-git-submodule-cheat-sheet/</link><pubDate>Mon, 09 Mar 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/03/09/the-git-submodule-cheat-sheet/</guid><description>&lt;p&gt;A git submodule, in its essence, is a reference to another git repository. It&amp;rsquo;s a great
way to include vendor code (like plugins or themes) into your own code base. This post
contains some examples on how to use git submodules effectively.&lt;/p&gt;</description></item><item><title>Building a DIY Home Server with FreeNAS</title><link>https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/</link><pubDate>Fri, 28 Feb 2020 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2020/02/28/building-a-diy-home-server-with-freenas/</guid><description>&lt;p&gt;&lt;span class='important'&gt;Keep reading! I&amp;rsquo;ve documented several upgrades to my DIY
NAS at the bottom of this post.
&lt;br/&gt;
After you&amp;rsquo;re doing reading this, hop over to my &lt;a href="https://www.devroom.io/2020/11/12/the-big-diy-nas-update/"&gt;latest update&lt;/a&gt; on my homelab server / NAS.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>How to background a running process over SSH</title><link>https://www.devroom.io/2019/08/28/how-to-background-a-running-process-over-ssh/</link><pubDate>Wed, 28 Aug 2019 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2019/08/28/how-to-background-a-running-process-over-ssh/</guid><description>&lt;p&gt;Today I was logged in on my FreeNAS server to setup Duplicity backups. After initial success on a small dataset of about 100MB, I cloned my configuration to backup my long term storage dataset. It contains about 50GB of data - or so I thought. It turns out there&amp;rsquo;s over 500GB there.&lt;/p&gt;</description></item><item><title>Repair: Philips 42" 3D LED TV with Ambilight</title><link>https://www.devroom.io/projects/repair-philips-42pfl6057h-12/</link><pubDate>Sun, 10 Feb 2019 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-philips-42pfl6057h-12/</guid><description>Last week I started a new repair project: a 42&amp;quot; Philips TV. The power supply was obviously defect, but I ran into another problem as well&amp;hellip;</description></item><item><title>Design: Phono X, a RIAA Phono Preamplifier</title><link>https://www.devroom.io/projects/design-phono-x/</link><pubDate>Wed, 12 Sep 2018 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/design-phono-x/</guid><description>Building a quality phono preamp is still one of the joys of the audio electronics enthusiast. This is my first take on a RIAA phono premap.</description></item><item><title>Bug severity explained</title><link>https://www.devroom.io/2017/12/08/bug-severity-explained/</link><pubDate>Fri, 08 Dec 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2017/12/08/bug-severity-explained/</guid><description>&lt;p&gt;Recently I got an email asking me about how I classify bugs and issues and how the different
categories for a bug&amp;rsquo;s severity, like &lt;em&gt;Critical&lt;/em&gt; and &lt;em&gt;Major&lt;/em&gt; can be explained clearly.&lt;/p&gt;</description></item><item><title>Repair: Hewlet Packard 34401A Bench Multimeter</title><link>https://www.devroom.io/projects/repair-hp-34401a-bench-multimeter/</link><pubDate>Fri, 01 Dec 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-hp-34401a-bench-multimeter/</guid><description>After watching The Signal Path for some I decided to treat myself to a classic 34401A 6½ digit multimeter.</description></item><item><title>Repair: Denon AVR-4520</title><link>https://www.devroom.io/projects/repair-denon-avr-4520/</link><pubDate>Tue, 21 Nov 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-denon-avr-4520/</guid><description>This unit sold from 2012-2015 as the top-of-the line AV Network Receiver from Denon. I got my hands on a unit with power protection issues. Here&amp;rsquo;s the repair log the Denon AVR-4520.</description></item><item><title>Repair: Rotel RB-970BX</title><link>https://www.devroom.io/projects/repair-rotel-rb-970bx/</link><pubDate>Mon, 13 Nov 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-rotel-rb-970bx/</guid><description>Another lucky find: Rotel RB-970BX Power Amplifier with one defective channel. Let&amp;rsquo;s fix this!</description></item><item><title>Tmux and Vim: Copy and Paste on macOS Sierra</title><link>https://www.devroom.io/2017/03/22/tmux-and-vim-copy-and-paste-on-macos-sierra/</link><pubDate>Wed, 22 Mar 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2017/03/22/tmux-and-vim-copy-and-paste-on-macos-sierra/</guid><description>&lt;p&gt;As a developer, more than anything, you copy and paste things. Making copy and paste work in properly with Vim and Tmux is, unfortunately, not trivial.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a lot of information to be found on the internet about setting up copy and paste with Tmux. There&amp;rsquo;s also
lots of information on how to setup Vim. But then you run Vim 8. On macOS Sierra. And things break down
quickly.&lt;/p&gt;</description></item><item><title>Image Zoom with plain JavaScript and CSS</title><link>https://www.devroom.io/2017/03/20/image-zoom-with-plain-javascript-and-css/</link><pubDate>Mon, 20 Mar 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2017/03/20/image-zoom-with-plain-javascript-and-css/</guid><description>&lt;p&gt;&lt;em&gt;Note: I&amp;rsquo;ve moved away from the solution outlined in this post. Mainly because I did not want
to write an entire gallery from scratch. I&amp;rsquo;ve since opted to use &lt;a href="https://sachinchoolur.github.io/lightgallery.js/"&gt;lightgallery.js&lt;/a&gt;
which is a pure JS image gallery solution with some nice goodies.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Bitcoin Mining Anno 2017</title><link>https://www.devroom.io/2017/03/08/bitcoin-mining-anno-2017/</link><pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2017/03/08/bitcoin-mining-anno-2017/</guid><description>&lt;p&gt;Bitcoin was introduced in 2008 and has gained much popularity since then. At
the time of writing the exchange rate for 1 BTC is about €1100 (or $1166), quite
an increase from when you could get 1 BTC for just a few euro.&lt;/p&gt;</description></item><item><title>Repair: Marantz PM80 Mk2</title><link>https://www.devroom.io/projects/repair-marantz-pm80-mk2/</link><pubDate>Sun, 09 Oct 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-marantz-pm80-mk2/</guid><description>The venerable Marantz PM80 Mk2. This unit was completely dead, but I was able to bring it back to life!</description></item><item><title>Squash git commits when merging</title><link>https://www.devroom.io/2016/08/17/squash-git-commits-when-merging/</link><pubDate>Wed, 17 Aug 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2016/08/17/squash-git-commits-when-merging/</guid><description>&lt;p&gt;Today I&amp;rsquo;ve been fighting to get our test suite to run against a newly delivered Oracle
12 database. Of course, that didn&amp;rsquo;t work out of the box, so there was some debugging,
trial-and-error, and cursing involved. Finally, I managed to get the build back up and running. Yay!&lt;/p&gt;</description></item><item><title>Music Streaming Setup</title><link>https://www.devroom.io/2016/04/24/music-streaming-setup/</link><pubDate>Sun, 24 Apr 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2016/04/24/music-streaming-setup/</guid><description>&lt;p&gt;I love music.&lt;/p&gt;
&lt;p&gt;Recently I got into vinyl and I love it. Although it&amp;rsquo;s not digital 24/96 studio quality, there is something relaxing about picking a record, putting it on my turn table and listening to the small diamond needle scanning the grooves of the record pressed 30 or 40 years ago. This post is not about vinyl, though.&lt;/p&gt;</description></item><item><title>Hanami and Multi-Database Testing with Travis</title><link>https://www.devroom.io/2016/04/15/hanami-and-multi-database-testing-with-travis/</link><pubDate>Fri, 15 Apr 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2016/04/15/hanami-and-multi-database-testing-with-travis/</guid><description>&lt;p&gt;&lt;em&gt;This is a re-post of my article over at &lt;a href="https://kabisa.nl"&gt;Kabisa&lt;/a&gt;&amp;rsquo;s &lt;a href="https://www.theguild.nl/hanami-and-multi-database-testing-with-travis"&gt;The Guild&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been busy rewriting &lt;a href="https://github.com/ariejan/firefly"&gt;Firefly&lt;/a&gt; for a while now using
&lt;a href="http://hanamirb.org"&gt;Hanami&lt;/a&gt;. Hanami is a fascinatingly fresh ruby web framework with a
strong opinion on &lt;em&gt;Clean Architecture&lt;/em&gt;. Me like!&lt;/p&gt;</description></item><item><title>Repair: Denon PMA 720A</title><link>https://www.devroom.io/projects/repair-denon-pma-720a/</link><pubDate>Sun, 10 Apr 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-denon-pma-720a/</guid><description>A classic 1989 Denon PMA 720a Integrated Amp that made a bang and wont&amp;rsquo;t turn on. Let&amp;rsquo;s solve this!</description></item><item><title>Repair: Marantz SR5200</title><link>https://www.devroom.io/projects/repair-marantz-sr5200/</link><pubDate>Thu, 21 Jan 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-marantz-sr5200/</guid><description>A Marantz SR5200 receiver with a non-working front-right channel. Let&amp;rsquo;s fix that!</description></item><item><title>Repair: Denon PMA-560</title><link>https://www.devroom.io/projects/repair-denon-pma-560/</link><pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/repair-denon-pma-560/</guid><description>Log of diagnosing and repairing a Denon PMA560 Stereo integrated amplifier.</description></item><item><title>Putting ariejan.net on a diet: a 69% reduction</title><link>https://www.devroom.io/2016/01/06/putting-ariejan-net-on-a-diet-a-69-percent-reduction/</link><pubDate>Wed, 06 Jan 2016 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2016/01/06/putting-ariejan-net-on-a-diet-a-69-percent-reduction/</guid><description>&lt;p&gt;You may have recently read &lt;a href="http://idlewords.com/talks/website_obesity.htm"&gt;Website Obesity&lt;/a&gt; by
&lt;a href="http://idelwords.com/"&gt;Maciej Cegłowski&lt;/a&gt;, as featured on &lt;a href="http://news.ycombinator.com"&gt;Hacker News&lt;/a&gt;.
There&amp;rsquo;s a lot of great stuff in that article. The most obivous and striking thing is that there
is a lot of bloat on the web. Examples include a tweet (140 characters) that is served as a
900kB website. How to optimize a website and remove bloat is a topic in and of itself. I can
highly recommend the article mentioned above.&lt;/p&gt;</description></item><item><title>El Capitan: Safari New Tab Slow Fix</title><link>https://www.devroom.io/2015/12/04/el-capitan-safari-new-tab-slow-fix/</link><pubDate>Fri, 04 Dec 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/12/04/el-capitan-safari-new-tab-slow-fix/</guid><description>&lt;p&gt;Safari is a great browser. I know there are alternatives, like Firefox and Chrome, but I like Safari.&lt;/p&gt;
&lt;p&gt;Recently I noticed a lag of about 3-5 seconds when opening a new tab. I use tabs often, so this started to get in my way.
Because I did not feel like switching browsers, I did some digging around to see if I could get this problem fixed.&lt;/p&gt;</description></item><item><title>Rails generate model: be specific</title><link>https://www.devroom.io/2015/11/27/rails-generate-model-be-specific/</link><pubDate>Fri, 27 Nov 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/11/27/rails-generate-model-be-specific/</guid><description>&lt;p&gt;Rails can generate a lot of things for you. Personally I use &lt;code&gt;generate model&lt;/code&gt; often to quickly setup a new model, including test files and a database migration.
In its simplest form it looks like this:&lt;/p&gt;</description></item><item><title>Building Golang CLI Tools Update</title><link>https://www.devroom.io/2015/10/12/building-golang-cli-tools-update/</link><pubDate>Mon, 12 Oct 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/10/12/building-golang-cli-tools-update/</guid><description>&lt;p&gt;In my &lt;a href="https://ariejan.net/2015/10/03/a-makefile-for-golang-cli-tools/"&gt;previous post&lt;/a&gt; I discussed how to use a &lt;code&gt;Makefile&lt;/code&gt; to set version and
build information at compile time. Although this approach may work fine for you, it has
three drawbacks I want to discuss.&lt;/p&gt;</description></item><item><title>A makefile for Golang CLI tools</title><link>https://www.devroom.io/2015/10/03/a-makefile-for-golang-cli-tools/</link><pubDate>Sat, 03 Oct 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/10/03/a-makefile-for-golang-cli-tools/</guid><description>&lt;p&gt;&lt;em&gt;Note: I&amp;rsquo;ve received feedback on this post and written an update, which you can read &lt;a href="https://ariejan.net/2015/10/12/building-golang-cli-tools-update/"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s no secret I love the power and simplicity of Go. To further train my skills I wrote a simple app that will roll dice from the
command line, because you know, that&amp;rsquo;s very useful.&lt;/p&gt;</description></item><item><title>Postgresq error: type 'hstore' does not exist</title><link>https://www.devroom.io/2015/08/05/postgresql-error-type-hstore-does-not-exist/</link><pubDate>Wed, 05 Aug 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/08/05/postgresql-error-type-hstore-does-not-exist/</guid><description>&lt;p&gt;Today I was programming and messed up my database schema in such a way that I just wanted to restore a recent backup and start over from there.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dropdb app_development
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;createdb app_development
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Unfortunately I ran into an error:&lt;/p&gt;</description></item><item><title>Testing with MiniTest</title><link>https://www.devroom.io/2015/04/07/testing-with-minitest/</link><pubDate>Tue, 07 Apr 2015 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2015/04/07/testing-with-minitest/</guid><description>&lt;p&gt;Ever since I started doing TDD I&amp;rsquo;ve used &lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt;. It&amp;rsquo;s a great tool, and for a long
time it was part of my standard testing stack. This stack also contains things
like &lt;a href="https://cukes.info/"&gt;Cucumber&lt;/a&gt; and &lt;a href="https://github.com/thoughtbot/factory_girl"&gt;FactoryGirl&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Design: VoltMeister 100, a DIY Bench Power Supply</title><link>https://www.devroom.io/projects/voltmeister-100-atx-bench-power-supply/</link><pubDate>Mon, 24 Nov 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/projects/voltmeister-100-atx-bench-power-supply/</guid><description>A bench power supply is one of the essential tools of any electronics hobbyist.Although you can buy a such a unit for less that € 50, it&amp;rsquo;s way more fun to build one yourself.</description></item><item><title>Why I dropped fish in favour of Zsh</title><link>https://www.devroom.io/2014/11/20/why-i-dropped-fish-in-favour-of-zsh/</link><pubDate>Thu, 20 Nov 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/11/20/why-i-dropped-fish-in-favour-of-zsh/</guid><description>&lt;p&gt;Developers are religious about two things: their editor and their shell.&lt;/p&gt;
&lt;p&gt;After getting multiple recommendations from friends and co-workers I
gave &lt;a href="http://fishshell.com"&gt;fish&lt;/a&gt; a try. It lists several benefits over other shells, among
other there&amp;rsquo;s autosuggetions, colour support and web based configuration.&lt;/p&gt;</description></item><item><title>Rails: Prevent Accidental Debugging Commits</title><link>https://www.devroom.io/2014/10/15/rails-prevent-accidental-debugging-commits/</link><pubDate>Wed, 15 Oct 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/10/15/rails-prevent-accidental-debugging-commits/</guid><description>&lt;p&gt;Your Rails app has grown over time, multiple developers have worked on the code and you are about to make a small change in the code.&lt;/p&gt;
&lt;p&gt;Unfortunately this change applies to code that allows you to view a financial overview of last year’s data. It’s legally not allowed to expose the current year’s data, but the change you need to make applies only to 2014. We should shift time to 2015. Problem?&lt;/p&gt;</description></item><item><title>Synchronize goroutines in your tests</title><link>https://www.devroom.io/2014/08/29/synchronize-goroutines-in-your-tests/</link><pubDate>Fri, 29 Aug 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/08/29/synchronize-goroutines-in-your-tests/</guid><description>&lt;p&gt;I have been working on an &lt;a href="https://github.com/ariejan/i6502"&gt;emulator for the MOS 6502 Microprocessor, written in Go&lt;/a&gt;. As
part of this package I have also implemented a minimal 6551 Asynchronous Communication Interface
Adapter. The 6551 provides serial IO and is easy to use in combination with the 6502.&lt;/p&gt;</description></item><item><title>GPG Sign Your Git Commits</title><link>https://www.devroom.io/2014/06/04/gpg-sign-your-git-commits/</link><pubDate>Wed, 04 Jun 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/06/04/gpg-sign-your-git-commits/</guid><description>&lt;p&gt;I have &lt;a href="https://ariejan.net/2014/04/03/pretty-difficult-privacy/"&gt;written&lt;/a&gt; and &lt;a href="https://ariejan.net/talks/"&gt;talked&lt;/a&gt; before about GPG and the need for trust on the internet.&lt;/p&gt;
&lt;p&gt;Getting started with GPG and using it on a daily basis is, when you&amp;rsquo;re using the right tools, not all that hard, but still quite technical. Today &lt;a href="http://googleonlinesecurity.blogspot.nl/2014/06/making-end-to-end-encryption-easier-to.html"&gt;Google announced&lt;/a&gt; they are working on a Chrome extention to enable end-to-end encryption using OpenPGP.&lt;/p&gt;</description></item><item><title>Testing $HOME with Cucumber and Aruba</title><link>https://www.devroom.io/2014/04/15/testing-home-with-cucumber-and-aruba/</link><pubDate>Tue, 15 Apr 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/04/15/testing-home-with-cucumber-and-aruba/</guid><description>&lt;p&gt;&lt;a href="https://github.com/cucumber/cucumber"&gt;Cucumber&lt;/a&gt; and &lt;a href="https://github.com/cucumber/aruba"&gt;Aruba&lt;/a&gt; are awesome tools to write acceptance tests for your command line application. The allow you to do things like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cucumber" data-lang="cucumber"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;Scenario:&lt;/span&gt;&lt;span class="nf"&gt; Exit with 0 when no examples are run
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt;&lt;/span&gt;&lt;span class="k"&gt; Given &lt;/span&gt;&lt;span class="nf"&gt;a file named &amp;#34;&lt;/span&gt;&lt;span class="s"&gt;a_no_examples_spec.rb&lt;/span&gt;&lt;span class="nf"&gt;&amp;#34; with:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="s"&gt;ruby
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="k"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;When &lt;/span&gt;&lt;span class="nf"&gt;I run `rspec a_no_examples_spec.rb`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;Then &lt;/span&gt;&lt;span class="nf"&gt;the exit status should be &lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nf"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nf"&gt; &lt;/span&gt;&lt;span class="k"&gt;And &lt;/span&gt;&lt;span class="nf"&gt;the output should contain &amp;#34;&lt;/span&gt;&lt;span class="s"&gt;0 examples&lt;/span&gt;&lt;span class="nf"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;This example was taken from rspec-core.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Dealing With Technical Debt</title><link>https://www.devroom.io/2014/04/04/dealing-with-technical-debt/</link><pubDate>Fri, 04 Apr 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/04/04/dealing-with-technical-debt/</guid><description>&lt;p&gt;The rails project I&amp;rsquo;m talking about is over three years old and has seen commits from 27 developers in that period. These developers were both co-workers, freelancers, off-shore developers and designers of different levels of expertise.&lt;/p&gt;</description></item><item><title>Pretty Difficult Privacy</title><link>https://www.devroom.io/2014/04/03/pretty-difficult-privacy/</link><pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/04/03/pretty-difficult-privacy/</guid><description>&lt;p&gt;&lt;em&gt;Disclaimer: I could write books about online privacy, freedom of speech
and how encryption fits into that picture. There are others out there who
can do a better job at that and who have way more experience in crypto
than I have.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>To Blog or Not To Blog</title><link>https://www.devroom.io/2014/04/03/to-blog-or-not-to-blog/</link><pubDate>Thu, 03 Apr 2014 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2014/04/03/to-blog-or-not-to-blog/</guid><description>&lt;p&gt;






 
 
 
 
 
 

 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 &lt;a href="https://www.devroom.io/processed-images/posts/2014/2014-04-03-to-blog-or-not-to-blog/20140403-01-480.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: "&gt;
 &lt;picture&gt;
 
 &lt;source
 type="image/webp"
 srcset="https://www.devroom.io/processed-images/posts/2014/2014-04-03-to-blog-or-not-to-blog/20140403-01-480.webp 480w"
 sizes="(max-width: 768px) 100vw, 720px"
 /&gt;
 
 
 &lt;source
 srcset="https://www.devroom.io/processed-images/posts/2014/2014-04-03-to-blog-or-not-to-blog/20140403-01-480.jpg 480w"
 sizes="(max-width: 768px) 100vw, 720px"
 /&gt;
 
 &lt;img
 src="https://www.devroom.io/processed-images/posts/2014/2014-04-03-to-blog-or-not-to-blog/20140403-01-480.webp"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 width="516"
 height="362"
 /&gt;
 &lt;/picture&gt;
 &lt;/a&gt;
 
 


&lt;/p&gt;
&lt;p&gt;My last post was 154 days ago. That&amp;rsquo;s about five months without writing a
single post on this blog. I&amp;rsquo;ve been thinking about what this means and
what happened, and here is what I discovered.&lt;/p&gt;</description></item><item><title>Deploying with git-deploy</title><link>https://www.devroom.io/2013/10/31/deploying-with-git-deploy/</link><pubDate>Thu, 31 Oct 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/10/31/deploying-with-git-deploy/</guid><description>&lt;p&gt;I&amp;rsquo;ve blogged before about deploying Rails applications. Normally I opt for using capistrano, as it provides all the features I need and is pretty easy to customize if needed.&lt;/p&gt;
&lt;p&gt;One of my previous strategies was to use capistrano to checkout a branch on a remote server, and &lt;code&gt;git fetch&lt;/code&gt; that branch upon a new deployment.&lt;/p&gt;</description></item><item><title>Divide and Conquer</title><link>https://www.devroom.io/2013/05/23/divide-and-conquer/</link><pubDate>Thu, 23 May 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/05/23/divide-and-conquer/</guid><description>&lt;p&gt;A few days ago I wrote about getting up early and getting stuff done
(&lt;a href="https://ariejan.net/2013/05/21/early-birds/"&gt;link&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;After giving this a some more thought I figured out that there&amp;rsquo;s something
else going on as well.&lt;/p&gt;</description></item><item><title>Early Birds</title><link>https://www.devroom.io/2013/05/21/early-birds/</link><pubDate>Tue, 21 May 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/05/21/early-birds/</guid><description>&lt;p&gt;Over the years I&amp;rsquo;ve often found myself behind my computer at two in the morning trying to finish a feature for a side-project and trying to keep my eyes open and focussed.&lt;/p&gt;</description></item><item><title>I'm here for an argument</title><link>https://www.devroom.io/2013/03/26/i-am-here-for-an-argument/</link><pubDate>Tue, 26 Mar 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/03/26/i-am-here-for-an-argument/</guid><description>&lt;p&gt;When people make a request or proposal I often see them present their request and arguments using the following structure:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make a request&lt;/li&gt;
&lt;li&gt;Give a plethora of arguments why that request is a good idea.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;An example:&lt;/p&gt;</description></item><item><title>Automated nanoc deployments</title><link>https://www.devroom.io/2013/03/25/automated-nanoc-deployments/</link><pubDate>Mon, 25 Mar 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/03/25/automated-nanoc-deployments/</guid><description>&lt;p&gt;I&amp;rsquo;ve migrated &lt;em&gt;ariejan.net&lt;/em&gt; from a custom Ruby on Rails application to a statically generated site with Nanoc.&lt;/p&gt;
&lt;p&gt;Publishing my site now goes like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Write stuff in Markdown&lt;/li&gt;
&lt;li&gt;Commit and push&lt;/li&gt;
&lt;li&gt;Watch how jenkins builds and publishes the site with nanoc and rsync.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="using-nanoc"&gt;Using nanoc&lt;/h2&gt;
&lt;p&gt;Nanoc is a very powerful static site generator. You can use ruby to create helpers, filters and what not. Fancy using Sass, Compass and Haml? No problem!&lt;/p&gt;</description></item><item><title>Review commits in your feature branch</title><link>https://www.devroom.io/2013/03/08/review-commits-in-your-feature-branch/</link><pubDate>Fri, 08 Mar 2013 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2013/03/08/review-commits-in-your-feature-branch/</guid><description>&lt;p&gt;Github pull requests are awesome, but you can&amp;rsquo;t use them all the time, mostly when working on code not hosted at github.&lt;/p&gt;
&lt;p&gt;The following snippet makes it easy to see the commits in your current (head) branch that are not yet in the base branch.&lt;/p&gt;</description></item><item><title>Instagram, Governments and Cypherpunks</title><link>https://www.devroom.io/2012/12/18/instagram-governments-and-cypherpunks/</link><pubDate>Tue, 18 Dec 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/12/18/instagram-governments-and-cypherpunks/</guid><description>&lt;p&gt;The whole internet collectively fell over Instagram earlier this week when they released their new &lt;em&gt;Terms of Service&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some or all of the Service may be supported by advertising revenue. To help us deliver interesting paid or sponsored content or promotions, you agree that a business or other entity may pay us to display your username, likeness, photos (along with any associated metadata), and/or actions you take, in connection with paid or sponsored content or promotions, without any compensation to you.&lt;/p&gt;</description></item><item><title>Binary debugging with git bisect</title><link>https://www.devroom.io/2012/11/29/binary-debugging-with-git-bisect/</link><pubDate>Thu, 29 Nov 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/11/29/binary-debugging-with-git-bisect/</guid><description>&lt;p&gt;Part of resolving a bug is finding where and when that bug was introduced into your code. Not so much for blaming a specific person, but more for an understanding of how and maybe why the bug was introduced; and more over which versions of your app are affected.&lt;/p&gt;</description></item><item><title>CustoMac</title><link>https://www.devroom.io/2012/11/22/customac/</link><pubDate>Thu, 22 Nov 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/11/22/customac/</guid><description>&lt;p&gt;Ever since Apple decided to put Intel processors in their Macs there have been attempts by enthusiasts to run Mac OS X on commodity hardware – with mixed results.&lt;/p&gt;
&lt;p&gt;The key to installing Mac OS X on a non-Mac computer is using the right hardware. If your hardware is a close to Apple kit as possible, you have the best chance to succeed.&lt;/p&gt;</description></item><item><title>A Call to all CI Service Providers</title><link>https://www.devroom.io/2012/11/05/a-call-to-all-ci-service-providers/</link><pubDate>Mon, 05 Nov 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/11/05/a-call-to-all-ci-service-providers/</guid><description>&lt;p&gt;As a professional developer I test my code. Every check-in I do is tested either on &lt;a href="http://kabisa.nl"&gt;Kabisa&lt;/a&gt;&amp;rsquo;s &lt;a href="http://jenkins-ci.org"&gt;Jenkins&lt;/a&gt; server or on &lt;a href="http://travis-ci.com"&gt;Travis CI Pro&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For open source projects there&amp;rsquo;s &lt;a href="http://travis-ci.org"&gt;Travis CI&lt;/a&gt;. It&amp;rsquo;s free and a great way to get to know Travis.&lt;/p&gt;</description></item><item><title>Decorating Sorcery's current_user with Draper</title><link>https://www.devroom.io/2012/11/02/decorating_sorcery_current_user_with_draper/</link><pubDate>Fri, 02 Nov 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/11/02/decorating_sorcery_current_user_with_draper/</guid><description>&lt;p&gt;I already &lt;a href="http://ariejan.net/2012/04/14/decorating-devise-s-current_user-with-draper"&gt;wrote&lt;/a&gt; about how to apply your decorator to the &lt;code&gt;current_user&lt;/code&gt; when you&amp;rsquo;re using &lt;a href="https://github.com/plataformatec/devise"&gt;Devise&lt;/a&gt;. However, the trick is a bit different when applied to &lt;a href="https://github.com/NoamB/sorcery"&gt;Sorcery&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Instead of being &lt;code&gt;nil&lt;/code&gt; when no user is signed in, Sorcery uses an explicit &lt;code&gt;false&lt;/code&gt; value, no &lt;code&gt;nil&lt;/code&gt;. In your &lt;code&gt;ApplicationController&lt;/code&gt; at &lt;code&gt;app/controllers/application_controller.rb&lt;/code&gt; add this:&lt;/p&gt;</description></item><item><title>A static file server in Go</title><link>https://www.devroom.io/2012/10/04/a-static-file-server-in-go/</link><pubDate>Thu, 04 Oct 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/10/04/a-static-file-server-in-go/</guid><description>&lt;p&gt;If you don&amp;rsquo;t know Go, you should really look into it. Today I was trying to figure out how to write a simple (and fast) static file server in Go.&lt;/p&gt;</description></item><item><title>Migrate git repositories</title><link>https://www.devroom.io/2012/10/01/migrate-git-repositories/</link><pubDate>Mon, 01 Oct 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/10/01/migrate-git-repositories/</guid><description>&lt;p&gt;Sometimes you have to move your git repository to another host. In this case I want to move a privately hosted git repository to a brand spanking new github repository.&lt;/p&gt;</description></item><item><title>Git: Interactive Revert</title><link>https://www.devroom.io/2012/09/04/git-interactive-revert/</link><pubDate>Tue, 04 Sep 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/09/04/git-interactive-revert/</guid><description>&lt;p&gt;I recently made a commit in a project that, mistakenly, included changes to &lt;code&gt;db/schema.rb&lt;/code&gt;. My local schema was out of date and this could cause trouble for the others in my team.&lt;/p&gt;</description></item><item><title>Rails migrations: decimal precision and scale</title><link>https://www.devroom.io/2012/08/28/rails-migrations-decimal-precision-and-scale/</link><pubDate>Tue, 28 Aug 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/08/28/rails-migrations-decimal-precision-and-scale/</guid><description>&lt;p&gt;I&amp;rsquo;m always confused when using &lt;code&gt;decimal&lt;/code&gt; in a Rails migration. Normally I need to store a value that has 2 or 3 numbers behind the comma (or dot), or decimals.&lt;/p&gt;</description></item><item><title>Getting started with Arduino</title><link>https://www.devroom.io/2012/08/27/getting-started-with-arduino/</link><pubDate>Mon, 27 Aug 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/08/27/getting-started-with-arduino/</guid><description>&lt;p&gt;I&amp;rsquo;m a software engineer. I don&amp;rsquo;t do hardware.&lt;/p&gt;
&lt;p&gt;Well, that used to be the case. I did build some PC&amp;rsquo;s back in the day, but that&amp;rsquo;s where my involvement with electronics hardware ended. That&amp;rsquo;s all changed after I purchased an &lt;a href="http://arduino.cc/"&gt;Arduino&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Move your latest commits to a separate branch</title><link>https://www.devroom.io/2012/08/14/move-your-latest-commits-to-a-separate-branch/</link><pubDate>Tue, 14 Aug 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/08/14/move-your-latest-commits-to-a-separate-branch/</guid><description>&lt;p&gt;The situation is pretty straightforward. You have been making commits for that new feature in your &lt;code&gt;master&lt;/code&gt; branch. Naughty you!&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s assume you want to have this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;A - B - (C) - D - E - F
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;C&lt;/code&gt; was the last commit you pulled from &lt;code&gt;origin&lt;/code&gt; and D, E and F are commits you just made but should have been in their own branch. This is what you wanted:&lt;/p&gt;</description></item><item><title>VPN too complicated? Use a IP-over-SSH tunnel instead</title><link>https://www.devroom.io/2012/07/11/vpn-too-complicated-use-a-ip-over-ssh-tunnel-instead/</link><pubDate>Wed, 11 Jul 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/07/11/vpn-too-complicated-use-a-ip-over-ssh-tunnel-instead/</guid><description>&lt;p&gt;Some times you find yourself in a place where your Mac is safely tucked away behind a firewall. That&amp;rsquo;s great, but sometimes it is annoying as hell, because you &lt;em&gt;need&lt;/em&gt; to access resources over FTP or contact people who&amp;rsquo;re on IRC.&lt;/p&gt;</description></item><item><title>Search and Replace in multiple files with Vim</title><link>https://www.devroom.io/2012/06/18/search-and-replace-in-multiple-files-with-vim/</link><pubDate>Mon, 18 Jun 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/06/18/search-and-replace-in-multiple-files-with-vim/</guid><description>&lt;p&gt;I recently learned a nice VimTrick™ when pairing with &lt;a href="http://arjanvandergaag.nl"&gt;Arjan&lt;/a&gt;. We upgrade an app to Rails 3.2.6 and got the following deprecation message:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;DEPRECATION WARNING: :confirm option is deprecated and will be removed from Rails 4.0.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Use &amp;#39;:data =&amp;gt; { :confirm =&amp;gt; &amp;#39;Text&amp;#39; }&amp;#39; instead.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Well, nothing difficult about that, but we have quite a few &lt;code&gt;:confirm&lt;/code&gt; in this app.&lt;/p&gt;</description></item><item><title>SEO is bullshit</title><link>https://www.devroom.io/2012/05/24/seo-is-bullshit/</link><pubDate>Thu, 24 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/24/seo-is-bullshit/</guid><description>&lt;p&gt;I get quite a lot of &amp;ldquo;oh we can SEO optimize your site for you&amp;rdquo; emails lately. I don&amp;rsquo;t know why, but &lt;strong&gt;SEO is bullshit&lt;/strong&gt;. Really. SEO is one of those &lt;em&gt;areas of expertise&lt;/em&gt; that are total rubbish.&lt;/p&gt;</description></item><item><title>How Star Trek has shaped our technology and future</title><link>https://www.devroom.io/2012/05/23/how-star-trek-has-shaped-our-technology-and-future/</link><pubDate>Wed, 23 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/23/how-star-trek-has-shaped-our-technology-and-future/</guid><description>&lt;p&gt;You have probably watched Star Trek. Even if you don&amp;rsquo;t like it, I bet you&amp;rsquo;ve seen at least a few episodes of &lt;em&gt;The Next Generation&lt;/em&gt; or a movie.&lt;/p&gt;
&lt;p&gt;Regardless of you opinion on Star Trek, its cool to see that current technology was only Science-Fiction ten or twenty years ago.&lt;/p&gt;</description></item><item><title>Ruby: regex scanning in a case statement</title><link>https://www.devroom.io/2012/05/22/ruby-regex-scanning-in-a-case-statement/</link><pubDate>Tue, 22 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/22/ruby-regex-scanning-in-a-case-statement/</guid><description>&lt;p&gt;Here&amp;rsquo;s a handy ruby snippet that might come in handy one day.&lt;/p&gt;
&lt;p&gt;When the regex matches (input should end with &amp;quot; today&amp;quot;), you can directly grab the matched value using the special &lt;code&gt;$1&lt;/code&gt; variable.&lt;/p&gt;</description></item><item><title>What's causing all that disk I/O on my Mac?</title><link>https://www.devroom.io/2012/05/21/what-s-causing-all-that-disk-i-o-on-my-mac/</link><pubDate>Mon, 21 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/21/what-s-causing-all-that-disk-i-o-on-my-mac/</guid><description>&lt;p&gt;After doing a full re-install of my MacBook Pro a few weeks back to combat system slowness, I&amp;rsquo;m again struck with a slow system.&lt;/p&gt;
&lt;p&gt;The problem is that there&amp;rsquo;s a lot of disk I/O going on. CPU and memory are fine. I&amp;rsquo;m just not sure what&amp;rsquo;s causing this trouble.&lt;/p&gt;</description></item><item><title>Why Diablo 3's DRM is the best kind there is</title><link>https://www.devroom.io/2012/05/20/why-diablo-3-s-drm-is-the-best-kind-there-is/</link><pubDate>Sun, 20 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/20/why-diablo-3-s-drm-is-the-best-kind-there-is/</guid><description>&lt;p&gt;I just tried to play Diablo 3, but could not log on due to server maintenance. Blizzard requires you to be &lt;em&gt;always online&lt;/em&gt; to play even single player campaigns. I&amp;rsquo;ve seen a lot of people rage about this, but Blizzard actually has very good reasons to do this. And they even kept you, as a player, in mind!&lt;/p&gt;</description></item><item><title>What happened to downloading games from The Pirate Bay?</title><link>https://www.devroom.io/2012/05/19/what-happened-to-downloading-games-from-the-pirate-bay/</link><pubDate>Sat, 19 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/19/what-happened-to-downloading-games-from-the-pirate-bay/</guid><description>&lt;p&gt;This post is on piracy. Piracy of software, games, movies, music and other virtual goods.&lt;/p&gt;
&lt;p&gt;Before I continue writing this post let me confess to you that I used to use pirated software. I played games downloaded from the internet. And movies I watches &amp;lsquo;on demand&amp;rsquo; by downloading them when I wanted to. There were times when there were no legally purchased songs on my iPod.&lt;/p&gt;</description></item><item><title>Running a different ruby with Passenger 3.2 and RVM</title><link>https://www.devroom.io/2012/05/11/running-a-different-ruby-with-passenger-3-2-and-rvm/</link><pubDate>Fri, 11 May 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/05/11/running-a-different-ruby-with-passenger-3-2-and-rvm/</guid><description>&lt;p&gt;Passenger 3.2 will have quite some nice new features. &lt;a href="http://blog.phusion.nl/2012/04/13/a-sneak-preview-of-phusion-passenger-3-2/"&gt;1&lt;/a&gt; &lt;a href="http://blog.phusion.nl/2012/04/25/a-sneak-preview-of-phusion-passenger-3-2-part-2/"&gt;2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The features I&amp;rsquo;m looking forward to most is the ability to specify - per virtual server - which ruby to use.&lt;/p&gt;</description></item><item><title>Decorating Devise's current_user with Draper</title><link>https://www.devroom.io/2012/04/14/decorating-devise-s-current_user-with-draper/</link><pubDate>Sat, 14 Apr 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/04/14/decorating-devise-s-current_user-with-draper/</guid><description>&lt;p&gt;I&amp;rsquo;ve become a big fan of decorators, especially &lt;a href="https://github.com/jcasimir/draper"&gt;Draper&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Decorators allow you to move view related functionality for your models in to separate decorator classes. This keeps both your models and views clean and readable.&lt;/p&gt;</description></item><item><title>Eindhoven.rb Lightning Talk: Gitlab</title><link>https://www.devroom.io/2012/04/06/eindhoven-rb-lightning-talk-gitlab/</link><pubDate>Fri, 06 Apr 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/04/06/eindhoven-rb-lightning-talk-gitlab/</guid><description>&lt;p&gt;These are the slides of my &lt;a href="http://eindhovenrb.nl"&gt;Eindhoven.rb&lt;/a&gt; lightning talk. The topic is Gitlab, why it&amp;rsquo;s awesome and how it relates to Github.&lt;/p&gt;
&lt;p&gt;If you have any questions about Gitlab, feel free to contact me or visit the &lt;a href="https://groups.google.com/forum/#!forum/gitlabhq"&gt;Gitlab Mailinglist&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Showing Ruby, Rails and git info in your app</title><link>https://www.devroom.io/2012/04/02/showing-ruby-rails-and-git-info-in-your-app/</link><pubDate>Mon, 02 Apr 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/04/02/showing-ruby-rails-and-git-info-in-your-app/</guid><description>&lt;p&gt;Some people&amp;rsquo;ve asked me how I show rendering information on &lt;a href="http://ariejan.net"&gt;ariejan.net&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;






 
 
 &lt;a href="https://ariejannet.s3.amazonaws.com/images/render_stats.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: "&gt;
 &lt;img
 src="https://ariejannet.s3.amazonaws.com/images/render_stats.jpg"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

&lt;/p&gt;
&lt;p&gt;There are a few things going on here, let me explain them one by one.&lt;/p&gt;</description></item><item><title>From 11.34s to 0.625s for opening a .rb file in Vim</title><link>https://www.devroom.io/2012/03/21/from-11-34s-to-0-625s-for-opening-a-rb-file-in-vim/</link><pubDate>Wed, 21 Mar 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/03/21/from-11-34s-to-0-625s-for-opening-a-rb-file-in-vim/</guid><description>&lt;p&gt;Would you believe me if I told you that opening a simple Ruby file on my 2011 MacBook Pro takes 11.34 seconds?&lt;/p&gt;
&lt;p&gt;To test this, I&amp;rsquo;ve used this command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ vim --startuptime log-before.txt app/models/user.rb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This command will time everything that Vim does until the file is ready for you to edit down to the millisecond. This is a great way to find out what&amp;rsquo;s slowing things down.&lt;/p&gt;</description></item><item><title>Redis using 2GB of memory on 70MB data set - the fix</title><link>https://www.devroom.io/2012/03/21/redis-using-2gb-of-memory-on-70mb-data-set-the-fix/</link><pubDate>Wed, 21 Mar 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/03/21/redis-using-2gb-of-memory-on-70mb-data-set-the-fix/</guid><description>&lt;p&gt;For &lt;a href="http://ariejan.net"&gt;Ariejan.net&lt;/a&gt; I use &lt;a href="http://redis.io"&gt;redis&lt;/a&gt; to cache pages and shards. This works great and all, but today I noticed something alarming:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;redis	Running	3d 12h 4m 	0.0%	45.2% [1829556 kB]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yes, that&amp;rsquo;s about 1.7 GB of RAM. That&amp;rsquo;s way too much for what I cache. Let&amp;rsquo;s see what redis has to say for itself:&lt;/p&gt;</description></item><item><title>Open Source is a privilege. Not a right.</title><link>https://www.devroom.io/2012/03/20/open-source-is-a-privilege-not-a-right/</link><pubDate>Tue, 20 Mar 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/03/20/open-source-is-a-privilege-not-a-right/</guid><description>&lt;p&gt;&lt;em&gt;Edit: this is not a Gitlab specific issue. I&amp;rsquo;ve seen it before and I&amp;rsquo;m seeing it again at the Gitlab project.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The past few months I&amp;rsquo;ve been contributing to the &lt;a href="https://github.com/gitlabhq/gitlabhq"&gt;Gitlab&lt;/a&gt; project. This has been a great experience, mostly because Gitlab has become a very popular project with over 2.3k watchers right now.&lt;/p&gt;</description></item><item><title>Removing untracked files and directories with git</title><link>https://www.devroom.io/2012/01/10/removing-untracked-files-and-directories-with-git/</link><pubDate>Tue, 10 Jan 2012 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2012/01/10/removing-untracked-files-and-directories-with-git/</guid><description>&lt;p&gt;I just tried writing some new code, but it was no success. This happens, but it left me with a working copy littered with new and changed files.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Changes not staged for commit:
# (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to update what will be committed)
# (use &amp;quot;git checkout -- &amp;lt;file&amp;gt;...&amp;quot; to discard changes in working directory)
#
#	modified: config/routes.rb
#
# Untracked files:
# (use &amp;quot;git add &amp;lt;file&amp;gt;...&amp;quot; to include in what will be committed)
#
# db/migrate/20111231131752_create_validations.rb
#	vendor/assets/images/
#	vendor/assets/javascripts/
#	vendor/assets/stylesheets/custom.sass
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So, how do I get rid of this mess?&lt;/p&gt;</description></item><item><title>Recursively fixing file and directory permissions</title><link>https://www.devroom.io/2011/12/13/recursively-fixing-file-and-directory-permissions/</link><pubDate>Tue, 13 Dec 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/12/13/recursively-fixing-file-and-directory-permissions/</guid><description>&lt;p&gt;While working on a &lt;a href="http://gitlabhq.com/"&gt;Gitlab&lt;/a&gt; installation I noticed that all repository file permissions were off. Fixing recursive file and directory permissions can be quite hard. Or so I thought.&lt;/p&gt;
&lt;p&gt;Using the following commands (in plain Bash) allow you to recursively set permissions for files and directories. So, to fix the proper read permissions on your Gitlab repositories you can use this:&lt;/p&gt;</description></item><item><title>Upgrade postgresql-8.4 to postgresql-9.1 on debian</title><link>https://www.devroom.io/2011/11/22/upgrade-postgresql-8-4-to-postgresql-9-1-on-debian/</link><pubDate>Tue, 22 Nov 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/11/22/upgrade-postgresql-8-4-to-postgresql-9-1-on-debian/</guid><description>&lt;p&gt;Today I upgraded a production PostgreSQL 8.4 database to version 9.1. This was on a Debian server.
~
The first step is to make a full dump of your data. I personally like to store that dump somewhere safe before upgrading. As root:&lt;/p&gt;</description></item><item><title>Deploying a third-party Rails application - like Gitlab</title><link>https://www.devroom.io/2011/11/18/deploying-a-third-party-rails-application-like-gitlab/</link><pubDate>Fri, 18 Nov 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/11/18/deploying-a-third-party-rails-application-like-gitlab/</guid><description>&lt;p&gt;We all know how to deploy our own Rails projects. (If not, &lt;a href="http://ariejan.net/2011/09/14/lighting-fast-zero-downtime-deployments-with-git-capistrano-nginx-and-unicorn"&gt;read this guide&lt;/a&gt;.) But how do you handle deploying a third-party application that may require some customisation on your part?&lt;/p&gt;</description></item><item><title>Contributing to Open-Source with Github</title><link>https://www.devroom.io/2011/11/09/contributing-to-open-source-with-github/</link><pubDate>Wed, 09 Nov 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/11/09/contributing-to-open-source-with-github/</guid><description>&lt;p&gt;You want to contribute to an open-source project, but are scared away by all the git-complexity involved? This small guide will help you out.&lt;/p&gt;
&lt;p&gt;






 
 
 &lt;a href="https://ariejannet.s3.amazonaws.com/content/github.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Octocat"&gt;
 &lt;img
 src="https://ariejannet.s3.amazonaws.com/content/github.png"
 alt="Octocat"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

&lt;/p&gt;
&lt;h2 id="step-1---fork-fork-fork"&gt;Step 1 - Fork, fork, fork&lt;/h2&gt;
&lt;p&gt;First create a fork of the original project. You can do this easily by clicking the &amp;ldquo;Fork&amp;rdquo; button on the top of the Github project page. This will give you your own copy (fork) of the entire repository.&lt;/p&gt;</description></item><item><title>Fixing a slow starting Terminal or iTerm2 on Mac OS X</title><link>https://www.devroom.io/2011/11/08/fixing-a-slow-starting-terminal-or-iterm2-on-mac-os-x/</link><pubDate>Tue, 08 Nov 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/11/08/fixing-a-slow-starting-terminal-or-iterm2-on-mac-os-x/</guid><description>&lt;p&gt;For some time I have been annoyed with how slow my Terminal (in my case iTerm2) starts up. It would take 5-10 seconds before I was presented a prompt. Being in the console for the better part of the day, this was unacceptable.&lt;/p&gt;</description></item><item><title>Installing Node.js and NPM on Ubuntu/Debian</title><link>https://www.devroom.io/2011/10/24/installing-node-js-and-npm-on-ubuntu-debian/</link><pubDate>Mon, 24 Oct 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/10/24/installing-node-js-and-npm-on-ubuntu-debian/</guid><description>&lt;p&gt;This is just short snippet on how to install Node.js (any version) and NPM (Node Package Manager) on your Ubuntu/Debian system.&lt;/p&gt;
&lt;h2 id="step-1---update-your-system"&gt;Step 1 - Update your system&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt-get install git-core curl build-essential openssl libssl-dev python
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="step-2---install-nodejs"&gt;Step 2 - Install Node.js&lt;/h2&gt;
&lt;p&gt;First, clone the Node.js repository:&lt;/p&gt;</description></item><item><title>Automatically switch between SSL and non-SSL with Nginx+Unicorn+Rails</title><link>https://www.devroom.io/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails/</link><pubDate>Sat, 22 Oct 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/10/22/automatically-switch-between-ssl-and-non-ssl-with-nginx-unicorn-rails/</guid><description>&lt;p&gt;&lt;em&gt;Scroll down for setup instructions. Or, read this bit about SSL in the real world first.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;SSL or Secure Socket Layer is a nice way to secure sensitive parts of your Rails application. It achieves to goals.&lt;/p&gt;</description></item><item><title>Rails 3: Customized exception handling</title><link>https://www.devroom.io/2011/10/14/rails-3-customized-exception-handling/</link><pubDate>Fri, 14 Oct 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/10/14/rails-3-customized-exception-handling/</guid><description>&lt;p&gt;Exceptions happen. There&amp;rsquo;s no way around that. But not all exceptions are created equally.&lt;/p&gt;
&lt;p&gt;For instance, a 404 &amp;ldquo;Not found&amp;rdquo; error can (and should) be handled correctly in your application.&lt;/p&gt;</description></item><item><title>Fast specs - Run your specs in less than 1 second</title><link>https://www.devroom.io/2011/10/13/fast-specs-run-your-specs-in-less-than-1-second/</link><pubDate>Thu, 13 Oct 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/10/13/fast-specs-run-your-specs-in-less-than-1-second/</guid><description>&lt;p&gt;Okay, let me clarify that title first. I, as most of you, have two sets of tests for my Rails application: rspec and cucumber. rspec heavily focusses on testing models and business logic while cucumber focusses on testing the entire application stack and user interaction.&lt;/p&gt;</description></item><item><title>Testing Rails 3 scopes revisited</title><link>https://www.devroom.io/2011/10/09/testing-rails-3-scopes-revisited/</link><pubDate>Sun, 09 Oct 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/10/09/testing-rails-3-scopes-revisited/</guid><description>&lt;p&gt;In my &lt;a href="http://ariejan.net/2011/09/25/properly-testing-rails-3-scopes"&gt;previous article&lt;/a&gt; I told you about how I like to tests my scope. There was a fair amount of criticism on that post and after considering it all (and hearing Corey Haines&amp;rsquo; talk on Arrrrcamp last friday), I&amp;rsquo;m convinced it&amp;rsquo;s the wrong path.&lt;/p&gt;</description></item><item><title>Properly testing Rails 3 scopes</title><link>https://www.devroom.io/2011/09/25/properly-testing-rails-3-scopes/</link><pubDate>Sun, 25 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/25/properly-testing-rails-3-scopes/</guid><description>&lt;p class="important"&gt;The content of this post is no longer correct. Please read &lt;a href="http://ariejan.net/2011/10/09/testing-rails-3-scopes-revisited"&gt;this article&lt;/a&gt; for details.&lt;/p&gt;
&lt;p&gt;Testing scopes has always felt a bit weird to me. Normally I&amp;rsquo;d do something like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Post&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:published&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:published&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;scope&lt;/span&gt; &lt;span class="ss"&gt;:latest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;created_at DESC&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;describe&lt;/span&gt; &lt;span class="no"&gt;Post&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;scopes&amp;#39;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;before&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:all&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="vi"&gt;@first&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FactoryGirl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:post&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:created_at&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ago&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:published&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="vi"&gt;@last&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FactoryGirl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:post&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:created_at&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ago&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:published&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;should only return published posts&amp;#34;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="no"&gt;Post&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;published&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="vi"&gt;@first&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;should return posts in the correct order&amp;#34;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="no"&gt;Post&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;latest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="vi"&gt;@first&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="vi"&gt;@last&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This test is okay. It tests if the named scope does what it needs to do. And there&amp;rsquo;s also the problem. Scopes are part of ActiveRecord and are already extensively tested there. All we need to do is check if we &lt;em&gt;configure&lt;/em&gt; the scope correctly.&lt;/p&gt;</description></item><item><title>RSpec speed-up (24.6%) by tweaking ruby garbage collection</title><link>https://www.devroom.io/2011/09/24/rspec-speed-up-by-tweaking-ruby-garbage-collection/</link><pubDate>Sat, 24 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/24/rspec-speed-up-by-tweaking-ruby-garbage-collection/</guid><description>&lt;p&gt;[Today I learned][1] that Ruby garbage collection can be of huge importance to performance. More precisely, if Ruby does a lot of garbage collection it may slow down your code. Running garbage collection only every 10 or 20 seconds when running specs may increase performance dramatically.&lt;/p&gt;</description></item><item><title>Capistrano and the custom maintenance page</title><link>https://www.devroom.io/2011/09/19/capistrano-and-the-custom-maintenance-page/</link><pubDate>Mon, 19 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/19/capistrano-and-the-custom-maintenance-page/</guid><description>&lt;p&gt;Randuin posted a comment on my previous &lt;a href="http://ariejan.net/2011/09/14/lighting-fast-zero-downtime-deployments-with-git-capistrano-nginx-and-unicorn"&gt;&lt;em&gt;Lighting fast, zero-downtime deployments with git, capistrano, nginx and Unicorn&lt;/em&gt;&lt;/a&gt; post asking how I handle database migrations. This is a good question.&lt;/p&gt;
&lt;p&gt;Database migrations, especially with large datasets, take a long time to run. They also lock your database tables which may cause all kinds of trouble.&lt;/p&gt;</description></item><item><title>Lighting fast, zero-downtime deployments with git, capistrano, nginx and Unicorn</title><link>https://www.devroom.io/2011/09/14/lighting-fast-zero-downtime-deployments-with-git-capistrano-nginx-and-unicorn/</link><pubDate>Wed, 14 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/14/lighting-fast-zero-downtime-deployments-with-git-capistrano-nginx-and-unicorn/</guid><description>&lt;p&gt;Everyone who has ever developed a web app has had to deploy it. Back in the day you simply uploaded your files with FTP and everything would be good. Today we have to clone git repositories, restart servers, set permissions, create symlinks to our configuration files, clean out caches and what not.&lt;/p&gt;</description></item><item><title>Git: checkout a single file from another commit or branch</title><link>https://www.devroom.io/2011/09/13/git-checkout-a-single-file-from-another-commit-or-branch/</link><pubDate>Tue, 13 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/13/git-checkout-a-single-file-from-another-commit-or-branch/</guid><description>&lt;p&gt;I recently worked on a new feature in a separate branch. It didn&amp;rsquo;t work out well, so I branched master again and tried another solution. However, I needed a specific filesI committed in the first feature branch. To avoid placing those files back in my working copy by hand, I used git to checkout the specific file from the other branch.&lt;/p&gt;</description></item><item><title>Git: remove, reset and rollback commits</title><link>https://www.devroom.io/2011/09/08/git-remove-reset-and-rollback-commits/</link><pubDate>Thu, 08 Sep 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/09/08/git-remove-reset-and-rollback-commits/</guid><description>&lt;p&gt;We&amp;rsquo;ve all been there, you committed changes you now regret. If you didn&amp;rsquo;t share those commits with anyone yet, you&amp;rsquo;re safe. Let me show you how to remove commits from your local repository. I&amp;rsquo;ll also include an example how to roll back commits you already did share with others.
~
Use &lt;code&gt;git log&lt;/code&gt; to see your most recent commits. Let&amp;rsquo;s say you want to revert the last three commits, you can run the following command:&lt;/p&gt;</description></item><item><title>Git Log: What did I do yesterday, exactly?</title><link>https://www.devroom.io/2011/08/24/git-log-what-did-i-do-yesterday-exactly/</link><pubDate>Wed, 24 Aug 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/08/24/git-log-what-did-i-do-yesterday-exactly/</guid><description>&lt;p&gt;Sometimes you have to take your git repository&amp;rsquo;s log to see what you did the day before (ideal in preparation for the daily stand-up). What I want is a clean overview of each commit messages, their author and the time. The output result should be easily grep-able so I can filter stuff I don&amp;rsquo;t need out.
~
To do this, I use the following custom &lt;code&gt;git log&lt;/code&gt; command:&lt;/p&gt;</description></item><item><title>Git: Squash your latests commits into one</title><link>https://www.devroom.io/2011/07/05/git-squash-your-latests-commits-into-one/</link><pubDate>Tue, 05 Jul 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/07/05/git-squash-your-latests-commits-into-one/</guid><description>&lt;p&gt;With git it&amp;rsquo;s possible to squash previous commits into one. This is a great way to group certain changes together before sharing them with others.
~
Here&amp;rsquo;s how to squash some commits into one. Let&amp;rsquo;s say this is your current &lt;code&gt;git log&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Your Mac slow? Disable Spotlight in Snow Leopard</title><link>https://www.devroom.io/2011/06/27/your-mac-slow-disable-spotlight-in-snow-leopard/</link><pubDate>Mon, 27 Jun 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/06/27/your-mac-slow-disable-spotlight-in-snow-leopard/</guid><description>&lt;p&gt;For some time now I&amp;rsquo;ve experience my mac to be very slow. Opening Vim would take minutes. Creating a new Tab in iTerm would take more than 20 seconds. What the hell is going on - this is a brand new MacBook Pro!
~
After investigating, using &lt;em&gt;Activity Monitor&lt;/em&gt; I discovered the following:&lt;/p&gt;</description></item><item><title>Git: What files were changed since the last release?</title><link>https://www.devroom.io/2011/06/24/git-what-files-were-changed-since-the-last-release/</link><pubDate>Fri, 24 Jun 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/06/24/git-what-files-were-changed-since-the-last-release/</guid><description>&lt;p&gt;Sometimes it handy to get a list out of &lt;code&gt;git log&lt;/code&gt; that tells you which files were changed since your last release. It&amp;rsquo;s not straight forward, but very doable with the help of &lt;code&gt;git log&lt;/code&gt; and &lt;code&gt;grep&lt;/code&gt;.
~
Let&amp;rsquo;s say you want to view all the changed files since the last tagged release, &lt;code&gt;v1.3.1&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Crowd sourcing your BitCoin mining</title><link>https://www.devroom.io/2011/06/23/crowd-sourcing-your-bitcoin-mining/</link><pubDate>Thu, 23 Jun 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/06/23/crowd-sourcing-your-bitcoin-mining/</guid><description>&lt;p&gt;[BitCoin][1] is a hip new currency using peer-to-peer networking to process transactions. You can either buy it from others, or &lt;em&gt;mine&lt;/em&gt; it by solving math puzzles. Would it be possible to crowd source the &lt;em&gt;mining&lt;/em&gt; process to visitors of your website?
[1]: &lt;a href="http://bitcoin.org"&gt;http://bitcoin.org&lt;/a&gt;
~&lt;/p&gt;</description></item><item><title>Vows and CoffeeScript</title><link>https://www.devroom.io/2011/06/10/vows-and-coffeescript/</link><pubDate>Fri, 10 Jun 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/06/10/vows-and-coffeescript/</guid><description>&lt;p&gt;CoffeeScript is a really nice way to write JavaScript code. Combined
with NodeJS you are empowered by a very fast platform to develop
server-side applications. Of course, you want to test these apps as well. &lt;a href="http://vowsjs.org"&gt;Vows&lt;/a&gt; is really
great way to do this. Unfortunately it&amp;rsquo;s not straight forward (yet) to
set up NodeJS + CoffeeScript + Vows.&lt;/p&gt;</description></item><item><title>Rake with namespaces and default tasks</title><link>https://www.devroom.io/2011/04/04/rake-with-namespaces-and-default-tasks/</link><pubDate>Mon, 04 Apr 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/04/04/rake-with-namespaces-and-default-tasks/</guid><description>&lt;p&gt;Rake is an awesome tool to automate tasks for your Ruby (or Rails)
application. In this short article I&amp;rsquo;ll show you how to use namespaces
and set default tasks for them.
~
Let me first tell you what I want to accomplish. I have a Rails
application that needs to be cleaned up occasionally. Essetially we
delete old data from the database.&lt;/p&gt;</description></item><item><title>Rails 3 + Devise + Uploadify = No Flash Session Hacks</title><link>https://www.devroom.io/2011/03/27/rails-3-devise-uploadify-no-flash-session-hacks/</link><pubDate>Sun, 27 Mar 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/03/27/rails-3-devise-uploadify-no-flash-session-hacks/</guid><description>&lt;p&gt;Uploadify is a great project to provide file uploads in your project.
The problem is, it&amp;rsquo;s written in flash.&lt;/p&gt;
&lt;p&gt;Besides the point that &lt;em&gt;it is flash&lt;/em&gt;, there&amp;rsquo;s something else that has
been bothering me a lot: &lt;strong&gt;sessions&lt;/strong&gt;.
~
The problem is like this. When a browsers opens a connection to your
Rails app, it has a session. Normally, session information is stored a
cookie that is sent with every request. This session also contains
information needed for you to stay logged in as a particular user.&lt;/p&gt;</description></item><item><title>Narf: A Ruby Micro Test Framework</title><link>https://www.devroom.io/2011/02/11/narf-a-ruby-micro-test-framework/</link><pubDate>Fri, 11 Feb 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/02/11/narf-a-ruby-micro-test-framework/</guid><description>&lt;p&gt;I&amp;rsquo;m a happy user of RSpec, Cucumber and sometimes Steak. Great tools to
write specs and features and prove my application does what it&amp;rsquo;s
supposed to do. But sometimes I have the need for something more &lt;em&gt;light
weight&lt;/em&gt;.
~
For example, sometimes I need to write a single ruby method. Just something
&amp;lsquo;quick&amp;rsquo; to import a file, convert some data or whatever. Being a good
citizen I want to test that method.&lt;/p&gt;</description></item><item><title>Using your Firefly URL Shortener with Twitter for iPhone</title><link>https://www.devroom.io/2011/02/07/using-your-firefly-url-shortener-with-twitter-for-iphone/</link><pubDate>Mon, 07 Feb 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/02/07/using-your-firefly-url-shortener-with-twitter-for-iphone/</guid><description>&lt;p&gt;The Twitter for iPhone app (&lt;a href="http://itunes.apple.com/nl/app/twitter/id333903271?mt=8"&gt;itunes&lt;/a&gt;) can be configured to use your very
own Firefly URL shortener! Here&amp;rsquo;s how.&lt;/p&gt;
&lt;p&gt;~







 
 
 &lt;a href="https://ariejannet.s3.amazonaws.com/images/custom-urlshortening.png" class="glightbox" data-gallery="gallery" data-glightbox="title: Custom URL server&amp;hellip;"&gt;
 &lt;img
 src="https://ariejannet.s3.amazonaws.com/images/custom-urlshortening.png"
 alt="Custom URL server&amp;hellip;"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

&lt;/p&gt;
&lt;p&gt;Actually, it&amp;rsquo;s quite simple. First, &lt;a href="https://github.com/ariejan/firefly#readme"&gt;setup your own Firefly instance&lt;/a&gt;,
possibly &lt;a href="http://ariejan.net/2010/06/06/setup-your-own-firefly-url-shortener-in-25-minutes/"&gt;using Heroku&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Hot: Firefly 1.3.0 URL Shortener released</title><link>https://www.devroom.io/2011/02/01/hot-firefly-130-url-shortener-released/</link><pubDate>Tue, 01 Feb 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/02/01/hot-firefly-130-url-shortener-released/</guid><description>&lt;p&gt;I&amp;rsquo;ve been doing some work on Firefly lately and tonight I&amp;rsquo;ve released
version 1.3.0. If you&amp;rsquo;re using Firefly it&amp;rsquo;s recommended you upgrade to
the latest and greatest version.
~
For those who missed it: Firefly is a simple URL shortener gem
that can be used to host your own personal (or corporate) URL shortner
on your own domain. Since Firefly is rack-based, it&amp;rsquo;s easy to deploy to
Heroku or other ruby hosting providers.&lt;/p&gt;</description></item><item><title>Rake task to sync your assets to Amazon S3/Cloudfront</title><link>https://www.devroom.io/2011/01/01/rake-task-to-sync-your-assets-to-amazon-s3cloudfront/</link><pubDate>Sat, 01 Jan 2011 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2011/01/01/rake-task-to-sync-your-assets-to-amazon-s3cloudfront/</guid><description>&lt;p&gt;With my move to Heroku I felt bad about having Heroku&amp;rsquo;s app servers serve static content for me. It&amp;rsquo;s not really a problem, but I just like to use the best tool available for the job.&lt;/p&gt;</description></item><item><title>Now powered by Heroku</title><link>https://www.devroom.io/2010/12/31/now-powered-by-heroku/</link><pubDate>Fri, 31 Dec 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/12/31/now-powered-by-heroku/</guid><description>&lt;p&gt;This is just a quick note to let everyone know &lt;em&gt;Ariejan.net&lt;/em&gt; is now proudly hosted by &lt;a href="http://heroku.com"&gt;Heroku&lt;/a&gt;. Since this site is powered by a &lt;a href="https://github.com/cloudhead/toto"&gt;toto&lt;/a&gt; (a rack-based blog engine) and no database, Heroku is the perfect hosting solution.&lt;/p&gt;</description></item><item><title>Public Readable Amazon S3 Bucket Policy</title><link>https://www.devroom.io/2010/12/24/public-readable-amazon-s3-bucket-policy/</link><pubDate>Fri, 24 Dec 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/12/24/public-readable-amazon-s3-bucket-policy/</guid><description>&lt;p&gt;Amazon S3 allows you to set per-file permissions to grant read and/or write access. This is nice, but sometimes you just want to share your whole bucket with the world.&lt;/p&gt;</description></item><item><title>Why did error_messages_for disappear from Rails 3?</title><link>https://www.devroom.io/2010/12/15/why-did-errormessagesfor-disappear-from-rails-3/</link><pubDate>Wed, 15 Dec 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/12/15/why-did-errormessagesfor-disappear-from-rails-3/</guid><description>&lt;p&gt;Today I learned that &lt;code&gt;error_messages_for&lt;/code&gt; has disappear from Rails 3. When I tried using it I got the following deprecation warning:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DEPRECATION WARNING: form.error_messages was removed from Rails and is now available as a plugin.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Hide 'Last login:' on bash login</title><link>https://www.devroom.io/2010/11/25/hide-last-login-on-bash-login/</link><pubDate>Thu, 25 Nov 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/11/25/hide-last-login-on-bash-login/</guid><description>&lt;p&gt;Everytime I open a new Terminal on my Mac, I get a line like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Last login: Thu Nov 25 09:07:55 on ttys004
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This annoys me. I don&amp;rsquo;t care when I last opened a local Terminal.&lt;/p&gt;</description></item><item><title>Clear your MySQL password</title><link>https://www.devroom.io/2010/10/26/clear-your-mysql-password/</link><pubDate>Tue, 26 Oct 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/10/26/clear-your-mysql-password/</guid><description>&lt;p&gt;Most people need their MySQL database protected with at least a decent password. I agree, but in development this often causes conflicts - and I prefer to work with my MySQL datbase without all the password-hassle.&lt;/p&gt;</description></item><item><title>Setup a PPTP VPN connection on Mac OS X Snow Leopard</title><link>https://www.devroom.io/2010/10/12/setup-a-pptp-vpn-connection-on-mac-os-x-snow-leopard/</link><pubDate>Tue, 12 Oct 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/10/12/setup-a-pptp-vpn-connection-on-mac-os-x-snow-leopard/</guid><description>&lt;p&gt;In my &lt;a href="http://ariejan.net/2010/10/11/setup-a-ubuntu-vpn-server/"&gt;previous tutorial&lt;/a&gt; I explained how to setup a PPTP based VPN server on
Ubuntu. Now I&amp;rsquo;ll show you how to configure Mac OS X Snow Leopard to use that
VPN connection.&lt;/p&gt;</description></item><item><title>Setup a Ubuntu VPN server</title><link>https://www.devroom.io/2010/10/11/setup-a-ubuntu-vpn-server/</link><pubDate>Mon, 11 Oct 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/10/11/setup-a-ubuntu-vpn-server/</guid><description>&lt;p&gt;I recently installed Ubuntu Linux on a home server (I hate that word, but it
best describes what it is, so). Anyway, I&amp;rsquo;d like to be able to create a VPN
network between my home server and my MacbookPro, which might be anywhere in
the world.&lt;/p&gt;</description></item><item><title>Firefly 1.1.0 adds QR Codes for your shortened URLs</title><link>https://www.devroom.io/2010/10/02/firefly-110-adds-qr-codes-for-your-shortened-urls/</link><pubDate>Sat, 02 Oct 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/10/02/firefly-110-adds-qr-codes-for-your-shortened-urls/</guid><description>&lt;p&gt;&lt;a href="http://aj.gs/2Y.png"&gt;




 
 
 



 
 
 &lt;img
 src="http://aj.gs/2Y.png"
 alt="Example QR Code"
 loading="lazy"
 decoding="async"
 class="full-width"
 /&gt;
 

&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I just pushed Firefly 1.1.0 &lt;a href="http://github.com/ariejan/firefly/tree/v1.1.0"&gt;(code)&lt;/a&gt; to &lt;a href="http://rubygems.org/gems/firefly"&gt;Rubygems&lt;/a&gt; containing a very nice new feature: QR Codes.&lt;/p&gt;
&lt;p&gt;Why would you care? Well, almost anything can scan QR Codes nowadays. Simple add &lt;code&gt;.png&lt;/code&gt; to the end of your shortened URL and you&amp;rsquo;ll
get a nice QR Code that you can print or embed on somewhere on the web. Give it a try: &lt;a href="http://aj.gs/2Y.png"&gt;http://aj.gs/2Y.png&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Precompile SASS to CSS for deployment to Heroku</title><link>https://www.devroom.io/2010/09/28/precompile-sass-to-css-for-deployment-to-heroku/</link><pubDate>Tue, 28 Sep 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/09/28/precompile-sass-to-css-for-deployment-to-heroku/</guid><description>&lt;p&gt;If you have deployed apps to Heroku you know that you cannot write to the read-only file system that Heroku offers. For file uploads you have to use some storage provider like Amazon S3 or RackSpace CloudFiles.&lt;/p&gt;</description></item><item><title>Mass convert WMA to MP3 using ffmpeg and ruby</title><link>https://www.devroom.io/2010/09/11/mass-convert-wma-to-mp3-using-ffmpeg-and-ruby/</link><pubDate>Sat, 11 Sep 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/09/11/mass-convert-wma-to-mp3-using-ffmpeg-and-ruby/</guid><description>&lt;p&gt;Today I found myself in a situation where I have a few (200+) WMA audio files. Due to personal preference I want MP3, not WMA. So, let&amp;rsquo;s convert that lot.&lt;/p&gt;</description></item><item><title>Resque: how to requeue failed jobs</title><link>https://www.devroom.io/2010/08/23/resque-how-to-requeue-failed-jobs/</link><pubDate>Mon, 23 Aug 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/08/23/resque-how-to-requeue-failed-jobs/</guid><description>&lt;p&gt;Today I found about 100k Resque jobs in the &lt;em&gt;failed&lt;/em&gt; queue. Due to a small error in some user content, those jobs all failed. After fixing the problem, how do you reprocess all those jobs?&lt;/p&gt;</description></item><item><title>Rename a git branch</title><link>https://www.devroom.io/2010/08/09/rename-a-git-branch/</link><pubDate>Mon, 09 Aug 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/08/09/rename-a-git-branch/</guid><description>&lt;p&gt;In git, branching is cheap and easy. You do it all the time (you&amp;rsquo;re not? Well, you should). Sometimes, though, you create a new feature branch, only to come to the conclusion later that the name you gave it does not cover the stuff you&amp;rsquo;ve been doing.&lt;/p&gt;</description></item><item><title>Using multiple clipboards in Vim</title><link>https://www.devroom.io/2010/08/09/using-multiple-clipboards-in-vim/</link><pubDate>Mon, 09 Aug 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/08/09/using-multiple-clipboards-in-vim/</guid><description>&lt;p&gt;On of the first things you learn when using Vim activly is that when you delete something using &lt;code&gt;x&lt;/code&gt; or &lt;code&gt;dd&lt;/code&gt; that content is actually cut and put on a clipboard. Later you can retrieve that content using the &lt;code&gt;p&lt;/code&gt; or &lt;code&gt;P&lt;/code&gt; commanands.&lt;/p&gt;</description></item><item><title>How to enable SSH Forwarding on Mac OS X Snow Leopard</title><link>https://www.devroom.io/2010/07/29/how-to-enable-ssh-forwarding-on-mac-os-x-snow-leopard/</link><pubDate>Thu, 29 Jul 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/07/29/how-to-enable-ssh-forwarding-on-mac-os-x-snow-leopard/</guid><description>&lt;p&gt;The other day I was toying with Rubber to deploy a Rails3 app to Amazon EC2. I host the project code in a private Github repository, accessible only with my own SSH key.&lt;/p&gt;</description></item><item><title>Screencast: Firefly URL shortener in less than 2.5 minutes</title><link>https://www.devroom.io/2010/07/12/screencast-firefly-url-shortener-in-less-than-25-minutes/</link><pubDate>Mon, 12 Jul 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/07/12/screencast-firefly-url-shortener-in-less-than-25-minutes/</guid><description>&lt;p&gt;Firefly is a light-weight URL Shortener app. It&amp;rsquo;s written in Ruby/Sinatra and can be easily deployed to Heroku, &lt;a href="https://ariejannet.local/2010/06/06/setup-your-own-firefly-url-shortener-in-25-minutes/"&gt;as I&amp;rsquo;ve written before&lt;/a&gt;. This screencast illustrates how easy it really is to setup Firefly and give it a spin. Did I mention that both Firefly and Heroku can be used for free?&lt;/p&gt;</description></item><item><title>Cherry-Picking specific commits from another branch</title><link>https://www.devroom.io/2010/06/10/cherry-picking-specific-commits-from-another-branch/</link><pubDate>Thu, 10 Jun 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/06/10/cherry-picking-specific-commits-from-another-branch/</guid><description>&lt;p&gt;I&amp;rsquo;m often asked how to merge only specific commits from another branch into the current one. The reason you&amp;rsquo;d want to do this is to merge specific changes you need now, leaving other code changes you&amp;rsquo;re not interested in right now behind.&lt;/p&gt;</description></item><item><title>Uploading files with Curl</title><link>https://www.devroom.io/2010/06/07/uploading-files-with-curl/</link><pubDate>Mon, 07 Jun 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/06/07/uploading-files-with-curl/</guid><description>&lt;p&gt;I&amp;rsquo;ve always trouble uploading files with Curl. Some how the syntax for that command won&amp;rsquo;t stick, so I post it here for future reference.&lt;/p&gt;
&lt;p&gt;What I want to do is perform a normal &lt;code&gt;POST&lt;/code&gt;, including a file and some other variables to a remote server. This is it:&lt;/p&gt;</description></item><item><title>Firefly 0.4.3 and Firefly Client 0.4.0 released</title><link>https://www.devroom.io/2010/06/06/firefly-043-and-firefly-client-040-released/</link><pubDate>Sun, 06 Jun 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/06/06/firefly-043-and-firefly-client-040-released/</guid><description>&lt;p&gt;Today version 0.4.3 of Firefly was released with some minor updates. To complete the package, a new gem &lt;a href="http://github.com/ariejan/firefly-client"&gt;firefly-client&lt;/a&gt; has been released.&lt;/p&gt;
&lt;p&gt;The client library allows your Ruby application to easily shorten URLs with a remote Firefly server. It&amp;rsquo;s very easy to use and lightweight.&lt;/p&gt;</description></item><item><title>Setup your own Firefly URL shortener in 2.5 minutes</title><link>https://www.devroom.io/2010/06/06/setup-your-own-firefly-url-shortener-in-25-minutes/</link><pubDate>Sun, 06 Jun 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/06/06/setup-your-own-firefly-url-shortener-in-25-minutes/</guid><description>&lt;p&gt;By popular demand I&amp;rsquo;ve setup a guide to setup your own personal URL shortener with &lt;a href="http://github.com/ariejan/firefly"&gt;Firefly&lt;/a&gt; and &lt;a href="http://heroku.com"&gt;Heroku&lt;/a&gt;. I&amp;rsquo;ve timed it an you can do it in under 2.5 minutes. How&amp;rsquo;s that for fast?&lt;/p&gt;</description></item><item><title>Upgrading to Mongoid Beta 6</title><link>https://www.devroom.io/2010/05/30/upgrading-to-mongoid-beta-6/</link><pubDate>Sun, 30 May 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/05/30/upgrading-to-mongoid-beta-6/</guid><description>&lt;p&gt;If you are working with Rails 3 and Mongoid, you&amp;rsquo;re likely to upgrade to [&lt;code&gt;mongoid-2.0.0.beta6&lt;/code&gt;][1]. That&amp;rsquo;s okay, but you will run into a few problems. Among others, one will be:&lt;/p&gt;</description></item><item><title>Bundler + Passenger with Rails 2.3.5? Yes, please!</title><link>https://www.devroom.io/2010/05/17/bundler-passenger-with-rails-235-yes-please/</link><pubDate>Mon, 17 May 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/05/17/bundler-passenger-with-rails-235-yes-please/</guid><description>&lt;p&gt;Bundler allows you to define the gems your application uses, resolve dependencies and load everything up. This is great, because you don&amp;rsquo;t have to manage all those different gem versions yourself any more.&lt;/p&gt;</description></item><item><title>Firefly 0.4.1 released</title><link>https://www.devroom.io/2010/04/30/firefly-041-released/</link><pubDate>Fri, 30 Apr 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/04/30/firefly-041-released/</guid><description>&lt;p&gt;I just pushed &lt;a href="http://github.com/ariejan/firefly/tree/v0.4.1"&gt;Firefly 0.4.1&lt;/a&gt; to &lt;a href="http://rubygems.org/gems/firefly"&gt;Rubygems&lt;/a&gt;. Updating is easy:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gem update firefly
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Don&amp;rsquo;t forget to restart your server, that&amp;rsquo;s all.&lt;/p&gt;
&lt;p&gt;The 0.4.1 release covers the following changes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Normalize URLs before shortening them. This prevents false duplicates.&lt;/li&gt;
&lt;li&gt;Validate URLs to be valid HTTP or HTTPS, don&amp;rsquo;t accept others. Closes #8&lt;/li&gt;
&lt;li&gt;Don&amp;rsquo;t ask for the API key after shortening a URL with the bookmarklet.&lt;/li&gt;
&lt;li&gt;Show the highlighted URL separately. Closes #7.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you are interested in contributing to Firefly, please fork the project on &lt;a href="http://github.com/ariejan/firefly"&gt;github&lt;/a&gt;. Pull requests are very welcome.&lt;/p&gt;</description></item><item><title>Ruby version and gemset in your Bash prompt? Yes sir!</title><link>https://www.devroom.io/2010/04/25/ruby-version-and-gemset-in-your-bash-prompt-yes-sir/</link><pubDate>Sun, 25 Apr 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/04/25/ruby-version-and-gemset-in-your-bash-prompt-yes-sir/</guid><description>&lt;p&gt;RVM is an easy way to switch between different ruby implementations and gemsets. If you don&amp;rsquo;t know about it, &lt;a href="http://rvm.beginrescueend.com/"&gt;go check it out&lt;/a&gt;. If you do know about, you&amp;rsquo;ll know how annoying it is never to know which ruby version and gemset you&amp;rsquo;re currently using. Here is a nice &lt;code&gt;.profile&lt;/code&gt; hack that shows your current ruby version and optional gemset in your prompt.&lt;/p&gt;</description></item><item><title>A new day, a new Firefly</title><link>https://www.devroom.io/2010/04/14/a-new-day-a-new-firefly/</link><pubDate>Wed, 14 Apr 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/04/14/a-new-day-a-new-firefly/</guid><description>&lt;p&gt;Get ready for 0.4 (or, 0.4.0.1 to be exact)! This release has some interesting new features. Read more to find out, I&amp;rsquo;ve included a screen shot for your pleasure.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Twitter integration&lt;/li&gt;
&lt;li&gt;Easier copying of short URLs&lt;/li&gt;
&lt;li&gt;Highlight the last shortened URL&lt;/li&gt;
&lt;li&gt;Several fixes, see &lt;a href="http://github.com/ariejan/firefly/blob/v0.4.0.1/HISTORY"&gt;HISTORY&lt;/a&gt; for details&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Coming from Digg? Check out the source and &lt;code&gt;README&lt;/code&gt; at &lt;a href="http://github.com/ariejan/firefly"&gt;http://github.com/ariejan/firefly&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Get ready for Firefly 0.3!</title><link>https://www.devroom.io/2010/04/13/get-ready-for-firefly-03/</link><pubDate>Tue, 13 Apr 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/04/13/get-ready-for-firefly-03/</guid><description>&lt;p&gt;Hot off the press is Firefly 0.3! Firefly is a simple URL shortener application intended for personal use. It&amp;rsquo;s core features are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Very light-weight - based on Sinatra&lt;/li&gt;
&lt;li&gt;Shorten URLs using 62-Base encoding&lt;/li&gt;
&lt;li&gt;Offers an easy to use API&lt;/li&gt;
&lt;li&gt;Keeps track of URL clicks&lt;/li&gt;
&lt;li&gt;Supports most popular database backends, including MySQL and Sqlite3&lt;/li&gt;
&lt;li&gt;Includes a ready-to-use Bookmarklet&lt;/li&gt;
&lt;li&gt;Works with any Rack capable web server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Interested? Give it a go! Here&amp;rsquo;s how in ht&lt;/p&gt;</description></item><item><title>Detect browser Web Sockets support</title><link>https://www.devroom.io/2010/04/05/detect-browser-web-sockets-support/</link><pubDate>Mon, 05 Apr 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/04/05/detect-browser-web-sockets-support/</guid><description>&lt;p&gt;HTML5 Web Sockets are awesome! I&amp;rsquo;ve been toying around with it for a bit today and noticed that not every browser supports native HTML5 Web Sockets yet.&lt;/p&gt;
&lt;p&gt;Google Chrome 5 has native support for web sockets, FireFox 3.6 does not. This poses a problem if you&amp;rsquo;re building something awesome that does require web sockets.
~&lt;/p&gt;</description></item><item><title>Announcing Firefly, a ruby URL shortener</title><link>https://www.devroom.io/2010/03/29/announcing-firefly-a-ruby-url-shortener/</link><pubDate>Mon, 29 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/29/announcing-firefly-a-ruby-url-shortener/</guid><description>&lt;p&gt;Here it is! Firefly! The easiest URL shortener there is in Ruby land!&lt;/p&gt;
&lt;p&gt;How easy? Install the gem, copy and paste a &lt;code&gt;config.ru&lt;/code&gt; and you&amp;rsquo;re good to go!&lt;/p&gt;
&lt;p&gt;Read &lt;a href="http://github.com/ariejan/firefly#readme"&gt;the documentation&lt;/a&gt; or &lt;a href="http://github.com/ariejan/firefly"&gt;the source&lt;/a&gt; for more details. I&amp;rsquo;ve included the README in this post as well for your convenience.&lt;/p&gt;</description></item><item><title>Really? Another Sinatra URL Shortener in Ruby?</title><link>https://www.devroom.io/2010/03/28/really-another-sinatra-url-shortener-in-ruby/</link><pubDate>Sun, 28 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/28/really-another-sinatra-url-shortener-in-ruby/</guid><description>&lt;p&gt;With my recent interest in &lt;a href="http://www.sinatrarb.com/"&gt;Sinatra&lt;/a&gt; I decided to make some us of it and write a URL shortener service for with it. This also gave me an excuse to polish up my &lt;a href="http://datamapper.org/"&gt;DataMapper&lt;/a&gt; skills a bit.&lt;/p&gt;</description></item><item><title>Installing the Nokogiri ruby gem on Debian</title><link>https://www.devroom.io/2010/03/25/installing-the-nokogiri-ruby-gem-on-debian/</link><pubDate>Thu, 25 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/25/installing-the-nokogiri-ruby-gem-on-debian/</guid><description>&lt;p&gt;To install Nokogiri on a Debian system you need some system packages in place. This snippet will get you going quickly.
~
First, install the necessary debian packages if you don&amp;rsquo;t have them already:&lt;/p&gt;</description></item><item><title>Ariejan.net now in valid HTML5</title><link>https://www.devroom.io/2010/03/24/ariejannet-now-in-valid-html5/</link><pubDate>Wed, 24 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/24/ariejannet-now-in-valid-html5/</guid><description>&lt;p&gt;&lt;em&gt;As most&lt;/em&gt; developers already know: &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;HTML5&lt;/a&gt; &lt;a href="http://www.readwriteweb.com/archives/5_exciting_things_in_html_5.php"&gt;is&lt;/a&gt; &lt;a href="http://www.geektechnica.com/2009/06/5-amazing-html5-features-to-look-forward-to/"&gt;very&lt;/a&gt; &lt;a href="http://www.youtube.com/html5"&gt;awesome&lt;/a&gt;! So, with my move from WordPress to Toto I&amp;rsquo;ve made sure Ariejan.net is HTML5 compliant.&lt;/p&gt;
&lt;p&gt;~&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not going to tell you how I did it all, there&amp;rsquo;s enough about writing HTML5 on the web already.&lt;/p&gt;</description></item><item><title>How a little varnish changed my life</title><link>https://www.devroom.io/2010/03/24/how-a-little-varnish-changed-my-life/</link><pubDate>Wed, 24 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/24/how-a-little-varnish-changed-my-life/</guid><description>&lt;p&gt;Okay, it&amp;rsquo;s a bit of an exaggeration to say &lt;a href="http://varnish-cache.org/"&gt;varnish&lt;/a&gt; changed my life, but it sure did change the speed of my site!&lt;/p&gt;
&lt;p&gt;I got from a rotten 6 requests per second with WordPress to a whopping 9500! If you&amp;rsquo;re on Linux and running Apache, installing varnish is a breeze! Especially if you&amp;rsquo;re hosting a well cacheable site like a blog.&lt;/p&gt;</description></item><item><title>Shields up! Rrrack alert!</title><link>https://www.devroom.io/2010/03/22/shields-up-rrrack-alert/</link><pubDate>Mon, 22 Mar 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/03/22/shields-up-rrrack-alert/</guid><description>&lt;p&gt;For a very long time I have been dissatisfied with WordPress. Although it&amp;rsquo;s the best PHP blogging engine out there, it sucked.&lt;/p&gt;
&lt;p&gt;Firstly, it&amp;rsquo;s slow. I got the front end a bit snappier by caching the living crap out of it, but that did not help things for me in the backend. So, what to do?
~&lt;/p&gt;</description></item><item><title>How to order your Kindle from the Netherlands</title><link>https://www.devroom.io/2010/02/02/how-to-order-your-kindle-from-the-netherlands/</link><pubDate>Tue, 02 Feb 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/02/02/how-to-order-your-kindle-from-the-netherlands/</guid><description>&lt;p&gt;I get a lot of questions about how I bought my Kindle and what it cost to get it shipped to the Netherlands. So, for all those Dutchmen (and Dutchwomen) who are considering a Kindle, here&amp;rsquo;s a short &lt;em&gt;how-to&lt;/em&gt; in Dutch:&lt;/p&gt;</description></item><item><title>Sign the petition: Stop EU Software Patents</title><link>https://www.devroom.io/2010/01/19/sign-the-petition-stop-eu-software-patents/</link><pubDate>Tue, 19 Jan 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/01/19/sign-the-petition-stop-eu-software-patents/</guid><description>&lt;p&gt;From &lt;a href="http://stopsoftwarepatents.eu"&gt;stopsoftwarepatents.eu&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Our petition aims to unify the voices of concerned Europeans, associations and companies, and calls on our politicians in Europe to stop patents on software with legislative clarifications.&lt;/p&gt;
&lt;p&gt;The patent system is misused to restrain competition for the economical benefit of a few but fails to promote innovation. A software market environment is better off with no patents on software at all. Healthy competition forces market players to innovate.&lt;/p&gt;</description></item><item><title>The epic e-reading experience: Amazon Kindle</title><link>https://www.devroom.io/2010/01/17/the-epic-e-reading-experience-amazone-kindle/</link><pubDate>Sun, 17 Jan 2010 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2010/01/17/the-epic-e-reading-experience-amazone-kindle/</guid><description>&lt;p&gt;For some time I have been eyeballing Sony&amp;rsquo;s e-reader in the local bookstore. I tried it a few times, but I didn&amp;rsquo;t like it - actually I had serious doubts about e-books in general because of the experience. Sony&amp;rsquo;s e-reader was not really easy to use with only one next-page button in a not-so-easy to access place. It also had a slow e-ink screen. It took a second to a second-and-a-half to show the next page. I didn&amp;rsquo;t like it and had serious doubts about buying any e-reader at all.&lt;/p&gt;</description></item><item><title>Epic TextMate Theme</title><link>https://www.devroom.io/2009/11/24/epic-textmate-theme/</link><pubDate>Tue, 24 Nov 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/11/24/epic-textmate-theme/</guid><description>&lt;p&gt;Okay, I&amp;rsquo;ve wanted to make a custom TextMate theme since I first installed the thing on my MacBook in 2006. Today I present you with &amp;lsquo;Epic&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grab the theme here: &lt;a href="http://ariejan.net/wp-content/uploads/2009/11/EpicBlue.tmTheme.zip"&gt;EpicBlue.tmTheme.zip (1.5k)&lt;/a&gt;. Unzip it and open it with TextMate. That&amp;rsquo;s all. Enjoy!&lt;/p&gt;</description></item><item><title>How to create and apply a patch with Git</title><link>https://www.devroom.io/2009/10/26/how-to-create-and-apply-a-patch-with-git/</link><pubDate>Mon, 26 Oct 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/10/26/how-to-create-and-apply-a-patch-with-git/</guid><description>&lt;p&gt;Creating a patch file with git is quite easy to do, you just need to see how it&amp;rsquo;s done a few times.&lt;/p&gt;
&lt;p&gt;This article will show you how to create a patch from the last few commits in your repository. Next, I&amp;rsquo;ll also show you how you can correctly apply this patch to another repository.&lt;/p&gt;</description></item><item><title>They are just tools, people!</title><link>https://www.devroom.io/2009/10/25/they-are-just-tools-people/</link><pubDate>Sun, 25 Oct 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/10/25/they-are-just-tools-people/</guid><description>&lt;p&gt;Codaset is openly asking its users to comment on what pricing strategy they would like most. I&amp;rsquo;ve spotted this before, but again, there are two types of users. Those who see a great service and know that it will make their job easier, so they are willing to pay for it. There are also those who want a trillion repositories, unlimited disk space and what not for $1 a month (or less). This post is for the latter group of people.&lt;/p&gt;
&lt;p&gt;Some developers claim they &lt;em&gt;need&lt;/em&gt; to use all of 37Signals&amp;rsquo; apps, have the biggest Github plan available and buy that new shiny 17&amp;quot; MacBook Pro (or that 27&amp;quot; iMac, I know). With all those tools and hardware available, how can your brilliant plan not succeed? All the successful people you&amp;rsquo;ve heard of use them. So, with all that setup, you&amp;rsquo;re golden! Right? Then they check the price tag. It&amp;rsquo;s huge!&lt;/p&gt;</description></item><item><title>Git problem: error: unable to create temporary sha1 filename</title><link>https://www.devroom.io/2009/10/15/git-problem-error-unable-to-create-temporary-sha1-filename/</link><pubDate>Thu, 15 Oct 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/10/15/git-problem-error-unable-to-create-temporary-sha1-filename/</guid><description>&lt;p&gt;I got &lt;code&gt;git problem: error: unable to create temporary sha1 filename&lt;/code&gt; when pushing to a remote repository. The fix is rather easy.&lt;/p&gt;
&lt;p&gt;On both your local and remote repositories perform the following magic:&lt;/p&gt;</description></item><item><title>Epic vs. Awesome</title><link>https://www.devroom.io/2009/10/13/epic-vs-awesome/</link><pubDate>Tue, 13 Oct 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/10/13/epic-vs-awesome/</guid><description>&lt;p&gt;There&amp;rsquo;s bit of a discussion between me and &lt;a href="http://twitter.com/ludooo"&gt;@ludooo&lt;/a&gt; about which word has the most significance when measuring the greatness of something.&lt;/p&gt;
&lt;p&gt;I say epic is bigger than awesome. &lt;a href="http://twitter.com/ludooo"&gt;@ludooo&lt;/a&gt; says awesome is bigger than epic (he&amp;rsquo;s not right, of course).&lt;/p&gt;</description></item><item><title>Valerii: 32-base string encoder and decoder</title><link>https://www.devroom.io/2009/10/13/valerii-32-base-string-encoder-and-decoder/</link><pubDate>Tue, 13 Oct 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/10/13/valerii-32-base-string-encoder-and-decoder/</guid><description>&lt;p&gt;You have probably seen URL shorteners that use short, seemingly random strings to identify sites. These strings are not random, they are encoded integer values. My valerii gem allows you to easily and quickly encode and decode integer values. Let me show you.&lt;/p&gt;</description></item><item><title>Codaset.com: Github, but better</title><link>https://www.devroom.io/2009/09/08/codaset-com-github-but-better/</link><pubDate>Tue, 08 Sep 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/09/08/codaset-com-github-but-better/</guid><description>&lt;p&gt;Today I had the very pleasure of giving &lt;a href="http://codaset.com"&gt;Codaset.com&lt;/a&gt; a try! Codaset is being developed by Joel Moss in Ruby on Rails and could be a real Github killer!&lt;/p&gt;
&lt;p&gt;When I asked Joel what Codaset was and how he come to his idea he answered this:&lt;/p&gt;</description></item><item><title>Git Tag Mini Cheat Sheet Revisited</title><link>https://www.devroom.io/2009/09/05/git-tag-mini-cheat-sheet-revisited/</link><pubDate>Sat, 05 Sep 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/09/05/git-tag-mini-cheat-sheet-revisited/</guid><description>&lt;p&gt;Just as a kind of mini cheat sheet for using git tags. &lt;a href="http://ariejan.net/2009/09/04/git-tag-mini-cheat-sheet/comment-page-1/#comment-10876"&gt;Jörg Mittag&lt;/a&gt; had some great additions that weren&amp;rsquo;t in the original post which warrant a new post.&lt;/p&gt;
&lt;p&gt;Git has three different type of tags:&lt;/p&gt;</description></item><item><title>Git Tag Mini Cheat Sheet</title><link>https://www.devroom.io/2009/09/04/git-tag-mini-cheat-sheet/</link><pubDate>Fri, 04 Sep 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/09/04/git-tag-mini-cheat-sheet/</guid><description>&lt;p&gt;Just as a kind of mini cheat sheet for using git tags:&lt;/p&gt;
&lt;p&gt;Adding a tag:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git tag tag_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git tag&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Should show your new tag.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push origin --tags&lt;/code&gt; or &lt;code&gt;git push origin :tag_name&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Because &lt;code&gt;git push&lt;/code&gt; doesn't push tags.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Removing a tag:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git tag -d tag_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git tag&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Should no longer show your tag.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push origin :refs/tags/tag_name&lt;/code&gt;&lt;br /&gt;
&lt;em&gt;Because &lt;code&gt;git push --tags&lt;/code&gt; doesn't push deleted tags.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Rails + MySQL: Case-Sensitive strings in your database</title><link>https://www.devroom.io/2009/09/03/rails-mysql-case-sensitive-strings-in-your-database/</link><pubDate>Thu, 03 Sep 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/09/03/rails-mysql-case-sensitive-strings-in-your-database/</guid><description>&lt;p&gt;When using Rails + MySQL, you&amp;rsquo;ll find that normal string (or varchar(255)) fields are case insensitive. This can be quite a nuisance, but it&amp;rsquo;s easy to resolve. You need to set your table to the utf8_bin collation. By using the binary variant, you&amp;rsquo;re basically enabling case sensitivity.&lt;/p&gt;</description></item><item><title>JInput Mac OS X 64 bit natives</title><link>https://www.devroom.io/2009/09/01/jinput-mac-os-x-64-bit-natives/</link><pubDate>Tue, 01 Sep 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/09/01/jinput-mac-os-x-64-bit-natives/</guid><description>&lt;p&gt;Yesterday I ran into a little problem running &lt;a href="http://slick.cokeandcode.com/index.php"&gt;Slick 2D&lt;/a&gt; on Java 6 64bit on my Mac. It&amp;rsquo;s a MacPro, which has a 64 bit processor and is running Leopard. The problem I encountered was related to the native libraries provided by &lt;a href="http://www.lwjgl.org"&gt;LWJGL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a user of LWJGL, you&amp;rsquo;ll be using JInput as well. Unfortunately, JInput does not currently have any 64 bit native libraries as it is only providing for PPC and i386 (32bit). This is a problem because Mac OS X users are somewhat bound to Java 6 64bit. There is no 32 bit version of Java 6 for Mac OS X.&lt;/p&gt;</description></item><item><title>Once and for all: Rails migrations integer :limit option</title><link>https://www.devroom.io/2009/08/20/once-and-for-all-rails-migrations-integer-limit-option/</link><pubDate>Thu, 20 Aug 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/08/20/once-and-for-all-rails-migrations-integer-limit-option/</guid><description>&lt;p&gt;I literally always have to look up the meaning of :limit in migrations when it comes to integer values. Here&amp;rsquo;s an overview. Now let&amp;rsquo;s memorise it (oh, this works for MySQL, other databases may work differently):&lt;/p&gt;</description></item><item><title>IMDB Ruby Gem 0.4.0 Now available at RubyForge!</title><link>https://www.devroom.io/2009/06/14/imdb-ruby-gem-0-4-0-now-available-at-rubyforge/</link><pubDate>Sun, 14 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/14/imdb-ruby-gem-0-4-0-now-available-at-rubyforge/</guid><description>&lt;p&gt;I just released version 0.4.0 of the IMDB Ruby Gem into the wild. There are only a few minor updates:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changes in 0.4.0&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Updates to the console &amp;lsquo;imdb&amp;rsquo; utility
&lt;ul&gt;
&lt;li&gt;Show the IMDB ID&lt;/li&gt;
&lt;li&gt;Show the full IMDB URL&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Installation or upgrade&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Speaking at Rails Underground</title><link>https://www.devroom.io/2009/06/14/speaking-at-rails-underground/</link><pubDate>Sun, 14 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/14/speaking-at-rails-underground/</guid><description>&lt;p&gt;&lt;a href="http://rails-underground.com"&gt;




 
 
 



 
 
 &lt;img
 src="http://ariejan.net/wp-content/uploads/2009/06/speaker_badge.png"
 alt="Speaking at Rails Underground"
 loading="lazy"
 decoding="async"
 class="full-width"
 /&gt;
 

&lt;/a&gt;I haven&amp;rsquo;t seen a schedule yet, but I&amp;rsquo;ve been told by &lt;a href="http://www.rails-underground.com/about-me.html"&gt;Mark&lt;/a&gt; that I&amp;rsquo;ll be speaking at &lt;a href="http://www.rails-underground.com/"&gt;Rails Underground&lt;/a&gt; this year.&lt;/p&gt;
&lt;p&gt;My talk will be on the topic of Git. In about 45 minutes time I&amp;rsquo;ll show you all the basic git features you&amp;rsquo;ll need on a daily basis. Not only that, but I&amp;rsquo;ll also explain how git manages all those commits and branches so you can be on your way to become a git power user.&lt;/p&gt;</description></item><item><title>Best Practice - The Git Development Cycle</title><link>https://www.devroom.io/2009/06/08/best-practice-the-git-development-cycle/</link><pubDate>Mon, 08 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/08/best-practice-the-git-development-cycle/</guid><description>&lt;p&gt;Git is quite an awesome version control system. Why? Because it&amp;rsquo;s lightning fast, even for large projects (among other reasons).&lt;/p&gt;
&lt;p&gt;But, how do you use Git effectively for development on a daily basis? Let me explain to you.&lt;/p&gt;</description></item><item><title>ActiveRecord: Skipping callbacks like after_save or after_update</title><link>https://www.devroom.io/2009/06/07/activerecord-skipping-callbacks-like-after_save-or-after_update/</link><pubDate>Sun, 07 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/07/activerecord-skipping-callbacks-like-after_save-or-after_update/</guid><description>&lt;p&gt;Active Records provides callbacks, which is great is you want to perform extra business logic after (or before) saving, creating or destroying an instance of that model.&lt;/p&gt;
&lt;p&gt;However, there are situations where you can easily fall into the trap of creating an infinite loop.&lt;/p&gt;</description></item><item><title>has_one - find all that have no associated object</title><link>https://www.devroom.io/2009/06/07/has_one-find-all-that-have-no-associated-object/</link><pubDate>Sun, 07 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/07/has_one-find-all-that-have-no-associated-object/</guid><description>&lt;p&gt;Let me pose a typical Rails situation:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:fancy_hat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;FancyHat&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;belongs_to&lt;/span&gt; &lt;span class="ss"&gt;:person&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, how can you get all the people that don&amp;rsquo;t have a fancy hat?&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;has_one&lt;/span&gt; &lt;span class="ss"&gt;:fancy_hat&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;named_scope&lt;/span&gt; &lt;span class="ss"&gt;:hatless&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:joins&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;LEFT JOIN fancy_hats ON fancy_hats.person_id = people.id&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:conditions&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;fancy_hats.person_id IS NULL&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you can find all the hatless people you want.&lt;/p&gt;</description></item><item><title>IMDB 0.3.0 now including console utility - query IMDB from your console</title><link>https://www.devroom.io/2009/06/07/imdb-0-3-0-now-including-console-utility-query-imdb-from-your-console/</link><pubDate>Sun, 07 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/07/imdb-0-3-0-now-including-console-utility-query-imdb-from-your-console/</guid><description>&lt;p&gt;With the release of &lt;a href="http://rubyforge.org/frs/?group_id=8457&amp;release_id=35280"&gt;IMDB 0.3.0&lt;/a&gt;, a command-line utility is included!&lt;/p&gt;
&lt;p&gt;Why is this awesome for you? Basically, because you can now query IMDB and process the results with any of the great GNU tools available to you like &lt;code&gt;grep&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Install Hpricot on Ubuntu</title><link>https://www.devroom.io/2009/06/05/install-hpricot-on-ubuntu/</link><pubDate>Fri, 05 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/05/install-hpricot-on-ubuntu/</guid><description>&lt;p&gt;It&amp;rsquo;s quite easy. Make sure you have RubyGems and Ruby installed first, of course.&lt;/p&gt;
&lt;p&gt;The problem:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo gem install hpricot
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Building native extensions. This could take a &lt;span class="k"&gt;while&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ERROR: Error installing hpricot:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	ERROR: Failed to build gem native extension.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/usr/bin/ruby1.8 extconf.rb
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;extconf.rb:1:in &lt;span class="sb"&gt;`&lt;/span&gt;require&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;: no such file to load -- mkmf &lt;span class="o"&gt;(&lt;/span&gt;LoadError&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	from extconf.rb:1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The solution:&lt;/p&gt;</description></item><item><title>Ruby Gem: IMDB</title><link>https://www.devroom.io/2009/06/03/ruby-gem-imdb/</link><pubDate>Wed, 03 Jun 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/06/03/ruby-gem-imdb/</guid><description>&lt;p&gt;I just released version 0.1.0 of my IMDB gem which allows your app to search IMDB for IMDB movie ID&amp;rsquo;s and access most data that&amp;rsquo;s publicly available.&lt;/p&gt;
&lt;h2 id="installation"&gt;Installation&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo gem install imdb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will also install the dependencies Hpricot and HTTParty.&lt;/p&gt;</description></item><item><title>Speak louder! I can't hear you over the sound of how awesome I am!</title><link>https://www.devroom.io/2009/05/22/speak-louder-i-cant-hear-you-over-the-sound-of-how-awesome-i-am/</link><pubDate>Fri, 22 May 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/05/22/speak-louder-i-cant-hear-you-over-the-sound-of-how-awesome-i-am/</guid><description>&lt;p&gt;&lt;a href="http://bit.ly/iBGj6"&gt;Get the t-shirt!&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Second RubyFest Speaker: Geoffrey Grosenbach</title><link>https://www.devroom.io/2009/05/06/second-rubyfest-speaker-geoffrey-grosenbach/</link><pubDate>Wed, 06 May 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/05/06/second-rubyfest-speaker-geoffrey-grosenbach/</guid><description>&lt;p&gt;Geoffrey Grosenbach is going to deliver a talk about MacRuby at RubyFest on may 14th! He&amp;rsquo;ll be joining us over a live video feed. Afterward Geoffrey will be available for a short Q&amp;amp;A session.&lt;/p&gt;</description></item><item><title>Available for iPhone Development</title><link>https://www.devroom.io/2009/04/28/available-for-iphone-development/</link><pubDate>Tue, 28 Apr 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/04/28/available-for-iphone-development/</guid><description>&lt;p&gt;Just to put it out there: I&amp;rsquo;m available for iPhone development (preferably in the Netherlands).&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re interested in having an iPhone app developed, feel free to &lt;a href="https://www.devroom.io/contact"&gt;contact me&lt;/a&gt; to discuss your options.&lt;/p&gt;</description></item><item><title>Compacting a SQLite3 DB file</title><link>https://www.devroom.io/2009/04/23/compacting-a-sqlite3-db-file/</link><pubDate>Thu, 23 Apr 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/04/23/compacting-a-sqlite3-db-file/</guid><description>&lt;p&gt;If you have a lot of mutations in your SQLite3 database the file size of the db file will increase a lot over time.&lt;/p&gt;
&lt;p&gt;This can be annoying, so you&amp;rsquo;ll need to clean up old indices and other cruft that&amp;rsquo;s making your db heavy.&lt;/p&gt;</description></item><item><title>How to create a DSA OpenSSL certificate</title><link>https://www.devroom.io/2009/04/19/how-to-create-a-dsa-openssl-certificate/</link><pubDate>Sun, 19 Apr 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/04/19/how-to-create-a-dsa-openssl-certificate/</guid><description>&lt;p&gt;I just needed an OpenSSL DSA public key. This is not really difficult, you just need to know the right commands. On my Mac I ran the following commands to obtain both private &lt;code&gt;dsa_priv.pem&lt;/code&gt; and public &lt;code&gt;dsa_pub.pem&lt;/code&gt; keys.&lt;/p&gt;</description></item><item><title>MacBook Pro: Black Screen of Death (or is it just faking?)</title><link>https://www.devroom.io/2009/04/05/macbook-pro-black-screen-of-death-or-is-it-just-faking/</link><pubDate>Sun, 05 Apr 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/04/05/macbook-pro-black-screen-of-death-or-is-it-just-faking/</guid><description>&lt;p&gt;&lt;em&gt;Disclaimer: If you are reading this, chances are there is a hardware problem with your Mac. In my case it was a faulty logic board, which had to be replaced.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>May 14th: RubyFest!</title><link>https://www.devroom.io/2009/03/31/may-14th-rubyfest/</link><pubDate>Tue, 31 Mar 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/03/31/may-14th-rubyfest/</guid><description>&lt;p&gt;Well, the time has come to announce &lt;a href="http://rubyfest.nl"&gt;RubyFest&lt;/a&gt;! RubyFest is an official meetup of Ruby developers and enthusiast which will be held on May 14th in Eindhoven, the Netherlands.&lt;/p&gt;
&lt;p&gt;Besides organising RubyFest, I&amp;rsquo;ll also be one of two speakers at RubyFest. I&amp;rsquo;ll be giving a talk about using git with your (open source) project effectively. The other speaker is yet to be announced, and we&amp;rsquo;re still accepting proposals!&lt;/p&gt;</description></item><item><title>warcraft-armory 0.1.0 Released</title><link>https://www.devroom.io/2009/02/07/warcraft-armory-010-released/</link><pubDate>Sat, 07 Feb 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/02/07/warcraft-armory-010-released/</guid><description>&lt;p&gt;Yay! &lt;a href="http://ariejan.net/tags/warcraft-armory"&gt;warcraft-armory&lt;/a&gt; version 0.1.0 has been released!&lt;/p&gt;
&lt;p&gt;The warcraft-armory gem allows your application to easily access information from the World of Warcraft Armory site.&lt;/p&gt;
&lt;p&gt;This is an early version that allows the retrieval of character information from EU and US armories. But, more is in the making!&lt;/p&gt;</description></item><item><title>Pagerank 3, 19k Hits/Month</title><link>https://www.devroom.io/2009/01/30/pagerank-3-19k-hitsmonth/</link><pubDate>Fri, 30 Jan 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/01/30/pagerank-3-19k-hitsmonth/</guid><description>&lt;p&gt;I just found out Ariejan.net has a PageRank™ of 3! If you don&amp;rsquo;t know what PageRank™ means, let Google explain:&lt;/p&gt;
&lt;blockquote&gt;PageRank relies on the uniquely democratic nature of the web by using its vast link structure as an indicator of an individual page's value. In essence, Google interprets a link from page A to page B as a vote, by page A, for page B. But, Google looks at more than the sheer volume of votes, or links a page receives; it also analyzes the page that casts the vote. Votes cast by pages that are themselves "important" weigh more heavily and help to make other pages "important". - &lt;small&gt;&lt;a href="http://en.wikipedia.org/wiki/Pagerank"&gt;source&lt;/a&gt;&lt;/small&gt;&lt;/blockquote&gt;
&lt;p&gt;To make a long story short, Ariejan.net is getting a lot of attention from around the web. Personally I think of it as a sign of appreciation for my articles. I&amp;rsquo;m also quite impressed with the number of page views my site is getting. Page views average out to 19k a month over 2008. Thanks all!&lt;/p&gt;</description></item><item><title>How To Start A Rails Edge App The Easy Way</title><link>https://www.devroom.io/2009/01/04/how-to-start-a-rails-edge-app-the-easy-way/</link><pubDate>Sun, 04 Jan 2009 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2009/01/04/how-to-start-a-rails-edge-app-the-easy-way/</guid><description>&lt;p&gt;There&amp;rsquo;s a lot of &lt;a href="http://blog.rubyonrails.com/2009/1/2/this-week-in-edge-rails"&gt;cool&lt;/a&gt; &lt;a href="http://blog.rubyonrails.com/2008/12/26/this-week-in-edge-rails"&gt;stuff&lt;/a&gt; &lt;a href="http://blog.rubyonrails.com/2008/12/23/merb-gets-merged-into-rails-3"&gt;pooring in&lt;/a&gt; about what&amp;rsquo;s new in Rails Edge (which will become Rails 2.3 and/or Rails 3).&lt;/p&gt;
&lt;p&gt;Most likely you can&amp;rsquo;t wait to get started with these new features, especially when you&amp;rsquo;re about to start a new project, which doesn&amp;rsquo;t have to be stable yet, but will be by the time 2.3/3.0 come out. This post shows you the way to create a new Rails app based on the most current Rails code, also called Edge Rails.&lt;/p&gt;</description></item><item><title>Twitterlicious!</title><link>https://www.devroom.io/2008/12/27/twitterlicious/</link><pubDate>Sat, 27 Dec 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/12/27/twitterlicious/</guid><description>&lt;p&gt;A bit late, but &amp;ldquo;Merry Christmas&amp;rdquo; everyone!&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m on Twitter lately, so &lt;a href="http://twitter.com/ariejan"&gt;feel free to check and follow&lt;/a&gt;. It&amp;rsquo;s a also a nice way to keep up-to-date about new articles on Ariejan.net.&lt;/p&gt;</description></item><item><title>Google FriendConnect now on Ariejan.net</title><link>https://www.devroom.io/2008/12/03/google-friendconnect-now-on-ariejannet/</link><pubDate>Wed, 03 Dec 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/12/03/google-friendconnect-now-on-ariejannet/</guid><description>&lt;p&gt;Well, I just got invited for &lt;a href="http://www.google.com/friendconnect"&gt;Google FriendConnect&lt;/a&gt;! Let me tell you a bit about FriendConnect.&lt;/p&gt;
&lt;p&gt;With FriendConnect you can easily join Ariejan.net. See of it as a pool of Ariejan.net visitors or fans if you like.&lt;/p&gt;</description></item><item><title>Export CSV directly from MySQL</title><link>https://www.devroom.io/2008/11/27/export-csv-directly-from-mysql/</link><pubDate>Thu, 27 Nov 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/11/27/export-csv-directly-from-mysql/</guid><description>&lt;p&gt;How ofter were you asked by a client for a CSV (or excel) file with data from their app? I get asked that question quite often, so I wanted make the process as easy as possible. And guess what? You can create CSV files directly from MySQL with just one query!&lt;/p&gt;</description></item><item><title>SQL: Ordering with NULL values</title><link>https://www.devroom.io/2008/11/14/sql-ordering-with-null-values/</link><pubDate>Fri, 14 Nov 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/11/14/sql-ordering-with-null-values/</guid><description>&lt;p&gt;First seen at &lt;a href="http://blog.kabisa.nl"&gt;Kabisa Blog&lt;/a&gt;: &lt;a href="http://blog.kabisa.nl/2008/11/14/sql-ordering-with-null-values/"&gt;SQL: Ordering with NULL values&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This post tells you how to sort &lt;code&gt;NULL&lt;/code&gt; values in a column to the bottom and sort the remaining non-&lt;code&gt;NULL&lt;/code&gt; values.&lt;/p&gt;
&lt;p&gt;This is really great in combination with LEFT JOIN queries that may yield NULL values.&lt;/p&gt;</description></item><item><title>RSpec'ing with Time.now</title><link>https://www.devroom.io/2008/11/05/rspecing-with-timenow/</link><pubDate>Wed, 05 Nov 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/11/05/rspecing-with-timenow/</guid><description>&lt;p&gt;I&amp;rsquo;m currently writing some RSpec tests that use Time.now.&lt;/p&gt;
&lt;p&gt;I want my model to calculate a duration and store the future time in the database. I&amp;rsquo;ve already specced the calculation of the duration, but I also want to spec that everything gets saved correctly. Here&amp;rsquo;s my first spec:&lt;/p&gt;</description></item><item><title>BaseApp: a quick start for your Rails App</title><link>https://www.devroom.io/2008/09/28/baseapp-a-quick-start-for-your-rails-app/</link><pubDate>Sun, 28 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/28/baseapp-a-quick-start-for-your-rails-app/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;BaseApp is no longer maintained. There is a very good alternative called &lt;a href="http://github.com/fudgestudios/bort"&gt;bort&lt;/a&gt;&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;For the impatient: &lt;a href="http://github.com/ariejan/baseapp"&gt;http://github.com/ariejan/baseapp&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Got issues? Feature requests or patches? &lt;a href="http://baseapp.lighthouseapp.com/"&gt;http://baseapp.lighthouseapp.com/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Every Rails developer has at least once developed an application that needed user authentication and some basic UI features like tabs and a sidebar. Ask yourself now: &amp;ldquo;how often have you installed and extended the restful_authentication plugin?&amp;rdquo;.&lt;/p&gt;</description></item><item><title>JRuby with Thomas Enebo</title><link>https://www.devroom.io/2008/09/03/jruby-with-thomas-enebo/</link><pubDate>Wed, 03 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/03/jruby-with-thomas-enebo/</guid><description>&lt;p&gt;This morning I attended another JRuby talk, this time with Thomas Enebo. It turned out to be, almost default, Sun JRuby talk.&lt;/p&gt;
&lt;p&gt;There was one interesting difference, though. Normally we are shown how to run Ruby on Java and how to use Java components in our Ruby apps. Thomas took JMonkeyEngine (a java 3d scenegraph/game engine) and showed that he coded a simple game in Ruby, steering clear of the rather complex Java code.&lt;/p&gt;</description></item><item><title>Panel Discussion with DHH and Rails Core Members</title><link>https://www.devroom.io/2008/09/03/panel-discussion-with-dhh-and-rails-core-members/</link><pubDate>Wed, 03 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/03/panel-discussion-with-dhh-and-rails-core-members/</guid><description>&lt;p&gt;Yesterday evening we attended a panel discussion with DHH and Rails Core Members Jeremy Kemper and Michael Koziarski.&lt;/p&gt;
&lt;p&gt;DHH elaborated on default choices (like database, templating system and test suite) after being asked if Rails would switch over to RSpec instead of TestUnit. The answer was that Rails offers several defaults, which should suffice for new and basic users, who don&amp;rsquo;t know about all options and just want to get started. More experienced users will generate a taste for different components and Rails should provide for easy integration of these components if needed.&lt;/p&gt;</description></item><item><title>JRuby with Nick Sieger</title><link>https://www.devroom.io/2008/09/02/jruby-with-nick-sieger/</link><pubDate>Tue, 02 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/02/jruby-with-nick-sieger/</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/arun-gupta/2820263933/"&gt;




 
 
 



 
 
 &lt;img
 src="http://farm4.static.flickr.com/3136/2820263933_df70723a01_m.jpg"
 alt="Welcome to RailsConf"
 loading="lazy"
 decoding="async"
 class="full-width"
 /&gt;
 

&lt;/a&gt;A tutorial on JRuby with Nick Sieger holding your hand is just great. This guy knows JRuby inside-out and he has an answer to even the most difficult of questions.&lt;/p&gt;</description></item><item><title>RailsConfEurope: The first tutorial</title><link>https://www.devroom.io/2008/09/02/railsconfeurope-the-first-tutorial/</link><pubDate>Tue, 02 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/02/railsconfeurope-the-first-tutorial/</guid><description>&lt;p&gt;Today, RailsConfEurope 2008 started! Well, at least if you signed up for Tutorial Day.&lt;/p&gt;
&lt;p&gt;The first tutorial I&amp;rsquo;m attending is about Hacking Rails Internals. At first I thought about this as a great way to enhance my own apps and be able to easily integrate other apps like Radiant or Mephisto. However, the more I saw of the demo (it really is more a demo than a tutorial really), the more I disliked hacking Rails Internals.&lt;/p&gt;</description></item><item><title>Leaving for RailsConf Europe 2008</title><link>https://www.devroom.io/2008/09/01/leaving-for-railsconf-europe-2008/</link><pubDate>Mon, 01 Sep 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/09/01/leaving-for-railsconf-europe-2008/</guid><description>&lt;p&gt;Today a delegation of &lt;a href="http://kabisa.nl"&gt;Kabisa&lt;/a&gt; is leaving for &lt;a href="http://www.railsconfeurope.com"&gt;RailsConf Europe 2008&lt;/a&gt;! We&amp;rsquo;re going by train this year and we hope to arrive this afternoon around 5.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll keep regular updates here on Ariejan.net about RailsConf and all the things I&amp;rsquo;ve seen and done.&lt;/p&gt;</description></item><item><title>ActiveRecord Read Only Model</title><link>https://www.devroom.io/2008/08/17/activerecord-read-only-models/</link><pubDate>Sun, 17 Aug 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/08/17/activerecord-read-only-models/</guid><description>&lt;p&gt;ActiveRecord is great in providing CRUD for your data models. In some cases, however, it&amp;rsquo;s necessary to prevent write access to these models. The data may be provided by an external source and should only be used as a reference in your application, for example.&lt;/p&gt;</description></item><item><title>Skinny Controllers and Overweight Models</title><link>https://www.devroom.io/2008/08/17/skinny-controllers-and-overweight-models/</link><pubDate>Sun, 17 Aug 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/08/17/skinny-controllers-and-overweight-models/</guid><description>&lt;p&gt;All Rails developers know the slogan &amp;ldquo;Skinny Controllers, Fat Models&amp;rdquo; and I heartily agree with it. Every conference you go to, you hear it. But there&amp;rsquo;s a problem! My Fat models got overweight!&lt;/p&gt;</description></item><item><title>Useless Ruby Gems for your pleasure</title><link>https://www.devroom.io/2008/08/14/useless-ruby-gems-for-your-pleasure/</link><pubDate>Thu, 14 Aug 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/08/14/useless-ruby-gems-for-your-pleasure/</guid><description>&lt;p&gt;The past few days I&amp;rsquo;v taken some time to find out how to create a Ruby Gem. This has been on my to-do list for quite a while, but now I&amp;rsquo;m able to tick it off.&lt;/p&gt;</description></item><item><title>Ruby on Rails: UUID as your ActiveRecord primary key</title><link>https://www.devroom.io/2008/08/12/ruby-on-rails-uuid-as-your-activerecord-primary-key/</link><pubDate>Tue, 12 Aug 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/08/12/ruby-on-rails-uuid-as-your-activerecord-primary-key/</guid><description>&lt;p&gt;Sometimes, using the good old &amp;lsquo;auto increment&amp;rsquo; from your database just isn&amp;rsquo;t good enough. If you really require that all your objects have unique ID, even across systems and different databases there&amp;rsquo;s only one way go: UUID or Universally Unique IDentifier.&lt;/p&gt;</description></item><item><title>Ariejan.net Link Party 07/21/2008</title><link>https://www.devroom.io/2008/07/21/ariejannet-link-party-07212008/</link><pubDate>Mon, 21 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/21/ariejannet-link-party-07212008/</guid><description>&lt;ul class='diigo-linkroll'&gt;&lt;li&gt;&lt;p class='diigo-link'&gt;&lt;a href="http://www.igvita.com/2007/06/05/creating-javascript-widgets-in-rails"&gt;Creating JavaScript widgets in Rails - igvita.com&lt;/a&gt;&lt;/p&gt;&lt;p class='diigo-description'&gt;How to offer your users a way to 'widgetize' their content and use it elsewhere as well. &lt;/p&gt;&lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/rails'&gt;rails&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/ruby'&gt;ruby&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/ror'&gt;ror&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/widget'&gt;widget&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/widgets'&gt;widgets&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;&lt;li&gt;&lt;p class='diigo-link'&gt;&lt;a href="http://www.brusheezy.com"&gt;Free Photoshop Brushes at Brusheezy!&lt;/a&gt;&lt;/p&gt;&lt;p class='diigo-description'&gt;A great resource for (photoshop) brushes.&lt;/p&gt;</description></item><item><title>Ariejan.net Link Party 07/17/2008</title><link>https://www.devroom.io/2008/07/17/ariejannet-link-party-07172008/</link><pubDate>Thu, 17 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/17/ariejannet-link-party-07172008/</guid><description>&lt;ul class='diigo-linkroll'&gt;&lt;li&gt;&lt;p class='diigo-link'&gt;&lt;a href="http://code.google.com/p/gearsonrails"&gt;gearsonrails - Google Code&lt;/a&gt;&lt;/p&gt;&lt;p class='diigo-description'&gt;Gears on Rails helps developers to write fully offline functional web applications based on Gears without learning a bit of Gears.&lt;/p&gt;&lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/gearsonrails'&gt;gearsonrails&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/ruby'&gt;ruby&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/rails'&gt;rails&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/ror'&gt;ror&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;&lt;li&gt;&lt;p class='diigo-link'&gt;&lt;a href="http://rubypond.com/articles/2008/07/16/sexy-forms-in-rails"&gt;Sexy Forms in Rails&lt;/a&gt;&lt;/p&gt;&lt;p class='diigo-description'&gt;Easily create very sexy form in Rails with minimum effort. &lt;/p&gt;</description></item><item><title>Photography Heaven</title><link>https://www.devroom.io/2008/07/11/photography-heaven/</link><pubDate>Fri, 11 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/11/photography-heaven/</guid><description>&lt;p&gt;






 
 
 &lt;a href="http://farm3.static.flickr.com/2194/2541506824_21b5755d65_m.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Photography Heaven"&gt;
 &lt;img
 src="http://farm3.static.flickr.com/2194/2541506824_21b5755d65_m.jpg"
 alt="Photography Heaven"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

For those who didn&amp;rsquo;t know yet, I&amp;rsquo;m on &lt;a href="http://flickr.com/photos/ariejan"&gt;Flickr&lt;/a&gt; - and I just reorganized my entire photo collection.&lt;/p&gt;
&lt;p&gt;Back in the day when I signed up with Flickr, my idea was to store all my photo&amp;rsquo;s there and be done with it. Now, I realize that I only want to upload the good stuff, and keep the rest for myself.&lt;/p&gt;</description></item><item><title>Ariejan.net Link Party 07/10/2008</title><link>https://www.devroom.io/2008/07/10/ariejannet-link-party-07102008/</link><pubDate>Thu, 10 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/10/ariejannet-link-party-07102008/</guid><description>&lt;ul class='diigo-linkroll'&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://newteevee.com/2008/07/09/the-pirate-bay-wants-to-encrypt-the-entire-internet"&gt;The Pirate Bay Wants to Encrypt the Entire Internet « NewTeeVee&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/pirate%20bay'&gt;pirate bay&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/privacy'&gt;privacy&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/encryption'&gt;encryption&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/internets'&gt;internets&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://antifavicon.com"&gt;Favicon Generator&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-description'&gt;Create a favicon based on text and colours selected by you. Very nice.&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/favicon'&gt;favicon&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/design'&gt;design&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/generator'&gt;generator&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/web'&gt;web&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/webdesign'&gt;webdesign&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/icons'&gt;icons&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/tool'&gt;tool&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/graphics'&gt;graphics&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://www.spheredev.org/wiki/Git_for_the_lazy"&gt;Git for the lazy - Spheriki&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/spheriki'&gt;spheriki&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/git'&gt;git&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/usage'&gt;usage&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/tutorial'&gt;tutorial&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/tricks'&gt;tricks&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/tips'&gt;tips&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://digital-photography-school.com/blog/10-ways-to-take-stunning-portraits"&gt;10 Ways to Take Stunning Portraits&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to digg-proof your WordPress blog</title><link>https://www.devroom.io/2008/07/09/how-to-digg-proof-your-wordpress-blog/</link><pubDate>Wed, 09 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/09/how-to-digg-proof-your-wordpress-blog/</guid><description>&lt;p&gt;Every blogger hopes to be able to say some day to his friends: &amp;ldquo;I got Dugg!&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;It means you&amp;rsquo;ve written something special that a lot of other people are interested in and it gives you a big ego boost. But there won&amp;rsquo;t be much to enjoy when your server can&amp;rsquo;t handle the extra work.&lt;/p&gt;
&lt;p&gt;In this post I&amp;rsquo;ll try to explain some measures you can take to be ready for when &amp;ldquo;The Big Digg&amp;rdquo; arrives at your blog&amp;rsquo;s door step. I&amp;rsquo;ll focus on WordPress in particular here, because that&amp;rsquo;s what I&amp;rsquo;m using. However, the concepts I&amp;rsquo;ll show you can be applied to any web site.&lt;/p&gt;
&lt;p&gt;There are a few things you can do to survive when you get Dugg. The key to my tips here is that you can implement them at (almost) no cost in advance of getting dugg.&lt;/p&gt;</description></item><item><title>Ariejan.net Link Party 07/08/2008</title><link>https://www.devroom.io/2008/07/08/ariejannet-link-party-07082008/</link><pubDate>Tue, 08 Jul 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/07/08/ariejannet-link-party-07082008/</guid><description>&lt;ul class='diigo-linkroll'&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://wiki.wegame.com/StarCraft_2_Gameplay"&gt;StarCraft 2 Gameplay&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/starcraft'&gt;starcraft&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/blizzard'&gt;blizzard&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/gaming'&gt;gaming&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://sixrevisions.com/resources/cheat_sheets_web_developer"&gt;Cheat Sheets for Front-end Web Developers&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/frontend'&gt;frontend&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/cheat'&gt;cheat&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/cheatsheet'&gt;cheatsheet&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/html'&gt;html&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/css'&gt;css&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://vandelaydesign.com/blog/design/photoshop-lighting-effects"&gt;40 Photoshop Tutorials for Lighting and Abstract Effects | Vandelay Website Design&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/vandelay'&gt;vandelay&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/photoshop'&gt;photoshop&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/tutorials'&gt;tutorials&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/effects'&gt;effects&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://www.rubyinside.com/trollop-command-line-option-parser-for-ruby-944.html"&gt;Trollop: Simple Yet Powerful Command Line Option Processor&lt;/a&gt;&lt;/p&gt;
 &lt;p class='diigo-tags'&gt;tags: &lt;a href='http://www.diigo.com/user/ariejan/trollop'&gt;trollop&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/ruby'&gt;ruby&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/cli'&gt;cli&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/option%20processor'&gt;option processor&lt;/a&gt;, &lt;a href='http://www.diigo.com/user/ariejan/share'&gt;share&lt;/a&gt;&lt;/p&gt;
 &lt;li&gt;
 &lt;p class='diigo-link'&gt;&lt;a href="http://typetester.maratz.com"&gt;Typetester – Compare fonts for the screen&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Zoek jij 'n uitdagende baan??</title><link>https://www.devroom.io/2008/06/06/zoek-jij-n-uitdagende-baan/</link><pubDate>Fri, 06 Jun 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/06/06/zoek-jij-n-uitdagende-baan/</guid><description>&lt;p&gt;&lt;em&gt;First off, sorry to all the English-reading people, but this post is intended for my Dutch audience.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Even wat updates voor mijn Nederlandstalige publiek. Ik heb wat nieuwtjes voor jullie, dus lees snel verder!&lt;/p&gt;</description></item><item><title>The best IT books hand-picked for you!</title><link>https://www.devroom.io/2008/05/30/the-best-it-books-hand-picked-for-you/</link><pubDate>Fri, 30 May 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/05/30/the-best-it-books-hand-picked-for-you/</guid><description>&lt;p&gt;Are you ready to dive into Rails? Want to familiarize yourself with the deeper dungeons of Ruby? Are you an aspiring game developer? Or maybe you just want to learn how to use Git or Subversion effectively?&lt;/p&gt;</description></item><item><title>The migration that cannot be undone: Irreversible Migration</title><link>https://www.devroom.io/2008/05/06/the-migration-that-cannot-be-undone-irreversible-migration/</link><pubDate>Tue, 06 May 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/05/06/the-migration-that-cannot-be-undone-irreversible-migration/</guid><description>&lt;p&gt;Migrations have up and down methods, as we all know. But in some cases, your up method does things you can&amp;rsquo;t undo in your down method.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nc"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;up&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Change the zipcode from the current :integer to a :string type.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;change_column&lt;/span&gt; &lt;span class="ss"&gt;:address&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:zipcode&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, converting integers to strings will always work. But, you feel it coming, converting a string into an integer will not always be possible. In other words, we can&amp;rsquo;t reverse this migration.&lt;/p&gt;</description></item><item><title>How to: Compile packages on Debian/Ubuntu by hand</title><link>https://www.devroom.io/2008/05/04/how-to-compile-packages-on-debianubuntu-by-hand/</link><pubDate>Sun, 04 May 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/05/04/how-to-compile-packages-on-debianubuntu-by-hand/</guid><description>&lt;p&gt;In some very rare situations you may find yourself in the need to recompile a Debian (or Ubuntu) package. Luckily for all of use, the great Debian packaging system makes this a piece of cake.&lt;/p&gt;</description></item><item><title>GIT: Using the stash</title><link>https://www.devroom.io/2008/04/23/git-using-the-stash/</link><pubDate>Wed, 23 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/23/git-using-the-stash/</guid><description>&lt;p&gt;I bet the following has happened to you: you are happily working on a project
and are in the middle of something. You are not ready to commit your changes,
because you your tests don&amp;rsquo;t pass yet. Then your client calls with a bug report
that needs to be fixed &lt;strong&gt;right now&lt;/strong&gt;. (You know how clients can
be.)&lt;/p&gt;</description></item><item><title>Permanently redirect WordPress pages</title><link>https://www.devroom.io/2008/04/15/permanently-redirect-wordpress-pages/</link><pubDate>Tue, 15 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/15/permanently-redirect-wordpress-pages/</guid><description>&lt;p&gt;After my trip to Mephisto some time back, I noticed that some pages were accessible from different URLs. After moving back to WordPress, these permalinks no longer work.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m running WordPress with Apache2, so it shouldn&amp;rsquo;t be too hard redirect those old permalinks to their new locations. (That&amp;rsquo;s what rewriting is all about anyway).&lt;/p&gt;</description></item><item><title>Debian Etch: RMagick LoadError</title><link>https://www.devroom.io/2008/04/10/debian-etch-rmagick-loaderror/</link><pubDate>Thu, 10 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/10/debian-etch-rmagick-loaderror/</guid><description>&lt;p&gt;If you&amp;rsquo;re on Debian Etch, you may encounter the following error&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;libMagickWand.so.1: cannot open shared object file: No such file or directory - /usr/lib/ruby/gems/1.8/gems/rmagick-2.3.0/lib/RMagick2.so
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This basically means that the libMagickWand.so.1 file cannot be found. However, it is available on your system. All you need to do to fix it, is tell your box to look in the right place for the file.&lt;/p&gt;</description></item><item><title>Enabling Trac Email notifications</title><link>https://www.devroom.io/2008/04/09/enabling-trac-email-notifications/</link><pubDate>Wed, 09 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/09/enabling-trac-email-notifications/</guid><description>&lt;p&gt;If you&amp;rsquo;ve ever reported a but to Ruby on Rails, you&amp;rsquo;ll have noticed that their Trac has nice email notification feature. And I bet you want that in your Trac as well!&lt;/p&gt;</description></item><item><title>Here we go again: WordPress 2.5</title><link>https://www.devroom.io/2008/04/09/here-we-go-again-wordpress-25/</link><pubDate>Wed, 09 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/09/here-we-go-again-wordpress-25/</guid><description>&lt;p&gt;Okay, here we go then. I&amp;rsquo;ve managed to drop &lt;a href="http://mephistoblog.com/"&gt;Mephisto&lt;/a&gt; after only a few weeks of service.&lt;/p&gt;
&lt;p&gt;As a Rails developer, I liked the idea of running my own blog on something Rails. However, &lt;a href="http://mephistoblog.com/"&gt;Mephisto&lt;/a&gt; was a big disappointment. Especially compared to &lt;a href="http://wordpress.org/"&gt;WordPress 2.5&lt;/a&gt;. Mephisto has been on life support for quite a while now, and it&amp;rsquo;s just too complex to be easy to hack. Now, don&amp;rsquo;t get me wrong. I love hacking Ruby, but not too much on my blog. It &amp;ldquo;should just work&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Rails Snippet: Caching expensive calls</title><link>https://www.devroom.io/2008/04/09/rails-snippet-caching-expensive-calls/</link><pubDate>Wed, 09 Apr 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/04/09/rails-snippet-caching-expensive-calls/</guid><description>&lt;p&gt;In Rails, from time to time, you may encounter you have a method you call several times, but which returns always the same result. For example, have the following:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ruby" data-lang="ruby"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="no"&gt;ActiveRecord&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Base&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;has_many&lt;/span&gt; &lt;span class="ss"&gt;:articles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_approved_articles&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;articles&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:all&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:conditions&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;:approved&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="ss"&gt;:order&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;approved_on DESC&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A query is fired every time you call Person#get_approved_articles. To cache the result of the query during this request, just add a bit of magic&lt;/p&gt;</description></item><item><title>Ruby on Rails plugin: Throttler</title><link>https://www.devroom.io/2008/02/07/ruby-on-rails-plugin-throttler/</link><pubDate>Thu, 07 Feb 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/02/07/ruby-on-rails-plugin-throttler/</guid><description>&lt;p&gt;For those of you who have missed it: I&amp;rsquo;ve released a plugin yesterday that allows you to throttle your Rails app.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kabisa.nl/2008/02/05/rails-plugin-throttler/"&gt;Read the original announcement and installation/usage instructions&lt;/a&gt;
&lt;a href="http://blog.kabisa.nl/2008/02/07/how-to-put-the-throttler-plugin-to-work/"&gt;Read how you can put Throttler to good use in your app&lt;/a&gt;&lt;/p&gt;</description></item><item><title>The Presidents of the United States of America Live</title><link>https://www.devroom.io/2008/01/25/the-presidents-of-the-united-states-of-america-live/</link><pubDate>Fri, 25 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/25/the-presidents-of-the-united-states-of-america-live/</guid><description>&lt;p&gt;






 
 
 &lt;a href="http://ariejan.net/wp-content/uploads/2008/01/top_photo_placeholder_400x106shkl.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: PUSA (C) Presidentsrock.com"&gt;
 &lt;img
 src="http://ariejan.net/wp-content/uploads/2008/01/top_photo_placeholder_400x106shkl.jpg"
 alt="PUSA (C) Presidentsrock.com"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

&lt;/p&gt;
&lt;p&gt;Yeah! I got myself some tickets to &lt;a href="http://presidentsrock.com/"&gt;The Presidents of the United States of America&lt;/a&gt;, live at Effenaar, Eindhoven.&lt;/p&gt;
&lt;p&gt;To be honest with you, I&amp;rsquo;ve never been to a real concert before, so this is going to be &lt;em&gt;very&lt;/em&gt; much fun for me! Among the few albums I bought back in the year 1995 was PUSA.&lt;/p&gt;</description></item><item><title>Your help is needed! - Railsjobs.nl</title><link>https://www.devroom.io/2008/01/22/your-help-is-needed-railsjobsnl/</link><pubDate>Tue, 22 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/22/your-help-is-needed-railsjobsnl/</guid><description>&lt;p&gt;Since I started Railsjobs.nl some time ago, I&amp;rsquo;d like to ask you a simple question. Thanks for putting in your $0.02 :)&lt;/p&gt;
&lt;div&gt;{democracy:2}&lt;/div&gt;</description></item><item><title>Roles: Admins pretending to be users!</title><link>https://www.devroom.io/2008/01/19/roles-admins-pretending-to-be-users/</link><pubDate>Sat, 19 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/19/roles-admins-pretending-to-be-users/</guid><description>&lt;p&gt;Most applications have some sort of role system. You have administrators, who can do basically everything, semi-administrators and &amp;ldquo;regular Joe&amp;rdquo; users.&lt;/p&gt;
&lt;p&gt;Now, sometimes you want, as an administrator, be able to login as a user to solve some problem, or manage settings for a user, or whatever.&lt;/p&gt;</description></item><item><title>Attack of the Killer Bunnies</title><link>https://www.devroom.io/2008/01/15/attack-of-the-killer-bunnies/</link><pubDate>Tue, 15 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/15/attack-of-the-killer-bunnies/</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/photos/ariejan/2193127815/"&gt;




 
 
 



 
 
 &lt;img
 src="http://farm3.static.flickr.com/2211/2193127815_ae6c310c72.jpg"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width"
 /&gt;
 

&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Well, here they go then! Just swooping in, eating all the green stuff from your garden!! Someone stop them!&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;This was taken in the back-yard at Laura&amp;rsquo;s parents house. The neighbours have about a dozen rabbits, but they are allowed to walk around as they wish, occasionally finding their way into other people&amp;rsquo;s gardens.&lt;/p&gt;</description></item><item><title>Kabisa Blog</title><link>https://www.devroom.io/2008/01/13/kabisa-blog/</link><pubDate>Sun, 13 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/13/kabisa-blog/</guid><description>&lt;p&gt;Well, we&amp;rsquo;ve got our &lt;a href="http://blog.kabisa.nl"&gt;blog&lt;/a&gt; up and running at Kabisa now! Our entire team will be posting interesting Ruby, Rails, Java and Subversion articles that may be of very good use to you.&lt;/p&gt;</description></item><item><title>Review: Parking London</title><link>https://www.devroom.io/2008/01/03/review-parking-london/</link><pubDate>Thu, 03 Jan 2008 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2008/01/03/review-parking-london/</guid><description>&lt;p&gt;&lt;em&gt;This is a paid review&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been asked to review a service named &lt;a href="http://www.parklet.co.uk/parking/London/129.aspx" target="_blank"&gt;Parking London&lt;/a&gt;. What this service does is two things, really. Firstly, it allows owners of garages and parking spaces in London to offer their spots to others. A location can be specified, with a small description. Of course, the price for the monthly tenancy or sale is added.&lt;/p&gt;</description></item><item><title>Write a DVD-Video from the Linux console</title><link>https://www.devroom.io/2007/12/31/write-a-dvd-video-from-the-linux-console/</link><pubDate>Mon, 31 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/31/write-a-dvd-video-from-the-linux-console/</guid><description>&lt;p&gt;This is probably my last post for this year, and it&amp;rsquo;s not about Ruby on Rails! Or web development! It&amp;rsquo;s about how to burn a DVD-Video from the Linux console.&lt;/p&gt;</description></item><item><title>For You: Merry Christmas and a Happy 2008!!!</title><link>https://www.devroom.io/2007/12/20/for-you-merry-christmas-and-a-happy-2008/</link><pubDate>Thu, 20 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/20/for-you-merry-christmas-and-a-happy-2008/</guid><description>&lt;p&gt;






 
 
 &lt;a href="http://ariejan.net/wp-content/uploads/2007/12/el_kaart_500x324shkl.jpg" class="glightbox" data-gallery="gallery" data-glightbox="title: Merry Christmas - Happy 2008!!!’"&gt;
 &lt;img
 src="http://ariejan.net/wp-content/uploads/2007/12/el_kaart_500x324shkl.jpg"
 alt="Merry Christmas - Happy 2008!!!’"
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

&lt;/p&gt;
&lt;p&gt;We (Laura and I) wish you a very merry Christmas and a happy 2008!&lt;/p&gt;
&lt;p&gt;I hope to welcome you back on Ariejan.net in 2008. Happy Holidays!&lt;/p&gt;</description></item><item><title>How to install MySQL on Ubuntu/Debian</title><link>https://www.devroom.io/2007/12/12/how-to-install-mysql-on-ubuntudebian/</link><pubDate>Wed, 12 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/12/how-to-install-mysql-on-ubuntudebian/</guid><description>&lt;p&gt;It may seem easy for some, but for others, installing MySQL on Ubuntu or Debian Linux is not an easy task. This article explains to you how to install the MySQL Server and Client packages on a Ubuntu/Debian system.&lt;/p&gt;</description></item><item><title>Run Internet Explorer 5, 5.5, 6 and 7 natively on Mac OS X Leopard or Tiger</title><link>https://www.devroom.io/2007/12/12/run-internet-explorer-5-55-6-and-7-natively-on-mac-os-x-leopard-or-tiger/</link><pubDate>Wed, 12 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/12/run-internet-explorer-5-55-6-and-7-natively-on-mac-os-x-leopard-or-tiger/</guid><description>&lt;p&gt;As a web developer, you probably know all about browsers. They suck. Well, some more than others. But, if you develop apps for Windows users, you&amp;rsquo;ll have to test your app with Internet Explorer.&lt;/p&gt;</description></item><item><title>Wil jij mijn collega zijn? - Kabisa is hiring!</title><link>https://www.devroom.io/2007/12/07/wil-jij-mijn-collega-zijn-kabisa-is-hiring/</link><pubDate>Fri, 07 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/07/wil-jij-mijn-collega-zijn-kabisa-is-hiring/</guid><description>&lt;p&gt;&lt;a href="http://jobs.kabisa.nl"&gt;




 
 
 



 
 
 &lt;img
 src="http://ariejan.net/wp-content/uploads/2007/12/ken_jij_een_ict_er_website.gif"
 alt="Ken jij een ICT’er?"
 loading="lazy"
 decoding="async"
 class="full-width"
 /&gt;
 

&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Zoals je waarschijnlijk al wel weet, werk ik al een tijdje bij &lt;a href="http://kabisa.nl"&gt;Kabisa&lt;/a&gt;, en ik ben op zoek naar nieuwe collega&amp;rsquo;s!&lt;/p&gt;
&lt;p&gt;Ben jij een een ICT&amp;rsquo;er (liefst met Java of Ruby ervaring, maar dat is niet vereist), laat dan even je gegevens achter op &lt;a href="http://jobs.kabisa.nl"&gt;jobs.kabisa.nl&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Rails: calculated column caching</title><link>https://www.devroom.io/2007/12/06/rails-calculated-column-caching/</link><pubDate>Thu, 06 Dec 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/12/06/rails-calculated-column-caching/</guid><description>&lt;p&gt;Sometimes you&amp;rsquo;re working on a Rails project and you think: &amp;ldquo;hey! This should be easy!&amp;rdquo;. Well, most of the time it is. I&amp;rsquo;m working on a project that allows people to rate objects (what they really are doesn&amp;rsquo;t matter at all).&lt;/p&gt;</description></item><item><title>MySQL: (Re)set the auto-increment value of a table</title><link>https://www.devroom.io/2007/11/30/mysql-reset-the-auto-increment-value-of-a-table/</link><pubDate>Fri, 30 Nov 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/11/30/mysql-reset-the-auto-increment-value-of-a-table/</guid><description>&lt;p&gt;Sometimes it&amp;rsquo;s necessary to set the starting point of a MySQL auto-increment value.&lt;/p&gt;
&lt;p&gt;Normally, MySQL starts auto-incrementing at 1. But let&amp;rsquo;s say you want to start at 10.000, because you want at least a five figure number. You can use the following query to set the MySQL auto-index:&lt;/p&gt;</description></item><item><title>RailsJobs.nl - Ruby on Rails Jobs in The Netherlands</title><link>https://www.devroom.io/2007/11/27/railsjobsnl-ruby-on-rails-jobs-in-the-netherlands/</link><pubDate>Tue, 27 Nov 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/11/27/railsjobsnl-ruby-on-rails-jobs-in-the-netherlands/</guid><description>&lt;p&gt;The time is now ripe to announce &lt;a href="http://railsjobs.nl"&gt;RailsJobs.nl&lt;/a&gt; - A shiny new jobboard for Ruby on Rails developers who are seeking a job in the Netherlands or Belgium. I started the site a few days ago and business and job seekers have started to find RailsJobs.nl.&lt;/p&gt;</description></item><item><title>Bash it! - Number of messages in Postfix queue</title><link>https://www.devroom.io/2007/11/15/bash-it-number-of-messages-in-postfix-queue/</link><pubDate>Thu, 15 Nov 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/11/15/bash-it-number-of-messages-in-postfix-queue/</guid><description>&lt;p&gt;Got bash? Here&amp;rsquo;s a nice snippet that will return the number of messages currently in the postfix queue.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;postqueue -p &lt;span class="p"&gt;|&lt;/span&gt; tail -n &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; cut -d&lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; -f5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Feel free to post any updates or improvements.&lt;/p&gt;</description></item><item><title>Party time!</title><link>https://www.devroom.io/2007/10/17/party-time/</link><pubDate>Wed, 17 Oct 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/10/17/party-time/</guid><description>&lt;p&gt;It&amp;rsquo;s that time of the year again&amp;hellip; my birthday. I&amp;rsquo;m turning 27 today and I&amp;rsquo;ll be celebrating this today with friends and family.&lt;/p&gt;
&lt;p&gt;As to let you know what I&amp;rsquo;ve been up to the past few weeks: &lt;a href="http://flickr.com/photos/ariejan"&gt;Flickr Phototset&lt;/a&gt;, &lt;a href="http://filmbase.org"&gt;FilmBASE&lt;/a&gt;, &lt;a href="http://www.linkedin.com/in/ariejan"&gt;Linked-in&lt;/a&gt; and some &amp;ldquo;classified&amp;rdquo; stuff I can&amp;rsquo;t link to.&lt;/p&gt;</description></item><item><title>Google increases storage!</title><link>https://www.devroom.io/2007/10/08/google-increases-storage/</link><pubDate>Mon, 08 Oct 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/10/08/google-increases-storage/</guid><description>&lt;p&gt;Google today increased the storage available to &lt;a href="http://www.google.com/a/"&gt;Google App&lt;/a&gt; users.&lt;/p&gt;
&lt;p&gt;Before free app users (like me) has 2Gb available, and premium users could store up to 10Gb of mail and documents.&lt;/p&gt;</description></item><item><title>Flash not clearing after a request?</title><link>https://www.devroom.io/2007/09/26/flash-not-clearing-after-a-request/</link><pubDate>Wed, 26 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/26/flash-not-clearing-after-a-request/</guid><description>&lt;p&gt;We all know &amp;ldquo;The Flash&amp;rdquo; to be a very useful tool in almost every application we write. What does &amp;ldquo;The Flash&amp;rdquo; actually do?&lt;/p&gt;
&lt;blockquote&gt; The flash provides a way to pass temporary objects between actions. Anything you place in the flash will be exposed to the very next action and then cleared out.&lt;/blockquote&gt;
Well, that's all nice, but what if you notice that your flash is not cleared, and is shown in one or more subsequent requests as well?</description></item><item><title>The Glorious Canon EOS 400D Digital</title><link>https://www.devroom.io/2007/09/25/the-glorious-canon-eos-400d-digital/</link><pubDate>Tue, 25 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/25/the-glorious-canon-eos-400d-digital/</guid><description>&lt;p&gt;Well, I finally made the big leap into (semi-)professional photography. I bought a Canon EOS 400D Digital SLR Camera. (That&amp;rsquo;s the XTi Rebel for you American folk) This nifty machine allows me to take very beautiful pictures, and I already had a little practice yesterday.&lt;/p&gt;</description></item><item><title>Wordpress 2.3 released!</title><link>https://www.devroom.io/2007/09/25/wordpress-23-released/</link><pubDate>Tue, 25 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/25/wordpress-23-released/</guid><description>&lt;p&gt;Today Wordpress 2.3 was released (see the &lt;a href="http://codex.wordpress.org/Version_2.3"&gt;release notes&lt;/a&gt;). I&amp;rsquo;ve already updated Ariejan.net, of course, and I&amp;rsquo;m now able to use all of the following neat new features:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Tagging (you can convert your categories to tags if you like)&lt;/li&gt;
	&lt;li&gt;Update Notifications when new versions of your plugins or WordPress are released&lt;/li&gt;
	&lt;li&gt;Improved post and draft management&lt;/li&gt;
	&lt;li&gt;Mark articles as 'pending review'&lt;/li&gt;
	&lt;li&gt;A new and improved visual editor (which doesn't suck! Wow!)&lt;/li&gt;
&lt;/ul&gt;
I highly recommend you check out the the current WordPress release from SVN. This will make future updates very easy. Read more on that &lt;a href="http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion#Tracking_Stable_Versions"&gt;here&lt;/a&gt;.
&lt;p&gt;So, go ahead, grab that new WordPress!&lt;/p&gt;</description></item><item><title>Rails 2.0 New Features</title><link>https://www.devroom.io/2007/09/24/rails-20-new-features/</link><pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/24/rails-20-new-features/</guid><description>&lt;p&gt;As &lt;a href="http://www.loudthinking.com"&gt;David Heinemeier Hansson&lt;/a&gt; already told us all during his RailsConfEurope 2007 keynote, it&amp;rsquo;s time to take off the party hats. It&amp;rsquo;s no longer at time to celebrate all the new stuff we get. It&amp;rsquo;s time to celebrate what we have already.&lt;/p&gt;</description></item><item><title>Whooop - here it is! The new Ariejan.net!</title><link>https://www.devroom.io/2007/09/24/whooop-here-it-is-the-new-ariejannet/</link><pubDate>Mon, 24 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/24/whooop-here-it-is-the-new-ariejannet/</guid><description>&lt;p&gt;Wow! Here it is then! The fully restyled, revamped and repimped Ariejan.net! (I hope you like it). So, &amp;ldquo;what&amp;rsquo;s changed?&amp;rdquo;, you may ask.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I've upgraded to &lt;a href="http://www.wordpress.org"&gt;WordPress 2.3&lt;/a&gt;, which has very sexy tagging support.&lt;/li&gt;
	&lt;li&gt;A new template with a bit more of my personal taste included (blue!)&lt;/li&gt;
	&lt;li&gt;A major division of articles: &lt;a href="http://beta.ariejan.net/category/blog/"&gt;Blog posts&lt;/a&gt; (which are regular messages from me to the world) and &lt;a href="http://beta.ariejan.net/category/features/"&gt;featured articles&lt;/a&gt; (which are the good stuff you come for). &lt;/li&gt;
	&lt;li&gt;I've finally written the &lt;a href="https://www.devroom.io/about"&gt;about page&lt;/a&gt; (although a photo is still missing)&lt;/li&gt;
	&lt;li&gt;I've got &lt;a href="http://flickr.com"&gt;Flickr&lt;/a&gt; support lined up - ready to go when I can afford myself a &lt;a href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&amp;fcategoryid=139&amp;modelid=14256"&gt;Canon 400D SLR Camera&lt;/a&gt; (or Rebel XTi for you American folk). (&lt;a href='http://www.pledgie.com/campaigns/337' target='new'&gt;help me out?&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My goal is to publish a bit more on the advanced Rails topics I encounter these days at work. Also, I&amp;rsquo;m still working on my Subversion Kickstart e-book, which will be published before the end of this year. (Thanks to &lt;a href="http://joshblair.blogspot.com/"&gt;Josh Blair&lt;/a&gt; for pointing out I was still working on it.)&lt;/p&gt;</description></item><item><title>RailsConf Europe 2007!</title><link>https://www.devroom.io/2007/09/17/railsconf-europe-2007/</link><pubDate>Mon, 17 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/17/railsconf-europe-2007/</guid><description>&lt;p&gt;Well, after a long trip, I arrived at my hotel yesterday in Berlin. Today I, and my mates from &lt;a href="http://www.kabisa.nl"&gt;Kabisa&lt;/a&gt;, have joined RailsConf Europe 2007. I don&amp;rsquo;t think I&amp;rsquo;ll be giving a full, in-detail report of everything that happens, but I will let you know anything worth your (and my) time.&lt;/p&gt;</description></item><item><title>10 reasons why Microsoft's 10 reasons not to use Google Apps suck</title><link>https://www.devroom.io/2007/09/11/10-reasons-why-microsofts-10-reasons-not-to-use-google-apps-suck/</link><pubDate>Tue, 11 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/11/10-reasons-why-microsofts-10-reasons-not-to-use-google-apps-suck/</guid><description>&lt;p&gt;You may have already read the &lt;a href="http://www.readwriteweb.com/archives/microsoft_10_reasons_against_google_apps.php"&gt;10 reasons why Microsoft thinks the enterprise should not use Google Apps&lt;/a&gt;. Well, here&amp;rsquo;s my response:&lt;/p&gt;</description></item><item><title>Content_for, yield and making sure something gets displayed</title><link>https://www.devroom.io/2007/09/01/content_for-yield-and-making-sure-something-gets-displayed/</link><pubDate>Sat, 01 Sep 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/09/01/content_for-yield-and-making-sure-something-gets-displayed/</guid><description>&lt;p&gt;You may have heard of a very nice Rails technique that used content_for and yield to stuff custom blocks of content into a layout. For example, in a view you could add a block like this:&lt;/p&gt;</description></item><item><title>Blueprint 0.5 Rails Plugin released</title><link>https://www.devroom.io/2007/08/31/blueprint-05-rails-plugin-released/</link><pubDate>Fri, 31 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/31/blueprint-05-rails-plugin-released/</guid><description>&lt;p&gt;A few days ago &lt;a href="http://code.google.com/p/blueprintcss/"&gt;BlueprintCSS 0.5&lt;/a&gt; was released (&lt;a href="http://bjorkoy.com/past/2007/8/28/blueprint_05_the_experiment/"&gt;read the Olav&amp;rsquo;s posts here&lt;/a&gt;). I&amp;rsquo;ve updated the plugin accordingly. The most important change is the use of 24 (!) instead of 14 columns.&lt;/p&gt;</description></item><item><title>BlueprintCSS Rails Generator</title><link>https://www.devroom.io/2007/08/27/blueprintcss-rails-generator/</link><pubDate>Mon, 27 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/27/blueprintcss-rails-generator/</guid><description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;This plugin is no longer available.&lt;/strong&gt; Blueprint nowadays ships with a very good &amp;lsquo;compress&amp;rsquo; script that allows you to generate all kinds of nice BluePrint layouts. Having a plugin to just copy some files seems a bit excessive. &lt;/em&gt;&lt;/p&gt;</description></item><item><title>Super Simple Authentication Plugin and Generator</title><link>https://www.devroom.io/2007/08/24/super-simple-authentication-plugin-and-generator/</link><pubDate>Fri, 24 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/24/super-simple-authentication-plugin-and-generator/</guid><description>&lt;p&gt;I hereby proudly announce my &lt;em&gt;Super Simple Authentication&lt;/em&gt; plugin and generator.&lt;/p&gt;
&lt;p&gt;All right, what does it do? Sometimes you need to protect your actions and controllers, but you don&amp;rsquo;t want to go about installing restful_authentication or anything like that. Adding a simple password for certain actions would suffice. So, I wrote a little plugin that can generate some code for you that allows you to easily protect your app with a simple password.&lt;/p&gt;</description></item><item><title>Using Iconv to convert UTF-8 to ASCII (on Linux)</title><link>https://www.devroom.io/2007/08/21/using-iconv-to-convert-utf-8-to-ascii-on-linux/</link><pubDate>Tue, 21 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/21/using-iconv-to-convert-utf-8-to-ascii-on-linux/</guid><description>&lt;p&gt;There are situations where you want to remove all the UTF-8 goodness from a string
(mostly because of legacy systems you&amp;rsquo;re working with). Now, this is rather easy to do.
I&amp;rsquo;ll give you an example: &lt;code&gt;çéß&lt;/code&gt;&lt;/p&gt;</description></item><item><title>I’m back in business!</title><link>https://www.devroom.io/2007/08/20/im-back-in-business/</link><pubDate>Mon, 20 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/20/im-back-in-business/</guid><description>&lt;p&gt;Ariejan.net is (almost) back in business. With some minor cosmetic improvements to the theme, I&amp;rsquo;m ready for today.&lt;/p&gt;
&lt;p&gt;Tomorrow I will reorganise my tags/categories a bit and add some new fancy plugins that will help searching visitors a hand in finding what they need. (More about that later, I promise).&lt;/p&gt;</description></item><item><title>Kabisa, RailsConf Europe and Ariejan.net</title><link>https://www.devroom.io/2007/08/20/kabisa-railsconf-europe-and-ariejannet/</link><pubDate>Mon, 20 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/20/kabisa-railsconf-europe-and-ariejannet/</guid><description>&lt;p&gt;Hello there! Just a quick post to let you know I&amp;rsquo;m still alive and kicking! Two weeks ago I started my job at &lt;a href="http://www.kabisa.nl"&gt;Kabisa&lt;/a&gt; and I&amp;rsquo;ve been very busy with that. I really like working at Kabisa and we have some great things planned for the near future. (We&amp;rsquo;re currently working on a few client projects that need our attention.)&lt;/p&gt;</description></item><item><title>I’m Back!</title><link>https://www.devroom.io/2007/08/01/im-back/</link><pubDate>Wed, 01 Aug 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/08/01/im-back/</guid><description>&lt;p&gt;All right, I&amp;rsquo;m back!&lt;/p&gt;
&lt;p&gt;Yes, my holiday was nice. Thanks for asking. Now, I&amp;rsquo;ve been looking at the poll in my previous post and I&amp;rsquo;ve made up my mind.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I&amp;rsquo;m going to look into writing a blogging system in Ruby on Rails. I don&amp;rsquo;t want to copy typo or Mephisto or anything, but just put my own thoughts together, add a bit of spice you guys (and girls?) have to offer and release it some time.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Just to be clear (and prevent myself from getting a lot of mail about this): I&amp;rsquo;m going to see if I can make time to work on a project like this. That&amp;rsquo;s all. If I can, I&amp;rsquo;ll let you know. If I can&amp;rsquo;t.. well too bad, I guess :)&lt;/p&gt;</description></item><item><title>Ariejan.net - What’s next?</title><link>https://www.devroom.io/2007/07/16/ariejannet-whats-next/</link><pubDate>Mon, 16 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/16/ariejannet-whats-next/</guid><description>&lt;p&gt;&lt;strong&gt;&lt;a href="#whatsnext"&gt;Vote now! What&amp;rsquo;s Next for Ariejan.net? Your opinion counts!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After a few days (or were it weeks?) of silence, an update on Ariejan.net. What&amp;rsquo;s been happening?&lt;/p&gt;
&lt;p&gt;First of all, I &lt;a href="http://ariejan.net/2007/06/19/geslaagd-passed-my-final-exams/"&gt;recently graduated&lt;/a&gt; and am now officially a Bachelor of ICT. Since my current employer didn&amp;rsquo;t have the same views regarding my future as I did, I decided to go &amp;ldquo;shopping&amp;rdquo; for a new job.&lt;/p&gt;
&lt;p&gt;I found that new job with a small business named &lt;a href="http://www.kabisa.nl"&gt;Kabisa ICT&lt;/a&gt;. The people at Kabisa and I found common ground very quickly with Ruby on Rails and Agile Development. This, to my surprise, resulted in a job offer very quickly&amp;hellip; and I accepted.&lt;/p&gt;
&lt;p&gt;The next two weeks I&amp;rsquo;ve got a holiday planned to the French Alps with Laura. We hope to get some rest there while enjoying the beautiful scenery.&lt;/p&gt;
&lt;p&gt;When I get back from France, I start my new job at Kabisa. I hope to learn a lot of new stuff while working there. Hopefully I&amp;rsquo;ll be able to share that experience with your here, at Ariejan.net, which leads me to the following question.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&amp;rsquo;s Next?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s next for Ariejan.net? Since all the Web 2.0 buzz is all about communities and all that, I want your opinion on what to do with Ariejan.net.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Please vote in the poll below and let me know what your thoughts are. When I get back from my (well earned) vacation, I&amp;rsquo;ll check back here and see what you, my guests, really want.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;You have the option of adding new stuff. Use it wisely, please!&lt;/em&gt;
&lt;a title="whatsnext" name="whatsnext"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;{democracy:1}&lt;/div&gt;</description></item><item><title>Clear DNS Cache on your router</title><link>https://www.devroom.io/2007/07/07/clear-dns-cache-on-your-router/</link><pubDate>Sat, 07 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/07/clear-dns-cache-on-your-router/</guid><description>&lt;p&gt;I currently have a Linksys router at home that has the &lt;a href="http://www.dd-wrt.com/dd-wrtv2/index.php"&gt;DD-WRT Firmware&lt;/a&gt; on it. I&amp;rsquo;ve been using it for quite some time now, and I&amp;rsquo;m very happy with it.&lt;/p&gt;
&lt;p&gt;In my previous post I mentioned there was some trouble with DNS for Ariejan.net. I&amp;rsquo;ve changed nameservers and there&amp;rsquo;s always something that goes wrong.&lt;/p&gt;
&lt;p&gt;Anyway, my router runs DNSMasq, a caching nameserver for my local network. (What this does is, it stores DNS queries and when the same request is made later on, the response is already here (on my network), and my ISP&amp;rsquo;s nameservers don&amp;rsquo;t have to be queried. This makes for a great speed optimalization!)&lt;/p&gt;
&lt;p&gt;The problem was, that my router was caching parts from the old and parts from the new nameservers for Ariejan.net. I could have waited 24-48 hours to let DNSMasq figure it all out by itself, but I&amp;rsquo;m not that patient. What I needed to was reset the cache DNSMasq had built.&lt;/p&gt;</description></item><item><title>How to write a Rails Plugin (for controllers)</title><link>https://www.devroom.io/2007/07/06/how-to-write-a-rails-plugin-for-controllers/</link><pubDate>Fri, 06 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/06/how-to-write-a-rails-plugin-for-controllers/</guid><description>&lt;p&gt;A few days back I posted my very first Rails plugin, &lt;a href="http://ariejan.net/2007/07/03/rails-plugin-acts-as-exportable/"&gt;Acts As Exportable&lt;/a&gt;. Although writing a plugin is rather easy, you must know a few tricks on how to get things going.&lt;/p&gt;</description></item><item><title>Some DNS problems with Ariejan.net</title><link>https://www.devroom.io/2007/07/06/some-dns-problems-with-ariejannet/</link><pubDate>Fri, 06 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/06/some-dns-problems-with-ariejannet/</guid><description>&lt;p&gt;This is just a quick note to let you know there are currently some issues with DNS for Ariejan.net. This basically means that Trac and SVN are currently not available. I&amp;rsquo;ve made the appropriate changes and things should be working again in a few hours.&lt;/p&gt;</description></item><item><title>How to resolve Subversion Conflicts</title><link>https://www.devroom.io/2007/07/04/how-to-resolve-subversion-conflicts/</link><pubDate>Wed, 04 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/04/how-to-resolve-subversion-conflicts/</guid><description>&lt;p&gt;If there&amp;rsquo;s more than one person working on a project, chances are (although slim) that at some point two developers work on the same piece of code and check it in. To clarify, let me give you an example.&lt;/p&gt;</description></item><item><title>Got updates?</title><link>https://www.devroom.io/2007/07/03/got-updates/</link><pubDate>Tue, 03 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/03/got-updates/</guid><description>&lt;p&gt;Do you want to stay up-to-date about what&amp;rsquo;s happening at Ariejan.net? That&amp;rsquo;s real easy!&lt;/p&gt;
&lt;p&gt;You can subscribe to my &lt;a href="http://feeds.feedburner.com/Ariejan"&gt;RSS Feed&lt;/a&gt; and receive updates as they happen in your favourite RSS reader.&lt;/p&gt;</description></item><item><title>How to create and apply a patch with Subversion</title><link>https://www.devroom.io/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/</link><pubDate>Tue, 03 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/</guid><description>&lt;p&gt;It&amp;rsquo;s been a while since I posted something new on the use of Subversion. I&amp;rsquo;ve been working with the tool a lot, and I&amp;rsquo;ve found that patches are a great way to communicate code changes.&lt;/p&gt;</description></item><item><title>How to force data to be downloaded as a file from your Rails app</title><link>https://www.devroom.io/2007/07/02/how-to-force-data-to-be-downloaded-as-a-file-from-your-rails-app/</link><pubDate>Mon, 02 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/02/how-to-force-data-to-be-downloaded-as-a-file-from-your-rails-app/</guid><description>&lt;p&gt;In the essence of every application is data. One way or another your application manages data and at some point, you need to get that data out. Either you want to synchronize the data with another application or device. Or you want to move your data to another system all together. Either way, you&amp;rsquo;ll need to gather your data and send it from your application to the client&amp;hellip; as a file.&lt;/p&gt;</description></item><item><title>ActiveScaffold + acts_as_taggable + Auto Complete</title><link>https://www.devroom.io/2007/07/01/activescaffold-acts_as_taggable-auto-complete/</link><pubDate>Sun, 01 Jul 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/07/01/activescaffold-acts_as_taggable-auto-complete/</guid><description>&lt;p&gt;I&amp;rsquo;ve talked before on how to use &lt;a href="http://ariejan.net/2007/06/11/activescaffold-acts_as_taggable_on_steroids/"&gt;ActiveScaffold with acts_as_taggable_on_steroids&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The problem with that solution was that, although the checkboxes for every tag are very nice, you couldn&amp;rsquo;t easily add new tags. For some people, this may be fine, for others, it is not.&lt;/p&gt;</description></item><item><title>AJAX Rules! 80 JavaScript Solutions for professional coding</title><link>https://www.devroom.io/2007/06/21/ajax-rules-80-javascript-solutions-for-professional-coding/</link><pubDate>Thu, 21 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/21/ajax-rules-80-javascript-solutions-for-professional-coding/</guid><description>&lt;p&gt;Smashing Magazine has put together a very comprehensive list of &lt;a href="http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding/"&gt;80 AJAX JavaScript solutions for professional coding&lt;/a&gt;. How great is that?!&lt;/p&gt;
&lt;p&gt;The list includes solutions for auto-completion, inline editing, menus, tabs, calendars, all sorts of interactive stuff and tables, charts, graphs, forms, grids, lightboxes, galleries, showcases, visual effects and also, some basic JavaScripts that everybody should know about.&lt;/p&gt;</description></item><item><title>Action Mailer: All mail comes from MAILER DAEMON</title><link>https://www.devroom.io/2007/06/20/action-mailer-all-mail-comes-from-mailer-daemon/</link><pubDate>Wed, 20 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/20/action-mailer-all-mail-comes-from-mailer-daemon/</guid><description>&lt;p&gt;Today I was trying to send mail from my Rails application through Action Mailer. This is quite simple, but I
wanted to use a custom from-address. So, I create a setup_email method in my UserNotifier class that sets
some defaults for every email sent out:&lt;/p&gt;</description></item><item><title>Rails production server setup and deployment on Ubuntu/Debian</title><link>https://www.devroom.io/2007/06/20/rails-production-server-setup-and-deployment-on-ubuntudebian/</link><pubDate>Wed, 20 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/20/rails-production-server-setup-and-deployment-on-ubuntudebian/</guid><description>&lt;p&gt;&lt;em&gt;Please digg this story to spread the word! Thanks!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Okay, this is a big one! This article will show you (and explain to you) how to setup a Ruby on Rails production server with Ubuntu 7.04 or Debian 4.0 and how to deploy your Rails application there.&lt;/p&gt;</description></item><item><title>Geslaagd! / Passed my final exams!</title><link>https://www.devroom.io/2007/06/19/geslaagd-passed-my-final-exams/</link><pubDate>Tue, 19 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/19/geslaagd-passed-my-final-exams/</guid><description>&lt;p&gt;&lt;em&gt;Please scroll down for the English version.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bij wijze van hoge uitzondering, een post in het Nederlands op mijn weblog! Ik ben vandaag geslaagd voor mijn opleiding Hogere Informatica (aan Fontys Hogeschool ICT, Eindhoven) en mag mezelf nu gediplomeerd Software Engineer noemen!&lt;/p&gt;</description></item><item><title>Buy it now! Mac OS X 10.5 Leopard</title><link>https://www.devroom.io/2007/06/14/buy-it-now-mac-os-x-105-leopard/</link><pubDate>Thu, 14 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/14/buy-it-now-mac-os-x-105-leopard/</guid><description>&lt;p&gt;It appears that Amazon is accepting pre-orders for &lt;a href="http://www.amazon.com/gp/product/B000FK88JK?ie=UTF8&amp;tag=ariejannet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000FK88JK"&gt;Apple Mac OS X Version 10.5 Leopard&lt;/a&gt;






 
 
 &lt;a href="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000FK88JK" class="glightbox" data-gallery="gallery" data-glightbox="title: "&gt;
 &lt;img
 src="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000FK88JK"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

, which is scheduled for release in October 2007.&lt;/p&gt;
&lt;p&gt;There are, as usual two version available, &lt;a href="http://www.amazon.com/gp/product/B000FK88JK?ie=UTF8&amp;tag=ariejannet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000FK88JK"&gt;Apple Mac OS X Version 10.5 Leopard&lt;/a&gt;






 
 
 &lt;a href="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000FK88JK" class="glightbox" data-gallery="gallery" data-glightbox="title: "&gt;
 &lt;img
 src="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000FK88JK"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

 at $129 for a single license and the &lt;a href="http://www.amazon.com/gp/product/B000BR0NPO?ie=UTF8&amp;tag=ariejannet-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B000BR0NPO"&gt;Apple Mac OS X Version 10.5 Leopard Family Pack&lt;/a&gt;






 
 
 &lt;a href="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000BR0NPO" class="glightbox" data-gallery="gallery" data-glightbox="title: "&gt;
 &lt;img
 src="http://www.assoc-amazon.com/e/ir?t=ariejannet-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B000BR0NPO"
 alt=""
 loading="lazy"
 decoding="async"
 class="full-width lightbox-image"
 /&gt;
 &lt;/a&gt;
 

 for $199, which includes licenses for up to five Macs in your home.&lt;/p&gt;</description></item><item><title>BASH your SVN and Trac installation!</title><link>https://www.devroom.io/2007/06/12/bash-your-svn-and-trac-installation/</link><pubDate>Tue, 12 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/12/bash-your-svn-and-trac-installation/</guid><description>&lt;p&gt;I&amp;rsquo;ve already discussed how to install &lt;a href="http://ariejan.net/?s=subversion"&gt;Subversion&lt;/a&gt; and &lt;a href="http://ariejan.net/?s=trac"&gt;Trac&lt;/a&gt; on your &lt;a href="http://ariejan.net/?s=ubuntu"&gt;Ubuntu server&lt;/a&gt;. In my case I have a server that manages different SVN and Trac installations for a group of developers.&lt;/p&gt;
&lt;p&gt;Creating a new SVN repository and Trac installation every time is quite boring and &lt;em&gt;&amp;ldquo;if you need to do it more than once, you should automate it&amp;rdquo;&lt;/em&gt;. So, that&amp;rsquo;s what I did.&lt;/p&gt;</description></item><item><title>ActiveScaffold, Acts_as_taggable_on_steroids</title><link>https://www.devroom.io/2007/06/11/activescaffold-acts_as_taggable_on_steroids/</link><pubDate>Mon, 11 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/11/activescaffold-acts_as_taggable_on_steroids/</guid><description>&lt;p&gt;&lt;em&gt;Update: also read &lt;a href="http://ariejan.net/2007/07/01/activescaffold-acts_as_taggable-auto-complete/"&gt;Active Scaffold + Acts_as_taggable + Auto Completion&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is kind of an advanced topic, but I think it may be useful to a lot of people.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.activescaffold.com/"&gt;ActiveScaffold&lt;/a&gt; is a great plugin to start building a user interface. The great thing about AS is, that is automatically recognizes associated models. When editing a model, you can easily add or select another model that you want to associate with is.&lt;/p&gt;</description></item><item><title>Find and Replace with a MySQL Query</title><link>https://www.devroom.io/2007/06/10/find-and-replace-with-a-mysql-query/</link><pubDate>Sun, 10 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/10/find-and-replace-with-a-mysql-query/</guid><description>&lt;p&gt;There are times when you have a lot of data in a database (let&amp;rsquo;s say wp_posts for a Wordpress blog like Ariejan.net). When you need to find and replace certain strings, this can be a very tedious task. Find all posts containing the &amp;ldquo;needle&amp;rdquo; string and manually replace all these occurrences with &amp;ldquo;chocolate&amp;rdquo;. With about 200 posts, you can imagine how long this would take to do manually.&lt;/p&gt;</description></item><item><title>Send mail with a BASH Shell Script</title><link>https://www.devroom.io/2007/06/10/send-mail-with-a-bash-shell-script/</link><pubDate>Sun, 10 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/10/send-mail-with-a-bash-shell-script/</guid><description>&lt;p&gt;Like any good programmer, I try to automate the crap out of everything. If you have to do it more than once, I try to write a script for it.&lt;/p&gt;</description></item><item><title>Ultimate List of Ruby Resources</title><link>https://www.devroom.io/2007/06/10/ultimate-list-of-ruby-resources/</link><pubDate>Sun, 10 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/10/ultimate-list-of-ruby-resources/</guid><description>&lt;p&gt;This is the first post, named &amp;ldquo;Ruby&amp;rdquo;, in a series of &amp;ldquo;Ultimate List of &amp;hellip; Resources&amp;rdquo;. I&amp;rsquo;m going to compose several lists for different topics I encounter during my development work. To start, I begin with Ruby. Later, I will add &amp;ldquo;Ultimate Lists&amp;rdquo; about Ruby on Rails, Subversion, AJAX and some other topics.&lt;/p&gt;
&lt;p&gt;Feel free to &lt;a href="https://www.devroom.io/contact"&gt;let me know&lt;/a&gt; if I missed an important resource. I&amp;rsquo;m also open to suggestions about other &amp;ldquo;Ultimate Lists&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;For now, you&amp;rsquo;ll have to settle for the &amp;ldquo;Ultimate List of Ruby Resources&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Coming up: Ubuntu Development Server Guide</title><link>https://www.devroom.io/2007/06/07/coming-up-ubuntu-development-server-guide/</link><pubDate>Thu, 07 Jun 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/06/07/coming-up-ubuntu-development-server-guide/</guid><description>&lt;p&gt;My articles about setting up a Ubuntu Development Server (&lt;a href="http://ariejan.net/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/"&gt;part 1&lt;/a&gt; and part 2) have been very successful.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m considering writing a new guide with more up-to-date information on how to setup a development server that allows you (and your team) to develop software, manage source code, track tickets and all that stuff.&lt;/p&gt;</description></item><item><title>Trac, WebAdmin plugin and global configuration</title><link>https://www.devroom.io/2007/05/30/trac-webadmin-plugin-and-global-configuration/</link><pubDate>Wed, 30 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/30/trac-webadmin-plugin-and-global-configuration/</guid><description>&lt;p&gt;As you may know I manage quite a few &lt;a href="http://trac.edgewall.org/"&gt;trac&lt;/a&gt; installations. A few days ago I upgrade my server from Ubuntu &amp;ldquo;Dapper Drake&amp;rdquo; 6.06 to Ubuntu &amp;ldquo;Feisty Fawn&amp;rdquo; 7.04. This also upgrade trac 0.9.x to 0.10.3.&lt;/p&gt;
&lt;p&gt;I was happy, since trac 0.10.3 has many improvements over 0.9.x, but there was one thing I was not so happy about. After the upgrade, I upgraded all my trac installations and everything seemed to be okay, except for the &lt;a href="http://trac.edgewall.org/wiki/WebAdmin"&gt;WebAdmin plugin&lt;/a&gt;. Apparently it was not installed anymore.&lt;/p&gt;
&lt;p&gt;What happened? After upgrading the trac package, the plugins directory was emptied. Well, just re-install the WebAdmin plugin for 0.10.x.&lt;/p&gt;</description></item><item><title>Installing RMagick Ruby Gem on Mac OS X 10.4.9</title><link>https://www.devroom.io/2007/05/29/installing-rmagick-ruby-gem-on-mac-os-x-1049/</link><pubDate>Tue, 29 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/29/installing-rmagick-ruby-gem-on-mac-os-x-1049/</guid><description>&lt;p&gt;When you want to manipulate images with Ruby (or your Rails application) you&amp;rsquo;ll probably want RMagick installed. This is no easy feat on Mac OS X.&lt;/p&gt;
&lt;p&gt;The official guide suggests installing X11 and using darwinports to install everything. This guide shows you how to easily install RMagick on you Mac OS X system. In this case I use Mac OS X 10.4.9.&lt;/p&gt;</description></item><item><title>Slow connections with ProFTPD</title><link>https://www.devroom.io/2007/05/29/slow-connections-with-proftpd/</link><pubDate>Tue, 29 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/29/slow-connections-with-proftpd/</guid><description>&lt;p&gt;My shiny new VPS, which is running Ubuntu Linux, uses ProFTPD for FTP access. Today I noticed that setting up the connection takes about 5 to 10 seconds. This is really annoying when editing files through FTP.&lt;/p&gt;</description></item><item><title>BAT - TER - Y</title><link>https://www.devroom.io/2007/05/28/bat-ter-y/</link><pubDate>Mon, 28 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/28/bat-ter-y/</guid><description>&lt;p&gt;You all know the word: &lt;em&gt;&amp;ldquo;Battery&amp;rdquo;&lt;/em&gt;. Like most words, it has several meanings. This site greatly explains the meaning of the word battery, and adds a little lyric-sugar to it!&lt;/p&gt;</description></item><item><title>MERGE request failed on ‘/path/to/file’</title><link>https://www.devroom.io/2007/05/21/merge-request-failed-on-pathtofile/</link><pubDate>Mon, 21 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/21/merge-request-failed-on-pathtofile/</guid><description>&lt;p&gt;After upgrading my Subversion server to Ubuntu Feisty, I noticed that when committing I got the following error:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;svn: MERGE request failed on &amp;#39;/svn/repository/trunk&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;svn: MERGE of &amp;#39;/svn/repository/trunk&amp;#39;: 200 OK (http://svn.myserver.com)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Although the messages says that the commit failed, it has not. A simple &amp;lsquo;svn update&amp;rsquo; will merge the changes you made to the repository to your working copy again and you&amp;rsquo;re good to go.&lt;/p&gt;</description></item><item><title>FeedBurner acquired by Google!</title><link>https://www.devroom.io/2007/05/18/feedburner-acquired-by-google/</link><pubDate>Fri, 18 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/18/feedburner-acquired-by-google/</guid><description>&lt;p&gt;It looks like &lt;a href="http://google.com"&gt;Google&lt;/a&gt; is about to acquire &lt;a href="http://feedburner.com"&gt;FeedBurner&lt;/a&gt;. Just a note to all of you to let you know. If you have a blog or RSS enabled website, burn your feed now and get your AdSense account ready! Soon you&amp;rsquo;ll be able to put targeted ads in your RSS feed and add another source of income to your list! Great news!&lt;/p&gt;</description></item><item><title>Rails Snippet: Write like Orwell with to_sentence</title><link>https://www.devroom.io/2007/05/09/rails-snippet-write-like-orwell-with-to_sentence/</link><pubDate>Wed, 09 May 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/05/09/rails-snippet-write-like-orwell-with-to_sentence/</guid><description>&lt;p&gt;A few weeks ago I posted &lt;a href="http://ariejan.net/2007/03/27/rails-tip-snippet-create-a-comma-seperate-list/"&gt;an article&lt;/a&gt; that explained how to create a comma separated list from a hash of objects. When I was browsing the &lt;a href="http://api.rubyonrails.com"&gt;Rails API documentation&lt;/a&gt; I came across a method named &lt;a href="http://api.rubyonrails.com/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000372"&gt;to_sentence&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Ariejan.net server move</title><link>https://www.devroom.io/2007/04/29/ariejannet-server-move/</link><pubDate>Sun, 29 Apr 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/04/29/ariejannet-server-move/</guid><description>&lt;p&gt;Just a note to let you know that Ariejan.net has just been moved to a new server! Well, I&amp;rsquo;ve moved from shared hosting with &lt;a href="http://www.delta9.nl/"&gt;Delta9 Internet&lt;/a&gt; to a VPS solution.&lt;/p&gt;
&lt;p&gt;Why on earth would I do such a thing? I&amp;rsquo;m very happy with the service I&amp;rsquo;ve recieved from Delta9 in the past. However, I wanted more control over my hosting. I&amp;rsquo;m a web developer and I have special needs. Such needs include Subversion and Ruby on Rails hosting, state-of-the art PHP and MySQL installations. PostgreSQL support and some other things. Concluding that for Ariejan.net, shared hosting was no longer an option.&lt;/p&gt;</description></item><item><title>Rails, Resources and Permalinks</title><link>https://www.devroom.io/2007/04/12/rails-resources-and-permalinks/</link><pubDate>Thu, 12 Apr 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/04/12/rails-resources-and-permalinks/</guid><description>&lt;p&gt;There has been quite a bit of discussion about creating permalinks with a rails resource. In this article I will show you how to create permalinks for a resource named &amp;lsquo;pages&amp;rsquo; without giving up on any of the resource goodness!&lt;/p&gt;</description></item><item><title>TipSnippet: Create a RSS feed</title><link>https://www.devroom.io/2007/04/03/tipsnippet-create-a-rss-feed/</link><pubDate>Tue, 03 Apr 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/04/03/tipsnippet-create-a-rss-feed/</guid><description>&lt;p&gt;RSS is hot! So, you want to fit your new Rails app with one too! That&amp;rsquo;s easy, of course, but you just need to know what to do.&lt;/p&gt;
&lt;p&gt;This snippet will show you how to create an RSS feed form your RESTful articles. I&amp;rsquo;ll assume you know how to generate a resource named &amp;lsquo;article&amp;rsquo; with a title, body and the default created_at and updated_at attributes.&lt;/p&gt;</description></item><item><title>What do you want for AutoFlickr?</title><link>https://www.devroom.io/2007/04/02/what-do-you-want-for-autoflickr/</link><pubDate>Mon, 02 Apr 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/04/02/what-do-you-want-for-autoflickr/</guid><description>&lt;p&gt;Almost a month ago I published my &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt; plugin &lt;a href="http://ariejan.net/2007/03/07/wordpress-plugin-autoflickr-10/"&gt;AutoFlickr&lt;/a&gt;, which shows one or more related photos from the popular Flickr site in your post.&lt;/p&gt;
&lt;p&gt;Now I&amp;rsquo;m wondering what new features AutoFlickr users want. What parts of the current plugin are superfluous. Also, I&amp;rsquo;d like to know how is using AutoFlickr?&lt;/p&gt;</description></item><item><title>5 Reasons why PC OEMs should offer Linux</title><link>https://www.devroom.io/2007/03/29/5-reasons-why-pc-oems-should-offer-linux/</link><pubDate>Thu, 29 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/29/5-reasons-why-pc-oems-should-offer-linux/</guid><description>&lt;p&gt;DELL currently offers Linux as an option for certain laptop and desktop models. Talk is that this service may be expanded to all models. This is a good thing, of course. Results of a &lt;a href="http://www.dell.com/content/topics/global.aspx/ideastorm/ideasinaction?c=us&amp;l=en&amp;s=gen"&gt;recent survey by DELL&lt;/a&gt; show that more than 70% of over 100.000 respondents want to use Linux for home and office! What has been keeping companies like DELL away from this?&lt;/p&gt;</description></item><item><title>Rails Tip Snippet: Create a comma-seperate list</title><link>https://www.devroom.io/2007/03/27/rails-tip-snippet-create-a-comma-seperate-list/</link><pubDate>Tue, 27 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/27/rails-tip-snippet-create-a-comma-seperate-list/</guid><description>&lt;p&gt;Do you have the need to create a list of roles a certain user belongs to? Enumerate the users attached to a company? All you want is a simple list with the names seperated by commas.&lt;/p&gt;</description></item><item><title>Subversion: How to revert to a previous revision</title><link>https://www.devroom.io/2007/03/27/subversion-how-to-revert-to-a-previous-revision/</link><pubDate>Tue, 27 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/27/subversion-how-to-revert-to-a-previous-revision/</guid><description>&lt;p&gt;You&amp;rsquo;ve been there. You have been developing in your trunk for a while and at revision 127 you get the feeling you&amp;rsquo;ve done it all wrong! The production server is humming away at revision 123 and that&amp;rsquo;s where you want to start out again. But how can you start again from revision 123? Easy as this with Subversion:&lt;/p&gt;</description></item><item><title>Speedlinking: Top 28 startup resources</title><link>https://www.devroom.io/2007/03/25/speedlinking-top-28-startup-resources/</link><pubDate>Sun, 25 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/25/speedlinking-top-28-startup-resources/</guid><description>&lt;p&gt;I&amp;rsquo;ve been reading a lot about startups this weekend. Here is a quick post with all the articles I came across this weekend and found worth mentioning:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;a href="http://www.startupping.com/"&gt;Startupping&lt;/a&gt; &lt;strong&gt;TIP&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.paulgraham.com/start.html"&gt;How to start a startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://evhead.com/2005/11/ten-rules-for-web-startups.asp"&gt;Ten rules for web startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://money.cnn.com/magazines/business2/startups/index.html"&gt;Business 2.0: How to build a bulletproof startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://paulgraham.com/startupmistakes.html"&gt;The 18 Mistakes that kill Startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.paulgraham.com/startuplessons.html"&gt;The Hardest Lessons for Startups to Learn&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.paulgraham.com/startupfunding.html"&gt;How to fund a startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://particletree.com/features/5-reasons-to-create-your-first-startup-now/"&gt;5 Reasons to create your first startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://dottactics.blogspot.com/2006/02/9-must-reads-before-you-launch-startup.html"&gt;9 Must reads before you start a startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.avivadirectory.com/branding/?p=1"&gt;Little Known Ways to Brand on the Cheap: 99 Tips for Poor Web Startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.readwriteweb.com/archives/6_startup_lessons_2007.php"&gt;6 Startup Lessons For The Year 2007&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://philip.greenspun.com/business/startup-tips/"&gt;Tips for startup companies&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://paulgraham.com/ideas.html"&gt;Ideas for startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.scoreboard-media.com/internet-startup-traffic/"&gt;8 Simple Steps to Build Traffic For Your Internet Startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.folksonomy.org/2006/10/7_tips_for_naming_your_startup/"&gt;7 Tips for naming your Web 2.0 startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.downloadsquad.com/2006/12/01/seven-rules-for-web-2-0-startups/"&gt;7 Rules for Web 2.0 Startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://onstartups.com/home/tabid/3339/bid/193/Startup-Websites-That-Work.aspx"&gt;Startup Website That Work&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://onstartups.com/home/tabid/3339/bid/115/Hindsight-2-0-Lessons-From-A-Failed-Web-2-0-Startup.aspx"&gt;Hindsight 2.0: Lessons From A Failed Web 2.0 Startup&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.stevepavlina.com/blog/2006/04/10-stupid-mistakes-made-by-the-newly-self-employed/"&gt;10 Stupid Mistakes Made by the Newly Self-Employed&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://startupspark.com/the-5-most-common-mistakes-made-by-startups/"&gt;The 5 Most common mistakes made by startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://paulgraham.com/mit.html"&gt;A Student's guide to startups&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.thisisgoingtobebig.com/2005/08/10_steps_to_a_h.html"&gt;10 Steps to a Hugely Successful Web 2.0 Company&lt;/a&gt; &lt;strong&gt;TIP&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://onstartups.com/home/tabid/3339/bid/68/Startup-Success-The-Phenomenal-Force-Of-Focus.aspx"&gt;Startup Success: The Phenomenal Force Of Focus&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.monthlydollar.com/startup/"&gt;Web 2.0 Startup: The Business Model&lt;/a&gt; &lt;strong&gt;TIP&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://37signals.com/svn/archives2/small_biz_101_how_to_get_started.php"&gt;Small Biz 101: How to Get Started&lt;/a&gt; &lt;strong&gt;TIP&lt;/strong&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://money.cnn.com/magazines/business2/business2_archive/2006/05/01/8375910/index.htm"&gt;5 ways to start a company (without quitting your day job)&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://onstartups.com/home/tabid/3339/bid/69/Startup-Suicide-Five-Ways-To-Kill-Your-Startup-Which-Will-You-Pick.aspx"&gt;Startup Suicide: Five Ways To Kill Your Startup, Which Will You Pick?&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.miketaber.net/articles/StartupsForTheRestOfUs.aspx"&gt;Startups for the rest of us&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Got any articles that are not on the list? Please add a comment to let me know!&lt;/p&gt;</description></item><item><title>Be productive! 37 things you can do on the toilet</title><link>https://www.devroom.io/2007/03/23/be-productive-37-things-you-can-do-on-the-toilet/</link><pubDate>Fri, 23 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/23/be-productive-37-things-you-can-do-on-the-toilet/</guid><description>&lt;p&gt;We all have to go. Most of us once a day. Others have to do it more often. However, we can be much more productive while doing or daily duty at the toilet.&lt;/p&gt;
&lt;p&gt;Besides the old &amp;ldquo;joke book&amp;rdquo; and &amp;ldquo;newspaper&amp;rdquo; what can you do on the toilet to kill the time? I&amp;rsquo;ve found 37 things that might be a good option for you next number 2.&lt;/p&gt;</description></item><item><title>Rails Tip Snippet: Logging informational messages to your log</title><link>https://www.devroom.io/2007/03/22/rails-tip-snippet-logging-informational-messages-to-your-log/</link><pubDate>Thu, 22 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/22/rails-tip-snippet-logging-informational-messages-to-your-log/</guid><description>&lt;p&gt;This &amp;ldquo;Rails Tip Snippet&amp;rdquo; is one in a series of small blocks of code that will make your life developing Rails applications a bit easier.&lt;/p&gt;
&lt;p&gt;This first snippet shows you how you can log informational message to your log file so you can track any important actions that happened. As an example you may want to log all user accounts that get deleted:&lt;/p&gt;</description></item><item><title>26 Things you can do with an old PC</title><link>https://www.devroom.io/2007/03/21/26-things-you-can-do-with-an-old-pc/</link><pubDate>Wed, 21 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/21/26-things-you-can-do-with-an-old-pc/</guid><description>&lt;p&gt;We&amp;rsquo;ve all been there. Your old trusty PC dies. First thing you do is buy a new one. After you&amp;rsquo;re done playing with all the new bells and whistles your old PC didn&amp;rsquo;t have, it&amp;rsquo;s time to thing what to do with the old fella. Here are some tips!&lt;/p&gt;</description></item><item><title>8 Great ways to use Google for your start-up</title><link>https://www.devroom.io/2007/03/20/8-great-ways-to-use-google-for-your-start-up/</link><pubDate>Tue, 20 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/20/8-great-ways-to-use-google-for-your-start-up/</guid><description>&lt;p&gt;&lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; is more than a search engine or an advertising company. Of course, it&amp;rsquo;s their core business, but Google has more to offer. In this article I&amp;rsquo;ll describe how you can put Google to work for your start-up (or existing business!). Oh, did I mention you can do all of this for free?&lt;/p&gt;
&lt;p&gt;The most commonly known service Google provides besides search and advertising is &lt;a href="http://mail.google.com"&gt;Gmail&lt;/a&gt;. Nowadays Gmail is a common concept in the field of e-mail services. When the services started you got a 1Gb inbox. Today you can store up to around 2.8Gb of emails and Google Talk chat transcripts! Wouldn&amp;rsquo;t it be great to use this for you company for free?&lt;/p&gt;
&lt;p&gt;Well you can! And a lot more!&lt;/p&gt;</description></item><item><title>How I made 6 figures with Google Adsense in 10 days</title><link>https://www.devroom.io/2007/03/20/how-i-made-6-figures-with-google-adsense-in-10-days/</link><pubDate>Tue, 20 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/20/how-i-made-6-figures-with-google-adsense-in-10-days/</guid><description>&lt;p&gt;There has been a lot of talk about making money with Google Adsense. There are claims of people earning over $10.000 every month by just putting a few ads up on their site.&lt;/p&gt;</description></item><item><title>Wordpress Plugin: AutoFlickr 1.0</title><link>https://www.devroom.io/2007/03/07/wordpress-plugin-autoflickr-10/</link><pubDate>Wed, 07 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/07/wordpress-plugin-autoflickr-10/</guid><description>&lt;p&gt;This post announces my first Wordpress Plugin: AutoFlickr.&lt;/p&gt;
&lt;h3&gt;What does it do?&lt;/h3&gt;
&lt;p&gt;When enabled, AutoFlickr will automatically find and insert one ore more photos that are related to the content of your post. Photos are found and hosted on &lt;a href="http://www.flickr.com"&gt;Flickr&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Features&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;Automatically insert one or more photos&lt;/li&gt;
	&lt;li&gt;Customizable (photo size, number of photos and type of search).&lt;/li&gt;
	&lt;li&gt;Option to select what pages to automatically show photos.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Subversion Cheat Sheet Update: 1.0.1</title><link>https://www.devroom.io/2007/03/06/subversion-cheat-sheet-update-101/</link><pubDate>Tue, 06 Mar 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/03/06/subversion-cheat-sheet-update-101/</guid><description>&lt;p&gt;I&amp;rsquo;ve just uploaded version 1.0.1 of the &lt;a href="http://ariejan.net/svncheatsheet"&gt;Subversion Cheat Sheet&lt;/a&gt; to Ariejan.net.&lt;/p&gt;
&lt;p&gt;Please download this new version and get the following change:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Fixed typo. Thanks to Gregory Gerard.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Head to the &lt;a href="http://ariejan.net/svncheatsheet"&gt;Subversion Cheat Sheet&lt;/a&gt; page now and download the new version.&lt;/p&gt;</description></item><item><title>4 Unusual uses for Subversion</title><link>https://www.devroom.io/2007/02/26/4-unusual-uses-for-subversion/</link><pubDate>Mon, 26 Feb 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/02/26/4-unusual-uses-for-subversion/</guid><description>&lt;p&gt;The most common use of Subversion is to keep source code of applications versioned and secure. However, there are quite a few other options that are not so common at all.&lt;/p&gt;
&lt;p&gt;Quickly read on and find out if maybe you can put Subversion to use in quite a few ways you didn&amp;rsquo;t expect.&lt;/p&gt;</description></item><item><title>Subversion Cheat Sheet 1.0!</title><link>https://www.devroom.io/2007/02/23/subversion-cheat-sheet-10/</link><pubDate>Fri, 23 Feb 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/02/23/subversion-cheat-sheet-10/</guid><description>&lt;p&gt;I&amp;rsquo;ve noticed a huge interest in my &lt;a href="https://www.devroom.io/tags/subversion?phpMyAdmin=umjo2KeaY3NOkOP-0%2Czc9FZ9J96"&gt;Subversion articles&lt;/a&gt; lately and I thought to create a nice cheat sheet for all you.&lt;/p&gt;
&lt;p&gt;The cheat sheets includes common commands that you&amp;rsquo;ll use when using Subversion on a daily basis. I didn&amp;rsquo;t include every option or command that subversion supports, nor did I include any administration stuff. This sheet is aimed at developers who use Subversion on a daily basis.&lt;/p&gt;</description></item><item><title>Ruby: Sort an array of objects by an attribute</title><link>https://www.devroom.io/2007/01/28/ruby-sort-an-array-of-objects-by-an-attribute/</link><pubDate>Sun, 28 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/28/ruby-sort-an-array-of-objects-by-an-attribute/</guid><description>&lt;p&gt;In this example I&amp;rsquo;ll show you how easy it is to sort an array of (the same kind of) objects by an attribute. Let&amp;rsquo;s say you have an array of User objects that have the attributes &amp;rsquo;name&amp;rsquo; and &amp;rsquo;login_count&amp;rsquo;. First, find all users.&lt;/p&gt;</description></item><item><title>New in Rails: Resource Scaffold Generator</title><link>https://www.devroom.io/2007/01/23/new-in-rails-resource-scaffold-generator/</link><pubDate>Tue, 23 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/23/new-in-rails-resource-scaffold-generator/</guid><description>&lt;p&gt;Oh boy! Rails 1.2 is all about resources. A product entry in your application is not just a rendered HTML page, but it &amp;ldquo;is&amp;rdquo; data. Rails 1.2 allows you to add a .xml extension to your url to retrieve the same product information in XML format!&lt;/p&gt;
&lt;p&gt;Now, this all sounds hard. Two ways of rendering the same action depending on an extension. Generating XML code for every model in your database. No way you want to spend time developing all that stuff.&lt;/p&gt;
&lt;p&gt;Well, Rails wouldn&amp;rsquo;t be Rails if there weren&amp;rsquo;t a generator for it!&lt;/p&gt;</description></item><item><title>Rails: Nested resource scaffold</title><link>https://www.devroom.io/2007/01/23/rails-nested-resource-scaffold/</link><pubDate>Tue, 23 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/23/rails-nested-resource-scaffold/</guid><description>&lt;p&gt;In my &lt;a href="http://ariejan.net/2007/01/23/new-in-rails-resource-scaffold-generator/"&gt;previous post&lt;/a&gt; I told you about the resource scaffold. What you&amp;rsquo;ll be doing a lot is nesting these resources. Ingredients in recipes, comments on posts, options for products. You name it, you nest it!&lt;/p&gt;
&lt;p&gt;Since Rails does not automatically nest resources for you, you should do this yourself. This is, with some minor tweaks, really easy to accomplish. In this example I&amp;rsquo;ll create recipes that have multiple ingredients.&lt;/p&gt;
&lt;p&gt;I assume you have Rails 1.2.1 installed for this tutorial to work properly.&lt;/p&gt;</description></item><item><title>Updates: Wordpress 2.1, Themes and Social</title><link>https://www.devroom.io/2007/01/23/updates-wordpress-21-themes-and-social/</link><pubDate>Tue, 23 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/23/updates-wordpress-21-themes-and-social/</guid><description>&lt;p&gt;You can&amp;rsquo;t really see it, but Ariejan.net has been upgraded to &lt;a href="http://wordpress.org"&gt;Wordpress 2.1&lt;/a&gt;. I&amp;rsquo;ve been running 2.1 beta&amp;rsquo;s on a private server for some time now, so there weren&amp;rsquo;t any surprises during the upgrade.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve also updated the theme to something more stylish and sober. Google Ads are less annoying now and merge nicely with the content. I&amp;rsquo;ve also re-enabled the social bookmark links so you can quickly bookmark articles on Del.icio.us or Digg.&lt;/p&gt;
&lt;p&gt;Hope you like the new style. Some minor tweaks will be applied the following days where needed. Please let me know your thoughts on ariejan.net!&lt;/p&gt;</description></item><item><title>“Print this page” with Ruby on Rails</title><link>https://www.devroom.io/2007/01/19/print-this-page-with-ruby-on-rails/</link><pubDate>Fri, 19 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/19/print-this-page-with-ruby-on-rails/</guid><description>&lt;p&gt;You have put a lot of effort into creating a sexy overview of whatever data your application stores and allow your users to manipulate that data through AJAX controls. But, some people just want to print their data.&lt;/p&gt;
&lt;p&gt;How to go about that? Just printing the page with data is generally not a good idea because it has been optimized for display on a screen. The first step we need to take is adapting our page for printing. Stylesheets are very handy tools for this. Check the following part of the header of my layout:&lt;/p&gt;</description></item><item><title>Why Ruby Rocks - Convince your fellow developers</title><link>https://www.devroom.io/2007/01/19/why-ruby-rocks-convince-your-fellow-developers/</link><pubDate>Fri, 19 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/19/why-ruby-rocks-convince-your-fellow-developers/</guid><description>&lt;p&gt;I often hear questions from my Java and PHP oriented friends about what makes Ruby so great and easy to use. Until today I&amp;rsquo;ve shown them some of my Rails feats (AJAX Scaffold always amazes people). Now, I came across this &lt;a href="http://www.ruby-lang.org/en/documentation/quickstart/"&gt;20 minute Ruby introduction&lt;/a&gt;. Starting with the basic &amp;ldquo;Hello World&amp;rdquo; item, this article show step by step improvements to end up with blocks, objects and all that makes Ruby really worth while.&lt;/p&gt;</description></item><item><title>Rails: Group results by week (using group_by)</title><link>https://www.devroom.io/2007/01/12/rails-group-results-by-week-using-group_by/</link><pubDate>Fri, 12 Jan 2007 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2007/01/12/rails-group-results-by-week-using-group_by/</guid><description>&lt;p&gt;The Enumerable class in Rails contains a method named &amp;lsquo;group_by&amp;rsquo;. This method is pure magic for a developer&amp;rsquo;s point of view. I&amp;rsquo;ll give you a simple example that shows the power of group_by.&lt;/p&gt;</description></item><item><title>Textmate+Rails: Easy partials for better code</title><link>https://www.devroom.io/2006/12/22/textmaterails-easy-partials-for-better-code/</link><pubDate>Fri, 22 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/22/textmaterails-easy-partials-for-better-code/</guid><description>&lt;p&gt;As you may know, I use &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt; for editing Rails code.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve just been browsing the Rails bundle today and I came across some very interesting things. Today I&amp;rsquo;ll tell you about partials.&lt;/p&gt;
&lt;p&gt;Partials are ERb templates. They are mostly HTML (or RJS or XML or whatever output format you use) and include some embedded Ruby to show actual content. Partials are not linked to a method in a controller, but instead they can be easily rendered through-out your application.&lt;/p&gt;
&lt;p&gt;TextMate allows you to refactor your application to use partials with almost no effort!&lt;/p&gt;</description></item><item><title>SVN: How often should you commit?</title><link>https://www.devroom.io/2006/12/20/svn-how-often-should-you-commit/</link><pubDate>Wed, 20 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/20/svn-how-often-should-you-commit/</guid><description>&lt;p&gt;I often hear discussion about how often developers should commit their work to the central repository. Some say that you should only commit when you&amp;rsquo;re next &amp;lsquo;release&amp;rsquo; is ready. Others say that you should commit every change you make in your code. There are even people who say you should commit your changes only at the end of the day.&lt;/p&gt;
&lt;p&gt;All wrong! There is no such thing as &amp;rsquo;the way&amp;rsquo;, but there is a thing called best practice and that&amp;rsquo;s what I want to talk to you about. How often and what should you commit to your Subversion repository.&lt;/p&gt;</description></item><item><title>SVN: Merge a branch with your trunk</title><link>https://www.devroom.io/2006/12/20/svn-merge-a-branch-with-your-trunk/</link><pubDate>Wed, 20 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/20/svn-merge-a-branch-with-your-trunk/</guid><description>&lt;p&gt;When created a TRY-branch a few days back to try some fancy new AJAX technology in my application. Not problems there, so now I want to merge the code in the branch with my trunk.&lt;/p&gt;</description></item><item><title>Show the current SVN revision in your Rails app</title><link>https://www.devroom.io/2006/12/13/show-the-current-svn-revision-in-your-rails-app/</link><pubDate>Wed, 13 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/13/show-the-current-svn-revision-in-your-rails-app/</guid><description>&lt;p&gt;I&amp;rsquo;m current developing a Rails application. I deploy this application to a demonstration server using &lt;a href="http://manuals.rubyonrails.com/read/book/17"&gt;capistrano&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To streamline feedback and bug reporting I want to show the current revision number of the code that&amp;rsquo;s published on the demo server to show in the footer of every page.&lt;/p&gt;
&lt;p&gt;First I looked into Subversion keyword expansion, but this is marked as &amp;rsquo;evil&amp;rsquo; and it doesn&amp;rsquo;t meet my requirements. I want to show the latest revision number of the entire repository and not just that of the current file.&lt;/p&gt;
&lt;p&gt;Luckily for me, I use capistrano. Here&amp;rsquo;s how I fixed the problem.&lt;/p&gt;</description></item><item><title>Install ruby-mysql on Mac OS X 10.4 Tiger</title><link>https://www.devroom.io/2006/12/06/install-ruby-mysql-on-mac-os-x-104-tiger/</link><pubDate>Wed, 06 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/06/install-ruby-mysql-on-mac-os-x-104-tiger/</guid><description>&lt;p&gt;You probably know that the built-in mysql code in Rails sucks. To rephrase that, the ruby-mysql gem contains better code, so you want that. Rails automatically detects if you have ruby-mysql installed or not, and uses it if you have it.&lt;/p&gt;
&lt;p&gt;Most notably, you want to install this gem if you get dropped MySQL connections running your Rails application.&lt;/p&gt;
&lt;p&gt;So we do:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ sudo gem install mysql
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ERROR: Failed to build gem native extension.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Normall this would install fine, but not on Mac OS X. This is because Mac OS X keeps its code, headers and libraries in odd places (compared to Linux). But don&amp;rsquo;t panic. There&amp;rsquo;s an easy solution to all this!&lt;/p&gt;</description></item><item><title>Installing Rails on Ubuntu Dapper / Edgy</title><link>https://www.devroom.io/2006/12/03/installing-rails-on-ubuntu-dapper-edgy/</link><pubDate>Sun, 03 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/03/installing-rails-on-ubuntu-dapper-edgy/</guid><description>&lt;p&gt;&lt;em&gt;Update 2010-03-25: Bumped to RubyGems version 1.3.6.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update 2009-02-19: Bumped to RubyGems version 1.3.1 and MySQL 5 libraries. This guide now works for all recent version of Ubuntu and Debian. Enjoy!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>How to setup a Ubuntu development server - Part 2</title><link>https://www.devroom.io/2006/12/02/how-to-setup-a-ubuntu-development-server-part-2/</link><pubDate>Sat, 02 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/02/how-to-setup-a-ubuntu-development-server-part-2/</guid><description>&lt;p&gt;Also read &lt;a href="http://ariejan.net/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/"&gt;Part 1 - Subversion&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this part I will tell you how to install &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt; on top of your Subversion repositories on your Ubuntu development server. Trac offers you a wiki, roadmap, tickets (tracking system) and access to your SubVersion repository. All of this is bundeled in a very sexy web interface.&lt;/p&gt;</description></item><item><title>How to setup a Ubuntu development server - Part 1</title><link>https://www.devroom.io/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/</link><pubDate>Fri, 01 Dec 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/12/01/how-to-setup-a-ubuntu-development-server-part-1/</guid><description>&lt;p&gt;Since I&amp;rsquo;m starting some real work on my final school project, I want to install a Ubuntu development server here at home. I have a Pentium 4 box here that will perform that task.&lt;/p&gt;</description></item><item><title>Rails: Security Check-up</title><link>https://www.devroom.io/2006/11/30/rails-security-check-up/</link><pubDate>Thu, 30 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/30/rails-security-check-up/</guid><description>&lt;p&gt;Is your Rails app secure? Really? Maybe you need to perform a major check-up of your Rails application to make sure.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a &lt;a href="http://rubythis.blogspot.com/2006/11/rails-security-checklist.html"&gt;comprehensive list&lt;/a&gt; that will take you through the most common mistakes and forgotten security risks in your Rails application.&lt;/p&gt;</description></item><item><title>The Three Corner Stones of Developerhood</title><link>https://www.devroom.io/2006/11/25/the-three-corner-stones-of-developerhood/</link><pubDate>Sat, 25 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/25/the-three-corner-stones-of-developerhood/</guid><description>&lt;p&gt;As a developer, there are just some things you can&amp;rsquo;t do without. I have found that there are three things that I need. Really need. If one of them is missing, I have trouble doing my job properly.&lt;/p&gt;</description></item><item><title>SVN: How to structure your repository</title><link>https://www.devroom.io/2006/11/24/svn-how-to-structure-your-repository/</link><pubDate>Fri, 24 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/24/svn-how-to-structure-your-repository/</guid><description>&lt;p&gt;&lt;em&gt;You are reading an article about Subversion. That&amp;rsquo;s great, because it
means you&amp;rsquo;re thinking about the benefits of version control for your
project. However, I have long since moved from Subversion to Git. I
strongly recommend you read up on my &lt;a
href="http://ariejan.net/2009/06/08/best-practice-the-git-development-cycle/"&gt;Best
Practice - The Git Developmenet Cycle&lt;/a&gt;. Git is much faster an
flexible than Subversion, go check it out now!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Google Project Hosting: SourceForge Competitor</title><link>https://www.devroom.io/2006/11/22/google-project-hosting-sourceforge-competitor/</link><pubDate>Wed, 22 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/22/google-project-hosting-sourceforge-competitor/</guid><description>&lt;p&gt;I just found out that &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt; is now offering &lt;a href="http://code.google.com/hosting/"&gt;Project Hosting&lt;/a&gt;! It&amp;rsquo;s in the same style as &lt;a href="http://www.sourceforge.net"&gt;SourceForge&lt;/a&gt;, but the Google way!&lt;/p&gt;
&lt;p&gt;As a Google user you can create a project with a built-in issue tracker and Subversion repository. And if that&amp;rsquo;s not all, you can tie in a blog (at Blogger.com is you like) and adiscussion group (on Google Groups, of course).&lt;/p&gt;</description></item><item><title>SVN: How to fix bugs properly</title><link>https://www.devroom.io/2006/11/22/svn-how-to-fix-bugs-properly/</link><pubDate>Wed, 22 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/22/svn-how-to-fix-bugs-properly/</guid><description>&lt;p&gt;I&amp;rsquo;ve already told you about &lt;a href="http://ariejan.net/2006/11/21/svn-how-to-release-software-properly/"&gt;releasing your project with help from Subversion&lt;/a&gt;. Now I want to talk to you about using Subversion to fix bugs in your application.&lt;/p&gt;
&lt;p&gt;Fixing bugs can be as easy as fixing a few lines of code or as hard as rewriting a significant portion of your application. Both situations need a different approach from us. Let&amp;rsquo;s talk about the easy stuff first.&lt;/p&gt;</description></item><item><title>WordPress: Author comment highlighting</title><link>https://www.devroom.io/2006/11/22/wordpress-author-comment-highlighting/</link><pubDate>Wed, 22 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/22/wordpress-author-comment-highlighting/</guid><description>&lt;p&gt;I&amp;rsquo;ve seen it lots of times before, but I just added it to Ariejan.net (and the next release of the iAriejan theme). Sometimes there are lots of comments and it&amp;rsquo;s nice for visitors to see what the official reaction of the blog author is.&lt;/p&gt;</description></item><item><title>CSE-Tool 1.1.0 Released</title><link>https://www.devroom.io/2006/11/21/cse-tool-110-released/</link><pubDate>Tue, 21 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/21/cse-tool-110-released/</guid><description>&lt;p&gt;Hot of the press! CSE-Tool 1.1.0 has been released just a few minutes ago! &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=182622&amp;package_id=211849&amp;release_id=465386"&gt;Grab the code now&lt;/a&gt; or check a &lt;a href="http://www.search-london.net/"&gt;live demonstration&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Please report any feature, support or bug requests back at the project&amp;rsquo;s &lt;a href="http://sourceforge.net/projects/cse-tool/"&gt;SourceForge page&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>SVN: How to release software properly</title><link>https://www.devroom.io/2006/11/21/svn-how-to-release-software-properly/</link><pubDate>Tue, 21 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/21/svn-how-to-release-software-properly/</guid><description>&lt;p&gt;Many projects use SubVersion nowadays to store their project code. I do this also at work, and for my personal projects like &lt;a href="http://ariejan.net/tags/cse-tool/"&gt;CSE-Tool&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The question, however, is how to release your current code properly to the public. You probably don&amp;rsquo;t want your users to check out your current development code. Either you want them to check out a certain version (release) or you want to present them with a download archive containing the code.&lt;/p&gt;</description></item><item><title>Announcing CSE-Tool: Deploy you Google CSE with ease</title><link>https://www.devroom.io/2006/11/17/announcing-cse-tool-deploy-you-google-cse-with-ease/</link><pubDate>Fri, 17 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/17/announcing-cse-tool-deploy-you-google-cse-with-ease/</guid><description>&lt;p&gt;This is just a short note to let you know that &lt;a href="http://www.sourceforge.net/projects/cse-tool/"&gt;CSE-Tool 1.0&lt;/a&gt; has been released.&lt;/p&gt;
&lt;p&gt;The CSE-Tool allows you to easily (just copy-paste a few items presented to you by Google) deploy your Custom Search Engine. All you need is a CSE (of course) and optionally a Google Analytics account to track who&amp;rsquo;s coming by.&lt;/p&gt;</description></item><item><title>Ubuntu 6.10 Live DVD on the Apple MacBook</title><link>https://www.devroom.io/2006/11/15/ubuntu-610-live-dvd-on-the-apple-macbook/</link><pubDate>Wed, 15 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/15/ubuntu-610-live-dvd-on-the-apple-macbook/</guid><description>&lt;p&gt;Since I teach various Linux courses at Fontys Centrum IT, I want to run a live CD or DVD on my MacBook. First off, here are my specs:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Apple MacBook (White)&lt;/li&gt;
	&lt;li&gt;Intel Core Duo 2.0Ghz&lt;/li&gt;
	&lt;li&gt;1.0Gb RAM&lt;/li&gt;
	&lt;li&gt;13.3" 1280x800 TFT&lt;/li&gt;
	&lt;li&gt;60 Gb Internal Harddisk&lt;/li&gt;
	&lt;li&gt;300 Gb External FireWire harddisk&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As my Live medium I chose the Ubuntu Linux 6.10 Live DVD. This DVD has several nice options (install server, for example) that I like. It also can boot up in a live desktop environment.
~
As a matter of fact, everything I need works out of the box. Wireless works fine, my mouse (USB Logitech) works, the FireWire harddisk (which has a FAT32 filesystem, so I can hook it to my girl friend&amp;rsquo;s Windows PC) works perfectly.&lt;/p&gt;</description></item><item><title>CUPS: 426 - Upgrade Required</title><link>https://www.devroom.io/2006/11/13/cups-426-upgrade-required/</link><pubDate>Mon, 13 Nov 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/11/13/cups-426-upgrade-required/</guid><description>&lt;p&gt;As I was installing my printer on my Ubuntu 6.06 Dapper LTS server with CUPS I noticed the following error:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;426 Upgrade Required&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After some research I came to the conclusion that CUPS, by default, tries to use SSL whenever possible. So, with this 426 error, you are redirected to the SSL domain. Chances are, you haven&amp;rsquo;t configured SSL properly, if at all.&lt;/p&gt;</description></item><item><title>WordpressMu: Don’t allow new blogs</title><link>https://www.devroom.io/2006/10/31/wordpressmu-dont-allow-new-blogs/</link><pubDate>Tue, 31 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/31/wordpressmu-dont-allow-new-blogs/</guid><description>&lt;p&gt;If you&amp;rsquo;re using &lt;a href="http://mu.wordpress.org"&gt;WordpressMu&lt;/a&gt;, the blog hosting tool used on &lt;a href="http://www.wordpress.com"&gt;Wordpress.com&lt;/a&gt;, you may want to disable the creation of blogs by your visitors.&lt;/p&gt;
&lt;p&gt;Whatever your reasons for this are, I wanted to prevent this, because I (and my team of editors) want to maintain several blogs on different topics. Users are free to register and post comments, but creating new blogs is reserved for the administrator.&lt;/p&gt;</description></item><item><title>Adsense Resource Inventory</title><link>https://www.devroom.io/2006/10/30/adsense-resource-inventory/</link><pubDate>Mon, 30 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/30/adsense-resource-inventory/</guid><description>&lt;p&gt;In addition to my &lt;a href="http://ariejan.net/2006/10/29/do-your-ads-pay-your-blogging-bills/"&gt;previous post&lt;/a&gt; I have gathered some popular resources from around the web that talk about making money off &lt;a href="http://www.google.com/adsense"&gt;Google Adsense&lt;/a&gt;. I hope this sums up all you need to start making money yourself.&lt;/p&gt;</description></item><item><title>Cheat sheets? Look here!</title><link>https://www.devroom.io/2006/10/30/cheat-sheets-look-here/</link><pubDate>Mon, 30 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/30/cheat-sheets-look-here/</guid><description>&lt;p&gt;Getting confused of all the tools you use on a daily basis? Don&amp;rsquo;t remember all the exact method names and possibilities of SubVersion, Apache, HTML, CSS, MySQL, Ruby on Rails, CVS, AJAX, JavaScript, FireFox, Google, etc. etc.? There is a solution! Cheat sheets make your daily work easier by providing you all you need to know on a single paper!&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a &lt;a href="http://www.smashingmagazine.com/2006/10/30/cheat-sheet-round-up-ajax-css-latex-ruby/"&gt;very comprehensive list&lt;/a&gt; of cheat sheets.&lt;/p&gt;
&lt;p&gt;Cheat sheets are simple put a collection of all important (if not just all) functions and methods you can use for a given product, framework or language. They&amp;rsquo;re great to have on your desk if you just can&amp;rsquo;t quite remember what function to use. Check &amp;rsquo;em out, print &amp;rsquo;em out and start loving &amp;rsquo;em!&lt;/p&gt;</description></item><item><title>Confused about CSS Columns?</title><link>https://www.devroom.io/2006/10/30/confused-about-css-columns/</link><pubDate>Mon, 30 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/30/confused-about-css-columns/</guid><description>&lt;p&gt;I&amp;rsquo;m mainly confused on how to make different layouts with pure CSS. Back in the time when tables were okay, it was rather easy. But with CSS it&amp;rsquo;s gotten rather tricky.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dynamicdrive.com/style/layouts/"&gt;Dynamic Drive&lt;/a&gt; has some great examples (with CSS code!) of different kinds of layouts. It&amp;rsquo;s great to use as a starting point for your design!&lt;/p&gt;</description></item><item><title>How does your site look on …?</title><link>https://www.devroom.io/2006/10/30/how-does-your-site-look-on/</link><pubDate>Mon, 30 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/30/how-does-your-site-look-on/</guid><description>&lt;p&gt;When designing a web site you always check how the site looks in different browsers, even maybe at different resolutions. But how many browsers do you really use? Firefox, Safari when on Mac, Internet Explorer when on Windows and that&amp;rsquo;s mostly it.&lt;/p&gt;</description></item><item><title>Do your ads pay your (blogging) bills?</title><link>https://www.devroom.io/2006/10/29/do-your-ads-pay-your-blogging-bills/</link><pubDate>Sun, 29 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/29/do-your-ads-pay-your-blogging-bills/</guid><description>&lt;p&gt;I&amp;rsquo;ve read many articles on earning money with &lt;a href="http://www.google.com/adsense"&gt;Google&amp;rsquo;s AdSense&lt;/a&gt;. Some guru&amp;rsquo;s claim to recieve five figure checks from Google every month.&lt;/p&gt;
&lt;p&gt;The trick with these people is that they have a lot of content. More content, means more visitors, which means more clicks and thus more money. The content is written to attract certain keywords which are known earn a lot of money. Of course, professionals don&amp;rsquo;t just have one site, they have several. In order to cope with all this content they have an almost full-time job. That&amp;rsquo;s not bad if you earn a five figure amount every month.
~
But, how about us, regular bloggers who just want to share our bit of knowledge with the rest of the world. Most of us have Google Ads on our site, including me. My site has been refurbished quite a few times in the past few months and the content I had &lt;a href="http://ariejan.net/2006/10/09/welcome-to-ariejannet/"&gt;is gone&lt;/a&gt;. So, I&amp;rsquo;m not really hot in this business.&lt;/p&gt;</description></item><item><title>Ruby On Rails for PHP: CakePHP</title><link>https://www.devroom.io/2006/10/23/ruby-on-rails-for-php-cakephp/</link><pubDate>Mon, 23 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/23/ruby-on-rails-for-php-cakephp/</guid><description>&lt;p&gt;The framework has been around for some time, but I found out about it a few days ago: &lt;a href="http://www.cakephp.org"&gt;CakePHP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using &lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt; for quite some time now. It&amp;rsquo;s a very cool framework and it&amp;rsquo;s fun to work with. However, there&amp;rsquo;s one big problem I have with it: I can&amp;rsquo;t host it anywhere!&lt;/p&gt;</description></item><item><title>Having fun with SPAM!</title><link>https://www.devroom.io/2006/10/13/having-fun-with-spam/</link><pubDate>Fri, 13 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/13/having-fun-with-spam/</guid><description>&lt;p&gt;I was just wading through my SPAM at Gmail to see if it flagged anything important. Then I came across this message:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is your website &lt;a href="https://www.gmail.com"&gt;www.gmail.com&lt;/a&gt; offline, or why can&amp;rsquo;t I find it on Yahoo?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Migrate SQLite3 to MySQL easily</title><link>https://www.devroom.io/2006/10/13/migrate-sqlite3-to-mysql-easily/</link><pubDate>Fri, 13 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/13/migrate-sqlite3-to-mysql-easily/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using a simple Rails application locally with a SQlite 3 database for some time. Now I want to move to another host and use MySQL instead. But guess what? You can&amp;rsquo;t just migrate your data!&lt;/p&gt;</description></item><item><title>Tagging in ajax_scaffold</title><link>https://www.devroom.io/2006/10/13/tagging-in-ajax_scaffold/</link><pubDate>Fri, 13 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/13/tagging-in-ajax_scaffold/</guid><description>&lt;p&gt;I&amp;rsquo;ve been using the &lt;a href="http://www.ajaxscaffold.com/"&gt;Ajax Scaffold&lt;/a&gt; for quite some time now. It&amp;rsquo;s a great piece of software by &lt;a href="http://www.height1percent.com/"&gt;Mr. Richard White&lt;/a&gt; for &lt;a href="http://www.rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;. It seems that the plugin version of AS is getting quite a bit more attention than the generator. I started out with the generator but quickly reverted to the plugin since it&amp;rsquo;s way more flexible and easier to use.&lt;/p&gt;</description></item><item><title>Easily create a FavIcon online!</title><link>https://www.devroom.io/2006/10/10/easily-create-a-favicon-online/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/10/easily-create-a-favicon-online/</guid><description>&lt;p&gt;You know those little icons you see in your browsers address bar? Yes, the ones in you bookmarks! Well, you want such an icon for your site?&lt;/p&gt;
&lt;p&gt;These icons are called FavIcons, short for Favourites Icon. Most modern browsers make use of them.&lt;/p&gt;
&lt;p&gt;To create such an icon you&amp;rsquo;ll need some image first. Normally the process would be rather difficult involving several graphics manipulation programs and conversions. Don&amp;rsquo;t fall for that! Use the followin &lt;a href="http://www.chami.com/html-kit/services/favicon/"&gt;FavIcon from Pics&lt;/a&gt; site!&lt;/p&gt;
&lt;p&gt;Just upload a gif, jpeg or png image (with transparency if you like) and get a FavIcon for free! There are also some other goodies included!&lt;/p&gt;
&lt;p&gt;Of course, there&amp;rsquo;s information available on how to upload your FavIcon and how to let your browser know about it.&lt;/p&gt;</description></item><item><title>Generate a SQlite-based Rails app</title><link>https://www.devroom.io/2006/10/10/generate-a-sqlite-based-rails-app/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/10/generate-a-sqlite-based-rails-app/</guid><description>&lt;p&gt;When you create a Rails application a database.yml files is included with some default configuration for your database. Unfortunately these are defaults for MySQL. If you want to use another database, like SQlite, you&amp;rsquo;d have to rewrite the entire configuration file. And that&amp;rsquo;s not what you want!&lt;/p&gt;
&lt;p&gt;Luckily, rails is very adapative and we can make it do all the work for us.&lt;/p&gt;</description></item><item><title>Hi-Res Wallpapers for your MacBook!</title><link>https://www.devroom.io/2006/10/10/hi-res-wallpapers-for-you-macbook/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/10/hi-res-wallpapers-for-you-macbook/</guid><description>&lt;p&gt;For all of you who have a flashy Apple MacBook (or any other device with a 1280x800 resolution) here&amp;rsquo;s a nice site with lot&amp;rsquo;s of hi-res wallpapers. Of course, they&amp;rsquo;re all for free!&lt;/p&gt;
&lt;p&gt;Oh, they have other sizes as well.&lt;/p&gt;
&lt;p&gt;Go check out &lt;a href="http://interfacelift.com/wallpaper/index.php?sort=downloads&amp;w=1280&amp;h=800"&gt;InterfaceLIFT&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Top 5 DVDs you must have</title><link>https://www.devroom.io/2006/10/10/top-5-dvds-you-must-have/</link><pubDate>Tue, 10 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/10/top-5-dvds-you-must-have/</guid><description>&lt;p&gt;Everybody at this point in time at least owns one or more DVD - Digital Versatile Disk - Videos. Some people try to collect as many DVD&amp;rsquo;s as possible, others just buy the ones they like (or can afford).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m not sure how many DVD&amp;rsquo;s I have at this time, but there are quite a few DVD&amp;rsquo;s that you just have to have in your collection.&lt;/p&gt;
&lt;p&gt;If you feel wronged because your favourite movie is not listed, feel free to add a comment stating your favourites. (Oh, let me know why it&amp;rsquo;s such a great movie too!)&lt;/p&gt;</description></item><item><title>Welcome to Ariejan.net</title><link>https://www.devroom.io/2006/10/09/welcome-to-ariejannet/</link><pubDate>Mon, 09 Oct 2006 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/2006/10/09/welcome-to-ariejannet/</guid><description>&lt;p&gt;Well, it has happened to me. Although I make regular backups of my site, this time I was screwed!&lt;/p&gt;
&lt;p&gt;Since I&amp;rsquo;m very interested in &lt;a href="http://rubyonrails.com"&gt;Ruby on Rails&lt;/a&gt;, I gave a RoR weblog, &lt;a href="http://typosphere.org/"&gt;TypoSphere&lt;/a&gt;, a try. I exported my entire &lt;a href="http://www.wordpress.org"&gt;Wordpress&lt;/a&gt; blog to typo and I was a happy man. Until disaster struck&amp;hellip;&lt;/p&gt;</description></item><item><title>About</title><link>https://www.devroom.io/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/about/</guid><description>&lt;picture&gt;
&lt;source srcset="https://www.devroom.io/images/aj-cyberpunk-120.webp 1x, https://www.devroom.io/images/aj-cyberpunk-240.webp 2x" type="image/webp"&gt;
&lt;img class="avatar" src="https://www.devroom.io/images/aj-cyberpunk-120.webp" alt="Ariejan de Vroom" width="120" height="120"&gt;
&lt;/picture&gt;
&lt;p&gt;My name is Ariejan de Vroom. I&amp;rsquo;m a husband and father-of-two.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been programming electronic devices since 1992 when I started as a kid
toying around with GW-BASIC on my trusty 80286.&lt;/p&gt;</description></item><item><title>Contact Ariejan</title><link>https://www.devroom.io/contact/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/contact/</guid><description>&lt;p&gt;I &lt;em&gt;love&lt;/em&gt; hearing from you, especially if one of my posts was helpful to you. You can use &lt;a href="https://www.devroom.io/gpg/"&gt;GPG&lt;/a&gt; to encrypt your message to me.&lt;/p&gt;
&lt;a href="https://www.buymeacoffee.com/ariejan" target="_blank" rel="noopener noreferrer" class="coffee-button"&gt;
 &lt;svg class="coffee-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"&gt;
 &lt;path d="M18 8h1a4 4 0 0 1 0 8h-1M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/&gt;
 &lt;path d="M6 1v3M10 1v3M14 1v3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/&gt;
 &lt;/svg&gt;
 &lt;span&gt;Buy me a coffee&lt;/span&gt;
&lt;/a&gt;

&lt;h2 id="contact-form"&gt;Contact form&lt;/h2&gt;
&lt;form name="contact" method="POST" action="https://formspree.io/ariejan@devroom.io"&gt;
 &lt;div&gt;
 &lt;label for="inputName"&gt;Your name:&lt;/label&gt;
 &lt;input type="text" name="name" id="inputName" required&gt;
 &lt;/div&gt;
 &lt;div&gt;
 &lt;label for="inputEmail"&gt;Your email address:&lt;/label&gt;
 &lt;input type="email" name="email" id="inputEmail" required&gt;
 &lt;/div&gt;
 &lt;div&gt;
 &lt;label for="inputMessage"&gt;Your message:&lt;/label&gt;
 &lt;textarea name="message" id="inputMessage" rows="12" required&gt;&lt;/textarea&gt;
 &lt;/div&gt;
 &lt;div&gt;
 &lt;input class='!rounded-md bg-primary-600 px-4 py-2 !text-neutral !no-underline hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700' type="submit" value="Send it"&gt;
 &lt;/div&gt;
&lt;/form&gt;
&lt;p&gt;&lt;em&gt;This form is processed through &lt;a href="https://formspree.io"&gt;Formspree.io&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>eBay Hunting</title><link>https://www.devroom.io/ebay-hunting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/ebay-hunting/</guid><description>&lt;p&gt;I love repairing audio gear. The problem, mostly, is finding good quality
equipment with defects for a reasonable price. Enter eBay.&lt;/p&gt;
&lt;p&gt;eBay is filled with great stuff, but it&amp;rsquo;s sometimes hard to find and when
you find it, it&amp;rsquo;s even harder to get a winning bid in that isn&amp;rsquo;t ridiculously
high.&lt;/p&gt;</description></item><item><title>GPG Public Key Information</title><link>https://www.devroom.io/gpg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/gpg/</guid><description>&lt;p&gt;I regularly use GPG to sign stuff, mainly git commits and emails. On
this page you&amp;rsquo;ll find some information on where to get my public key
and proof that this is actually my key.&lt;/p&gt;</description></item><item><title>Pass Force</title><link>https://www.devroom.io/passforce/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/passforce/</guid><description>&lt;p&gt;Through 20 years of effort, we&amp;rsquo;ve successfully trained everyone to use passwords that are hard for humans to remember, but easy for computers to guess. Not any more!&lt;/p&gt;
&lt;p&gt;Pass Force generates strong, modern passwords for you. Easily copy/paste to whereever you need them.&lt;/p&gt;</description></item><item><title>Privacy Statement</title><link>https://www.devroom.io/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>ariejan@devroom.io (Ariejan de Vroom)</author><guid>https://www.devroom.io/privacy/</guid><description>&lt;p&gt;This website (&lt;strong&gt;devroom.io&lt;/strong&gt;) is privacy friendly and fully GDPR compliant. The site itself is static HTML and
you are not required to enter any personal information to access the content.&lt;/p&gt;</description></item></channel></rss>