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

  <title><![CDATA[Kenneth Auchenberg]]></title>
  <link href="http://blog.kenneth.io/atom.xml" rel="self"/>
  <link href="http://blog.kenneth.io/"/>
  <updated>2011-11-01T15:56:28+01:00</updated>
  <id>http://blog.kenneth.io/</id>
  <author>
    <name><![CDATA[Kenneth Auchenberg]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Slides from my HTML5 & browser extensions presentation at ProData Consult]]></title>
    <link href="http://blog.kenneth.io/blog/2011/02/02/slides-from-my-html5-browser-extensions-presentation-at-prodata-consult/"/>
    <updated>2011-02-02T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2011/02/02/slides-from-my-html5-browser-extensions-presentation-at-prodata-consult</id>
    <content type="html"><![CDATA[<p>Thursday last week (27th january 2010) I hosted a &#8220;evening-event&#8221; at <a href="http://prodata.dk" target="_blank">ProData Consult</a> for their consultants, where I spoke about HTML5 &amp; Browser extensions. My HTML5 talk was a short recap of the recent changes in the specification, the W3C logo, and a showcase of the semantic changes, new tags and attributes and the HTML5-related JavaScript API&#8217;s.</p>

<p>The presentation was a bit of an experiment, because I was the first time I coded my presentation in HTML, JavaScript and CSS instead of using the regular tools such as PowerPoint or Keynote.</p>

<p>To &#8220;code&#8221; my presentation I used a small sinatra-based ruby app called <a href="https://github.com/schacon/showoff" target="_blank">ShowOff</a>, which is using <a href="http://daringfireball.net/projects/markdown/" target="_blank">markdown</a> for its templating.</p>

<p>The advantage of coding my slides is really obvious in my presentation where I show how the new form controls is being rendered, how HTML5 validation works, theres even an embedded google maps, canvas demo, pushHistory etc.</p>

<p>Normally I embed the presentation into the blog-post, using an embedded <a href="http://www.slideshare.net/auchenberg" target="_blank">SlideShare</a> presentation that is using flash, which allows resizing. But because I this time hardcoded the layout in HTML/CSS, then I&#8217;m not able to embed a resized version of my slides.</p>

<p>To see my slides (which is hosted on <a href="http://auchenberg-html5.heroku.com/#1">Heroku</a>), just click the thumbnail below:</p>

<p><a href="http://auchenberg-html5.heroku.com/#1" target="_blank"><img class="alignnone size-full wp-image-203" title="html5_presentation" src="http://blog.kenneth.io/wp-content/uploads/2011/02/html5_presentation.png" alt="" width="600" height="449" /></a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Diving into photography. ]]></title>
    <link href="http://blog.kenneth.io/blog/2011/01/12/diving-into-photography/"/>
    <updated>2011-01-12T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2011/01/12/diving-into-photography</id>
    <content type="html"><![CDATA[<p>Lately I&#8217;ve been quite hooked on getting a DSLR, because I wanted to explore the world of photography from another angle than just looking at beautiful pictures.</p>

<p>To begin with I started looking at high-end camera&#8217;s (top-model or no-model mentality), but after a lot of research I ended up buying a Canon 550d, which is also known as T2I or KISS X4.  It&#8217;s very similar to Canon 60D and Canon 7D, but the main difference is the physical body, which is in plastic and is lacking some quite nifty navigation buttons compared to 7D/60D.</p>

<p>So why did I buy the 550d?</p>

<ul>
    <li>It&#8217;s cheap</li>
    <li>Shooting execelent video ( See <a href="http://www.youtube.com/watch?v=R2AXjF-wFVo">http://www.youtube.com/watch?v=R2AXjF-wFVo</a>)</li>
    <li>Pretty feature rich</li>
</ul>


<p>Of couse, if I had unlimited resoruces I would had bough the Canon 7D, simply because it&#8217;s &#8220;just nicer&#8221;, but I came to the conclusion, that this is my first DSLR, and therefore I could live with the lack of weather sealed body, and the nifty navigation buttons, simply because I first need to learn the very basics of photography.</p>

<p>So I decided to go for the Canon 550d body, but which lens should I buy? Should I go for the kit?</p>

<p>After some more research in various places I came to the conclusion that my first lens should be a prime in about 50mm. But since my 550d has a smaller APS-C sensor, it also has a crop-factor of 1.6, which means a 50mm lens would become 85mm on the 550d.</p>

<p>Therefore I ended up buying a Canon EF 28mm 1/8 USM lens, which is going to be equal 45mm on the 550d, got 1/8 aperture, and is using the EF-mount, which means I also can be used on the Canon pro-cameras (if I should end there some day).</p>

<p>The lens was a bit expensive 450$, but got some pretty good reviews, and the sample photos I found in the <a href="http://www.flickr.com/groups/canonef28mmf18usm/">28mm group in Flickr</a> is simply stunning.</p>

<p>In addition to the 550d and 28mm lens, I also bought a filter, lens hood and a battery grip, so totally I ended up with</p>

<ul>
    <li>Canon 550D body</li>
    <li>Canon EF 28mm 1/8 USM lens</li>
    <li>Canon Lens Hood EW-63 II</li>
    <li>Phottix Battery Grip for 550d</li>
    <li>Hoya 58mm Pro-1D UV Filter</li>
</ul>


<p>I&#8217;m still waiting for the lens, battery grip and filter to arrive, so hopefully when all the parts has arrived I&#8217;m going to be thrilled about photography ;)</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[New version of CSS Reloader for Chrome is out]]></title>
    <link href="http://blog.kenneth.io/blog/2011/01/09/new-version-of-css-reloader-for-chrome-is-out/"/>
    <updated>2011-01-09T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2011/01/09/new-version-of-css-reloader-for-chrome-is-out</id>
    <content type="html"><![CDATA[<p>It has been a long time since I did changes to my CSS Reloader browser extension. This evening I had some time, and pushed a updated version of CSS Reloader for Chrome out in the public.</p>

<p>The new version contains a revised code-base, which is way more well structured and cleaner, and I also added som new features:</p>

<ul>
    <li>Much requested options-page has been added - allows you to change the keyboard shortcut.</li>
    <li>CSS Reloader got a nice new logo (credits goes to <a href="http://www.everaldo.com/crystal/">Everaldo Coelho</a> for the lovely icon.)</li>
</ul>


<p><img class="size-full wp-image-178 alignleft" title="CSS Reloader Options-2" src="http://blog.kenneth.io/wp-content/uploads/2011/01/CSS-Reloader-Options-2.jpg" alt="" width="650" /></p>

<p>Technically  I was quite fun to add the options-page, because the settings is persisted in <a href="http://dev.w3.org/html5/webstorage/">LocalStorage</a>, which is only available for the <a href="http://code.google.com/chrome/extensions/background_pages.html">background-pages</a> in  the extension, and not the <a href="http://code.google.com/chrome/extensions/content_scripts.html">content-script</a> that is injected into every tab. To expose the settings for the <a href="http://code.google.com/chrome/extensions/content_scripts.html">content-script</a> I have taken advantage of the <a href="http://code.google.com/chrome/extensions/messaging.html">message passing implementation</a> in Chrome, that allows the extension-parts to communicate using events.</p>

<p>Get the updated version of <a href="https://chrome.google.com/extensions/detail/dnfpcpfijpdhabaoieccoclghgplmpbd">CSS Reloader for Chrome</a>, or check the <a href="https://github.com/auchenberg/css-reloader">source-code</a> out, to see the funky-ness</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Slides and code from my ANUG jQuery CodeCamp at Vertica]]></title>
    <link href="http://blog.kenneth.io/blog/2010/10/25/slides-and-code-from-my-anug-jquery-codecamp-at-vertica/"/>
    <updated>2010-10-25T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/10/25/slides-and-code-from-my-anug-jquery-codecamp-at-vertica</id>
    <content type="html"><![CDATA[<p>This saturday I hosted a jQuery CodeCamp at <a href="http://vertica.dk">Vertica</a> in Århus, Denmark.  The code camp was arranged by <a href="http://anug.dk">ANUG</a>, a local .NET user group in Århus, which is one of the most active .NET user groups in Denmark. It was really awesome to see that many people meetup on a saturday to do some jQuery hacking!</p>

<p>My intention with the CodeCamp was to give a brief introduction to jQuery, and do a presentation about all the things you can&#8217;t read about in the documentation. But since this was a CodeCamp I also had a mission for the attendees.</p>

<p>The mission was that all the attendees, by the end of the CodeCamp should had been building they own chat client, which connected to a chat-server I had build using <a href="http://socket.io">socket.io</a> and <a href="http://nodejs.com">node.js</a>.</p>

<p>I knew from the very beginning that the mission was quite ambious for a crowd that wasn&#8217;t used to do jQuery/JavaScript stuff, but we succeded! All the attendees managed to build a chat-client that connected to the server, and one even managed to implement a google-maps mashup that showed the location of each connected user!</p>

<p>Here&#8217;s the slides from the CodeCamp:</p>

<object id="__sse5545896" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="650" height="535" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kennethauchenberg-jquerycodecamp-101024153558-phpapp02&amp;stripped_title=jquery-codecamp&amp;userName=auchenberg" /><param name="name" value="__sse5545896" /><param name="allowfullscreen" value="true" /><embed id="__sse5545896" type="application/x-shockwave-flash" width="650" height="535" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kennethauchenberg-jquerycodecamp-101024153558-phpapp02&amp;stripped_title=jquery-codecamp&amp;userName=auchenberg" name="__sse5545896" allowscriptaccess="always" allowfullscreen="true"></embed></object>


<p>The source code for the chat-server can be found right here: <a href="http://github.com/auchenberg/jquery-codecamp">http://github.com/auchenberg/jquery-codecamp</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[How to disable accidentally text-zooming in browsers when using Magic Trackpad/Mouse in OSX]]></title>
    <link href="http://blog.kenneth.io/blog/2010/10/17/how-to-disable-accidentally-text-zooming-in-browsers-when-using-magic-trackpadmouse-in-osx/"/>
    <updated>2010-10-17T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/10/17/how-to-disable-accidentally-text-zooming-in-browsers-when-using-magic-trackpadmouse-in-osx</id>
    <content type="html"><![CDATA[<p>One thing has lately annoyed me, and it has been the accidentally text zooming in my browsers (Google Chrome, Firefox and Safari), when using the Trackpad, Magic Trackpad or Magic Mouse.</p>

<p>The text zooming happens because the pinch-gesture (zoom) has been enabled for the trackpad/mouse, which by default, is mapped to text-zooming in the browsers.</p>

<p>To disable the text-zooming I used a tool called MultiCluch, which is a input-filter that monitors all multi-touch-input and remaps the gestures to keyboard-combinations. So what I did was to map the zoom-in and zoom-out gestures in Google Chrome to a keyboard combination that is doing absolutely nothing.</p>

<ul>
    <li>Install MultiCluch from <a href="http://wcrawford.org/2008/02/28/everytime-i-think-about-you-i-touch-my-cell/">http://wcrawford.org/2008/02/28/everytime-i-think-about-you-i-touch-my-cell/</a></li>
    <li>Add Google Chrome (or the browser you are using), by clicking the small +</li>
    <li>Add a mapping for zoom-in and zoom-out to a keyboard combination without any action (I used CMD+CTRL+SHIFT+ALT)</li>
    <li>Restart your browser</li>
    <li>Bingo, text-zooming is now disabled!</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Introducing Auto-Check-in]]></title>
    <link href="http://blog.kenneth.io/blog/2010/08/11/introducing-auto-check-in/"/>
    <updated>2010-08-11T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/08/11/introducing-auto-check-in</id>
    <content type="html"><![CDATA[<p>The past few days I worked on a new mashup-project I wanted to realize since the day I started used Foursquare&#8230;</p>

<p>Let me introduce <a href="http://autocheckin.appspot.com/">Auto-Check-In</a>. It&#8217;s a new service that removes the hassle about remembering to check-in, since it&#8217;s doing to for you. <a href="http://autocheckin.appspot.com/">Auto-Check-in</a> does not require (yet) another app running in the background, since it&#8217;s using Google Latitude to get the your location (Google Latitude is build in into all Android devices, and with an iPhone you need to run one app in the background).</p>

<p>The service is asking for users location every 5min, and if the user has been at the same spot for the configured timespan, the system is asking foursquare for the near by venues and finally checking the user into the closest one.</p>

<p>For the technical interested, I&#8217;ve build the service in Python, and it&#8217;s running on <a href="appengine.google.com">Google App Engine</a>, with a true async architecture, which takes advantage of the newly released <a href="http://code.google.com/appengine/docs/python/taskqueue/">Task Queues in App Engine</a>.</p>

<p>I teamed up with my friend and colleague <a href="http://mortenjust.com">Morten Just</a>, which had a lot ideas on how the service should work, and the same afternoon he had a user interface ready.</p>

<p><a href="http://autocheckin.appspot.com/">Auto-Check-In</a> is currently running in a public alpha, and is having about 100 active users that each and every day is checking into a lot of venues, without they need to remember it.</p>

<p><strong>Roadmap:</strong></p>

<ul>
    <li>Ranking of near-by-venues, to select a more qualified venue than the closest one.</li>
    <li>Black/white-listing.</li>
    <li>Geofencing.</li>
    <li>Add support for Gowalla, Yelp, Brightkite, etc.</li>
    <li>Gather location from more sources than Google Latitude.</li>
</ul>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Let the new adventure begin...]]></title>
    <link href="http://blog.kenneth.io/blog/2010/07/19/let-the-new-adventure-begin/"/>
    <updated>2010-07-19T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/07/19/let-the-new-adventure-begin</id>
    <content type="html"><![CDATA[<p>About a month ago I <a href="http://twitter.com/auchenberg/status/16205847885">tweeted</a> that I had made a LIFECHANGING DICISION.  I had accepted a position at <a href="http://hoisthq.com/">Hoist</a>, a startup located in Copenhagen.</p>

<blockquote><em>Hoist is an online organisation and collaboration application for professionals and organisations. It’s the Facebook equivalent for the workplace, and it has enough functionality to compete with the best guys out there in the current market with its out of the box tools. But not only that, it has an in-built platform to simply create your own online ‘apps’ that cater to your individual business needs.</em>

<em>Hoist recently won the MIT Global Best Startup award, and if you spend a few minutes playing around with it it’s quite easy to see why. At the moment it’s only for cool kids via invites, but very soon you are going to hear a lot more about Hoist.</em></blockquote>


<p>At Hoist most of my time is going to be spent on web development, with a focus on HTML5, CSS and JavaScript, but I&#8217;m also going to have a look at the user experience around the web-product. It&#8217;s going to be damn exiting.</p>

<p>I&#8217;m looking forward to be a part of a new (quite impressive) team, with a vision that&#8217;s mind-blowing. I&#8217;m ready! Hoist-me-up!</p>

<p><strong>Update: </strong>As my fellow colleague Morten Just <a href="http://twitter.com/mortenjust/status/18914019216">kindly pointed out</a> at Twitter today, the italic paragraphs is kindly borrowed from my upcoming colleague <a href="http://www.chopeh.com/blog/chopeh-to-copenhagen/">Pete Lacey&#8217;s blog post</a> about his join to Hoist.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Slides from my Browser Extension session at Community Day 2010]]></title>
    <link href="http://blog.kenneth.io/blog/2010/05/30/slides-from-my-browser-extension-session-at-community-day-2010/"/>
    <updated>2010-05-30T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/05/30/slides-from-my-browser-extension-session-at-community-day-2010</id>
    <content type="html"><![CDATA[<p>This week I had a session about Browser Extensions in Mozilla Firefox and Google Chrome at<a href="http://community.in/copenhagen" target="_blank"> Community Day 2010 in Copenhagen</a>. The event was a cross community primary arranged by Microsoft Denmark. The event had a lot of different sessions subjects with everything from Browser Extensions to Dependency Injection in C#</p>

<p>Here is the slides from my session:</p>

<object id="__sse4344533" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="650" height="535" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kennethauchenberg-browserextensionscd10-100528115136-phpapp02&amp;stripped_title=browser-extensions-in-mozilla-firefox-google-chrome-4344533" /><param name="name" value="__sse4344533" /><param name="allowfullscreen" value="true" /><embed id="__sse4344533" type="application/x-shockwave-flash" width="650" height="535" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=kennethauchenberg-browserextensionscd10-100528115136-phpapp02&amp;stripped_title=browser-extensions-in-mozilla-firefox-google-chrome-4344533" name="__sse4344533" allowscriptaccess="always" allowfullscreen="true"></embed></object>


<p>If you attended the session, any feedback is appreciated! Please rate my session <a href="http://www.doodle.com/6yscng5fcut6gbyu">http://www.doodle.com/6yscng5fcut6gbyu</a>, or write a comment to let me know how I did.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[How to use desktop icons in Google Chrome - the HTML5 way.]]></title>
    <link href="http://blog.kenneth.io/blog/2010/05/04/desktop-icons-in-google-chrome/"/>
    <updated>2010-05-04T00:00:00+02:00</updated>
    <id>http://blog.kenneth.io/blog/2010/05/04/desktop-icons-in-google-chrome</id>
    <content type="html"><![CDATA[<p>Today I wondered how Google Reader and Google Mail was having nice high resolution icons when I saved a application shortcut to them in Google Chrome (currently a windows only feature).</p>

<p>I searched a bit, but had trouble finding documentation on this functionality. Even the Google Chrome/Chromium developer pages didn&#8217;t contain anything. But after some more research, I discovered a small <a href="http://www.google.com/chrome/intl/en/webmasters-faq.html">Webmaster FAQ for Google Chrome</a> that contained a single example on how to add icons, application name, description and application urls.</p>

<p>The code example:</p>

<pre>&lt;!DOCTYPE HTML&gt;
&lt;html&gt;
 &lt;head&gt;
  &lt;title&gt;Gmail&lt;/title&gt;
    &lt;meta name="application-name" content="Gmail"/&gt;
    &lt;meta name="description" content="Google's approach to email"/&gt;
    &lt;meta name="application-url" content="http://www.gmail.com"/&gt;
    &lt;link rel="icon" href=gmail_32x32.png sizes="32x32"/&gt;
    &lt;link rel="icon" href=gmail_48x48.png sizes="48x48"/&gt;
 &lt;/head&gt;
 &lt;body&gt;</pre>


<p>When I saw this code example the first thing that hit my mind was &#8220;This code is invalid!&#8221;.</p>

<p>Take a look at the sizes-attribute. This attribute isn&#8217;t a part of any final HTML specification, but then I had a look at the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#rel-icon">HTML5-specification</a>, and it seems to be that Google Chrome is following the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#rel-icon">HTML5-specification</a> for external icon resources (an obvious choice!).</p>

<p>The <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#rel-icon">HTML5 specification 4.12.3.7 Link type &#8220;icon&#8221;</a>,  defines as following:</p>

<pre>The specified resource is an icon representing the page or site, and should be used by the user agent when representing the page in the user interface.</pre>


<p>You might wonder what the correct values of sizes-attribute could be, and luckyly the <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#rel-icon">HTML5-specification</a> tells a bit more about the sizes-attribute.</p>

<pre>If specified, the attribute must have a value that is an <a href="common-microsyntaxes.html#unordered-set-of-unique-space-separated-tokens">unordered set of unique space-separated tokens</a>. The values must all be either <code title="attr-link-sizes-any"><a href="#attr-link-sizes-any">any</a></code> or a value that consists of two <a title="valid non-negative integer" href="common-microsyntaxes.html#valid-non-negative-integer">valid non-negative integers</a> that do not have a leading U+0030 DIGIT ZERO (0) character and that are separated by a single U+0078 LATIN SMALL LETTER X character (x)</pre>


<p>This means if you have two options for defining a size of an icon. You could either use &#8220;any&#8221; that represents that a resource which contains a scalable icon, or you could use a size in this pattern &#8220;[width]x[height]&#8221; with non negative integers that represents the icon size in pixels.</p>

<p>You are able to define multiple resource links for icons in various sizes.   Take a look at this example from the HTML5 specification:</p>

<pre>&lt;!DOCTYPE HTML&gt;
&lt;html&gt;
 &lt;head&gt;
  &lt;title&gt;lsForums — Inbox&lt;/title&gt;
  &lt;link rel=icon href=favicon.png sizes="16x16" type="image/png"&gt;
  &lt;link rel=icon href=windows.ico sizes="32x32 48x48" type="image/vnd.microsoft.icon"&gt;
  &lt;link rel=icon href=mac.icns sizes="128x128 512x512 8192x8192 32768x32768"&gt;
  &lt;link rel=icon href=iphone.png sizes="59x60" type="image/png"&gt;
  &lt;link rel=icon href=gnome.svg sizes="any" type="image/svg+xml"&gt;
 &lt;/head&gt;
 &lt;body&gt;</pre>


<p>As you can see this page would support a broad range of icon sizes form the commonly known favicon to a scalable svg icon.</p>

<p>We can only hope that future browsers, and existing ones (Safari Mobile on iPhone, currently having it&#8217;s own resource type) will start supporting this specification, since it would save us, web developers, a bit of work.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[CSS Reloader - an extension for Firefox and Chrome]]></title>
    <link href="http://blog.kenneth.io/blog/2010/03/21/css-reloader-an-extension-for-firefox-and-chrome/"/>
    <updated>2010-03-21T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2010/03/21/css-reloader-an-extension-for-firefox-and-chrome</id>
    <content type="html"><![CDATA[<p>Some months ago at Vodafone, I was finding myself doing a huge amount of F5&#8217;s duing the day while I was pixel-pushing parts of the layout of  at <a href="http://360.com">360</a>. 30 minutes later a new Firefox extension was born - <a href="https://addons.mozilla.org/da/firefox/addon/46211">CSS Reloader</a>.</p>

<p><a href="https://addons.mozilla.org/da/firefox/addon/46211">CSS Reloader</a> is an extension that allows you to reload the stylesheets of any site with an simple press to F9 (and via the context-menus).</p>

<p>I choose this shortcut, because it wasn&#8217;t used by any other extension in Firefox, and the key position is quite nice. In the middle of F5 (refresh), and F12 for (Firebug).</p>

<p>You may wonder why I would make such an extension, but imaging you building a true web application, such as <a href="http://360.com">360</a>, where almost everything is happing in the client. This means that if you are tweaking the layout of a model placed in a sub-view, you would have to go to this view every time, and the open the selected modal ( or just make you invokable from the JavaScript console). Anyways it takes time to restore the application state, and with CSS Reloader you can bypass that, because all the state is kept. It&#8217;s only ghd stylesheets that is being reloaded.</p>

<p>To begin with I released a version of<a href="https://addons.mozilla.org/da/firefox/addon/46211"> CSS Reloader for Firefox</a>, which already has been downloaded more than 7.700 times, so I guess some developers out there also thinks is quite usefull ;)</p>

<p>Because of the response (and my lately switch to Chrome) I decided to do an <a href="https://chrome.google.com/extensions/detail/dnfpcpfijpdhabaoieccoclghgplmpbd">Chrome-version of CSS Reloader</a>. The first version of this is avaiable at the Chrome extension gallery, but since the extensibility of Chrome isn&#8217;t the same as in Firefox, the Chrome-version is limited to only the F9-key.</p>

<p>CSS Reloader is my first browser extension and is literally 16 lines of code, that saves me  (and the rest of the 360-team) some time during the development 360, which then can be used on better things such as features, extensions and social-beering ;)</p>

<p>Please, let me know what you think of CSS Reloader! What can be improved?</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Internet Explorer User Agent revealed in Windows Phone 7]]></title>
    <link href="http://blog.kenneth.io/blog/2010/03/16/internet-explorer-in-windows-phone-7/"/>
    <updated>2010-03-16T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2010/03/16/internet-explorer-in-windows-phone-7</id>
    <content type="html"><![CDATA[<p>I&#8217;m here at the Microsoft MIX 2010 conference with <a href="http://madskristensen.net">Mads Kristensen</a> and <a href="http://larholm.com">Thor Larholm</a>. At the Mix10 conference, the Windows Phone 7 teams had some very big announcements – a lot of it had been kept secret and first revealed to the public now. Some of these secrets are the user agents of Internet Explorer for Windows Phone 7, which they simply wouldn’t give us.</p>

<p>I had a chance to play with the phone, but the Microsoft guys were not really that keen on revealing what browser version it is running. Despite this, I managed to secure a copy of the useragent string from the ASUS Galaxy 6 device:</p>

<blockquote><strong>Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0) Asus;Galaxy6</strong></blockquote>


<p>Unlike the iPhone, Windows Phone 7 will launch with a browser that does not support the latest web standards. Far from it, actually, as IE7 is already starting to feel outdated.</p>

<p>The IE team told me that the browser in Windows Phone 7 is a mobile version of IE7 with certain features ported from IE8. So it doesn’t use the full Trident 4 layout engine that IE8 uses, but instead Trident version 3.1 with a few extra capabilities.</p>

<p>This basically means that<strong> we should not </strong>expect to build HTML5-enabled apps for the Windows Phone 7. I perceive this as a very clear signal from Microsoft, that confirms Microsoft are going all-in on the Silverlight-platform for mobile development.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Playify - A tool to play your iTunes music in Spotify]]></title>
    <link href="http://blog.kenneth.io/blog/2010/02/28/playify-play-your-music-in-spotify/"/>
    <updated>2010-02-28T00:00:00+01:00</updated>
    <id>http://blog.kenneth.io/blog/2010/02/28/playify-play-your-music-in-spotify</id>
    <content type="html"><![CDATA[<p>Some days ago at <a href="http://demodag.org">#demodag</a>,  I launched <a href="http://playify.kenneth.io" target="_blank">Playify</a>, which is a new web application that helps your migrate your iTunes music to <a href="http://spotify.com" target="_blank">Spotify</a>. This first version is quite basic, it allows you to upload your iTunes Library file, the tool then parses the file, and asks Spotify which albums that is avaliable.  The results its presented as a nice sortable list (with covers from <a href="http://last.fm">Last.fm</a>).</p>

<p><a href="http://playify.kenneth.io">Playify</a> might help you getting started with <a href="http://spotify.com">Spotify </a>or even help you to discover some of your favorite music you had forgotten. Personally I found a lot of my favorite music this way, simply because I hadn&#8217;t thought about searching for it on <a href="http://spotify.com">Spotify</a>.</p>

<p>Try it out at <a href="http://playify.kenneth.io" target="_blank">http://playify.kenneth.io</a>, and let me know what works, and what that doesn&#8217;t!</p>
]]></content>
  </entry>
  
</feed>

