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

<channel>
	<title>Jeroen Smeets</title>
	<atom:link href="http://jeroensmeets.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeroensmeets.net</link>
	<description></description>
	<pubDate>Mon, 05 Jan 2009 16:02:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Open letter to my (ex-) hosting company</title>
		<link>http://jeroensmeets.net/open-letter-to-my-ex-hosting-company/</link>
		<comments>http://jeroensmeets.net/open-letter-to-my-ex-hosting-company/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 10:56:54 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=86</guid>
		<description><![CDATA[This is to let you know I have struggled for hours to resolve an issue with several of my domains &#8212; malicious code added to pages to do damage to me and/or my visitors.
After finding the script that caused all my stress, and several ftp accounts on my account that I didn&#8217;t create, I find [...]]]></description>
			<content:encoded><![CDATA[<p>This is to let you know I have struggled for hours to resolve an issue with several of my domains &#8212; malicious code added to pages to do damage to me and/or my visitors.</p>
<p>After finding the script that caused all my stress, and several ftp accounts on my account that I didn&#8217;t create, I find out on several forums that this is something specific to Servage and its lack of security.</p>
<p>I find it unbelievable that you haven&#8217;t notified your clients, or at least ran a script on all your servers to see who got infected.</p>
<p>&lt;postscript&gt;after cleaning up and re-chmodding the whole tree before Christmas, this thing repeated itself just after the holidays. Apologies to those who ran into the silly javascript. I have moved to a new hosting account and switched to VPS.&lt;/postscript&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/open-letter-to-my-ex-hosting-company/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Just like starting over</title>
		<link>http://jeroensmeets.net/just-like-starting-over/</link>
		<comments>http://jeroensmeets.net/just-like-starting-over/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 21:02:01 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=85</guid>
		<description><![CDATA[Over the years, I have started a couple of last.fm projects. All have one thing in common: they provide a way to display covers on your site, and do it more elegantly than the standard last.fm widget. One of the things that really bugged me about my projects was the different pieces of code I [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years, I have started a couple of last.fm projects. All have one thing in common: they provide a way to display covers on your site, and do it more elegantly than the standard last.fm widget. One of the things that really bugged me about my projects was the different pieces of code I maintain; and how difficult it becomes to support all these variants.</p>
<p>As we&#8217;re approaching the new year, here is my resolution: one codebase for all, starting today with a basic object that can be used as-is, or with some additional programming, for platforms as Wordpress and Drupal.  This also means that my Wordpress plugins will be built on this code once it gets out of beta (hey, even Chrome did!).</p>
<p>In case you&#8217;re wondering: yes, the covers on the top right of this page are there thanks to this new code. And no, it&#8217;s not a Wordpress plugin or widget yet, I wrote it directly in themes/sidebar.php</p>
<p>I&#8217;m releasing this code under GPL, so it is available to use in your own projects. If you do, I ask you to</p>
<ol>
<li>keep my info in the javascript file</li>
<li>change the last.fm API key</li>
<li>let me know where you are going with it</li>
</ol>
<p>Once installed, the javascript hands you one object you can configure and run, like this:</p>
<pre>jQuery(document).ready( function() {

  // last.fm username
  lastFmRecords.setUser('hondjevandirkie');
  // id of the div element where script can add covers
  lastFmRecords.setPlaceholder('lastfmrecords');
  // image to show while loading images or when image not found
  lastFmRecords.setDefaultThumb('./lastfm_logo.jpg');
  // TODO: value is ignored at the moment
  lastFmRecords.setPeriod('smart');
  // TODO: value is ignored at the moment
  lastFmRecords.setStyle('lightbox');
  // number of covers, at the moment max. 50
  lastFmRecords.setCount(20);
  // refresh interval (get fresh data from last.fm)
  lastFmRecords.setRefreshMinutes(1);
  // GMT offset
  lastFmRecords.setTimeOffset(1);
  // log to console
  lastFmRecords.debug();

  // run
  lastFmRecords.init();
});</pre>
<p>Most options come from my earlier projects; the refresh is new. And best of all, I found out how to get JSON from last.fm. This means jQuery can make the requests, so all requests now go directly from the browser to last.fm, without a data provider in PHP on your own server.</p>
<p>So what do you need to get this running?</p>
<ul>
<li>include jQuery</li>
<li>include last.fm.records.js<br />
(see download link below)</li>
<li>a last.fm username (you&#8217;re free to use mine when you like Randy Newman)</li>
<li>a div on the page where the script can put the HTML in<br />
(default: &lt;div id=&#8221;lastfmrecords&#8221; /&gt;)</li>
</ul>
<p>You can download <a href="http://jeroensmeets.net/downloads/last.fm.records.3.1.zip">the beta of Last.Fm Records 3.1 here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/just-like-starting-over/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Geode</title>
		<link>http://jeroensmeets.net/geode/</link>
		<comments>http://jeroensmeets.net/geode/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 15:38:07 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=81</guid>
		<description><![CDATA[Mozilla is working on location awareness in browsers connected through a wireless network. For Firefox 3 a plugin was released, and it was suggested it will be in the core of Firefox 3.1. It seems silly to let your browser determine where your laptop is &#8212; as a co-worker put it, it&#8217;s at work or [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla is working on location awareness in browsers connected through a wireless network. For Firefox 3 a <a href="http://labs.mozilla.com/2008/10/introducing-geode/">plugin</a> was released, and it was suggested it will be in the core of Firefox 3.1. It seems silly to let your browser determine where your laptop is &#8212; as a co-worker put it, it&#8217;s at work or on his lap at home. And I can see the <a href="http://labs.mozilla.com/2008/10/introducing-geode/#comment-37752">problem</a> some people have with putting these extras in the core of a browser, especially when privacy is concerned.</p>
<p>Surely this won&#8217;t have the same use it has on mobile devices. But it finally makes the NSFW warnings superfluous.</p>
<p>Anyway, I enjoyed myself writing <a href="http://jeroensmeets.net/geo/">a demo</a> showing wiki articles on places in your neighborhood.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/geode/feed/</wfw:commentRss>
		</item>
		<item>
		<title>mazeQuery</title>
		<link>http://jeroensmeets.net/maze/</link>
		<comments>http://jeroensmeets.net/maze/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 22:41:15 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=66</guid>
		<description><![CDATA[On &#8220;Signals vs. Noise&#8221; at 37signals a challenge was published &#8212; first person to solve the (image of the) maze gets a $50 dollar discount. The first (funny) comment was &#8220;I think there’s a jQuery plugin for that.&#8221; and this triggered something in me: I had to solve this in a browser. 
The solution I built [...]]]></description>
			<content:encoded><![CDATA[<p><a class="highslide" onclick="return hs.expand(this)" href="http://jeroensmeets.net/wp-content/uploads/2008/10/37s-maze-big.png"><img class="alignnone size-medium wp-image-71" title="big maze" src="http://jeroensmeets.net/wp-content/uploads/2008/10/37s-maze-big-180x180.png" alt="" width="180" height="180" /></a>On &#8220;Signals vs. Noise&#8221; at 37signals <a href="http://www.37signals.com/svn/posts/1243-37maze-first-to-solve-it-saves-50">a challenge was published</a> &#8212; first person to solve the (image of the) maze gets a $50 dollar discount. The first (funny) comment was &#8220;<em>I think there’s a jQuery plugin for that.&#8221; <span style="font-style: normal;">and this triggered something in me: I had to solve this in a browser. </span></em></p>
<p><em><span style="font-style: normal;">The solution I built is solved in one browser for now, Firefox. The javascript copies the image to a canvas element and paints the solution on the canvas. Proudly I present: <a href="http://jeroensmeets.net/mazequery/">mazeQuery</a>.</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/maze/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Loop alert</title>
		<link>http://jeroensmeets.net/loop-alert/</link>
		<comments>http://jeroensmeets.net/loop-alert/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 20:40:52 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=63</guid>
		<description><![CDATA[My stats software Woopra tells me Safari is now the browser for 10.6% of my visitors; it was 0.9% last week. As both Safari and Chrome are based on Webkit, it seems Woopra doesn&#8217;t report on Chrome yet.
This evening I was frustrated with an array in jQuery and as I was working in Chrome, I [...]]]></description>
			<content:encoded><![CDATA[<p>My stats software <a href="http://woopra.com">Woopra</a> tells me Safari is now the browser for 10.6% of my visitors; it was 0.9% last week. As both Safari and Chrome are based on Webkit, it seems Woopra doesn&#8217;t report on <a href="http://www.google.com/chrome">Chrome</a> yet.</p>
<p>This evening I was frustrated with an array in jQuery and as I was working in Chrome, I couldn&#8217;t use Firebug. So I tried to debug the old fashioned way: by displaying an alert in the each() loop. On the second alert box, Chrome added a checkbox: &#8216;Prevent this page from creating additional dialogs&#8217;. Really helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/loop-alert/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Chrome</title>
		<link>http://jeroensmeets.net/chrome/</link>
		<comments>http://jeroensmeets.net/chrome/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 20:17:19 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=60</guid>
		<description><![CDATA[Just got home, downloaded Chrome and made sure my (heavy on the javascript) plugin Run For Cover works ok. It does. That&#8217;s egocentric browsertesting for ya.
It&#8217;s nice to have a couple of tabs open without the airconditioning going into overdrive. Let&#8217;s explore.
]]></description>
			<content:encoded><![CDATA[<p>Just got home, downloaded <a href="http://google.com/chrome">Chrome</a> and made sure my (heavy on the javascript) plugin <a href="http://wordpress.org/extend/plugins/run-for-cover/">Run For Cover</a> works ok. It does. That&#8217;s egocentric browsertesting for ya.</p>
<p>It&#8217;s nice to have a couple of tabs open without the airconditioning going into overdrive. Let&#8217;s explore.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/chrome/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Run for cover 2.0.1</title>
		<link>http://jeroensmeets.net/run-for-cover-201/</link>
		<comments>http://jeroensmeets.net/run-for-cover-201/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 21:09:51 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=55</guid>
		<description><![CDATA[Back from my holiday in Germany (very nice, thank you). I&#8217;ve updated Run for cover to version 2.0.1 2.0.2 2.0.3, slightly less in beta now. It&#8217;s running in the sidebar. Changes made:

make it work in IE
option to show album title and artist next to image
option to use it with lightbox plugin (not included)

I&#8217;ll be answering [...]]]></description>
			<content:encoded><![CDATA[<p>Back from my holiday in Germany (very nice, thank you). I&#8217;ve updated Run for cover to version <span style="text-decoration: line-through;">2.0.1</span> <span style="text-decoration: line-through;">2.0.2</span> 2.0.3, slightly less in beta now. It&#8217;s running in the sidebar. Changes made:</p>
<ul>
<li>make it work in IE</li>
<li>option to show album title and artist next to image</li>
<li>option to use it with lightbox plugin (not included)</li>
</ul>
<p>I&#8217;ll be answering some of the questions in the comments later, but now it&#8217;s Sunday evening and I&#8217;m off to bed to have a good night of sleep before my first day at work tomorrow.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/run-for-cover-201/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Run for cover 2.0</title>
		<link>http://jeroensmeets.net/run-for-cover-20/</link>
		<comments>http://jeroensmeets.net/run-for-cover-20/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 18:38:49 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=43</guid>
		<description><![CDATA[The Run for cover widget has been abandoned for ages, as I only supported my Last.Fm Records plugin for Wordpress. Two things make me publish a new version of this Wordpress widget: disappointment from people stuck with PHP4 and therefore unable to use the new version of Last.Fm Records &#8212; and the joy of parsing [...]]]></description>
			<content:encoded><![CDATA[<p>The Run for cover widget has been abandoned for ages, as I only supported my Last.Fm Records plugin for Wordpress. Two things make me publish a new version of this Wordpress widget: disappointment from people stuck with PHP4 and therefore unable to use the new version of Last.Fm Records &#8212; and the joy of parsing XML with of jQuery&#8230;</p>
<p>Run For Cover shows the cds you listened to recently, as you can see in the sidebar. All data is real time, so the widget shows you if you are listening to a track at this moment. It&#8217;s still a rough version, especially the javascript, but it works on my test sites and I know people are looking for such a widget.</p>
<p>The widget needs jQuery, luckily this comes with recent versions of Wordpress. If you get an javascript error about jQuery, you could check the readme.txt .</p>
<p>You can <a href="http://wordpress.org/extend/plugins/run-for-cover/">download Run for cover 2.0 here</a>.</p>
<p><strong>Update:</strong> the javascript seems to fail under some versions of Internet Explorer. First thing when I&#8217;m back home after the holidays.</p>
<p>No project complete without a todo list</p>
<ol>
<li>better error checking</li>
<li>show a message when last.fm is unavailable or when data was not correctly loaded</li>
<li>use nice jQuery effects when displaying the cd covers</li>
<li>auto update function after x minutes</li>
</ol>
<p>Hope you like it &#8212; I&#8217;d like to read what you think in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/run-for-cover-20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New version and project plans</title>
		<link>http://jeroensmeets.net/new-version-and-project-plans/</link>
		<comments>http://jeroensmeets.net/new-version-and-project-plans/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 21:53:17 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=38</guid>
		<description><![CDATA[Just committed version 1.4.1 of Last.Fm Records to Wordpress, to fix a couple of issues. The biggest one is the one that Rose pointed out, and I hadn&#8217;t seen yet. Thanks, Rose! She saw that if you selected &#8216;get more images if necessary&#8217;, the plugin didn&#8217;t display the correct images.
I also removed the commented out [...]]]></description>
			<content:encoded><![CDATA[<p>Just committed <a href="http://wordpress.org/extend/plugins/lastfm-records/">version 1.4.1</a> of Last.Fm Records to Wordpress, to fix a couple of issues. The biggest one is the one that <a href="http://jeroensmeets.net/version-14-of-lastfm-records-released/#comment-88">Rose</a> pointed out, and I hadn&#8217;t seen yet. Thanks, Rose! She saw that if you selected &#8216;get more images if necessary&#8217;, the plugin didn&#8217;t display the correct images.</p>
<p>I also removed the commented out code that was displayed on the settings page.</p>
<p>The feedback has been extremely encouraging to work on this plugin. For Last.Fm Records the <a href="http://wordpress.org/extend/plugins/lastfm-records/other_notes/">todo list</a> is the first thing I&#8217;m planning to do.</p>
<p>The stand alone version is next. As it is already PHP5, I suspect there&#8217;ll be less disappointed people. Don&#8217;t think I&#8217;ll start on this one before I&#8217;m off on a three week holiday.</p>
<p>And a special note for anyone stuck on PHP4: LFM used to be called Run For Cover. I&#8217;m using that name to work on a widget that uses jQuery to parse the recent tracks list from Last.Fm. It&#8217;s still very beta, but you can follow development on that one by downloading <a href="http://wordpress.org/extend/plugins/run-for-cover/download/">the development version</a>. If you make sure jQuery is loaded (see readme.txt for instructions) and activate the widget, it will display your recent tracks.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/new-version-and-project-plans/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Version 1.4 of Last.Fm Records released</title>
		<link>http://jeroensmeets.net/version-14-of-lastfm-records-released/</link>
		<comments>http://jeroensmeets.net/version-14-of-lastfm-records-released/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 14:45:59 +0000</pubDate>
		<dc:creator>jeroensmeets</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<guid isPermaLink="false">http://jeroensmeets.net/?p=31</guid>
		<description><![CDATA[This was a big one for me &#8212; implementing the new last.fm API. I have submitted my changes to wordpress.org, so you should see a message on the plugins page that the new version is available.
To make this happen before my holidays, I had to disable some things from the previous version:

uploading images (already uploaded [...]]]></description>
			<content:encoded><![CDATA[<p>This was a big one for me &#8212; implementing the new <a href="http://last.fm/api/">last.fm API</a>. I have submitted my changes to <a href="http://wordpress.org/extend/plugins/lastfm-records/">wordpress.org</a>, so you should see a message on the plugins page that the new version is available.</p>
<p>To make this happen before my holidays, I had to disable some things from the previous version:</p>
<ul>
<li>uploading images (already uploaded images will remain in your cache directory)</li>
<li>selecting a style</li>
</ul>
<p>Please let me know how this new version works for you in the comments! I&#8217;m especially interested in what you think of the new option &#8216;get more images if necessary&#8217;.</p>
<p>If any bugs show up I&#8217;ll try to fix them before this or another sundown.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeroensmeets.net/version-14-of-lastfm-records-released/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
