<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>Pelle Wessman</title>
 <link href="http://voxpelli.com/all.xml" rel="self" type="application/atom+xml" />
 <link href="http://voxpelli.superfeedr.com/" rel="hub" />
 <link href="http://voxpelli.com/" type="text/html" />
 <updated>2013-03-17T08:34:52-07:00</updated>
 <id>http://voxpelli.com/</id>
 <author>
   <name>Pelle Wessman</name>
   <email>pelle@kodfabrik.se</email>
 </author>

 
 <entry>
   <title>A-kassan ur en webbutvecklares perspektiv</title>
   <link href="http://voxpelli.com/2013/02/a-kassan-webbutvecklare/"/>
   <updated>2013-02-06T00:00:00-08:00</updated>
   <id>http://voxpelli.com/2013/02/a-kassan-webbutvecklare</id>
   <content type="html">&lt;p&gt;A-kassans värld är relativt ny för mig - det dröjde länge innan jag blev medlem i en, men i takt med att regeringen gjort att också sjukdom kan leda till arbetslöshet och i takt med att jag själv började fundera på om det kanske var dags att utforska alternativa yrken så kändes a-kassa som en allt bättre idé.&lt;/p&gt;

&lt;p&gt;När jag slutade på Flattr och fick ett två veckor långt glapp mellan det och att min universitetskurs började så tänkte jag att det kunde vara en bra idé att sticka in huvudet på Arbetsförmedlingens kontor och göra mig till en aktiv del av ett system som jag kanske skulle kunna behöva nyttja vid ett eventuellt längre glapp någon gång i en framtid, vid avklarade studier eller så.&lt;/p&gt;

&lt;p&gt;Det fanns dock ett litet krux: Som många webbutvecklare har jag ett eget företag som jag i varierande grad gör frilansarbete via. Innan min tid på Good Old var det min heltidssysselsättning, men blev därefter en bisyssla.&lt;/p&gt;

&lt;p&gt;Krux nummer två: När jag gick från Good Old till Flattr så hade jag väldigt mycket opensource-projekt igång och annat som tog upp mycket fritid. När jag började på Flattr tog jag mig därför en funderare och konstaterade att jag nog hellre skulle vilja ha mer tid än mer pengar så att jag faktiskt skulle kunna hinna med såväl ideellt opensource-arbetet som att ta normal helg med allt vad det innebär. Därför blev det att jag bara jobbade 80% på Flattr och 80% är det ju även många andra webbutvecklare som jobbar.&lt;/p&gt;

&lt;p&gt;Och i dessa två krux ligger problemet. För när jag väl efter många om och men lyckats ta tag i och klura ut hur alla arbetsgivarintyg för företagare ska fyllas i och tror att det svåra är över och att a-kassan kommer att glida igenom fint och snyggt så dyker byråkratin upp och trycker sitt fula ansikte upp i mitt.&lt;/p&gt;

&lt;p&gt;Kan jag ha en bisyssla när jag jobbar 80%? Nej - bara om jag jobbar 100%.&lt;/p&gt;

&lt;p&gt;Okej - smått problematiskt - vilken är vägen ut nu då? Jo, jag kan lägga mitt företag som &amp;#8220;vilande&amp;#8221; dvs helt enkelt sluta jobba i det under arbetslöshetsperioden - så jag lägger helt enkelt ner alla mina verktyg under två veckor och så är allt lugnt? Nja, det är inte bara två veckor utan under hela min studietid för till skillnad mot allt annat man gör under sin studietid som a-kassan generellt sett inte bryr sig om så bryr de sig om ifall jag jobbar i mitt företag när det inte är klassat som bisyssla - för om så jag bara jobbar en enda minut så slutar mitt företag att klassas som vilande och därmed kan det inte klassas som så igen förrän 5 år efter det att det senast gjordes det - vilket innebär att om jag skulle studera i mindre än 5 år (vilket väl är högst troligt) och därefter skulle behöva a-kassa i en månad eller två i väntan på ett jobb - ja då kommer jag att tvingas lägga ner mitt företag eftersom att jag inte kommer att kunna lägga det som vilande igen. Så bara för att jag inte jobbade 100% och därmed inte kan få min bisyssla klassad som bisyssla så kommer jag att spärras från att extraknäcka i mitt företag under min studietid om jag vill fortsätta att få a-kassa efter den - byråkrati i ett nötskal. (En byråkratiskt regel jag redan (omedvetet) brutit mot)&lt;/p&gt;

&lt;p&gt;Så - det liv som jag och många andra webbutvecklare lever med idag är alltså inte så kompatibelt med vårt sociala skyddsnät. Skyddsnätet kan inte riktigt ta höjd för den flexibla bransch vi jobbar inom, vilket känns fel då den flexibiliteten nog är här för att stanna och nog lär spridas till allt fler branscher.&lt;/p&gt;

&lt;p&gt;Alla borde omfattas av ett socialt skyddsnät och människor borde inte skrämmas från att testa nya jobbkombinationer i sitt arbetsliv - att människor vågar testa nya saker öppnar möjligheten för att finna bättre lösningar som ger oss alla en bättre framtid - att exempelvis frivilligt kunna testa sex timmars arbetsdag redan idag som ju 80% arbetstid innebär - det är väl mer av en möjlighet för samhället än en fara?&lt;/p&gt;

&lt;p&gt;Skyddsnätet borde utökas så att det omfattar alla, men frågan är ju hur? Det är en svår fråga utan något givet svar - men i mitt tycke är just detta något som gör tankar som medborgarlön väldigt intressanta. Medborgarlön omöjliggör bidragsfusk och därmed undanröjer den myndigheters anledning att misstänkliggöra egenföretagare - om bidraget inte baseras på jobbad tid så måste man heller inte exkludera de vars tid inte går att räkna - och det öppnar upp för alla att forma sitt arbetsliv så som de vill utan att behöva kapa skyddslinan i processen.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Why federate just the social web?</title>
   <link href="http://voxpelli.com/2012/10/why-federate-just-the-social-web/"/>
   <updated>2012-10-15T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2012/10/why-federate-just-the-social-web</id>
   <content type="html">&lt;p&gt;Twitter&amp;#8217;s stricter API-terms resulted in reactions like App.net and Tent.io to be launched and in the question of a federated social web yet again being a topic that gathered interest from around the web.&lt;/p&gt;

&lt;p&gt;The concept of a federated social web is a good one - why leave the innovation of something as useful and important as our online social life to just a few big companies? When we could instead rather rely on an open infrastructure where innovation could happen wherever good ideas could be found? It sounds like such an obvious thing and hopefully we will get there eventually through techniques like OStatus or similar.&lt;/p&gt;

&lt;p&gt;But the core concept of a federated social web – that it&amp;#8217;s an open platform which everyone can take part of, a distributed platform which everyone can take part in without relying on anyone else, but yet federated so that all different parts comes together as one - is that limited to only the social web? Surely it can&amp;#8217;t be so.&lt;/p&gt;

&lt;p&gt;What other parts of the web could need the same changes? What other parts of the web has its innovation power limited by closed platforms? Two comes to mind - the monetary web (Paypal, Flattr etc) and the media web (Spotify, Netflix etc).&lt;/p&gt;

&lt;p&gt;Think about it - what if a &lt;strong&gt;federated monetary web&lt;/strong&gt; existed where everyone could expose assets of their own and set up exchanges between different assets so that I could easily pay for something in an asset that I choose to use and have it flow through the web to an asset that the seller has choosen to use. A donation from one crowdfunding site, like Flattr, could end up in another, like Kickstarter - the users wouldn&amp;#8217;t have to pick the same service.&lt;/p&gt;

&lt;p&gt;Imagine the possibilities a federated monetary web would enable - smaller sites being able to compete with the big without lacking any network effect of their own. &lt;a href='http://www.opentransact.org/'&gt;OpenTransact&lt;/a&gt; is an attempt in this direction and has implementations like &lt;a href='https://picomoney.com/'&gt;PicoMoney&lt;/a&gt; but money laundry laws and such probably makes it a headache to take a lead in. Smaller steps like &lt;a href='http://relpayment.com/'&gt;Rel-Payment&lt;/a&gt; is probably what we are left with in the near future but even just that is a step in the right direction.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;federated media web&lt;/strong&gt; then? Why isn&amp;#8217;t there a standardized API on which I can build a Spotify or Netflix competitor? Why do I have to implement a thousand different API:s and, in the case of non-free materials negotiate, why do I have to negotiate a thousand contracts to get all the material that Spotify and Netflix has? Why should it be the best negotiator that gets the best media service and not the most innovative media services? And why should the smaller record labels be excluded because the services don&amp;#8217;t have an interest in adding them?&lt;/p&gt;

&lt;p&gt;Imagine record labels as well as Creative Commons sites all exposing their catalogues through standard API:s and for those wanting payment letting you sign up for access to that API using a simple credit card and a standard term. Imagine aggregators being allowed to merge many small catalogues into big ones and to re-license materials so that you yourself only have to sign up for payment to one or a few aggregators to find yourself having most of the worlds music and movies at your fingertips. Imagine the innovations that such a possibility would enable and not just in how media players themselves work could but also in other aspects. Big players and small ones would be put at the same level - it would be as easy to include materials from small indie labels as it would be from large catalogs - the democratizing power of the web would truly enter the world of music and movies (and e-books!).&lt;/p&gt;

&lt;p&gt;Is the federated media web happening? No idea - haven&amp;#8217;t seen any work in that direction, but I haven&amp;#8217;t been looking that hard either. The DRM-hatred amongst part of the open source community has probably made it hard for any such work to happen - after all - who wants to be exposed as the one who helped the devil get paid? Hopefully the community will get past that and realize that paying for something - DRM-infested or not - isn&amp;#8217;t something bad - it&amp;#8217;s a valid ecosystem in which a lot of lovely content get created, it just needs a good and open system in which it can grow and flourish in a fair fashion.&lt;/p&gt;

&lt;p&gt;It would be fun to see the vision of a federated social web extend beyond the social web and to enable alternatives to not just Facebook and Twitter, but also to other things like Paypal, Spotify and Netflix. Extending the open web and unlocking the innovation power that&amp;#8217;s out there can lead to amazing things - I therefor certainly hope that we will see more initiatives like the federated social web and not less.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>RelSpider - what and why?</title>
   <link href="http://voxpelli.com/2012/10/relspider-what-why/"/>
   <updated>2012-10-10T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2012/10/relspider-what-why</id>
   <content type="html">&lt;p&gt;The ones following me at GitHub, Twitter and so has perhaps noticed that I&amp;#8217;ve been doing some work on something I call &amp;#8221;&lt;a href='https://github.com/voxpelli/relspider'&gt;RelSpider&lt;/a&gt;&amp;#8221; and perhaps the ones who have seen that has wondered a bit why I&amp;#8217;ve done so and even more why they should care about it.&lt;/p&gt;

&lt;p&gt;So - someone pointed me to this blog format thing (thanks &lt;a href='https://twitter.com/frebro'&gt;@frebro&lt;/a&gt; - I should do more posts here). Perhaps I should explain it a bit here? Therefor: Here&amp;#8217;s a quick blog post written after a long day with a lot of coffee.&lt;/p&gt;

&lt;h2 id='relspider__i_should_care_because'&gt;RelSpider - I should care because?&lt;/h2&gt;

&lt;p&gt;You should care because you like me and many other web geeks (Hi Bubblan!) love new cool web services - you&amp;#8217;re an early adopter that sign up right away - but then what? Who else are on this new service? What stuff there is cool? New services are isolated islands separated from all that I know - but why?&lt;/p&gt;

&lt;p&gt;Why indeed - there&amp;#8217;s no reason for these separated islands. Our internet alter egos don&amp;#8217;t have to be rebuilt again and again - just like in real life they can be one - consolidated and known everywhere. The data is there - services can already be linked together through &lt;a href='http://microformats.org/wiki/identity-consolidation'&gt;just some simple links&lt;/a&gt; - Twitter, GitHub, G+ etc supports it - but who to draw the lines between them and the circle around them? Until earlier this year Google provided an index of all of these relations - their Social Graph API - but at the same time that they started using it themselves in their social search and G+ they decided to shut down the public API.&lt;/p&gt;

&lt;h2 id='relspider__what_is_it'&gt;RelSpider - what is it?&lt;/h2&gt;

&lt;p&gt;RelSpider is a proof-of-concept identity graph crawler - it spiders public links that people have added to their profile pages and compiles them into identity graphs that services can ask questions about. Wonder what other identities &lt;em&gt;A&lt;/em&gt; have and get the response that &lt;em&gt;A&lt;/em&gt; considers itself to also be &lt;em&gt;B&lt;/em&gt;, &lt;em&gt;C&lt;/em&gt; and &lt;em&gt;D&lt;/em&gt; (or a more &lt;a href='http://relspider.herokuapp.com/api/lookup?url=http://twitter.com/voxpelli'&gt;extreme count&lt;/a&gt; of sites)&lt;/p&gt;

&lt;p&gt;It&amp;#8217;s still very much a work in progress - I&amp;#8217;m doing some work on it every now and then when I feel like having a break in my studies - but since a few days it at leasts has all the basic features needed for people to actually experiment with it themselves. The index work - now it&amp;#8217;s just needs some hardening and optimization (and refactoring and some cool features and a double rainbow and a pink unicorn).&lt;/p&gt;

&lt;h2 id='examples_please_examples'&gt;Examples, please, examples!&lt;/h2&gt;

&lt;p&gt;Take a site like &lt;a href='http://hackernytt.se/'&gt;Hackernytt&lt;/a&gt; or &lt;a href='https://flattr.com/'&gt;Flattr&lt;/a&gt; (Disclaimer: I used to work for Flattr) - these sites have people vote and donate to stuff created by other people. The main activity comes from someone else than the creator and eg. Flattr did therefor initially require the creators to claim that they owned a piece of content prior to someone being allowed to reward it for the creation of it. But what if I think that someone is worthy a donation that the author could never had figured out that I would consider donation worthy? Should I not be able to donate to that? Why?&lt;/p&gt;

&lt;p&gt;Sites like &lt;a href='http://hackernytt.se/'&gt;Hackernytt&lt;/a&gt; and &lt;a href='https://flattr.com/'&gt;Flattr&lt;/a&gt; should be able to tie the stuff others act on back into their existing social graph - if a piece of content is authored by someone that&amp;#8217;s already a member of the site then that connection should be discoverable without the creator having to do so manually.&lt;/p&gt;

&lt;p&gt;A simple query to RelSpider solves this - ask for the complete identity graph of the content author and match that against known identities of your members - if a connection is found then establish that member as the owner of the content. (Of course some additional steps can be taken to make this more secure - but still the same basic procedure)&lt;/p&gt;

&lt;h2 id='conclusion'&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;&lt;a href='https://github.com/voxpelli/relspider'&gt;RelSpider&lt;/a&gt; makes it possible to make connections between the same users on different platforms. It&amp;#8217;s an identity graph based on similar public data as the ones used by Google in their social search. The use cases are many - one is to identity the authors of content posted to ones site and make a connection to those authors own accounts on the site. It&amp;#8217;s a proof-of-concept for now - but it works and that&amp;#8217;s what matters because that means it can be a starting point for something else.&lt;/p&gt;

&lt;h2 id='i_want_to_try'&gt;(I want to try)&lt;/h2&gt;

&lt;p&gt;Very well - go to &lt;a href='http://relspider.herokuapp.com/'&gt;http://relspider.herokuapp.com/&lt;/a&gt; and go nuts (just please don&amp;#8217;t kill my free Heroku instance). API-methods can be found &lt;a href='https://github.com/voxpelli/relspider#api-methods'&gt;in the README&lt;/a&gt;. Just take note: I might and probably will change things and reset things - if you want to do an experimental real world implementation (which I would love!) - then please tell me :)&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Tent.io och Identi.ca - en liten historielektion</title>
   <link href="http://voxpelli.com/2012/10/tent-ostatus-historielektionen/"/>
   <updated>2012-10-02T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2012/10/tent-ostatus-historielektionen</id>
   <content type="html">&lt;p&gt;Det har varit en del snack kring &lt;a href='http://tent.io/'&gt;Tent.io&lt;/a&gt; på sistone – den där tjänsten som näst efter App.net ska ta död på de stora jättarna Facebook och Twitter. Jag har själv inte djupdykt i Tent.io&amp;#8217;s tekniska implementation, men anar en viss historielöshet i de standarder de föreslår och inte minst i rapporteringen om tjänsten i sig.&lt;/p&gt;

&lt;p&gt;&lt;a href='http://jnystromdesign.se/'&gt;Joakim Nyström&lt;/a&gt; skrev &lt;a href='http://jnystromdesign.se/2012/10/tent-protokollet-som-oppnar-upp-den-sociala-webben/'&gt;en bra bloggpost&lt;/a&gt; om Tent.io nyss – detta inlägg började som en kommentar dit, men efter att ha bråkat lite med Disqus och inte riktigt fått den att vilja acceptera min roman så får denna stackars blogg bemödas med den istället. Men det är väl kanske bara bra för jag liksom Joakim är ju ganska dålig på att blogga.&lt;/p&gt;

&lt;p&gt;Så - i &lt;a href='http://jnystromdesign.se/2012/10/tent-protokollet-som-oppnar-upp-den-sociala-webben/comment-page-1/#comment-668124154'&gt;kommentarerna&lt;/a&gt; till Joakims bloggpost nämns Identi.ca och frågan ställs vad som egentligen är skillnaden mellan Tent.io och &lt;a href='http://identi.ca/'&gt;Identi.ca&lt;/a&gt;. Joakim försöker sig på en förklaring med att Identi.ca (som är den officiella öppna instansen av &lt;a href='http://status.net/open-source'&gt;opensourceprojektet StatusNet&lt;/a&gt; som vem som helst kan hosta själv) inte kan kommunicera med användare utanför sin egna instans. Men att Identi.ca/StatusNet inte skulle kunna göra det är tyvärr så långt från rätt man kan komma i dessa sammanhang :) StatusNet-installationer snackar frekvent mellan varandra - det är snarare regel än undantag - något man ex. kan se om man kollar in Piratpartiets instans på &lt;a href='https://freesocial.org/'&gt;Freesocial.org&lt;/a&gt; som utan problem interagerar med användare på Identi.ca (själv gjort så många gånger från &lt;a href='http://identi.ca/voxpelli'&gt;mitt Identi.ca konto&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;StatusNet och Cliqset blev också de första två olika plattformarna att prata med varandra via helt öppna standarder - det &lt;a href='http://www.readwriteweb.com/archives/cross-network_commenting_protocol_could_crack_face.php'&gt;hände 2,5 år sedan&lt;/a&gt; - och kan ses demonstreras i &lt;a href='http://www.youtube.com/watch?v=JQQsFRxuyJ0'&gt;denna videon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;StatusNet var också mig veterligen &lt;a href='http://status.net/2010/09/10/statusnet-is-ready-for-swat0-testing'&gt;den första&lt;/a&gt; öppna sociala plattformen att klara &lt;a href='http://www.w3.org/2005/Incubator/federatedsocialweb/wiki/SWAT0'&gt;SWAT0-testet&lt;/a&gt; som är ett test som visar på att plattformen klarar de mest basala saker man kan förvänta sig av ett distribuerat socialt nätverk. Därefter har fler plattformar klarat testet - många av dem genom att liksom StatusNet implementera de olika delarna av OStatus-standarden (såsom Salmon som implementerades av StatusNet och Cliqset i deras interoperabilitetstest). Får väl se om Tent.io så småningom testar sig mot det också :)&lt;/p&gt;

&lt;p&gt;Vad jag hört ska Tent.io ha skalningsproblem ifall det blir allt för distribuerat - den måste göra en horribel mängd med anrop för att få alla meddelanden rätt. &lt;a href='http://ostatus.org/'&gt;OStatus&lt;/a&gt; med &lt;a href='http://code.google.com/p/pubsubhubbub/'&gt;Pubsubhubbub&lt;/a&gt; och &lt;a href='http://www.salmon-protocol.org/'&gt;Salmon&lt;/a&gt; behöver väldigt få anrop och bygger på tekniker som är bevisat att skala bra.&lt;/p&gt;

&lt;p&gt;Vi får hoppas att Tent.io accepterar inbjudan till &lt;a href='http://www.w3.org/2005/Incubator/federatedsocialweb/wiki/Federated_Social_Web_Summit_2012'&gt;Federated Social Web Summit&lt;/a&gt; nu i oktober. Där samlas alla initiativ inom de öppna sociala alternativen och det känns som att lite erfarenhetsutbyte och samarbete vore på sin plats här istället för pånyttuppfinnande av hjul och onödigt brytande av kompatibilitet med sådant som redan finns. Jag var själv på ett sådant i Berlin för dryga året sedan och det var upplysande och visade väl lite på att det knappast var bristen på smarta tankar som saknades utan bristen på samarbete i praktiken som gör att saker och ting står och stampar. De få som gör något får dra hela lasset själva och när de föga förvånande inte blir enormt framgångsrika i att göra så så stämplas de som misslyckade och en ny för gå upp och ta samma plats för att ensam driva samma fight för att bara återigen upprepa proceduren i att bli klassad som ett misslyckande och få lämna över stafettpinnen till någon som än en gång börjar om på nytt då ju alla de andras försök genom deras misslyckande ju självklart visat sig vara felaktiga och återvändsgränder. Det finns inga stora pengar för var och en i det hör - ensam kommer var och en att misslyckas - värdet ligger i det samlade och pengarna finns i det samlade - istället för att en ska förväntas dra allt så måste alla dra lite och det gör man inte genom att återuppfinna hjul utan genom att implementera så mycket man kan av vad som redan finns och återkomma till alla andra med feedback, utökningar och tweaks av det som finns och förhoppningsvis vinna acceptans för de tankarna där så att allas standard kanske kan rulla en liten bit närmre målet. Det var min strategi på Flattr och nog får jag säga att vi lyckades rulla OStatus och den öppna webben lite framåt. Inget monumentalt framsteg, men om alla puttar webben framåt åtminstone en lika liten bit så skulle vi ganska snart vara framme i en mycket trevligare och angenämare värld. #endofrant&lt;/p&gt;

&lt;p&gt;Vad som kan sägas om &lt;a href='http://ostatus.org/'&gt;OStatus&lt;/a&gt; också, som ju den standardsamling som gör att StatusNet-instanser kan prata med andra instanser, är att den inte på något vis är begränsad till Twitter-kloner utan helt enkelt är ett sätt att i realtid basunera ut de aktiviteter som någon utför på ett sätt som andra in konsumera liksom det är ett sätt för att notifiera de som involveras i en aktivitet att de är involverade i den - såsom i replies och mentions exempelvis. Att ex. bygga en Facebook-klon ovanpå OStatus skulle vara högst möjligt (de publika delarna av folks facebookande iaf). (Ska ej heller förglömmas att många av de standarder som OStatus består av är skapat av folk på Google och att de används till mer eller mindre stor utsträckning i allt från Google+ och Google Reader till Google Analytics - att ha Google som kompis i ett sammanhang som detta kan väl inte direkt vara helt negativt&amp;#8230;)&lt;/p&gt;

&lt;p&gt;För den som vill läsa lite mer om OStatus kan ni kolla in &lt;a href='http://chrismdp.com/2012/09/ostatus-like-twitter-but-open/'&gt;denna posten&lt;/a&gt; som toppade Hacker News för några dagar sedan. Missa ej heller kommentaterna där eller kommentarerna på &lt;a href='https://news.ycombinator.com/item?id=4574858'&gt;Hacker News-posten&lt;/a&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Time for new adventures</title>
   <link href="http://voxpelli.com/2012/07/time-for-new-adventures/"/>
   <updated>2012-07-13T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2012/07/time-for-new-adventures</id>
   <content type="html">&lt;p&gt;13:th July was my last day at &lt;a href='https://flattr.com/'&gt;Flattr&lt;/a&gt;. Almost two years after I started working there once a week it has become time to move on. This autumn I will take a break from web development and will instead be investigating the life of a student by taking some philosophy courses at &lt;a href='http://www.lu.se/'&gt;Lund University&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When I left &lt;a href='http://goodold.se/'&gt;Good Old&lt;/a&gt; almost a year and a half ago to fully focus on Flattr I was already feeling that I was becoming tired of developing for the web. The web itself had turned into a less interesting place than when I started and Web 2.0 and democratization of the web was all the rage. Now the web is instead dominated by a few big sites like Facebook and the shallow venture capital-backed startups with no other purpose than building buzz word-sprinkled eye candy. The need to revolutionize the world is gone – the web has become ever more blend.&lt;/p&gt;

&lt;p&gt;When I started on Flattr my task was to figure out how Flattr could fit into an open web – what standards we could use etc. Now when I&amp;#8217;m leaving those ideas are about to turn into reality and before this year has come to an end the final pieces of what is feasible today will hopefully be live. The road there has been long with lots of detours – but hopefully it will be there in the end – the mechanisms needed for micropayments to truly become an embedded part of the open web.&lt;/p&gt;

&lt;p&gt;The decision for me to leave Flattr was mutual and we part from each other with no hard feelings. The developers left with Flattr, &lt;a href='https://twitter.com/leihog'&gt;Leif&lt;/a&gt; and &lt;a href='https://twitter.com/simongate'&gt;Simon&lt;/a&gt;, will keep the platform in good shape and hopefully the community will step up to increase the innovation pace. Flattr as a platform is mostly complete now and &lt;a href='http://developers.flattr.net/'&gt;the API&lt;/a&gt; has become a solid base for mashups to mix micropayments into new interesting creations.&lt;/p&gt;

&lt;p&gt;Before I begin my studies of philosophy, a topic I&amp;#8217;ve wanted to immerse myself in since high school, I will have a relaxing seven week vacation. What happens after the studies and what adventures awaits in 2013 I don&amp;#8217;t know. Perhaps I&amp;#8217;ll return to web development, perhaps I&amp;#8217;ll continue my studies or perhaps I&amp;#8217;ll do something completely different. Time will tell and the rest of this year will be dedicated to finding it out.&lt;/p&gt;

&lt;p&gt;I would like to thank both the two companies I&amp;#8217;ve worked for the last years for a very interesting time. I&amp;#8217;ve learned a lot and got to know a lot of fantastic colleagues. I wish them both and all the people I&amp;#8217;ve met there the best of luck in the future!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Server-controlled AJAX at Flattr</title>
   <link href="http://voxpelli.com/2012/04/server-controlled-ajax-at-flattr/"/>
   <updated>2012-04-27T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2012/04/server-controlled-ajax-at-flattr</id>
   <content type="html">&lt;h3 id='the_short_story_distilled_to_its_essence'&gt;The short story, distilled to its essence&lt;/h3&gt;

&lt;p&gt;We built the AJAX-parts for the &lt;a href='http://www.dailymotion.com/video/xqfed0_the-social-feed_tech'&gt;new social feed feature&lt;/a&gt; on Flattr.com with a combination of &lt;a href='http://jquery.malsup.com/form/'&gt;jquery.form.js&lt;/a&gt; and &lt;a href='https://github.com/voxpelli/jquery-alterbyobject'&gt;jquery.alterbyobject.js&lt;/a&gt; – a combo that leaves the server in constant control of what&amp;#8217;s happening.&lt;/p&gt;

&lt;p&gt;The server defines regular forms for the AJAX-requests and then defines JSON-responses to those requests that specifies how pages should be altered.&lt;/p&gt;

&lt;p&gt;All in all a clean and easy solution for keeping AJAX DRY in your regular server-side MVC site.&lt;/p&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='js'&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='kd'&gt;function&lt;/span&gt; &lt;span class='p'&gt;()&lt;/span&gt; &lt;span class='p'&gt;{&lt;/span&gt;
  &lt;span class='kd'&gt;var&lt;/span&gt; &lt;span class='nx'&gt;handleModifyResponse&lt;/span&gt; &lt;span class='o'&gt;=&lt;/span&gt; &lt;span class='kd'&gt;function&lt;/span&gt; &lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nx'&gt;data&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='nx'&gt;statusText&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='nx'&gt;xhr&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='nx'&gt;$form&lt;/span&gt;&lt;span class='p'&gt;)&lt;/span&gt; &lt;span class='p'&gt;{&lt;/span&gt;
    &lt;span class='k'&gt;if&lt;/span&gt; &lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nx'&gt;data&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;targets&lt;/span&gt;&lt;span class='p'&gt;)&lt;/span&gt; &lt;span class='p'&gt;{&lt;/span&gt;
      &lt;span class='nx'&gt;$form&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;alterByObject&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nx'&gt;data&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;targets&lt;/span&gt;&lt;span class='p'&gt;);&lt;/span&gt;
    &lt;span class='p'&gt;}&lt;/span&gt;
  &lt;span class='p'&gt;};&lt;/span&gt;

  &lt;span class='nx'&gt;$&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='s1'&gt;&amp;#39;form#epic-one&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;).&lt;/span&gt;&lt;span class='nx'&gt;ajaxForm&lt;/span&gt;&lt;span class='p'&gt;({&lt;/span&gt;
    &lt;span class='nx'&gt;dataType&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt; &lt;span class='s1'&gt;&amp;#39;json&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='nx'&gt;success&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt; &lt;span class='nx'&gt;handleModifyResponse&lt;/span&gt;
  &lt;span class='p'&gt;});&lt;/span&gt;
&lt;span class='p'&gt;}());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id='the_long_story_where_i_write_a_lot_and_use_cool_words'&gt;The long story where I write a lot and use cool words&lt;/h3&gt;

&lt;p&gt;In building the &lt;a href='http://www.dailymotion.com/video/xqfed0_the-social-feed_tech'&gt;new social feed feature&lt;/a&gt; on Flattr.com I once again came across the issue of deciding who would be controlling the interface – would it be client-side javascript or server-side php?&lt;/p&gt;

&lt;p&gt;Initially it feels good to hack some javascript and make everything go swooshy and pretty – but when it comes to saving changes in the database and rendering views, then that&amp;#8217;s typically something handles by the server-side. Hacking is cool – but duplicating your normal form- and template-methods just to go all swooshy? It will cause headaches and isn&amp;#8217;t cool.&lt;/p&gt;

&lt;p&gt;So, after hacking some javascripts and realizing that I was yet again beginning to hard code the interactions of a page I decided that enough was enough and that I needed a solution that scaled.&lt;/p&gt;

&lt;p&gt;I wasn&amp;#8217;t very keen on reinventing our form system and dealing with CSRF-protecting etc. yet again so I searched in my memory and found the very nice but mildy forgotten &lt;a href='http://jquery.malsup.com/form/'&gt;jQuery Form plugin&lt;/a&gt;. I could hook that on top of an ordinary form and it would make it go all ajaxy and swooshy and cool without duplicating any of the existing form logic – awesome.&lt;/p&gt;

&lt;p&gt;But saving stuff wasn&amp;#8217;t enough – without any visual feedback it would be a lousy experience. So - question was if the server should respond with a HTML replacement or with a JSON containing just the needed data? Well - the server-side would in this case often not have enough data about the context to really re-render everything so I needed something more granular. JSON it was.&lt;/p&gt;

&lt;p&gt;What to include in the JSON? Well – in the past I have often just returned the minimal amount of data needed for the javascript to, with its own renderers and templates, make all changes - but this time I was lazy. Why assemble a custom JSON on the server-side just to have even more custom code on the client to could make use of that specific JSON? It felt like yet another case of duplication – surely it could be done easier.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s when I created the &lt;a href='https://github.com/voxpelli/jquery-alterbyobject'&gt;jQuery alterByObject plugin&lt;/a&gt;. It takes a JSON-object that describes a few targets within a context and a few rules by which to change those targets. Targets can in turn have targets themselves so it can get very granular – all without any custom code on the client-side.&lt;/p&gt;

&lt;p&gt;Pair the alterByObject and the jQuery Form plugins with a standard response handler and you have a flow where the server-side is in control from start to finish. The server describes how the client-side should react to changes that has been made through a server-side rendered form so that the server-side rendered page looks like the server wants it to look – clean and simple.&lt;/p&gt;

&lt;p&gt;I started using this pattern on the main social feed page on Flattr, then carried it over to the first configuration pages for the social feed, then to all of them and lastly I added it to the follow buttons on the profile pages and it all works beautifully – from super large masonry layouts to super tiny follow buttons the javascript responsible for submitting changes and providing feedback is all the same and works superb for everything.&lt;/p&gt;

&lt;p&gt;All in all I&amp;#8217;m very happy with the result. It&amp;#8217;s perhaps not the prettiest of solutions code wise but it&amp;#8217;s easy to implement, works like it should and gives no headache. I also heard someone say that beauty isn&amp;#8217;t everything and I would say that alterByObject and jQuery Form is a pretty cool solution for making things all swooshy, ajaxy and awesome – in the end it&amp;#8217;s not how the code looks but how well the user interfaces works that matters.&lt;/p&gt;

&lt;p&gt;Try it yourself!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Activity Streams in Flattr API v2</title>
   <link href="http://voxpelli.com/2011/10/activity-streams-flattr-api/"/>
   <updated>2011-10-31T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2011/10/activity-streams-flattr-api</id>
   <content type="html">&lt;p&gt;Last week we &lt;a href='http://blog.flattr.net/2011/10/api-v2-beta-out-whats-changed/'&gt;announced&lt;/a&gt; a public beta of the &lt;a href='https://developers.flattr.net/v2/'&gt;next generation Flattr API&lt;/a&gt;. Our last API became a dead end so we decided to rebuild it from scratch with extendability and maintainability in mind and while doing that we decided to throw in some candy as well - the new API eg. uses the now standard combo of &lt;a href='http://tools.ietf.org/html/draft-ietf-oauth-v2'&gt;OAuth 2&lt;/a&gt; and &lt;a href='http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer'&gt;Bearer Tokens&lt;/a&gt; for authentication and also supports the even more standard JSON as a response format in addition to a &lt;a href='https://developers.flattr.net/v2/#formats'&gt;few other formats&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One of the additions I think is most interesting though (not only because it was the part I was responsible for) is the support for the &lt;a href='http://activitystrea.ms/'&gt;Activity Streams&lt;/a&gt; standard. Our new API supports exposing &amp;#8220;feed&amp;#8221;-responses and uses both the original &lt;a href='http://activitystrea.ms/specs/atom/1.0/'&gt;Activity Streams sprinkled Atom-feeds&lt;/a&gt; and the newer &lt;a href='http://activitystrea.ms/specs/json/1.0/'&gt;JSON-based Activity Streams&lt;/a&gt; format to do that.&lt;/p&gt;

&lt;p&gt;The Activity Streams standard describes a format for describing activities that happen within a platform in a way that other platforms can understand and eg. aggregate into something like Facebook&amp;#8217;s news feed. In the future this can together with a few other standards enable classic feed readers to get a more social dimension and perhaps even challenge Facebook (yeah - I&amp;#8217;m dreaming - okay).&lt;/p&gt;

&lt;p&gt;Our new Flattr API exposes two activity types through Activity Stream feeds - the posting of things and the flattring of things. These are found in the &amp;#8220;things&amp;#8221; and &amp;#8220;flattrs&amp;#8221; feed subresources on user resources. We&amp;#8217;re using the &lt;a href='http://activitystrea.ms/registry/verbs/'&gt;verbs&lt;/a&gt; &amp;#8220;post&amp;#8221; and &amp;#8220;like&amp;#8221; for the activities and we&amp;#8217;re representing the things as objects of the &amp;#8221;&lt;a href='http://activitystrea.ms/head/activity-schema.html#bookmark'&gt;bookmark&lt;/a&gt;&amp;#8221; type. The &amp;#8220;like&amp;#8221; verb and &amp;#8220;bookmark&amp;#8221; &lt;a href='http://activitystrea.ms/registry/object_types/'&gt;object type&lt;/a&gt; aren&amp;#8217;t perfect matches - but I do think that they are the closest matches to what flattrs and things are - any suggestions on better alternatives would be very welcome though.&lt;/p&gt;

&lt;p&gt;So what do an activity look like? Lets take two examples:&lt;/p&gt;

&lt;p&gt;Post activity from me (&lt;a href='https://api.flattr.com/rest/v2/users/voxpelli/things.as'&gt;source&lt;/a&gt;):&lt;/p&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='js'&gt;&lt;span class='p'&gt;{&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;published&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;2011-08-09T15:03:18+02:00&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;Moving to Jekyll and English&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;actor&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='p'&gt;{&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;displayName&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;VoxPelli&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/user\/VoxPelli&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;objectType&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;person&amp;quot;&lt;/span&gt;
  &lt;span class='p'&gt;},&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;verb&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;object&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='p'&gt;{&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;displayName&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;Moving to Jekyll and English&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/thing\/370001&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;objectType&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;bookmark&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;targetUrl&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;http:\/\/voxpelli.com\/2011\/08\/moving-to-jekyll-and-english&amp;quot;&lt;/span&gt;
  &lt;span class='p'&gt;},&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/thing\/370001&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;tag:flattr.com,2011:things\/370001&amp;quot;&lt;/span&gt;
&lt;span class='p'&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Flattr activity from the Flattr student &lt;a href='https://flattr.com/profile/Melpomene'&gt;Melpomene&lt;/a&gt; (&lt;a href='https://api.flattr.com/rest/v2/users/melpomene/flattrs.as'&gt;source&lt;/a&gt;):&lt;/p&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='js'&gt;&lt;span class='p'&gt;{&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;published&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;2011-10-30T18:20:46+01:00&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;Melpomene flattred \&amp;quot;Flattr: Problem #1 that&amp;#39;s not really a problem\&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;actor&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='p'&gt;{&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;displayName&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;Melpomene&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/user\/Melpomene&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;objectType&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;person&amp;quot;&lt;/span&gt;
  &lt;span class='p'&gt;},&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;verb&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;like&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;object&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='p'&gt;{&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;display Name&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;Flattr: Problem #1 that&amp;#39;s not really a problem&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/thing\/424979&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;objectType&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;bookmark&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;targetUrl&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;http:\/\/wp.me\/p1vmdd-iy&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
    &lt;span class='s2'&gt;&amp;quot;author&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;
    &lt;span class='p'&gt;{&lt;/span&gt;
      &lt;span class='s2'&gt;&amp;quot;displayName&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;aeliusblythe&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
      &lt;span class='s2'&gt;&amp;quot;url&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;https:\/\/flattr.com\/thing\/424979&amp;quot;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt;
      &lt;span class='s2'&gt;&amp;quot;objectType&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;person&amp;quot;&lt;/span&gt;
    &lt;span class='p'&gt;}&lt;/span&gt;
  &lt;span class='p'&gt;},&lt;/span&gt;
  &lt;span class='s2'&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;&lt;span class='s2'&gt;&amp;quot;tag:flattr.com,2011-10-30:Melpomene\/flattr\/424979&amp;quot;&lt;/span&gt;
&lt;span class='p'&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I hope we can extend these feeds in the future to make them even more useful. If you have any feedback or just want to tell how awesome these feeds are, then please contact me. I&amp;#8217;m on &lt;a href='http://twitter.com/voxpelli'&gt;Twitter&lt;/a&gt;, &lt;a href='https://plus.google.com/114892733479367518317'&gt;Google+&lt;/a&gt; and e-mail: &lt;a href='mailto:pelle@kodfabrik.se'&gt;pelle@kodfabrik.se&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Moving to Jekyll and English</title>
   <link href="http://voxpelli.com/2011/08/moving-to-jekyll-and-english/"/>
   <updated>2011-08-08T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2011/08/moving-to-jekyll-and-english</id>
   <content type="html">&lt;p&gt;I&amp;#8217;ve long had my blog in a Drupal 6 based system, which I set it up during the Christmas of 2008. Drupal however is not a very good blogging tool which has resulted in me only writing a handful of posts since then. &lt;a href='http://drupal.org/'&gt;Drupal&lt;/a&gt; is built to be a really powerful and extensible framework that can fit every purpose one can imagine - for a simple little blog that only me myself am going to use that flexibility becomes more of a burden than a help.&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s why I&amp;#8217;m now moving my blog over to &lt;a href='http://jekyllrb.com/'&gt;Jekyll&lt;/a&gt;. To be able to write my posts in raw HTML-files which are assembled together with a simple layout and outputted as static files seems like a much more flexible solution for what I need. I can even use Git to version control my posts and to deploy them and thanks to &lt;a href='http://pages.github.com/'&gt;GitHub Pages&lt;/a&gt; I don&amp;#8217;t even have to host the blog myself (although I am of course still using my own domain so that I can move to another host whenever I want).&lt;/p&gt;

&lt;p&gt;Moving from Drupal to Jekyll was simple. There are &lt;a href='https://github.com/mojombo/jekyll/wiki/Sites'&gt;lots of sites&lt;/a&gt; out there that shows how to set up layouts etc. (I especially liked &lt;a href='https://github.com/mojombo/mojombo.github.com'&gt;Tom Preston-Werner&amp;#8217;s&lt;/a&gt; and &lt;a href='https://github.com/al3x/al3x.github.com'&gt;Alex Payne&amp;#8217;s&lt;/a&gt;) and there are good documentation of the &lt;a href='https://github.com/mojombo/jekyll/wiki/Liquid-Extensions'&gt;template syntax&lt;/a&gt; and such. There&amp;#8217;s also a simple migration script to create Jekyll posts and redirects for the nodes on your existing Drupal site - which I extended to support &lt;a href='https://github.com/mojombo/jekyll/pull/383'&gt;database prefixes&lt;/a&gt; and &lt;a href='https://github.com/mojombo/jekyll/pull/384'&gt;url aliases&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With this simpler blogging tool I&amp;#8217;m most likely going to blog a bit more - and since it&amp;#8217;s now easy to also start blogging in english I&amp;#8217;m also going to do that in addition to my swedish posts. To help those not understanding swedish that well I have marked my swedish posts with the swedish flag on the front page and I have also replaced the old RSS feed with two new Atom feeds - one that contain &lt;a href='/english.xml' type='application/atom+xml'&gt;only the english posts&lt;/a&gt; and another feed &lt;a href='/all.xml' type='application/atom+xml'&gt;containing all posts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And lastly: Thanks to &lt;a href='http://twitter.com/peterrosdahl'&gt;Peter Rosdahl&lt;/a&gt; for feedback regarding design and other things.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Sista dagen på Good Old</title>
   <link href="http://voxpelli.com/2011/03/sista-dagen-p-good-old/"/>
   <updated>2011-03-29T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2011/03/sista-dagen-p-good-old</id>
   <content type="html">&lt;p&gt;Idag var min sista dag som anställd på &lt;a href=&quot;http://goodold.se&quot;&gt;Good Old&lt;/a&gt;. Från och med nästa månad kommer jag att fördela min tid mellan anställning på &lt;a href=&quot;http://flattr.com&quot;&gt;Flattr&lt;/a&gt; och &lt;a href=&quot;http://kodfabrik.se&quot;&gt;frilansande&lt;/a&gt;. På Flattr kommer jag mestadels pyssla med front-end-biten medans jag som frilans nog huvudsakligen kommer att fokusera på opensource-moduler och då i synnerhet kring Drupal.&lt;/p&gt;
&lt;p&gt;Jag har spenderat de tre senaste år på Good Old och lärt mig väldigt mycket under den tiden. Fått förståelse för byråvärlden liksom en vana i att bygga sajter på öppna &lt;span class=&quot;caps&quot;&gt;CMS&lt;/span&gt;. Det har blivit många spännande projekt, såväl lanserade som olanserade, och även intressanta biprodukter såsom &lt;a href=&quot;http://drupal.org/project/services&quot;&gt;drupalmoduler&lt;/a&gt; &lt;a href=&quot;http://drupal.org/project/oauth&quot;&gt;för &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt;:er&lt;/a&gt; och &lt;a href=&quot;http://blogs.goodold.se/office/2010/01/27/good-old-applevaka/&quot;&gt;applevakor&lt;/a&gt;. Nu kändes det dock som rätt tid att gå vidare till nya utmaningar, men jag önskar Good Old all lycka i framtiden och står och hejar på vid sidan om!&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Ubuntu Cola: En onödig rättvisemärkning?</title>
   <link href="http://voxpelli.com/2010/11/ubuntu-cola-en-ondig-rttvisemrkning/"/>
   <updated>2010-11-06T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2010/11/ubuntu-cola-en-ondig-rttvisemrkning</id>
   <content type="html">&lt;p&gt;Det var några år sedan den introducerades &amp;#8211; Ubuntu Colan &amp;#8211; den där lite snyggare konkurrenten till Coca Cola som med afrikanska namnet för medmänsklighet och rättvisemärkt socker skulle frälsa Sverige från det multinationella Coca Colas klor. Fast &amp;#8211; hur stor poäng är det med den egentligen?&lt;/p&gt;
&lt;p&gt;En sak som nog inte alla vet är att en råvara producerad i Sverige per automatik är diskvalificerad från rättvisemärkning. Sockret i Ubuntu Cola, den enda rättvisemärkta ingrediensen, måste komma från ett utvecklingsland &amp;#8211; bara produkter från de länderna kan rättvisemärkas.&lt;/p&gt;
&lt;p&gt;Var kommer då Coca Colas socker från? Som det multinationella företag det är så kommer naturligtvis dess ingredienser från ett veritabelt terroristnäste &amp;#8211; snapphanarnas Skåne. Här nere jobbar vi tolv timmar om dagen sju dagar i veckan med att producera det socker ni längre norrut sedan häller i er i form av Coca Cola. Ni är onda om ni inte köper den rättvisemärkta Ubuntu Cola och friger oss skåningar från våra tortyrmästare.&lt;/p&gt;
&lt;p&gt;Rättvisemärkning är klurigt &amp;#8211; syftet är ju att gynna en positiv utveckling i utvecklingsländerna genom att se till att de varor man köper därifrån produceras på schysta villkor. För produkter såsom kaffe och bananer som i princip bara kan tillverkas i utvecklingsländer är ett köp av en rättvisemärkt vara ett intyg på att arbetarna och samhället tas bättre hand om än annars, men för en produkt såsom socker som annars inte skulle kommit från ett U-land så innebär det istället att man skapar en artificiell efterfrågan av en produkt som kanske egentligen lämpar sig bättre att producera i Sverige.&lt;/p&gt;
&lt;p&gt;En &lt;a href=&quot;http://www.coca-cola.se/contentstore/cc/se_SV/pages/products/coca_cola.html&quot;&gt;klassisk Coca Cola&lt;/a&gt; är nog ett till helheten sett bättre val än en &lt;a href=&quot;http://www.ubuntu-trading.com/our-fairtrade-cola/what-is-in-our-cola&quot;&gt;Ubuntu Cola&lt;/a&gt; &amp;#8211; skånes socker är minst lika schyst som socker från Malawi och Zambia. Vill man förbättra världen bör man nog titta på sådana produkter som faktiskt erbjuder något extra &amp;#8211; som Astrid och Apornas &lt;a href=&quot;http://www.fulcola.com/cola/Svrt+cola&quot;&gt;Svrt cola&lt;/a&gt; som liknar Ubuntu Cola men är krav-märkt eller Whole Earths &lt;a href=&quot;http://www.wholeearthfoods.com/products/6&quot;&gt;ekologisk cola&lt;/a&gt; på naturliga ingredienser. Vill man ha något som definitivt inte bär några multinationalistiska drag alls så har Fermans en botanisk &lt;a href=&quot;http://www.fulcola.com/cola/Curiosity+cola&quot;&gt;Curiosity Cola&lt;/a&gt; med flaska minst lika snygg som Ubuntu Colans.&lt;/p&gt;
&lt;p&gt;Rättvisemärkning är bra &amp;#8211; men man får se upp så att ens köp inte bara innebär att man köper en produkt som åkt en onödigt lång väg utan att den faktiskt också innebär att man köper en rättvisare produkt än dess alternativ. Kaffe och bananer är lugnt &amp;#8211; men när det är sockret som är rättvisemärkt bör man nog se upp.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>iPhonealarmen förvirrade nu i vintertider</title>
   <link href="http://voxpelli.com/2010/10/iphonealarmen-frvirrade-nu-i-vintertider/"/>
   <updated>2010-10-31T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2010/10/iphonealarmen-frvirrade-nu-i-vintertider</id>
   <content type="html">&lt;p&gt;Tänkte få en tidig start på dagen idag, satte ett alarm på 9.00 och tänkte att det ju med sommartiden mätt är 10.00 så tidigt på sitt vis, men inte så tidigt egentligen.&lt;/p&gt;
&lt;p&gt;Spännande överraskningen kom när jag vaknade av mig själv 9.30 utan att alarmet gått av. Än mer spännande blev det när alarmet gick av 10.00.&lt;/p&gt;
&lt;p&gt;26:e september rapporterade &lt;a href=&quot;http://www.tuaw.com/&quot;&gt;&lt;span class=&quot;caps&quot;&gt;TUAW&lt;/span&gt;&lt;/a&gt; om hur &lt;a href=&quot;http://www.tuaw.com/2010/09/26/ios-alarms-broken-for-new-zealand-users-after-daylight-savings/&quot;&gt;Nya Zeeländska iPhone-användare fick problem&lt;/a&gt; när de skulle gå över till sommartid &amp;#8211; alla repeterande alarm gick av en timme för tidigt. Buggen som orsakade det verkar inte vara fixad och nu när hela europa slår över till vintertid så drabbar den oss lite värre &amp;#8211; istället för en timme tidiga alarm får vi en timme sena.&lt;/p&gt;
&lt;p&gt;Jag har en iPhone 4 med iOS 4.1 och att reproducera buggen för mig är lätt:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Sätt ett &lt;em&gt;repeterande&lt;/em&gt; alarm som är lite mindre än en timme bakåt i tiden, t.ex. 10.05 om klockan nu är 11.00.&lt;/li&gt;
	&lt;li&gt;Vänta tills alarmet du satte är precis en timme bakåt i tiden.&lt;/li&gt;
	&lt;li&gt;Lyssna till din ljuva alarmsignal.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Hur fixar man buggen då? Ingen aning &amp;#8211; efter såväl omstart av iPhone som synkronisering med datorn kan jag fortfarande reproducera buggen.&lt;/p&gt;
&lt;p&gt;Även andra verkar &lt;a href=&quot;http://twitter.com/macks/status/29263194604&quot;&gt;uppleva&lt;/a&gt; denna buggen och &lt;a href=&quot;http://twitter.com/hejg&quot;&gt;Gustav&lt;/a&gt; har också lyckats reproducera den på sin 3Gs med iOS 4.1. Verkar ju onekligen vara samma problem som Nya Zeeländarna hade som ännu inte blivit fixat. Dags att förbereda oss på en måndag med halva befolkningen försovna och ett påföljande allmänt Apple-hat?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uppdatering:&lt;/strong&gt; Min kollega Simon &lt;a href=&quot;http://twitter.com/styrisen/status/29352285489&quot;&gt;testade precis&lt;/a&gt; på sin iPhone med iOS 4.2 betan och han kan inte reproducera buggen. Kan vi gissa att vi får se 4.2 släppt innan 7 november då &lt;span class=&quot;caps&quot;&gt;USA&lt;/span&gt; byter till vintertid?&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Satsa alltid med hela hjärtat</title>
   <link href="http://voxpelli.com/2010/10/satsa-alltid-med-hela-hjrtat/"/>
   <updated>2010-10-30T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2010/10/satsa-alltid-med-hela-hjrtat</id>
   <content type="html">&lt;p&gt;Halvhjärtade satsningar är ett hot mot samhället. De kväver groende gräsrotsrörelser och orsakar därför på lång sikt mycket mer skada än den frälsning de på kort sikt kan synas att ge.&lt;/p&gt;
&lt;p&gt;Istället för att göra satsningar man inte riktigt orkar att driva hela vägen borde initiativtagare göda på de frön till engagemang som redan ligger i jorden. Sträcka ut en hand till de personer som sitter med fantastiska idéer och mängder av energi, men som saknar kompassen för att finna vägen till något stort.&lt;/p&gt;
&lt;p&gt;Dagens &lt;a href=&quot;http://www.malmofria.nu/&quot;&gt;Malmö Fria Tidning&lt;/a&gt; skriver om &lt;a href=&quot;http://www.malmofria.nu/artikel/85772&quot;&gt;ett gäng ungdomar&lt;/a&gt; som inte kvävdes. De fann en kompass som ledde dem till vad vi idag känner som Roskildefestivalen. Vad hade hänt om något halvhjärtat uteställe hunnit före deras musiklokal med kvällsöppet? Då hade norra europas festivalscén gått miste om en av sina starkast lysande stjärnor. Skulle det halvhjärtade utestället varit värt det? Det tycker inte jag…&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Du röstar inte bara på valdagen</title>
   <link href="http://voxpelli.com/2010/09/du-rstar-inte-bara-p-valdagen/"/>
   <updated>2010-09-19T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2010/09/du-rstar-inte-bara-p-valdagen</id>
   <content type="html">&lt;p&gt;Idag läggs röstsedlar i kuvert som förseglar vårt styre de nästkommande fyra åren. Idag har vi makten &amp;#8211; det är idag som är demokrati. Eller?&lt;/p&gt;
&lt;p&gt;Staten bestämmer visst, men inte allt. Vi har valt att ha en marknadsekonomi istället för en planekonomi och då blir det ju så. Vi kan därför inte luta oss tillbaka och tro att bara för att vi röstar på valdagen så kan vi luta oss tillbaka alla de andra 1461 dagarna under mandatperioden &amp;#8211; något sådant vore oansvarigt.&lt;/p&gt;
&lt;p&gt;I en marknadsekonomi utövar vi vårt inflytande var gång vi öppnar plånboken och röstar på det som vi just du känner att vi vill se mer av i framtiden. Om vi nyttjar den makten kan vi troligtvis idag påverka långt mycket mer än vad vi kan göra på valdagen.&lt;/p&gt;
&lt;p&gt;Detta blir därför svaret på &lt;a href=&quot;http://jardenberg.se/b/jag-alskar-flattr/#comment-79272601&quot;&gt;en kommentar&lt;/a&gt; på Joakim Jardenbergs blogg som undrade varför fler än de som kan tjäna pengar på skulle välja att använda det sociala mikro-donationssystemet Flattr (som jag för övrigt börjat extraknäcka hos &amp;#8211; något som jag kommer att återkomma till).&lt;/p&gt;
&lt;p&gt;Varför flattra om jag inte tjänar pengar på det?&lt;/p&gt;
&lt;p&gt;För att det är ett maktinstrument. Om jag sprider morötter omkring mig så kommer fler att skutta åt mitt håll och om fler skuttar åt mitt håll så kommer jag att få en intressantare nätupplevelse än annars. Genom mina flattringar uppmuntrar jag andra att göra sådant som jag tycker är spännande. Det är inte manipulativt, det är inte otäckt &amp;#8211; det är bara att vara smart och nyttja sin demokratiska rätt i en marknadsekonomi.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Fika som på gymmet? Med fastpris</title>
   <link href="http://voxpelli.com/2010/07/fika-som-p-gymmet-med-fastpris/"/>
   <updated>2010-07-13T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2010/07/fika-som-p-gymmet-med-fastpris</id>
   <content type="html">&lt;p&gt;Vad kostar en kopp kaffe? Nada. Vad kostar en barista? Multum. Lokal? Detsamma. De fasta kostnaderna är de stora utgifterna på ett kafé, inte råvarorna. Det är inte kaffet man betalar för &amp;#8211; det är tillgängligheten.&lt;/p&gt;
&lt;p&gt;Föreställ dig ett idylliskt fik på bästa plats med bästa atmosfär &amp;#8211; något alla vill besöka. Föreställ dig att alla jobbar på nergångna platser under långa dagar och blott hinner in om detta fik för att ta en latte en gång i månaden, men att de ser fram emot och värdesätter den stunden stort &amp;#8211; det är vad som får dem att fortsätta att kämpa. Föreställ dig dyr hyra, flott inredning och bästa personal &amp;#8211; men föreställ dig då också en latte för 150 kr styck för att de ska kunna täcka de fasta kostnaderna.&lt;/p&gt;
&lt;p&gt;Föreställ dig nu att du blir arbetslös och kan besöka kaféet hur mycket som helst. Tillåter din A-kassa en 150 kronors latte var dag? 4,5k latte i månaden? Inte? Orimligt pris?&lt;/p&gt;
&lt;p&gt;Genom att ta betalt för de fasta kostnaderna för en service, såsom lokal, barista etc, som ett påslag på en produktkostnad blir det väldigt svårt för en kund att köpa det den vill ha. Vill man ha servicen eller vill man ha en latte? För vissa kaféer kanske latten är den primära produkten, för andra servicen att tillhandahålla latten.&lt;/p&gt;
&lt;p&gt;Gym tillhandahåller servicen av en gymhall och har för det i princip enbart fasta kostnader vilka de också tar betalt för genom en fast avgift.&lt;/p&gt;
&lt;p&gt;Netflix tar ut en fast avgift för sin tjänsten att du får ha en av deras dvd:er hemma, men låter bytena vara gratis. De har en omvänd marginal på sin tjänst &amp;#8211; de låter marginalen på de fasta kostnaderna täcka de rörliga.&lt;/p&gt;
&lt;p&gt;Ett fik, såsom &lt;a href=&quot;http://kujenga.se/&quot;&gt;Kujenga&lt;/a&gt;, skulle kunna göra på samma sätt &amp;#8211; att tillämpa ett fast pris för servicen att kafét är öppet med lediga platser och härlig personal och kanske till och med tillämpa en omvänd marginal och låta kaffet vara gratis för de som betalat serviceavgiften. På så vis kan kaféet också få reda på vad dens kunder faktiskt vill ha och styra sig efter deras konsumentmakt &amp;#8211; vilket båda tjänar.&lt;/p&gt;
&lt;p&gt;Service är frihet &amp;#8211; men en frihet utan pris. Genom att gömma undan servicekostnaden i marginalen på en produkt inskränker man folks frihet att välja och gör dem till konsumtionssamhällets slavar. Genom att ge service ett pris gör man också friheten tillgänglig på marknaden och gör det på så vis möjligt för folk att köpa sig en mångfald utan att för den delen behöva konsumera sig till döds. Det erkänner att livskvalité är minst likvärdigt med konsumtion &amp;#8211; att det kan vara minst lika givande att få ta sig en liten kopp kaffe i ett paradissolsken som att vräka i sig ett storpack på en p-plats.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Så värnar du om open source projekt</title>
   <link href="http://voxpelli.com/2009/07/s-vrnar-du-om-open-source-projekt/"/>
   <updated>2009-07-20T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2009/07/s-vrnar-du-om-open-source-projekt</id>
   <content type="html">&lt;p&gt;Vi använder alla open source idag och vi påverkas alla av vilken riktning utvecklingen av ett open source projekt tar.&lt;/p&gt;
&lt;p&gt;Ibland sker drastiska ändringar som gör oss upprörda, ibland sker en sakta vridning av ett projekt från något vi gillade till något vi inte är så förtjusta i.&lt;/p&gt;
&lt;p&gt;Hur ser man till att de projekt man värnar om mest håller sig på banan och istället för att utvecklas bort från det man vill ha än mer fokuserar sig på det som man själv ser som projektets kärnvärden? Det finns några alternativ:&lt;/p&gt;
&lt;h3&gt;Plötslig drastisk enskild händelse&lt;/h3&gt;
&lt;p&gt;Vid en plötslig drastisk enskild händelse av inte allt för stora proportioner gäller det att, helst proaktivt men även retroaktivt, göra sin röst hörd i den ticket/issue/bugg som diskuterar ämnet. Bäst är att hålla utkik i listorna och för att där upptäcka vad som håller på att ske &amp;#8211; enklare kan vara att granska det genom att kontinuerligt granska kodbasen och beta-släpp eller om den trots det slipper igenom att upptäcka förändringen via den släppta produkten.&lt;/p&gt;
&lt;p&gt;När väl förändringen är lokaliserad gäller det att samla på sig argument och lobba för varför den föreslagna förändringen inte är gynnsam för communityt i stort och försöka vinna över stöd för sin sak. Kan man dessutom få en kodare att understödja argumenten med faktiskt kod är det ett plus &amp;#8211; men knappast ett krav. Open source världen i stort är en &lt;a href=&quot;http://www.communitywiki.org/en/DoOcracy&quot;&gt;do-ocracy&lt;/a&gt; så om det inte räcker att snacka för att få igenom en förändring, det kanske finns ett faktiskt problem som måste lösas med kod, så måste i slutändan kod skapas &amp;#8211; men det är långt ifrån alltid där som skon klämmer, snarare att de kodare som redan finns inte får tillräckligt med feedback för att kunna utnyttjas optimalt.&lt;/p&gt;
&lt;p&gt;Exempel: I &lt;a href=&quot;http://wordpress.org/&quot;&gt;Wordpress&lt;/a&gt; 2.8 gjordes en mindre &lt;a href=&quot;http://core.trac.wordpress.org/changeset/11410&quot;&gt;buggfix&lt;/a&gt; för att undvika allt för stort spammande av pingtjänster såsom Twingly. Tanken var bra, men utförandet inte helt lyckat &amp;#8211; alla pingningar kom in en timme efter de borde. Communityt hade inte hittat misstaget tidigare, men arbetar just nu på att &lt;a href=&quot;http://core.trac.wordpress.org/ticket/6698&quot;&gt;lösa problemet&lt;/a&gt; och jag har skickat in några patchar. &lt;a href=&quot;http://core.trac.wordpress.org/ticket/6698#comment:43&quot;&gt;Svaret&lt;/a&gt; på varför patcharna inte kräver trejde parts granskning från communityt är: &amp;#8220;Re the workflow, that would be ideal, if we had more contributors.&amp;#8221; &amp;#8211; i andra ord: Bättre att en dålig förändring slinker igenom än ingen förändring alls &amp;#8211; enda sättet att fixa är att vara med och granska och komma med lösningar.&lt;/p&gt;
&lt;h3&gt;Plötslig drastisk större händelse&lt;/h3&gt;
&lt;p&gt;Ibland tar plötsligt ett helt projekt en drastisk vändning &amp;#8211; det är inte bara en enskild förändring utan snarare så att någon av nyckelpersonerna eller nyckelgrupperna bakom projektet valt att slå in projektet på en helt annan väg än du tycker det ska ta. Som alltid gäller det att såklart göra din röst hörd inom communityt &amp;#8211; visa att detta inte är något du stödjer med välbyggda argument och bygg upp ett stöd för din sak.&lt;/p&gt;
&lt;p&gt;Om du inte får gehör, vilket kanske kan vara svårt om det råkar vara en sluten grupp med en bestämd åsikt och du kanske först nu förstått poängen att vara engagerad i communityt och alltså är en relativ nykomling, så har du ändå alternativ. Du kan såklart fortsätta använda den gamla versionen för all framtid &amp;#8211; kanske kommer det fortsättas byggas utökningar etc för den, men eftersom själva kärnan inte stöds av någon grupp kan det bli knivigt med ex. säkerheten i längden. Har man tur kan man dock med det moment som byggdes upp underlobbying för en förändring av ursprungsprojektet skapa en språngbräda till att knoppa av den nuvarande versionen till ett nytt sidoprojekt &amp;#8211; att &amp;#8220;forka&amp;#8221; det.&lt;/p&gt;
&lt;p&gt;Forkning är en av de mer spännande aspekter av open source &amp;#8211; oavsett hur åt skogen ett projekt och dess ledning går så kan produkten alltid överleva om någon plockar upp stafettpinnen och springer vidare. Det är inte lätt och det är traditionellt sett något som kan ses med ganska onda ögon från det existerande communityt så i de flesta fall är det enbart en sista utväg &amp;#8211; men som alltid är vetskapen att den finns där om den behövs det viktigaste &amp;#8211; det finns alltid en lösning med open source &amp;#8211; alltid.&lt;/p&gt;
&lt;p&gt;Exempel: &lt;a href=&quot;http://www.activecollab.com/&quot;&gt;activeCollab&lt;/a&gt; levde som ett open source projekt när upphovsmannen bestämde sig för att nästa version skulle lanseras kommersiellt &amp;#8211; det gillade inte delar av communityt som valde att bygga vidare på open source varianten under namnet &lt;a href=&quot;http://www.projectpier.org/&quot;&gt;ProjectPier&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Långsam större händelse&lt;/h3&gt;
&lt;p&gt;Det kan hända att ett projekt så sakteliga viker av från kursen. Kanske börjar community-medlemmarna tappa gnistan, gå vidare i livet eller helt enkelt gå i samma fotspår och göra saker av slentrian istället för av upptäckarlusta. Orsakerna kan vara många, men gemensamt är att du troligast först märker det när det är för sent. När projektet under några år så sakteliga svängt in på fel kurs och mer eller mindre självdött kan det krävas mycket för att rädda det när man väl märker det.&lt;/p&gt;
&lt;p&gt;Bästa försvaret mot långsamma större förändringar är att hålla sig aktiv i communityt &amp;#8211; snappa upp signaler om förändringar, själv vara med och blanda sig och peppa och styra in det på rätt bana &amp;#8211; både för att förhindra att projektet glider in på fel bana, men också för att tidigt se varningstecknena och kunna agera &amp;#8211; antingen på ett personligt plan, genom att försöka söka andra alternativ, eller genom att pusha projektet hårdare i rätt riktning och se till att uppmärksamma andra på vad som kommer att ske.&lt;/p&gt;
&lt;p&gt;Det finns precis här som med de plötsliga större händelser en möjlighet att forka &amp;#8211; problemet kan vara att engagemanget redan nått en så låg nivå att det inte finns några människor att samla. Ett alternativ kan vara om projektet håller på att dö att man kan lyckas få ta över tronen (commit access) på det existerande projektet, men det kan också vara så att de desillusionerade ledarna inte vill lämna ifrån sig projektet av olika psykologiska anledningar och då är enda alternativet att dö med projektet eller att ta sig orken att flytta till ett annat &amp;#8211; något som andra kanske redan gjort och som det kan finnas hjälp att få i att göra.&lt;/p&gt;
&lt;p&gt;Exempel: &lt;a href=&quot;http://mysql.com/&quot;&gt;MySQL&lt;/a&gt; kan eventuellt ses som ett exempel &amp;#8211; det har länge gått utför och många kärnutvecklare har hoppat både när de köptes upp av Sun och tros nå en kulmen nu med Suns uppköp av Oracle. Resultatet är forkar såsom &lt;a href=&quot;https://launchpad.net/drizzle&quot;&gt;Drizzle&lt;/a&gt; och &lt;a href=&quot;http://askmonty.org/wiki/index.php/MariaDB&quot;&gt;MariaDB&lt;/a&gt; som antingen kan ses som ett sista försök att rädda ett dött projekt eller som kanske fruktlösa försök att bryta med ett kanske fortfarande starkt projekt &amp;#8211; eller så ser vi en framtid där lever jämnstarka sida vid sida &amp;#8211; vi får se.&lt;/p&gt;
&lt;h3&gt;Open source är du&lt;/h3&gt;
&lt;p&gt;Vi är vana vid att kunna peka finger när något går fel &amp;#8211; säga att någon är ansvarig och att någon gjort fel och att någon måste fixa. Det gäller inte i open source världen &amp;#8211; visst kan vi peka fingrar och säga att någon är ansvarig, gjort fel eller måste fixa något &amp;#8211; men ytterst måste vi då också peka finger på oss själva och fundera på om inte vi har oss själva att skylla för att vi inte var där och åtgärdade den fixen.&lt;/p&gt;
&lt;p&gt;Vi kan såklart inte alla fixa allt &amp;#8211; men vi kan heller inte ha rätt att klaga på de som faktiskt försökt föra projektet framåt om inte vi själva försökt göra bättre. Open source handlar inte om att hitta fel som andra gjort utan om att hitta sätt att göra det bättre &amp;#8211; och att göra det. Open source ÄR do-ocracy &amp;#8211; det som görs bli gjort &amp;#8211; det som klagas på blir som bäst bara klagat på och som värst en släckt mindre community när folk tröttnat lyssna på otacksamhet kring deras frivilliga insatser.&lt;/p&gt;
&lt;p&gt;Det bästa du kan göra för att garantera att de projekt du gillar hålls hälsosamma är att bidra med dig själv &amp;#8211; se till att färga de tankar som flyter i communityt och du kan om du ha tur inte bara få ett hälsosamt projekt utan tom ett blommande projekt. Alla kan vi göra något &amp;#8211; alla bör vi göra något.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Presentationer, konferenser och meetups</title>
   <link href="http://voxpelli.com/2009/05/presentationer-konferenser-och-meetups/"/>
   <updated>2009-05-13T00:00:00-07:00</updated>
   <id>http://voxpelli.com/2009/05/presentationer-konferenser-och-meetups</id>
   <content type="html">&lt;p&gt;Det verkar vara högsäsong för konferenser, meetups, camps etc just nu. Inte nog med att Tomas Wennströms tanke kring &lt;a href=&quot;http://www.swedensocialwebcamp.com/&quot;&gt;en liten kul träff&lt;/a&gt; för socialawebbenfolk har nått en enorm uppslutning på över 230 personer och måste anses vara obligatorisk för allt socialawebbenfolk i Sverige &amp;#8211; dessutom är det nu i maj tre stycken nordiska DrupalCamps och en helt galen nördvecka för folket i Stockholm.&lt;/p&gt;
&lt;p&gt;Själv kommer jag att representera &lt;a href=&quot;http://goodold.se/&quot;&gt;Good Old&lt;/a&gt; på DrupalCamp i &lt;a href=&quot;http://drupalcamp.dk/&quot;&gt;Köpenhamn&lt;/a&gt; och &lt;a href=&quot;http://drupalcamp.se/&quot;&gt;Stockholm&lt;/a&gt;. Kommer i Danmark hålla en mindre presentation med en annan utvecklare, Hugo, kring de moduler vi utvecklat och släppt öppet och kommer i Stockholm att själv hålla i en presentation av ett case för sajterna &lt;a href=&quot;http://esloved.se/&quot;&gt;Esloved.se&lt;/a&gt; och &lt;a href=&quot;http://malmotown.com/&quot;&gt;Malmotown.com&lt;/a&gt; som jag varit med och utvecklat på Good Old.&lt;/p&gt;
&lt;p&gt;När jag väl är uppe i Stockholm så tänkte jag ta chansen att stanna kvar där ett tag. Kommer nästan måndag till torsdag första veckan i juni att jobba från Good Olds stockholmskontor för att bl.a. ha chans att gå på &lt;a href=&quot;http://robertnyman.com/2009/05/13/mozilla-swedish-community-meetup-in-stockholm-june-2nd-2009/&quot;&gt;Mozillas meetup&lt;/a&gt; på tisdagen och &lt;a href=&quot;http://robertnyman.com/2009/05/04/geek-meet-charity-june-4th-2009-chris-mills-and-remy-sharp-speaking/&quot;&gt;geek meet&lt;/a&gt; på torsdagen, men också för att träffa lite andra människor över en lunch eller så och utforska vår huvudstad lite i allmänhet.&lt;/p&gt;
&lt;p&gt;Om någon skulle vilja träffas under tiden jag är i Stockholm, 30 maj till 4 juni, så hojta till &amp;#8211; vore kul!&lt;/p&gt;
&lt;p&gt;Förutom de meetups som jag ska på är det under dunderveckan i slutet av maj alltså också ett tredje DrupalCamp, det i Helsingfors, samt något så spännande som &lt;a href=&quot;http://uk.techcrunch.com/2009/05/11/techcrunch-goes-nordic-may-27-stockholm/&quot;&gt;TechChrunch Nordic&lt;/a&gt;.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Norsk IE 6 revolt inledd - jippie!</title>
   <link href="http://voxpelli.com/2009/02/norsk-ie-6-revolt-inledd-jippie/"/>
   <updated>2009-02-18T00:00:00-08:00</updated>
   <id>http://voxpelli.com/2009/02/norsk-ie-6-revolt-inledd-jippie</id>
   <content type="html">&lt;p&gt;Läser på &lt;a href=&quot;http://search.twitter.com/search?q=%23IE6&quot;&gt;Twitter&lt;/a&gt; och på &lt;a href=&quot;http://mindpark.se/2009/02/18/heja-norge/&quot;&gt;Mindparks blogg&lt;/a&gt; om att flera stora sajter i Norge nu har börjat visa informationsrutor för användare av Internet Explorer 6 som berättar att webbläsaren är gammal och att man bör använda en ny version eller byta webbläsare för att få bästa möjliga upplevelse av sajten.&lt;/p&gt;
&lt;p&gt;Samma visa har det de senaste veckorna varit även i Sverige, dock utan någon regelrätt revolt, där flera tunga namn inom den svenska webbvärlden, såsom &lt;a href=&quot;http://www.robertnyman.com/2009/02/09/stop-developing-for-internet-explorer-6/&quot;&gt;Robert Nyman&lt;/a&gt;, &lt;a href=&quot;http://www.456bereastreet.com/archive/200902/no_more_pixel_perfectionism_in_ie_6/&quot;&gt;Roger Johansson&lt;/a&gt; och &lt;a href=&quot;http://friendlybit.com/browsers/motivation-for-building-for-ie6/&quot;&gt;Emil Stenström&lt;/a&gt; öppet deklarerat att tiden för perfekta IE 6 hemsidor är förbi och att det nu inte är rimligt att begära mer än att sidan fungerar i IE 6 och låta de modernare webbläsarna få det godis de förtjänar.&lt;/p&gt;
&lt;p&gt;Själv ville jag haka på trenden &amp;#8211; men eftersom att jag sitter på &lt;a href=&quot;http://drupal.org/&quot;&gt;Drupal&lt;/a&gt; på denna bloggen så kan jag inte använda den &lt;a href=&quot;http://wordpress.org/extend/plugins/shockingly-big-ie6-warning/&quot;&gt;Wordpress plugin&lt;/a&gt; som &lt;a href=&quot;http://jardenberg.se/&quot;&gt;Joakim Jardenberg&lt;/a&gt; tipsade om på Mindpark-bloggen utan fick slänga ihop en egen lite snabbt.&lt;/p&gt;
&lt;p&gt;Ni hittar min Drupal-modul på GitHub: &lt;a href=&quot;http://github.com/voxpelli/drupal-ie6notify&quot;&gt;http://github.com/voxpelli/drupal-ie6notify&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Backchannels och Googlebuggar</title>
   <link href="http://voxpelli.com/2009/01/backchannels-och-googlebuggar/"/>
   <updated>2009-01-31T00:00:00-08:00</updated>
   <id>http://voxpelli.com/2009/01/backchannels-och-googlebuggar</id>
   <content type="html">&lt;p&gt;Har på sistone sysselsatt mig med några små roliga hobbyprojekt vid sidan av mitt arbete på &lt;a href=&quot;http://goodold.se/&quot;&gt;Good Old&lt;/a&gt;. Är skönt att ha några små projekt att pyssla med som omväxling mot sådana mastodontprojekt som jag kodar på där, såsom &lt;a href=&quot;http://malmotown.com/&quot;&gt;Malmotown.com&lt;/a&gt; och &lt;a href=&quot;http://www.dinby.dk/&quot;&gt;Dinby.dk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Det största hobbyprojektet är &lt;a href=&quot;http://svpt.nu/&quot;&gt;Svpt.nu&lt;/a&gt; som är en auto-uppdaterandes lista över alla Twitter-inlägg som markerats med hashtaggen #svpt &amp;#8211; som står för SVenskar På Twitter. Jag och &lt;a href=&quot;http://peterrosdahl.com/&quot;&gt;Peter Rosdahl&lt;/a&gt; satt och chattade om att det vore roligt att bygga någon mashup och framförallt något med Twitter som precis hade exploderat här i Sverige. Vanan trogen kollade jag upp några domäner på Loopia och såg att svpt.nu förvånansvärt nog var ledig. Nämnde det för Peter och efter vars 4-6 timmars kodande, jag på javascript och Peter på html, var sajten uppe mindre än ett dygn efter att idéen kläcktes.&lt;/p&gt;
&lt;p&gt;Det var 9 januari och sedan dess har Svpt.nu dessutom varit den officiella Twitter-backchanneln för &lt;a href=&quot;http://www.24hourbusinesscamp.com/&quot;&gt;24 hour business camp&lt;/a&gt; och kommer troligen vara officiell backchannel för ett annat större event också. Under denna tiden har vi haft dryga 2200 unika besökare, ca 4500 besök och omnämnanden på många bloggar, i många &amp;#8220;tweets&amp;#8221; och tom lite i Metro.&lt;/p&gt;
&lt;p&gt;Allt som allt togs Svpt.nu emot jättebra och det var ett riktigt kul litet projekt som nog kan få se sig en och annan uppföljare.&lt;/p&gt;
&lt;p&gt;Vad gäller andra projekt så slängde jag, än en gång med Peter, idag med anledning av &lt;a href=&quot;http://googleblog.blogspot.com/2009/01/this-site-may-harm-your-computer-on.html&quot;&gt;Google buggen&lt;/a&gt; upp en &lt;a href=&quot;http://feedfunk.spreadshirt.net/&quot;&gt;liten kul butik&lt;/a&gt; med några t-shirtar med &amp;#8220;I survived the Google Bug 31 January 2009&amp;#8221;-tryck på, delvis inspirerade av &lt;a href=&quot;http://ms--online.blogspot.com/2008/12/varfr-jag-gillar-internet.html&quot;&gt;Martins roliga idé&lt;/a&gt; efter den skånska jordbävningen och delvis för att det är kul att utforska nya saker. Får se om någon annan tycker den är lika kul som vi &amp;#8211; jag beställde mig iaf en tröja för att testa själv :)&lt;/p&gt;
&lt;p&gt;Även denna blogg är lite av projekt som dock på sistone inte fått så mycket uppmärksamhet &amp;#8211; men det kommer så sakteliga.&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Pingback, Multiping och Global Redirect</title>
   <link href="http://voxpelli.com/2009/01/pingback-multiping-och-global-redirect/"/>
   <updated>2009-01-02T00:00:00-08:00</updated>
   <id>http://voxpelli.com/2009/01/pingback-multiping-och-global-redirect</id>
   <content type="html">&lt;p&gt;Jobbade idag med att integrera olika former av pingning för denna bloggen.&lt;/p&gt;
&lt;p&gt;Jag lade bl.a. till modulen &lt;a href=&quot;http://drupal.org/project/pingback&quot;&gt;Pingback&lt;/a&gt; som lägger till i Drupal stöd för Pingback-specifikationen som möjliggör för sajter att berätta för varandra när de länkar till varandra &amp;#8211; något som bl.a. Wordpress stödjer.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/multiping&quot;&gt;Multiping&lt;/a&gt; blev också tillagd. Det är en modul som ska möjliggöra pingning av bl.a. &lt;a href=&quot;http://nyligen.se&quot;&gt;Nyligen.se&lt;/a&gt;, &lt;a href=&quot;http://www.twingly.com/&quot;&gt;Twingly&lt;/a&gt; och Technorati.&lt;/p&gt;
&lt;p&gt;Multiping finns ännu inte i en stabil variant så det fick bli utvecklingsversionen då det enda alternativet var Drupals inbyggda pingningsmodul som inte direkt är något imponerande alster och som därför tagits bort ur det kommande Drupal 7.&lt;/p&gt;
&lt;p&gt;Jag gick även igenom Multipings kod eftersom att det just var en utvecklingsversion och kodningsstilen såg ut att vara sådär. Jag rensade upp den ganska så bra och kommer att skicka in en patch när jag väl testat att förändringarna fungerar &amp;#8211; vilket är vad jag gör nu.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/project/globalredirect&quot;&gt;Global Redirect&lt;/a&gt; fick också vara med &amp;#8211; tycker dens funktionalitet är lite av ett måste &amp;#8211; den gör så att var sida bara går att komma åt från en &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; istället för den enorma mångfald som Drupal vanligtvis serverar. Det blir mer logiskt för såväl besökare som för sökmotorer.&lt;/p&gt;
&lt;p&gt;Slutligen &amp;#8211; för att testa Pingback &amp;#8211; borde inte Microsoft göra som Apple egentligen? Se &lt;a href=&quot;http://kodfabrik.se/blog/2008/04/13/should-microsoft-do-an-apple/&quot;&gt;tankarna på min gamla företagsblogg&lt;/a&gt;&lt;/p&gt;</content>
 </entry>
 
 <entry>
   <title>Ny blogg</title>
   <link href="http://voxpelli.com/2008/12/ny-blogg/"/>
   <updated>2008-12-29T00:00:00-08:00</updated>
   <id>http://voxpelli.com/2008/12/ny-blogg</id>
   <content type="html">&lt;p&gt;Håller så smått på att sätta upp en ny personlig blogg för mig här &amp;#8211; bastemat är på plats och jag kan skriva inlägg, men ex. pingningar, pingbacks, lifestreams etc saknas. (Och som Björn påpekade &amp;#8211; en favicon)&lt;/p&gt;
&lt;p&gt;En bra början dock.&lt;/p&gt;</content>
 </entry>
 

</feed>
