<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kilian Valkhof</title>
	
	<link>http://kilianvalkhof.com</link>
	<description />
	<lastBuildDate>Fri, 29 Mar 2013 14:37:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Kilianvalkhofcom" /><feedburner:info uri="kilianvalkhofcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Statlas beta release</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/Xwie7qI9Jfo/</link>
		<comments>http://kilianvalkhof.com/2011/web/statlas-beta-release/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 08:00:52 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=936</guid>
		<description><![CDATA[<blockquote><p> Making an editor for maps using 100% web technologies had never been done before so it was a really exciting project and I jumped at the chance</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/web/statlas-beta-release/">Statlas beta release</a></p>
]]></description>
				<content:encoded><![CDATA[<p>For the past few months me and the rest of the guys at <a href="http://fluxility.com">Fluxility</a> have been working on <a href="http://statlas.nl">Statlas</a>, a website that makes it super easy for anyone to make cool maps based on data they have. We just released the beta, so you&#8217;re all invited to come and <a href="http://statlas.nl">play with it</a>. Or read on for some more background information&hellip;<span id="more-936"></span></p>
<p>At the end of 2010 I had a meeting with <a href="http://alper.nl">Alper</a>, who asked if I was available for a helping him with building a kick-ass mapping application that would make it super easy for lay people to create visualizations. Sort of a bigger, better version of an app he made previously, <a href="http://monsterswell.com/projects/dutchstats/">Dutchstats</a>. Making an editor for maps using 100% web technologies had never been done before (not counting flash, obviously) so it was a really exciting project and I jumped at the chance.</p>
<p>Statlas was built by a combined team of us at <a href="http://fluxility.com">Fluxility</a>, <a href="http://monsterswell.com">Monster Swell</a> and <a href="http://cargocollective.com/alexanderzeh">Alexander Zeh</a>. We took care of the development, Monsterswell took the lead and Alexander Zeh made the graphics.</p>
<p>We quickly settled on using <a href="http://polymaps.org">Polymaps</a> for the mapping and <a href="http://djangoproject.com">Django</a> for the back-end. Starting out, I explored what was possible with Polymaps. I wrote <a href="https://github.com/MonsterSwell/rd2wgs84">a little tool</a> to process geoJson files in the Dutch &#8220;Rijksdriehoekscoordinaten&#8221; format to a format that Polymaps supported, and within an afternoon I had a working copy of the aforementioned Dutchstats (but with six linked maps!)</p>
<p>Then came the hard work. Building the editor and viewer, linking up the values with the parts on the map and autogenerating the colour scheme. That turned out to be a bit longer process, and integrating it nicely with the Django backend took a fair couple of months.</p>
<p>This first version is something I&#8217;m really proud of. It&#8217;s the <strong>first mapping editor made fully in web technologies</strong> that&#8217;s easy enough for normal people to use, and the maps are then very easily distributable, via embedding, linking or printing.</p>
<h3>Municipalities I&#8217;ve been to &hellip; That I can remember!</h3>
<p><iframe src="http://statlas.nl/embed/municipalities-ive-been-to" scrolling="no" frameborder="0" style="width:100%;height:400px"></iframe></p>
<p>So, that&#8217;s <a href="http://statlas.nl">Statlas</a>. Check it out and let me know what you think!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/web/statlas-beta-release/">Statlas beta release</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=936&amp;md5=8eeb5b491acfabca848e4439f4878df4" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/Xwie7qI9Jfo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/web/statlas-beta-release/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2011%2Fweb%2Fstatlas-beta-release%2F&amp;language=en_GB&amp;category=text&amp;title=Statlas+beta+release&amp;description=For+the+past+few+months+me+and+the+rest+of+the+guys+at+Fluxility+have+been+working+on+Statlas%2C+a+website+that+makes+it+super+easy+for+anyone+to+make...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2011/web/statlas-beta-release/</feedburner:origLink></item>
		<item>
		<title>Fuck yeah Keming!</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/35syU9cfKXw/</link>
		<comments>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/#comments</comments>
		<pubDate>Mon, 30 May 2011 09:00:11 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=931</guid>
		<description><![CDATA[<blockquote><p>After seeing a horrible kerned image of type for the umpteenth time, I decided to do something about it!</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/design/fuck-yeah-keming/">Fuck yeah Keming!</a></p>
]]></description>
				<content:encoded><![CDATA[<p>Keeping profanity in the title like last week, <a href="http://fuckyeahkeming.com">Fuck yeah Keming</a> is the title of a new blog that I started, <strong>a celebration of horrendous kerning all over the internet.</strong><span id="more-931"></span></p>
<p>I decided to start a Fuck Yeah blog because I, perhaps immaturely, think that putting &#8220;Fuck yeah&#8221; in front of stuff makes it at least twice as cool. A day later someone on twitter said I should&#8217;ve named it &#8220;FLIck Yeah Keming&#8221; and have a double keming, which would&#8217;ve been even better if it wasn&#8217;t slightly confusing. Still, a missed opportunity.</p>
<p>Anyway, as I hadn&#8217;t announced it on my own blog yet, here is a copy of the introduction post I made on the blog:</p>
<h2>Welcorne!</h2>
<p>Hey all! After seeing a horrible kerned image of type for the umpteenth time, I decided to do something about it! And in true internet style, I of course make a <a href="http://fuckyeahtumblrblogs.tumblr.com/">Fuck yeah Blog</a>. You&#8217;re watching it right now!</p>
<p><img src="http://www.ironicsans.com/images/keming.gif"></p>
<p>Keming is a term coined by <a href="http://www.ironicsans.com/2008/02/idea_a_new_typography_term.html">Ironic Sans</a>. I am not associated with them, but they have an <a href="http://www.zazzle.com/ironicsans/gifts?cg=196275230271327298">awesome shirt</a> available.</p>
<p>The writer of this blog is <a href="http://kilianvalkhof.com">Kilian Valkhof</a>, A web developer/designer from the Netherlands. Suggestions welcome via the suggest button up top, or by sending a message to me via twitter: <a href="http://twitter.com/kilianvalkhof">@kilianvalkhof</a>.</p>
<p>Kem on!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/design/fuck-yeah-keming/">Fuck yeah Keming!</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=931&amp;md5=a37e3acf605cc7a47680e41e381ddf26" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/35syU9cfKXw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2011%2Fdesign%2Ffuck-yeah-keming%2F&amp;language=en_GB&amp;category=text&amp;title=Fuck+yeah+Keming%21&amp;description=Keeping+profanity+in+the+title+like+last+week%2C+Fuck+yeah+Keming+is+the+title+of+a+new+blog+that+I+started%2C+a+celebration+of+horrendous+kerning+all+over+the+internet....&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2011/design/fuck-yeah-keming/</feedburner:origLink></item>
		<item>
		<title>Annoying.js: How to be an asshole</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/bsJp5XzsDNY/</link>
		<comments>http://kilianvalkhof.com/2011/javascript/annoying-js-how-to-be-an-asshole/#comments</comments>
		<pubDate>Mon, 23 May 2011 09:00:28 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=925</guid>
		<description><![CDATA[<blockquote><p>As you can see, you can do some pretty bad things with JavaScript that will certainly drive your visitors away (or insane!)</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/javascript/annoying-js-how-to-be-an-asshole/">Annoying.js: How to be an asshole</a></p>
]]></description>
				<content:encoded><![CDATA[<p>In January I came across a website that had a whole slew of JavaScript that attempted to prevent you from selecting text, right clicking or dragging any content onto your desktop. I decided to copy the JavaScript and create a library with examples of JavaScript techniques you can use if you want to scare your visitors away, or want to piss them off. Annoying.js is the result.<span id="more-925"></span></p>
<h2>Annoying.js</h2>
<p><script src="https://gist.github.com/Kilian/767982.js"></script><br />
The file itself is commented with &#8220;functionality&#8221;, so I won&#8217;t bother repeating it here. You can invoke different functions via the <code>Annoying</code> object: <code>Annoying.noSelect();</code> will disable text selection, <code>Annoying.noRightClick();</code> will disable the context menu, and <code>Annoying.kitchensink();</code> Will turn all the functionality on. But you&#8217;re not going to use it anyway, right? ;)</p>
<h3>JavaScript is evil!</h3>
<p>As you can see, you can do some pretty bad things with JavaScript that will certainly drive your visitors away (or insane!). So why is this kind of functionality available? Some functions is actually very useful if you&#8217;re writing complex &#8220;html5&#8243; web applications. By disabling text-selection on interface elements you can make the application easier to use, and you can re-implement the right click menu using your own options. </p>
<p>Breaking out of iframes is something I think more websites should implement, actually, if only to prevent the &#8220;OMG!!!! Look What this Kid did to his School after being Expelled! &#8221; scams that all of my friends on Facebook keep falling for.</p>
<p>Using JavaScript to resize someone&#8217;s browser without consent should be reason enough to revoke someone&#8217;s license to making websites, though.</p>
<p>Let me know if you have any horrible additions!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/javascript/annoying-js-how-to-be-an-asshole/">Annoying.js: How to be an asshole</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=925&amp;md5=e466742a2fcd268f7e5d1740110f44fe" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/bsJp5XzsDNY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/javascript/annoying-js-how-to-be-an-asshole/feed/</wfw:commentRss>
		<slash:comments>78</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2011%2Fjavascript%2Fannoying-js-how-to-be-an-asshole%2F&amp;language=en_GB&amp;category=text&amp;title=Annoying.js%3A+How+to+be+an+asshole&amp;description=In+January+I+came+across+a+website+that+had+a+whole+slew+of+JavaScript+that+attempted+to+prevent+you+from+selecting+text%2C+right+clicking+or+dragging+any+content+onto+your...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2011/javascript/annoying-js-how-to-be-an-asshole/</feedburner:origLink></item>
		<item>
		<title>Laserey.es: Draw lasers from your eyes.</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/teCUp0-jy6A/</link>
		<comments>http://kilianvalkhof.com/2011/web/laserey-es-draw-lasers-from-your-eyes/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 10:00:40 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=900</guid>
		<description><![CDATA[<blockquote><p>Simply drag and drop an image from your computer onto the photo area (or connect with Facebook), and watch the magic happen!</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/web/laserey-es-draw-lasers-from-your-eyes/">Laserey.es: Draw lasers from your eyes.</a></p>
]]></description>
				<content:encoded><![CDATA[<p>Lasers are awesome, and shooting lasers from your eyes is more awesome. Unfortunately, shooting lasers from your eyes in real life is currently impossible. Let&#8217;s help you make yourself a little bit more awesome: <a href="http://laserey.es">Laser Eyes!</a><span id="more-900"></span></p>
<p>A while ago, <a href="http://vasilis.nl">Vasilis</a> asked for a web app that allowed you to draw lasers. Just drawing lasers is a bit boring though, so I took it a step further, and decided to use all the new cool html API&#8217;s for rendering and eye detection to shoot lasers from eyes. I <del>press-ganged</del> <ins>recruited</ins> <a href="http://paulchaplin.com">Paul Chaplin</a> to help build the site.</p>
<p>The result is <a href="http://laserey.es">Laser Eyes!</a>. Simply drag and drop an image from your computer onto the photo area (or connect with Facebook), and watch the magic happen!</p>
<h2>Facebook</h2>
<p>When building a web app, nowadays, you can&#8217;t <em>not</em> have Facebook integration. For Laser Eyes!, what I&#8217;d really wanted is the ability to, with one click set a laserified (it&#8217;s a word, alright?) image as your profile picture. So, you can&#8217;t do that. Most people said you can&#8217;t even get a full sized profile picture via the API. <a href="http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/">In fact, you can</a>. Once you connect Laser Eyes! with Facebook, you can load in your profile image and post any photo to Facebook into a special Laser Eyes! photo album.</p>
<p>&#8230;Then you can manually set your profile picture to the laserified version ;)</p>
<h2>Technical stuff</h2>
<p>Paul and I went all-out with new API&#8217;s and really used this as a project to try out new cool shit: Canvas, drag and drop, the file API, openCV, and <a href="http://ep.io">Ep.io</a>. Due to all these new things, support, for now, is limited to Google Chrome (but it&#8217;s really slow on mac) and Mozilla Firefox (fast everywhere). I&#8217;ll add in a more regular file uploader to support Opera and Safari soon.</p>
<p>Other stuff I want to improve is adding a bunch of photos to try it out and a color picker for people that like pink lasers. Or blue lasers. I&#8217;m open to other ideas, please send them to <a href="mailto:contact@laserey.es">contact@laserey.es</a>.</p>
<p>If you want to check out the javascript that powers all of Laser Eyes, the unminified, sparsely commented version is available <a href="http://laserey.es/media/javascripts/base.js">here</a>.</p>
<p><a href="http://laserey.es">Laser Eyes!</a> is hosted on <a href="http://ep.io">Ep.io</a>, a Python/Django cloud hosting system currently in private beta. The team at Ep.io has been super helpful with troubleshooting my app and openCV&#8217;s python bindings. Big thanks to them, and you should really consider them if you need an easy Python or Django hosting solution.</p>
<h3>In closing</h3>
<p>Working with new html5 api&#8217;s and python opencv bindings has been a lot of fun as well as somewhat of a nightmare. You can learn a ton, but some things are just so <em>weird</em>. I&#8217;m certain I did a whole bunch of stuff the worst way possible, and there are a bunch of weird bugs and errors that I hope people won&#8217;t notice when using the app. (Why are my strokes aliased in Chrome? Why do certain angles crash Firefox?? Why is it over 4 times as slow on Mac? And more of the sort). If you notice any of the bugs and know a solution, please let me know!</p>
<p>Now, go <a href="http://laserey.es">laserify yourself</a>.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/web/laserey-es-draw-lasers-from-your-eyes/">Laserey.es: Draw lasers from your eyes.</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=900&amp;md5=0ecdf9f1471cc41bfd9466aa896abaad" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/teCUp0-jy6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/web/laserey-es-draw-lasers-from-your-eyes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2011%2Fweb%2Flaserey-es-draw-lasers-from-your-eyes%2F&amp;language=en_GB&amp;category=text&amp;title=Laserey.es%3A+Draw+lasers+from+your+eyes.&amp;description=Lasers+are+awesome%2C+and+shooting+lasers+from+your+eyes+is+more+awesome.+Unfortunately%2C+shooting+lasers+from+your+eyes+in+real+life+is+currently+impossible.+Let%26%238217%3Bs+help+you+make+yourself+a...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2011/web/laserey-es-draw-lasers-from-your-eyes/</feedburner:origLink></item>
		<item>
		<title>Full size profile picture via the Facebook JavaScript SDK</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/0WEkA7AJEkA/</link>
		<comments>http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 08:00:12 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=878</guid>
		<description><![CDATA[<blockquote><p>All questions I found regarding getting a full size profile picture ended in "it can't be done". But I'm a stubborn guy, so I went to work with the Facebook Javascript SDK.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/">Full size profile picture via the Facebook JavaScript SDK</a></p>
]]></description>
				<content:encoded><![CDATA[<p>While working on a soon-to-be-released website, I needed the full-size profile picture of a Facebook user. Facebook has a shortcut for getting someone&#8217;s profile picture, but the largest image you can get is just 200 pixels wide which is not enough for my application. This is a quick article explaining how to get the full size image, as I wasn&#8217;t able to find it elsewhere.<span id="more-878"></span></p>
<h3>Getting the profile picture the normal way</h3>
<p>Getting via the normal way is quite easy, it&#8217;s this link: </p>
<p><strong>http://graph.facebook.com/&lt;user.id&gt;/picture?type=large</strong></p>
<p>If you&#8217;re happy with a 200px wide image, you&#8217;re best off using this link.</p>
<h2>Impossible?</h2>
<p>All questions I found regarding getting a full size profile picture ended in &#8220;it can&#8217;t be done&#8221;. But I&#8217;m a stubborn guy, so I <a href="http://forum.developers.facebook.net/viewtopic.php?pid=303869">asked about it again</a> on the Facebook developer forums and then went to work with the (horribly underdocumented) Facebook JavaScript SDK. I got it working and a couple of days later someone posted an FQL method as a reply to my forum thread. Both methods take two API calls, so it&#8217;s a matter of preference which one you want to use. I&#8217;m posting them both.</p>
<h3>Assumptions</h3>
<p>The following scripts assume a couple of things:</p>
<ul>
<li>You&#8217;re obviously using <a href="http://developers.facebook.com/docs/reference/javascript/">the Facebook javascript SDK</a></li>
<li>You have an <a href="http://developers.facebook.com/docs/reference/javascript/FB.login">authenticated Facebook user</a></li>
<li>You have requested <a href="http://developers.facebook.com/docs/authentication/permissions">permission to access</a> <strong>user_photos</strong></li>
<li>All you care about is the URL of the full size profile image</li>
</ul>
<h3>Graph API method</h3>
<p>The following Graph API method works by doing two API calls: The first requests all the user albums and gets the ID of the album with the name &#8220;Profile pictures&#8221;, the second gets the first image from that album. Conveniently, the current profile picture is always the first in the returned list.</p>
<pre><code>//Get a list of all the albums
FB.api('/me/albums', function (response) {
  for (album in response.data) {

    // Find the Profile Picture album
    if (response.data[album].name == "Profile Pictures") {

      // Get a list of all photos in that album.
      FB.api(response.data[album].id + "/photos", function(response) {

        //The image link
        image = response.data[0].images[0].source;

      });
    }
  }
});</code></pre>
<h3>FQL method</h3>
<p>The FQL method also requires two api calls: one to get the user id, and a second FQL query for that user&#8217;s profile picture. You could lower this to one API call if you store the user id sometime earlier.</p>
<pre><code>//get the current user id
FB.api('/me', function (response) {

  // the FQL query: Get the link of the image, that is the first in the album "Profile pictures" of this user.
  var query = FB.Data.query('select src_big from photo where pid in (select cover_pid from album where owner={0} and name="Profile Pictures")', response.id);
  query.wait(function (rows) {

    //the image link
    image = rows[0].src_big;
  });
});</code></pre>
<h3>There you go!</h3>
<p>A full size Facebook profile picture, free for you to do all sorts of cool stuff with.  Let me know if you build a cool Facebook app and have been able to use this!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/">Full size profile picture via the Facebook JavaScript SDK</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=878&amp;md5=a3220aa6c0424f684144062a476e672e" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/0WEkA7AJEkA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2011%2Fjavascript%2Ffull-size-profile-picture-via-the-facebook-javascript-sdk%2F&amp;language=en_GB&amp;category=text&amp;title=Full+size+profile+picture+via+the+Facebook+JavaScript+SDK&amp;description=While+working+on+a+soon-to-be-released+website%2C+I+needed+the+full-size+profile+picture+of+a+Facebook+user.+Facebook+has+a+shortcut+for+getting+someone%26%238217%3Bs+profile+picture%2C+but+the+largest+image+you...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2011/javascript/full-size-profile-picture-via-the-facebook-javascript-sdk/</feedburner:origLink></item>
		<item>
		<title>Guitar tabs as they should be: Guitaryst.com</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/E8JvLxDwgDU/</link>
		<comments>http://kilianvalkhof.com/2010/web/guitar-tabs-as-they-should-be-guitaryst-com/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 13:30:42 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=810</guid>
		<description><![CDATA[<blockquote><p>One of the annoying things when it comes to playing guitar from tabs on your screen, is having the guitar in your lap and having to <strong>reach over to type in the next song</strong></p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/guitar-tabs-as-they-should-be-guitaryst-com/">Guitar tabs as they should be: Guitaryst.com</a></p>
]]></description>
				<content:encoded><![CDATA[<p>After <a href="http://kilianvalkhof.com/2010/web/a-web-app-in-a-weekend-lystener-com/">Launching Lystener</a> I got a lot of requests for a &#8220;Lystener for guitar tablature&#8221;, including from my mother. After thinking about it for a while, I went to work and finished most of it in a weekend. I continued to tweak it for a bit, and I&#8217;m launching <a href="http://guitaryst.com">Guitaryst</a> today.<span id="more-810"></span></p>
<p><img src="http://guitaryst.djangy.com/media/images/logo3.png" alt="" style="float:right;padding-left:1.5em;"</p>
<h2>What is <a href="http://guitaryst.com">Guitaryst</a>?</h2>
<p>Just how <a href="http://lystener.com">Lystener</a> shows you the lyrics while you&#8217;re listening to the song, Guitaryst shows you the guitar tab. If you don&#8217;t know what guitar tabs are, <a href="http://en.wikipedia.org/wiki/ASCII_tab">Wikipedia has the answer</a>. Guitaryst works by search, or with <a href="http://last.fm">Last.fm</a>, <a href="http://like.fm">Like.fm</a> and <a href="http://libre.fm">Libre.fm</a>. I emailed the latter two and asked if they could add the API I needed for Lystener, and both did that ridiculously fast, so kudos to them. Definitely check them both out. </p>
<p>One of the annoying things when it comes to playing guitar from tabs on your screen, is having the guitar in your lap and having to <strong>reach over to type in the next song</strong>. But what&#8217;s also annoying is when you come to the bottom of the screen, the tab isn&#8217;t finished and you have to scroll to get to the next part.</p>
<p>I wanted Guitaryst to work <strong>without you <em>ever</em> having to touch your screen</strong>. So it should <em>Find the tab for you</em> and when it has it, <strong>Scroll it for you</strong>. Just scrolling at a set rate (like some other tab sites do) isn&#8217;t good enough though. I wanted tabs to scroll along with the song. With Guitaryst, you should never have to leave your guitar.</p>
<p>So I implemented another API, this time <a href="http://the.echonest.com">The Echonest</a> API. I can send the title and artist of a song to their api, and get the exact length of the song. This means that <strong>Guitaryst will scroll the tabs in sync with the song!</strong></p>
<p>Code-wise, Lystener and Guitaryst are almost the same, so &#8220;porting&#8221; it served as a nice incentive to clean up and improve on both. Lystener has changed a lot in the last couple of weeks, and this is mostly due to insight gained from building Guitaryst.</p>
<h3>iPad!</h3>
<p>I bought an iPad when it came out, and immediatelly thought of the awesome things you could do with it. So I used some webkit-fu to make Guitaryst work nicely on the iPad. You can install it to your home screen, it has a nice icon and looks pretty good. There are probably some improvements I can make yet (it only works in landscape mode, for example), so feel free to tell me where I dropped the ball.</p>
<h2>Djangy hosting</h2>
<p>Guitaryst is hosted at <a href="http://djangy.com">Djangy</a>, a &#8220;Heroku for Django&#8221;. I got a private beta invite, tried it out and apart from some obscure stuff with my nonstandard Git config, it&#8217;s worked flawless. No longer do I have to mess around with vhost files, wsgi settings and database stuff, Djangy does it all. They saw my app when I was still testing it and liked it so much they wanted to mention it at their <a href="http://blog.djangy.com/2010/11/17/djangy-spotlight-guitaryst/">blog</a>, so that was nice.</p>
<p><strong>I have private beta invites</strong> for 10 interested people. Comment in the replies with a valid e-mail address if you want one, and tell me what you want to do with them!</p>
<h2>Guitaryst and Lystener</h2>
<p>I&#8217;m sensing a trend, and I would love to expand this into more areas. Alas, other music data is hard to find. I&#8217;ll try getting a bass tab version going soon. I decided against adding Amazon referral links and Youtube videos as I really like the interface as it is now, but I will probably add one or both in the next couple of weeks, in a non-obtrusive way.</p>
<p>Guitaryst has it&#8217;s own twitter account: <a href="http://twitter.com/guitaryst">@guitaryst</a>, so follow that to continue getting updates. Please let me know what you think of guitaryst in the replies, <a href="http://twitter.com/kilianvalkhof">on twitter</a> or via <a href="mailto:kilian@guitaryst.com">kilian@guitaryst.com</a>.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/guitar-tabs-as-they-should-be-guitaryst-com/">Guitar tabs as they should be: Guitaryst.com</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=810&amp;md5=00e45f73fb86cba485328dac2a405b48" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/E8JvLxDwgDU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/web/guitar-tabs-as-they-should-be-guitaryst-com/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2010%2Fweb%2Fguitar-tabs-as-they-should-be-guitaryst-com%2F&amp;language=en_GB&amp;category=text&amp;title=Guitar+tabs+as+they+should+be%3A+Guitaryst.com&amp;description=After+Launching+Lystener+I+got+a+lot+of+requests+for+a+%26%238220%3BLystener+for+guitar+tablature%26%238221%3B%2C+including+from+my+mother.+After+thinking+about+it+for+a+while%2C+I+went+to+work...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2010/web/guitar-tabs-as-they-should-be-guitaryst-com/</feedburner:origLink></item>
		<item>
		<title>Flickr, please fix your API!</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/0B5XeCW_oA8/</link>
		<comments>http://kilianvalkhof.com/2010/web/flickr-fix-your-api/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 08:00:35 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=851</guid>
		<description><![CDATA[<blockquote><p>I have a sickeningly adorable Red panda on my error page that should see you through to the next page refresh.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/flickr-fix-your-api/">Flickr, please fix your API!</a></p>
]]></description>
				<content:encoded><![CDATA[<p>The past weekend, I built <a href="http://randomcuteanimal.com">randomcuteanimal.com</a>, which shows you a random CC-licensed Flickr photo of a cute animal. This being <em>cute</em> animals, I have to block out a lot of words such as &#8220;dead&#8221;, &#8220;scary&#8221;, &#8220;disgusting&#8221;, but also &#8220;playboy&#8221; (different bunnies here!), &#8220;tracks&#8221; (animal tracks aren&#8217;t cute), &#8220;stuffed&#8221;, &#8220;knitted&#8221; (only real animals!) and a boatload of other tags just to make sure you don&#8217;t suddenly stare at a disemboweled sea otter (That happened. <em>Not cute</em>). But the Flickr API has different ideas.<span id="more-851"></span></p>
<h2>No dead animals please</h2>
<p><a href="http://www.flickr.com/services/api/flickr.photos.search.html">Flickr&#8217;s photo search API</a> allows you to search by excluding certain tags. This is great, because it means I can filter out all sorts of stuff that you just don&#8217;t want to see while looking for cute animals, such as anything concerning dead, shooting, fighting but also knitting, graffiti, skulls, playboy (bunnies), fur and stuff I hadn&#8217;t even imagined would give problems, such as &#8220;kitchen&#8221;, &#8220;makeup&#8221;, &#8220;art&#8221;, and a whole slew of other tags.</p>
<p>But it seems that exclusion tags are merely a suggestion to Flickr. Flickr doesn&#8217;t really seem to care when I say I don&#8217;t want dead animals. Every now and then, it just slips one in to see if I notice. Unfortunately the difference is pretty clear. On the other side, seeing a knitted hedgehog isn&#8217;t quite as offensive, but it isn&#8217;t quite a real animal, either.</p>
<p>What it comes down to though, is this: if you want to look at just some cute animals, a dead rodent is a major buzzkill.</p>
<p>This really is my biggest problem, and I don&#8217;t have a solution for it yet other than obsessively blacklisting individual photos. Suggestions are <em>very welcome</em></p>
<h2>Not that photo again!</h2>
<p>When I select photo&#8217;s, I request a random search page between page 1 and 10000, with each search page containing one photo. You&#8217;d think the odds of the same photo popping up twice would be really minimal, right? As it turns out, the page attribute is also merely a suggestion to the API. There are a number of photos that just keep popping up for everyone, up to a point where they&#8217;re the only photo visible. Now, my random number generator <a href="http://xkcd.com/221/">isn&#8217;t broken</a>, so it&#8217;s definitely happening at Flickr&#8217;s end. </p>
<p><a href="http://www.flickr.com/photos/dannyman/4474193612/">This photo is really cute</a>, but it starts to lose it&#8217;s shine after <em>randomly</em> showing for the tenth time.</p>
<p>Luckily I can circumvent this by checking if I already showed you this photo, and then requesting another one. I&#8217;m kind of forcing randomness here, I guess.</p>
<h2>Sometimes, one means zero</h2>
<p>Lastly, I tell the API to only return one photo, because, well, I only need to display one, and requesting more is wasting both my and Flickr&#8217;s bandwidth. However sometimes in the API one means zero and no photo gets returned. It doesn&#8217;t give an error or anything, but it doesn&#8217;t give me a photo either. This problem goes away entirely when you request two photos. So that&#8217;s what I do now. If it does go wrong again, I have a sickeningly adorable <a href="http://randomcuteanimal.com/500">Red panda</a> on my error page that should see you through to the next page refresh.</p>
<p>Thus concludes a weekend of playing with the Flickr API. The above three problems are <em>very annoying</em> so I hope Flickr will improve their search to fix these problems. If only so I can show people even more <a href="http://randomcuteanimal">cute animals</a> ;)</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/flickr-fix-your-api/">Flickr, please fix your API!</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=851&amp;md5=2aa17ff11e3f9e02f20efbeddbf8a49b" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/0B5XeCW_oA8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/web/flickr-fix-your-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2010%2Fweb%2Fflickr-fix-your-api%2F&amp;language=en_GB&amp;category=text&amp;title=Flickr%2C+please+fix+your+API%21&amp;description=The+past+weekend%2C+I+built+randomcuteanimal.com%2C+which+shows+you+a+random+CC-licensed+Flickr+photo+of+a+cute+animal.+This+being+cute+animals%2C+I+have+to+block+out+a+lot+of...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2010/web/flickr-fix-your-api/</feedburner:origLink></item>
		<item>
		<title>Which one of these is not a web browser?</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/K9VuFik6LAA/</link>
		<comments>http://kilianvalkhof.com/2010/web/which-one-of-these-is-not-a-browser/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 08:00:40 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=835</guid>
		<description><![CDATA[<blockquote><p>Who cares if people don't know the difference between a browser and a search engine.</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/which-one-of-these-is-not-a-browser/">Which one of these is not a web browser?</a></p>
]]></description>
				<content:encoded><![CDATA[<p>Getting people to understand what we webdevelopers do can be hard. Just look at the infamous Google video <a href="http://www.youtube.com/watch?v=o4MwTvtyrUQ">asking people what a web browser is</a>, with no one having a clue. <a href="http://www.omgubuntu.co.uk/2010/10/which-of-these-is-not-a-web-browser/">OMG!Ubuntu!</a> recently posted about something similar, where a question on the Indian &#8220;Who wants to be a millionaire&#8221; was <em>&#8220;Which one of these is not a web browser?&#8221;</em>. The choice was between Firefox, Opera, Facebook and Chrome. Did the contestant pick correctly?<span id="more-835"></span></p>
<p><img src="http://kilianvalkhof.com/uploads/wwtam.jpg" alt="screenshot of the television show" style="width:100%"></p>
<h3>She did!</h3>
<p>&hellip;But it took the entire audience.</p>
<p>What interested me though, is the conclusion OMG!Ubuntu! came with:</p>
<blockquote><p>But dig a little deeper and people are actually a lot smarter than given credit for. Had those people [...] been given a laptop and asked to log in to Facebook the majority would’ve managed it fine.</p>
</blockquote>
<p>And that&#8217;s just it. Who cares if people don&#8217;t know the difference between a browser and a search engine. They can use their computers to visit <em>your website</em>, that&#8217;s awesome. </p>
<h2>Apps</h2>
<p>On Ubuntu (and mac OSX, too) the lines between a web app and a desktop app are blurring. You can use <a href="http://www.appcelerant.com/titanium-preview-release-pr3.html">HTML + CSS + javascript to make desktop apps</a>, and websites can be <a href="http://mozillalabs.com/prism/">installed as if they were regular applications</a>. With desktop and web apps blurring together, the concept of a browser is getting increasingly vague.</p>
<p>Knowing what a browser is isn&#8217;t important, it&#8217;s knowing how to use one that is.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/which-one-of-these-is-not-a-browser/">Which one of these is not a web browser?</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=835&amp;md5=69eb2af98b82e31bacd433a12860eb7d" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/K9VuFik6LAA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/web/which-one-of-these-is-not-a-browser/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2010%2Fweb%2Fwhich-one-of-these-is-not-a-browser%2F&amp;language=en_GB&amp;category=text&amp;title=Which+one+of+these+is+not+a+web+browser%3F&amp;description=Getting+people+to+understand+what+we+webdevelopers+do+can+be+hard.+Just+look+at+the+infamous+Google+video+asking+people+what+a+web+browser+is%2C+with+no+one+having+a...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2010/web/which-one-of-these-is-not-a-browser/</feedburner:origLink></item>
		<item>
		<title>Open source updates</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/L57eU6r3AjE/</link>
		<comments>http://kilianvalkhof.com/2010/web/open-source-updates/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 08:00:30 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SenCSs]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=796</guid>
		<description><![CDATA[<blockquote></p>Announced at the beginning of this year, Grafico has seen a bunch of cool improvements</p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/open-source-updates/">Open source updates</a></p>
]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a while since I&#8217;ve written about a bunch of my open source projects, but that doesn&#8217;t mean they&#8217;re not still being maintained. Trimage, Grafico, F.lux and SenCSs are all still actively worked on. Read on to find out what&#8217;s been happening with them.<span id="more-796"></span></p>
<h2>SenCSs</h2>
<p>When last <a href="http://kilianvalkhof.com/2010/sencss/sencss-0-7-is-out/">written about</a>, SenCSs was at version 0.7. We&#8217;re currently at version 0.8.1, with a bunch of vertical rhythm fixes, mostly for form elements, and added support for HTML5 elements. You can now add it to the list of &#8220;HTML5 CSS frameworks&#8221;. ;) Though, &#8220;framework&#8221; it is not, so I decided to just rename it to what it is: a Baseline. </p>
<p>Get more info at <a href="http://sencss.kilianvalkhof.com">SenCSs.kilianvalkhof.com</a></p>
<h2>F.lux for Ubuntu</h2>
<p>After releasing <a href="http://kilianvalkhof.com/2010/linux/flux-for-ubuntu/">F.lux for Ubuntu</a> this summer, It went from 1.1.1 to 1.1.8 mostly improving stability and making different parts of the application (such as the preview button) work more like users expect. I&#8217;ve also been working on KDE/XFCE support, which was kind of finnicky due to the way I select the indicator applet icon. Version 1.1.9, which will be released soon, will hopefully bring this support. After that, it&#8217;s onward to 1.2, which will include the &#8216;turn off for an hour&#8217; functionality.</p>
<p>Get more info at <a href="http://stereopsis.com/flux/linux.html">stereopsis.com/flux/linux.html</a></p>
<h2>Trimage</h2>
<p>After announcing Trimage in <a href="http://kilianvalkhof.com/2010/web/trimage-image-compressor/">March of this year</a>, I&#8217;ve gone from 1.0.0-beta to 1.0.5, with a slew of added functionality in between. I&#8217;ve gotten a lot of help from people such as <a href="http://github.com/kalmi">Tarnay Kálmán</a> and <a href="http://github.com/bistory">Thomas Lété</a> in adding cool new functions. Here&#8217;s what has changed since 1.0.0:</p>
<ul>
<li>Correct unicode support for all filenames</li>
<li>Adding a notification area icon</li>
<li>Using a threadpool for processing (much faster)</li>
<li>Showing more statistics when compressing</li>
<li>Window geometry and last opened directory are now remembered</li>
<li>Ability to drag in entire folders</li>
<li>Prevent Trimage from overwriting already smaller images</li>
<li>Add PNGcrush to get even better compression</a>
<li>Miscelanious speed improvements</li>
</ul>
<p>A while ago I tried getting Trimage into Debian via <a href="http://mentors.debian.net/cgi-bin/welcome">debian-mentors</a>. This was unfortunately a very opaque process and in the end no-one wanted to sponsor Trimage despite numerous changes to the build system. I&#8217;d still like to get Trimage into the main repositories, so if anyone wants to help me out, that would be greatly appreciated.</p>
<p>For 1.1, <a href="http://paulchaplin.com">Paul</a> is going to update the command line options and generally use his python-fu to improve stuff.</p>
<p>Get more info at <a href="http://trimage.org">trimage.org</a></p>
<h2>Grafico</h2>
<p>Announced at the beginning of this year, Grafico has seen a bunch of cool improvements. Within a week, Jan Paul Posma implemented stream graph functionality (after I mentioned the math was much too hard for me, ahem&hellip;). Since then, <a href="http://github.com/suranyami">David Parry</a> added <a href="http://grafico.kilianvalkhof.com/documentation/index.html#stackbar">stacked bar charts</a>, <a href="http://github.com/rymai">Rémy Coutable</a> greatly improved my hover code while <a href="http://github.com/japetheape">Jaap van der Meer</a> improved the control of text in the hovers, <a href="http://github.com/menno">Menno van der Sman</a> implemented an <em>awesome</em> axis-value algorithm and a lot of options have become much more customizable. Most charts now support negative values as well as positive values, and I&#8217;ve done a whole slew of bug fixes and speed improvements.</p>
<p>Get more info at <a href="http://grafico.kilianvalkhof.com">Grafico.kilianvalkhof.com</a></p>
<p>All in all, a whole bunch of work by a whole bunch of awesome people!</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/web/open-source-updates/">Open source updates</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=796&amp;md5=5f7c88276be52ba4db9b12318d0362b2" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/L57eU6r3AjE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/web/open-source-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2010%2Fweb%2Fopen-source-updates%2F&amp;language=en_GB&amp;category=text&amp;title=Open+source+updates&amp;description=It%26%238217%3Bs+been+a+while+since+I%26%238217%3Bve+written+about+a+bunch+of+my+open+source+projects%2C+but+that+doesn%26%238217%3Bt+mean+they%26%238217%3Bre+not+still+being+maintained.+Trimage%2C+Grafico%2C+F.lux+and+SenCSs+are...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2010/web/open-source-updates/</feedburner:origLink></item>
		<item>
		<title>Book review: How pleasure works</title>
		<link>http://feedproxy.google.com/~r/Kilianvalkhofcom/~3/X8UvAOzQNRs/</link>
		<comments>http://kilianvalkhof.com/2010/css-xhtml/book-review-how-pleasure-works/#comments</comments>
		<pubDate>Sat, 25 Sep 2010 08:00:09 +0000</pubDate>
		<dc:creator>Kilian Valkhof</dc:creator>
				<category><![CDATA[CSS & (X)HTML]]></category>

		<guid isPermaLink="false">http://kilianvalkhof.com/?p=785</guid>
		<description><![CDATA[<blockquote><p>Bloom argues that all people are essentialist. They perceive humans, animals and objects to have an innate essence. </p></blockquote><p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/css-xhtml/book-review-how-pleasure-works/">Book review: How pleasure works</a></p>
]]></description>
				<content:encoded><![CDATA[<p>A while ago, <a href="http://twitter.com/taphangum">Tapha</a> e-mailed me asking if I wanted to write a <em>blurb</em> for <a href="http://blurb.fm/">Blurb.fm</a>. I took him up on the challenge, and wrote a review of &#8220;How pleasure works&#8221;, by Paul Bloom, a book I just finished. I am re-publishing it here on my blog.<span id="more-785"></span></p>
<p>As a sidenote, you should really sign up for <a href="http://blurb.fm/">Blurb.fm</a>. I don&#8217;t read enough books. I really want to, but I just don&#8217;t make the time. Blurb.fm is a great way to still get the general gist of interesting non-fiction books, ranging from inspirational biographies to neuro-pop-science books such as &#8220;how we decide&#8221; (Jonah Lehrer, highly recommended!). No, I&#8217;m not getting paid to say this ;) (though feel free to Flattr if you like this). Now without further ado, the review:</p>
<h2>How pleasure works</h2>
<p>“How pleasure works” is a book about religion, cannibalism, fake vomit, virgins, family guy and pornography for monkeys. Not things you would immediately associate with pleasure. And yet the author, Paul Bloom, manages to weave these topics and accompanying stories into an intricate pattern of, indeed, how pleasure works.</p>
<p> Humans are unique in the way they feel pleasure. What other species has teenagers that enjoy cutting themselves with razors, adults that enjoy spending evening after evening in front of the television more than socially interacting with others, or individuals that would pay tens of thousands of dollars for a tape deck used by J.F. Kennedy? Humans, when it comes to pleasure, are pretty unique.</p>
<p>Paul Bloom is a professor of Psychology and cognitive science at Yale university. He researches how children and adults understand the world, language, fiction and art. This research is often used as starting points for different parts of “How Pleasure Works”.</p>
<h3>Essentialists</h3>
<p>Bloom argues that all people are essentialist. They perceive humans, animals and objects to have an innate essence. Or as Bloom himself says, the idea that things &#8220;have an underlying reality or true nature&#8221;, and that it is this true nature that really matters. To support this notion, Bloom describes research he did with very young children. The kids were first shown a picture of a tiger, and then a picture of the same tiger, made to look like a lion. They were told that this happened (the tiger now looked like a lion) and were subsequently asked if the tiger was still a tiger, or if it had become a lion. Of course, the children insisted that once a tiger, always a tiger. But while this feels logical to us, it means there is something more to the tiger than it&#8217;s mere outside. There is something inside the tiger that makes it, inherently, a tiger. Why do humans do this?</p>
<p>As it turns out, this essentialism helped our ancestors make sense of the world. It helped them categorize the world into friend and foe, deadly and edible. Our illogical sources of pleasure, Bloom argues, are side effects of this essentialism. Side effects, because pleasures didn&#8217;t evolve as a biological adaption to the world. Quite often, you would make better decisions if pleasure wasn&#8217;t involved. However, pleasures evolved in us as a byproduct of other, actually useful traits.</p>
<p>Take for example pornography. No biologist could argue with a straight face that pornography is useful for the proliferation of our species. In fact it might very well be detrimental, because without it we would undoubtedly spent more time with lovers of flesh and blood. However, the pleasure we derive from watching pornography comes from another source: the urge to look at &#8220;attractive naked people&#8221;, causing us to want sex.</p>
<h3>What does it mean to be &#8220;adaptive&#8221;?</h3>
<p>It is this realization that returns and returns in &#8216;How pleasure works&#8217;. Why do we enjoy books, movies, gaming art or even daydreaming so much? Bloom says, &#8220;Surely we would be better off pursuing more adaptive activities&#8221;. It&#8217;s just that, retreating into imagined worlds, the pleasure is almost as real as the real thing. &#8220;Reality Lite&#8221;, as Bloom calls it. Our ability to imagine things, and think of them as having essences, both adaptive advantages, make perceiving pleasure above and beyond merely pleasure derived from sensory stimulating activities possible.</p>
<p>Art is a prime example of the way this works. Art can be visually stimulating. It can be pretty. But much of the pleasure we get from art is &#8220;rooted in an appreciation of the human history underlying it&#8217;s creation&#8221;. In other words, it&#8217;s essence. The books opens with an anecdote about Van Meegeren being arrested for selling a Vermeer (A historical treasure!) to the Nazi leader Herman Goering. After six weeks in prison, Van Meegeren confessed. Not to selling a Vermeer, but to making and selling a fake. Upon hearing this, Goebing looked &#8220;as if for the first time he had discovered there was evil in the world&#8221;. This is remarkable, because for all intents and purposes, a Van Meegeren couldn&#8217;t be distinguished from a Vermeer (To prove his claim, Van Meegeren had to paint another &#8220;Vermeer&#8221;, only then was he believed).</p>
<p>It is thus the way “How pleasure works” is written. Reading this book won&#8217;t tell you how to be happier, how to get pleasure from your work or how to spend your time more usefully than watching television at night. But it will tell you how pleasure works.</p>
<p>This article is written by Kilian Valkhof, Front-end developer & User experience designer. Please visit <a href="http://kilianvalkhof.com">KilianValkhof.com</a> for more articles!<br/><br/><a href="http://kilianvalkhof.com/2010/css-xhtml/book-review-how-pleasure-works/">Book review: How pleasure works</a></p>
 <p><a href="http://kilianvalkhof.com/?flattrss_redirect&amp;id=785&amp;md5=380d1d5104f6b4602860bae721b5fcf0" title="Flattr" target="_blank"><img src="http://kilianvalkhof.com/wp-content/plugins/flattrss/img/flattr-badge-large.png" alt="flattr this!"/></a></p><img src="http://feeds.feedburner.com/~r/Kilianvalkhofcom/~4/X8UvAOzQNRs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kilianvalkhof.com/2010/css-xhtml/book-review-how-pleasure-works/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=28694&amp;popout=1&amp;url=http%3A%2F%2Fkilianvalkhof.com%2F2010%2Fcss-xhtml%2Fbook-review-how-pleasure-works%2F&amp;language=en_GB&amp;category=text&amp;title=Book+review%3A+How+pleasure+works&amp;description=A+while+ago%2C+Tapha+e-mailed+me+asking+if+I+wanted+to+write+a+blurb+for+Blurb.fm.+I+took+him+up+on+the+challenge%2C+and+wrote+a+review+of+%26%238220%3BHow+pleasure...&amp;tags=blog" type="text/html" />
	<feedburner:origLink>http://kilianvalkhof.com/2010/css-xhtml/book-review-how-pleasure-works/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.804 seconds. --><!-- Cached page generated by WP-Super-Cache on 2013-05-21 11:24:24 --><!-- Compression = gzip -->
