Moving to San Francisco

So, it turns out I’ve accepted a position with Facebook and will be moving to San Francisco as soon as my H1-B clears (should be in not too many weeks).

The last six years spent with BRIK has been wonderful and I’ve grown both as a human and as a developer. I’ve worked on a lot of fun projects, some of which has grown quite large, and some not so fun ones. I’ve worked with every aspect of development, from working with clients to drawing technical flowcharts only to throw them away moments later. I’ve worked solo and I’ve acted as CTO for my own, and other companies. I’ll still have an interest in the company as member of the Board, and as an owner, but if everything goes as planned, the company will carry on, and continue to grow even without me as we’ve got some great people on board, and hopefully more will join us (want in on the action?).

Time will tell what I’ll be doing at Facebook, but with the people I’ve met there, the atmosphere and the culture, I can promise you it’s going to be awesome! I have great expectations, to the company as a whole, but most to Facebook as a platform for a new generation of socially enabled (and driven) applications.

As you can probably understand, I’m really thrilled about joining the company, and to add to that, it has caused some publicity here in Norway in both regional and nation wide newspaper (printed and online).
Although most of the content is correct, and as expected, some of it comes across a bit out of context and without reference, which really isn’t to my liking. But I guess that is to be expected..
Anyway’s, just to make it clear; statements such as “I’m the best in the world” are taken completely out of context (and proportions) (I am one of the best on my specific field), and I did not make comments about certain people not knowing what they were doing, rather that they weren’t fully in control of that specific field.

But it’s getting late now, and in about 5 hours, I’ll be on my way to the airport to spend two weeks in San Francisco doing som RnR and some apartment scouting – if you know something suitable in the Mission are, do give me a shout!

Posted by oyvind.kinsey on October 3rd, 2011 under UncategorizedTags: , ,  • 4 Comments

How to set up an AD backed OpenID Provider without direct communication

I’ve currently got a project where I need to provide an OpenID Provider (OP) to authenticate users using Active Directory (AD), something that shouldn’t be to much of a hassle.
But there is a catch: the OP needs to be outside the firewall in order to talk to the Relying Parties (RP) and is unable to communicate directly with AD. So what can you do?
Read the rest of this entry »

Posted by oyvind.kinsey on July 9th, 2010 under easyXDM, programmingTags: , , ,  • 3 Comments

easyXDM 2.0 out, now with a proper website!

See http://easyxdm.net/wp/2010/03/17/easyxdm-2-0-now-even-with-a-new-website for more information!

Posted by oyvind.kinsey on March 19th, 2010 under easyXDMTags:  • 1 Comment

The upcoming release of easyXDM v2.0

Major improvements has been added to the project and I am proud to soon be able to release version 2.0, a release that features a new and simpler API, and a stack approach that is highly customizable when it comes to adding new features.

I would really love to get some feedback on the current state before releasing the new version, so as to make it as successful as possible, and so I turn to you.

Please, take a look at the repository at http://github.com/oyvindkinsey/easyXDM/, view the new documentation at http://easyxdm.net/v2.0.0/docs/, run the tests at http://easyxdm.net/v2.0.0/tests/ or download the code at http://easyxdm.net/v2.0.0/source.zip, and if you feel like it, give me some feedback either on this mailing list, or as an Issue at Github.
Some of the new features planned can be viewed at http://wiki.github.com/oyvindkinsey/easyXDM/planned-features, and I’ll continue to update this list as new ideas show up.

By the way, moving to the new API is really simple and only requires a few small changes – this is all shown in the examples.

And to show one of them, here is the new xhr.html sample, which shows how to use the easyXDM.Rpc (the old Interface class) together with the bundled xhr.html document.

Read the rest of this entry »

Posted by oyvind.kinsey on March 16th, 2010 under easyXDMTags: , , , , ,  • 1 Comment

easyXDM v1.8.0 relased

A lot has been going on with easyXDM over the past week, and I am proud to finally be able to release a version where all transport types, even the ones for IE6, deliver the same set of features.

From now on all the transports (and all the relying classes) supports

  • Reliability, ‘guaranteed’ delivery of messages
    The new ReliableBehavior adds this to the HashTransport
  • Sender-verification,  verifying that the message originates from the original sender. This removes the risk of malicious sites spoofing the sender
    This is added to the HashTransport and NameTransport by the VerifyBehavior
  • Queueing, you can now send multiple messages in the same js thread
    This is added to the HashTransport and NameTransport by the QueueBehavior

Read the rest of this entry »

Posted by oyvind.kinsey on February 27th, 2010 under easyXDMTags: , , , , , ,  • 5 Comments

easyXDM – finally with queuing and fragmenting!

With the newest release, 1.7.4 (see the commits here), we have added two important features, fragmenting for the HashTransport, and queing for both the HashTransport and NameTransport

Read the rest of this entry »

Posted by oyvind.kinsey on February 22nd, 2010 under easyXDMTags: , , , , , ,  • 6 Comments

Resizing iframes using easyXDM

One thing that many are using easyXDM (and other cross-domain hacks) for, is to dynamically change the size of embedded iframes based on the contents size, so as to avoid the scrollbars.

To make it easier to do this using easyXDM, I have now published an example how how to do this here.

It really is easy, on the page hosting the iframe you use the following to load the iframe

var transport = new easyXDM.transport.BestAvailableTransport({
    local: "../hash.html",
    remote: "http://provider.easyxdm.net/example/resized_iframe.html",
    container: document.getElementById("element_that_should_contain_the_frame"),
    onMessage: function(message, origin){
        this.container.getElementsByTagName("iframe")[0].style.height = message + "px";
    }
});

And then you put the following in the iframes body after the content

var transport = new easyXDM.transport.BestAvailableTransport({}, function(){
    transport.postMessage(document.body.scrollHeight);
});

Thats it!
Again, the sample can be viewed here.

Posted by oyvind.kinsey on February 19th, 2010 under easyXDMTags: , , ,  • 5 Comments

jsContract – Code contracts for Javascript

I have recently started using code contracts in one of my .net projects and I came to think that since most of the code I produce these days are in Javascript, why don’t I try it there to!

Well, easier said than done – there just is no decent frameworks for this.

During my searching I found some references to libraries such as Cerny.js and ecmaDebug, but these just didn’t make the cut  - they all required heavy (and hard to follow) restructuring of your code to make them work.

So what did I do? Well I made jsContract, a library that is clean and .. wait for it .. extremely easy to use! Read the rest of this entry »

Posted by oyvind.kinsey on February 3rd, 2010 under jsContract, programmingTags: , , ,  • 9 Comments

easyXDM just became even easier to use!

To accommodate older browsers that does not implement the postMessage interface, easyXDM is able to fall back to using the URI fragment trick, and until now this has meant that the provided hash.html file had to be uploaded to the local domain (the ‘calling’ domain).

This seems to be a dealbreaker for many as they are unable to upload files to the server, either due to special systems, or because they just want to present an API in the form of ‘just include this javascript file’ etc..

With the new 1.5.5 release, this has all changed.

For scenarios where you do not want to upload the hash.html file, you can now point the local attribute to any file present on the local domain, like robots.txt or favicon.ico, and supply a readyAfter attribute with the number of milliseconds to wait before assuming the local file to be loaded and the library to be ready for interaction.

{
local: "/robots.txt",
readyAfter: 1000,
remote: "http://.........",
...
}

Update: Just released 1.6.0 which makes it possible to utilize the current document instead of loading a new one from the local domain. This makes it very easy to integrate, but does mean that you will be modifying the documents location when falling back to the HashTransport – and this might interfere with for instance history managers etc.

{
local: window,
remote: "http://.........",
...
}

The hash.html file is still the recommended approach for stable
implementations as it is unobtrusive and it guarantees that the library is indeed ready
when transitioning into a ready state.
Using hash.html also shortens the time needed to initialize easyXDM
as there is no need for the delay to give the local file time to
properly load.

All the different ways to set up easyXDM can now be viewed at http://easyxdm.net/wiki/Documentation.ashx

Posted by oyvind.kinsey on January 2nd, 2010 under easyXDM, programmingTags: , ,  • 2 Comments

Modifying privileges stored binary using ExtJs

In an earlier post I showed you how to use binary operators to store multiple privileges/settings in a single integer field. Now I will present to you a simple control for visualizing and modifying such a value.

Read the rest of this entry »

Posted by oyvind.kinsey on November 17th, 2009 under programmingTags: , , , ,  • 1 Comment