Kenneth Auchenberg

Introducing Auto-Check-in

The past few days I worked on a new mashup-project I wanted to realize since the day I started used Foursquare…

Let me introduce Auto-Check-In. It’s a new service that removes the hassle about remembering to check-in, since it’s doing to for you. Auto-Check-in does not require (yet) another app running in the background, since it’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).

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.

For the technical interested, I’ve build the service in Python, and it’s running on Google App Engine, with a true async architecture, which takes advantage of the newly released Task Queues in App Engine.

I teamed up with my friend and colleague Morten Just, which had a lot ideas on how the service should work, and the same afternoon he had a user interface ready.

Auto-Check-In 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.

Roadmap:

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

Let the new adventure begin…

About a month ago I tweeted that I had made a LIFECHANGING DICISION.  I had accepted a position at Hoist, a startup located in Copenhagen.

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.

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.

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

I’m looking forward to be a part of a new (quite impressive) team, with a vision that’s mind-blowing. I’m ready! Hoist-me-up!

Update: As my fellow colleague Morten Just kindly pointed out at Twitter today, the italic paragraphs is kindly borrowed from my upcoming colleague Pete Lacey’s blog post about his join to Hoist.

Slides from my Browser Extension session at Community Day 2010

This week I had a session about Browser Extensions in Mozilla Firefox and Google Chrome at Community Day 2010 in Copenhagen. 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#

Here is the slides from my session:

If you attended the session, any feedback is appreciated! Please rate my session http://www.doodle.com/6yscng5fcut6gbyu, or write a comment to let me know how I did.

How to use desktop icons in Google Chrome – the HTML5 way.

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).

I searched a bit, but had trouble finding documentation on this functionality. Even the Google Chrome/Chromium developer pages didn’t contain anything. But after some more research, I discovered a small Webmaster FAQ for Google Chrome that contained a single example on how to add icons, application name, description and application urls.

The code example:

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

When I saw this code example the first thing that hit my mind was “This code is invalid!”.

Take a look at the sizes-attribute. This attribute isn’t a part of any final HTML specification, but then I had a look at the HTML5-specification, and it seems to be that Google Chrome is following the HTML5-specification for external icon resources (an obvious choice!).

The HTML5 specification 4.12.3.7 Link type “icon”,  defines as following:

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.

You might wonder what the correct values of sizes-attribute could be, and luckyly the HTML5-specification tells a bit more about the sizes-attribute.

If specified, the attribute must have a value that is an unordered set of unique space-separated tokens. The values must all be either any or a value that consists of two valid non-negative integers 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)

This means if you have two options for defining a size of an icon. You could either use “any” that represents that a resource which contains a scalable icon, or you could use a size in this pattern “[width]x[height]” with non negative integers that represents the icon size in pixels.

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

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

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

We can only hope that future browsers, and existing ones (Safari Mobile on iPhone, currently having it’s own resource type) will start supporting this specification, since it would save us, web developers, a bit of work.

CSS Reloader – an extension for Firefox and Chrome

Some months ago at Vodafone, I was finding myself doing a huge amount of F5’s duing the day while I was pixel-pushing parts of the layout of  at 360. 30 minutes later a new Firefox extension was born – CSS Reloader.

CSS Reloader is an extension that allows you to reload the stylesheets of any site with an simple press to F9 (and via the context-menus).

I choose this shortcut, because it wasn’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).

You may wonder why I would make such an extension, but imaging you building a true web application, such as 360, 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’s only ghd stylesheets that is being reloaded.

To begin with I released a version of CSS Reloader for Firefox, which already has been downloaded more than 7.700 times, so I guess some developers out there also thinks is quite usefull ;)

Because of the response (and my lately switch to Chrome) I decided to do an Chrome-version of CSS Reloader. The first version of this is avaiable at the Chrome extension gallery, but since the extensibility of Chrome isn’t the same as in Firefox, the Chrome-version is limited to only the F9-key.

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 ;)

Please, let me know what you think of CSS Reloader! What can be improved?

Internet Explorer User Agent revealed in Windows Phone 7

I’m here at the Microsoft MIX 2010 conference with Mads Kristensen and Thor Larholm. 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.

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:

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

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.

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.

This basically means that we should not 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.

Playify – A tool to play your iTunes music in Spotify

Some days ago at #demodag,  I launched Playify, which is a new web application that helps your migrate your iTunes music to Spotify. 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 Last.fm).

Playify might help you getting started with Spotify 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’t thought about searching for it on Spotify.

Try it out at http://playify.kenneth.io, and let me know what works, and what that doesn’t!