<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>CHangeloS</title>
	<atom:link href="http://changelos.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://changelos.com</link>
	<description>Angelo&#039;s bright little corner</description>
	<lastBuildDate>Mon, 13 Feb 2012 14:46:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='changelos.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6a4354439c8639b455e91f8af17c00b0?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>CHangeloS</title>
		<link>http://changelos.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://changelos.com/osd.xml" title="CHangeloS" />
	<atom:link rel='hub' href='http://changelos.com/?pushpress=hub'/>
		<item>
		<title>Devnology community day 2012</title>
		<link>http://changelos.com/2012/02/11/devnology-community-day-2012/</link>
		<comments>http://changelos.com/2012/02/11/devnology-community-day-2012/#comments</comments>
		<pubDate>Sat, 11 Feb 2012 17:43:19 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community day]]></category>
		<category><![CDATA[devnology]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=329</guid>
		<description><![CDATA[First up: for those that don&#8217;t know Devnology, you probably should. Visit devnology.nl and sign up for one of the upcoming event! Devnology&#8217;s third Community Day took place at Vx Company in Baarn, in the best-furnished basement I ever visited. The community day is like a one-day conference with blocks of time carved out for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=329&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First up: for those that don&#8217;t know Devnology, you probably should. Visit <a href="http://devnology.nl" title="devnology.nl">devnology.nl</a> and sign up for one of the upcoming event!</p>
<p>Devnology&#8217;s third Community Day took place at <a href="http://www.vxcompany.com/" title="Vx Company">Vx Company</a> in Baarn, in the best-furnished basement I ever visited. The community day is like a <a href="http://devnology.nl/nl/bijeenkomsten/details/43-community-day-2012" title="Schedule community day">one-day conference</a> with blocks of time carved out for different sessions and workshops; I&#8217;m only human and have not experienced them all, so I just picked the ones I was a part of.</p>
<h3>You shall not pass</h3>
<p><a href="http://changelos.files.wordpress.com/2012/02/untitled-26.jpg"><img src="http://changelos.files.wordpress.com/2012/02/untitled-26.jpg?w=300&#038;h=199" alt="" title="Geeks in Snow" width="300" height="199" class="alignnone size-medium wp-image-339" /></a></p>
<p>Not exactly an activity, but it is becoming a tradition for the Community Day: upon arrival, we find closed gates. After some 45 minutes, a security guard shows up, and once inside, things start heating up. Literally: it was roughly -15 C outside, with blue skies and some sunshine, making it not all that unpleasant. I have never skied, but I imagine this is what apres ski feels like.</p>
<h3>Cloud9, or, why do I install all of this stuff</h3>
<p><a href="https://twitter.com/mikedeboer" title="Mike de Boer">Mike de Boer</a> is a developer at Cloud9, and gave a very nice introductory talk into the way Cloud9 </p>
<blockquote><p>&#8220;is to Eclipse as Google Docs is to MSOffice&#8221;</p></blockquote>
<p>I liked the way he walked us through the various features and advantages of Cloud9, but I would have liked a more developer-oriented pitch. We were shown a quick demo of debugging and live changes, but nothing showed up that made me go &#8220;wow, time to ditch IntelliJ, Eclipse and TextMate at the same time!&#8221;</p>
<h3>To inifinity, and beyond!</h3>
<p><a href="http://changelos.files.wordpress.com/2012/02/untitled-29.jpg"><img src="http://changelos.files.wordpress.com/2012/02/untitled-29.jpg?w=300&#038;h=199" alt="" title="To infinity and beyond" width="300" height="199" class="alignnone size-medium wp-image-341" /></a></p>
<p>Never too shabby to take an engineer out of his comfort zone, into the land of mathematics, <a href="https://twitter.com/felienne" title="Felienne Hermans">Felienne Hermans</a> flipcharted her way from ancient Greece&#8217;s Zeno&#8217;s Paradox through the more modern notion of Hilbert&#8217;s Hotel. Felt a bit like infinity-related excerpts from <a href="http://www.amazon.com/Clockwork-Universe-Newton-Society-ebook/dp/B004GB1TTA" title="The Clockwork Universe">The Clockwork Universe</a>, all compressed into roughly an hour. Also, I&#8217;m very charmed by the let&#8217;s-have-a-flipchart-and-start-talking way of presenting.</p>
<p>On a slightly less related note, it was her birthday!</p>
<p><a href="http://changelos.files.wordpress.com/2012/02/untitled-28.jpg"><img src="http://changelos.files.wordpress.com/2012/02/untitled-28.jpg?w=300&#038;h=200" alt="" title="Birthday cake" width="300" height="200" class="alignnone size-medium wp-image-340" /></a></p>
<h3>Clojurescript</h3>
<p><a href="http://changelos.files.wordpress.com/2012/02/untitled-30.jpg"><img src="http://changelos.files.wordpress.com/2012/02/untitled-30.jpg?w=300&#038;h=199" alt="" title="Clojurescript" width="300" height="199" class="alignnone size-medium wp-image-342" /></a></p>
<p><a href="https://twitter.com/mamersfo" title="Martin van Amersfoort">Martin van Amersfoort</a> led a 150-minute workshop on Clojurescript. What I really liked is the way he built up the workshop, starting at the language level, getting the tools set up, and slowly moving up to the actual subject, running Clojure on top of JavaScript.</p>
<p>What I didn&#8217;t like so much is that there was too much material for the reserved timeslot; probably a day&#8217;s worth of material paraded by in some two hours, barely leaving time for hands-on Clojuring. I hope Martin finds the time reduce the amount of material (to, let&#8217;s say an afternoon), then I&#8217;ll be first in line again!</p>
<h3>A programming language is a language too, right?</h3>
<p><a href="http://changelos.files.wordpress.com/2012/02/untitled-31.jpg"><img src="http://changelos.files.wordpress.com/2012/02/untitled-31.jpg?w=198&#038;h=300" alt="" title="Philosophy of language" width="198" height="300" class="alignnone size-medium wp-image-344" /></a></p>
<p>My day ended with <a href="https://twitter.com/mrijn" title="Michel Rijnders">Michel Rijnders</a> doing some storytelling on how he started out as a philosopher by trade, and recently stumbled onto his books on the philosophy of language. There surely should be a link between human language and programming, right?</p>
<p>Well, no. As Michel expertly showed, even though human language is all about conveying meaning and alluding to another person&#8217;s mental model of the world, the link to programming is pretty slim. Since in science there is no such thing as a failed experiment, I enjoyed this deviation from our usual programming-the-world view.</p>
<p>It later dawned on me that there may perhaps be more of a link between programming and classic poetry: both force you to take your ideas, and fit them into a strict harness. Any thoughts on that, Michel?</p>
<p><small><em>About the photos</em>: you may know my photo gear is pretty retro, and I usually touch up the most annoying artifacts after scanning. This time, the weather (condensation along the bottom of the film strip) and the processing laboratory (numerous slanted, almost horizontal scratches) got the better of me.</small></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/329/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=329&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2012/02/11/devnology-community-day-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2012/02/untitled-26.jpg?w=300" medium="image">
			<media:title type="html">Geeks in Snow</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2012/02/untitled-29.jpg?w=300" medium="image">
			<media:title type="html">To infinity and beyond</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2012/02/untitled-28.jpg?w=300" medium="image">
			<media:title type="html">Birthday cake</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2012/02/untitled-30.jpg?w=300" medium="image">
			<media:title type="html">Clojurescript</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2012/02/untitled-31.jpg?w=198" medium="image">
			<media:title type="html">Philosophy of language</media:title>
		</media:content>
	</item>
		<item>
		<title>Roomba and Poang: they can live happily together</title>
		<link>http://changelos.com/2011/10/08/roomba-and-poang-they-can-live-happily-together/</link>
		<comments>http://changelos.com/2011/10/08/roomba-and-poang-they-can-live-happily-together/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 18:45:05 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[firstworldproblems]]></category>
		<category><![CDATA[poang]]></category>
		<category><![CDATA[roomba]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=316</guid>
		<description><![CDATA[Oh yes, it&#8217;s such a first world problem. Yet, my Roomba has gotten stuck on my Ikea Poang chairs, about once every four or five runs. The solution I came to was elevating the chair a little bit. I bought some wooden wheels at Praxis (these are 60mm ones, intended to work as a wheel [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=316&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Oh yes, it&#8217;s such a first world problem. Yet, my Roomba has gotten stuck on my Ikea Poang chairs, about once every four or five runs.</p>
<span style="text-align:center; display: block;"><a href="http://changelos.com/2011/10/08/roomba-and-poang-they-can-live-happily-together/"><img src="http://img.youtube.com/vi/heA2G93-5a4/2.jpg" alt="" /></a></span>
<p>The solution I came to was elevating the chair a little bit. </p>
<p>I bought some wooden wheels at Praxis (these are 60mm ones, intended to work as a wheel for, for instance, a storage box, or as helper wheels for a chair).<br />
<a href="http://changelos.files.wordpress.com/2011/10/wheels-from-praxis.jpg"><img src="http://changelos.files.wordpress.com/2011/10/wheels-from-praxis.jpg?w=150&#038;h=112" alt="" title="Wheels from Praxis" width="150" height="112" class="alignnone size-thumbnail wp-image-324" /></a></p>
<p>They are intended to work as wheels, so they are built to have an axle in them. We want to screw them onto out chair, but without the screw sticking out; so, I made sure the screw would recess using a counter sink.<br />
<a href="http://changelos.files.wordpress.com/2011/10/prepare-with-a-counter-sink.jpg"><img src="http://changelos.files.wordpress.com/2011/10/prepare-with-a-counter-sink.jpg?w=150&#038;h=112" alt="" title="Prepare with a counter sink" width="150" height="112" class="alignnone size-thumbnail wp-image-321" /></a></p>
<p>Prepare the chair by pre-drilling some holes. I used a 3mm drill for this. Since the wheels&#8217; 60mm is just as wide as the chair&#8217;s legs, there is no need to measure anything, just use your hand as a guide.<br />
<a href="http://changelos.files.wordpress.com/2011/10/drill-the-hole-using-your-hand-as-a-guide.jpg"><img src="http://changelos.files.wordpress.com/2011/10/drill-the-hole-using-your-hand-as-a-guide.jpg?w=150&#038;h=112" alt="" title="Drill the hole, using your hand as a guide" width="150" height="112" class="alignnone size-thumbnail wp-image-319" /></a></p>
<p>Then, attach the wheels. I used 3.5x20mm screws.<br />
<a href="http://changelos.files.wordpress.com/2011/10/attach-the-wheels.jpg"><img src="http://changelos.files.wordpress.com/2011/10/attach-the-wheels.jpg?w=150&#038;h=112" alt="" title="Attach the wheels" width="150" height="112" class="alignnone size-thumbnail wp-image-318" /></a><a href="http://changelos.files.wordpress.com/2011/10/screws-3-5x20mm.jpg"><img src="http://changelos.files.wordpress.com/2011/10/screws-3-5x20mm.jpg?w=150&#038;h=112" alt="" title="Screws, 3.5x20mm" width="150" height="112" class="alignnone size-thumbnail wp-image-322" /></a></p>
<p>To top it all of, attach some felt protectors. I had some Ikea Praktisk protectors lying around.<br />
<a href="http://changelos.files.wordpress.com/2011/10/attach-some-felt-protectors.jpg"><img src="http://changelos.files.wordpress.com/2011/10/attach-some-felt-protectors.jpg?w=150&#038;h=112" alt="" title="Attach some felt protectors" width="150" height="112" class="alignnone size-thumbnail wp-image-317" /></a><a href="http://changelos.files.wordpress.com/2011/10/felt-protectors-i-used-ikea-praktisk.jpg"><img src="http://changelos.files.wordpress.com/2011/10/felt-protectors-i-used-ikea-praktisk.jpg?w=150&#038;h=112" alt="" title="Felt protectors, I used Ikea Praktisk" width="150" height="112" class="alignnone size-thumbnail wp-image-320" /></a></p>
<p>There you go! The chair is now just high enough so the Roomba&#8217;s bumper will hit the chair instead of bravely trying to climb over it. Mind you: this works fine on my hardwood floors, but you may need some additional height if you have carpet.<br />
<a href="http://changelos.files.wordpress.com/2011/10/there-you-go.jpg"><img src="http://changelos.files.wordpress.com/2011/10/there-you-go.jpg?w=150&#038;h=112" alt="" title="There you go, one happy Roomba" width="150" height="112" class="alignnone size-thumbnail wp-image-323" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/316/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/316/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/316/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=316&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2011/10/08/roomba-and-poang-they-can-live-happily-together/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/wheels-from-praxis.jpg?w=150" medium="image">
			<media:title type="html">Wheels from Praxis</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/prepare-with-a-counter-sink.jpg?w=150" medium="image">
			<media:title type="html">Prepare with a counter sink</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/drill-the-hole-using-your-hand-as-a-guide.jpg?w=150" medium="image">
			<media:title type="html">Drill the hole, using your hand as a guide</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/attach-the-wheels.jpg?w=150" medium="image">
			<media:title type="html">Attach the wheels</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/screws-3-5x20mm.jpg?w=150" medium="image">
			<media:title type="html">Screws, 3.5x20mm</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/attach-some-felt-protectors.jpg?w=150" medium="image">
			<media:title type="html">Attach some felt protectors</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/felt-protectors-i-used-ikea-praktisk.jpg?w=150" medium="image">
			<media:title type="html">Felt protectors, I used Ikea Praktisk</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2011/10/there-you-go.jpg?w=150" medium="image">
			<media:title type="html">There you go, one happy Roomba</media:title>
		</media:content>
	</item>
		<item>
		<title>Evolving systems and the link to service orientation</title>
		<link>http://changelos.com/2011/09/26/evolving-systems-and-the-link-to-service-orientation/</link>
		<comments>http://changelos.com/2011/09/26/evolving-systems-and-the-link-to-service-orientation/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 15:50:37 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=312</guid>
		<description><![CDATA[I gave a talk on ARL and the data evolution problem we find there at the Semantic Technology &#38; Business conference, 26 September 2011.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=312&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I gave a talk on ARL and the data evolution problem we find there at the Semantic Technology &amp; Business conference, 26 September 2011.</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/9428629' width='460' height='377'></iframe>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/312/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=312&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2011/09/26/evolving-systems-and-the-link-to-service-orientation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>My git-svn workflow with Tower</title>
		<link>http://changelos.com/2011/07/11/my-git-svn-workflow-with-tower/</link>
		<comments>http://changelos.com/2011/07/11/my-git-svn-workflow-with-tower/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 10:25:50 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=298</guid>
		<description><![CDATA[Most of the codebases I work on are in Subversion, yet I like working with Git for the sheer joy of it. Below, you will find a short overview of my basic workflow. I do a lot from the command line, but not everything. For most operations Mac Git client Tower is the best solution [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=298&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Most of the codebases I work on are in Subversion, yet I like working with Git for the sheer joy of it. Below, you will find a short overview of my basic workflow.</p>
<p>I do a lot from the command line, but not <em>everything</em>. For most operations Mac Git client <a href="http://www.git-tower.com/">Tower</a> is the best solution you can find.</p>
<h2>In short</h2>
<p>For the impatient reader, my workflow looks a little like this.</p>
<ul>
<li>One time only: clone repository. <code>git svn clone http://host.com/repository -Ttrunk -bbranches -ttags mylocalcopy</code></li>
<li>Rebase: get all remote changes in. <code>git stash; git svn rebase; git stash pop</code></li>
<li>Create awesome features, committing frequently with Tower.</li>
<li>DCommit: push changes back to Subversion. <code>git stash; git svn dcommit; git stash pop</code></li>
</ul>
<h2>In a little more detail</h2>
<h3>Checking out</h3>
<p>Git works with a local history, which makes it quite distinct from Subversion. Also, Git assumes that you have a working trunk, with optional branches and tags; this means your repository should at least have a <tt>trunk</tt> directory.</p>
<p>Assuming your trunk is at <tt>http://host.com/repository</tt>, you can clone a remote Subversion repository to your system using<br />
<code>  git svn clone http://host.com/repository -Ttrunk -bbranches -ttags mylocalcopy</code></p>
<p>This will copy over all revisions of the repository to your own system, placing a Git repository in your <tt>mylocalcopy</tt> directory. Since it goes through all revisions, this can take a while for repositories with a lot of commits. If Git somehow stops, and your local copy is still empty, go into the local repository directory, and execute <tt>git svn fetch</tt>.</p>
<h3>Updating and committing</h3>
<p>With your local working copy, you can use Tower to create your commits.</p>
<p>If your want to merge your copy with the remote Subversion repository, it&#8217;s best to only do that after you have (locally) committed all changes. Then, use<br />
<code>  git svn rebase</code><br />
If you need to have some local uncommitted changes, use<br />
<code>  git stash; git svn rebase; git stash pop</code></p>
<p>Pushing your changes to the remote Subversion repository is roughly like rebasing. Again, it&#8217;s best to only do that with a &#8216;clean working copy&#8217;, that is, having committed all changes to your own Git repository.<br />
<code>  git svn dcommit</code><br />
Again, if you must, you can pad this command with <tt>git stash</tt> and <tt>git stash pop</tt>.</p>
<p>Remember that, when you commit, all your commits will get the timestamp of the <tt>dcommit</tt>.</p>
<h2>How do I use Git with Subversion?</h2>
<p>I have noticed that in Git, there are at least six ways to do anything you want. I have settled on a simplified way of doing things, and I know I am missing out on some awesomeness.</p>
<ul>
<li>I rarely use feature branches. I only use them when I am really working on two things at the same time, but not for every feature that comes along.</li>
<li>When I do use feature branches, I tend to <tt>dcommit</tt> from the feature branch, instead of merging to my trunk first.</li>
<li>Intellij&#8217;s Git integration is pretty good, and it works together nicely with external tools. In Eclipse, I don&#8217;t use any integration, but rely on command line tools and Tower only.</li>
<li>For Eclipse-based projects, I use Git to keep track of the full working directory, instead of tracking individual Eclipse projects. This usually means that I clone some repository at the level above the Eclipse projects, and import the projects into Eclipse using the &#8216;Import existing project&#8217; feature.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/298/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=298&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2011/07/11/my-git-svn-workflow-with-tower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>Mini conference on Semantic Technology</title>
		<link>http://changelos.com/2011/06/13/mini-conference-on-semantic-technology/</link>
		<comments>http://changelos.com/2011/06/13/mini-conference-on-semantic-technology/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 12:14:32 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=293</guid>
		<description><![CDATA[A few weeks back, I gave talk detailing the Leren op Maat product on a mini conference around semantic technology, organized by Luminis. My colleague Richard created a very nice impression of this session. If it all sounds like Dutch to you, that&#8217;s because it is.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=293&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few weeks back, I gave talk detailing the Leren op Maat product on a mini conference around semantic technology, organized by <a href="http://www.luminis.nl">Luminis</a>. My colleague <a href="http://www.youtube.com/user/richardwouter">Richard</a> created a very nice impression of this session.</p>
<p>If it all sounds like Dutch to you, that&#8217;s because it is.</p>
<span style="text-align:center; display: block;"><a href="http://changelos.com/2011/06/13/mini-conference-on-semantic-technology/"><img src="http://img.youtube.com/vi/FlEHMlSQUeA/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=293&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2011/06/13/mini-conference-on-semantic-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>Massive Device Deployment &#8211; Eclipsecon 2011</title>
		<link>http://changelos.com/2011/03/25/massive-device-deployment-eclipsecon-2011/</link>
		<comments>http://changelos.com/2011/03/25/massive-device-deployment-eclipsecon-2011/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 01:14:05 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=289</guid>
		<description><![CDATA[Earlier today, I gave a talk at Eclipsecon 2011. Attendance was pretty good with about 40 people.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=289&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Earlier today, I gave a talk at Eclipsecon 2011. Attendance was pretty good with about 40 people.</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/7379100' width='460' height='377'></iframe>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/289/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/289/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/289/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=289&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2011/03/25/massive-device-deployment-eclipsecon-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>Using a ManagedServiceFactory</title>
		<link>http://changelos.com/2010/12/19/using-a-managedservicefactory/</link>
		<comments>http://changelos.com/2010/12/19/using-a-managedservicefactory/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 17:46:26 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bndtools]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[managedservicefactory]]></category>
		<category><![CDATA[osgi]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=261</guid>
		<description><![CDATA[One of the most elusive, yet very useful parts of the OSGi specification is the ManagedServiceFactory (part of the ConfigurationAdmin specification, chapter 104 in the 4.2 OSGi compendium specification). A long time ago, I gave an example on the Apache Felix users mailing list, but it&#8217;s hard to find. So, time for a nicer looking [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=261&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>One of the most elusive, yet very useful parts of the OSGi specification is the ManagedServiceFactory (part of the ConfigurationAdmin specification, chapter 104 in the 4.2 OSGi compendium specification). A long time ago, I gave an example on the <a href="http://www.mail-archive.com/users@felix.apache.org/msg01437.html">Apache Felix users mailing list</a>, but it&#8217;s hard to find. So, time for a nicer looking example.</p>
<p>In the four steps below, we will take a simple program, and make a ManagedServiceFactory out of it. I find it useful to follow the progression, but if you&#8217;re only interested in the ManagedServiceFactory part, skip to step 3. I assume you&#8217;re familiar with basics of OSGi, and have seen a ManagedService up close before.</p>
<h1>Running the examples</h1>
<p>I have put up an <a href="http://dl.dropbox.com/u/2438787/www/2010-12/managedservicefactoryproject.zip">example project</a>, which shows all the code covered below. When you import the project, you will get a warning about a missing &#8216;test&#8217; folder. Just create a new &#8216;test&#8217; source folder, this is due to Zip not being able to package empty directories.</p>
<p>The examples use Neil Bartlett&#8217;s excellent <a href="http://njbartlett.name/bndtools.html">Bndtools</a>, and next to the environment that ships with, we use</p>
<ul>
<li>the <a href="http://felix.apache.org/site/apache-felix-dependency-manager.html">Apache Felix Dependency Manager</a>. At time of writing, this is gearing up towards a 3.0 release, but we use a SNAPSHOT version here; I&#8217;ve put one up for <a href="http://dl.dropbox.com/u/2438787/www/2010-12/org.apache.felix.dependencymanager-3.0.0-SNAPSHOT.jar">download</a>. Once downloaded, you can drag it into the Bndtools repository.</li>
<li><a href="http://felix.apache.org/site/apache-felix-file-install.html">Apache Felix FileInstall,</a> which you can <a href="http://apache.cs.uu.nl/dist//felix/org.apache.felix.fileinstall-3.1.0.jar">download here</a>.</li>
</ul>
<h1>The case</h1>
<p>Step one, code in package <tt>net.luminis.websitewatcher.withmain</tt>.</p>
<p>Suppose we want to have some service that checks the availability of our favorite website. It&#8217;s pretty easy to devise a method that does this. Given that we have a method for this (full code in the example), we can call this repeatedly from a thread.</p>
<p><pre class="brush: java;">
new Thread(&quot;Watcher for &quot; + site.toExternalForm()) {
  public void run() {
    while (true) {
      if (isReachable(site)) {
        System.out.println(site.toExternalForm() + &quot; is reachable.&quot;);
      }
      else {
        System.out.println(site.toExternalForm() + &quot; is NOT reachable.&quot;);
      }
      try {
        Thread.sleep(5000);
      }
      catch (InterruptedException e) {
        return;
      }
    }
  }
}.start();
</pre></p>
<p>We can call this from a <tt>main</tt> method,</p>
<p><pre class="brush: java;">
public static void main(String[] args) throws MalformedURLException {
 new WebsiteWatcher(new URL(&quot;http://www.google.com&quot;));
}
</pre></p>
<p>Run this, and you will see whether or not Google is available from your machine, every five seconds.</p>
<h1>Wrap it in a bundle</h1>
<p>Step two, code in package <tt>net.luminis.websitewatcher.simplebundle</tt> and <tt>simplebundle.bnd</tt>.</p>
<p>We can take the code we had before, and wrap that in a bundle. We add an activator, which uses the Apache Felix Dependency Manager to ease or registration, and create a component for our watcher,</p>
<p><pre class="brush: java;">
manager.add(createComponent()
  .setImplementation(new WebsiteWatcher(new URL(&quot;http://google.com&quot;))));
</pre></p>
<p>In our <tt>WebsiteWatcher</tt>, we move the thread-code to an inner class, and add some plumbing code,</p>
<p><pre class="brush: java;">
public WebsiteWatcher(final URL site) {
  m_watcher = new WatcherThread(site);
}

public void start() {
  m_watcher.start();
}

public void stop() {
  m_watcher.interrupt();
}
</pre></p>
<p>The <tt>start()</tt> and <tt>stop()</tt> methods are called by the Dependency Manager when our component is, well, started or stopped.</p>
<p>You can see this working for yourself by running the <tt>bnd.bnd</tt> file in the project.</p>
<h1>A <tt>ManagedService</tt></h1>
<p>Step three, code in package <tt>net.luminis.websitewatcher.managedservice</tt> and <tt>managedservice.bnd</tt>.</p>
<p>Moving it up one notch, we create a <tt>ManagedService</tt> out of our component. To do so, we make the <tt>WebsiteWatcher</tt> implement <tt>ManagedService</tt>, and add some contants we will need later.</p>
<p><pre class="brush: java;">
public class WebsiteWatcher implements ManagedService {
  public static final String PID = &quot;net.luminis.websitewatcher.managedservice&quot;;
  public static final String URL = &quot;url&quot;;
</pre></p>
<p>A <tt>ManagedService</tt> must implement an <tt>updated(...)</tt> method,</p>
<p><pre class="brush: java;">
@Override
public void updated(@SuppressWarnings(&quot;rawtypes&quot;) Dictionary properties) throws ConfigurationException {
  if (properties != null) {
    if (properties.get(URL) == null) {
      throw new ConfigurationException(URL, &quot;url cannot be null&quot;);
    }
    try {
      m_site = new URL((String) properties.get(URL));
    }
    catch (MalformedURLException e) {
      throw new ConfigurationException(URL, properties.get(URL) + &quot; is not a valid URL&quot;, e);
    }
  }
}
</pre></p>
<p>This takes some explanation. Line 3 is a nullcheck on the configuration we receive: <tt>null</tt> is a valid configuration if our configuration is being removed. However, we will let the Dependency Manager take care of wether or not our configuration is available, so we can ignore the null-case. Line 4 checks the availability of our configuration property, and on line 8 we create a new URL to watch from the URL property in the configuration. If any of these checks go wrong, we create a <tt>ConfigurationException</tt> telling the world what happened (lines 5, 11).</p>
<p>Finally, we need to instruct the Dependency Manager of our newfound managed-service-ness.</p>
<p><pre class="brush: java;">
manager.add(createComponent()
  .setImplementation(WebsiteWatcher.class)
  .add(createConfigurationDependency()
    .setPid(WebsiteWatcher.PID)));
</pre></p>
<p>What happens when we do this?</p>
<p><a href="http://changelos.files.wordpress.com/2010/12/managedservice.jpg"><img class="alignnone size-full wp-image-277" title="ManagedService" src="http://changelos.files.wordpress.com/2010/12/managedservice.jpg?w=460&#038;h=306" alt="" width="460" height="306" /></a></p>
<p>The Configuration Admin spec tells us that a <tt>ManagedService</tt> should be registered as a service, with the PID as a service property. When a configuration becomes available, the Configuration Admin will call that <tt>ManagedService</tt> with the configuration properties. The Dependency Manager nicely wraps this as a &#8216;configuration dependency&#8217;, i.e., our component can only start if it has a configuration.</p>
<p>In the example project, we use the <a href="http://felix.apache.org/site/apache-felix-file-install.html">Apache Felix FileInstall</a> bundle to get configurations into the Configuration Admin. It watches the <tt>load</tt> directory for files with a name like <tt>&lt;pid&gt;.cfg</tt>. You can play around with the configuration in <tt>net.luminis.websitewatcher.managedservice.cfg</tt>, and see what happens!</p>
<h1>A ManagedServiceFactory</h1>
<p>Piece de resistance, code in package <tt>net.luminis.websitewatcher.managedservicefactory</tt> and <tt>managedservicefactory.bnd</tt>.</p>
<p>Having a configurable watcher for a single website is nice, but we really want to be able to watch more sites, without having to create PIDs for each of those, or instantiating multiple watchers &#8216;by hand&#8217;. This is where the <tt>ManagedServiceFactory</tt> comes in.</p>
<p><a href="http://changelos.files.wordpress.com/2010/12/managedservicefactory.jpg"><img class="alignnone size-full wp-image-280" title="ManagedServiceFactory" src="http://changelos.files.wordpress.com/2010/12/managedservicefactory.jpg?w=460&#038;h=226" alt="" width="460" height="226" /></a></p>
<p>The task of a <tt>ManagedServiceFactory</tt> is to create instances of whatever it manages, based on the configuration it gets.</p>
<p>We first create a <tt>ManagedServiceFactory</tt> implementation,</p>
<p><pre class="brush: java;">
public class WebsiteWatcherFactory implements ManagedServiceFactory {
  public static final String PID = &quot;net.luminis.websitewatcher.managedservicefactory&quot;;

  private volatile DependencyManager m_dependencyManager;

  private final Map&lt;String, Component&gt; m_components = new HashMap&lt;String, Component&gt;();

  @Override
  public String getName() {
  return &quot;website watcher factory&quot;;
  }

  @Override
  public void updated(String pid, @SuppressWarnings(&quot;rawtypes&quot;) Dictionary properties) throws ConfigurationException {
    if (m_components.containsKey(pid)) {
      return;
    }

    Component component = m_dependencyManager.createComponent()
      .setImplementation(WebsiteWatcher.class)
      .add(m_dependencyManager.createConfigurationDependency().setPid(pid));

    m_components.put(pid, component);
    m_dependencyManager.add(component);
  }

  @Override
  public void deleted(String pid) {
    m_dependencyManager.remove(m_components.remove(pid));
  }
}
</pre></p>
<p>Right, what happens here?</p>
<ul>
<li>For each FactoryConfiguration, the Config Admin will call the <tt>updated()</tt> method on line 14. In here, we
<ol>
<li>create a new Dependency Manager <tt>Component</tt> for our watcher (line 19),</li>
<li>make it depend on a configuration for its own PID (line 21), like we did before,</li>
<li>register its existence (line 23), and</li>
<li>add the component to the Dependency Manager (line 24)</li>
</ol>
</li>
<li>If a configuration is deleted, the <tt>deleted()</tt> method on line 28 will be called; we thus remove the related component from the Dependency Manager.</li>
</ul>
<p>Note the <tt>private volatile DependencyManager</tt> field: the Dependency Manager will inject an configured instance in each component that has a field of this type.</p>
<p>Now we have a factory, we need to register it in our activator.</p>
<p><pre class="brush: java;">
Properties props = new Properties();
props.put(Constants.SERVICE_PID, WebsiteWatcherFactory.PID);

manager.add(createComponent()
  .setInterface(ManagedServiceFactory.class.getName(), props)
  .setImplementation(WebsiteWatcherFactory.class));
</pre></p>
<p>And with that, we have a fully functional factory for creating numerous watchers of all you favorite websites. Apache Felix FileInstall will also handle factory configurations if you use filenames like <tt>&lt;factoryPid&gt;-&lt;instance&gt;.cfg</tt>, like <tt>net.luminis.websitewatcher.managedservicefactory-google.cfg</tt>.</p>
<p>When creating configurations, you might get a warning like<br />
<code><br />
*ERROR* Configuration for net.luminis.websitewatcher.managedservicefactory.560fe0c0-a691-475e-854a-b4caab68f6d4 has already been used for service [org.osgi.service.cm.ManagedServiceFactory, id=39, bundle=10] and will now also be given to [org.osgi.service.cm.ManagedService, id=41, bundle=10]<br />
</code><br />
which you can safely ignore. This has to do with the fact that the configuration is initially linked to our factory, but is used to configure the generated service later on.</p>
<p>By the way, you may have noticed that we wrote a new WebsiteWatcher for each step of the process, except for the last one: we just reused the one from step 3.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/261/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=261&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2010/12/19/using-a-managedservicefactory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/12/managedservice.jpg" medium="image">
			<media:title type="html">ManagedService</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/12/managedservicefactory.jpg" medium="image">
			<media:title type="html">ManagedServiceFactory</media:title>
		</media:content>
	</item>
		<item>
		<title>ApacheCon NA 2010</title>
		<link>http://changelos.com/2010/12/07/apachecon-na-2010/</link>
		<comments>http://changelos.com/2010/12/07/apachecon-na-2010/#comments</comments>
		<pubDate>Tue, 07 Dec 2010 11:39:51 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=257</guid>
		<description><![CDATA[Early last november, I visited ApacheCon NA in Atlanta, Georgia. I wrote up some trends I spotted there at my company&#8217;s blog. Furthermore, the materials of my session on distributing and managing software on large numbers of embedded devices is now up on Slideshare. I&#8217;m more about some striking images and a live story than [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=257&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Early last november, I visited ApacheCon NA in Atlanta, Georgia. I wrote up some trends I spotted there at <a href="http://lsd.luminis.eu/apachecon-na-2010-some-trends/">my company&#8217;s blog</a>.</p>
<p>Furthermore, the materials of my session on distributing and managing software on large numbers of embedded devices is now up on Slideshare. I&#8217;m more about some striking images and a live story than about self-descriptive slideware. Still, you could try to reconstruct the story I told. Have fun!</p>
<iframe src='http://www.slideshare.net/slideshow/embed_code/6059205' width='460' height='377'></iframe>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/257/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/257/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/257/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=257&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2010/12/07/apachecon-na-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>Why don&#8217;t you _not_?</title>
		<link>http://changelos.com/2010/09/12/why-dont-you-_not_/</link>
		<comments>http://changelos.com/2010/09/12/why-dont-you-_not_/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 18:14:12 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=246</guid>
		<description><![CDATA[The longer I work in tech consulting, the more people start to rely on my choices in tough situations. And, the longer I do that, the more I tend to gravitate to a pair of questions: &#8220;why&#8221; and &#8220;why don&#8217;t you not&#8220;. Let me share a short anecdote about the second one. I recently worked [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=246&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The longer I work in tech consulting, the more people start to rely on my choices in tough situations. And, the longer I do that, the more I tend to gravitate to a pair of questions: &#8220;why&#8221; and &#8220;why don&#8217;t you <em>not</em>&#8220;.</p>
<p>Let me share a short anecdote about the second one. I recently worked in a team extending a tool for a customer; this tool abstracts the configuration of a complicated device to a more understandable level. For some expert-level situations, you sometimes need information (indices, etc) that is generated later in the process.<br />
A colleague asked my help with this feature; it seemed to required us to entangle UI code with configuration logic. Not being happy about this, I started wondering &#8220;why don&#8217;t we <em>not</em> do this&#8221;?&#8221; Is there a way we can change the problem?<br />
We chose to remove the information from the UI, but make it more prominent in the generated configuration. Given the audience of this feature (expert users), there is no problem in making the user dig around in the generated configuration.</p>
<p>So, we all heard about the <em>five why</em>s; now add <em>why don&#8217;t you not</em> to that list. Ask yourself, &#8220;what&#8217;s the worst thing that could happen if we don&#8217;t&#8221; and &#8220;how can we make this problem go away without solving it?&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/246/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/246/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/246/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=246&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2010/09/12/why-dont-you-_not_/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>
	</item>
		<item>
		<title>Sharpie, paper, ScanSnap, Keynote. Or: My presentation routine</title>
		<link>http://changelos.com/2010/06/29/sharpie-paper-scansnap-keynote-or-my-presentation-routine/</link>
		<comments>http://changelos.com/2010/06/29/sharpie-paper-scansnap-keynote-or-my-presentation-routine/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 18:35:40 +0000</pubDate>
		<dc:creator>Angelo van der Sijpt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[scansnap]]></category>
		<category><![CDATA[sharpie]]></category>

		<guid isPermaLink="false">http://changelos.com/?p=228</guid>
		<description><![CDATA[Some time ago, I tweeted about using both low- and high tech tools for creating presentations. Some of you that know me, know what I&#8217;m talking about; for those that don&#8217;t, a quick run-through of the way I create simple graphics or highlights for my presentations. The bottom line: I use this setup because it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=228&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some time ago, I <a href="http://twitter.com/_angelos/status/16881055610">tweeted</a> about using both low- and high tech tools for creating presentations. Some of you that know me, know what I&#8217;m talking about; for those that don&#8217;t, a quick run-through of the way I create simple graphics or highlights for my presentations.</p>
<p><strong>The bottom line:</strong> I use this setup because it&#8217;s the quickest way to get an image out of my head, onto paper, and into my computer.</p>
<p>Why would I use hand-drawn images? I grew tired of all the run-of-the-mill graphics people use in their presentations, and I&#8217;m not exactly a graphics guru with all the nice tools. Also, I&#8217;m highly impressed by <a href="http://sachachua.com/blog/">Sacha Chua</a>&#8216;s <a href="http://www.slideshare.net/sachac/the-shy-connector">The Shy Connector</a>; while I don&#8217;t strive to have all hand drawn presentations, I like the personal touch of something made by my own hands.</p>
<h2>The tools</h2>
<p><a href="http://changelos.files.wordpress.com/2010/06/img_2581.jpg"><img class="size-medium wp-image-230 alignnone" title="My presentation setup" src="http://changelos.files.wordpress.com/2010/06/img_2581.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a></p>
<p>My not-so-permanent setup consists of</p>
<ul>
<li>paper. Need I say more?</li>
<li>a pack of <a href="http://www.sharpie.com/">Sharpies</a>. I order mine at <a href="http://www.centralpoint.nl/permanente-markers/sharpie/fine-point-4-pk-art-s0810970/">Central Point</a>.</li>
<li>a <a href="http://www.fujitsu.com/us/services/computing/peripherals/scanners/scansnap/s300m.html">Fujitsu ScanSnap 300M</a>. I&#8217;m not sure they make these anymore, but the S1300M is supposed to be good too.</li>
<li>my trusty MacBook Pro, using <a href="http://www.apple.com/iwork/keynote/">Keynote</a>.</li>
</ul>
<h2>How does that work?</h2>
<p>As stated above, I need a quick way to get something out of my head, and into my keynote. Here goes.</p>
<h3>1. Draw</h3>
<p><a href="http://changelos.files.wordpress.com/2010/06/img_2584.jpg"><img class="size-medium wp-image-231 alignnone" title="Draw an image" src="http://changelos.files.wordpress.com/2010/06/img_2584.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a></p>
<p>I like to put a piece of cardboard under the paper I&#8217;m drawing on, as these Sharpies tend to bleed through.</p>
<h3>2. Scan</h3>
<p><a href="http://changelos.files.wordpress.com/2010/06/img_2586.jpg"><img class="size-medium wp-image-232 alignnone" title="Scan the image" src="http://changelos.files.wordpress.com/2010/06/img_2586.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a></p>
<p>I have a preset that takes the image from the ScanSnap, scans it in the second-best quality, and opens the result in Preview.</p>
<h3>3. Move to keynote</h3>
<p><a href="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-19-42-pm.png"><img src="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-19-42-pm.png?w=300&#038;h=283" alt="" title="Preview - selected image" width="300" height="283" class="alignnone size-medium wp-image-236" /></a></p>
<p>Once opened in Preview, it&#8217;s easy to copy-and-paste the image, or a part of it, to Keynote. Sometimes it&#8217;s useful to enhance the image a little in Preview, e.g. by increasing the contrast or saturation, it depends on whether or not you want the images to have a paper-like texture.</p>
<h3>4. Post process</h3>
<p><a href="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-22-48-pm.png"><img class="alignnone size-medium wp-image-237" title="Instant alpha in Keynote" src="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-22-48-pm.png?w=300&#038;h=232" alt="" width="300" height="232" /></a></p>
<p>You now have an image in keynote, to which you can apply all the snazzy keynote effects. I&#8217;ll take you through two of my favorites.</p>
<h4>The &#8216;scribble&#8217;</h4>
<p><a href="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-26-58-pm.png"><img class="alignnone size-medium wp-image-238" title="The Scribble" src="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-26-58-pm.png?w=300&#038;h=228" alt="" width="300" height="228" /></a></p>
<p>If you have an image that should visually &#8216;stay together&#8217;, draw a line around it, then only apply an alpha filter on everything <em>outside</em> that line. There&#8217;s no need for the lines you draw to be straight.</p>
<h4>The black-on-black</h4>
<p><a href="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-33-24-pm.png"><img class="alignnone size-medium wp-image-240" title="Black on black" src="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-33-24-pm.png?w=300&#038;h=255" alt="" width="300" height="255" /></a></p>
<p>When you use a theme that has a black (or dark) background, it&#8217;s hard to use any of the Sharpie-colors directly. You could invert the colors, but this gives an unnatural feel.</p>
<p>In stead, I like to saturate the image to full black (or red, or whatever), and use a two-pixel white outline. Simple, yet effective!</p>
<h2>Examples</h2>
<p>I like to use this technique for most of my presentations; for some examples, see</p>
<ul>
<li><a href="http://prezi.com/zj-rienxx2-f/scrum-in-a-nutshell-for-managers/">Scrum in a nutshell &#8211; for managers</a></li>
<li><a href="http://www.slideshare.net/angelovds/ruby-intro">Ruby introduction</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/changelos.wordpress.com/228/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/changelos.wordpress.com/228/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/changelos.wordpress.com/228/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=changelos.com&amp;blog=10422416&amp;post=228&amp;subd=changelos&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://changelos.com/2010/06/29/sharpie-paper-scansnap-keynote-or-my-presentation-routine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/6aaf5fcde0e62f658a65965dd2703c44?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">angelovds</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/img_2581.jpg?w=300" medium="image">
			<media:title type="html">My presentation setup</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/img_2584.jpg?w=300" medium="image">
			<media:title type="html">Draw an image</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/img_2586.jpg?w=300" medium="image">
			<media:title type="html">Scan the image</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-19-42-pm.png?w=300" medium="image">
			<media:title type="html">Preview - selected image</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-22-48-pm.png?w=300" medium="image">
			<media:title type="html">Instant alpha in Keynote</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-26-58-pm.png?w=300" medium="image">
			<media:title type="html">The Scribble</media:title>
		</media:content>

		<media:content url="http://changelos.files.wordpress.com/2010/06/screen-shot-2010-06-29-at-8-33-24-pm.png?w=300" medium="image">
			<media:title type="html">Black on black</media:title>
		</media:content>
	</item>
	</channel>
</rss>
