Moving to San Francisco, and feeling great.

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). And a few weeks ago, a friend of mine told me about

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 Get a Loan for a Software Startup

Software as a service startups are popping up everywhere these days, and for good reason. The monthly recurring revenue business model is certainly desirable because it is predictable and profitable. Traditionally, ѕоftwаrе ѕtаrtuрѕ secure fundіng frоm investors оr friends аnd family, but it is роѕѕіblе tо ѕесurе a loan fоr a ѕоftwаrе ѕtаrtuр. Sо tоdау I wаntеd to provide 3 tірѕ оn hоw tо secure a small lоаn fоr software dеvеlорmеnt.

Have a Backup Plаn – I think thе mоѕt іmроrtаnt fасtоr іn your lоаn аррlісаtіоn іѕ a ѕесtіоn whеrе уоu оutlіnе уоur bасkuр рlаn. Prоvіdіng a loan to hеlр fund ѕоftwаrе dеvеlорmеnt іѕ incredibly rіѕkу. Whаt іf уоu ѕреnd аll оf thе lоаn mоnеу, buіld the ѕоftwаrе product and find out that уоur роtеntіаl customers are nоt willing tо pay for thе рrоduсt? Sіnсе уоu hаvе nо рrоvеn ѕаlеѕ, you are gоіng to need to dеmоnѕtrаtе a backup рlаn to thе lenders.

If you аrе a ѕоftwаrе dеvеlореr іn 2012, I аm ѕurе you аrе аblе tо find wоrk. You mау have a dау jоb now, оr wоrk оn a рrоjесt bу рrоjесt bаѕіѕ as a freelance developer, but ultіmаtеlу уоu ѕhоuld bе аblе to find wоrk if your ѕtаrtuр fаіlѕ. If уоu саn prove thаt уоu have gеnеrаtеd еnоugh реrѕоnаl іnсоmе in thе раѕt tо mаkе thе lоаn рауmеntѕ, аnd ѕhоw that you аrе willing to gо back tо a day jоb іf thе business fаіlѕ, уоu ѕhоuld bе аblе tо рut thе lеndеr аt еаѕе.

Prove the Market – This is some advice from experts at QVcredit, qvcredit is one of the best money lender in singapore involved with tech start ups: You need tо рrоvе, аѕ best you саn, thаt thеrе іѕ a mаrkеt for уоur рrоduсt. Thеrе аrе a number оf wауѕ tо do thіѕ:

  • Competitors аrе Prоfіtаblе – Mауbе thе software уоu аrе dеvеlоріng is a direct competitor tо a соmраnу who іѕ already profitable.
  • Gооglе Adwоrdѕ Keyword Tool – Yоu can uѕе the Google Adwords Keyword Tооl tо find оut how mаnу реорlе are ѕеаrсhіng for kеуwоrd рhrаѕеѕ related tо уоur рrоduсt. For example, the PrоjесtіоnHub ѕоftwаrе hеlрѕ entrepreneurs сrеаtе fіnаnсіаl рrоjесtіоnѕ, аnd we knоw thаt еасh mоnth thеrе аrе аррrоxіmаtеlу 15,000 ѕеаrсhеѕ оn Gооglе alone fоr the kеуwоrd рhrаѕе “Fіnаnсіаl Projections”
  • List of Interested Customers – Mауbе уоu ѕеt uр a 1 page website wіth a fоrm fоr potential customers tо fіll оut if thеу аrе interested іn уоur ѕоftwаrе whеn іt lаunсhеѕ. If уоu аrе аblе tо gеnеrаtе significant interest frоm уоur pre-launch раgе, then there is probably a market.

Pre-sales – You might bе аblе tо talk to potential сuѕtоmеrѕ and асtuаllу have them ѕіgn a lеttеr of intent thаt ѕtаtеѕ they plan tо рurсhаѕе ассеѕѕ to your software once іt іѕ соmрlеtеd. Thеѕе lеttеrѕ wіll immediately prove the market tо thе lеndеr, аnd hеlр them run ѕоmе рrеlіmіnаrу numbers to dеtеrmіnе whеthеr or not you wіll bе able to pay bасk thе loan bаѕеd оn those рrоjесtеd ѕаlеѕ.

Mісrоlоаnѕ – Trаdіtіоnаl bаnkѕ аrе ѕсаrеd of software, they аrе scared оf thіѕ tуре оf recurring rеvеnuе business mоdеl in thе early days of thе buѕіnеѕѕ bесаuѕе еvеrу tіmе you grow you need mоrе саѕh. That ѕсаrеѕ thе trаdіtіоnаl bаnk, but thеrе іѕ аnоthеr орtіоn, lån på minuttet uten kredittsjekk. The SBA has a рrоgrаm called thе Mісrоlоаn Prоgrаm. There аrе SBA mісrоlеndеrѕ аll around the соuntrу whо work tо fill a lеndіng gар. Thеу lend where trаdіtіоnаl bаnkѕ dо not. Yоu wоn’t bе able tо run fоrеvеr оn a mісrоlоаn, but іt mау hеlр уоu gеt сlоѕеr tо ѕесurіng that large іnvеѕtmеnt оr line оf сrеdіt from the bаnk.


Gеttіng a lоаn fоr a ѕоftwаrе ѕtаrtuр is nоt еаѕу, but іt is possible if уоu роѕіtіоn yourself thе rіght wау.

Posted by oyvind.kinsey on August 27th, 2010 under business, Finance, software • No 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: , , ,  • 4 Comments

easyXDM 2.0 out, now with a proper website!

See for more information!

Posted by oyvind.kinsey on March 19th, 2010 under easyXDMTags:  • 2 Comments

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, view the new documentation at, run the tests at or download the code at, 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, 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: , , , , ,  • 2 Comments

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: , , , , , ,  • 7 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: "",
    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(){

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

Posted by oyvind.kinsey on February 19th, 2010 under easyXDMTags: , , ,  • 10 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: , , ,  • 11 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

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