<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9299390</id><updated>2012-01-27T18:10:23.461+01:00</updated><category term='linux'/><category term='RAIL'/><category term='SEX'/><category term='poem'/><category term='WINDOWS'/><category term='GOOGLE'/><category term='irritationsmoment'/><category term='POLITIK'/><category term='PYTHON'/><category term='ec2'/><category term='IROCK'/><category term='C'/><category term='ELISP'/><category term='DOCUMENTATION'/><category term='shrinktheweb'/><category term='SLASHDOT'/><category term='GTK-DOC'/><category term='GNÄLL'/><category term='PYGTK'/><category term='ERLANG'/><category term='DJANGO'/><category term='GNOME'/><category term='GTK'/><category term='ADVICE'/><category term='GCC'/><category term='SOURCE CODE'/><category term='dns'/><category term='COMPLAINT'/><category term='GUADEC'/><category term='coding'/><category term='link'/><category term='tunnelbana'/><category term='distutils'/><category term='BLOG ACTION DAY'/><category term='ubuntu'/><category term='X11'/><category term='PRAISE'/><category term='GTKIMAGEVIEW'/><category term='ALGORITHM'/><category term='vps'/><category term='bahnhof'/><title type='text'>Bjourne's blog</title><subtitle type='html'>A blog run by Björn Lindqvist. It will contain information about Python programming and other stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default?start-index=101&amp;max-results=100'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>160</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9299390.post-2205966344371673797</id><published>2012-01-27T18:04:00.002+01:00</published><updated>2012-01-27T18:10:23.493+01:00</updated><title type='text'>Kollegerna på jobbet är justa snubbar</title><content type='html'>Jag är nog lite annorlunda av mig. Har ett eget sätt att uppfatta saker och ting på och ett eget sätt att bearbeta information. Trots det tror jag att jag är respekterad på arbetsplatsen. Det är nog ingen som ogillar mig. Ibland känner jag mig som samma barn jag var när jag gick i första klass i Hammarkulleskolan. En grubblare som jämt och ständigt måste tänka och analyserar allt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2205966344371673797?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2205966344371673797/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2205966344371673797' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2205966344371673797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2205966344371673797'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/kollegerna-pa-jobbet-ar-justa-snubbar.html' title='Kollegerna på jobbet är justa snubbar'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3712930888024435200</id><published>2012-01-27T09:33:00.002+01:00</published><updated>2012-01-27T09:37:54.919+01:00</updated><title type='text'>Tom Cruise är en bra skådespelare</title><content type='html'>Tyvärr får han bara göra tråkiga slätstrukna filmer. Ännu fler delar i Mission Impossibleserien är inte intressant. I övrigt kan jag rapportera att trots att jag nästan lovade MIG själv att sluta läsa dagstidningar sitter jag här med kukmetro i knäet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3712930888024435200?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3712930888024435200/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3712930888024435200' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3712930888024435200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3712930888024435200'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/tom-cruise-ar-en-bra-skadespelare.html' title='Tom Cruise är en bra skådespelare'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1475001404264357088</id><published>2012-01-25T19:25:00.002+01:00</published><updated>2012-01-25T19:30:15.525+01:00</updated><title type='text'>Matgriseri</title><content type='html'>Jag gillar inte när folk sitter och grisar med mat på tunnelbanan. Sätter sig någon mitt emot mig och vrider upp en baguette brukar jag flytta på mig. Dricka är ok och godis står jag ut med. Slabbiga kladdiga grejer som folk skärsår i sig är det inte. Inte heller knäckebröd ska man äta på tuben. Fast jag stör mig ännu mer på folk som kör bil i Stockholm. De som inte är handikappade alltså.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1475001404264357088?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1475001404264357088/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1475001404264357088' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1475001404264357088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1475001404264357088'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/matgriseri.html' title='Matgriseri'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7511643024584457618</id><published>2012-01-25T09:29:00.002+01:00</published><updated>2012-01-25T09:36:54.109+01:00</updated><title type='text'>I natt jag drömde</title><content type='html'>Jag drömde att jag köpte högklackade damskor. Det var sådana med en väldigt hög klack som var formas som en svårt pinne. Klackarna var löstagbara genom att man blickade ur dem. Det gjorde jag och gick i svarta damskor utan klack. Skorna var stiligare än de gulvita gympadojor jag brukar använda men alls inte lika sköna.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7511643024584457618?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7511643024584457618/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7511643024584457618' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7511643024584457618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7511643024584457618'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/i-natt-jag-dromde.html' title='I natt jag drömde'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2649956390349000564</id><published>2012-01-24T08:47:00.002+01:00</published><updated>2012-01-24T09:00:26.960+01:00</updated><title type='text'>Vad folket tycker</title><content type='html'>Det är inte många dagar sedan media avsatte Juholt men redan har de bestämt sig för vem som ska bli hans efterträdare. Ett par hundra personer har klickar på ett formulär på Internet och efter det dragit slutsatsen ATT Margot Wallström är hela svenska folkets favorit! Nu har vi sagt vårt och då är det bara för sossarna att rätta sig.

Kanske har jag gnällt mycket på att mediadrevet går hårt fram mot politiker på vänstersidan. Hjärtat sitter till vänster, det kan jag inte förneka. Dock var de lika vidriga mot Sven-Otto Littorin som fick avgå för att en anonym knarkande hora trodde sig nästan ha haft honom som kund för fem år sedan. Den storyn var helt sjuk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2649956390349000564?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2649956390349000564/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2649956390349000564' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2649956390349000564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2649956390349000564'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/vad-folket-tycker.html' title='Vad folket tycker'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7238261799837529663</id><published>2012-01-23T15:35:00.002+01:00</published><updated>2012-01-23T17:48:35.223+01:00</updated><title type='text'>Dags för flickvän kanske</title><content type='html'>Nu är jag snart trött på att bo själv... Det kan vara trevligt med flickvänner och det har Sina fördelar ibland.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7238261799837529663?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7238261799837529663/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7238261799837529663' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7238261799837529663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7238261799837529663'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/dags-for-flickvan-kanske.html' title='Dags för flickvän kanske'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-839476816225585409</id><published>2012-01-20T18:31:00.002+01:00</published><updated>2012-01-20T18:36:19.390+01:00</updated><title type='text'>Sköna fredag...</title><content type='html'>Det var några hårda dagar den här veckan. Humöret har inte varit på topp det har däremot stressen. Idag har det iallafall lugnat sig och veckan slutade på bästa tänkbara vis. Det är skönt att bara släppa och vara nöjd med sig själv. Kanske ska jag göra något kul till helgen eller så ska jag bara släppa. Livet är bra trevligt ibland.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-839476816225585409?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/839476816225585409/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=839476816225585409' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/839476816225585409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/839476816225585409'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/skona-fredag.html' title='Sköna fredag...'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6447435131661953242</id><published>2012-01-19T12:15:00.003+01:00</published><updated>2012-01-19T21:09:59.386+01:00</updated><title type='text'>Avgå  Juholt!</title><content type='html'>&lt;p&gt;... Säger tidningarna. Kvittar vad han gjort eller vad det handlar om. Men han har ju den där skandalen bakom sig? Som inte heller nån vet vad den egentligen gick ut på. Det är löjligt tröttsamt att tidningarna kan skriva så mycket blah utan någon substans alls. Sin uppgift verkar de se som att få allmogepöbeln att tycka och känna som de själva. Fakta räknas inte utan de försöker styra samhället efter en folkopinion som de själva skapar.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uppdatering:&lt;/b&gt;Hittade den här bloggen av en slump om &lt;a href = "http://jinge.se/mediekritik/tredje-statsmakten-vs-hakan-juholt-2.htm"&gt;juholtaffären&lt;/a&gt;. Han förklarar på ett mycket träffande sätt samma sak som jag försökte få fram. Läs hans blogg!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6447435131661953242?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6447435131661953242/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6447435131661953242' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6447435131661953242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6447435131661953242'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/avga-juholt.html' title='Avgå  Juholt!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8520615065310602</id><published>2012-01-17T21:09:00.002+01:00</published><updated>2012-01-17T21:23:40.653+01:00</updated><title type='text'>Totalt kukig dag idag</title><content type='html'>Inte den bästa tisdagen jag upplevt. Den började med stress och oro och verkar sluta på samma sätt. Botten var nådd när jag gnällde på en taxichaffis som jag tyckte lurat mig genom att köra en omväg så att taxiresan blev extra dyr och gjorde så att jag kom försent. Men när jag kollade på en prisjämförelsesite var resan både billigare och snabbare än snittet. Mötestiden förlorade jag eftersom jag är värdelös på att hålla tider. Stackars tunnelbaneförare som får höra glåpord från passagerarna. Hans dag var nog också roten. Ibland tar det hårt emot som fan att tänka positivt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8520615065310602?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8520615065310602/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8520615065310602' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8520615065310602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8520615065310602'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/totalt-kukig-dag-idag.html' title='Totalt kukig dag idag'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-251703338040140779</id><published>2012-01-02T09:47:00.002+01:00</published><updated>2012-01-02T09:59:01.592+01:00</updated><title type='text'>Jag hoppas de inte kickar Juholt</title><content type='html'>Trots att mediadrevet varit stenhårt mot honom de senaste månaderna är han den sosseledare som har mest vänsterprofil. Det finns många maktkåta borgare light i det partiet, men om man vill rösta på ett högerpartiet finns det redan fem alternativ att välja mellan. Jag tror inte att någon sosse som är som Reinfeldt fast lite mjukare säljer. Vi är många som är trötta på politiken och inte vill ha ett samhälle där satsa på sig själv-etiken är det enda som gäller.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-251703338040140779?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/251703338040140779/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=251703338040140779' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/251703338040140779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/251703338040140779'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2012/01/jag-hoppas-de-inte-kickar-juholt.html' title='Jag hoppas de inte kickar Juholt'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2080971360156368922</id><published>2011-11-22T10:05:00.002+01:00</published><updated>2011-11-22T10:11:32.031+01:00</updated><title type='text'>Sömn</title><content type='html'>I natt har jag sovit i mer än tolv timmar. Det är mycket mer än vad jag brukar sova. Orsaken är det sjukliga fuktiga vädret. I luften hänger förkylnings och influensavirus som det krävs mycket energi för kroppen att hålla borta. Snart har jag druckit dagens första kopp kaffe och då hoppas jag på att vara pigg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2080971360156368922?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2080971360156368922/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2080971360156368922' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2080971360156368922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2080971360156368922'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/11/somn.html' title='Sömn'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8929866484350996016</id><published>2011-10-21T18:18:00.002+02:00</published><updated>2011-10-21T18:27:49.715+02:00</updated><title type='text'>Plattan är inte platt</title><content type='html'>Hur tänkte dom egentligen? Vem bestämde att Sergels torg skulle bli ett nedåtsluttande torg halvt om halvt under mark. Det var ingen bra idé. På den tiden kanske det inte sågs som något problem att stället stinker rök eftersom folk står och röker under taken. Skräpigt är det också.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8929866484350996016?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8929866484350996016/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8929866484350996016' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8929866484350996016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8929866484350996016'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/plattan-ar-inte-platt.html' title='Plattan är inte platt'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3070894368760114075</id><published>2011-10-18T10:08:00.001+02:00</published><updated>2011-10-18T10:08:58.794+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNÄLL'/><title type='text'>Vad man får för tre chipspåsar</title><content type='html'>&lt;p&gt;Tolv fula gorillor från Securitas som artigt men bestämt kräver att få se ens färdbevis vid spärrarna mot utgången till Sergels Torg. Det har väl inte undgått någon, eller jo det har det förresten för nyheten har inte fått något utrymme i media, att SL numera lägger ut sin biljettkontrolleringsverksamhet på entreprenad.&lt;/p&gt;
&lt;p&gt;SL-kortet blir 100 kronor dyrare och det man får för priset är ännu fler vakter och höga spärrar som öppnar och slår igen automatiskt och ska göra det omöjligt att planka. Securitasvakterna på entreprenad är väl tänkt att kosta mindre än ordinarie kontrollanter. Hur troligt är det? Om några år skriver tidningarna om att kostnaderna har skjutit i höjden men då är det försent. Det är ett sånt uppenbart sätt att försnilla pengar från kollektivtrafiken och lägga dem i Securitas aktieägares fickor.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3070894368760114075?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3070894368760114075/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3070894368760114075' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3070894368760114075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3070894368760114075'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/vad-man-far-for-tre-chipspasar.html' title='Vad man får för tre chipspåsar'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3188353324724526427</id><published>2011-10-14T09:33:00.003+02:00</published><updated>2011-10-14T09:43:31.625+02:00</updated><title type='text'>Strauss-Kahn och våldtäkter</title><content type='html'>Hur är det möjligt ATT man åtta år efter en "våldtäkt" från en person man inte har e relation med väljer att anmäla? Och blir trodd? Finns det något liknande fall när det gäller misshandel? Kan man verkligen få en åklagare att inleda en förundersökning för ett åtta år gammalt misshandelsfall? Det har varit flera sådana fall i media, Juliana Assanges ons anklagade honom för sexuellt utnyttjande trots att hon valde att festa runt med honom flera dagar efter tillfället. En tjej anmälde sitt ex för sexuellt utnyttjande månader efter incidenten när förhållandet tagit slut. I media kan de inte skriva det, men jag kan och såna anklagelser är bullshit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3188353324724526427?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3188353324724526427/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3188353324724526427' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3188353324724526427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3188353324724526427'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/strauss-kahn-och-valdtakter.html' title='Strauss-Kahn och våldtäkter'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-551477406843257765</id><published>2011-10-13T09:49:00.002+02:00</published><updated>2011-10-13T09:54:16.549+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tunnelbana'/><title type='text'>Fyrsäten</title><content type='html'>Sätena i tunnelbanan är indelade i grupper om fyra. Då brukar alltid folk lyckas sätta på ett sådant vis att när det är tre sittande, är den sista platsen innerst så att man måste trycka sig förbi två personer för att sätta sig. Det kan vara en evolutionär adaption för komfortmaximering. Det är bara jag som trycker mig in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-551477406843257765?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/551477406843257765/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=551477406843257765' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/551477406843257765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/551477406843257765'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/fyrsaten.html' title='Fyrsäten'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2432289732452464888</id><published>2011-10-12T09:04:00.002+02:00</published><updated>2011-10-12T09:18:23.964+02:00</updated><title type='text'>Längre spårväg i city</title><content type='html'>Spårväg City som spårvägsbanan från Sergels torg till Djurgården heter är i stort sett meningslös. Den utnyttjas bara fullt ut när det är spelningar på Gröna lund på sommarkvällar. På vintern går de flesta vagnar nästan helt tomma dagarna i ända.&lt;br/&gt;&lt;br/&gt;
Fast om den gick vidare från Sergels torg över Klarabergsviadukten ner mot rådhuset på Kungsholmen då tror jag att fler skulle välja att åka med den. Det skulle vara smidigt för pendeltågsresenärer som bara skulle behöva ta trapporna upp för att komma till stationen. I framtiden skulle banan även kunna förlängas från Rådhuset via Norr mälarstrand mot Rålis kanske hela vägen till Lilla Essingen och ansluta till Tvärbanan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2432289732452464888?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2432289732452464888/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2432289732452464888' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2432289732452464888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2432289732452464888'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/langre-sparvag-i-city.html' title='Längre spårväg i city'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-116744665557201968</id><published>2011-10-11T08:41:00.003+02:00</published><updated>2011-10-11T08:59:27.876+02:00</updated><title type='text'>Yellow Journalism i Metro</title><content type='html'>I USA finns det ett begrepp "yellow journalism" som beskriver journalistik vars syfte är att karaktärsmörda en politiker. Någon svensk motsvarighet till begreppet kan jag inte hitta. Antagligen därför att vi, med undantag för tobleroneaffären, varit förskonade från sådana smutskastningskampanjer. Tills den här juholtgrejen då. Har han gjort sig skyldig till något? Folk vet knappt vad det är han är anklagad för. Därför väljer Metro att istället för att skriva sakuppgifter presentera idiotstatistik som "nio av tio svenskar tror att Juholt ljuger" och att "slumpmässigt" välja ut folk på stan som får uttala sig om att han tjänar för mycket pengar. 
&lt;br/&gt;&lt;br/&gt;
Själv har jag naturligtvis ingen aning om hur det ligger till med Juholt. Jag bryr mig inte heller men jag är fasligt trött på att det aldrig står något vettigt i tidningen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-116744665557201968?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/116744665557201968/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=116744665557201968' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/116744665557201968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/116744665557201968'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/yellow-journalism-i-metro.html' title='Yellow Journalism i Metro'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2070523506363098536</id><published>2011-10-10T09:06:00.002+02:00</published><updated>2011-10-10T09:28:20.414+02:00</updated><title type='text'>Grubbelmänniska</title><content type='html'>Att jag är en grubbelmänniska kom jag på igår. Alla beslut ska tänkas över, analyseras, alternativ tas i beaktande, fördelar vägas mot nackdelar och så vidare. Igår skulle jag äta ute men kunde inte hjälpa att göra det till en grubbelhistoria. Först frågan vilken tunnelbanestation som har de bästa restaurangerna. Restauranger finns det ju överallt, men det får inte kosta mer än max 100 kr vilket diskvalificerar de flesta ställen. Fridhemsplan har bara korvmojar, st Eriksplan kan ha någon pizzeria som skulle funka men där är jag nästan aldrig så det är väldigt osäkert. 
 Vid Odenplan finns inget vettigt utan bara några tråkiga cafèer i stil med Wayne's Coffee och en Hamburgarbar som heter Solna Korv. Den sistnämnda är helt ok, fast där åt jag för bara några dagar sedan så det gick inte det heller. Rådmansgatan är helt död på söndagskvällar alltså kvarstår bara Sergels cityområdet.

Vald station blev därför Hötorget aq0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2070523506363098536?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2070523506363098536/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2070523506363098536' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2070523506363098536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2070523506363098536'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/grubbelmanniska.html' title='Grubbelmänniska'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8211085056106726640</id><published>2011-10-07T08:51:00.002+02:00</published><updated>2011-10-07T08:57:24.882+02:00</updated><title type='text'>SL:s prioriteringar</title><content type='html'>Biljettkontroll idag igen på blåa linjen mellan Näckrosen och Hallonbergen. Klart de måste höja priset på månadskortet för att ha råd med alla extra kontrollanter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8211085056106726640?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8211085056106726640/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8211085056106726640' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8211085056106726640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8211085056106726640'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/sls-prioriteringar.html' title='SL:s prioriteringar'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5341475860905932344</id><published>2011-10-06T08:53:00.002+02:00</published><updated>2011-10-06T08:57:47.014+02:00</updated><title type='text'>Metro förnekar sig inte</title><content type='html'>I vänstra spalten: "sexistisk serie läggs ner direkt" - Serien The Playboy Club är för sexistisk för amerikansk tv. I högerspalten "Skarsgård, en av världens sexigaste män". Håhå jaja...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5341475860905932344?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5341475860905932344/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5341475860905932344' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5341475860905932344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5341475860905932344'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/metro-fornekar-sig-inte.html' title='Metro förnekar sig inte'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8823960867176134909</id><published>2011-10-03T09:08:00.002+02:00</published><updated>2011-10-03T09:10:30.085+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTKIMAGEVIEW'/><title type='text'>New release of GtkImageView coming</title><content type='html'>It will happen if I can keep the focus on the essentials for a day or so... Hopefully it will be the last and then someone who is more interested in the project than me can take over ownership of it. That's why I'm trying to move it to GNOME's hosting instead of my own.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8823960867176134909?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8823960867176134909/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8823960867176134909' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8823960867176134909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8823960867176134909'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/10/new-release-of-gtkimageview-coming.html' title='New release of GtkImageView coming'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1685365204884963636</id><published>2011-08-25T12:42:00.004+02:00</published><updated>2011-08-25T12:46:22.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><category scheme='http://www.blogger.com/atom/ns#' term='distutils'/><title type='text'>Distutils: ValueError: [u'path']</title><content type='html'>&lt;p&gt;This is a really stupid error that occurs on Windows 64bit when trying to build extension modules using distutils:&lt;/p&gt;
&lt;pre&gt;
  File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run
    self.build_extensions()
  File "setup.py", line 213, in build_extensions
    with_ext = self.check_extension_availability(ext)
  File "setup.py", line 239, in check_extension_availability
    depends=ext.depends)
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 473, in compile
    self.initialize()
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsall
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']
&lt;/pre&gt;

&lt;p&gt;The workaround is to take the bat-file in &lt;code&gt;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat&lt;/code&gt; and copy it to &lt;code&gt;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat&lt;/code&gt;. Not that easy to figure out!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1685365204884963636?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1685365204884963636/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1685365204884963636' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1685365204884963636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1685365204884963636'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/08/distutils-valueerror-upath.html' title='Distutils: ValueError: [u&apos;path&apos;]'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6361728520201888979</id><published>2011-08-08T18:59:00.001+02:00</published><updated>2011-08-08T18:59:49.699+02:00</updated><title type='text'>Sagt om Förbifart Stockholm</title><content type='html'>&lt;blockquote&gt;"Att bygga en ny motorväg för att minska utsläppen är ungefär lika smart som att en väldigt överviktig person försöker lösa sitt viktproblem genom att operera in en större magsäck."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6361728520201888979?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6361728520201888979/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6361728520201888979' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6361728520201888979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6361728520201888979'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/08/sagt-om-forbifart-stockholm.html' title='Sagt om Förbifart Stockholm'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3352709828577250243</id><published>2011-08-07T13:55:00.002+02:00</published><updated>2011-08-07T14:00:10.398+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='bahnhof'/><title type='text'>Bahnhofs DNS-timeout</title><content type='html'>Bahnhof är annars en riktigt trevlig ISP men deras DNS-flood prevention algoritm är värdelös. Gör man fler än c:a 20 DNS-uppslagningar per sekund spärrar systemet en automatiskt från att göra några fler i åtminstone 20 minuter. Gränsen är satt alldeles för lågt och det är lätt att gå över den när man kodar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3352709828577250243?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3352709828577250243/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3352709828577250243' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3352709828577250243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3352709828577250243'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/08/bahnhofs-dns-timeout.html' title='Bahnhofs DNS-timeout'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5571649420377771433</id><published>2011-08-03T13:38:00.001+02:00</published><updated>2011-08-03T13:39:38.551+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poem'/><title type='text'>A beautiful poem</title><content type='html'>&lt;pre&gt;&lt;blockquote&gt;
Two roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth;

Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same,

And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back.

I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I&amp;mdash;
I took the one less traveled by,
And that has made all the difference.
&lt;/blockquote&gt;&lt;/pre&gt;
- Robert Frost, 1920 (or 1916)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5571649420377771433?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5571649420377771433/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5571649420377771433' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5571649420377771433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5571649420377771433'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/08/beautiful-poem.html' title='A beautiful poem'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5005898928261452421</id><published>2011-05-11T17:35:00.000+02:00</published><updated>2011-05-13T22:31:43.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python setuptools'/><title type='text'>Installing is finally easy!</title><content type='html'>&lt;p&gt;Easy_install, or as it is more accurately called &lt;a href = "http://pypi.python.org/pypi/setuptools"&gt;setuptools 06.c11&lt;/a&gt; has for a long time more been a nuisance than a helpful installation tool. I used to have lot of trouble easy installing stuff on Windows, with weird exceptions, some which seemed to have been caused by path name differences on Windows and Unix. HTTP erros caused by weirdness in the software or flaky servers made trying to install something using easy_install a tiresome process. Usually it was easier just getting the source from the repoistory and installing it manually.&lt;/p&gt;
&lt;p&gt;But today, I had to install a big django app with lots of dependencies. Easy install just went BAM BAM BAM installing every package I needed! Totally effortless, it was awesome! I'm hoping it will someday get included in Pythons standard library for even easier installations in the future.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5005898928261452421?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5005898928261452421/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5005898928261452421' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5005898928261452421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5005898928261452421'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/05/installing-is-finally-easy.html' title='Installing is finally easy!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3680006355248797746</id><published>2011-05-10T13:12:00.002+02:00</published><updated>2011-05-10T13:13:28.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='link'/><title type='text'>vmsplice(): the making of a local root exploit</title><content type='html'>&lt;a href="http://lwn.net/Articles/268783/"&gt;vmsplice(): the making of a local root exploit&lt;/a&gt; - Fascinating LWM article about the famous vmsplice() local root vulnerability from 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3680006355248797746?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3680006355248797746/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3680006355248797746' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3680006355248797746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3680006355248797746'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/05/vmsplice-making-of-local-root-exploit.html' title='vmsplice(): the making of a local root exploit'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5614238916413581856</id><published>2011-04-22T10:27:00.003+02:00</published><updated>2011-04-22T10:41:21.286+02:00</updated><title type='text'>Förbifart Stockholm</title><content type='html'>&lt;p&gt;Suger fett. Jag vill absolut inte ha ännu en bullrig motorväg invid husknuten. Tur att Vägverket till sist bestämde sig för att skona villaområdena på Ekerö och i Vällingby. Tyvärr var vi som bor i de "utsatta områdena" inte lika lyckligt lottade av någon anledning...&lt;/p&gt;
&lt;p&gt;Det är ett helt onödigt byggprojekt då det redan finns mer än tillräckligt med vägar i Stockholm. Den största flaskhalsen för billister som åker på motorvägen inträffar på Södertäljevägen vid Västberga. Under rusningstrafik uppstår där ibland köer på max 10 till 15 minuter. Det är i princip den enda punkt i hela stockholmsregionen som ofta drabbas av bilköer. Att då bygga en väg för 30 miljarder (skulle inte förvåna mig om notan slutar på 60+ eftersom det alltid blir dyrare än beräknad) för att lösa ett så trivialt trafikproblem är overkill.&lt;/p&gt;
&lt;p&gt;Varför inte satsa på tåg och kollektivtrafik istället? För 30 miljarder får man många tunnelbanor som förbättrar för innevånarna istället för att sabba deras närmiljö.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5614238916413581856?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5614238916413581856/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5614238916413581856' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5614238916413581856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5614238916413581856'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/04/forbifart-stockholm.html' title='Förbifart Stockholm'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3323960080916564906</id><published>2011-04-05T18:45:00.003+02:00</published><updated>2011-04-05T19:27:30.975+02:00</updated><title type='text'>Lagra inte lösenord i klartext</title><content type='html'>Framtiden AB sällar sig till den stora skaran korkade företag utan kompetent IT-personal som lagrar lösenord i klartext. Lösenord skall icke skickas med email, det är bara dumt. Skickar man dessutom massutskick till mig, som inte bett om det, där icke-ascii-tecknet ö i mitt namn blir fel, ja då hamnar man här!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3323960080916564906?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3323960080916564906/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3323960080916564906' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3323960080916564906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3323960080916564906'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/04/lagra-inte-losenord-i-klartext.html' title='Lagra inte lösenord i klartext'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8438573759731722092</id><published>2011-03-21T12:45:00.002+01:00</published><updated>2011-03-21T12:45:40.706+01:00</updated><title type='text'>Monaco Font</title><content type='html'>The Monaco font is the best programming font there is. If you have not yet tried it, you're really missing out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8438573759731722092?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8438573759731722092/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8438573759731722092' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8438573759731722092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8438573759731722092'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/03/monaco-font.html' title='Monaco Font'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5820146876032812713</id><published>2011-02-27T19:24:00.005+01:00</published><updated>2011-02-28T19:58:39.770+01:00</updated><title type='text'>Husbybadet är deprimerande</title><content type='html'>&lt;p&gt;Jag blir så förbannad och ledsen över att &lt;a href = "https://politisktinkorrekt.info/2011/02/26/aterpostning-ensamkommande-sexbrottsanmalda-ofredade-badande-flickor/"&gt;sexövergreppen på husbybadet fortsätter&lt;/a&gt;. Som boende i området får man ju skämmas över badhusets extremt dåliga rykte. "Jaha, du tränar på Husbybadet? Där som alla våldtäkter inträffar?" Så jävla tragiskt också att det bara är sd-siten Politiskt Inkorrekt som har rapporterat kring händelsen. Det får, ärligt talat, vara slut med de ensamkommande flykting-"barnen" för såhär kan det inte få gå till.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uppdatering:&lt;/strong&gt; Idag skriver Aftonbladet att &lt;a href = "http://www.aftonbladet.se/nyheter/article8636715.ab"&gt;ett sexrykte har överdrivit händelsen&lt;/a&gt;. Sexuellt ofredande av barn, ha ha, det var bara på skoj ju! Mamman till en av de ofredade tjejerna håller inte med:
&lt;blockquote&gt;Väl inne i badgrottan slet man av de 11-åriga flickorna deras badkläder och tog på dem på ett mycket osmakligt sätt. När de två elvaåriga killarna försökte skydda sina tjejkompisar blev dessa utsatta för misshandel.&lt;/blockquote&gt;
Dåligt Aftonbladet. Det här slutar nog med könsuppdelade badtider i Husby tyvärr..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5820146876032812713?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5820146876032812713/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5820146876032812713' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5820146876032812713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5820146876032812713'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/02/husbybadet-ar-deprimerande.html' title='Husbybadet är deprimerande'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2914331098302140372</id><published>2011-02-09T19:17:00.003+01:00</published><updated>2011-02-09T19:20:23.540+01:00</updated><title type='text'>Ctrl+C glitches on Linux?</title><content type='html'>&lt;p&gt;When a program spews output on a console, you want to terminate it using ctrl+c. A few Ubuntu upgrades ago it used to be so that one press on ctrl+c would immediately terminate the process. But nowadays, you basically have to "spam press" ctrl+c until one finally is heard by the process and it is aborted. Something is not working like it should...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2914331098302140372?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2914331098302140372/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2914331098302140372' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2914331098302140372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2914331098302140372'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/02/ctrlc-glitches-on-linux.html' title='Ctrl+C glitches on Linux?'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6579842412925407847</id><published>2011-01-02T23:54:00.001+01:00</published><updated>2011-01-02T23:57:01.141+01:00</updated><title type='text'>Slide-sharing sites suck</title><content type='html'>Scribd and slideshare suck. They collect pdf-files people have made available for free and then try to charge visitors to download them. Outrageous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6579842412925407847?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6579842412925407847/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6579842412925407847' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6579842412925407847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6579842412925407847'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2011/01/slide-sharing-sites-suck.html' title='Slide-sharing sites suck'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-168396847084101102</id><published>2010-11-22T02:40:00.000+01:00</published><updated>2010-11-22T02:41:00.415+01:00</updated><title type='text'>Jinja2 Rocks!</title><content type='html'>&lt;p&gt;&lt;a href = "http://jinja.pocoo.org/"&gt;Jinja2&lt;/a&gt; is an awesome
templating system! I've always been happy with the builtin templating
framework in &lt;a href = "http://www.djangoproject.com/"&gt;Django&lt;/a&gt;
until about a week ago when I needed to render large amounts of
tabular data. Then the Django templating system more or less breaks
down because the rendering takes over 2 - 300 milliseconds which is to
much time.&lt;/p&gt;

&lt;p&gt;My first solution was to aggressively cache rendered pages using
the &lt;a href =
"http://docs.djangoproject.com/en/dev/topics/cache/"&gt;cache
middleware&lt;/a&gt;. Unfortunately that makes it hard to keep data changes
in sync with what visitors see on the site. Plus, the first time the
page is accessed is still slow.&lt;/p&gt;

&lt;p&gt;The real solution was to throw out the old Django templates and
start to learn Jinja2. It's not done yet, but I'm getting
there. Meanwhile, here is a performance test that shows how much
superior Jinja2 is:&lt;/p&gt;


&lt;div class = "code"&gt;
&lt;span class="c"&gt;# First the Jinja2 variant&lt;/span&gt; &lt;span
class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;jinja2&lt;/span&gt; &lt;span
class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Template&lt;/span&gt; &lt;span
class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt; &lt;span
class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="si"&gt;% f&lt;/span&gt;&lt;span class="s"&gt;or obj in objs %}&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.x }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.y }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.x }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.y }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="si"&gt;% e&lt;/span&gt;&lt;span class="s"&gt;ndfor %}&lt;/span&gt;
&lt;span class="s"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;O&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.4&lt;/span&gt;
    &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.5&lt;/span&gt;
&lt;span class="n"&gt;objs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;O&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;350&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;objs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;objs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;

&lt;span class="c"&gt;# Then Django templates.&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;django.template&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Context&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Template&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;

&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="si"&gt;% f&lt;/span&gt;&lt;span class="s"&gt;or obj in objs %}&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.x }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.y }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.x }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;td&amp;gt;{{ obj.y }}&amp;lt;/td&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class="s"&gt;{&lt;/span&gt;&lt;span class="si"&gt;% e&lt;/span&gt;&lt;span class="s"&gt;ndfor %}&lt;/span&gt;
&lt;span class="s"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;O&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;3.4&lt;/span&gt;
    &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;2.5&lt;/span&gt;
&lt;span class="n"&gt;objs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;O&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;350&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Context&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;objs&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;objs&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-168396847084101102?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/168396847084101102/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=168396847084101102' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/168396847084101102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/168396847084101102'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/11/jinja2-rocks.html' title='Jinja2 Rocks!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6694177361168448152</id><published>2010-11-16T10:57:00.002+01:00</published><updated>2011-12-30T22:14:33.492+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vps'/><title type='text'>Warning for WebFaction</title><content type='html'>&lt;p&gt;&lt;b&gt;UPDATE&lt;/b&gt;As you can see, this blog post is more than a year old. Since then Webfaction's servers performance has improved considerably. Their support is also much more pleasant to deal with so today I would consider them a pretty decent hoster.&lt;/p&gt;

&lt;p&gt;There are lots of great, professional hosting companies out there. Most of them are qualified for what they do and provides exactly the service you're paying for.&lt;/p&gt;

&lt;p&gt;&lt;a href = "http://www.webfaction.com/"&gt;WebFaction&lt;/a&gt; is not one of them.&lt;/p&gt;

&lt;p&gt;The question is what can you expect for $8.50 per month plus VAT? Maybe not a whole lot, and maybe I'm expecting to much. When I signed up, it was to host my &lt;a href = "http://trac.bjourne.webfactional.com/"&gt;GtkImageView&lt;/a&gt; project which I'm still keeping at them, but I'm getting increasingly frustrated with them and will migrate before the year runs out if time permits.&lt;/p&gt;

&lt;p&gt;What is promised on their site is the ability to run &lt;a href = "http://www.webfaction.com/demos/trac-svn"&gt;Trac and Subversion&lt;/a&gt; which is exactly what I need. Though when it takes over ten seconds to load a single page, thanks to congestion on their servers and overselling, then that is not ok! It is worse than ok because it gives the impression that something should work decently when in reality it sucks majorly. If you don't believe me, then try checking out GtkImageView using &lt;a href = "http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt;. It is sloooooow.&lt;/p&gt;

&lt;p&gt;In the future, I will likely move GtkImageView to some other hosting provider. Possibly to &lt;a href = "http://www.gnome.org/"&gt;GNOME&lt;/a&gt;:s infrastructure if they want to host it. I think they can do a much better job than me, because dealing with hosting related issues is much more work than it seems. Or maybe to &lt;a href = "http://code.google.com"&gt;Google Code&lt;/a&gt;, fast and efficient.&lt;/p&gt;

&lt;p&gt;Anyway, I sincerely want to anti-recommend WebFaction. You &lt;b&gt;will&lt;/b&gt; be disappointed.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6694177361168448152?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6694177361168448152/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6694177361168448152' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6694177361168448152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6694177361168448152'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/11/warning-for-webfaction.html' title='Warning for WebFaction'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7833300340721941635</id><published>2010-10-25T14:33:00.002+02:00</published><updated>2010-10-25T14:40:37.258+02:00</updated><title type='text'>Inga Pengar till Föreningen för Demokrati och Mänskliga Rättigheter i Iran</title><content type='html'>&lt;p&gt;En organisation som kallar sig för "Föreningen för Demokrati och Mänskliga Rättigheter i Iran" (FDMRI) samlar just nu in pengar i centrala Stockholm. Det verkar vara en lovvärd organisation och deras &lt;a href = "http://www.iran-demokrati.se/"&gt;hemsida&lt;/a&gt; ser legitim ut. De har ett &lt;a href = "http://www.iran-demokrati.se/?page_id=37"&gt;postgirokonto&lt;/a&gt;, men inget 90-nummer. &lt;a href = "http://www.frii.se/7_varning.shtml"&gt;Frivilligorganisationernas Insamlingsråd&lt;/a&gt; avråder folk från att skänka pengar till organisationer utan 90-konton och FDMRI är med på deras lista.&lt;/p&gt;
&lt;p&gt;Det är säkrare att bidra till en organisation med ett 90-konto, till exempel &lt;a href = "http://www.amnesty.se/"&gt;Amnesty&lt;/a&gt; för då kan man vara säker på att allt går rätt till. Till FDMRI: Om ni är lika pålitliga som era insamlare verkar är det hög tid att skaffa ett 90-konto!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7833300340721941635?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7833300340721941635/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7833300340721941635' title='3 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7833300340721941635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7833300340721941635'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/10/inga-pengar-till-foreningen-for.html' title='Inga Pengar till Föreningen för Demokrati och Mänskliga Rättigheter i Iran'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4761986990934486488</id><published>2010-09-18T03:28:00.002+02:00</published><updated>2010-09-18T03:30:06.340+02:00</updated><title type='text'>Launched a new Site</title><content type='html'>Getting it ready took longer than expected. Have been working for 20 hours straight. It is perfect. So tired. Want lots of visitors.. tail -f tail -f.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4761986990934486488?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4761986990934486488/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4761986990934486488' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4761986990934486488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4761986990934486488'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/09/launched-new-site.html' title='Launched a new Site'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4498601912684307535</id><published>2010-09-15T20:57:00.003+02:00</published><updated>2010-09-15T21:03:56.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DJANGO'/><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>The greatest Django CMS</title><content type='html'>There are a lot of &lt;a href = "http://code.djangoproject.com/wiki/CMSAppsComparison"&gt;Django CMS solutions&lt;/a&gt; to choose from. I've spent most of the day comparing each of them and trying to figure out which work and which doesn't. My conclusion is that the good one is &lt;a href = "http://www.django-cms.org/"&gt;django-cms&lt;/a&gt; which is the only one that didn't bug out on me and also had full and easy to use i18n support. I believe it is a very good CMS tool when you understand how to use it. It has a steep learning curve and poor documentation you have to suffer through first though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4498601912684307535?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4498601912684307535/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4498601912684307535' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4498601912684307535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4498601912684307535'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/09/greatest-django-cms.html' title='The greatest Django CMS'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-449821810075264110</id><published>2010-08-20T13:16:00.002+02:00</published><updated>2010-08-20T13:22:08.193+02:00</updated><title type='text'>Gubbjävel</title><content type='html'>Till alla bilkörande idioter som inte borde ha körkort: Lämna företräde till gående som går över övergångsställena. Till den äcklige gubbe i svart volvo på Malmskillnadsgatan idag under lunchen som inte fattade det, sug kuk gubbjävel. Hoppas du och din fula hora till fru blir ihjälslagna med baseballträn.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-449821810075264110?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/449821810075264110/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=449821810075264110' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/449821810075264110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/449821810075264110'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/08/gubbjavel.html' title='Gubbjävel'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4645524494943629718</id><published>2010-07-10T04:10:00.003+02:00</published><updated>2010-07-10T04:33:54.667+02:00</updated><title type='text'>My Small Predictions</title><content type='html'>&lt;p&gt;In less than three years time, 99.99% of all web traffic will be from automated bots. So 1/10,000 requests will be from a human which is silly little. Also in the future, computer systems will not be measured in mhz or mips but instead in http requests per second.&lt;/p&gt;
&lt;p&gt;I think consumer grade 100 Tbit links are just around the corner. No purely human directed traffic can saturate pipes like that. Not even superHD video whatever that will be. Something else will fill them. A lot of resources will be spent maintaining a personal google index for each and every person. Imagine that. Your own search engine backed up by a huge neural network which learns your likes and dislikes, your writing style so you will only have to spend minimal effort searching for what you are after. Having to use a regular search-engine will become very hard because you will be so accustomed to the personal one that it will be like trying to speak a foreign language.&lt;/p&gt;
&lt;p&gt;There will be competent ghost writer bots. Those bots will index all kinds of literature available on the internet and suggest precise, colorful or humorous formulations for you to write your blog posts with. It will be like autocomplete in forms, except it will work in textareas and for multiple paragraphs at the same time. The only downside is that, while more prose will be written, a smaller portion of it will be read by humans. The rest will be consumed by bots.&lt;/p&gt;

&lt;p&gt;And that's just some advances that will happen in the area of text-processing. Then we will get accurate image and video recognition. I'm to tired to speculate but it will be quite cool.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4645524494943629718?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4645524494943629718/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4645524494943629718' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4645524494943629718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4645524494943629718'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/07/my-small-predictions.html' title='My Small Predictions'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5472234893034851764</id><published>2010-06-29T00:33:00.005+02:00</published><updated>2010-06-29T00:42:43.723+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GOOGLE'/><category scheme='http://www.blogger.com/atom/ns#' term='PRAISE'/><title type='text'>Best invite so far</title><content type='html'>I've participated in beta programs and gotten invite links before. But this one is by far the best one of them all:
&lt;div class = "code"&gt;Thanks for your interest in Google Storage for Developers.
Here is the invite link you requested:
https://sandbox.google.com/storage/m/?invite=arglebarglemarlge

Please note that this invitation is not transferable. In addition, Google Storage is available for US developers only at this time.

During the preview period, you will receive up to 100GB of data storage and 300GB monthly bandwidth at no charge&lt;/div&gt;

/me has not told them where I live. :) Saweeet! Now I just need to think of something to do with 100gb of data that does not involve copyright infringement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5472234893034851764?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5472234893034851764/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5472234893034851764' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5472234893034851764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5472234893034851764'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/06/best-invite-so-far.html' title='Best invite so far'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7310439243232945830</id><published>2010-06-23T11:25:00.004+02:00</published><updated>2010-06-23T11:36:20.965+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shrinktheweb'/><category scheme='http://www.blogger.com/atom/ns#' term='COMPLAINT'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'>Gratuitous Breakage</title><content type='html'>&lt;img style = "float: left"
     src = "http://www.shrinktheweb.com/xino.php?embed=1&amp;amp;STWAccessKeyId=82e7307be7a1f69&amp;amp;stwsize=lg&amp;amp;stwUrl=bjourne.blogspot.com"/&gt;

&lt;p&gt;This morning I got the following email from &lt;a href =
"http://www.shrinktheweb.com/"&gt;ShrinkTheWeb&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;STW: Attention, Code Change Required!
YOU MAY APPLY THESE CHANGES AT ANY TIME BEFORE JULY 16TH&lt;/blockquote&gt;

&lt;p&gt;So they are changing their api. For those who do not know,
ShrinkTheWeb is a kickass web service which enables you to easily take
screenshots of web pages. I use it for, among other things, &lt;a href =
"http://www.thevpslist.com"&gt;The VPS List&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While I realize that api has to be broken from time to time, the
proposed changes are just silly and it is humourous that they weren't
able to insulate end users from them.&lt;/p&gt;

&lt;blockquote&gt;
    Change www.shrinktheweb.com/xino.php TO images.shrinktheweb.com/xino.php
&lt;/blockquote&gt;

&lt;p&gt;Or your web server could be set up to serve the same php script at
both links.&lt;/p&gt;

&lt;blockquote&gt;make all stw variables lowercase&lt;/blockquote&gt;

&lt;p&gt;Because it is so hard for you to lowercase all variables yourself
before processing them? :)&lt;/p&gt;

&lt;blockquote&gt;use the newer stw-specific variable names&lt;/blockquote&gt;

&lt;p&gt;I don't get this change either. What advantage is there in
prefixing GET-variables with a stw-prefix?&lt;/p&gt;
&lt;p&gt;Don't get me wrong, ShrinkTheWeb is a very useful web service, but
the above mentioned stuff is basically the very definition of
gratuitous breakage.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7310439243232945830?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7310439243232945830/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7310439243232945830' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7310439243232945830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7310439243232945830'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/06/gratuitous-breakage.html' title='Gratuitous Breakage'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3455621002061469924</id><published>2010-06-09T21:26:00.002+02:00</published><updated>2010-06-09T21:32:02.233+02:00</updated><title type='text'>Felmeddelanden</title><content type='html'>&lt;blockquote&gt;
Uppspelningen av den här filmen kräver en Module Music Format (MOD)-avkodare-insticksmodul som inte är installerad.
&lt;/blockquote&gt;
&lt;p&gt;Hade det varit så jävla svårt att skriva vad insticksmodulen heter så jag slipper leta runt bland tio miljarder paket efter den? Hittade tillslut "gstreamer0.10-plugins-bad" Verkligen intiutivt...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3455621002061469924?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3455621002061469924/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3455621002061469924' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3455621002061469924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3455621002061469924'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/06/felmeddelanden.html' title='Felmeddelanden'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2493624264814266780</id><published>2010-06-04T13:24:00.003+02:00</published><updated>2010-06-04T13:25:57.913+02:00</updated><title type='text'>Getting into DMOZ</title><content type='html'>&lt;p&gt;I'm trying to get &lt;a href = "http://www.thevpslist.com"&gt;The VPS List&lt;/a&gt; included in &lt;a href = "http://www.dmoz.org/"&gt;DMOZ&lt;/a&gt;.. But the submission message is discouraging:&lt;/p&gt;
&lt;blockquote&gt;
Once your site has been accepted into the Open Directory, it may take anywhere from 2 weeks to several months for your site to be listed on partner sites which use the Open Directory data, such as AOL Search, AltaVista, HotBot, Google, Lycos, Netscape Search, etc.&lt;/blockquote&gt;
&lt;p&gt;Guess it will be a long wait. :/&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2493624264814266780?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2493624264814266780/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2493624264814266780' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2493624264814266780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2493624264814266780'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/06/getting-into-dmoz.html' title='Getting into DMOZ'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2654887464813081753</id><published>2010-05-24T21:58:00.002+02:00</published><updated>2010-05-24T22:03:31.764+02:00</updated><title type='text'>Sex års väntan är över...</title><content type='html'>Antiklimax. Icke-tillfredsställande. Klichéartat. Långt under förväntan. Vad hände egentligen? Frustrerande att de får göra på det här sättet. Alla manusförfattare måste fått hjärnblödning eller något, så mycket fusk var det.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2654887464813081753?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2654887464813081753/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2654887464813081753' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2654887464813081753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2654887464813081753'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/sex-ars-vantan-ar-over.html' title='Sex års väntan är över...'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6290700643742607956</id><published>2010-05-24T13:34:00.001+02:00</published><updated>2010-05-24T13:34:21.133+02:00</updated><title type='text'>Bason Journe,</title><content type='html'>You suck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6290700643742607956?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6290700643742607956/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6290700643742607956' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6290700643742607956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6290700643742607956'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/bason-journe.html' title='Bason Journe,'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5201278911983004887</id><published>2010-05-19T11:47:00.003+02:00</published><updated>2010-05-19T11:52:11.215+02:00</updated><title type='text'>Killing the Xserver</title><content type='html'>&lt;p&gt;Xorg has an xorg.conf setting called "DontZap" which you can use to enable the Ctrl+Alt+Backspace key combo to kill the Xserver:&lt;/P&gt;
&lt;div class = "code"&gt;
Section "ServerFlags"    
    ...
    Option         "DontZap" "false"
    ...
EndSection
&lt;/div&gt;
&lt;p&gt;Nice double negation there. But it doesn't work in GNOME. Here is how you do it there: Go System -&gt; Settings -&gt; Keyboard -&gt; Layouts -&gt; Options -&gt; Expand the triangle "Key sequence to kill the X-server" -&gt; Check the checkbox. Took me a while to figure it out. In the future, it would be nice if GNOME could sync that setting with what is stated in xorg.conf.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5201278911983004887?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5201278911983004887/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5201278911983004887' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5201278911983004887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5201278911983004887'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/killing-xserver.html' title='Killing the Xserver'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-446261218548126301</id><published>2010-05-18T21:24:00.003+02:00</published><updated>2010-05-18T21:45:00.598+02:00</updated><title type='text'>Ubuntu Lucid</title><content type='html'>&lt;p&gt;Håller på och testar Ubuntu Lucid Lynx för fullt. Som vanligt när man uppgraderar Ubuntu är det alltid något som strular. Den här gången bara alt-tab som inte funkar och xorg tror att min 1600x900 skärm är 1024x768.&lt;/p&gt;
&lt;p&gt;GNOME håller fast vid den idiotiska principen att dölja de applikationer som är för "power users" i startmenyn. Hur får man tillbaka gconf-editor? Perkele.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-446261218548126301?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/446261218548126301/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=446261218548126301' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/446261218548126301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/446261218548126301'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/ubuntu-lucid.html' title='Ubuntu Lucid'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6541578447489719386</id><published>2010-05-04T11:38:00.006+02:00</published><updated>2010-05-04T11:44:06.919+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='irritationsmoment'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Dagens irritationsmoment</title><content type='html'>Okej för att Suns Java har fasats ut i Ubuntu 9.10 och ersatts med OpenJDK, det kan jag leva med. Men vad är det här?

&lt;div class = "code"&gt;
# apt-get install openjdk-6-jdk
...
Följande NYA paket kommer att installeras:
  ca-certificates-java hicolor-icon-theme icedtea-6-jre-cacao java-common libaccess-bridge-java libaccess-bridge-java-jni libasound2 libatk1.0-0 libatk1.0-data libcairo2 libdatrie1 libdirectfb-1.2-0 libflac8
  libfontenc1 libgif4 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libice-dev libice6 libjasper1 libjline-java libjpeg62 liblcms1 libnspr4-0d libnss3-1d libogg0 libpango1.0-0 libpango1.0-common libpixman-1-0
  libpng12-0 libpthread-stubs0 libpthread-stubs0-dev libpulse0 libsm-dev libsm6 libsndfile1 libthai-data libthai0 libtiff4 libts-0.0-0 libvorbis0a libvorbisenc2 libx11-6 libx11-data libx11-dev libxau-dev
  libxau6 libxcb-render-util0 libxcb-render0 libxcb1 libxcb1-dev libxcomposite1 libxcursor1 libxdamage1 libxdmcp-dev libxdmcp6 libxext6 libxfixes3 libxfont1 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1
  libxt-dev libxt6 libxtst6 openjdk-6-jdk openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib rhino shared-mime-info tsconf tzdata-java x-ttcidfont-conf x11-common x11proto-core-dev x11proto-input-dev
  x11proto-kb-dev xfonts-encodings xfonts-utils xtrans-dev
&lt;/div&gt;
Kan någon förklara varför jag nödvändigtvis behöver GTK+, Cairo, Xorg och andra desktoprelaterade paket för att köra java på en server?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6541578447489719386?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6541578447489719386/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6541578447489719386' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6541578447489719386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6541578447489719386'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/dagens-irritationsmoment.html' title='Dagens irritationsmoment'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5316730695887308743</id><published>2010-05-03T23:00:00.003+02:00</published><updated>2010-05-03T23:34:15.289+02:00</updated><title type='text'>Skatteverkstomtar</title><content type='html'>&lt;p&gt;Patetiskt att inte Skatteverkets site klarar belastningen från alla som försöker deklarera. Deras servrar går just nu på knäna och man kan inte logga in för det finns inget minne kvar till att skapa nya sessioner. Kanske är det för svårt för teknikerna att förutse att ifall X miljoner människor inte har deklarerat när det är N timmar kvar innan deklarationen ska vara inlämnad, måste servrarna klara av att hantera X/N deklarationsinlämningar per timme. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5316730695887308743?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5316730695887308743/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5316730695887308743' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5316730695887308743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5316730695887308743'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/05/skatteverkstomtar.html' title='Skatteverkstomtar'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1790673070923031720</id><published>2010-03-12T17:49:00.003+01:00</published><updated>2010-03-12T17:55:37.670+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DJANGO'/><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>Looking for a Django Multilingual Solution</title><content type='html'>&lt;p&gt;One that actually works that is. &lt;a href = "http://code.google.com/p/django-multilingual/"&gt;django-multilingual&lt;/a&gt; is quite nice when it works, but has some quite severe bugs. It doesn't work with Django 1.2 due to &lt;a href = "http://code.google.com/p/django-multilingual/issues/detail?id=114"&gt;Issue 1114&lt;/a&gt; and it seems that it wont be fixed before 1.2 is out.&lt;/p&gt;
&lt;p&gt;It's trunk doesnt work either: &lt;a href = "http://code.google.com/p/django-multilingual/issues/detail?id=95"&gt;Issue 95&lt;/a&gt;. &lt;a href = "http://github.com/ojii/django-multilingual-ng/"&gt;django-multilingual-ng&lt;/a&gt; looks nice and apparently was created to solve these problems, but it has its own &lt;a href = "http://github.com/ojii/django-multilingual-ng/issues"&gt;issues&lt;/a&gt; and doesn't work with Django 1.1.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1790673070923031720?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1790673070923031720/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1790673070923031720' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1790673070923031720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1790673070923031720'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/03/looking-for-django-multilingual.html' title='Looking for a Django Multilingual Solution'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8879886159470081484</id><published>2010-03-02T22:55:00.002+01:00</published><updated>2010-03-02T23:03:10.970+01:00</updated><title type='text'>The VPS List</title><content type='html'>&lt;a href="http://www.thevpslist.com"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 149px;" src="http://4.bp.blogspot.com/_LBwjU6N1PBQ/S42KE6FxA1I/AAAAAAAAAE4/kbfCEk38FHQ/s320/screenshot.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5444159341478347602" /&gt;&lt;/a&gt;
&lt;p&gt;Den senaste tiden har jag fokuserat stort på mitt nya projekt, en
site om VPS:er: &lt;a href = "http://www.thevpslist.com/"&gt;The VPS
List&lt;/a&gt;. Det är en prisjämförelsesite för &lt;a href =
"http://sv.wikipedia.org/wiki/Virtuell_server"&gt;virtuella
servrar&lt;/a&gt;. Jag gillar tabeller och statistik och det finns det
mycket av på siten.&lt;/p&gt;

&lt;p&gt;Koden är på det hela taget nästan klar. Listan kan sorteras,
valutan kan ändras, användarbetyg och omdömen kan publiceras. Den
roliga biten alltså. Nu återstår att försöka dra trafik till siten
vilket är både svårt och tidsödande. En website är ganska meningslös
om den inte betjäner någon trafik. Tyvärr räcker det inte med att ha
mycket innehåll. Utan marknadsföring hittar ingen dit. Exempelvis har
jag kontinuerligt uppdaterat den här bloggen i över fem år men drar
ändå inte mer än c:a tio besökare per dag. Visserligen är det mesta
värdelöst svammel, men ändå.&lt;/p&gt;

&lt;p&gt;Något som jag kan rekommendera andra i samma situation (en ashäftig
site men inga besökare) är att regga siten på &lt;a href =
"http://www.aboutus.org/"&gt;AboutUs&lt;/a&gt;, en wiki som fungerar som en
telefonkatalog för webbsiter. De verkar inte sky kommersiella
webbplatser heller vilket är trevligt.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8879886159470081484?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8879886159470081484/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8879886159470081484' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8879886159470081484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8879886159470081484'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/03/vps-list.html' title='The VPS List'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_LBwjU6N1PBQ/S42KE6FxA1I/AAAAAAAAAE4/kbfCEk38FHQ/s72-c/screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-263975993935410680</id><published>2010-01-13T10:09:00.001+01:00</published><updated>2010-01-13T10:09:31.767+01:00</updated><title type='text'>Stupid Chinese Comment Spam</title><content type='html'>It sucks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-263975993935410680?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/263975993935410680/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=263975993935410680' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/263975993935410680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/263975993935410680'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/01/stupid-chinese-comment-spam.html' title='Stupid Chinese Comment Spam'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1246205419192361249</id><published>2010-01-10T03:23:00.003+01:00</published><updated>2010-01-10T13:56:09.378+01:00</updated><title type='text'>Chill</title><content type='html'>&lt;p&gt;Hej Björn,&lt;/p&gt;

&lt;p&gt;... Det här e knasigt.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1246205419192361249?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1246205419192361249/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1246205419192361249' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1246205419192361249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1246205419192361249'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2010/01/chill.html' title='Chill'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3326797754902139734</id><published>2009-12-21T17:43:00.000+01:00</published><updated>2009-12-21T17:44:05.522+01:00</updated><title type='text'>Pargas</title><content type='html'>&lt;p&gt;Kära grannar,&lt;/p&gt;
&lt;p&gt;Vänligen, ge fan i att köra runt med era bilar på Pargas- och Torneågatan i onöden. Gatorna är nämligen gågator, sådana man går på alltså. Invalider och krymplingar med specialla behov undantages givetvis ifrån denna uppmaning. Observera även vårt fina parkeringshus där man helt i sin ordning kan parkera sin bil och inte rakt framför porten.&lt;/p&gt;
&lt;p&gt;God Jul och Gott Nytt År&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3326797754902139734?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3326797754902139734/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3326797754902139734' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3326797754902139734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3326797754902139734'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/12/pargas.html' title='Pargas'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6640492119262505101</id><published>2009-11-30T07:08:00.001+01:00</published><updated>2009-11-30T07:10:20.817+01:00</updated><title type='text'>Arktis</title><content type='html'>Vaknade klockan fyra och mådde dåligt. Drömde att hela Arktis hade smält bort. Konstigt. Inget snus har helt klart sina bieffekter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6640492119262505101?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6640492119262505101/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6640492119262505101' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6640492119262505101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6640492119262505101'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/arktis.html' title='Arktis'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3893877113108783007</id><published>2009-11-25T13:37:00.003+01:00</published><updated>2009-11-25T13:39:52.721+01:00</updated><title type='text'>Idioter</title><content type='html'>Alltid när jag är sist och lämnar lunchrummet, vilket händer ganska ofta, torkar jag av bordet utan att gnälla. Det tar liksom inte längre tid för mig att göra rent hela bordet än att bara ta min plats. Men idag, har jag spillt lite, och självklart är det någon gnällig jävel som måste påpeka det. Suck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3893877113108783007?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3893877113108783007/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3893877113108783007' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3893877113108783007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3893877113108783007'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/idioter.html' title='Idioter'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8376302896309680175</id><published>2009-11-16T09:56:00.001+01:00</published><updated>2009-11-16T09:57:47.121+01:00</updated><title type='text'>Och jag har SLUTAT</title><content type='html'>Åtta dagar utan snus!!! Fan vad jag är grym! :) Jag har gjort mig förtjänt av min nya gitarr som jag snart ska posta lite bilder på.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8376302896309680175?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8376302896309680175/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8376302896309680175' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8376302896309680175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8376302896309680175'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/och-jag-har-slutat.html' title='Och jag har SLUTAT'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-608049491568985508</id><published>2009-11-09T15:09:00.002+01:00</published><updated>2009-11-09T15:12:27.067+01:00</updated><title type='text'>Kasta in handduken</title><content type='html'>Känner mig så nära att kasta in handduken. Jag vill verkligen inte. Gör jag det får jag ingen ny gitarr och det vore verkligen illa. Det vore så jävla gott med snus nu. Måste hitta något substitut snart. Godis eller läsk eller nåt. Samtidigt är magen skit pga för mycket sötsaker. Aja.. Bättre det i längden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-608049491568985508?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/608049491568985508/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=608049491568985508' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/608049491568985508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/608049491568985508'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/kasta-in-handduken.html' title='Kasta in handduken'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-574547668103568799</id><published>2009-11-09T10:40:00.001+01:00</published><updated>2009-11-09T10:40:24.724+01:00</updated><title type='text'>Fortfarande utan snus</title><content type='html'>Har inte haft en prilla på 58 timmar nu. Det är rekord såklart. Jag
försöker att koncentrera mig på jobbet, men det är svårt. I vanliga
fall hade jag suttit med en skön snus under läppen och softat. Inte
nu, det känns att det fattas. Dock känns det som att ifall jag klarar
idag, klarar jag resten också. Sen när veckan är klar och jag slutat
på riktigt ska jag köpa något fint till mig själv. När jag bevisat att
jag kan ändra på saker och ting och bryta dåliga vanor. Det är ju inte
enkelt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-574547668103568799?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/574547668103568799/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=574547668103568799' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/574547668103568799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/574547668103568799'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/fortfarande-utan-snus.html' title='Fortfarande utan snus'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4943048815747510842</id><published>2009-11-08T00:33:00.002+01:00</published><updated>2009-11-08T00:39:42.213+01:00</updated><title type='text'>Sluta snusa</title><content type='html'>Har nu varit snusfri i mer än 24 timmar. Jag har hållit tankeverksamheten i styr genom att spela Civilization 4. Det är ett sådant djupt strategispel som man kan spela hur länge som helst och som kräver ens fulla koncentration. Dessutom har jag köpt en massa godis och läsk som ska ersätta snussuget de närmaste dagarna. Får se om det hjälper, just nu kan jag inte tänka på något annat än snus.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4943048815747510842?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4943048815747510842/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4943048815747510842' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4943048815747510842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4943048815747510842'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/11/sluta-snusa.html' title='Sluta snusa'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4764611298727241306</id><published>2009-10-17T14:31:00.003+02:00</published><updated>2009-10-17T14:43:31.090+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BLOG ACTION DAY'/><title type='text'>Blog Action Day Spam</title><content type='html'>Two years ago, I participated in the &lt;a href = "http://www.blogactionday.org/"&gt;Blog Action Day&lt;/a&gt; and wrote a small post about &lt;a href = "http://bjourne.blogspot.com/2007/10/public-transport-rocks.html"&gt;public transporation&lt;/a&gt;. Since then, I've decided against it for the following reasons:

&lt;ul&gt;
&lt;li&gt;Blog Action Day Recap: 31,000 Posts!, 16 okt&lt;/li&gt;
&lt;li&gt;Blog Action Day is AMAZING so far!, 15 okt&lt;/li&gt;
&lt;li&gt;Blog Action Day TOMORROW!, 15 okt&lt;/li&gt;
&lt;li&gt;Al Gore and Blog Action Day, 14 okt&lt;/li&gt;
&lt;li&gt;Ideas for Blog Action Day This Thursday, 13 okt&lt;/li&gt;
&lt;li&gt;Blog Action Day is Next Week!, 7 okt&lt;/li&gt;
&lt;li&gt;2400 Bloggers Want Your Help, 30 sep&lt;/li&gt;
&lt;li&gt;Announcing Blog Action Day 2009…, 23 sep&lt;/li&gt;
&lt;li&gt;Big News: Change.org to lead Blog Action Day 2009, 26 aug&lt;/li&gt;
&lt;/ul&gt;

That is the amount of mass-mail I have received about it this year, and it has crossed my tolerable threshold and has became annoying. I know Blog Action Day is for a good cause, but sending this much mail in a short period gives me a very bad impression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4764611298727241306?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4764611298727241306/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4764611298727241306' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4764611298727241306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4764611298727241306'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/10/blog-action-day-spam.html' title='Blog Action Day Spam'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4823121943649024236</id><published>2009-10-13T11:19:00.001+02:00</published><updated>2009-10-13T11:21:01.723+02:00</updated><title type='text'>How do you aquire a parked domain name?</title><content type='html'>&lt;p&gt;Dear Internet, how do you acquire a parked domain name?&lt;/p&gt;
&lt;p&gt;I'm about to launch my start-up company which will sell software
services. I'm deciding on an appropriate domain name to use, but all
relevant names have already been taken by domain parked sites filled
with ads. It is quite frustrating to see good names being wasted on
worthless ad spamming pages. I don't mind paying for a com domain, but
the prices these domain parkers ask are steep; 500 to several thousand
dollars for uncommon names. Especially since they themselves pay at
most 8-15$/year to keep the domain parked. So how should I go about
aquiring a domain name?  Should I use a broker such as Sedo or try and
contact the domain owner directly? How do I ensure that I wont get
ripped off?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4823121943649024236?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4823121943649024236/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4823121943649024236' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4823121943649024236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4823121943649024236'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/10/how-do-you-aquire-parked-domain-name.html' title='How do you aquire a parked domain name?'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5898517882267380731</id><published>2009-10-12T10:06:00.004+02:00</published><updated>2009-10-17T14:44:20.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ec2'/><title type='text'>Comparing EC2</title><content type='html'>&lt;p&gt;Recently I've been playing around with &lt;a href = "http://aws.amazon.com/ec2/"&gt;Amazon EC2&lt;/a&gt;. A small project of mine,
&lt;a href = "http://www.datalookups.com/"&gt;datalookups.com&lt;/a&gt; is currently hosted on it.&lt;/p&gt; 
&lt;p&gt;Performance wise, it is very good. Low latency when accessing it from Sweden and fairly decent bandwidth. Cost-wise, I'm not so sure. Without an instance reservation, the monthly cost is about $79 excluding bandwidth costs. But that's when paying on-demand so it wouldn't be a fair comparision to dedicated or VPS hosting where you have to subscribe to the service.&lt;/p&gt;
&lt;p&gt;If you sign up for a European reserved small instance for a three year period, you get a monthly cost of $19.5: (350 + 0.04 * 24 * 365) / (3 * 12). That's not to bad when you take into account that one ec2 instance is more like a dedicated server than a VPS. But signing up for a three year lease is a very long time. The monthly cost for the one year plan is $48 which is much less cost competetive.&lt;/p&gt;
&lt;p&gt;Here are some informative comparisons I've found. &lt;a href = "http://www.mahalo.com/answers/web-development/godaddy-virtual-dedicated-server-vs-amazon-ec2-vs-rackspace-which-is-better-for-a-startup-and-why#ad531af1c903931585e46e1398ad20ed4771fd208a5f7b531ad7ad89edb360e0d"&gt;GoDaddy vs ec2&lt;/a&gt;, &lt;a href = "http://www.paessler.com/blog/2009/04/14/prtg-7/comparing-amazon-ec2-performance-with-other-cloudvps-hosting-options-and-real-hardware/"&gt;ec2 vs other stuff&lt;/a&gt; and &lt;a href = "http://www.xenscale.com/docs/vps-comparison-matrix"&gt;ec2 vs VPS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;From everything I've read, it seems that Amazon EC2 underperforms when compared to other hosting options. On the other hand, the &lt;a href = "http://jobsearch.monster.com/search.aspx?q=&amp;sort=rv&amp;vw=b&amp;re=14&amp;brd=1&amp;cy=US#brd=1&amp;q=ec2&amp;cy=us&amp;lid=316&amp;re=0&amp;pg=1&amp;dv=1"&gt;job market&lt;/a&gt; seem to favor ec2 experience so it might be worth going with it just for that reason alone.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5898517882267380731?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5898517882267380731/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5898517882267380731' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5898517882267380731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5898517882267380731'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/10/comparing-ec2.html' title='Comparing EC2'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1687965952800125228</id><published>2009-09-30T10:07:00.002+02:00</published><updated>2009-09-30T10:15:01.686+02:00</updated><title type='text'>Vart har getingarna tagit vägen?</title><content type='html'>I år har jag inte sett en endaste geting och bara ett fåtal bin. Nu är det bitande kallt om mornarna och om några dagar kommer frosten. Då dör de och kommer inte tillbaka förrän nästa sommar. Egentligen är jag skraj för bin och getingar, men det är ännu mer oroande ifall de skulle försvinna. Bananflugor däremot finns det gott om. De lägger ägg i bananskalen och låter man soporna stå en dag för länge får man en hel svärm hemma. Då måste man lägga ner mycket möda för att bli av med dem igen. Getingar äter bananflugor tror jag, men inte i år.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1687965952800125228?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1687965952800125228/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1687965952800125228' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1687965952800125228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1687965952800125228'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/09/vart-har-getingarna-tagit-vagen.html' title='Vart har getingarna tagit vägen?'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3473135817823443954</id><published>2009-09-27T02:44:00.002+02:00</published><updated>2009-09-27T02:47:28.273+02:00</updated><title type='text'>I can't belive..</title><content type='html'>I don't have more interesting stuff to blog about! First business meeting tomorrow with a potential supplier. Almost seen all DS9 episodes up to season 4. I can play Sultans of Swing much better than two months ago. My eyesight is likely worse and I do need lenses when riding my bike.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3473135817823443954?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3473135817823443954/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3473135817823443954' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3473135817823443954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3473135817823443954'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/09/i-cant-belive.html' title='I can&apos;t belive..'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1191125285259309046</id><published>2009-09-19T22:54:00.002+02:00</published><updated>2009-09-19T22:58:13.962+02:00</updated><title type='text'>My Secret Project</title><content type='html'>Work is chugging along nicely on my secret project. Web app is built using &lt;a href = "http://code.google.com/intl/sv-SE/appengine/"&gt;Google App Engine&lt;/a&gt;. The domains are hosted using &lt;a href = "http://www.godaddy.com"&gt;GoDaddy&lt;/a&gt;. What remains is to setup my company site with awesome design and many images. The product will be a B2B SaaS app with a hefty monthly subscription fee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1191125285259309046?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1191125285259309046/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1191125285259309046' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1191125285259309046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1191125285259309046'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/09/my-secret-project.html' title='My Secret Project'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-9080669582278309292</id><published>2009-08-02T04:44:00.002+02:00</published><updated>2009-08-02T04:46:45.923+02:00</updated><title type='text'>Me me me!</title><content type='html'>Today I actually did rock at the club. I were awesome. My friend were awesome. I am to damn drunk to write anything else. But I won, I feel validated, I can do stuff. Excusme while i punjke.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-9080669582278309292?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/9080669582278309292/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=9080669582278309292' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/9080669582278309292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/9080669582278309292'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/08/me-me-me.html' title='Me me me!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7973264760142557081</id><published>2009-07-14T14:05:00.002+02:00</published><updated>2009-07-14T14:05:31.879+02:00</updated><title type='text'>Why does beautiful women love crappy music?</title><content type='html'>I have no idea.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7973264760142557081?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7973264760142557081/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7973264760142557081' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7973264760142557081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7973264760142557081'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/07/why-does-beautiful-women-love-crappy.html' title='Why does beautiful women love crappy music?'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7290562839106827</id><published>2009-07-06T14:34:00.001+02:00</published><updated>2009-07-06T14:34:55.914+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GUADEC'/><title type='text'>Guadec is great!</title><content type='html'>&lt;p&gt;Been fucking awesome so far. I've met lots of great people all very
friendly. The partyin has been long and tough with no nights ending
before 3am. I have no clue why I'm not sleepy at all. Must be the
strange Canary coffee... It's not hot, not cold and tastes kind of
sweet, very different from what I'm used to.&lt;/p&gt;
&lt;p&gt;The beach is great and the weather almost perfect. It's hot as hell
but a cold breeze is blowing so it never becomes unbearable. I already
sunburned which is as expected. The best thing about the beach is the
topless girls. And I am a dirty bastard so I've been staring until my
neck gets sore. Haven't taken a dump either. Probably I should be
doing it right about now but I'd rather first walk back to the
hotel. I don't like shitting in public toilets.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7290562839106827?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7290562839106827/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7290562839106827' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7290562839106827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7290562839106827'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/07/guadec-is-great.html' title='Guadec is great!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-414017603471343197</id><published>2009-06-17T09:18:00.002+02:00</published><updated>2009-06-17T09:20:31.478+02:00</updated><title type='text'>Fucking Fair Scheduling</title><content type='html'>&lt;p&gt;I'm running a compile in a terminal which takes most of the CPU. In another terminal I'm viewing a log with less. And less is &lt;b&gt;fucking lagging&lt;/b&gt;!! How fucking broken is that?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-414017603471343197?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/414017603471343197/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=414017603471343197' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/414017603471343197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/414017603471343197'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/06/fucking-fair-scheduling.html' title='Fucking Fair Scheduling'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-690829071740611745</id><published>2009-06-16T16:04:00.001+02:00</published><updated>2009-06-16T16:04:43.507+02:00</updated><title type='text'>Deep Space 9</title><content type='html'>&lt;p&gt;Turns out Deep Space 9 is quite good after all. There are a little
to many similarities with TNG, but that's also good in a way since the
TNG seasons was fantastic. Ben Sisko is the station commander and is
in many ways comparable to Picard. Except he doesn't have the same
interesting personality and charisma that Picard had. He is kind of a
light version of Picard.&lt;/p&gt; 

&lt;p&gt;I almost wrote black version of Picard. It wouldn't have been
accurate because he fits the role well and his skin color neither adds
nor subtracts from it.&lt;/p&gt;

&lt;p&gt;I like Julian Bashere as the stations doctor. He manages to convey
his role very well and isn't as bland as Bevery Crusher was. My guess
is that he will play even better in the next seasons of the series
(I've only watch the first one so far).&lt;/p&gt;

Even the child actors are bearable. Nogg and Jake. They bring some
mischevious funnyness into the series. Definitely not my type but
since they are good actors it manages to become decent. That's in
stark contrast with TNG in which &lt;b&gt;all&lt;/b&gt; child actors without
exception were horrible. Especially Wesley Crusher, yuck. I believe
one of their reasons for existance is also to give Odo some "lighter"
scenes.&lt;/p&gt;

&lt;p&gt;Odo is a shapeshifter, grumpy and seem to dislike everyone and is
the chief of security on DS9. I don't know who the actor is but I know
it's someone famours. I just can't remember where I've seen him
before. His character is in many ways like Worf, but I'd say his
acting is a tad bit stronger than Worf. Or maybe like Data in that he
is a non-human and have special powers.&lt;/p&gt;

&lt;p&gt;I miss Data. There is no Data on Deep Space 9. And also no Geordie
LaForge, which is a shame. Those were the best actors in TNG.&lt;/p&gt;

&lt;p&gt;Then we come to Commander Kiera, Sisko's right hand. She is not bad
and not good. Kind of bland so far and cries to much. Apparently one
of the main storylines will be the Bajoran independence (DS9 is a
Federation outpost in the Bajoran system). Since she was a member of
the resistance movement during the Cardassian occupation. Undoubtedly
there will be more sad, emotional and heart breaking scenes to come
for her. Which is &lt;b&gt;BOOORING&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;Not to forget, Chief O'Brian were transferred from Enterprise to
DS9 and now serves as chief of technology on the station. He is
exactly like he was on Enterprise but now he gets more scenes. Good
move by the produces, I like him.&lt;/p&gt;

&lt;p&gt;And then to forget, Liuetenant Dax. Totally boring, emotionless and
perfect in every way. She has a nice ass, firm tits and tight
costume. I hope the producers were smart enough to include some shower
scenes with her.&lt;/p&gt;

&lt;p&gt;Quark is the ferengi bartender. Not in the least similar to
Guinan. He has already got lots of scenes and been able to build up a
lot of character. In the DS9 universe, ferengi apparently aren't as
disguisting as in TNG. Nogg is even wearing some kind of "cute
ferengi" costume. Like fewer wrinkles and better teeth. I can live
with that.&lt;/p&gt;

&lt;p&gt;Who ever is playing Q is playing well. But it just makes no fucking
sense that he would stop harassing Picard and begin harassing
Sisko. It's just silly and unrealistic. I always had a hard time for
the Q episodes even the good ones (e.g. the trial against humanity),
the DS9 ones will be worse.&lt;/p&gt;

&lt;p&gt;All in all, I've enjoyed the episodes so far. I'll give it four out
of five comm badges.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-690829071740611745?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/690829071740611745/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=690829071740611745' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/690829071740611745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/690829071740611745'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/06/deep-space-9.html' title='Deep Space 9'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5728980222013619635</id><published>2009-06-13T05:57:00.002+02:00</published><updated>2009-06-13T06:01:08.155+02:00</updated><title type='text'>I'm an ASSHOLE</title><content type='html'>Alltid. Dagen efter jag varit full oroar jag mig för ifall jag varit ett arsle eller inte. Gjorde jag bort mig, var jag ett svin mot folk eller bara allmänt social och trevlig? Det är svårt att veta för jag kan ju inte fråga de inblandade vad de tyckte om Björns beteénde på en skala ett till tio liksom... Den här gången tänker jag inte grunna på det iallafall.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5728980222013619635?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5728980222013619635/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5728980222013619635' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5728980222013619635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5728980222013619635'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/06/im-asshole.html' title='I&apos;m an ASSHOLE'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1336613644288390654</id><published>2009-06-11T13:53:00.004+02:00</published><updated>2009-06-11T14:00:09.855+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GUADEC'/><title type='text'>GUADEC 2009</title><content type='html'>Realized I'm in the &lt;a href = "http://bjourne.blogspot.com/2007/07/no-guadec-for-me.html"&gt;exact same situation&lt;/a&gt; regarding &lt;a href = "http://www.grancanariadesktopsummit.org/"&gt;GUADEC&lt;/a&gt; as I was two years ago. :( Excep this time no girlfriend. I really want to go, but damn is it expensive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1336613644288390654?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1336613644288390654/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1336613644288390654' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1336613644288390654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1336613644288390654'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/06/guadec-2009.html' title='GUADEC 2009'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6531258264175430967</id><published>2009-06-10T15:20:00.000+02:00</published><updated>2009-06-10T15:21:07.926+02:00</updated><title type='text'>Branches..</title><content type='html'>are stupid. Very stupid. Especially subversion ones. :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6531258264175430967?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6531258264175430967/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6531258264175430967' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6531258264175430967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6531258264175430967'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/06/branches.html' title='Branches..'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-177863095782183810</id><published>2009-03-02T01:21:00.002+01:00</published><updated>2009-03-02T01:23:21.286+01:00</updated><title type='text'>The Defragmentation Lie</title><content type='html'>&lt;p&gt;It has been said for years that files on Linux does not become
fragmented so it doesn't need defragmentation. It is &lt;strong&gt;not
true!&lt;/strong&gt;. Large files can certainly be fragmented on Linux,
especially if they are written to often. Bittorrented files for
example. Here is the proof:&lt;/p&gt;
&lt;div class="code"&gt;
$ sudo filefrag big-500mb-file
filefrag big-500mb-file: 4316 extents found, perfection would be 3 extents
$ sudo sh -c "echo 3 &gt; /proc/sys/vm/drop_caches" # Clears fs caches and forces Linux to read from disk.
$ time cat big-500mb-file &gt; /dev/null

real 0m24.842s
user 0m0.032s
sys 0m0.592s
&lt;/div&gt;
&lt;p&gt;Thats the time it takes to read the whole file sequentially takes
when it is heavily fragmented. Compared to how long it would take if
the file was not fragmented:&lt;/p&gt;
&lt;div class="code"&gt;
$ cp big-500mb-file 500mb-copy
$ sudo filefrag 500mb-copy
500mb-copy: 6 extents found, perfection would be 3 extents
$ sudo sh -c "echo 3 &gt; /proc/sys/vm/drop_caches"
$ time cat 500mb-copy &gt; /dev/null
$ time cat 500mb-copy &gt; /dev/null

real 0m6.501s
user 0m0.024s
sys 0m0.508s
&lt;/div&gt;
&lt;p&gt;Note that the file is still fragmented, possibly because other IO
operations are going on in the background. Three things can be learned
from this exercise.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Fragmentation &lt;strong&gt;does matter!&lt;/strong&gt;. It took four
    times as long to read the fragmented file as it did the
    unfragmented one. The overhead could be even worse for smaller
    files because the seek time dominates. E.g. a 2mb file in 10
    fragments could in worst case be 10 times as slow to read as if it
    was in one fragment.&lt;/li&gt;
    
    &lt;li&gt;Bittorrent leaves files in a heavily fragmented state. Likely
    because thousands of writes are performed to the same file and it
    is hard to get them all in order. But I don't understand why it
    could preallocate the files in advance and then write to them?&lt;/li&gt;

    &lt;li&gt;cp can defragment files.&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-177863095782183810?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/177863095782183810/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=177863095782183810' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/177863095782183810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/177863095782183810'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/03/defragmentation-lie.html' title='The Defragmentation Lie'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2216660906774852178</id><published>2009-02-04T17:58:00.003+01:00</published><updated>2009-02-04T18:02:26.826+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IROCK'/><category scheme='http://www.blogger.com/atom/ns#' term='SLASHDOT'/><title type='text'>I'm so proud of myself</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SYnKHflG8wI/AAAAAAAAAEk/3urNb7RuATE/s1600-h/irock.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 124px;" src="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SYnKHflG8wI/AAAAAAAAAEk/3urNb7RuATE/s320/irock.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5298988666663138050" /&gt;&lt;/a&gt;
&lt;p&gt;I managed to tag a Slashdot article!!!!!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2216660906774852178?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2216660906774852178/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2216660906774852178' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2216660906774852178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2216660906774852178'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/02/im-so-proud-of-myself.html' title='I&apos;m so proud of myself'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LBwjU6N1PBQ/SYnKHflG8wI/AAAAAAAAAEk/3urNb7RuATE/s72-c/irock.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-860024906097251244</id><published>2009-01-11T22:35:00.001+01:00</published><updated>2009-01-11T22:49:31.854+01:00</updated><title type='text'>Bazaar loses to git</title><content type='html'>&lt;p&gt;And now I have tried &lt;a class="reference" href="http://bazaar-vcs.org/"&gt;bzr&lt;/a&gt; too. Maybe it is to early to declare a
winner in the epic battle between it and &lt;a class="reference" href="http://git-scm.com/"&gt;git&lt;/a&gt; since I only have
about 20 minutes of bzr experience under my belt.&lt;/p&gt;
&lt;p&gt;Never the less, git is the winner and bzr is the total loser. I have
used both tools to mirror the &lt;a class="reference" href="http://code.google.com/p/waf/"&gt;waf&lt;/a&gt; Subversion repository. Here are
my conclusions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Both tools take a long time to clone a Subversion repository. Like
an hour for bzr and two hours for git for a repository with about
4000 commits.&lt;/li&gt;
&lt;li&gt;bzr version 1.3.1 released in April 2008 has some severe
performance problems. Simple commands like bzr diff, blame and log
takes almost ten seconds to execute. Those commands are instanteous
in git.&lt;/li&gt;
&lt;li&gt;git log and diff are colized by default. Their bzr equivalents are
not.&lt;/li&gt;
&lt;li&gt;git uses some kind of smarts so that it automatically pages output
through less when needed. bzr does not.&lt;/li&gt;
&lt;li&gt;The &lt;a class="reference" href="http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html"&gt;Bazaar User Guide&lt;/a&gt; at least looks much more helpful than the
&lt;a class="reference" href="http://www.kernel.org/pub/software/scm/git/docs/user-manual.html"&gt;Git User's Manual&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;The last point is Bazaar's only redeeming quality. But it is a big one
and I will spend some more time with it before deciding if Bazaar is
rubbish or not.&lt;/p&gt;
&lt;p&gt;The reason why I'm even considering bzr is because I'm getting sick of
gits branch model. It just doesn't fit my brain. There is no such
thing as a branch in git, branches are just pointers to commits. That
leads to annoying problems when you want to rebase a branch tree.&lt;/p&gt;
&lt;p&gt;Say that you are working on feature branch foo. In that branch you
branch of to an experimental branch bar-foo. Then you want to update
foo because some new commits has arrived at master &lt;em&gt;while keeping your
private branch structure intact&lt;/em&gt;. The only way to do that, I've found,
is to rebase both branches. First you rebase foo to master, which
probably involves solving some conflicts. Now your branch structure is
messed up, the bar-foo branch will contain all the commits from the
foo branch. That is, the foo branchs commits are duplicated!&lt;/p&gt;
&lt;p&gt;It is totally stupid and absolutely not what i wanted. The solution is
to rebase bar-foo on top of foo. But now you will have to resolve all
the conflicts from the foo branch again!&lt;/p&gt;
&lt;p&gt;Multiply with the number of branches you have combined with gits
unwillingness to automatically resolve conflicts and you get lots of
work needed just to keep some feature branches up to date with a
Subversion master. I really hope bzr's workflow is better.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-860024906097251244?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/860024906097251244/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=860024906097251244' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/860024906097251244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/860024906097251244'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/01/bazaar-loses-to-git.html' title='Bazaar loses to git'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-7700887681589212454</id><published>2009-01-01T14:30:00.000+01:00</published><updated>2009-01-01T14:31:16.360+01:00</updated><title type='text'>The Year in Review</title><content type='html'>&lt;p&gt;It is the day after New Year's Eve and yet another year has
passed. Most people are doing these reviews of the past year so guess
I have too.&lt;/p&gt;
&lt;p&gt;In my life there has been upsides and downsides. I have accomplished
some goals and failed to reach others. Has it been a good year? I
don't really know, maybe I should have been able to complete more
goals or been able to avoid more of the bad moments.&lt;/p&gt;
&lt;p&gt;On the relationship front, &lt;em&gt;Im Western nicht Neues&lt;/em&gt;, sums it up
nicely. I haven't gotten a new girlfriend and I haven't really looked
for anyone either. I don't think I want to maintain a full-time
relationship that I used to have. Though I am completely over my last
one. A girl that I would only have to visit a few times a week or
something would suit me better.&lt;/p&gt;
&lt;p&gt;I have still met some girls over the year and have had some kisses. It
is still hard for me to meet people, but at least I've learnt the
basics. I'm especially proud of my performance with the chubby
teacher. But I'll keep the details to myself. :)&lt;/p&gt;
&lt;p&gt;The autumn vacation in France was totally awesome. I went alone to
Lacanau for surfing and got to know some wonderfully cool people. It
was a total blast. One of my new year's resolutions will be to keep in
touch with them. I definitely want to visit Jeff, Jean-Sebastien,
Olivia and the others some time this year. I have some great photos
from it that I should publish somewhere.&lt;/p&gt;
&lt;p&gt;I did some great stuff last year. Unfortunately, I did almost
everything on my own. Sometimes that can be a little lonely. I bathed
in Mälaren twice, saw Dark Knight in the movies and went to the gym
dozens of time, but all by myself. I even went out to nightclubs
alone.&lt;/p&gt;
&lt;p&gt;Which brings me to the major downside of the year; I didn't make very
many close friends. That's simply it. I should be good friends with
the boys from Ericsson, I should be closer to the guys I go out with,
I should have someone I can play guitar with. But it just hasn't
happened and I can't explain why really. It is my biggest goal not
reached this year. I hesitate to call it a failure, but that is
probably what it is, I'll try harder this year!&lt;/p&gt;
&lt;p&gt;I bought a condo in Akalla (actually in December 2007) which I moved
into from Södertälje. It is three times larger than my old apartment
and I'm quite happy with it. Close to the metro and 20 minutes to the
city. Of course I &lt;strong&gt;know&lt;/strong&gt; it was a bad deal and the housing market
has tanked. Bo fucking ho, I'm much happier here than in
Södertälje. Now I can vacuum clean without having to move the
furniture around. :) And I have an oven!!&lt;/p&gt;
&lt;p&gt;I like the girls in Husby, they are all dark brown and very hot. I met
one in the summer but it didn't work out at all. :) And the mall by
Kista station that is open to 21:00 every day is extraordinarily
convenient. Hell, it is almost walking distance to IKEA too.&lt;/p&gt;
&lt;p&gt;But the major thing in 2008 is that I'm learning to play the
guitar. Now I have two hobbies, programming and music. Practicing
guitar is like meditation for me, it takes my mind of all the problems
and I can't stay sad while strumming my six string. I'm not very good
yet but I have no doubt that I will be someday, because I'm practicing
very hard. I even took a course.&lt;/p&gt;
&lt;p&gt;Now to the shitty things. It doesn't work out with my family. Maybe we
are to different or something. I believe that everyone can accomplish
their dreams as long as they put their minds to it. They do not
agree. So if you can't do something you set out to do, I'd say try
harder, they'd feel sorry instead. And I can't stand people feeling
sorry for themselves or others. The ambient undertone quite often
becomes very inconvenient.&lt;/p&gt;
&lt;p&gt;I have to run to the gym soon, because I want to get out before the
sun sets. So the last thing I'll mention is that I've taken a new job!
I also got a pretty sizeable raise which I'm more than happy with. I
can't mention how much I earn for obvious reasons but my salary is now
quite decent. :) My previous job wasn't bad at all, and working with
Erlang in Ericsson is a total blast. But I couldn't refuse the offer I
got from Caliber Media. The new language is Java which frankly is a
huge step below Erlang. J2EE has a very time consuming deployment
cycle which means that for each change you do, you have to redeploy
the application which takes closer to five minutes. That is about four
minutes longer than it took to compile an Erlang module, scp it to a
live blade cluster and reboot the site. Nevertheless, there are
&lt;strong&gt;girls&lt;/strong&gt; on this job which is a big plus. :)&lt;/p&gt;
&lt;p&gt;What else is new? Obama won in America! It restores some of my faith
in the human race. It is hard to describe how important that was to me
personally. It shows that stuff is still possible despite
everything. Some things never change though, Israel's recent massacre
in Gaza is despicable. Our government apparently has nothing to say
about it. Fuck the foreign minister, fuck the rest of the corrupted
scoundrels.&lt;/p&gt;
&lt;p&gt;That's all for my year. Next year I will quit snuffing. I'll get abs
on my stomach and go through another accutane regimen. Oh yeah, my
acne/rosacea got worse this year. I'll also double my salary, get a
whole harem of fuck buddies and move to a 120m2 flat in
Vasastan. Then I'll be golden, but maybe I should move to Japan
instead... Hm. Life is still full of possibilities and I enjoy it very
much.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-7700887681589212454?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/7700887681589212454/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=7700887681589212454' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7700887681589212454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/7700887681589212454'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2009/01/year-in-review.html' title='The Year in Review'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3068200643199412667</id><published>2008-11-26T19:31:00.002+01:00</published><updated>2008-11-26T19:32:21.517+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTK'/><category scheme='http://www.blogger.com/atom/ns#' term='COMPLAINT'/><title type='text'>Not much action on gtk-devel-list</title><content type='html'>&lt;p&gt;The mailing list for &lt;a class="reference" href="http://www.gtk.org"&gt;GTK+&lt;/a&gt; is
&lt;a class="reference" href="mailto:gtk-devel-list&amp;#64;gnome.org"&gt;gtk-devel-list&amp;#64;gnome.org&lt;/a&gt;. Unfortunately, it seem to be serverly
underused and it is almost impossible to get discussions going
there. Most discussions seem to take place at &lt;a class="reference" href="http://bugzilla.gnome.org"&gt;bugzilla&lt;/a&gt; or the
(in)famous &lt;a class="reference" href="http://planet.gnome.org"&gt;planet.gnome.org&lt;/a&gt;. But part of the problem also seem to
be that most gtk developers are employed by a few companies, namely
&lt;a class="reference" href="http://www.redhat.com"&gt;Red Hat&lt;/a&gt; and &lt;a class="reference" href="http://www.imendio.com"&gt;Imendio&lt;/a&gt;. When you work in the same office it becomes
easier to communicate orally, than having to use a text medium.&lt;/p&gt;
&lt;p&gt;I think it would be nice if there was more &amp;quot;flow&amp;quot; on the mailing
list. I fear that important information is getting lost and it creates
a divide between employed hackers and others.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3068200643199412667?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3068200643199412667/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3068200643199412667' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3068200643199412667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3068200643199412667'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/11/not-much-action-on-gtk-devel-list.html' title='Not much action on gtk-devel-list'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-224623222199584521</id><published>2008-11-10T07:24:00.006+01:00</published><updated>2008-11-26T19:32:56.266+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>Jumpstarting Waf</title><content type='html'>&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="introduction" name="introduction"&gt;Introduction&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This document is an introduction to the build-tool &lt;a class="reference" href="http://code.google.com/p/waf/"&gt;waf&lt;/a&gt;. Waf is a
tool written in &lt;a class="reference" href="http://www.python.org"&gt;Python&lt;/a&gt; for setting up automated build systems for a
programming projects.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="intended-audience-and-prerequisite-knowledge" name="intended-audience-and-prerequisite-knowledge"&gt;Intended Audience and Prerequisite Knowledge&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is assumed that the reader is interested in using waf for setting
up the build for a project. The instructions given were recorded on a
Linux system and might not be suitable for Windows users.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="why-is-a-build-system-needed" name="why-is-a-build-system-needed"&gt;Why is a Build System Needed?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The build and distribution problem is one of the hardest problems in
applied computer science. You have to make sure that your software
works in a totally unknown environment radically different from the
one in which it was developed.&lt;/p&gt;
&lt;p&gt;Additionally if the build fails, the user of the software must be
informed in a graceful way with a description of why.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="why-waf" name="why-waf"&gt;Why Waf?&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As previously described, building software is hard. There are many
build systems out there, but only waf and &lt;a class="reference" href="http://en.wikipedia.org/wiki/GNU_build_system"&gt;autotools&lt;/a&gt; provides a
holistic system that takes care of every step from configure to
distribution. waf has several advantages over autotools that makes it
preferable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;waf uses Python while autotools mixes shell scripting, M4 and
Perl.&lt;/li&gt;
&lt;li&gt;waf does not generate intermediate files that confuses users
like autotools does.&lt;/li&gt;
&lt;li&gt;waf is many times faster than autotools.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="installing-waf" name="installing-waf"&gt;Installing Waf&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;The first step in using Waf is to install it. I recommend checking it
out from &lt;a class="reference" href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; instead of downloading a tarball as the former
usually is much more up to date and contains the latest bugfixes. As
of this writing, the repository is at revision 4813. Create a checkout
using:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ svn checkout http://waf.googlecode.com/svn/trunk/ waf-read-only
&lt;/pre&gt;
&lt;p&gt;To build waf, enter the waf-read-only directory generate the waf
script:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ cd waf-read-only
$ ./waf-light --make-waf
&lt;/pre&gt;
&lt;p&gt;This creates an exectuable Python script called waf. This script
should be copied to the root directory of any project you want to use
waf for. It is also possible to install waf globally, although that is
not recommended. The &lt;a class="reference" href="http://code.google.com/p/waf/source/browse/trunk/README"&gt;README&lt;/a&gt; file has more details.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="the-first-wscript" name="the-first-wscript"&gt;The First wscript&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Each build tool has its own kind of configuration files. &lt;a class="reference" href="http://www.gnu.org/software/make/"&gt;make&lt;/a&gt; has
Makefiles, &lt;a class="reference" href="http://www.gnu.org/software/autoconf/"&gt;autoconf&lt;/a&gt; has configure.in-files, &lt;a class="reference" href="http://www.scons.org/"&gt;scons&lt;/a&gt; has SConstruct
files and so on. waf has wscripts. So the first step is to create an
initial bare-bone wscript file. Copy this to a file named wscript in
your project root directory:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;srcdir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;blddir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;build&amp;#39;&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;Note that this a regular Python program and that you can enter
whatever Python code you want in it.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="explanation" name="explanation"&gt;Explanation&lt;/a&gt;&lt;/h2&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;srcdir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;The &lt;em&gt;srcdir&lt;/em&gt; variable informs waf of where the source files are in
relation to the wscript. Its value will almost always be '.' which is
the current directory.&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;blddir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;build&amp;#39;&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;This variable tells waf where to put the built files. By default, waf
uses an out-of-tree build process, in contrast to most autotooled
projects which are built in-tree, which means that waf will not litter
your source directories.&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;The &lt;em&gt;set_options&lt;/em&gt; function is used for modifying the global options
object passed in as the &lt;em&gt;opt&lt;/em&gt; parameter. Here you can add extra
options both for configuring and building.&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;This function performs the exact same task as the configure script in
autotooled projects -- it checks that all the requirements for the
software is fullfilled.&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;&lt;em&gt;build&lt;/em&gt; defines how the software is to be built. Target rules are
specified here.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="running-the-build" name="running-the-build"&gt;Running the Build&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Provided that the waf program is in the same directory, it is now
possible to run this empty build process:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ./waf configure
Configuration finished successfully (00:00:00); project is now ready to build.
$ ./waf build
Compilation finished successfully (00:00:00)
&lt;/pre&gt;
&lt;p&gt;We haven't told waf what to do yet, so it outputs nothing
interesting. waf creatures a directory called &lt;em&gt;build/&lt;/em&gt; which contains
the result of the build process:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ find build/
build/
build/config.log
build/c4che
build/c4che/build.config.py
build/c4che/default.cache.py
build/default
build/.wafpickle-6
&lt;/pre&gt;
&lt;p&gt;Each built file is placed in &lt;em&gt;build/default&lt;/em&gt;, the other files are just
house-keeping for waf. Truth be told, this isn't all that interesting,
but it gets better in the next section where we make waf actually do
something useful.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="wafing-a-project" name="wafing-a-project"&gt;wafing a Project&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Lets talk about the imagined project we are using waf for for a
while. We are creating a very simple &lt;a class="reference" href="http://en.wikipedia.org/wiki/Software_library"&gt;shared library&lt;/a&gt; written in C
complete with documentation, tests and example programs.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="file-structure" name="file-structure"&gt;File Structure&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Our project contains the following files and directories:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ find
.
./wscript
./waf
./src
./src/hello.c
./src/hello.h
./src/wscript_build
./tests/test.c
./tests/demo.c
./tests/wscript_build
&lt;/pre&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;build/&lt;/dt&gt;
&lt;dd&gt;As mentioned before, this is where waf puts the built files.&lt;/dd&gt;
&lt;dt&gt;docs/&lt;/dt&gt;
&lt;dd&gt;Project documentation.&lt;/dd&gt;
&lt;dt&gt;src/&lt;/dt&gt;
&lt;dd&gt;C sources and header files for the shared library.&lt;/dd&gt;
&lt;dt&gt;tests/&lt;/dt&gt;
&lt;dd&gt;Tests and example programs.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;The hello.c and hello.h files are the C sources. First hello.c:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;quot;hello.h&amp;quot;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;say_hi&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Ho&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;And hello.h:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="cp"&gt;#ifndef HELLO_H&lt;/span&gt;
&lt;span class="cp"&gt;#define HELLO_H&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;say_hi&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="cp"&gt;#endif&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;The other files will be introduced as needed in later sections.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="source-targets" name="source-targets"&gt;Source Targets&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since this a C project, we must add configure checks to waf to ensure
that the user has a C compiler installed before the project can be
built. Lets begin with that:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;compiler_cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;compiler_cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;These lines adds C compiler options and configure checks. Rerunning
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;./waf&lt;/span&gt; &lt;span class="pre"&gt;configure&lt;/span&gt;&lt;/tt&gt; outputs the following:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ./waf configure
Checking for program gcc                 : ok /usr/bin/gcc
Checking for compiler version            : ok 4.2.4
Checking for program cpp                 : ok /usr/bin/cpp
Checking for program ar                  : ok /usr/bin/ar
Checking for program ranlib              : ok /usr/bin/ranlib
Checking for gcc                         : ok
Configuration finished successfully (00:00:00); project is now ready to build.
&lt;/pre&gt;
&lt;p&gt;This proves that waf is now verifying that the user has a C compiler
installed. Next we add target definitions for the source files in the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;src&lt;/span&gt;&lt;/tt&gt; directory. Create a file called &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;wscript_build&lt;/span&gt;&lt;/tt&gt; to the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;src&lt;/span&gt;&lt;/tt&gt; directory.&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new_task_gen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;shlib&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;hello.c&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;These three lines work similar to a build rule in a makefile. The file
hello.c is used as input to build the shared library libhello.so. Note
that waf automatically adds the prefix &amp;quot;lib&amp;quot; and the suffix &amp;quot;.so&amp;quot;
because we are using Linux. To add this target to the build process
change the build function in the wscript file:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_subdirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;src&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;This instructs waf to add the rules from any wscript or wscript_build
file located in src. The code serves the same purpose as the &lt;a class="reference" href="http://www.delorie.com/gnu/docs/automake/automake_28.html"&gt;SUBDIRS
variable&lt;/a&gt; in Makefile.am variables. Naturally, it is also possible to
put all build information in the main wscript file but that might get
messy because all paths gets longer. On the other hand, fewer files
might feel less cluttered.&lt;/p&gt;
&lt;p&gt;Let's test the build:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ./waf build
[1/2] cc: src/hello.c -&amp;gt; build/default/src/hello_1.o
[2/2] cc_link: build/default/src/hello_1.o -&amp;gt; build/default/src/libhello.so
Compilation finished successfully (00:00:00)
&lt;/pre&gt;
&lt;p&gt;Excellent! waf first executed the compilation creating &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;hello_1.o&lt;/span&gt;&lt;/tt&gt;
and then linked it to produce &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;libhello.so&lt;/span&gt;&lt;/tt&gt;. Both stored in
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;build/default/src/&lt;/span&gt;&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ls build/default/src/
hello_1.o  libhello.so
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="preprocessor-defines" name="preprocessor-defines"&gt;Preprocessor Defines&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A preprocessor define instructs the compiler to replace all subsequent
occurences of a macro with specified replacement tokens. The canonical
way to pass compile time options is to let the build system create a
&amp;quot;config.h&amp;quot; header file that all C source files includes.&lt;/p&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="using-config-h" name="using-config-h"&gt;Using config.h&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Let's say we wan't to add a function to our hello library that returns
its version. First we add the necessary code to the wscript file to
create the config.h file with the necessary define:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;VERSION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;1.0.0&amp;#39;&lt;/span&gt;

&lt;span class="n"&gt;srcdir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;blddir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;build&amp;#39;&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;compiler_cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;compiler_cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;PACKAGE_VERSION&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;VERSION&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;conf&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;write_config_header&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;config.h&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;build&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_subdirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;src&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;The two new lines in the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;configure&lt;/span&gt;&lt;/tt&gt; function creates the macro
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;PACKAGE_VERSION&lt;/span&gt;&lt;/tt&gt; and writes it to the config.h file. Configuring
the project creates the config.h file in the &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;build/default/&lt;/span&gt;&lt;/tt&gt;
directory:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="c"&gt;/* Configuration header created by Waf - do not edit */&lt;/span&gt;
&lt;span class="cp"&gt;#ifndef _CONFIG_H_WAF&lt;/span&gt;
&lt;span class="cp"&gt;#define _CONFIG_H_WAF&lt;/span&gt;

&lt;span class="cp"&gt;#define PACKAGE_VERSION &amp;quot;1.0.0&amp;quot;&lt;/span&gt;

&lt;span class="cp"&gt;#endif &lt;/span&gt;&lt;span class="c"&gt;/* _CONFIG_H_WAF */&lt;/span&gt;&lt;span class="cp"&gt;&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;By including config.h in hello.c, the macro can be used in the new
function:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;quot;hello.h&amp;quot;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;quot;config.h&amp;quot;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;say_hi&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Ho&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nf"&gt;get_version&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;PACKAGE_VERSION&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;The function is also added to the header:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="cp"&gt;#ifndef HELLO_H&lt;/span&gt;
&lt;span class="cp"&gt;#define HELLO_H&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt;        &lt;span class="n"&gt;say_hi&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;get_version&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="cp"&gt;#endif&lt;/span&gt;

&lt;/div&gt;&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="the-defines-attribute" name="the-defines-attribute"&gt;The defines attribute&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It is also possible to pass the defines as compiler arguments using
gcc's -D option (or the equivalent for other compilers). Each target
object in waf has a &amp;quot;defines&amp;quot; attribute where the defines are listed.&lt;/p&gt;
&lt;p&gt;So to accomplish what we did in the previous chapter, without using a
config.h file, change &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;src/wscript_build&lt;/span&gt;&lt;/tt&gt; to the following:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="n"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bld&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;new_task_gen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;shlib&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;source&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;hello.c&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;hello&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;defines&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;PACKAGE_VERSION=&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;VERSION&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;Note that an extra level of string escaping is needed to get the
string literal correctly passed to the compiler from the shell.&lt;/p&gt;
&lt;p&gt;Which ever way you prefer to use is a matter of taste. But when the
list of defines grow large, the config.h method certainly becomes more
pleasant. Even if it sometimes can increase recompile times.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section"&gt;
&lt;h1&gt;&lt;a id="building-gtk-doc-documentation" name="building-gtk-doc-documentation"&gt;Building GTK-Doc Documentation&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Integrating the documentation building step into the build tool is
usually tricky. End users usually does not need to rebuild the
documentation and most documentation tools such as &lt;a class="reference" href="http://java.sun.com/j2se/javadoc/"&gt;Javadoc&lt;/a&gt; and
&lt;a class="reference" href="http://www.stack.nl/~dimitri/doxygen/"&gt;Doxygen&lt;/a&gt; does not integrate very easily into a target-based system.&lt;/p&gt;
&lt;p&gt;Never the less, the popular documentation extraction tool &lt;a class="reference" href="http://www.gtk.org/gtk-doc/"&gt;GTK-Doc&lt;/a&gt;
for &lt;a class="reference" href="http://www.gtk.org/"&gt;GTK+&lt;/a&gt; libraries contains a bunch of autotools macros so that it
can be built using make. waf can do that too, ofcourse.&lt;/p&gt;
&lt;p&gt;First, we have to write some documentation for our two functions in
hello.c. GTK-Doc uses a pretty self-explanatory doc comment syntax
reminiscent of Javadoc. We also add a third function, just for
fun. The resulting hello.c and hello.c files are:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="cp"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;span class="cp"&gt;#include &amp;quot;hello.h&amp;quot;&lt;/span&gt;

&lt;span class="c"&gt;/**&lt;/span&gt;
&lt;span class="c"&gt; * say_hi:&lt;/span&gt;
&lt;span class="c"&gt; *&lt;/span&gt;
&lt;span class="c"&gt; * Prints &amp;quot;Ho\n&amp;quot; on standard out.&lt;/span&gt;
&lt;span class="c"&gt; **/&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt;
&lt;span class="nf"&gt;say_hi&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Ho&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/**&lt;/span&gt;
&lt;span class="c"&gt; * get_version ()&lt;/span&gt;
&lt;span class="c"&gt; * @returns: a string containing the version of this library.&lt;/span&gt;
&lt;span class="c"&gt; *&lt;/span&gt;
&lt;span class="c"&gt; * Returns a string on the format &amp;quot;major.minor.micro&amp;quot; describing which&lt;/span&gt;
&lt;span class="c"&gt; * is this librarys version.&lt;/span&gt;
&lt;span class="c"&gt; **/&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nf"&gt;get_version&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;PACKAGE_VERSION&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/**&lt;/span&gt;
&lt;span class="c"&gt; * get_day_name:&lt;/span&gt;
&lt;span class="c"&gt; * @day_index: index of a week-day, in the range 0-6.&lt;/span&gt;
&lt;span class="c"&gt; * @sunday_first: one if a calendar with the week starting on Sunday&lt;/span&gt;
&lt;span class="c"&gt; *      is desired, zero otherwise.&lt;/span&gt;
&lt;span class="c"&gt; * @returns: the name of the day, or %NULL if @day_index is out of&lt;/span&gt;
&lt;span class="c"&gt; *      range.&lt;/span&gt;
&lt;span class="c"&gt; *&lt;/span&gt;
&lt;span class="c"&gt; * Returns the name of the day corresponding to the specified day&lt;/span&gt;
&lt;span class="c"&gt; * index.&lt;/span&gt;
&lt;span class="c"&gt; **/&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="nf"&gt;get_day_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;day_index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;sunday_first&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Monday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Tuesday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Wednesday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Thursday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Friday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Saturday&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="s"&gt;&amp;quot;Sunday&amp;quot;&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="n"&gt;day_index&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;day_index&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;NULL&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="n"&gt;sunday_first&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;day_index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;day_index&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;day_index&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;and hello.h:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="kt"&gt;void&lt;/span&gt;        &lt;span class="n"&gt;say_hi&lt;/span&gt;       &lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;get_version&lt;/span&gt;  &lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;get_day_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;day_index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                          &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;sunday_first&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="cp"&gt;#endif&lt;/span&gt;

&lt;/div&gt;&lt;div class="section"&gt;
&lt;h2&gt;&lt;a id="adding-documentation-option" name="adding-documentation-option"&gt;Adding Documentation Option&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Autotooled projects employing GTK-Doc all have a &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;--enable-gtk-doc&lt;/span&gt;&lt;/tt&gt;
configure option that determines whether the build process will build
the documentation or not. It is easily added to waf by modifying the
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;set_options&lt;/span&gt;&lt;/tt&gt; function in the wscript file:&lt;/p&gt;
&lt;div class = "code"&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;set_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;compiler_cc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;add_option&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#39;--enable-gtk-doc&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;store_true&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="n"&gt;default&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="n"&gt;help&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;#39;use gtk-doc to build documentation &amp;#39;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
               &lt;span class="s"&gt;&amp;#39;[default: &lt;/span&gt;&lt;span class="si"&gt;%d&lt;/span&gt;&lt;span class="s"&gt;efault]&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/div&gt;&lt;p&gt;Waf uses the standard library &lt;a class="reference" href="http://docs.python.org/library/optparse.html"&gt;optparse&lt;/a&gt; module for parsing the
command line, so any option format accepted by optparse will work for
waf. See the documentation for that module for more information.&lt;/p&gt;
&lt;p&gt;We can check that the extra option has become available:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
$ ./waf configure --help
usage: waf [options] [commands ...]

* Main commands: configure build install clean dist distclean uninstall distcheck
* Example: ./waf build -j4

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -j JOBS, --jobs=JOBS  amount of parallel jobs [Default: 2]
  -f, --force           force file installation
  -k, --keep            keep running happily on independent task groups
  -p, --progress        -p: progress bar; -pp: ide output
  -v, --verbose         verbosity level -v -vv or -vvv [Default: 0]
  --destdir=DESTDIR     installation root [Default: '']
  --nocache             compile everything, even if WAFCACHE is set
  -b BLDDIR, --blddir=BLDDIR
                        build dir for the project (configuration)
  -s SRCDIR, --srcdir=SRCDIR
                        src dir for the project (configuration)
  --prefix=PREFIX       installation prefix (configuration only) [Default: '/usr/local/']
  --zones=ZONES         debugging zones (task_gen, deps, tasks, etc)
  --targets=COMPILE_TARGETS
                        compile the targets given only [targets in CSV format, e.g. &amp;quot;target1,target2&amp;quot;]
  -d DEBUG_LEVEL, --debug-level=DEBUG_LEVEL
                        Specify the debug level, does nothing if CFLAGS is set in the environment. [Allowed
                        Values: 'ultradebug', 'debug', 'release', 'optimized', 'custom']
  --enable-gtk-doc      use gtk-doc to build documentation [default: False]
  ^&amp;lt;- here it is!

  C Compiler Options:
    --check-c-compiler=CHECK_C_COMPILER
                        On this platform (linux) the following C-Compiler will be checked by default: &amp;quot;gcc
                        suncc&amp;quot;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-224623222199584521?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/224623222199584521/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=224623222199584521' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/224623222199584521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/224623222199584521'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/11/jumpstarting-waf-introduction-this.html' title='Jumpstarting Waf'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-540525401082769697</id><published>2008-11-03T20:59:00.002+01:00</published><updated>2008-11-03T21:02:31.253+01:00</updated><title type='text'>Go Obama!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SQ9YvVwk3wI/AAAAAAAAAEE/ZFnG1JeDs0g/s1600-h/Obama--27255.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 276px;" src="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SQ9YvVwk3wI/AAAAAAAAAEE/ZFnG1JeDs0g/s320/Obama--27255.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5264524059737382658" /&gt;&lt;/a&gt;Pretty, pretty please make the Americans vote right this time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-540525401082769697?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/540525401082769697/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=540525401082769697' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/540525401082769697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/540525401082769697'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/11/go-obama.html' title='Go Obama!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LBwjU6N1PBQ/SQ9YvVwk3wI/AAAAAAAAAEE/ZFnG1JeDs0g/s72-c/Obama--27255.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6843052163264594457</id><published>2008-09-25T15:27:00.006+02:00</published><updated>2008-09-25T15:41:53.160+02:00</updated><title type='text'>Min näsa</title><content type='html'>Jag slog i näsan hårt under surfsemestern i Lacanau. Den är nu permanent något böjd. Ingen större fara hoppas jag inte, dock lite sorgligt ändå. Tack till den trevliga vårdpersonal som hjälpte mig idag samt till den rolige läkare som bokstavligt talat knäckte den rät.

&lt;p&gt;Innan:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LBwjU6N1PBQ/SNuTE9YEX1I/AAAAAAAAADg/36sTRKl_RlE/s1600-h/before01.jpg"&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_LBwjU6N1PBQ/SNuTE9YEX1I/AAAAAAAAADg/36sTRKl_RlE/s320/before01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5249951504034717522" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Efter olyckan:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_LBwjU6N1PBQ/SNuUA6axCnI/AAAAAAAAADw/bMJU_976dZQ/s1600-h/during01.jpg"&gt;&lt;img style="margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_LBwjU6N1PBQ/SNuUA6axCnI/AAAAAAAAADw/bMJU_976dZQ/s320/during01.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5249952534032878194" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Efter fixen:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_LBwjU6N1PBQ/SNuU08e0frI/AAAAAAAAAD4/sG4aKS85Tu4/s1600-h/after03.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_LBwjU6N1PBQ/SNuU08e0frI/AAAAAAAAAD4/sG4aKS85Tu4/s320/after03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5249953427939950258" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6843052163264594457?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6843052163264594457/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6843052163264594457' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6843052163264594457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6843052163264594457'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/09/min-nsa.html' title='Min näsa'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_LBwjU6N1PBQ/SNuTE9YEX1I/AAAAAAAAADg/36sTRKl_RlE/s72-c/before01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5812551056934438648</id><published>2008-08-25T21:16:00.004+02:00</published><updated>2008-08-25T22:05:44.613+02:00</updated><title type='text'>Död</title><content type='html'>&lt;p&gt;Tar bort det här mtp mordmisstankarna. Naturligtvis skriver tidningarna det, men det gör det ju ännu värre! Usch.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5812551056934438648?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5812551056934438648/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5812551056934438648' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5812551056934438648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5812551056934438648'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/08/dd.html' title='Död'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3435451196465285295</id><published>2008-08-13T22:50:00.002+02:00</published><updated>2008-08-13T22:53:15.180+02:00</updated><title type='text'>Björn Lindqvists Extraordinära Konsultfirma</title><content type='html'>&lt;p&gt;&lt;a href = "https://poit.bolagsverket.se/KPNPublikWeb/visaUtgava?namn=PoIT+Utg%C3%A5va+2008-06-24"&gt;är registrerad!&lt;/a&gt; Annat noterbart är att skuldsaneringsuppgifter tydligen är offentlig information. Tråkigt för Anita, Curt, Kenneth m.fl. Personnummer är tydligen inte speciellt hemliga heller.&lt;/p&gt;
&lt;p&gt;Det var allt från VD:n.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3435451196465285295?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3435451196465285295/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3435451196465285295' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3435451196465285295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3435451196465285295'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/08/bjrn-lindqvists-extraordinra.html' title='Björn Lindqvists Extraordinära Konsultfirma'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6250196541527007438</id><published>2008-06-23T23:12:00.002+02:00</published><updated>2008-06-23T23:14:26.836+02:00</updated><title type='text'>Personal Issues</title><content type='html'>Dammit. I can't help it but I still take it personal when someone rejects my bugs or patches. I hate it! The worst thing is that I know I am right. Either I am a bad communicator or people are just thick. I know what option I &lt;i&gt;would&lt;/i&gt; like to believe in. Grrrr...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6250196541527007438?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6250196541527007438/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6250196541527007438' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6250196541527007438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6250196541527007438'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/06/personal-issues.html' title='Personal Issues'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6417837166341430641</id><published>2008-06-19T00:48:00.002+02:00</published><updated>2008-06-19T00:54:18.934+02:00</updated><title type='text'>Kukskallar</title><content type='html'>143 riksdagsledamöter är kukskallar. Vad ska vi göra med dem? Kanske borde de tänka efter vad de spenderar sina liv på. Leva i lyx med fet riksdagslön... Viktigare än att tänka efter och framföra sin ärliga åsikt. Zombies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6417837166341430641?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6417837166341430641/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6417837166341430641' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6417837166341430641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6417837166341430641'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/06/kukskallar.html' title='Kukskallar'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-461482085738925535</id><published>2008-06-16T22:12:00.003+02:00</published><updated>2008-06-16T22:21:20.206+02:00</updated><title type='text'>FRA suger</title><content type='html'>FRA lagen är helt sjuk. Vi måste få fegisar som Frederick Federly på bättre tanker. Borgaras. Hoppas på många utanför riksdagshuset 08:00 18/6.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-461482085738925535?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/461482085738925535/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=461482085738925535' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/461482085738925535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/461482085738925535'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/06/fra-suger.html' title='FRA suger'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2821262598369413091</id><published>2008-06-02T19:38:00.008+02:00</published><updated>2008-06-02T19:57:11.868+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SLASHDOT'/><title type='text'>Banana Knowledge</title><content type='html'>&lt;p&gt;Sometimes &lt;a href = "http://www.slashdot.org"&gt;Slashdot&lt;/a&gt; actually contain some interesting stuff, like this &lt;a href = "http://science.slashdot.org/article.pl?sid=08/06/02/0033211"&gt;article&lt;/a&gt; about bananas. Like this &lt;a href = "http://science.slashdot.org/comments.pl?sid=570567&amp;cid=23625131"&gt;comment&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;i&gt;So, was granpa's banana more slippery?&lt;/i&gt;&lt;br/&gt;
Actually, that's a slightly hedged 'yes'.&lt;br/&gt;
Grampa's banana had a thicker, more durable skin, in addition to being larger than the bananas we youngun's know so well.
The other reason it's so popular as comic relief is because it actually was a real hazard back around 1915-ish. As a 'portable' fruit, they were handy to carry anywhere, and without streetcorner trash cans, the peels got tossed on the sidewalk as often as not. And considering bananas are (and were) the most popular fruit in the US (almost twice as popular as the good ol' apple), it really was a normal hazard. The Boy Scout handbook of 1914 actually listed removing a banana peel from the sidewalk as a 'good deed', it was that common an occurence.&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;Did you know that the current type of banana everyone eats is called Cavendish because the previously most popular banana Gros Michel went extinct in the 60's?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2821262598369413091?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2821262598369413091/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2821262598369413091' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2821262598369413091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2821262598369413091'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/06/banana-knowledge.html' title='Banana Knowledge'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4423860442097132058</id><published>2008-04-20T23:29:00.001+02:00</published><updated>2008-04-20T23:31:56.470+02:00</updated><title type='text'>Nya dojor</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SAu2PM7R1qI/AAAAAAAAABs/Zb_Bj_WpubQ/s1600-h/dojor.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_LBwjU6N1PBQ/SAu2PM7R1qI/AAAAAAAAABs/Zb_Bj_WpubQ/s320/dojor.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5191443367758780066" /&gt;&lt;/a&gt;
Det här är mina nya löparskor. De kostade 1600 kr men jag tror det var värt det. De har lätt pronation/naturlig löpstil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4423860442097132058?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4423860442097132058/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4423860442097132058' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4423860442097132058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4423860442097132058'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/nya-dojor.html' title='Nya dojor'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LBwjU6N1PBQ/SAu2PM7R1qI/AAAAAAAAABs/Zb_Bj_WpubQ/s72-c/dojor.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-6995799851292754534</id><published>2008-04-17T01:10:00.001+02:00</published><updated>2008-04-17T01:10:44.532+02:00</updated><title type='text'>:-)</title><content type='html'>Jag är glad igen! :-) Jag gillar mina kompisar och enda felet är att jag inte ringer dem tillräckligt ofta!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-6995799851292754534?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/6995799851292754534/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=6995799851292754534' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6995799851292754534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/6995799851292754534'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/blog-post.html' title=':-)'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2722226252507957505</id><published>2008-04-17T00:17:00.003+02:00</published><updated>2008-04-17T22:21:52.281+02:00</updated><title type='text'>Mitt sinnestillstånd</title><content type='html'>&lt;p&gt;Idag mår jag sämre än igår. Morsan tycker att jag borde gå och se en psykolog. Det kanske jag borde, eftersom jag mår dåligt idag. Men oftast mår jag inte dåligt. Dags att knäppa en öl till.... Sådär! Ölen förstör sexpacket som jag försöker bygga upp. Men det skiter jag i. Jag sprang 6.3 km i söndags och det är mycket. Jag har klarat mig själv hittills, i 25 år. Idag känner jag saker, det gjorde jag igår också. Kanske har livet omedvetet alltid sugit för mig. Igår sög det inte... Tror jag... KAN det inte ha gjort! Jag var på date med en skön brud, vi hånglade. Det var mysigt.&lt;/p&gt;
&lt;p&gt;Om man har existentiell ångest bör man bli poet. Som Sarte och Gustav Frödig och Nils Ferlin. Jag skulle kunna skriva dikter. Tycker jag synd om mig själv nu? Svår fråga... Varför skulle det vara synd om mig?? Min inre röst säger att jag har mig själv att skylla. Men va fan, att tacka! För jag är grym på programmering, är en utmärkt ingenjör och snart även bra på tjejer. :)&lt;/p&gt;
&lt;p&gt;Bla bla bla&lt;/p&gt;
&lt;p&gt;Egentligen var det mitt eget fel. Knarkbrorsan är ett arsle. Kanske gjorde jag situationen värre genom att ringa. Men jag behövde säga vissa saker. Vissa saker jag undrat. Varför hände X och sedan Y? Vad satt emellan X och Y? Fattar inte övergången det är helt ologiskt ju. Jag är också ologisk ibland. Jag gillar att skriva skit för att få överblick. Jag har rätt att känna mig precis som jag vill. Att må dåligt, att vara lycklig, att vara bedrövad, att vara positiv, att le mot alla, att hälsa på okända grannar. Det är min frihet som människa. Krigiska människor. Psykisk ohälsa men jag har bara tänkt positiva tankar idag. Eller inte. OK nu är jag lugn. Jag mår bra. Familjen är jobbig mot mig. Jag tror att min mor vill mig väl men har stora psykiska problem. Skit samma, dags att titta Star Trek, sova, jobba imorgon.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2722226252507957505?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2722226252507957505/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2722226252507957505' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2722226252507957505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2722226252507957505'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/mitt-sinnestillstnd.html' title='Mitt sinnestillstånd'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-2960653214433174928</id><published>2008-04-12T01:34:00.002+02:00</published><updated>2008-04-12T01:36:32.093+02:00</updated><title type='text'>Mer träning...</title><content type='html'>Igår torsdags sprang jag hela 6 km och rodde 2 km. De här uppdateringarna börjar bli lite tjatiga kanske. Men i framtiden vill jag kanske kunna se min utvecklingskurva. Tyvärr blev det tårta på jobbet, både på torsdagen och fredagen... Och två öl idag. Jaja. Tror iallafall att min form förbättras.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-2960653214433174928?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/2960653214433174928/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=2960653214433174928' title='1 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2960653214433174928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/2960653214433174928'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/mer-trning.html' title='Mer träning...'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-1602057465764554804</id><published>2008-04-09T10:57:00.001+02:00</published><updated>2008-04-09T10:59:32.210+02:00</updated><title type='text'>Det blev bättre igår</title><content type='html'>Sprang 5.5 km och rodde 2 km. Det är en liten förbättring mot förra resultatet. Appropå idrott och så, jag kan bara hålla med &lt;a href = "http://blog.drinsama.de/erich/en/2008040901-boycott-olympia.html"&gt;Erich Schubert&lt;/a&gt; vad gäller OS i Kina.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-1602057465764554804?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/1602057465764554804/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=1602057465764554804' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1602057465764554804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/1602057465764554804'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/det-blev-bttre-igr.html' title='Det blev bättre igår'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-4339042893215823051</id><published>2008-04-03T00:30:00.001+02:00</published><updated>2008-04-03T00:30:54.851+02:00</updated><title type='text'>Slashdot</title><content type='html'>All my Slashdot points just ran out. I feel so empty inside. :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-4339042893215823051?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/4339042893215823051/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=4339042893215823051' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4339042893215823051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/4339042893215823051'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/04/slashdot.html' title='Slashdot'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-8897710138643827633</id><published>2008-03-27T12:01:00.002+01:00</published><updated>2008-03-27T12:03:58.500+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTK'/><title type='text'>Patch advertisement</title><content type='html'>Just advertising the patch at &lt;a href = "http://bugzilla.gnome.org/show_bug.cgi?id=103811"&gt;#103811&lt;/a&gt;. Actually it is an old patch from Søren Sandmann and I have just updated it to work with latest GTK+. It is an old patch but the smooth scrolling feature is so kick ass. It would GNOME look so much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-8897710138643827633?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/8897710138643827633/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=8897710138643827633' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8897710138643827633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/8897710138643827633'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/03/patch-advertisement.html' title='Patch advertisement'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5992983466699165788</id><published>2008-03-25T19:12:00.002+01:00</published><updated>2008-03-25T19:14:40.603+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PYTHON'/><title type='text'>Python-devvers rock!</title><content type='html'>I don't know exactly why, but &lt;a href = "http://mail.python.org/pipermail/python-dev/2008-March/078141.html"&gt;this thread&lt;/a&gt; made me really happy and warm inside. :) The people developing Python are the most pleasant free software developers imaginable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5992983466699165788?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5992983466699165788/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5992983466699165788' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5992983466699165788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5992983466699165788'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/03/python-devvers-rock.html' title='Python-devvers rock!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-5323194780535687750</id><published>2008-03-15T22:26:00.000+01:00</published><updated>2008-03-15T22:27:18.886+01:00</updated><title type='text'>Lördagsunderhålling</title><content type='html'>&lt;p&gt;&lt;a href="http://www.nerdtests.com/nt2ref.html"&gt;
&lt;img src="http://www.nerdtests.com/images/badge/nt2/e68059681e34566e.png" alt="NerdTests.com says I'm a Kinda Dorky High Nerd.  What are you?  Click here!"&gt;
&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Bah!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-5323194780535687750?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/5323194780535687750/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=5323194780535687750' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5323194780535687750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/5323194780535687750'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/03/lrdagsunderhlling.html' title='Lördagsunderhålling'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-3055908637969359056</id><published>2008-03-13T01:23:00.003+01:00</published><updated>2008-03-13T01:32:07.236+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GTKIMAGEVIEW'/><title type='text'>GtkImageView 1.6.1</title><content type='html'>&lt;p&gt;I probably should go to sleep but I have to blog about it. I just released GtkImageView 1.6.1 and PyGtkImageView 1.1.0. It almost was a perfect release except that Epydoc failed to generate a PDF for the Python documentation. I hope Jeffrey is about ready to release the Perl bindings and then hopefully Andreas will also make some nice gtkmm bindings. 
&lt;/p&gt;
&lt;p&gt;All in all, GtkImageView is quite mature now. Time for me to think about the next step... I'd like to replace the GdkPixbuf backend with Cairo. Then I'd make a totally kickass painting application out of it.
&lt;/p&gt;
&lt;p&gt;Good job Björn! Now I'm done.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-3055908637969359056?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/3055908637969359056/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=3055908637969359056' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3055908637969359056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/3055908637969359056'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/03/gtkimageview-161.html' title='GtkImageView 1.6.1'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9299390.post-9045964262549098299</id><published>2008-03-10T23:52:00.002+01:00</published><updated>2008-03-10T23:55:26.063+01:00</updated><title type='text'>Awesome!</title><content type='html'>Jag känner mig ganska nöjd med mig själv. Sprang 3.75 km och rodde 2 km på gymmet idag. När jag spänner magmusklerna kan man precis urskilja början till rutor. Men det är en hel del magfett kvar. Resten fixar jag imorgon eller på tisdag. Helgens diet bestod mest av chips, jordnötsringar och blåbärspaj så jag har en del att ta igen. Fan vad magen blir konstig av chips. Det måste vara något konstigt vegetabiliskt fett i det som jag inte tål.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9299390-9045964262549098299?l=bjourne.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bjourne.blogspot.com/feeds/9045964262549098299/comments/default' title='Kommentarer till inlägget'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9299390&amp;postID=9045964262549098299' title='0 kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/9045964262549098299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9299390/posts/default/9045964262549098299'/><link rel='alternate' type='text/html' href='http://bjourne.blogspot.com/2008/03/awesome.html' title='Awesome!'/><author><name>Bjourne</name><uri>http://www.blogger.com/profile/15645689421894211861</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
