<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <link href="https://friendlybit.com/feed/" rel="self" type="application/atom+xml" />
    <link href="https://friendlybit.com/" rel="alternate" type="text/html" />
    <updated>2012-04-19T13:02:33+02:00</updated>
    <id>https://friendlybit.com</id>
    <title type="html">Friendly Bit - Web development blog</title>
    <subtitle>Friendly Bit is a blog by Emil Stenström, a Swedish web developer that occasionally gets ideas of how to improve the internet.</subtitle>
    
        <entry>
            <title type="html">[The Listserve] I’m sorry to break this to you</title>
            <link href="http://friendlybit.com/other/the-listserve-im-sorry-to-break-this-to-you/" rel="alternate" type="text/html" title="[The Listserve] I’m sorry to break this to you" />
            <published>2012-04-19T13:02:33+02:00</published>
            <updated>2012-04-19T13:02:33+02:00</updated>
            <id>http://friendlybit.com/other/the-listserve-im-sorry-to-break-this-to-you/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I just got the fantastic chance to send an e-mail to ~10.000 people. What would you write if you got that chance? This is what I wrote: &#34;I&#39;m sorry to break...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/the-listserve-im-sorry-to-break-this-to-you/">
                &lt;p&gt;I just got the fantastic chance to send an e-mail to ~10.000 people. What would you write if &lt;a href=&#34;http://thelistserve.com/&#34;&gt;you got that chance&lt;/a&gt;? This is what I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;I&#39;m sorry to break this to you, in an e-mail from a random stranger like this, but it needs to be said: Most of your life won&#39;t be fantastic. I&#39;m not joking. The adventures you&#39;ll tell your children about will be a minuscule part of it. So if you want to avoid the feeling of utter disappointment as you grow older, you need to accept that fact. Sorry.&lt;/p&gt;
&lt;p&gt;This leads us to the insight: You should focus more on the non-fantastic parts. The parts where you eat breakfast, walk to the bus, have a boring day at work, eat your ordinary lunch, shop groceries, and brush your teeth. After all, this is the major part of your life, and neglecting it is a wasted opportunity.&lt;/p&gt;
&lt;p&gt;Here&#39;s the thing: Most of the boring stuff in your life is so dull, that even the tiniest thing can make it seem fun. The tiniest thing. This means the you could make it better with extremely simple means.&lt;/p&gt;
&lt;p&gt;What exactly am I talking about here? Little things. Like these:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Challenges: When brushing your teeth tonight, use your left hand.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Mind games: When you enter work (or school!), imagine the sound &amp;quot;Kabaaaam!&amp;quot; as you enter, as if your presence changed the whole room.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Action: Jump down from the side-walk, instead of just stepping down.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Changes: Buy some fancy tomato sauce tonight, instead of your usual brand.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;More action: Count the number of pink things on your way to work, as if your life depended on it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See? Easy stuff. I really try to live by this &amp;quot;Everyday Action&amp;quot; idea, and I think it works for making the boring parts of life more fun. Because that&#39;s the thing: just because the fantastic moments are few, there&#39;s no reason to just sit there, waiting for the next big thing to swipe you off your feet. Have some fun meanwhile, it&#39;s easy…&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;http://thelistserve.com/&#34;&gt;Sign up for Thelistserve&lt;/a&gt;. I&#39;m guessing there&#39;s more inspiration to come…&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Google support gone wrong</title>
            <link href="http://friendlybit.com/other/google-support-gone-wrong/" rel="alternate" type="text/html" title="Google support gone wrong" />
            <published>2009-10-24T15:00:28+02:00</published>
            <updated>2009-10-24T15:00:28+02:00</updated>
            <id>http://friendlybit.com/other/google-support-gone-wrong/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Google really produces great software. I use many of them: Web Search, Picasa, Reader, Feedburner, Analytics, Images, Groups, Docs, Translate, Code, Chrome,...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/google-support-gone-wrong/">
                &lt;p&gt;Google really produces great software. I use many of them: Web Search, Picasa, Reader, Feedburner, Analytics, Images, Groups, Docs, Translate, Code, Chrome, Maps, Video, Blog Search, Youtube, AJAX API, Webmaster Central, and Site Search.&lt;/p&gt;
&lt;p&gt;Just to name a few :)&lt;/p&gt;
&lt;p&gt;Problem is, with many of the above, if something breaks you&#39;re out of luck. Because it&#39;s &lt;strong&gt;god damn impossible&lt;/strong&gt; to get a hold of someone that you can talk to. Do you reach anyone at Google with your e-mails? Does anyone from Google read your forum posts? Highly unlikely.&lt;/p&gt;
&lt;p&gt;Google is a great example of support gone wrong. I think the explanation is easy: Few of the programmers I know want to deal with support. They want to deal with coding! And since Google is a company of programmers, it doesn&#39;t want to do support.&lt;/p&gt;
&lt;p&gt;Let me tell two stories:&lt;/p&gt;
&lt;h2 id=&#34;feedburner&#34;&gt;Feedburner&lt;a href=&#34;#feedburner&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Feedburner once was a great company, with a simple but thought out service. They gave you subscriber statistics of your RSS feed. You just redirected your feed to them, and made all your subscribers sign up to their generated feed, and they did all the tricky calculations. Simple, efficient.&lt;/p&gt;
&lt;p&gt;As a company Feedburner understood the value of being personal. Messages throughout the site stated &amp;quot;My feeds like a little namespace to call their own&amp;quot;, &amp;quot;Sometimes your feed just wants to look good. Spruce it up in the following ways&amp;quot;, &amp;quot;Oh dear, what kind of trouble?&amp;quot;. Nice personal touch :) Feedburner developers where easy to get in touch with, an e-mail and you had a friendly, knowledgeable person to talk to.&lt;/p&gt;
&lt;p&gt;Then Google came along and bought the whole thing. Everything was rewritten to Google&#39;s platform, domains where switched, and chaos ensued. Of course, during that time, Feedburner&#39;s previous support people totally vanished, and everyone was directed to the Feedburner Status Blog, when you could confirm they where &lt;strong&gt;not&lt;/strong&gt; working on your problem. Just great.&lt;/p&gt;
&lt;p&gt;For three weeks now, my subscriber stats have jumped from 800 to 3000, back an forth, several times per week. Nice, isn&#39;t it?&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-567&#34; title=&#34;feedburner_stats&#34; src=&#34;/files/post-media/feedburner_stats.PNG&#34; alt=&#34;feedburner_stats&#34; width=&#34;519&#34; height=&#34;165&#34;&gt;

&lt;p&gt;Feedburner is apparently broken, and the simple service of delivering feed statistics doesn&#39;t work.&lt;/p&gt;
&lt;p&gt;So I &lt;a href=&#34;http://groups.google.com/group/feedburner-statistics/browse_thread/thread/3989f82b9efc3b26/e0990145155dca15?lnk=gst&amp;amp;q=subscriber&amp;amp;pli=1&#34;&gt;post to their Google Group&lt;/a&gt;, the place where you should ask questions about the service. Three months later, several other users have reported having the same problem, but no reply from a Feedburner developer.&lt;/p&gt;
&lt;p&gt;Now I&#39;m thinking of switching. Anyone have a good alternative ready?&lt;/p&gt;
&lt;h2 id=&#34;google-wave&#34;&gt;Google Wave&lt;a href=&#34;#google-wave&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Services that start at Google are even less likely, compared to acquired services like Feedburner, to have proper support. It&#39;s just not a priority, and there&#39;s far too many interesting programming challenges to deal with users.&lt;/p&gt;
&lt;p&gt;So when Wave gives me an old picasa name as my username (&lt;code&gt;[company name].|place of one of our conferences]@googlewave.com&lt;/code&gt;), I know there&#39;s very little chance that I&#39;ll get help from anywhere. The official channel to ask for help is their support forum, but it doesn&#39;t seem that they reply to issues there. &lt;a href=&#34;http://www.google.com/support/forum/p/wave/thread?tid=6cb8ca45d22453e5&amp;amp;hl=en&#34;&gt;My message there from two weeks ago&lt;/a&gt; stands on it&#39;s own, with no replies.&lt;/p&gt;
&lt;p&gt;It&#39;s the proposed revolution that will replace e-mail, and I can&#39;t use it :(&lt;/p&gt;
&lt;h2 id=&#34;bad-trend&#34;&gt;Bad trend&lt;a href=&#34;#bad-trend&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This trend of Google not offering even basic support from dedicated people is a unfortunate development, that should be taken seriously by executives at Google, and dealt with at a very high level.&lt;/p&gt;
&lt;p&gt;Launching new web services is easy, improving a services based on feedback is much harder. Google has not yet managed to crack that nut.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Voddler – movie streaming for the masses?</title>
            <link href="http://friendlybit.com/other/voddler-movie-streaming-for-the-masses/" rel="alternate" type="text/html" title="Voddler – movie streaming for the masses?" />
            <published>2009-08-31T00:12:46+02:00</published>
            <updated>2009-08-31T00:12:46+02:00</updated>
            <id>http://friendlybit.com/other/voddler-movie-streaming-for-the-masses/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;ve recently managed to get a hold of a beta invite to Voddler, and thought I should tell you a little about my experience of it. But first, big thanks to...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/voddler-movie-streaming-for-the-masses/">
                &lt;p&gt;I&#39;ve recently managed to get a hold of a beta invite to &lt;a href=&#34;http://www.voddler.com/&#34;&gt;Voddler&lt;/a&gt;, and thought I should tell you a little about my experience of it. But first, big thanks to &lt;a href=&#34;http://twitter.com/GunnarBark&#34;&gt;Gunnar Bark&lt;/a&gt; (Tweets in Swedish, follow him!) who tipped me off about a Voddler invitation competition. It was run by Christian Rudolf at &lt;a href=&#34;http://www.mjukvara.se/blogg/&#34;&gt;mjukvara.se&lt;/a&gt; (In Swedish, but definitely something to add to your feeds) who had 15 invites to give away.&lt;/p&gt;
&lt;p&gt;Anyway.&lt;/p&gt;
&lt;p&gt;Two years ago, &lt;a href=&#34;/other/spotify-is-a-lot-like/&#34;&gt;I got to test Spotify&lt;/a&gt;, a music streaming that will soon launch in the US and is heavily anticipated. It completely changed how I listened to music, I deleted all my mp3:s and is now streaming all my music. &lt;a href=&#34;http://www.voddler.com/&#34;&gt;Voddler&lt;/a&gt; is a similar streaming service, but for movies.&lt;/p&gt;
&lt;p&gt;So, what do I think of it?&lt;/p&gt;
&lt;p&gt;First of all, Voddler is in a very early phase of testing. It&#39;s what I would call a &amp;quot;&lt;strong&gt;real beta&lt;/strong&gt;&amp;quot;, where the client crashes frequently, subtitles sometimes lag behind, the interface is tricky to use, and several features just don&#39;t work.&lt;/p&gt;
&lt;p&gt;Thing is, I&#39;m quite certain Voddler will &lt;strong&gt;revolutionize how I watch movies&lt;/strong&gt;, anyway. Because at the core of Voddler is HD-quality streaming, that just works. Believe me, I normally don&#39;t watch that many movies, but have seen &lt;strong&gt;four&lt;/strong&gt;, ****in the last 48 hours. They are just a couple of clicks away, and start in 10 seconds (during which you&#39;ll watch a commercial). Here&#39;s some &lt;a href=&#34;http://pappmaskin.no/2009/07/voddler-screenshots-and-details/&#34;&gt;screenshots&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now. I&#39;m saying that the client is a beta, and that there are serious bugs left, what kind of bugs do I mean?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;About half of the &lt;strong&gt;menu options don&#39;t work&lt;/strong&gt;. &amp;quot;Tv series&amp;quot; lead nowhere, I can&#39;t browse movies by actor, director, studio, and several genres are empty. In my opinion, they would gain a lot by just &lt;strong&gt;removing those options until they lead somewhere&lt;/strong&gt;! This is a no-brainer.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;client freezes and crashes&lt;/strong&gt; regularly, and I have never been able to watch two movies in a row without restarting in between. This of course requires squashing bugs that are left in the code, and &lt;strong&gt;improve the testing procedure&lt;/strong&gt;, so that such bugs never reach production code. Using mozilla-style reporting that allow people to &lt;strong&gt;send in crash reports&lt;/strong&gt; is probably a good idea at this stage. The code is based on &lt;a href=&#34;http://en.wikipedia.org/wiki/XBMC&#34;&gt;XBMC&lt;/a&gt;, and people say stuff like &amp;quot;how could they add that many bugs to a product that good?!&amp;quot;. Voddler, don&#39;t make it that easy to dismiss your hard work!&lt;/li&gt;
&lt;li&gt;Sometimes the &lt;strong&gt;subtitles skip some lines&lt;/strong&gt;. I watched &lt;a href=&#34;http://www.imdb.com/title/tt0325005/&#34;&gt;Antikiller&lt;/a&gt;, a russian action movie, five times important lines were shown only half a second on the screen, making me miss important pieces of the story. I&#39;m not sure if this had something to do with the subtitles for that exact movie, or lag because of Voddler, but I know that it was a crappy first impression of the client. It just has to be fixed.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;support forum is so slow it&#39;s unusable&lt;/strong&gt;. My guess is that it&#39;s on the same network as the movie streaming service, and therefore goes down together with that one. Those two just &lt;strong&gt;have to&lt;/strong&gt; be independent, as you need the forum most when the other is down.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;UI doesn&#39;t work usability-wise&lt;/strong&gt;. First of all, it&#39;s built for television sets, which means that only the keyboard works (arrow keys, space and esc), no mouse support. Several of the menues cycle (when you&#39;re on the end the first item appears again), so you&#39;ll easily loose track of where you are. There are small errors all over the place, things that makes finding and starting movies difficult.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, in summary, the core of Voddler is good, but the interface needs quite a lot of work before it can be released to the public. No matter what, I&#39;ll keep following the development of this product!&lt;/p&gt;
&lt;p&gt;In general, it seems that when you Americans stop us from using your servies (ie. &lt;a href=&#34;http://www.voddler.com&#34;&gt;Hulu&lt;/a&gt;), we Swedes build our own services. First Spotify, now Voddler.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Usability isn’t a crime</title>
            <link href="http://friendlybit.com/other/usability-isnt-a-crime/" rel="alternate" type="text/html" title="Usability isn’t a crime" />
            <published>2009-03-01T21:00:27+01:00</published>
            <updated>2009-03-01T21:00:27+01:00</updated>
            <id>http://friendlybit.com/other/usability-isnt-a-crime/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">The programmers behind The Pirate Bay are getting charged with making it easy to share files over the BitTorrent protocol. Note that it&#39;s not because...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/usability-isnt-a-crime/">
                &lt;p&gt;The programmers behind &lt;a href=&#34;http://thepiratebay.org/&#34;&gt;The Pirate Bay&lt;/a&gt; are getting charged with making it easy to share files over the BitTorrent protocol. Note that it&#39;s not because they&#39;ve done it themselves, but because they have made it easier for others. Never before has &lt;strong&gt;usability been a crime&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;quotthey-have-to-get-paidquot&#34;&gt;&amp;quot;They have to get paid&amp;quot;&lt;a href=&#34;#quotthey-have-to-get-paidquot&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Copyright holders protest and say that they &amp;quot;have to&amp;quot; get paid for what they produce. And that argument seems to work well with people, because hey, why shouldn&#39;t they? (Real non-geeky people, not people like you).&lt;/p&gt;
&lt;p&gt;At the same time, people seem to agree that there are exceptions. It is considered OK to play music to your friends. Or lending a CD to a friend over the weekend. Or letting a colleague listen to some music on your iPod. So sharing with friends is fine. The problem, and the major change that many have missed, is that &lt;strong&gt;people have more friends&lt;/strong&gt; than ever before. All across to globe, all connected via the interwebs. And as the number of friends grow, people tend to shift over, and not consider it OK to share any longer. &amp;quot;Hey, you can&#39;t share with 100 people! The artists have to get paid!&amp;quot;.&lt;/p&gt;
&lt;h2 id=&#34;lets-make-some-laws&#34;&gt;Lets make some laws&lt;a href=&#34;#lets-make-some-laws&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So lets say you want to make laws based on that kind of &amp;quot;reasonable sharing&amp;quot;. How would you do that? Do you &lt;strong&gt;lawfully define what a friend is&lt;/strong&gt;? The number of friends a person is allowed to have? That you have to keep a count of how many times you let someone listen to your iPod? No, it just doesn&#39;t work.&lt;/p&gt;
&lt;p&gt;Perhaps if you put a ban on some types of technology. Technology that makes it easy to share to many? No, because technology moves several magnitudes faster then laws get made, so as soon as you manage to ban one technology, there are five new ones available that circumvent your law. &lt;strong&gt;Allow any form of sharing and technology will generalize it to be used for mass sharing&lt;/strong&gt;. (See OneSwarm for an example).&lt;/p&gt;
&lt;p&gt;What about using technology to block sharing? This is what&#39;s called DRM, Digital Rights Management. Sorry, &lt;a href=&#34;http://www.craphound.com/msftdrm.txt&#34;&gt;it just doesn&#39;t work&lt;/a&gt;. Every DRM system ever built, has been broken. The core problem is: it&#39;s not possible to both block people from sharing music, and let people listen to it.&lt;/p&gt;
&lt;h2 id=&#34;quothmm-then-maybe-allow-no-sharingquot&#34;&gt;&amp;quot;Hmm, then maybe allow no sharing?&amp;quot;&lt;a href=&#34;#quothmm-then-maybe-allow-no-sharingquot&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So what about banning sharing altogether, strange as it may seem? Well, paying customers would hate it. A big part of music is sharing it with people, hoping that they will like what you like. We want to play music at our parties, without requiring everyone to pay a license fee to attend. A complete ban (and extensive citizen surveillance to go with it) would quickly lead to a separation between music that we can share, and music we can&#39;t share.&lt;/p&gt;
&lt;p&gt;This is exactly what has happened with computer programs. There&#39;s now &lt;strong&gt;proprietary and open source&lt;/strong&gt;, &lt;strong&gt;no-share and please-share&lt;/strong&gt;. Open source is growing stronger every day, and lots of companies decide to join the tide, and release their code the same way. This is exactly what will happen to music. Let&#39;s call it the &lt;strong&gt;Open Music&lt;/strong&gt; movement, and lets see how many years the no-share music will last.&lt;/p&gt;
&lt;h2 id=&#34;sharing-is-nothing-strange&#34;&gt;Sharing is nothing strange&lt;a href=&#34;#sharing-is-nothing-strange&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;To explain why allowing people to share isn&#39;t so strange, compare a &lt;strong&gt;famous book author&lt;/strong&gt; to a &lt;strong&gt;famous speaker&lt;/strong&gt;. People tend to think that writers must get paid for what they write, once every time someone reads their text. If lots of people read what they write, they somehow &amp;quot;are entitled to&amp;quot; lots of money.&lt;/p&gt;
&lt;p&gt;Speakers on the other hand, get paid each time they speak. Not each time someone listens to a recording of their speech, or someone else repeats what they say, but based on their own performance, once. They get paid for original performance, not copying. This also means that &lt;strong&gt;speakers want their stuff to be spread as much as possible&lt;/strong&gt;. Because for each copy, there&#39;s a potential new customer waiting to pay them to perform.&lt;/p&gt;
&lt;p&gt;So why is it so strange to see the same model for writers? Writers that get paid for their performance when writing a book, not by the number of people that read it.&lt;/p&gt;
&lt;h2 id=&#34;separate-distribution-and-performance&#34;&gt;Separate distribution and performance&lt;a href=&#34;#separate-distribution-and-performance&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So we have to separate distribution from performance. Distribution is the reason that authors think they need the big companies. How else could they distribute their great performances to a large audience? Well, the internet. Yeye, but how can they distribute it and get paid? That&#39;s where things get interesting, because now we&#39;re talking about &lt;strong&gt;business models&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Media companies have had a distribution monopoly for a very long time. Now the internet threatens that monopoly, by making it easy for anyone to distribute anything, for free. This isn&#39;t going to change, no matter what kinds of laws that get pushed through. So how do you tackle that?&lt;/p&gt;
&lt;p&gt;And that&#39;s the challenge that the record industry should put all their power towards. Think of speakers instead of writers, how do they get money? Think of how the &lt;a href=&#34;http://www.ted.com&#34;&gt;TED conference&lt;/a&gt; makes lots of money off speakers. Think of how you can build technology to compete with BitTorrent, how to get people to pay for performance, not distribution. Think of how you can &lt;strong&gt;improve usability&lt;/strong&gt;, something that&#39;s in a pretty bad state when it comes to BitTorrent.&lt;/p&gt;
&lt;h2 id=&#34;what-model-to-use-is-not-my-problem&#34;&gt;What model to use is not my problem&lt;a href=&#34;#what-model-to-use-is-not-my-problem&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Companies missing proper business models is not my problem. It isn&#39;t, and has never been, a government problem either. There&#39;s no reason to pass integrity limiting laws to help companies survive. There doesn&#39;t need to be completed alternatives waiting. That&#39;s their own problem to solve, and time will tell if they manage the switch before it&#39;s too late or not. I don&#39;t know.&lt;/p&gt;
&lt;p&gt;Meanwhile the internet continues to evolve, while media companies try to fine the programmers behind The Pirate Bay…&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Google is down</title>
            <link href="http://friendlybit.com/other/google-is-down/" rel="alternate" type="text/html" title="Google is down" />
            <published>2009-01-31T16:47:50+01:00</published>
            <updated>2009-01-31T16:47:50+01:00</updated>
            <id>http://friendlybit.com/other/google-is-down/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;d never this that this day would come, but it actually seems that Google has decided to block all sites in their index. Try searching anything, it will be...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/google-is-down/">
                &lt;p&gt;I&#39;d never this that this day would come, but it actually seems that &lt;strong&gt;Google&lt;/strong&gt; has decided to block all sites in their index. Try searching anything, it will be marked as spam. I see the same results in the swedish and english version, in Firefox and in Internet Explorer. &amp;quot;This site may harm your computer&amp;quot;, clicking that link does not seem to be possible, and I&#39;m guessing it&#39;s because it gets millions of hits right now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gmail&lt;/strong&gt; is also marking emails as spam, they are probably using the same system as Google search. The warning message is: This message may not be from whom it claims to be.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://www.techcrunch.com/2009/01/31/google-flags-whole-internet-as-malware/&#34;&gt;&lt;strong&gt;Techcrunch&lt;/strong&gt; found out&lt;/a&gt; just a couple of minutes after this post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Twitter&lt;/strong&gt; is buzzing with people trying to figure out what&#39;s going on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;~40 minutes later&lt;/strong&gt;: Google is working just fine again, no need for panic. They have even written a &lt;a href=&#34;http://googleblog.blogspot.com/2009/01/this-site-may-harm-your-computer-on.html&#34;&gt;blog post on the issue&lt;/a&gt;, explaining what happened. Seems the URL &amp;quot;/&amp;quot; was mistakenly added as a &amp;quot;bad URL&amp;quot; in the spam filters. Human error obviously.&lt;/p&gt;
&lt;p&gt;Heads will be rolling at the Google HQ (or at least someone just got a new nickname).&lt;/p&gt;
&lt;img class=&#34;alignnone size-full wp-image-415&#34; title=&#34;Even google is marked as spam&#34; src=&#34;/files/post-media/google_id_down.png&#34; alt=&#34;Even google is marked as spam&#34; width=&#34;955&#34; height=&#34;841&#34;&gt;


            </content>
        </entry>
    
        <entry>
            <title type="html">Downloading MySQL: How bad can it get?</title>
            <link href="http://friendlybit.com/other/downloading-mysql-how-bad-can-it-get/" rel="alternate" type="text/html" title="Downloading MySQL: How bad can it get?" />
            <published>2009-01-25T03:31:10+01:00</published>
            <updated>2009-01-25T03:31:10+01:00</updated>
            <id>http://friendlybit.com/other/downloading-mysql-how-bad-can-it-get/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">MySQL is quite popular on the web these days. Lots of frameworks have support for it, and some frameworks only support MySQL. So lots of people must be...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/downloading-mysql-how-bad-can-it-get/">
                &lt;p&gt;MySQL is quite popular on the web these days. Lots of frameworks have support for it, and some frameworks &lt;strong&gt;only&lt;/strong&gt; support MySQL. So lots of people must be downloading it right? So what do you do when you have a website where most people will be looking for completing one simple task?&lt;/p&gt;
&lt;p&gt;Well, you make that task really, and I mean &lt;strong&gt;really&lt;/strong&gt;, annoying to complete. No? Yes you do, just look at this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Surf to &lt;a href=&#34;http://mysql.com&#34;&gt;mysql.com&lt;/a&gt;&lt;/strong&gt;. Note the two horizontal navigation menus, one vertical menu, followed by a seven step banner, and five more columns of links. Note how the top navigaton has the same style as the bottom column headers, and that one is clickable, and the other is not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Click &amp;quot;Downloads&amp;quot;&lt;/strong&gt;, which is the second item, in the second horizontal menu, first tab. Watch how the menu changes to highlight that you&#39;re now at the second tab. Watch how the left menu is a list of products, which was the first link in the menu you just clicked, and note that you didn&#39;t click products. You&#39;re given two choices now, denoted by lots and lots of text, instead of two descriptive headers at the bottom of the page: MySQL Community Server, and MySQL Enterprise.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Decide that you want MySQL Community Server&lt;/strong&gt;, ignore the &amp;quot;community downloads&amp;quot;-link that makes you have to choose again, and click the &amp;quot;Download&amp;quot;-button. You&#39;re now on the same page as if you would have clicked &amp;quot;community downloads&amp;quot;, and now are given information about the product you didn&#39;t choose, MySQL Enterprise.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note in the left menu&lt;/strong&gt; that you have somehow chosen version 5.1 of the product, even though you didn&#39;t make that choice, and that you get arguments against using MySQL 4.0 if you go to the  &amp;quot;Important Platform Support Updates&amp;quot; page. You also get a warning that some enterprise support feature won&#39;t work with that version.&lt;/li&gt;
&lt;li&gt;Ignore the &amp;quot;NOTE&amp;quot; about MySQL Cluster community edition, the 5.1 changelist, and the suggestion to use MD5 checksums to verify your download. &lt;strong&gt;Now choose your operating system, processor architecture, and packaging option&lt;/strong&gt; combinations from a list of 33 options. If you&#39;re on windows, and don&#39;t know if your processor architecture is denoted &amp;quot;x86&amp;quot; or &amp;quot;x64&amp;quot;, you just have to guess now.&lt;/li&gt;
&lt;li&gt;You&#39;re now take further down the page, showing you both the option you chose and the next option, you didn&#39;t chose. If you guessed the last time, now is a chance to change your mind. If you&#39;re on windows, &lt;strong&gt;select if you want Windows Essentials, a Zip file/setup.exe combination, or a windows installer&lt;/strong&gt;. Find that it isn&#39;t Windows installer, but Without installer. Read your options again. Get really confused, since essentials and packaging options doesn&#39;t seem to be mutually exclusive.&lt;/li&gt;
&lt;li&gt;Guess that you want the first file, and note how that option isn&#39;t clickable. Instead, review the version number and MD5 checksum, and &lt;strong&gt;click &amp;quot;Pick a mirror&amp;quot;&lt;/strong&gt;. Not because you want to do that, but because there are no other options except a signature link that&#39;s smaller.&lt;/li&gt;
&lt;li&gt;You&#39;re now given the filename of the file you are about to download, and are &lt;strong&gt;asked to register on the site&lt;/strong&gt;. The menu shows you&#39;re on the DevZone. Since you don&#39;t have an account, click &amp;quot;New user&amp;quot;, and fill out the seven required fields, including which company you work for. Did you chose Enterprise after all?&lt;/li&gt;
&lt;li&gt;At the end of the form, note the link &amp;quot;&lt;strong&gt;No thanks, just take me to the downloads!&lt;/strong&gt;&amp;quot; and click it.&lt;/li&gt;
&lt;li&gt;Again, you&#39;re moved further down the page, to a &lt;strong&gt;list of 150 countries&lt;/strong&gt;, denoted by their flag. Read the note that says that this is a list which is sorted by the countries closest to you, and note that it&#39;s completely wrong, and ordered alphabetically.&lt;/li&gt;
&lt;li&gt;Now &lt;strong&gt;select which protocol&lt;/strong&gt; you want to download over, HTTP or FTP. Why on earth would you want to download via FTP from a web browser?! Anyway, select HTTP and you finally get to download the damn file.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;How can downloading a file be this hard? What did they think? Did they not learn anything from the &lt;a href=&#34;http://getfirefox.com/&#34;&gt;firefox&lt;/a&gt; website? One big green button is all you need, is that too hard for you MySQL devs?&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Spotify invite via Twitter or Jaiku</title>
            <link href="http://friendlybit.com/other/spotify-invite-via-twitter-or-jaiku/" rel="alternate" type="text/html" title="Spotify invite via Twitter or Jaiku" />
            <published>2008-12-08T09:00:27+01:00</published>
            <updated>2008-12-08T09:00:27+01:00</updated>
            <id>http://friendlybit.com/other/spotify-invite-via-twitter-or-jaiku/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;ve talked about Spotify before. It&#39;s simply the reason I no longer have any music stored on my computer. You heard it right: No more music stored locally...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/spotify-invite-via-twitter-or-jaiku/">
                &lt;p&gt;I&#39;ve &lt;a href=&#34;/other/spotify-is-a-lot-like/&#34;&gt;talked about Spotify&lt;/a&gt; before. It&#39;s simply the reason I no longer have any music stored on my computer. You heard it right: &lt;strong&gt;No more music stored locally on my computer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;What Spotify did to convince me to take this step was to really start to &lt;strong&gt;compete with file sharing&lt;/strong&gt;. Spotify does just that, but manages to do it in a way that pays artists. This is how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;A massive collection of music&lt;/strong&gt;: They understood that you need to be able to get everything you ever want. That strange song your mother sang to you when you were five? Although P2P networks might have forgot about it, Spotify has not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speed&lt;/strong&gt;: If you get a music urge you shouldn&#39;t have to wait for it to download. It needs to start right away. In Spotify, you search for the song you want, and click it. The music starts to play instantly. Yep, it should be that easy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pays artists&lt;/strong&gt;: Everyone downloading copyrighted music from artists that they like, have felt that little sting of &amp;quot;&lt;em&gt;I should really have paid for this&lt;/em&gt;&amp;quot;. Good artists, that make music I really like, should be paid, it&#39;s as easy as that. Spotify does this.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, how do you get ahold of a Spotify account? Well, you get an invite from someone that has one. That one is me, and I have &lt;del&gt;20 invites&lt;/del&gt; &lt;del&gt;8 invites&lt;/del&gt; &lt;strong&gt;No invites left&lt;/strong&gt; to share.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sorry people, I have no more invites left, thanks for playing!&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you want an invite, just &lt;strong&gt;post a message on &lt;a href=&#34;http://twitter.com&#34;&gt;twitter&lt;/a&gt; or jaiku&lt;/strong&gt;, and say you want one, and &lt;strong&gt;comment here with your e-mail and twitter/jaiku-link.&lt;/strong&gt; I will give the first 20 an invite through the mail supplied in the comments. My nick is EmilStenstrom.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let the microblogging spotify madness begin!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Templated User Controls in ASP.NET</title>
            <link href="http://friendlybit.com/other/templated-user-controls-in-aspnet/" rel="alternate" type="text/html" title="Templated User Controls in ASP.NET" />
            <published>2008-11-18T01:28:43+01:00</published>
            <updated>2008-11-18T01:28:43+01:00</updated>
            <id>http://friendlybit.com/other/templated-user-controls-in-aspnet/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Good design repeats itself. It works hard to convey a whole, a feeling of consistency. Once you understand a part of such a design, you know your way around...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/templated-user-controls-in-aspnet/">
                &lt;p&gt;Good design repeats itself. It works hard to convey a whole, a feeling of consistency. Once you understand a part of such a design, you know your way around all of it. This is often done by repetition, using the same elements, colors, styles, positioning, and so on. This is a good thing.&lt;/p&gt;
&lt;p&gt;Good code &lt;a href=&#34;http://en.wikipedia.org/wiki/Don%27t_repeat_yourself&#34;&gt;never repeats itself&lt;/a&gt;. The number of techniques to avoid it are numerous, and all new languages compete in trying to remove as much repetition as possible (Especially the dynamic ones).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Good design repeats itself, good code does not.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With interface development, you &lt;strong&gt;face the conflict&lt;/strong&gt; above over and over again. You get a design that (rightly) reuses the same concepts over and over, and you need to implement them in code that makes you write the same logic only once. This same time both when writing the code and later when fixing bugs in it, and deep inside, all programmers know that it&#39;s the correct way to do things.&lt;/p&gt;
&lt;p&gt;I&#39;m currently working in a .NET project (EPiServer CMS 5), and is faced with a design that uses the same kind of boxes all over the site. The boxes only differ by color and content, so things like shadows and rounded corners are clear repetition that I want to do only once. I&#39;ll do the shadows and corners with CSS, but for that I need a couple of wrapper divs. Divs that I only want to specify once, and then reuse.&lt;/p&gt;
&lt;p&gt;The prequisites are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I want a &lt;strong&gt;flexible&lt;/strong&gt; solution, so I&#39;m not tied to a specific HTML structure (number of divs, or even if I use the div tag or not).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No HTML in properties&lt;/strong&gt; that get sent to user-controls&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No HTML in code-behind&lt;/strong&gt; (a common way in .NET to split logic (code-behind) and templates (ASP.NET and HTML))&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;What I came up with was &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/36574bf6.aspx&#34;&gt;templated user controls&lt;/a&gt;. They provide a way to write controls that wrap any other controls you may have, and add content around them. And it&#39;s easy to write and user. This is how the one I wrote is used:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;ASPX-CS&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;MyProject:Box&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;runat=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;Contents&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Random&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;header...&lt;span class=&#34;nt&#34;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;asp:Repeater&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;runat=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;...&lt;span class=&#34;nt&#34;&gt;&amp;lt;/asp:Repeater&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;...
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/Contents&amp;gt;&lt;/span&gt;
&lt;span class=&#34;nt&#34;&gt;&amp;lt;/MyProject:Box&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It simply wraps anything inside it (in this case a heading tag and a asp repeater), and lets me do whatever I want with them. In my case, I wanted to add some generic HTML around lots of different content, but you could do anything you wanted.&lt;/p&gt;
&lt;p&gt;This is how the above was implemented. First the code-behind:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;CSHARP&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;System.Web.UI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;MyProject.templates.units&lt;/span&gt;
&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[ParseChildren(true)]&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;partial&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;Box&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Web&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UserControl&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;private&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ITemplate&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[TemplateContainer(typeof(TemplateControl))]&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[PersistenceMode(PersistenceMode.InnerProperty)]&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[TemplateInstance(TemplateInstance.Single)]&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;public&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ITemplate&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Contents&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;value&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;Page_Init&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;            &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;!=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;                &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;InstantiateIn&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PlaceHolder1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;… and then the &amp;quot;code-front&amp;quot;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;ASPX-CS&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;%@&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Control&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Language&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;C#&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AutoEventWireup&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CodeBehind&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;Box.ascx.cs&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Inherits&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;MyProject.templates.units.Box&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;%&amp;gt;&lt;/span&gt;
&lt;span class=&#34;nt&#34;&gt;&amp;lt;div&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;class=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;box&amp;quot;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;div&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;class=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;boxwrapper&amp;quot;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;asp:Placeholder&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;runat=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;na&#34;&gt;ID=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;PlaceHolder1&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&#34;nt&#34;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;I think this is a &lt;strong&gt;really useful&lt;/strong&gt; way to write user controls, especially for those of you that work as interface developers in a .NET world. Asking the people around me I found that quite a few didn&#39;t know how templated user controls worked, so I hope I will be of use to some of you out there. Happy coding!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Django – the fun framework (presentation)</title>
            <link href="http://friendlybit.com/other/django-the-fun-framework-presentation/" rel="alternate" type="text/html" title="Django – the fun framework (presentation)" />
            <published>2008-09-26T17:07:14+02:00</published>
            <updated>2008-09-26T17:07:14+02:00</updated>
            <id>http://friendlybit.com/other/django-the-fun-framework-presentation/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Yesterday I attended the excellent Geek Meet hosted by Robert Nyman at the Creuna office. I held a presentation about the Django web framework, and took...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/django-the-fun-framework-presentation/">
                &lt;p&gt;Yesterday I attended the excellent &lt;a href=&#34;http://robertnyman.com/geekmeet/&#34;&gt;Geek Meet&lt;/a&gt; hosted by Robert Nyman at the Creuna office. I held a presentation about the Django web framework, and took some time today to add some comments in english and make a PDF-file of the presentation. Would you like to know why Django is more fun than what you&#39;re using right now?&lt;/p&gt;
&lt;p&gt;So go ahead and have a look at the presentation: &lt;strong&gt;&lt;a href=&#34;/files/Django%20-%20the%20fun%20framework.pdf&#34; data-no-instant&gt;Django - the fun framework&lt;/a&gt;&lt;/strong&gt; (11 Mb, PDF with english comments)&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Ten commandments of update services</title>
            <link href="http://friendlybit.com/other/ten-commandments-of-update-services/" rel="alternate" type="text/html" title="Ten commandments of update services" />
            <published>2008-09-21T23:10:25+02:00</published>
            <updated>2008-09-21T23:10:25+02:00</updated>
            <id>http://friendlybit.com/other/ten-commandments-of-update-services/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;m getting increasingly annoyed with update services shipped with popular applications. It&#39;s looks like it&#39;s getting worse and worse, and I think someone...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/ten-commandments-of-update-services/">
                &lt;p&gt;I&#39;m getting increasingly annoyed with update services shipped with popular applications. It&#39;s looks like it&#39;s getting worse and worse, and I think someone should stand up and say &lt;strong&gt;enough is enough&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#adobe&#34;&gt;Adobe Update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#google&#34;&gt;Google Update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#microsoft&#34;&gt;Microsoft Update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#ten&#34;&gt;Ten Commandments of Update Services&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Let me start by showing when updates go wrong:&lt;/p&gt;
&lt;h2 id=&#34;adobe&#34;&gt;Adobe Update&lt;a href=&#34;#adobe&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img class=&#34;secondary&#34; src=&#34;/files/post-media/adobe_logo.jpg&#34; alt=&#34;&#34; /&gt;I start Adobe Fireworks because I want to resize an image I have. After it has started and the image has loaded the update service prompts me that there are new updates available. For what? It doesn&#39;t say, so I click more info and get a list of things. Strange: &lt;strong&gt;None of them seem related to Fireworks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The update starts, and tells me I &lt;strong&gt;have to close Fireworks&lt;/strong&gt; to complete it. Bah, I just started it! I&#39;m trying to resize an image here, remember? But Ok, this time. Next it tells me to close Firefox. What?! All my precious tabs I&#39;ve saved for later reading! Bitches.&lt;/p&gt;
&lt;p&gt;The download begins, and the &lt;strong&gt;progress window takes focus&lt;/strong&gt; over the other stuff I&#39;m doing while not looking at the progress bar. *Repeated clicking to hide the window*. Then when it&#39;s done it takes focus again, and asks me to click the only button available. GAH?!&lt;/p&gt;
&lt;p&gt;Ok, done. Why was I starting Fireworks again? And hey, what&#39;s those &lt;strong&gt;new PDF icons&lt;/strong&gt; doing in my Links toolbar in Internet Explorer?&lt;/p&gt;
&lt;h2 id=&#34;google&#34;&gt;Google Update&lt;a href=&#34;#google&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img class=&#34;secondary&#34; src=&#34;/files/post-media/google-logo.jpg&#34; alt=&#34;&#34; /&gt;Oh, a new web browser: Google Chrome, I surely want to try it out. *Couple of hours of fiddling*. Nah, I still like Firefox more, I&#39;ll go back to using that one. &lt;strong&gt;Wait, what&#39;s that GoogleUpdate.exe process doing there&lt;/strong&gt;? I&#39;ll try closing Chrome. Nope, still there. Ok, I&#39;ll force it to close. Hmm, it restarts after a while. Ok, must be some kind of process that starts with Windows. Ah, registry setting, lets remove that one. *Reboot*. Still there?! Ah, they also installed it as a service. Lets remove that too. Finally!&lt;/p&gt;
&lt;p&gt;What&#39;s that? A new version of Google Gears! *Installing*. Hmm… What&#39;s that GoogleUpdate.exe process doing there? GAH! What were you thinking Google?!&lt;/p&gt;
&lt;h2 id=&#34;microsoft&#34;&gt;Microsoft update&lt;a href=&#34;#microsoft&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;img class=&#34;secondary&#34; src=&#34;/files/post-media/logo_microsoft_small.gif&#34; alt=&#34;&#34; /&gt;I really should make sure my OS is up to date. Lets go to the windowsupdate website. What? I need to run IE5 or later? Ah, no Firefox support, damn it. Lets switch browser. Ok. Install validation thingie? Ehm… I guess I have no choice. *Waiting*. Ok, now let&#39;s see if there&#39;s some updates, Express or Custom? Custom, of course. *Waiting quite a long time*. Why are you making me look at a progress bar? Ok, no OS upgrades, but there&#39;s some update to Windows Media player. Yeye, I guess it couldn&#39;t do any harm (not that I use that one). Trust ActiveX thingie? Yeye, I know what I&#39;m doing. *Waiting some more, with focus stealing*. &amp;quot;Please restart your computer to complete the installation&amp;quot;. Sigh.&lt;/p&gt;
&lt;p&gt;So why don&#39;t I just use Windows Update program instead? Well, there&#39;s a window that pops up every 5 minutes that remind you that you have to restart the computer. Do you know how annoying that one is? No, it&#39;s MORE annoying than that.&lt;/p&gt;
&lt;h2 id=&#34;ten&#34;&gt;Ten Commandments of Update Services&lt;a href=&#34;#ten&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So I hope that&#39;s enough evidence that big companies have no idea how do conduct a decent update of their own program. So let me offer some (free of charge) advise:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If your update is web based, &lt;strong&gt;let me use any modern browser I want&lt;/strong&gt;. Don&#39;t start by getting me annoyed.&lt;/li&gt;
&lt;li&gt;Check for updates &lt;strong&gt;right before the program starts&lt;/strong&gt;. I know that you want me to close the app while it&#39;s being updated, but why on earth do you let me start it then? Lets keep it simple, update before the program starts, and resume starting the app when you&#39;re done.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don&#39;t leave processes running in the background&lt;/strong&gt; when I close the program. When I close your program, I don&#39;t care about you, or any updates to your program.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Only update the current program&lt;/strong&gt;, not bundled ones. I know you want me to have the latest versions of all your programs, but odds are I don&#39;t even use them. Update those programs when I start them, not now.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Show me what gets updated&lt;/strong&gt;, and if possible link to a change log. If you want me to download 70 Mb you need to first talk me into why I need it. You may want to hide detailed info for inexperienced users, but could you please then remember that I&#39;m not one of those?&lt;/li&gt;
&lt;li&gt;If it&#39;s a tiny update (less than 1 Mb), you can just &lt;strong&gt;go ahead and install right away&lt;/strong&gt;. You don&#39;t even have to prompt me.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Download and install in the background&lt;/strong&gt;, without stealing my focus. If you&#39;re shipping a big pile of fixes (ie. the version I bought was not done), you have to let me do other stuff while you update. Like surfing the web. It&#39;s not Ok it require that I close unrelated programs, sorry.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never ever touch my browser bookmarks&lt;/strong&gt;. Never add things to the quicklaunch bar. Never make things start automatically unless I&#39;ve told you that&#39;s what I want (why do most people have a Quicktime icon in their systray?). The only way of getting into my bookmarks or my quicklaunch bar is writing a really good application. You can&#39;t force me to like you. The opposite works well though.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never require me to restart the computer&lt;/strong&gt;. There&#39;s only one exception for when you may: when I&#39;m updating the operating system. No excuses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;When you&#39;re done&lt;/strong&gt;, just start the program. I don&#39;t want to confirm anything, I want to get to work using your app.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;(Bonus point from &lt;a href=&#34;#comment-31047&#34;&gt;James Socol&lt;/a&gt; in the comments: 11. &lt;strong&gt;Use incremental downloads&lt;/strong&gt;, so I don&#39;t have to download stuff I already have installed.)&lt;/p&gt;
&lt;p&gt;If you are a software company, and can&#39;t manage the above, just do it the old fashion way: let me manually download a file from your website. That will annoy me much less than a bad automatic process. Or if you want things to be really convenient: &lt;strong&gt;write a web application instead&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Now get to work. I&#39;ve had it.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">7 silliest W3C specs ever published</title>
            <link href="http://friendlybit.com/other/7-silliest-w3c-specs-ever-published/" rel="alternate" type="text/html" title="7 silliest W3C specs ever published" />
            <published>2008-08-13T22:20:52+02:00</published>
            <updated>2008-08-13T22:20:52+02:00</updated>
            <id>http://friendlybit.com/other/7-silliest-w3c-specs-ever-published/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">W3C is producing lots and lots of good specifications and we seriously have their joined effort to thank for a lot of today&#39;s web. But everything released...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/7-silliest-w3c-specs-ever-published/">
                &lt;p&gt;W3C is producing lots and lots of good specifications and we seriously have their joined effort to thank for a lot of today&#39;s web. But everything released by them isn&#39;t all nice. I&#39;ve digged deep into obscure search results to find, that&#39;s right, the &lt;strong&gt;silliest specifications ever&lt;/strong&gt;. *Drumroll*.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/NOTE-HTMLplusTIME&#34;&gt;HTML+TIME&lt;/a&gt;: Why not add timers to HTML? Didn&#39;t you always want to only display that div only the first 4 seconds after load. Could this be combined with the blink tag somehow?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/WD-wwwicn.html&#34;&gt;Predefined icon entities&lt;/a&gt;: No more images needed! Instead, let browsers implement whatever icons they want and just use them by typing &amp;amp;calculator;, &amp;amp;fax; or &amp;amp;www;. I love the example icon for &amp;amp;gopher;, is that an orc?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/curie/&#34;&gt;CURIE Syntax&lt;/a&gt;: There are also huge specifications for nothing. What about a 2000+ word specifcation for the syntax: &amp;quot;charcters:characters&amp;quot;? This is what happens when you put too many &amp;quot;scientists&amp;quot; in one room.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/1999/WD-Micropayment-Markup-19990825/&#34;&gt;Micropayments in HTML&lt;/a&gt;: If you&#39;re going to make micropayments on the web, first build your payment system, then add lots of attributes you don&#39;t need. Then make sure you pick a short code for your payment system, and get that one in the spec. Ehmm. No.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/WD-jepi-uppflow-970106&#34;&gt;Selecting Payment Over HTTP&lt;/a&gt;: If you are into paying, but don&#39;t really like interfaces, this one is for you. You can&#39;t pay through it though, just select how to pay. Makes sense, doesn&#39;t it?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/2008/WD-css3-marquee-20080801/&#34;&gt;CSS Marquee Module Level 3&lt;/a&gt;: Remember the &lt;code&gt;marquee&lt;/code&gt; element? What if you could implement that on any element, using only CSS3? Isn&#39;t marquee behavior? I guess not. &amp;quot;The deadline for comments is 1 September 2008&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.w3.org/TR/2008/WD-wai-age-literature-20080514/&#34;&gt;Accessibility for old people&lt;/a&gt;: Very strange. This isn&#39;t a specification but a literature review. Could this be the first step for W3C to go into book recommendations? I love the chapter of how to define an old person.&lt;/p&gt;
&lt;p&gt;That&#39;s all I can find. Now I leave it open to you to fill in with the comments about how useful they could be, and how SOAP should be in the list. Over to you, dear audience.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Google Reader subscriptions on a WordPress Page</title>
            <link href="http://friendlybit.com/other/google-reader-subscriptions-on-a-wordpress-page/" rel="alternate" type="text/html" title="Google Reader subscriptions on a WordPress Page" />
            <published>2008-08-09T17:09:43+02:00</published>
            <updated>2008-08-09T17:09:43+02:00</updated>
            <id>http://friendlybit.com/other/google-reader-subscriptions-on-a-wordpress-page/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Instead of posting new lists of blogs I follow over and over again I thought I&#39;d make a permanent place for them. So I just exported all of the blogs I...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/google-reader-subscriptions-on-a-wordpress-page/">
                &lt;p&gt;Instead of posting new lists of blogs I follow over and over again I thought I&#39;d make a permanent place for them. So I just &lt;strong&gt;exported all of the blogs I follow&lt;/strong&gt; from Google Reader (Settings -&amp;gt; Import/Export) and &lt;strong&gt;imported them to WordPress&lt;/strong&gt; (Write -&amp;gt; Links -&amp;gt; Import Links (in the sidebar)). &lt;a href=&#34;http://en.wikipedia.org/wiki/OPML&#34;&gt;OPML&lt;/a&gt; is a great format!&lt;/p&gt;
&lt;p&gt;Then I created a &lt;a href=&#34;http://codex.wordpress.org/Pages#Page_Templates&#34;&gt;WordPress Page template&lt;/a&gt; that simply printed the content of that page &lt;strong&gt;followed by all my imported links&lt;/strong&gt;. This following is the code needed (as a file called links.php in your template directory):&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;PHP&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&#34;c1&#34;&gt;// Template Name: Links&lt;/span&gt;
&lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;get_header&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;&amp;lt;div id=&amp;quot;content&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;have_posts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;the_post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;    &amp;lt;div class=&amp;quot;post&amp;quot; id=&amp;quot;post-&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;the_ID&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;      &amp;lt;h1&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;the_title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;      &amp;lt;div class=&amp;quot;entry&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;the_content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;        &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;wp_list_bookmarks&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;      &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;endwhile&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;x&#34;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;get_sidebar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;span class=&#34;cp&#34;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;get_footer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;?&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Now just create a new page, and select the Page Template &amp;quot;Links&amp;quot; at the bottom. Fill out a page title and an introduction text and press Save. Voilá!&lt;/p&gt;
&lt;p&gt;The final touches was adding two new categories, &amp;quot;Blogs I follow&amp;quot; in English and Swedish, moving all links to one of those, and removing everything not related to web development or media. Some bastards also both have great blogs and are my friends, so I removed some duplicates too.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Avlyssna befolkningen (Swedish)</title>
            <link href="http://friendlybit.com/other/avlyssna-befolkningen-swedish/" rel="alternate" type="text/html" title="Avlyssna befolkningen (Swedish)" />
            <published>2008-06-13T11:51:29+02:00</published>
            <updated>2008-06-13T11:51:29+02:00</updated>
            <id>http://friendlybit.com/other/avlyssna-befolkningen-swedish/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">(Eng: Sorry for writing this in swedish. Sweden is about to pass a law allowing the government to wiretap its citizens and I need to add a few things to the...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/avlyssna-befolkningen-swedish/">
                &lt;p&gt;(Eng: Sorry for writing this in swedish. Sweden is about to pass a law allowing the government to wiretap its citizens and I need to add a few things to the debate. The rest is in Swedish)&lt;/p&gt;
&lt;p&gt;Sverige kommer på onsdag högst troligen rösta igenom ett lagändring om att FRA ska få avlyssna internet, istället för som tidigare skett radio och satellit. Det verkar vara mycket förvirring och prestige inblandad och jag tänkte göra ett försök att vidga debatten något.&lt;/p&gt;
&lt;p&gt;Många som är för FRA-lagen påpekar att detta &amp;quot;egentligen inte är något nytt&amp;quot;. Dom bara byter medium från radio till kabel. Är inte det fullständigt vettigt att även FRA ska få hänga med i teknikutvecklingen? Nej, för det finns en viktig skillnad: Vanligt folk använde inte radiovågor för att kommunicera tidigare, men dom använder internet för att kommunicera nu. Detta gör att FRA kommer att för möjlighet att avlyssna &lt;strong&gt;FLERA&lt;/strong&gt; än tidigare, inte lika många. Gå inte på det argumentet, detta är inte bara en teknikuppdatering, det är en &lt;strong&gt;utökning av avlyssningen&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Politiker som är för lagen tänker också på FRA som en enhet istället för en grupp av enskilda människor. Skulle inte även du &amp;quot;bara prova&amp;quot; några sökningar och du satt där med en sökfält framför dig? Det är &lt;strong&gt;enskilda människor&lt;/strong&gt; detta handlar om, inte en hel enhet som behöver göra fel, för att alla skyddsmekanismer som satts upp ska flyga åt fanders. Enskilda är det största hotet, men även FRA som enhet har gjort bort sig grundligt genom att medvetet bryta mot lagen tidigare. &lt;strong&gt;Systemet kommer med all säkerhet att missbrukas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Många pratar också om den personliga integriteten, och det med all rätt, personlig integritet är viktigt. Vad väldigt få pratar om är &lt;strong&gt;företagskommunikation&lt;/strong&gt;. Jag jobbar själv på ett internationellt konsultbolag som jobbar mycket mot svenska myndigheter. Vi skulle mycket väl kunna ha vår mailserver i Frankrike, där huvudkontoret ligger, vilket skulle göra att all vår kommunikation avlyssnas. Kommunikation som t.ex. skulle kunna handla om precis den myndighet som avlyssnar oss. Det håller inte.&lt;/p&gt;
&lt;p&gt;FRA-lagen är en otroligt dum idé, som utökar möjligheterna för avlyssning av medborgarna, som bygger på att enskildas nyfikenhet inte blir för stor, och som inte bara påverkar den personliga integriteten utan också kan läcka personlig information om svenska företag.&lt;/p&gt;
&lt;p&gt;Hjälp till, gör allt du kan för att övertyga dina politiker att rösta nej. &lt;a href=&#34;http://knuff.se/&#34;&gt;Knuffs framsida&lt;/a&gt; gör det väldigt tydligt vad bloggsfären tycker, vad tycker du?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Uppdaterat&lt;/strong&gt;: Lagen gick igenom. Från årsskiftet kommer all datatrafik att avlyssnas, och en del även sparas. Vilket totalt misslyckande. Jag är grymt besviken.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">MSN blocks YouTube links</title>
            <link href="http://friendlybit.com/other/msn-blocks-youtube-links/" rel="alternate" type="text/html" title="MSN blocks YouTube links" />
            <published>2008-05-10T20:38:47+02:00</published>
            <updated>2008-05-10T20:38:47+02:00</updated>
            <id>http://friendlybit.com/other/msn-blocks-youtube-links/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;m not sure if there&#39;s some kind of big power struggle going on right now, but obviously MSN is blocking strings containing &#34;www.youtube.com&#34;. It started...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/msn-blocks-youtube-links/">
                &lt;p&gt;I&#39;m not sure if there&#39;s some kind of big power struggle going on right now, but obviously MSN is blocking strings containing &amp;quot;www.youtube.com&amp;quot;.&lt;/p&gt;
&lt;p&gt;It started by me finding a funny youtube video (who didn&#39;t?), and tried sending it to a friend. Message back was that &amp;quot;Message could not be sent because of a network error&amp;quot;. Some Googling brought up &lt;a href=&#34;http://www.istartedsomething.com/20080510/windows-live-messenger-blocks-wwwyoutubecom/&#34;&gt;other people with the same problem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Is this the first of a series of power struggles on the big Web 2.0 sites? Will Facebook block out LinkedIn links. Will Google (the owners of youtube) not link to Microsoft content? Interesting times we live in, indeed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Seems it works again, where they trying to block some virus? Is blocking a major site the best way to do that? Was there really a virus or where they merely displaying their power? Will we get to know more? Not likely.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Top 3 articles of friendlybit.com (according to me)</title>
            <link href="http://friendlybit.com/other/top-3-articles-of-friendlybitcom-according-to-me/" rel="alternate" type="text/html" title="Top 3 articles of friendlybit.com (according to me)" />
            <published>2008-04-11T20:29:14+02:00</published>
            <updated>2008-04-11T20:29:14+02:00</updated>
            <id>http://friendlybit.com/other/top-3-articles-of-friendlybitcom-according-to-me/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Robert taunted me cause my blog was to inactive, so I thought I&#39;d write something. As you might imagine, pushing me terribly to be creative like that isn&#39;t...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/top-3-articles-of-friendlybitcom-according-to-me/">
                &lt;p&gt;&lt;a href=&#34;http://www.robertnyman.com/&#34;&gt;Robert&lt;/a&gt; taunted me cause my blog was to inactive, so I thought I&#39;d write something. As you might imagine, pushing me terribly to be creative like that isn&#39;t a good way to get good posts up, so I thought I&#39;d just point to some existing articles instead. The selection is not based on popularity, ratings, number of visitors, comments, or anything like that. It&#39;s based on me. :)&lt;/p&gt;
&lt;p&gt;Now. First up is &lt;strong&gt;my post on &lt;a href=&#34;/css/dear-justin-timberlake/&#34;&gt;Justin Timberlake&lt;/a&gt;&lt;/strong&gt;. Surprised? There&#39;s lots of good things to say about that one. It was very fun to write, I love writing letters to totally unlikely people, and that was what I did. Secondly, there&#39;s a couple of great comments on that post from people that seriously thought there was a chance that Justin would read it. Isn&#39;t that like, desperate? Damn right it is. Thirdly, a couple of weeks after that post &lt;a href=&#34;http://www.robertnyman.com/&#34;&gt;Robert&lt;/a&gt; pulled me aside for a chat: &amp;quot;Don&#39;t get upset by this, cause I just want to ask something&amp;quot;. &amp;quot;Yes?&amp;quot;, I replied, seeing he was somewhat uncomfortable. &amp;quot;Well… Are you gay? I mean that post about Justin some time ago…&amp;quot;. What?! Can&#39;t you declare your love to a man nowadays without being called gay?! My god! :) (Update: Girlfriend is telling me to point people to the disclaimer below that post. Yeye.)&lt;/p&gt;
&lt;p&gt;Number two of my favorite posts is &lt;strong&gt;my little &lt;a href=&#34;/html/web-standards-hero-episode-1/&#34;&gt;webstandards hero&lt;/a&gt; thingie&lt;/strong&gt;. I just got bored of the regular blog format and decided I should try something else. A comic book sounded like a good plan and I just started writing, making up little twists along the way. I like the end result, but I didn&#39;t get that many readers (according to stats). Perhaps the webdev world wasn&#39;t ready for plastic figures yet. Sad…&lt;/p&gt;
&lt;p&gt;Third, and last, on this toplist is &lt;strong&gt;of course &lt;a href=&#34;/css/real-hackers-dont-use-css/&#34;&gt;Real hackers don&#39;t use CSS&lt;/a&gt;&lt;/strong&gt;. Again, I&#39;m experimenting with style, and that one actually worked :) It still gets lots of visitors, and hopefully some nice laughs from people. My faviourite response was people from reddit, that were &lt;strong&gt;really&lt;/strong&gt; upset that I used the term hackers like I did. How could I abuse it like that? How could I smear the fine shimmer of gold that emits from someone that can write Perl really well? Because I&#39;m a mean evil person. Of course.&lt;/p&gt;
&lt;p&gt;What can I learn from my own favorite posts? That I should experiment with style more. You&#39;ll see more of that, I can assure you!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Fixing Sharepoint 2007</title>
            <link href="http://friendlybit.com/other/fixing-sharepoint-2007/" rel="alternate" type="text/html" title="Fixing Sharepoint 2007" />
            <published>2008-03-27T23:22:53+01:00</published>
            <updated>2008-03-27T23:22:53+01:00</updated>
            <id>http://friendlybit.com/other/fixing-sharepoint-2007/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I&#39;m sorry for all the Sharepoint 2007 posts lately, if you&#39;re not interested, just skip to the next post :). Anyway. The Sharepoint team recently announced...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/fixing-sharepoint-2007/">
                &lt;p&gt;I&#39;m sorry for all the Sharepoint 2007 posts lately, if you&#39;re not interested, just skip to the next post :). Anyway. The Sharepoint team recently announced further support of an addon called Accessibility Kit for SharePoint (abbreviated AKS) in a blog post about the future of Sharepoint on their official blog.&lt;/p&gt;
&lt;p&gt;I thought I&#39;d comment on the future plans, and get a bit more constructive and point to things that are rather easy to fix. Perhaps I can affect what gets focus in the next version? With a release cycle of 30-34 months (!), any changes won&#39;t get implemented anytime soon, but I guess getting on the right track is a first step.&lt;/p&gt;
&lt;h2 id=&#34;shift-focus-from-accessibility-to-customization&#34;&gt;Shift focus from accessibility to customization&lt;a href=&#34;#shift-focus-from-accessibility-to-customization&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First of all, I&#39;ve only briefly touched accessibility on my two posts about Sharepoint (&lt;a href=&#34;/html/default-html-in-sharepoint-2007/&#34;&gt;Default HTML in Sharepoint 2007&lt;/a&gt; and &lt;a href=&#34;/css/sharepoint-2007-from-an-interface-developers-view&#34;&gt;Sharepoint 2007 from an interface developer’s view&lt;/a&gt;. But to me, accessibility is the second step, being able to customize things, is the first. Let me repeat that &lt;strong&gt;I care more about being able to customize the Sharepoint interface, than the default interface being accessible&lt;/strong&gt;. Right now, large parts of the interface are locked down, deep inside of the Sharepoint core. If I could customize things, I could correct the accessibility issues myself. I really think the focus should be customization first, and accessibility second.&lt;/p&gt;
&lt;h2 id=&#34;but-its-possible-to-customize-some-parts&#34;&gt;But it&#39;s possible to customize some parts!&lt;a href=&#34;#but-its-possible-to-customize-some-parts&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Lots of people have commented on my previous posts saying that it in fact &lt;em&gt;is possible&lt;/em&gt; to get Sharepoint to produce valid HTML. It&#39;s possible to some extent, by rewriting all masterpages and many default controls that come with Sharepoint. Of course you can build a good interface if you only use Sharepoint for storage, and build the interface from scratch. But that&#39;s skipping a lot of the things you bought Sharepoint for, all the existing components!&lt;/p&gt;
&lt;p&gt;And you still can&#39;t change the collaborative parts. And as soon as you want to add content to the site or change settings, you&#39;re back in lock-in, no control, Sharepoint interface land.&lt;/p&gt;
&lt;h2 id=&#34;deliver-as-a-service-pack-not-an-addon&#34;&gt;Deliver as a service pack, not an addon&lt;a href=&#34;#deliver-as-a-service-pack-not-an-addon&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So, back to the announcement. I think it&#39;s a shame that AKS is delivered as an add-on, and not as a service pack to Sharepoint. Accessibility is a user concern (they are the ones that need stuff done), not one that developers desperately need. So the focus should be to push this one to as many users as possible, and make it very easy to enable it for developers. A service pack would accomplish that much more effectively than an addon does. Most developers won&#39;t even know the addon exists!&lt;/p&gt;
&lt;h2 id=&#34;control-adapters-are-not-the-best-solution&#34;&gt;Control adapters are not the best solution&lt;a href=&#34;#control-adapters-are-not-the-best-solution&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the announcement is something called Smart adapters, from what I understand a way to automate replacing .NET controls with your own controls. So when Sharepoint calls that breadcrumb control, you redirect it to call your own breadcrumb instead. The problem here is that I have to rebuild the whole control from scratch, instead of just changing how it&#39;s output.&lt;/p&gt;
&lt;p&gt;Instead, if Sharepoint could expose a .NET List (the breadcrumb links) to me, I could decide the rendering myself. That&#39;s customization!&lt;/p&gt;
&lt;h2 id=&#34;dont-repeat-yourself-use-master-pages&#34;&gt;Don&#39;t repeat yourself, use master pages&lt;a href=&#34;#dont-repeat-yourself-use-master-pages&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;More suggestions of changes: One of the biggest annoyances in Sharepoint is the bad implementation of master pages. Sharepoint only allows each site to have one Master page set, so you really can&#39;t use your master pages for controlling things like number of columns. Putting that in the masterpage would means you would need to use that number of columns on all your pages. In Sharepoint, you instead have to wash out the bare essentials that all your pages have (a html and body element?), and set that in the masterpage. If two of your pages are similar, copy/paste the code between them. Terrible! What I want to be able to do, is to set several masterpages per site, and use inheritance between those masterpages. That&#39;s fundamental master page concepts, that Sharepoint is lacking.&lt;/p&gt;
&lt;h2 id=&#34;organization-of-css-and-javascript&#34;&gt;Organization of CSS and Javascript&lt;a href=&#34;#organization-of-css-and-javascript&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When you ship code to your customers (Sharepoint is a framework, so Microsoft is essentially selling code to developers), you need to make sure that code is readable, and understandable. That does not only apply to C# code, it applies to the full interface as well. That&#39;s simply not the case with Sharepoint. There&#39;s two humongous files, core.css and core.js, where most CSS and Javascript have been poured into, with no consideration of organization or namespaces. There&#39;s no indication how certain C# components interact with the CSS and Javascript and very very little documentation (often added after the fact, by annoyed developers like me). This just &lt;strong&gt;have to change&lt;/strong&gt;, we need organization, modules, separation. We need an interface that we can understand without reverse engineering!&lt;/p&gt;
&lt;p&gt;Another thing, releasing controls that are thought to be reused, really mean that they need to work in &lt;a href=&#34;http://www.quirksmode.org/css/quirksmode.html&#34;&gt;standards mode&lt;/a&gt;. All controls, even webparts. It isn&#39;t reasonable to have to &lt;a href=&#34;http://blogs.msdn.com/feldman/archive/2007/11/18/sharepoint-doctype-and-master-pages.aspx&#34;&gt;patch things inside your Javascript chaos&lt;/a&gt; to make basic things work! It isn&#39;t reasonable to have to patch CSS for standards mode either. It shouldn&#39;t have relied on quirks mode in the first place!&lt;/p&gt;
&lt;h2 id=&#34;examples-are-good-but&#34;&gt;Examples are good, but…&lt;a href=&#34;#examples-are-good-but&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The announcement also mentions examples. Releasing examples of how to make Sharepoint validate, conform to WCAG 2.0 AA (really?), or any other standard, can of course be of help. A lot more help than no documentation. But it&#39;s also pushing over the problem to the customers. &amp;quot;We couldn&#39;t make our product validate, but you can fix that, but doing this, this, then this, and that&amp;quot;. A default site shouldn&#39;t have 200 errors out of the box, you can do better than that.&lt;/p&gt;
&lt;h2 id=&#34;wysiwyg-editor-and-firefox&#34;&gt;WYSIWYG editor and Firefox&lt;a href=&#34;#wysiwyg-editor-and-firefox&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Accessibility Kit also mentions a new WYSIWYG editor, &amp;quot;aRTE&amp;quot;, that can be used instead of the default editor. It&#39;s of course well needed, the default editor doesn&#39;t work at all outside of Internet Explorer, and I really doubt that it&#39;s accessible. So why is this released as an addon? You&#39;ve built a better content editor, give it to people!&lt;/p&gt;
&lt;p&gt;Also, the new editor takes you another step closer to supporting Firefox. You&#39;re pretty near, but not being able to edit content in a CMS with Firefox really is bad. That should be the baseline. Really, I could understand if the ActiveX über-COM Silverlight Vista integration didn&#39;t work, but editing content, or maybe interacting with webparts? To cling to Internet Explorer in this day and age is not going to work.&lt;/p&gt;
&lt;h2 id=&#34;in-summary&#34;&gt;In summary&lt;a href=&#34;#in-summary&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I hope that some of the improvement areas mentioned in this post will be taken into consideration in the development of the next version of Sharepoint. My tone is harsh, but that&#39;s because I&#39;ve really been slowed down my Sharepoint in my daily work. Customers complain because tiny interface changes takes days to complete. I hope you can see past my frustration, and see that there are big areas where you really can improve how Sharepoint work. I&#39;m willing to help pointing in (what I think is) the right direction.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">New design for friendlybit coming up</title>
            <link href="http://friendlybit.com/other/new-design-for-friendlybit/" rel="alternate" type="text/html" title="New design for friendlybit coming up" />
            <published>2007-12-06T22:44:00+01:00</published>
            <updated>2007-12-06T22:44:00+01:00</updated>
            <id>http://friendlybit.com/other/new-design-for-friendlybit/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi. I just wanted to tell you that I&#39;m now working on the new friendlybit. I&#39;ve listened to your previous comments, and these are the changes I&#39;m going to...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/new-design-for-friendlybit/">
                &lt;p&gt;Hi. I just wanted to tell you that I&#39;m now working on the new friendlybit. I&#39;ve listened to your &lt;a href=&#34;/other/the-future-of-friendlybitcom/&#34;&gt;previous comments&lt;/a&gt;, and these are the changes I&#39;m going to make/not make:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blog format stays&lt;/strong&gt;, no community. You&#39;re damn conservative (something like 95% percent said to keep it a blog).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More compact writing&lt;/strong&gt;. I&#39;ll skip more of the fluffy wording, and concentrate on what I want said. That means shorter posts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WYSIWYG-editor&lt;/strong&gt; inside WordPress (my blogging tool) gets turned on. This might make the HTML somewhat worse, but It makes my job easier, so I&#39;ll try anyways.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paid links gets removed&lt;/strong&gt;. I previously sold links on the frontpage and got like $200 a month from them. I&#39;ve now removed them, since:&lt;ol&gt;
&lt;li&gt;It seems to be hip inside the Googleplex to kick on people making money from other things than AdSense.&lt;/li&gt;
&lt;li&gt;I have no idea if the PageRank drop from PR6 to PR4 is caused by them, but I&#39;m still going to hope that was the case. We&#39;ll see.&lt;/li&gt;
&lt;li&gt;To show to myself that blogging isn&#39;t about money. Now I most definitely don&#39;t blog for the money.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Number of feed readers&lt;/strong&gt; will be used as a way of seeing if I do my job or not. This will also be shown at the top of all pages, so you will be able to follow them too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comments will be central&lt;/strong&gt;, as &lt;a href=&#34;/other/the-future-of-friendlybitcom/#comment-26790&#34;&gt;Jesse Skinner suggested&lt;/a&gt;. For now, I&#39;m just moving them up, above the fold, but we&#39;ll see where we end up.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New design&lt;/strong&gt; underway. As a token of me caring for you (and me wanting to steal your skills), I thought I&#39;d post a screenshoot of it here:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But. This damn layout is to narrow, so I&#39;ll just paste a link instead: &lt;a href=&#34;/files/friendlybit_single_export.png&#34; data-no-instant&gt;New friendlybit design&lt;/a&gt;. Some ideas (all changable if you give me good reasons): &lt;a href=&#34;/files/friendlybit_single_export.png&#34; data-no-instant&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It will be flexible width, between 800 and 1024 pixels.&lt;/li&gt;
&lt;li&gt;Content and comments will each take up approx 50% of the page width, so you&#39;ll get plenty of eyeballs on your comments.&lt;/li&gt;
&lt;li&gt;I don&#39;t know the height of the columns, so I&#39;ll just let them expand downwards as long as they need to be.&lt;/li&gt;
&lt;li&gt;I won&#39;t make it work in IE6 (on purpose). This is for my own satisfaction, and seriously, any decent web developer should already have something better. Stats say 60% Firefox, 16% IE7, and 14% IE6. Please upgrade people. I will test it in the latest version of Opera (4.2%) and Safari (4.5%). Why? Because I want more users with good browsers, and fewer with bad. And since this is a personal blog, I can choose. Yay!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now. Do I have to tell you I want your feedback on that?&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">The future of friendlybit.com</title>
            <link href="http://friendlybit.com/other/the-future-of-friendlybitcom/" rel="alternate" type="text/html" title="The future of friendlybit.com" />
            <published>2007-08-06T19:57:42+02:00</published>
            <updated>2007-08-06T19:57:42+02:00</updated>
            <id>http://friendlybit.com/other/the-future-of-friendlybitcom/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">It&#39;s vacation time and you&#39;re allowed to lean back and just relax. A blog it&#39;s always there though, you post to it on your spare time, and as soon as you...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/the-future-of-friendlybitcom/">
                &lt;p&gt;It&#39;s vacation time and you&#39;re allowed to lean back and just relax. A blog it&#39;s always there though, you post to it on your spare time, and as soon as you have some a little glitch in your schedule you need to consider blogging. It&#39;s a full time job.&lt;/p&gt;
&lt;h2 id=&#34;current-situation&#34;&gt;Current situation&lt;a href=&#34;#current-situation&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I use Friendly Bit as a way to express &lt;strong&gt;my thoughts and ideas&lt;/strong&gt; about web development. Why? Partly because I&#39;m passionate about the web, passionate to make it a better place. I want people to see the possibilities it holds, and make use of it in the best way possible. I want people to see the web from different angles, sometimes from an accessibility standpoint and sometimes from the eyes of a designer. I want people to think about what they are doing, every line of code they are putting down, instead of typing with auto-pilot turned on.&lt;/p&gt;
&lt;p&gt;That&#39;s me, trying to get my point out to you. What&#39;s equally important is &lt;strong&gt;your feedback&lt;/strong&gt;. If I make a mistake, I instantly get it pointed out by people like you, that know what they are doing. If I write something outstanding I get told that aswell, but not by simple &amp;quot;well done&amp;quot; one-liners, but by thought-out reflections, again, by people like you.&lt;/p&gt;
&lt;h2 id=&#34;the-future&#34;&gt;The future&lt;a href=&#34;#the-future&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Since it&#39;s vacation, I get the time to sit down and think about how I want things to develop here. And what I&#39;ve come to realize is that I&#39;ve underestimated the value of you and your feedback. What do I mean by that? Well, every damn comment (not spam, mind you), gives something back to me, something that I can use to write an even better article next time. I have not acknowledged that enough, that every comment is valuable to me.&lt;/p&gt;
&lt;p&gt;Where Joel on Software thinks &lt;a href=&#34;http://www.joelonsoftware.com/items/2007/07/20.html&#34;&gt;comments infringe his freedom of expression&lt;/a&gt;, I of course disagree. I find it utterly silly that they would.&lt;/p&gt;
&lt;p&gt;Anyway. What it all boils down to, is that I need to make this site mirror my feelings about my readers… I&#39;d like to move from a blog where I talk and you listen, to a platform where &lt;strong&gt;we&lt;/strong&gt; talk. Of course that isn&#39;t an easy task. I can&#39;t force you to just &amp;quot;be more active&amp;quot;. I can&#39;t force you to help each other and post your &amp;quot;lessons learned&amp;quot; here. That&#39;s not how a community works, and it shouldn&#39;t be.&lt;/p&gt;
&lt;h2 id=&#34;moving-to-a-community&#34;&gt;Moving to a community&lt;a href=&#34;#moving-to-a-community&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;What I want to do is make it easy and convenient to interact with the site. To lift everything you do and write and show it to everyone. I know there&#39;s about 1000 people subscribing to my feed (about 300 daily visitors). Let&#39;s say one tenth of those, 100 loyal subscribers, are people really read what is posted and are willing to give feedback on some of it. Wouldn&#39;t that be a good crowd to show &lt;strong&gt;your&lt;/strong&gt; ideas to?&lt;/p&gt;
&lt;p&gt;I&#39;m not saying I would post less, and expect you to fill the blanks. No, I would still post as much as I do right now, one article every other week. I would still read every comment. But I think there should be a way for you to start topics/articles and ask questions. And not only talk to boring me, to the other loyal 100.&lt;/p&gt;
&lt;p&gt;The important question here is: &lt;strong&gt;Is this something you want?&lt;/strong&gt; Would Friendly Bit still be as exciting if it was a community instead of a blog? Would you stay?&lt;/p&gt;
&lt;p&gt;Mind you, I will read every single reply to this post carefully, and decide where to go from here. Thanks!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Safari now available on Windows</title>
            <link href="http://friendlybit.com/other/safari-now-available-on-windows/" rel="alternate" type="text/html" title="Safari now available on Windows" />
            <published>2007-06-11T20:08:28+02:00</published>
            <updated>2007-06-11T20:08:28+02:00</updated>
            <id>http://friendlybit.com/other/safari-now-available-on-windows/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi, this is just a short post to let you know that Safari is now available on windows. It&#39;s was unveiled at the World Wide Developer Conference 2007 by...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/safari-now-available-on-windows/">
                &lt;p&gt;Hi, this is just a short post to let you know that &lt;a href=&#34;http://www.apple.com/safari/&#34;&gt;Safari is now available on windows&lt;/a&gt;. It&#39;s was unveiled at the &lt;a href=&#34;http://developer.apple.com/wwdc/&#34;&gt;World Wide Developer Conference 2007&lt;/a&gt; by Steve jobs himself.&lt;/p&gt;
&lt;p&gt;I can&#39;t stress enough how important this is for all Safari users. Most developers still use Windows when developing web sites (it&#39;s changing, but don&#39;t try to fool me, we&#39;re not there yet). Will all these developers test in Safari? Hell no, even though there&#39;s probably some hacky way to get Safari running, but I doubt many will go through the hassle of doing it. I know I don&#39;t. I also know that I now will test in Safari. For starters, this site is broken, need to fix.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Congratulations all users of Safari&lt;/strong&gt;, you have a bright future ahead of you. Also congratulations to Apple, for &lt;a href=&#34;http://www.macrumorslive.com/&#34;&gt;playing their cards exactly right&lt;/a&gt; (first Intel Macs, now this).&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Spotify is a lot like…</title>
            <link href="http://friendlybit.com/other/spotify-is-a-lot-like/" rel="alternate" type="text/html" title="Spotify is a lot like…" />
            <published>2007-05-08T20:46:02+02:00</published>
            <updated>2007-05-08T20:46:02+02:00</updated>
            <id>http://friendlybit.com/other/spotify-is-a-lot-like/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi. Today I want to tell you about a music player called Spotify, that I like. What does that have to do with web development? Nothing, that&#39;s why it&#39;s in...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/spotify-is-a-lot-like/">
                &lt;p&gt;Hi. Today I want to tell you about a music player called &lt;a href=&#34;http://www.spotify.com/&#34;&gt;Spotify&lt;/a&gt;, that I like. What does that have to do with web development? Nothing, that&#39;s why it&#39;s in the &amp;quot;other&amp;quot; category :)&lt;/p&gt;
&lt;p&gt;Anyway. Spotify is a lot like &lt;strong&gt;Pandora&lt;/strong&gt;, you know that music player that runs as a flash applet and suggests music based on your votes. Except Spotify comes as a standalone application, and doesn&#39;t suggest music. And it works outside of the US. Oh, wait, it&#39;s not at all like Pandora.&lt;/p&gt;
&lt;p&gt;Instead, it&#39;s very similar to &lt;strong&gt;Last.fm&lt;/strong&gt;, that massive music site that plays songs based on your tags, and suggests music if you pay for it. Well, except Spotify does not have tags, and it&#39;s free. Bah, it&#39;s not at all like Last.fm.&lt;/p&gt;
&lt;p&gt;Oh, now I know, it&#39;s like having downloaded &lt;strong&gt;thousands of MP3s&lt;/strong&gt; from some P2P network. MP3s you worked damn hard to find. But then again, music on Spotify is legal, and there&#39;s a lots more music there than what you will ever have on your hard drive. Damn it, it&#39;s not like downloaded music…&lt;/p&gt;
&lt;p&gt;Aha! Now I know. It&#39;s like &lt;strong&gt;Winamp&lt;/strong&gt;, but with a huge library of music, that you store on a remote server instead of on your own hard drive. A Winamp that can play and combine radio stations based on genres, filter out music from a certain century, and play full albums if you want to. A Winamp that&#39;s fully searchable on both artist, song title, and album, that displays CD covers, biographies and suggests similar artists. You guessed it right, it&#39;s not at all like Winamp.&lt;/p&gt;
&lt;p&gt;Stay on the lookout for Spotify, soon released on an interweb near you.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Vill du jobba med mig? (Swedish)</title>
            <link href="http://friendlybit.com/other/want-to-work-with-me-swedish/" rel="alternate" type="text/html" title="Vill du jobba med mig? (Swedish)" />
            <published>2007-05-06T21:59:41+02:00</published>
            <updated>2007-05-06T21:59:41+02:00</updated>
            <id>http://friendlybit.com/other/want-to-work-with-me-swedish/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Som ni säkert redan vet så jobbar jag som gränssnittsutvecklare på ett konsultbolag som heter Valtech i Stockholm, och just nu finns det jättemycket att...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/want-to-work-with-me-swedish/">
                &lt;p&gt;Som ni säkert redan vet så jobbar jag som gränssnittsutvecklare på ett konsultbolag som heter &lt;a href=&#34;http://valtech.se/&#34;&gt;Valtech&lt;/a&gt; i Stockholm, och just nu finns det jättemycket att göra. Därför letar vi nu efter ytterligare någon som vill jobba med gränssnitt, och ta rollen som expert på HTML, CSS, Javascript, tillgänglighet, och allt annat som ingår i modern webb.&lt;/p&gt;
&lt;p&gt;Det är en tjänst som konsult (på heltid), så det är ett varierande jobb, där du har stor möjlighet att anpassa vilka kunder du jobbar med. Valtech har kunder från alla möjliga branscher, men med fokus på stora företag, så möjligheten att påverka kvaliteten på den svenska webben är stor. Många kunder ber specifikt om webbplatser som följer &amp;quot;&lt;a href=&#34;http://verva.se/web/t/Page____1154.aspx&#34;&gt;Vägledningen 24-timmarswebben&lt;/a&gt;&amp;quot;, vilket gör en duktig gränssnittsutvecklares jobb enklare.&lt;/p&gt;
&lt;p&gt;Du förstår säkert att jag stortrivs (jag skulle inte göra reklam här annars), men jag inser att en bloggpost inte är rätt medium för att förmedla det :)&lt;/p&gt;
&lt;p&gt;Istället kan väl du, om du är nyfiken på tjänsten, &lt;strong&gt;&lt;a href=&#34;mailto:emil@emilstenstrom.se&#34;&gt;skicka ett mail&lt;/a&gt;&lt;/strong&gt; till mig och berätta om dig själv. Vi ser helst att du har jobbat ett par år i branschen, men om du på annat sätt kan visa att du kan dina saker så är det ändå intressant.&lt;/p&gt;
&lt;p&gt;Valtechs webbplats beskriver lite hur det är att jobba hos oss, och innehåller &lt;a href=&#34;http://valtech.se/templates/Page.aspx?id=67&#34;&gt;information om företaget&lt;/a&gt;. Jag &lt;a href=&#34;mailto:emil@emilstenstrom.se&#34;&gt;svarar gärna på frågor&lt;/a&gt; om du skulle komma på några. Hoppas vi hörs!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">I’m not from America</title>
            <link href="http://friendlybit.com/other/im-not-from-america/" rel="alternate" type="text/html" title="I’m not from America" />
            <published>2007-04-17T21:25:08+02:00</published>
            <updated>2007-04-17T21:25:08+02:00</updated>
            <id>http://friendlybit.com/other/im-not-from-america/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi! Let me introduce myself. I&#39;m a 25 year old web developer in Sweden. I use a 24 hour clock, which means I get up at 06.30 and go to bed at 23.00. I am in...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/im-not-from-america/">
                &lt;p&gt;Hi! Let me introduce myself. I&#39;m a 25 year old web developer in Sweden. I use a 24 hour clock, which means I get up at 06.30 and go to bed at 23.00. I am in the timezone GMT+1, which probably means I get up when Americans sleep. To me, today is 2007-04-17, a Tuesday, the second day of my week.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Why am I telling you all this? Well, I&#39;m getting tired of Americans assuming US is the world. When picking a random book from the bookshelf I&#39;m expected to know how the educational system in the US works. I&#39;m expected to know the names of popular persons in Hollywood. I&#39;m expected to share your view of American gun policy, and I&#39;m supposed to sing along to your national anthem.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When I shop things I use the Swedish krona (SEK), and I don&#39;t keep track of how it relates to other currencies, because I don&#39;t need to. Of everything I earn I pay about 30% in taxes to the government but got paid to study at the university (everyone here do). I&#39;m writing this on a computer with a 100mbit connection, a fiber cable drawn to my apartment that I pay 229 SEK a month for.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;There seems to be a problem in the US with coping with the rest of the world. I&#39;m not disputing that America is where most of the money today is generated. If you say so. But I&#39;m getting worried that Americans forget about the rest of the world.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Sweden has seven political parties, four of which rule the country right now. Two new parties got a lot of votes the last election but didn&#39;t get over the 4% barrier you need. The first one is the pirate party, working for integrity and loosened intellectual rights, and the second one is the feminist party, working for equality between the sexes. Each year there&#39;s new parties entering.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;By not respecting and collaborating with the rest of the world you Americans are missing out on a lot of opportunities. What&#39;s worse is that since you brag about your excellence a lot of people envy you, but when you don&#39;t let them in your get them frustrated.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There&#39;s lots of people and countries in the world, &lt;strong&gt;don&#39;t assume I&#39;m living in yours&lt;/strong&gt;. Lets all hug.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Convention about Web 2.0 coming up: hej! 2007</title>
            <link href="http://friendlybit.com/other/convention-about-web-20-comming-up-hej-2007/" rel="alternate" type="text/html" title="Convention about Web 2.0 coming up: hej! 2007" />
            <published>2007-03-30T19:19:00+02:00</published>
            <updated>2007-03-30T19:19:00+02:00</updated>
            <id>http://friendlybit.com/other/convention-about-web-20-comming-up-hej-2007/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">For all the Swedish readers here: The 21:th of April there&#39;s a big convention coming up that I hope you don&#39;t miss. hej! 2007 takes on the wide and fuzzy...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/convention-about-web-20-comming-up-hej-2007/">
                &lt;p&gt;&lt;em&gt;For all the Swedish readers here:&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The 21:th of April there&#39;s a big convention coming up that I hope you don&#39;t miss. &lt;strong&gt;hej! 2007&lt;/strong&gt; takes on the wide and fuzzy topic of Web 2.0 and presents speakers from a wide array of Swedish companies. I&#39;ll certainly be there and I hope you will too. Have a look at:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.nustart.sg/hej2007/&#34;&gt;http://www.nustart.sg/hej2007/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See you there! (and let me know in the comments if you will attend)&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Currently moving</title>
            <link href="http://friendlybit.com/other/currently-moving/" rel="alternate" type="text/html" title="Currently moving" />
            <published>2007-03-21T15:41:11+01:00</published>
            <updated>2007-03-21T15:41:11+01:00</updated>
            <id>http://friendlybit.com/other/currently-moving/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Just a quick note to let you know that I&#39;m currently in the process of moving. That means no internet for a couple of days. Stay tuned to the RSS, I&#39;m not...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/currently-moving/">
                &lt;p&gt;Just a quick note to let you know that I&#39;m currently in the process of moving. That means no internet for a couple of days. Stay tuned to the RSS, I&#39;m not quitting :)&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Tale of a lost mobile</title>
            <link href="http://friendlybit.com/other/tale-of-a-lost-mobile/" rel="alternate" type="text/html" title="Tale of a lost mobile" />
            <published>2007-02-07T21:09:05+01:00</published>
            <updated>2007-02-07T21:09:05+01:00</updated>
            <id>http://friendlybit.com/other/tale-of-a-lost-mobile/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">When I stepped off the bus today just outside of home I reached for my mobile phone. Eh? I checked all my pockets, every pocket in the rucksack I carry my...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/tale-of-a-lost-mobile/">
                &lt;p&gt;When I stepped off the bus today just outside of home I reached for my mobile phone. Eh? I checked all my pockets, every pocket in the rucksack I carry my laptop in, and went an extra lap around the bus station to see if I could find it. You all know the reaction after that: &amp;quot;FUCK!&amp;quot;. Mumbling, I continued homeward. There was no chance I could intercept the bus or even know that the phone was there somewhere.&lt;/p&gt;
&lt;p&gt;Finally at home I thought I&#39;d call people and try to solve the problem, but the thing is that I have no other phone. The mobile is all, and it has worked fine until now. What to do, what to do? Well, I made sure that my internet connection worked out alright at least. It did.&lt;/p&gt;
&lt;p&gt;Here&#39;s a little list of things I did, all thanks to the internet being available:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Contacted a friend on IRC and made him call my number. Three rings later someone pressed &amp;quot;No&amp;quot; and didn&#39;t answer the call. What? Made my friend call again and he got directly forwarded to voice mail. Either someone turned it off or someone kicked it broken. Either way, it&#39;s gone forever.&lt;/li&gt;
&lt;li&gt;Was able to contact one of my brother&#39;s friends on IRC. He told my that my brother say right next to him, so I could talk to him.&lt;/li&gt;
&lt;li&gt;Made my brother call home and let my parents know that they might get (although not probable) a strange call sometime soon. Their number (conveniently named &amp;quot;A Homenumber&amp;quot;) is the first one in my phone book.&lt;/li&gt;
&lt;li&gt;Discussed with &lt;a href=&#34;http://www.rundkvadrat.com&#34;&gt;Björn&lt;/a&gt; on ICQ about what to do and got the clever idea to block my sim card. I don&#39;t want people to be calling Korea with my money.&lt;/li&gt;
&lt;li&gt;E-mailed Sara at the office, asking if she could help me with the block. Expected to fix it first thing in the morning. Left MSN addy at the bottom just in case.&lt;/li&gt;
&lt;li&gt;Got contacted 30 min later on MSN by her (Note: this was way after working hours). She had called the support desk and fixed everything for me. Tomorrow I&#39;ll borrow an old phone, activate a new sim card, and have my old number working within an hour.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So what do we learn from this?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Well. Don&#39;t drop your mobile the day before you&#39;re about to buy your first flat. You risk losing the auction if you do stuff like that. DOH!&lt;/li&gt;
&lt;li&gt;If you still manage to drop it, make sure you have someone like Sara that can help you fix everything 30 minutes after getting a casual e-mail. Check.&lt;/li&gt;
&lt;li&gt;Make sure your company pays a new mobile every two years, and make sure you didn&#39;t buy one the last two years. &lt;a href=&#34;http://www.valtech.se&#34;&gt;Valtech&lt;/a&gt; is nice. Check!&lt;/li&gt;
&lt;li&gt;Back up your phone book to your computer. Back up? What&#39;s that? DOH!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Thanks everyone&lt;/strong&gt; that helped me out! (and let me know if some of your friends proudly proclaim they found an &lt;a href=&#34;http://www.sonyericsson.com/spg.jsp?cc=global&amp;amp;lc=en&amp;amp;ver=4001&amp;amp;template=pp1_1_1&amp;amp;zone=pp&amp;amp;lm=pp1&amp;amp;pid=10376&#34;&gt;Ericsson W810i&lt;/a&gt; on the bus.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; Mobile found! I&#39;m going to call someone named Monika tomorrow. Let&#39;s hope.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; Mobile found! Monika&#39;s daughter found the mobile on the floor on the bus I got home with. She called my parents and since she lived right next to them everything worked out all right. I got the phone back this morning, 10 hours after losing it. With a firm grip I then won the auction for a flat in Årsta. Yay, I have somewhere to live!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Feeds – a threat to design on the web</title>
            <link href="http://friendlybit.com/other/feeds-a-threat-to-design-on-the-web/" rel="alternate" type="text/html" title="Feeds – a threat to design on the web" />
            <published>2006-11-02T20:41:47+01:00</published>
            <updated>2006-11-02T20:41:47+01:00</updated>
            <id>http://friendlybit.com/other/feeds-a-threat-to-design-on-the-web/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">When CSS was first introduced it got bashed by a lot of sceptics. At least as many defended the language and in the end CSS was what got widespread use....</summary>
            <content type="html" xml:base="http://friendlybit.com/other/feeds-a-threat-to-design-on-the-web/">
                &lt;p&gt;When CSS was first introduced it got bashed by a lot of sceptics. At least as many defended the language and in the end CSS was what got widespread use. Today we see the exact same battle fought again, with feeds. Let me explain:&lt;/p&gt;
&lt;p&gt;In the beginning HTML was a language for content exchange, and the content was mainly scientific papers. One thing you note about those papers is that all of them look the same. Sure, some use two columns and some use three, but very few were (or are) &amp;quot;branded&amp;quot;. The widely accepted rule was to let the users decide the layout; after all why should we need to download the same design over and over? Design was something the user decided, not the author.&lt;/p&gt;
&lt;p&gt;But those content-only sites didn&#39;t live long. First tables, then CSS, enabled users to make sites more interesting and in many cases easier to read. No one would come up with the idea or releasing an unstyled site today (except &lt;a href=&#34;http://www.dustindiaz.com/naked-day/&#34;&gt;CSS naked day&lt;/a&gt; :).&lt;/p&gt;
&lt;p&gt;Not too long ago feeds were introduced. Feeds make it easier to subscribe to websites by separating content from all the &amp;quot;design stuff&amp;quot;. This enables users to decide how your content should look. Proponents often talk about how much faster it is to read content from different sites when they all look the same. No time is lost trying to understand a new design.&lt;/p&gt;
&lt;p&gt;When you read the paragraph above you&#39;ll notice that it&#39;s the exact same discussion and arguments as were used when CSS was introduced: &amp;quot;Users should decide&amp;quot; vs. &amp;quot;Webmasters should decide&amp;quot;. The difference between feeds and websites right now is that no one has gotten the idea of &amp;quot;designed&amp;quot; feeds. At least not yet, I believe we&#39;re slowly approaching that point. I read about someone switching to spans instead of strong because bold &amp;quot;didn&#39;t look right in the feed&amp;quot;. Expect more of that.&lt;/p&gt;
&lt;p&gt;Now. Since more and more people are moving towards using feed readers to access their favourite websites it&#39;s quite obvious that the tide is turning. One clear indicator is when people complain that sites don&#39;t have their full articles in their feed (known as partial feeds). But this is not just me defending my use of partial feeds: I believe we should take it further than that. What kind of web do we want? What kind of web do &lt;strong&gt;you&lt;/strong&gt; want? Should we go back to an unstyled web where content is the only thing that matters? Did the &amp;quot;content only&amp;quot;-proponents win after all? Is it a &amp;quot;feeds only&amp;quot; web what we want?&lt;/p&gt;
&lt;p&gt;I believe content on the web should be allowed to have a style, brand, identity; whatever you want to call it. Style is an essential part of web content and a skilled designer can enhance my whole web experience with little tricks I barely notice.&lt;/p&gt;
&lt;p&gt;Long live design!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Click here to read this article</title>
            <link href="http://friendlybit.com/other/click-here-to-read-this-article/" rel="alternate" type="text/html" title="Click here to read this article" />
            <published>2006-10-19T00:25:28+02:00</published>
            <updated>2006-10-19T00:25:28+02:00</updated>
            <id>http://friendlybit.com/other/click-here-to-read-this-article/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">No matter where you go on the web today you see those little anonymous links: &#34;click here)&#34;. You clearly see them, often marked with a different color...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/click-here-to-read-this-article/">
                &lt;p&gt;No matter where you go on the web today you see those little anonymous links: &amp;quot;&lt;a href=&#34;#harmful-link&#34;&gt;click here&lt;/a&gt;)&amp;quot;. You clearly see them, often marked with a different color (links as they are), but you don&#39;t immediately see where they go. Instead you need to read the text before, no wait, after, Oh! That&#39;s a nice image up there? Hmm… What was I looking for again?&lt;/p&gt;
&lt;p&gt;It has been said over and over again; very few people actually read full articles unless they know it&#39;s worth it. It&#39;s all about trust. They must have previously gotten the idea that the article they are about to read is on topic, interesting, worth a read. It&#39;s a tricky situation, before they have read the article they need to somehow already know that they are on the right track. The solution is of course good links.&lt;/p&gt;
&lt;p&gt;A link tells you something about the page you&#39;re about to visit. You get a quick two or three word summary, often from an author you have previously deemed trustworthy (after all, you&#39;re reading her/his site are you not?). When you are on a trusted site and click on a link you know that the destination is a good one. Why would there be a link there otherwise? You also know roughly what the site is about, it&#39;s summarized and underlined in blue right there. You click and you start reading.&lt;/p&gt;
&lt;p&gt;Instead of the above scenario I see the same problem repeated over and over again. Instead of using good link text people use &amp;quot;click here&amp;quot; to name their links. You force me to read a lot more than I should need to. &lt;strong&gt;Damn you!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But not only do you annoy your users. Search engines use link text as a primary source of information about the site linked to. Who wants to be found on Google only by those that search for &amp;quot;click here&amp;quot;? Sure, Google sometimes act like a persistent human and reads the surrounding text too, but it also values those words less. What? I can&#39;t use Google to find you? &lt;strong&gt;Damn you!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Many screen readers have an option to only show the links for a site. This is a useful feature if you are browsing, navigating, searching for something, but know it&#39;s not on the current page. Since screen reader users are dependent on hearing things they navigate much slower than an average user and all ways of speeding up that process helps. On a page with the usual &amp;quot;click here&amp;quot; links, the generated list will be useless. The links are taken out of context and users are forced to read the whole site to see where a certain link goes. Why are you punishing them when it&#39;s so easy to do it the right way? &lt;strong&gt;Damn you!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Sometimes the existence of “click here” links has to do with design. It&#39;s very popular right now to remove the underlining on links. This makes links harder to see and you need other methods to show the user where to click. One of them is telling the user what to do in text instead: &amp;quot;I want you to buy my product, but you can&#39;t by clicking directly, you need to click here&amp;quot;. &amp;quot;Click me&amp;quot; designers: &lt;strong&gt;Damn you!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And it&#39;s so easy.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Link with the words that best describe the content you link to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now. No one is going to do funny things with their comment signatures or trackbacks will they?&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Character encoding basics</title>
            <link href="http://friendlybit.com/other/character-encoding-basics/" rel="alternate" type="text/html" title="Character encoding basics" />
            <published>2006-10-11T20:06:28+02:00</published>
            <updated>2006-10-11T20:06:28+02:00</updated>
            <id>http://friendlybit.com/other/character-encoding-basics/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Character encodings is something that developers tend to push away as something too hard to bother with. It&#39;s not hard. It&#39;s just that there&#39;s several ways...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/character-encoding-basics/">
                &lt;p&gt;Character encodings is something that developers tend to push away as something too hard to bother with. It&#39;s &lt;strong&gt;not&lt;/strong&gt; hard. It&#39;s just that there&#39;s several ways of storing letters in a file. This article is my way of trying to explain how it works.&lt;/p&gt;
&lt;p&gt;At first developers thought that 256 letters must be enough. Computers were for English speaking people only and few special characters where allowed. There were good reasons for this: memory was expensive and a fixed size for characters made the programming easier. This first way of storing things were called ASCII.&lt;/p&gt;
&lt;p&gt;Time went by and people discovered that they needed letters that were not among the original 256. So what they did was replace a few special characters with the ones they needed. But different people needed different characters and soon we had hundreds of sets to select from. This mess is what you see if you select View -&amp;gt; (Character) encodings -&amp;gt; More (encodings) in your browser.&lt;/p&gt;
&lt;p&gt;Encodings is just about mapping a certain number to the correct character. The first characters are often placed at similar spots, so your site does not necessarily break if you pick the wrong one. Very rarely do you need to know all of them. Just knowing that &lt;strong&gt;latin-1&lt;/strong&gt; (sometimes called &lt;strong&gt;iso-8859-1&lt;/strong&gt;) is the most popular one, but that there are better options out there, will get you far.&lt;/p&gt;
&lt;p&gt;Having that many sets was clearly the wrong way to go, and smart people sat down together to come up with something better. They presented &lt;strong&gt;UTF-8&lt;/strong&gt;, a way to store &amp;quot;all&amp;quot; possible characters in a single format. The idea is to save the first characters with just one letter, the next set with two numbers, three numbers, and so on. The exact &lt;a href=&#34;http://en.wikipedia.org/wiki/UTF-8&#34; title=&#34;technical details of UTF-8&#34;&gt;technical details&lt;/a&gt; does not matter, all you need to know is how it works in browsers and your favourite text editor.&lt;/p&gt;
&lt;h2 id=&#34;setting-the-right-encoding&#34;&gt;Setting the right encoding&lt;a href=&#34;#setting-the-right-encoding&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First you need to find out what encoding your HTML/CSS/JS editor produces. I highly recommend you to use UTF-8 if it&#39;s available, why be limited to just 256 letters? In my favourite editor right now, &lt;a href=&#34;http://sourceforge.net/projects/notepad-plus/&#34;&gt;Notepad++&lt;/a&gt;, there&#39;s a &amp;quot;Format&amp;quot;-menu where I can select &amp;quot;UTF-8 without BOM&amp;quot;. You probably have something similar in your settings.&lt;/p&gt;
&lt;p&gt;When in UTF-8 mode you don&#39;t need to use HTML entities (those things that look like &lt;code&gt;&amp;amp;#345;&lt;/code&gt;) that usually are used to produce strange characters. UTF-8 supports the character you need, just type it in, copy it from somewhere, or pick it from some list of available chars. If you use the correct charset selected everything will work alright. Good, you now have a file locally with some exotic characters in it (if not, you can use this string: &amp;quot;Iñtërnâtiônàlizætiøn&amp;quot;).&lt;/p&gt;
&lt;p&gt;In the browser world things works somewhat different. If the server sends a certain encoding, you can&#39;t do anything about it in your HTML. Many of you probably set the encoding using the meta element in HTML, something I find somewhat strange, how can the browser start reading the page at all if it doesn&#39;t know what encoding it&#39;s in? So, rely on your server to send the right encoding.&lt;/p&gt;
&lt;p&gt;Start by checking what version your server sends by default: In the &lt;a href=&#34;http://chrispederick.com/work/webdeveloper/&#34;&gt;Web Developer Toolbar&lt;/a&gt;, just go to the page you want to examine and select Information -&amp;gt; View Response headers. Look for Content-Type or Content-Encoding and se what it&#39;s set to.&lt;/p&gt;
&lt;p&gt;If it&#39;s the wrong one (something other than iso-8859-1 and UTF-8 is probably wrong), you can change it like this:&lt;/p&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;PHP&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;PHP&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;x&#34;&gt;header(&amp;#39;Content-Type: text/html; charset=utf-8&amp;#39;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;ASP&lt;/strong&gt; and &lt;strong&gt;ASP.Net&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;ASPX-CS&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;&amp;lt;%&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;charset&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;%&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;JSP&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;JSP&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;&amp;lt;%@&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;page&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contentType&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;text/html; charset=UTF-8&amp;quot;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;%&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;Java Servlets&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;JAVA&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;resource&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;setContentType&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;quot;text/html;charset=utf-8&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;Python&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;PYTHON&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;quot;text/html; charset=utf-8&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Setting encoding to UTF-8 with &lt;strong&gt;Ruby on Rails&lt;/strong&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34; data-language=&#34;RUBY&#34;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&#34;vi&#34;&gt;@headers&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;Content-Type&amp;quot;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;quot;text/html; charset=utf-8&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You probably have to include the snippet of code for the language you use in some template-file that&#39;s loaded before everything else. Test that everything works by reloading your sample page from your server and check the response with webdev toolbar.&lt;/p&gt;
&lt;p&gt;Hope that helps someone!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Carnival and Site updates</title>
            <link href="http://friendlybit.com/other/carnival-and-site-updates/" rel="alternate" type="text/html" title="Carnival and Site updates" />
            <published>2006-07-24T17:11:39+02:00</published>
            <updated>2006-07-24T17:11:39+02:00</updated>
            <id>http://friendlybit.com/other/carnival-and-site-updates/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi all! I just wanted to gather a few things in one big post about this site. Carnival of the Web #2# First and foremost. I&#39;d like to tip you off about...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/carnival-and-site-updates/">
                &lt;p&gt;Hi all! I just wanted to gather a few things in one big post about this site.&lt;/p&gt;
&lt;h2 id=&#34;carnival-of-the-web-2&#34;&gt;Carnival of the Web #2&lt;a href=&#34;#carnival-of-the-web-2&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First and foremost. I&#39;d like to tip you off about &lt;a href=&#34;http://www.thefutureoftheweb.com/blog/2006/7/carnival-of-the-web-2&#34;&gt;Carnival of the web #2&lt;/a&gt;, Jesse Skinner&#39;s gathering of the best posts he can find. Proof of its quality? I&#39;m in it :) Keep up the good work Jesse.&lt;/p&gt;
&lt;h2 id=&#34;featured-on-accessitesorg&#34;&gt;Featured on Accessites.org&lt;a href=&#34;#featured-on-accessitesorg&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Secondly. This site has gotten a quite a few small updates lately (I hope it didn&#39;t break things for you). The biggest reason for updates is my submission to Accesssites.org a site that aims to be a big gallery of accessible websites. I thought it would be fun to submit and get some feedback on the accessibility features of this site, so I did. I can tell you now that their reviewing was thorough. I got a list back with all problems of the site outlined, down to details. Impressive. It all ended up with Friendly Bit being featured as a &amp;quot;&lt;a href=&#34;http://accessites.org/checklist/#chk3&#34;&gt;Quality Universal Design&lt;/a&gt;&amp;quot; according to them means:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;The Accessites.org Classic Universal Design Award site shows a thorough attention to detail. This is a great web site on which the developer toiled diligently to get it right. This is the type of website that we can all learn from. For a site like this, the client should be telling everyone they know to hire the project’s developer (in addition to a footer link and icon display, and next project promise).&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With a score of 24.22 I&#39;m just 0.7 points from the next level, something I&#39;m very happy with. Go ahead and &lt;a href=&#34;http://accessites.org/showcase/&#34; title=&#34;What Accessites wrote about Friendly Bit&#34;&gt;see what they wrote about me&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anyway. I&#39;ve made a lot of minor adjustments to this site because of the review. The site now fits into 800 wide screens. It is less confusing with images disbled. The navigation to the right uses underline and not only color as its hover decoration. Lots of little things like that.&lt;/p&gt;
&lt;h2 id=&#34;updates-to-how-comments-work&#34;&gt;Updates to how comments work&lt;a href=&#34;#updates-to-how-comments-work&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Of other reasons I&#39;ve also tuned the comments a bit. The trackbacks and pingpack got moved down (they were just annoying to anyone trying to follow a discussion). Now you&#39;ll find them at the bottom of the article. You will also be able to edit your comment for 10 minutes after it&#39;s posted. I&#39;ll see how this works for a while, let me know if something breaks (check the contact page for e-mail).&lt;/p&gt;
&lt;p&gt;Any other changes you&#39;d like to see?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Switched to Feedburner for my feeds, let me know if they cause you any trouble.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Why you should date a front-end developer</title>
            <link href="http://friendlybit.com/other/why-you-should-date-a-front-end-developer/" rel="alternate" type="text/html" title="Why you should date a front-end developer" />
            <published>2006-07-22T13:01:31+02:00</published>
            <updated>2006-07-22T13:01:31+02:00</updated>
            <id>http://friendlybit.com/other/why-you-should-date-a-front-end-developer/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">You&#39;ve heard all those rumours of how nerdy looking people in glasses obsess over numbers they call things like &#34;pie&#34; or &#34;eee&#34;. You heard they dress up like...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/why-you-should-date-a-front-end-developer/">
                &lt;p&gt;You&#39;ve heard all those rumours of how nerdy looking people in glasses obsess over numbers they call things like &amp;quot;pie&amp;quot; or &amp;quot;eee&amp;quot;. You heard they dress up like aliens and go to big… ehm… seminars, where people sleep in sleeping bags and only eat bad food. Then you have the other side of it, in a couple of years they will have well-paid jobs at some major technological company. They also don&#39;t switch partners easily, if they find someone they like they stick to him/her for, like, forever. You might also be able to hold an intellectual conversation with someone from this group, just try to stay away from tech-talk, you don&#39;t want get hurt. If you are able to get their eyes off the screen, say hello to &lt;em&gt;the programmers&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Typical comment: &amp;quot;Linux is much better than Windows&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On a trendy club in the middle of town you&#39;ll find the next group of people. Some of these also have glasses, but not because they need them, more because it makes them look hip. These people never talk directly with the programmers; a few words could easily ruin their reputation completely. While these people also make a lot of money it&#39;s more spread out over the year. They sometime get a creative period in January and paint images of pink goats that they sell for thousands of dollars, just to get no ideas at all in February and be broke. People from this group should be interesting if you&#39;re in for fame and fortune, passion and flame, but be aware that you might need a couple of partners to switch between depending on their weekly mood. If they get a break in their busy schedule, you should say hello to &lt;em&gt;the designers&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Typical comment: &amp;quot;Did you see those shoes she was wearing? They where teeeeerrible!&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the third corner, not talking with any of the two groups above, we have a smaller group of people. These started as programmers but didn&#39;t like sitting isolated in basements. They wanted to work more with people and what people wanted. After studying methods for doing that they suddenly stopped thinking about anything else. They quickly made enemies with the designers because of their often pretty creations that made people go &amp;quot;oh, this looks good&amp;quot; instead of using the product right away. People in this group are great at handling people, and are often good company on dates, that is, if you can take their know-it-all attitude. They tend to know everything that matters and love to tell you about it. They get decent salary and tend to stick with partners that stay &amp;quot;useful&amp;quot; (not too pretty) and focus on right things. If you find the most functional way to say hello you should try it with these people, the &lt;em&gt;usability experts&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Typical comment: &amp;quot;Door handles are really quite bad, 60% of users would be better off with something else&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But I&#39;m not here to talk about programmers, designers, or usability experts. I&#39;m here to talk about a fourth group of people. These are the people that all three of the previous actually talk to. Not because they necessarily want to, but because they need it to get things done. These are the people that get frowned upon for being bad programmers, lousy designers, and for knowing too little about usability. Truth is, they still they manage to ship sites that actually work. They tend to be good at coding, but not in the way programmers are used to. While they don&#39;t have the status of designers, they are visible in the same way. They are actually good at explaining their thinking to people around them (often without technical experience), and know who they design for. You&#39;ll have no problems saying hello to the &lt;em&gt;front-end developers&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Typical comment: &amp;quot;Don&#39;t use tables for layout&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, this fourth group of people have all the good characteristics of the other groups. Just like programmers they are able to have an intellectual conversation with someone. If you like the &amp;quot;nerdyness&amp;quot; that pretty much defines programmers, you&#39;ll sometimes find it with the front-enders too (just try mentioning that you like XHTML). Like designers they do get some of the fame when a site gets successful, since they are the ones pulling the strings and making things work they are quite visible. But unlike designers, these people will not desert you because you used the same t-shirt two days in a row. As a final strike you&#39;ll find that front-enders are good with people, just like the usability experts. They even know about the people that will be using the site and will gladly meet with them if they get the chance.&lt;/p&gt;
&lt;p&gt;So front-end developers are simply the best kind of date, so what are you waiting for? Go out there and get one before they run out!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Feeling the Digg effect</title>
            <link href="http://friendlybit.com/other/feeling-the-digg-effect/" rel="alternate" type="text/html" title="Feeling the Digg effect" />
            <published>2006-06-30T12:57:25+02:00</published>
            <updated>2006-06-30T12:57:25+02:00</updated>
            <id>http://friendlybit.com/other/feeling-the-digg-effect/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Hi people! I just wanted to say I&#39;m sorry for the downtime/slowness recently. My post Real hackers don&#39;t use CSS got digged which meant I got LOTS of...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/feeling-the-digg-effect/">
                &lt;p&gt;Hi people! I just wanted to say I&#39;m sorry for the downtime/slowness recently. My post Real hackers don&#39;t use CSS got digged which meant I got LOTS of traffic. Fortunately I got some help first .htaccess redirecting digg traffic to duggmirror (they save digged posts automatically). That took the pressure down enough so I could install WP-Cache and get it configured. Now the site is back up again and is probably also faster for all of you.&lt;/p&gt;
&lt;p&gt;Thanks for sticking to this site, I love you all! (lot&#39;s of good articles on the way, stay tuned)&lt;/p&gt;
&lt;p&gt;(A note: I use &lt;a href=&#34;http://www.stacken.kth.se/&#34;&gt;stacken&lt;/a&gt; as my host and it was not their fault the server got slow; wordpress just uses up too many mysql connections and a proper cache fixes that.)&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Accepted to the 9rules network</title>
            <link href="http://friendlybit.com/other/accepted-to-the-9rules-network/" rel="alternate" type="text/html" title="Accepted to the 9rules network" />
            <published>2006-06-03T22:50:28+02:00</published>
            <updated>2006-06-03T22:50:28+02:00</updated>
            <id>http://friendlybit.com/other/accepted-to-the-9rules-network/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">I just wanted to drop a note to everyone that I got accepted to the 9rules network. 9rules is a network for all kinds of quality content and you just need...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/accepted-to-the-9rules-network/">
                &lt;p&gt;I just wanted to drop a note to everyone that &lt;a href=&#34;http://9rules.com/blog/2006/06/round-4-list/&#34;&gt;I got accepted&lt;/a&gt; to the &lt;a href=&#34;http://9rules.com&#34;&gt;9rules network&lt;/a&gt;. 9rules is a network for all kinds of quality content and you just need to have a quick look at the members to see that they attract the right people. It will be very interesting to see what this leads to!&lt;/p&gt;
&lt;p&gt;In other news my site was mentioned in the swedish magazine &amp;quot;Mobil&amp;quot; that covers everything about mobile phones (no article available online). They had an article about how to make a website for your phone and ended with a list links. In that list was my &lt;a href=&#34;/css/beginners-guide-to-css-and-standards/&#34;&gt;beginners guide&lt;/a&gt; and the rest rest of the page was a gigantic screenshoot of my frontpage. Fun! :)&lt;/p&gt;
&lt;p&gt;Traffic is also increasing again after people jumped on the &amp;quot;Knowledge levels of [Add your thing here]&amp;quot;. Roger has a &lt;a href=&#34;http://www.456bereastreet.com/archive/200606/web_knowledge_levels/&#34;&gt;post about some levels of articles&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Can you tell I&#39;m happy? I AM! :)&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Language detection, a usability enhancer?</title>
            <link href="http://friendlybit.com/other/language-detection-a-usability-enhancer/" rel="alternate" type="text/html" title="Language detection, a usability enhancer?" />
            <published>2006-05-14T01:05:19+02:00</published>
            <updated>2006-05-14T01:05:19+02:00</updated>
            <id>http://friendlybit.com/other/language-detection-a-usability-enhancer/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Natural language is by many considered something with very little structure. What many people don&#39;t know is that there are parts that are easily analysed....</summary>
            <content type="html" xml:base="http://friendlybit.com/other/language-detection-a-usability-enhancer/">
                &lt;p&gt;Natural language is by many considered something with very little structure. What many people don&#39;t know is that there are parts that are easily analysed. This article explains a simple but very effective algorithm for detecting what language a text are written in and continues to discuss possible applications.&lt;/p&gt;
&lt;p&gt;More and more of the worlds population comes online and far from everyone want to write in English. In fact, most of the content online is not in English. This leads to the need for more tools that handle different languages; that translate, finds synonyms and so on. Different languages are important so we are going to need tools to handle that. This article handles the latin alphabet, simply becuase it&#39;s the only one I know. I&#39;m sure you can apply the same ideas to other alphabets aswell.&lt;/p&gt;
&lt;h2 id=&#34;how-to-detect-language&#34;&gt;How to detect language&lt;a href=&#34;#how-to-detect-language&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When looking at the differences between languages you can find that they are many. Words, grammar, sentence length, number or syllables… we can go on forever. People skilled in both languages and algorithmics quickly found a very reliable way to tell languages apart: &lt;em&gt;Bigram statistics&lt;/em&gt;. A bigram is just a pair of two letters like &amp;quot;xt&amp;quot; or &amp;quot;ty&amp;quot;.&lt;/p&gt;
&lt;p&gt;It turns out that bigram statistics for a text stays fairly constant (there&#39;s always few &amp;quot;tp&amp;quot; in English) and sometimes you don&#39;t need more than a sentence to determine the language. This is how the algorithm works:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Remove or translate characters&lt;/strong&gt; you don&#39;t want to count. You might want to take into account special characters in different languages like É and Ü and decide how to handle them. Be sure not to remove the space character, it gives good statistics over with which letter words start and end.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Split the text into bigrams&lt;/strong&gt;. For this to work you need to take all bigrams in each word, that is, each letter is included twice. Example: &amp;quot;hello&amp;quot; contains &amp;quot;_h&amp;quot;, &amp;quot;he&amp;quot;, &amp;quot;el&amp;quot;, &amp;quot;ll&amp;quot;, &amp;quot;lo&amp;quot;, &amp;quot;o_&amp;quot; (&amp;quot;_&amp;quot; means space). The more text, the more reliable the result will be.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Count the occurrence&lt;/strong&gt; of each bigram in a long list that contains all the bigrams.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calculate statistics&lt;/strong&gt; over how often each bigram occurred.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compare&lt;/strong&gt; with precalculated lists over different languages. You need to compile this list yourself but it&#39;s easy. Use &lt;a href=&#34;http://www.google.com/advanced_search&#34;&gt;Google Advanced Search&lt;/a&gt; and set the language you want from there.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pick the language&lt;/strong&gt; that has the most similar list.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The only hard part to program is the comparing of two lists. For this we will use the &lt;a href=&#34;http://en.wikipedia.org/wiki/Euclidean_distance&#34;&gt;Euclidean distance&lt;/a&gt; of the two lists of numbers. In essence, this is how Euclidean distance works:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Pick the values&lt;/strong&gt; for the first bigram from the two lists you want to compare.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calculate the difference&lt;/strong&gt; between the two values and &lt;strong&gt;square it&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repeat 1 and 2&lt;/strong&gt; until you have one result for each bigram pair.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add all those results&lt;/strong&gt; together and calculate the &lt;strong&gt;square root&lt;/strong&gt; of that sum. You have your distance.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Euclidean distance gives us a number. The lower the number the more like each other the two lists are. So we compare the calculated list with the precompiled lists for other languages and pick the language with the lowest number.&lt;/p&gt;
&lt;h2 id=&#34;real-world-applications&#34;&gt;Real world applications&lt;a href=&#34;#real-world-applications&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As you&#39;ve see above detecting language isn&#39;t rocket science. Anyone with some solid programming skills could implement the algorithm above no matter what programming language. Anyone could also gather the statistics needed to make some bigram lists for different languages. So you could expect that this is used all over right? Wrong. A few examples:&lt;/p&gt;
&lt;p&gt;Since my native language is Swedish I have downloaded an extra dictionary for Thunderbird to make it able to check both my Swedish and English e-mails for errors. It works well except for one thing. Since about half of the e-mails I send are in each of the languages, the dictionary is almost always set to the wrong one. Since the language is not shown anywhere I usually type a few words, think &amp;quot;what, isn&#39;t that correct?&amp;quot;, and then remember that the wrong dictionary is selected. You can see where the language detection above would fit in right? They don&#39;t even need to see what I&#39;m going to type; the language I will reply with will be the same as in the e-mail I&#39;m answering to. That&#39;s usability.&lt;/p&gt;
&lt;p&gt;Another example. Too few webmasters know about the &lt;a href=&#34;http://www.w3.org/TR/html4/struct/dirlang.html#h-8.1&#34;&gt;lang attribute&lt;/a&gt;. It can be set on all HTML elements and specifies what language the content is in. The HTML 4 specification lists the following reasons to why you should use lang:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Assisting search engines&lt;/li&gt;
&lt;li&gt;Assisting speech synthesizers&lt;/li&gt;
&lt;li&gt;Helping a user agent select glyph variants for high quality typography&lt;/li&gt;
&lt;li&gt;Helping a user agent choose a set of quotation marks&lt;/li&gt;
&lt;li&gt;Helping a user agent make decisions about hyphenation, ligatures, and spacing&lt;/li&gt;
&lt;li&gt;Assisting spell checkers and grammar checkers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It all boils down to: it&#39;s a good thing to say what language a page is written in. The problem is, not many know that the lang attribute even exists. Solution? Let the screen reader, browser, or search engine (they are doing it) auto-detect the language and act on it.&lt;/p&gt;
&lt;p&gt;A third example is all those chat rooms. There are rooms all over the place and the topics range from poker strategies to horse equipment. What they all have are lots and lots of users and rooms where you can talk, in any language you want. Wouldn&#39;t it be nice if the chat software automatically detected which language was spoken in a room? Then you could see even before joining. Or even what languages a certain user speaks.&lt;/p&gt;
&lt;p&gt;I&#39;ll call that the end of this article. It moved a bit outside of the webdev area but I hope you still liked it. Have any more ideas of where this could be useful? Want to show your javascript/python/ruby/etc implementation of it to me? Leave a comment.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Open letter to the IE Team</title>
            <link href="http://friendlybit.com/css/open-letter-to-the-ie-team/" rel="alternate" type="text/html" title="Open letter to the IE Team" />
            <published>2006-05-03T13:37:07+02:00</published>
            <updated>2006-05-03T13:37:07+02:00</updated>
            <id>http://friendlybit.com/css/open-letter-to-the-ie-team/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Dear IE Team, I have carefully followed the development of Internet Explorer 7 (IE7) and really liked what I&#39;ve seen. Especially the CSS bugfixes are...</summary>
            <content type="html" xml:base="http://friendlybit.com/css/open-letter-to-the-ie-team/">
                &lt;p class=&#34;first&#34;&gt;
  Dear IE Team,
&lt;/p&gt;

&lt;p class=&#34;first&#34;&gt;
  I have carefully followed the development of Internet Explorer 7 (IE7) and really liked what I&#39;ve seen. Especially the CSS bugfixes are wonderful, the tabs are really needed, and the team talking about the development on your blog is really nice too. You are doing a great job and you should receive credit for it.
&lt;/p&gt;

&lt;p&gt;One thing keeps bugging me though. Soon you will release the browser on Windows Update and people will automatically start upgrading, replacing their old browser (IE6) with the new version. I use Windows Update so my version will be upgraded too, and there&#39;s the problem: I&#39;m a web developer and I need to test my sites in more than one version of each browser. IE7&#39;s ability to &lt;em&gt;replace&lt;/em&gt; IE6 instead of working standalone will for me be a pain. As I see it I have the following options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Get another computer&lt;/strong&gt;. On that other computer I could have the old version of IE installed, with security bugs and all, and then move from computer to computer while testing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Install a virtual machine&lt;/strong&gt; on my current computer. This means I could have the old IE6 on the virtual machine and test there. While this sounds pretty good it still means I have a reserve a large part of my computer for IE6 testing, something that feels very strange to me. I looked up what Microsoft Virtual PC costs and found $129, an expence that a student can&#39;t take just like that&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Drop support for IE6&lt;/strong&gt;. If you really could get all your current users to upgrade this would be a viable option. The problem is that you will not, at least for the comming five years. You will have the non-XP Windows users that won&#39;t get the oppurtunity to upgrade, you will have the modem users that will not have the bandwidth to upgrade and you will have the clueless people that will have no idea that there is an upgrade available. This is not a problem for you, because you are just working with the new version, but it is a problem for me as a web developer, because I have to deal with the old version for a long time still.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hack IE7 to work standalone&lt;/strong&gt;. I have found some tutorials on how to make IE7 standalone but the problem with that is that it&#39;s a mess. Look at it, copying of registry entries, DLL files, and EXE files around. If this is what you want us to do, why not ship a nice and thoroughly tested version of this script yourselves?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, this is my dilemma. Which of the options do you want me to use?&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">What’s happening?</title>
            <link href="http://friendlybit.com/other/whats-happening/" rel="alternate" type="text/html" title="What’s happening?" />
            <published>2006-04-20T23:28:09+02:00</published>
            <updated>2006-04-20T23:28:09+02:00</updated>
            <id>http://friendlybit.com/other/whats-happening/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Sorry for not posting for a while. There is a good reason though. In two days I&#39;m arranging the biggest party ever with 9 of my friends. 280 people have...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/whats-happening/">
                &lt;p&gt;Sorry for not posting for a while. There is a good reason though. In two days I&#39;m arranging the biggest party ever with 9 of my friends. 280 people have accepted the invitation and as you might understand there are countless things to fix. We are celebrating that we all soon have completed our university studies in computer science (5 years) so we do have a reason to be happy ;)&lt;/p&gt;
&lt;p&gt;I will take up writing articles in a couple of days, I have many good ideas I think you will find interesting. Thanks for subscribing!&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Four things to get you tagged</title>
            <link href="http://friendlybit.com/other/four-things-to-get-you-tagged/" rel="alternate" type="text/html" title="Four things to get you tagged" />
            <published>2006-01-25T23:00:32+01:00</published>
            <updated>2006-01-25T23:00:32+01:00</updated>
            <id>http://friendlybit.com/other/four-things-to-get-you-tagged/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">There&#39;s a few questions circling the blogsphere. I better pass them on just to avoid the angry CSS gods. Four jobs I&#39;ve had in my life# Folder of mighty...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/four-things-to-get-you-tagged/">
                &lt;p&gt;There&#39;s a few questions circling the blogsphere. I better pass them on just to avoid the angry CSS gods.&lt;/p&gt;
&lt;h2 id=&#34;four-jobs-ive-had-in-my-life&#34;&gt;Four jobs I&#39;ve had in my life&lt;a href=&#34;#four-jobs-ive-had-in-my-life&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Folder of mighty envelopes&lt;/li&gt;
&lt;li&gt;Cutter of complex vegetables&lt;/li&gt;
&lt;li&gt;Administrator of Nokia Online&lt;/li&gt;
&lt;li&gt;Web developer for my own company&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;four-movies-i-can-watch-over-and-over&#34;&gt;Four movies I can watch over and over&lt;a href=&#34;#four-movies-i-can-watch-over-and-over&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Magnolia&lt;/li&gt;
&lt;li&gt;Matrix&lt;/li&gt;
&lt;li&gt;Memento&lt;/li&gt;
&lt;li&gt;Mind the Gap&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Oh, that&#39;s only the ones on M… :)&lt;/p&gt;
&lt;h2 id=&#34;four-places-i-have-lived&#34;&gt;Four places I have lived&lt;a href=&#34;#four-places-i-have-lived&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Four places? Let&#39;s make all four of them Stockholm, Sweden.&lt;/p&gt;
&lt;h2 id=&#34;four-tv-shows-i-love-to-watch&#34;&gt;Four TV shows I love to watch&lt;a href=&#34;#four-tv-shows-i-love-to-watch&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;No, no, NO! I can smile and nod when people talk about Desperate Housewives or Lost, but truth is I don&#39;t have a clue. I&#39;d rather read some feed than look at non-interactive TV ;)&lt;/p&gt;
&lt;h2 id=&#34;four-places-i-have-been-on-vacation&#34;&gt;Four places I have been on vacation&lt;a href=&#34;#four-places-i-have-been-on-vacation&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Kobenhavn, Denmark&lt;/li&gt;
&lt;li&gt;Amsterdam, Netherlands&lt;/li&gt;
&lt;li&gt;Paris, France&lt;/li&gt;
&lt;li&gt;Marseille, France (all four on the same trip)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;four-of-my-favourite-dishes&#34;&gt;Four of my favourite dishes&lt;a href=&#34;#four-of-my-favourite-dishes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Pancakes!
I can&#39;t really think of four dishes that I like particularly much. I&#39;m a student so noodles and spaghetti are the frequent ones.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;four-websites-i-visit-daily&#34;&gt;Four websites I visit daily&lt;a href=&#34;#four-websites-i-visit-daily&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Stylegala - Webdev community&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.dooce.com&#34;&gt;Dooce&lt;/a&gt; - Great humourus writer (about life)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.waiterrant.net&#34;&gt;Waiterrant&lt;/a&gt; - Also a great writer (about being a waiter)&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.d.kth.se&#34; lang=&#34;sv&#34;&gt;Datasektionen&lt;/a&gt; - The program on the university where I study&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;four-places-i-would-rather-be-right-now&#34;&gt;Four places I would rather be right now&lt;a href=&#34;#four-places-i-would-rather-be-right-now&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Out travelling with someone I like&lt;/li&gt;
&lt;li&gt;Ireland - Seeing if the Pubs are as nice as they say&lt;/li&gt;
&lt;li&gt;Iceland - Trekking, climbing, all kinds of adventure sports&lt;/li&gt;
&lt;li&gt;Prague - Dancing in one of the great techno clubs I&#39;ve heard of&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;four-bloggers-i-am-tagging-all-from-the-css-help&#34;&gt;Four bloggers I am tagging (all from the #CSS help channel)&lt;a href=&#34;#four-bloggers-i-am-tagging-all-from-the-css-help&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;G1nx&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://personaldevelopment.ca/&#34;&gt;trevor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.csarven.ca&#34;&gt;csarven&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;taare&lt;/li&gt;
&lt;/ul&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Happy Birthday Me!</title>
            <link href="http://friendlybit.com/other/happy-birthday-me/" rel="alternate" type="text/html" title="Happy Birthday Me!" />
            <published>2006-01-12T11:04:36+01:00</published>
            <updated>2006-01-12T11:04:36+01:00</updated>
            <id>http://friendlybit.com/other/happy-birthday-me/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">It seems I got 24 years old. I wonder when that happened? After some research I found that 24 is a pretty good number after all.</summary>
            <content type="html" xml:base="http://friendlybit.com/other/happy-birthday-me/">
                &lt;p&gt;It seems I got 24 years old. I wonder when that happened? After some research I found that 24 is a &lt;a href=&#34;http://richardphillips.org.uk/number/Num24.htm&#34; title=&#34;Information about the number 24&#34;&gt;pretty good number&lt;/a&gt; after all.&lt;/p&gt;

            </content>
        </entry>
    
        <entry>
            <title type="html">Julrim 2005</title>
            <link href="http://friendlybit.com/other/christmas-riddles-for-2005/" rel="alternate" type="text/html" title="Julrim 2005" />
            <published>2005-12-24T00:00:21+01:00</published>
            <updated>2005-12-24T00:00:21+01:00</updated>
            <id>http://friendlybit.com/other/christmas-riddles-for-2005/</id>
            <author>
                <name>Emil Stenström</name>
            </author>
            <summary type="text">Jag tänkte det kunde vara kul för några av er att se mina julrim för i år. Jag bestämde mig för att använda Limerick-form, mest för att en stor tidning hade...</summary>
            <content type="html" xml:base="http://friendlybit.com/other/christmas-riddles-for-2005/">
                &lt;p&gt;Jag tänkte det kunde vara kul för några av er att se mina julrim för i år. Jag bestämde mig för att använda Limerick-form, mest för att en stor tidning hade en rolig ramsa som jag gillade.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Man tänker på bad och långa stränder&lt;br /&gt; Man använder denna i dessa länder&lt;br /&gt; båd långa och smala&lt;br /&gt; och mat för koala&lt;br /&gt; det knaprar i användarn&#39;s tänder&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Randig el. rutig man oftast den ser&lt;br /&gt; på lillbroshans axlar när han sig beger&lt;br /&gt; till vänner på fest&lt;br /&gt; på klubb som en gäst&lt;br /&gt; med dessa jag hoppas han ler&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Färgen på dessa är oftast ju vit&lt;br /&gt; paketet från detta avviker en bit&lt;br /&gt; Man på sig dem har&lt;br /&gt; alen el. i par&lt;br /&gt; och bäraren han bli elit&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Du lutar dig fram och lägger mot öra&lt;br /&gt; en bomb, men kan du något tickande höra?&lt;br /&gt; av händer rätt små&lt;br /&gt; båd lila och blå&lt;br /&gt; Vad är det? Kan du det avgöra?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sorry again for the bit of swedish there. So, can you guess what&#39;s inside or if you wrote your own riddle, would you mind posting it in the comments to the left? Merry Christmas to you all!&lt;/p&gt;

            </content>
        </entry>
    
</feed>