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

<channel>
	<title>Divide and Conquer</title>
	<atom:link href="http://www.divideandconquer.se/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.divideandconquer.se</link>
	<description>David's Software Development Blog</description>
	<lastBuildDate>Sun, 15 Jan 2012 17:13:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Angående att arrangera tävlingar på Facebook</title>
		<link>http://www.divideandconquer.se/2012/01/15/angaende-att-arrangera-tavlingar-pa-facebook/</link>
		<comments>http://www.divideandconquer.se/2012/01/15/angaende-att-arrangera-tavlingar-pa-facebook/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 17:12:59 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[svenska]]></category>
		<category><![CDATA[Swedish]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=726</guid>
		<description><![CDATA[(I never post in Swedish on this blog, except now! :-) Jag har skrivit detta blogginlägg enbart för att kunna länka till det när jag ser tävlingar på Facebook, så att jag slipper skriva samma sak om och om igen. Ett tips när det gäller tävlingar på Facebook är att de har väldigt strikta regler [...]]]></description>
			<content:encoded><![CDATA[<p>(I never post in Swedish on this blog, except now! :-)</p>
<p>Jag har skrivit detta blogginlägg enbart för att kunna länka till det när jag ser tävlingar på Facebook, så att jag slipper skriva samma sak om och om igen.</p>
<p>Ett tips när det gäller tävlingar på Facebook är att de har väldigt strikta regler för &#8220;promotions&#8221;, som det kallas! Om ni läser på Facebooks egna sida <a href="https://www.facebook.com/promotions_guidelines.php" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/promotions_guidelines.php?referer=');">Promotions Guidelines</a> samt artikeln <a href="http://www.socialmediaexaminer.com/facebook-promotions-what-you-need-to-know/" onclick="pageTracker._trackPageview('/outgoing/www.socialmediaexaminer.com/facebook-promotions-what-you-need-to-know/?referer=');">Facebook Promotions: What You Need to Know</a> t.ex. så förstår ni nog vad jag menar.</p>
<p>Det är många som inte har koll på reglerna, men om man ska ignorera dem så är det ju bra att kunna göra en riskanalys:</p>
<blockquote><p>Hur stor är risken och följderna av att Facebook straffar er jämfört med risken och följderna av att era kunder och presumtiva kunder saknar tävlingar på er Facebook-sida?</p></blockquote>
<p>Själv så känner jag inte till något fall där Facebook straffat arrangören av en tävling som bryter mot Facebooks regler, men som sagt tycker jag det är bra att vara medveten om risken.</p>
<p>Jag vill gärna höra om andras erfarenheter kring detta. Kommentera gärna detta inlägg!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2012/01/15/angaende-att-arrangera-tavlingar-pa-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pebble &#8211; more injection and less dependencies in PHP</title>
		<link>http://www.divideandconquer.se/2011/10/05/pebble-more-injection-and-less-dependencies-in-php/</link>
		<comments>http://www.divideandconquer.se/2011/10/05/pebble-more-injection-and-less-dependencies-in-php/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 20:03:09 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web developmnet]]></category>
		<category><![CDATA[Pebble]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=712</guid>
		<description><![CDATA[Dependency Injection (DI) is hardly anything new. I see it as a must for Test Driven Development (TDD). The thing I like most about DI in Java is Autowired in Spring or javax.annotation.Resource, they way member variables are set &#8220;magically&#8221; and the exact details about creation and implementation is located elsewhere. For PHP there are [...]]]></description>
			<content:encoded><![CDATA[<p>Dependency Injection (DI) is hardly anything new. I see it as a must for Test Driven Development (TDD). The thing I like most about DI in Java is <a href="http://static.springsource.org/spring/docs/2.5.5/api/org/springframework/beans/factory/annotation/Autowired.html" onclick="pageTracker._trackPageview('/outgoing/static.springsource.org/spring/docs/2.5.5/api/org/springframework/beans/factory/annotation/Autowired.html?referer=');">Autowired in Spring</a> or <a href="http://download.oracle.com/javase/6/docs/api/javax/annotation/Resource.html" onclick="pageTracker._trackPageview('/outgoing/download.oracle.com/javase/6/docs/api/javax/annotation/Resource.html?referer=');">javax.annotation.Resource</a>, they way member variables are set &#8220;magically&#8221; and the exact details about creation and implementation is located elsewhere.</p>
<p>For PHP there are at least the following implementations related to Dependency Injection:</p>
<ul>
<li><a href="http://www.potstuck.com/2010/09/09/php-dependency-a-php-dependency-injection-framework/" onclick="pageTracker._trackPageview('/outgoing/www.potstuck.com/2010/09/09/php-dependency-a-php-dependency-injection-framework/?referer=');">PHP-Dependency (Pd)</a> - A PHP Dependency Injection Framework</li>
<li><a href="http://pimple.sensiolabs.org/" onclick="pageTracker._trackPageview('/outgoing/pimple.sensiolabs.org/?referer=');">Pimple</a> &#8211; A simple Dependency InjectionContainer for PHP 5.3</li>
<li><a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend+DI+QuickStart" onclick="pageTracker._trackPageview('/outgoing/framework.zend.com/wiki/display/ZFDEV2/Zend+DI+QuickStart?referer=');">Zend Framework 2 Dependency Injection</a></li>
</ul>
<p><a href="http://www.potstuck.com/2010/09/09/php-dependency-a-php-dependency-injection-framework/" onclick="pageTracker._trackPageview('/outgoing/www.potstuck.com/2010/09/09/php-dependency-a-php-dependency-injection-framework/?referer=');">PHP-Dependency (Pd)</a> works with @ annotation in the constructor comment, but why involve the constructor? And is a whole <strong>framework</strong> needed? PHP is not Java.</p>
<p><a href="http://pimple.sensiolabs.org/" onclick="pageTracker._trackPageview('/outgoing/pimple.sensiolabs.org/?referer=');">Pimple</a> is very much a Dependency Injection <strong>Container</strong>, not so much about the injection. <strong>Simple</strong>, yes.</p>
<p>When it comes to <a href="http://framework.zend.com/wiki/display/ZFDEV2/Zend+DI+QuickStart" onclick="pageTracker._trackPageview('/outgoing/framework.zend.com/wiki/display/ZFDEV2/Zend+DI+QuickStart?referer=');">Zend Framework 2 Dependency Injection</a> I just can&#8217;t grasp how it simplifies anything. It seems to require a lot of boilerplate.</p>
<p>Unsatisfied with the above and a given a dose of NIH Syndrome, I decided to create my own DI system for PHP. After a bit of coding yesterday evening and night I named it <a href="https://github.com/twogood/pebble" onclick="pageTracker._trackPageview('/outgoing/github.com/twogood/pebble?referer=');">Pebble</a> and it is already on github! :-)</p>
<p>My current requirements on Pebble are as follows:</p>
<ol>
<li>It must be possible to inject values of specific properties on class construction</li>
<li>It must work nicely in Zend Framework 1.x</li>
<li>It must not require any configuration files (and especially no XML)</li>
<li>It must be a single .php file for the core implementation</li>
<li>It must provide an open interface for extension and customization</li>
<li>It must work nicely with PHPUnit (especially with the getMock method)</li>
<li>It must work with autoloading of classes in PHP</li>
<li>It is allowed to use PHP 5.3 features</li>
<li>It is allowed to use @-based annotations in docComment, e.g. /** @something */</li>
</ol>
<p>However, I have not yet used Pebble with PHPUnit, so I don&#8217;t know yet if that requirement holds!</p>
<p>Now is a good time for you to examine <a href="https://github.com/twogood/pebble/blob/master/example1.php" target="_blank" onclick="pageTracker._trackPageview('/outgoing/github.com/twogood/pebble/blob/master/example1.php?referer=');">example1.php</a>! The <a href="https://github.com/twogood/pebble/blob/master/README" target="_blank" onclick="pageTracker._trackPageview('/outgoing/github.com/twogood/pebble/blob/master/README?referer=');">README</a> is currently plain-text, I&#8217;ll format it later!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/10/05/pebble-more-injection-and-less-dependencies-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marker and polygon tooltips in Google Maps v3</title>
		<link>http://www.divideandconquer.se/2011/09/15/marker-and-polygon-tooltips-in-google-maps-v3/</link>
		<comments>http://www.divideandconquer.se/2011/09/15/marker-and-polygon-tooltips-in-google-maps-v3/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 07:05:17 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Web developmnet]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[Softhouse]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=698</guid>
		<description><![CDATA[Before I get into the details, please note that this is a quick &#38; dirty solution using google.maps.InfoWindow. No demo, sorry, but please add your improvements in the comments! Marker tooltip I start with the marker, as it is the simplest implementation: function attachMarkerInfoWindow(marker, html) { marker.infoWindow = new google.maps.InfoWindow({ content: html, }); google.maps.event.addListener(marker, 'mouseover', [...]]]></description>
			<content:encoded><![CDATA[<p>Before I get into the details, please note that this is a quick &amp; dirty solution using <em>google.maps.InfoWindow</em>. No demo, sorry, but please add your improvements in the comments!</p>
<h3>Marker tooltip</h3>
<p>I start with the marker, as it is the simplest implementation:</p>
<pre id="line10">function attachMarkerInfoWindow(marker, html)
{
	marker.infoWindow = new google.maps.InfoWindow({
		content: html,
	});
	google.maps.event.addListener(marker, 'mouseover', function() {
		marker.infoWindow.open(map,marker);
	});
	google.maps.event.addListener(marker, 'mouseout', function() {
		marker.infoWindow.close();
	});
}

var marker = new google.maps.Marker({
	position: new google.maps.LatLng(56.183182,15.593239),
});

attachMarkerInfoWindow(marker, '&lt;strong&gt;Softhouse office&lt;/strong&gt;');</pre>
</pre>
<h3>Polygon tooltip</h3>
<p>A polygon does not contain a single position, so where should the tooltip show? One option is to calculate the center of the polygon using <em>getCenter()</em> on <em>google.maps.LatLngBounds</em>, but I decided to use the position of the <em>mouseover</em> event as the position of the InfoWindow. Think about it; the center of the polygon may not actually be inside the polygon!</p>
<p>As a bonus I change the fill opacity while the mouse cursor is inside the polygon.</p>
<pre id="line10">function attachPolygonInfoWindow(polygon, html)
{
	polygon.infoWindow = new google.maps.InfoWindow({
		content: html,
	});
	google.maps.event.addListener(polygon, 'mouseover', function(e) {
		var latLng = e.latLng;
		this.setOptions({fillOpacity:0.1});
		polygon.infoWindow.setPosition(latLng);
		polygon.infoWindow.open(map);
	});
	google.maps.event.addListener(polygon, 'mouseout', function() {
		this.setOptions({fillOpacity:0.35});
		polygon.infoWindow.close();
	});
}

var polygon = new google.maps.Polygon(/* omitted for brevity */);
attachPolygonInfoWindow(polygon, '&lt;strong&gt;Info about this area&lt;/strong&gt;');</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/09/15/marker-and-polygon-tooltips-in-google-maps-v3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook Graph API limitations</title>
		<link>http://www.divideandconquer.se/2011/09/07/facebook-graph-api-limitations/</link>
		<comments>http://www.divideandconquer.se/2011/09/07/facebook-graph-api-limitations/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 20:25:21 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Web developmnet]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=692</guid>
		<description><![CDATA[I have created a Facebook app for the flea market Facebook groups in my area. (Feel free to take a look at http://loppis.blekinge.it/) To read and manage posts I use the Facebook Graph API, but there are a number of limitations: My application supports deleting posts, but Facebook does not allow applications to delete a photo [...]]]></description>
			<content:encoded><![CDATA[<p>I have created a Facebook app for the flea market Facebook groups in my area. (Feel free to take a look at <a href="http://loppis.blekinge.it/" onclick="pageTracker._trackPageview('/outgoing/loppis.blekinge.it/?referer=');">http://loppis.blekinge.it/</a>)</p>
<p>To read and manage posts I use the Facebook Graph API, but there are a number of limitations:</p>
<ul>
<li>My application supports deleting <a href="https://developers.facebook.com/docs/reference/api/post/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/docs/reference/api/post/?referer=');">posts</a>, but Facebook does not allow applications to delete a <a href="https://developers.facebook.com/docs/reference/api/photo/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/docs/reference/api/photo/?referer=');">photo</a></li>
<li><a href="https://developers.facebook.com/docs/reference/api/realtime/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/docs/reference/api/realtime/?referer=');">Real-time Updates</a> do not include support for groups (so I have to poll)</li>
<li>Reading the <a href="https://developers.facebook.com/docs/reference/api/group/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/docs/reference/api/group/?referer=');">Group</a> feed and and using the <em>since</em> and <em>until</em> parameters do not guarantee that you find all posts in a high-traffic group, not even when using the <em>previous</em> and <em>next</em> links in the feed</li>
</ul>
<p><strong>Update</strong> Maybe I should start <a href="https://developers.facebook.com/docs/reference/fql/stream/" onclick="pageTracker._trackPageview('/outgoing/developers.facebook.com/docs/reference/fql/stream/?referer=');">using FQL to query the Group feed</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/09/07/facebook-graph-api-limitations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gmail as Mail Reader in GNOME</title>
		<link>http://www.divideandconquer.se/2011/07/06/gmail-as-mail-reader-in-gnome/</link>
		<comments>http://www.divideandconquer.se/2011/07/06/gmail-as-mail-reader-in-gnome/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 05:31:37 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=688</guid>
		<description><![CDATA[Simply install GNOME Gmail in your Linux distro and change the Mail Reader in System -&#62; Preferences -&#62; Preferred Applications: If you use Ubuntu Maverick Meerkat (10.10) or earlier you need to download the GNOME Gmail .deb but in Natty Narwhal (11.04) you can install it directly from the unsupported universe repository.]]></description>
			<content:encoded><![CDATA[<p>Simply install <a href="http://sourceforge.net/projects/gnome-gmail/" onclick="pageTracker._trackPageview('/outgoing/sourceforge.net/projects/gnome-gmail/?referer=');">GNOME Gmail</a> in your Linux distro and change the Mail Reader in System -&gt; Preferences -&gt; Preferred Applications:</p>
<p><a href="http://www.divideandconquer.se/wp-content/uploads/2011/07/Screenshot-Preferred-Applications.png"><img class="alignnone size-full wp-image-689" style="border: 0pt none;" title="Screenshot of Preferred Applications" src="http://www.divideandconquer.se/wp-content/uploads/2011/07/Screenshot-Preferred-Applications.png" alt="" width="495" height="400" /></a></p>
<p>If you use Ubuntu Maverick Meerkat (10.10) or earlier you need to download the GNOME Gmail .deb but in Natty Narwhal (11.04) you can install it directly from the unsupported <em>universe</em> repository.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/07/06/gmail-as-mail-reader-in-gnome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogging, sharing, status updates, everywhere?</title>
		<link>http://www.divideandconquer.se/2011/07/02/blogging-sharing-status-updates-everywhere/</link>
		<comments>http://www.divideandconquer.se/2011/07/02/blogging-sharing-status-updates-everywhere/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 09:53:47 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web developmnet]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=683</guid>
		<description><![CDATA[I&#8217;ve realized a long time ago that my personal web diary in in Swedish – 2good.nu – has been obsoleted by my Facebook account. Same with the diary for our first-born child. I didn&#8217;t even start a blog for our second child. This is quite OK, as my home-made web diary software – even rewritten [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve realized a long time ago that my personal web diary in in Swedish – <a href="http://2good.nu/" onclick="pageTracker._trackPageview('/outgoing/2good.nu/?referer=');">2good.nu</a> – has been obsoleted by my Facebook account. Same with the diary for our first-born child. I didn&#8217;t even start a blog for our second child.</p>
<p>This is quite OK, as my home-made web diary software – even rewritten in Zend Framework – will never have the same features as Facebook. There are no comments, photo uploads, likes, mentions of friends, etc, that the existing social networks already implement.</p>
<p>Of course I also have a Twitter account, <a href="https://twitter.com/#!/davideriksson" onclick="pageTracker._trackPageview('/outgoing/twitter.com/_/davideriksson?referer=');">@davideriksson</a>, that complements this blog with mostly English-language updates regarding software development and related topics. I actually use <a href="http://www.google.com/buzz" onclick="pageTracker._trackPageview('/outgoing/www.google.com/buzz?referer=');">Google Buzz</a> for sharing some stuff with friends, and it is also connected to my Twitter account.</p>
<p>I never use my <a href="http://www.orkut.com/" onclick="pageTracker._trackPageview('/outgoing/www.orkut.com/?referer=');">Orkut</a> account so let&#8217;s ignore that. Should I mention <a href="http://www.linkedin.com/in/davideriksson" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/in/davideriksson?referer=');">my LinkedIn account</a>? By its nature it is almost purely for my professional relations.</p>
<p>Now comes <a href="https://plus.google.com/" onclick="pageTracker._trackPageview('/outgoing/plus.google.com/?referer=');">Google+</a> and I will give it a try as soon as they accept the invitation I have. Should I spend/waste my time on yet another social network, connected to more or less the same people?</p>
<p>What I want is to publish stuff (blog posts, links, photos, videos, status updates) in one place, and have it reach the desired target group (or Social Cicle, in Google+ speak). Something like <a href="https://joindiaspora.com/" onclick="pageTracker._trackPageview('/outgoing/joindiaspora.com/?referer=');">Diaspora</a> sounds like a good idea, but it is not click-and-play and does it integrate with the other social networks mentioned previously? I&#8217;m not so sure.</p>
<p>Ideally I publish something on Facebook and it ends up in the corresponding social circles in Google+, and the other way around.</p>
<p>Another solution would to be that I publish everything from my personal site, and it pushes it to the corresponding systems. Maybe I have to implement photo upload after all? And build an Android client? No, I should not have to.</p>
<p>A better solution would be that a single social network is my &#8220;main&#8221; one and it provides an API that I can use to share data to other social networks. Maybe Google+ is that social network, but it does not have a public API yet. I still have to build stuff, but integrating systems is much more fun than implementing photo upload&#8230; :-)</p>
<p>To see what others publish I realize that I still need to connect to each social network, but I&#8217;m probably curious enough!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/07/02/blogging-sharing-status-updates-everywhere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dutch PHP Conference 2011</title>
		<link>http://www.divideandconquer.se/2011/06/03/dutch-php-conference-2011/</link>
		<comments>http://www.divideandconquer.se/2011/06/03/dutch-php-conference-2011/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 06:54:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web developmnet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/2011/06/03/dutch-php-conference-2011/</guid>
		<description><![CDATA[I was fortunate enough to be able to attend DPC11 on May 19-21 and it was very inspiring. I hope to write more about it in future blog posts!]]></description>
			<content:encoded><![CDATA[<p>I was fortunate enough to be able to attend <a href="http://www.phpconference.nl/" onclick="pageTracker._trackPageview('/outgoing/www.phpconference.nl/?referer=');">DPC11</a> on May 19-21 and it was very inspiring. I hope to write more about it in future blog posts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/06/03/dutch-php-conference-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stop forum spam!</title>
		<link>http://www.divideandconquer.se/2011/01/24/stop-forum-spam/</link>
		<comments>http://www.divideandconquer.se/2011/01/24/stop-forum-spam/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 11:59:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Web developmnet]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=676</guid>
		<description><![CDATA[I run a Swedish site about energy drinks, along with a Swedish forum for energy drink collectors. In a tie between phpBB and Simple Machines (SMF) I chose the latter as forum software. Since I opened the forum there has been more and forum spam attempts. Actually there have been very few spam posts, and [...]]]></description>
			<content:encoded><![CDATA[<p>I run a <a href="http://taurin.se/" onclick="pageTracker._trackPageview('/outgoing/taurin.se/?referer=');">Swedish site about energy drinks</a>, along with a <a href="http://forum.taurin.se/" onclick="pageTracker._trackPageview('/outgoing/forum.taurin.se/?referer=');">Swedish forum for energy drink collectors</a>. In a tie between phpBB and <a href="http://www.simplemachines.org/" onclick="pageTracker._trackPageview('/outgoing/www.simplemachines.org/?referer=');">Simple Machines (SMF)</a> I chose the latter as forum software.</p>
<p>Since I opened the forum there has been more and forum spam attempts. Actually there have been very few spam posts, and no spam personal messages that I know of, but several spammers did register only to add links for SEO purposes in their user profile. (Note to self: set rel=&#8221;nofollow&#8221; on links in user profiles?)</p>
<p>The first counter-measure I added was reCAPTCHA for SMF and it has saved me quite a bit of work.</p>
<p>When that was not enough I found an SMF plugin for the <a href="http://www.stopforumspam.com/" onclick="pageTracker._trackPageview('/outgoing/www.stopforumspam.com/?referer=');">Stop Forum Spam</a> API. Unlike <a href="http://akismet.com/" onclick="pageTracker._trackPageview('/outgoing/akismet.com/?referer=');">Akismet</a> that &#8211; AFAIK &#8211; goes for the content of the spam, <a href="http://www.stopforumspam.com/" onclick="pageTracker._trackPageview('/outgoing/www.stopforumspam.com/?referer=');">Stop Forum Spam</a> simply stores IP address, user names and e-mail addresses that have been used for forum spam. When a spammer try to register on my forum they get a message (in Swedish) that an extra security check is needed, and instructions to e-mail the webmaster (that&#8217;s me). I have loads of registration attempts in the forum log, but no e-mails to webmaster&#8230; :-)</p>
<p>I realize that it is not realistic to get rid of all spammers, but I&#8217;m pretty close now!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/01/24/stop-forum-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maverick Meerkat joys</title>
		<link>http://www.divideandconquer.se/2011/01/23/maverick-meerkat-joys/</link>
		<comments>http://www.divideandconquer.se/2011/01/23/maverick-meerkat-joys/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 19:45:45 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=673</guid>
		<description><![CDATA[In retrospect, I really don&#8217;t understand why I didn&#8217;t upgrade my primary laptop (Thinpad T60p with ATI graphics) earlier, as the Spotify issue was resolved a long time ago. Maverick feels a bit faster than Lucid, so I&#8217;m really happy.]]></description>
			<content:encoded><![CDATA[<p>In retrospect, I really don&#8217;t understand why I didn&#8217;t upgrade my primary laptop (Thinpad T60p with ATI graphics) earlier, as the <a href="http://www.divideandconquer.se/2010/10/15/maverick-meerkat-disappointments/">Spotify issue</a> was resolved a long time ago.</p>
<p>Maverick feels a bit faster than Lucid, so I&#8217;m really happy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2011/01/23/maverick-meerkat-joys/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Maverick Meerkat disappointments</title>
		<link>http://www.divideandconquer.se/2010/10/15/maverick-meerkat-disappointments/</link>
		<comments>http://www.divideandconquer.se/2010/10/15/maverick-meerkat-disappointments/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 14:38:05 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.divideandconquer.se/?p=668</guid>
		<description><![CDATA[Ubuntu 10.10, with codename Maverick Meerkat, was released on 10 October 2010. So far it has only made me disappointed. First of all, when I have the USB cable for my LG L1510SF touch screen, X crashes in xf86findOption. I have submitted bug reports via Apport, see Launchpad bug #657895. Second, Spotify crashes on certain [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 10.10, with codename Maverick Meerkat, was released on 10 October 2010. So far it has only made me disappointed.</p>
<p>First of all, when I have the USB cable for my LG L1510SF touch screen, X crashes in xf86findOption. I have submitted bug reports via Apport, see <a href="https://bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/657895" onclick="pageTracker._trackPageview('/outgoing/bugs.launchpad.net/ubuntu/+source/xf86-input-evtouch/+bug/657895?referer=');">Launchpad bug #657895</a>.</p>
<p>Second, Spotify crashes on certain mouse events with the newer Qt version. More information:</p>
<ul>
<li><a href="http://gsfn.us/t/1e6bs" onclick="pageTracker._trackPageview('/outgoing/gsfn.us/t/1e6bs?referer=');">Spotify for Linux segfaults under Ubuntu Maverick beta (upcoming 10.10)</a></li>
<li><a href="http://gsfn.us/t/1de03" onclick="pageTracker._trackPageview('/outgoing/gsfn.us/t/1de03?referer=');">Seg fault after upgrading to qt 4.7 and kde 4.5.1</a></li>
</ul>
<p>Don&#8217;t upgrade if you want any of the above to work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.divideandconquer.se/2010/10/15/maverick-meerkat-disappointments/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

