Wednesday, March 05, 2008

Travel blog

I have put up a temporary travel blog at http://espentravel.blogspot.com/. I will get my own domain, put up some photos on flickr and add more content later. For now you can read my first post from way back in January when I arrived in Istanbul. Feel free to leave a comment or subscribe if you want to receive updates.

Sunday, February 03, 2008

Moving on and around

After seven years at 24SevenOffice there are new challenges that awaits me. Where and what these challenges are I will let time show me. First of all I want to see and learn more of the world. I am writing this in, surprise surprise, Kashan in Iran. Most of the visitors to this blog come from America and Iran might be a surprising place to choose I guess most wonder. In fact the western viewpoint and most messages from the media about Iran is so far from the truth as possible. The country has a varied landscape, beatuiful old cities and most of all; very friendly and open people. There are poor people and in many ways a developing country but the society as a whole functions good and I have yet to see any crimes or faced any problems as a tourist (except some harmless fake police and young annoying teenagers seeing the rare tourist).

When I started in 24SevenOffice at the age of ninteen back in 2000 we were four guys who tried to build a basic web-based crm and invoicing system for small businesses. Since then the strategy, product suite and company has grown into one of the two most advanced and comprehensive web-based erp-solution's in the world. The company was listed on Oslo Stock Exchange last year and now has over fifty employees. Building a CRM-system and being one of the first products to use Ajax has been very interesting and I have enjoyed the years at 24SevenOffice. But seven years is a long time and I do not see myself as a programmer in ten og twenty years. I also prefer to work in a smaller company with more influence over the strategy.

I am confident in 24SevenOffice's success in the future. I am nowhere near the sell-button in my stock portfolio. But I should say that my cravings to see the world and finding new challenges is not the only reasons why I am no longer with 24SevenOffice. Lack of international focus (specially US), choosing to build advanced and complex product modules instead of opting for easy and simple solutions, and little willingness to build cross-platform solutions were issues me and 24SevenOffice's management disagreed on. Advanced is good but additional features should come in later versions and be less visible. 37Signals and Google may lack many features but it is the simple interface and workflow that makes them succesfull.

My plans for the future is to travel for at least six months, hopefully a year. As mentioned I am now in Iran. I flew out to Istanbul three weeks ago and spent two days there. Then by train to Tehran. I met two cool italian guys and we toured around the country: Yazd, Kerman, Bandar-Abbas, Minab, Qeshm Island, Shiraz, Esfehan. I am now in Kashan and will head north again to Terhan for snowboarding in Dizin. Snowboarding in Iran you might ask yourself. Yes, there are many high mountains here. Dizin is at 3000m and has fantastic powder snow. And it is cheap. For example the bus I took from Esfehan to Kashan took 3,5 hours and cost 1,5 dollar. And no I was not sitting next to a chicken. The buses here are modern Volvo's and you get a small snack on the journey.

The rest of my very flexible travel itinerary is like this:
Dubai, Nepal, Bhutan, Tibet, China, Japan, Filliphines, Australia, Argentina, Brazil.

I will create a travel blog later. Internet is painfully slow here so I will wait until I go to Dubai so I can upload some photos.

Friday, January 04, 2008

Cross-channel campaigns with AdWords & Analytics + internal tracking

I have two goals I want to achieve with Google AdWords and Analytics:

1. Track campaigns from other advertising networks and see resuls in Analytics and preferably AdWords.
2. Track specific campaign internally in our system. This way I can see which specific campaigns our registration came from. Thus in 24SevenOffice I can use our CRM-module to get overall statics on sales opportunities to see which campaign that does not only lead to a conversion (registration) in AdWords but also the number of actual sales and how much $ we get out of each campaign. This will be a powerful solution to measure ROI on all internet advertising we do.

In AdWords you can set up cross-channel campaigns but for some reason you need to set up a specific landing page with javascript code, but I do not a specific landing page for all our campaigns (we are testing out various other advertising networks). Hopefully tagged url's for Google Analytics will do the trick using the querystring values:

Campaign Source (utm_source)
Required. Use utm_source to identify a search engine, newsletter name, or other source.
Example: utm_source=google
Campaign Medium (utm_medium)
Required. Use utm_medium to identify a medium such as email or cost-per- click.
Example: utm_medium=cpc
Campaign Term (utm_term)
Used for paid search. Use utm_term to note the keywords for this ad.
Example: utm_term=running+shoes
Campaign Content (utm_content)
Used for A/B testing and content-targeted ads. Use utm_content to differentiate ads or links that point to the same URL.
Examples: utm_content=logolink or utm_content=textlink
Campaign Name (utm_campaign)
Used for keyword analysis. Use utm_campaign to identify a specific product promotion or strategic campaign.
Example: utm_campaign=spring_sale

Google adwords enables by default a similar tracking url but with a unique id which makes it hard to get which campaign the visitor actually clicked on. In AdWords I must manually add a campaign id to get this value on our site.

In 24SevenOffice I have set up each Google AdWords campaign as well as other internet advertising campaigns.

Technorati:

This is an old draft I wrote last year.

Monday, November 26, 2007

Will Facebook crush MySpace by adding band pages?

I am far from a fan of MySpace but I occasionally visit the site to listen to music of bands I have heard good things about. The design and crappy music player makes up a horrible experience. But the idea behind the band profiles which has been a major reason for the MySpace success is a good one. And Facebook has obviously noticed this. I first stumbled upon the product pages on Facebook by being a fan of iUseThis product page. Today Facebook launched this product/fan feature and the main example is Dave Matthews Band. The major hurdle for Facebook is to get not only the big bands like Dave Matthews Band to create such a page but also smaller bands which has been the case on MySpace. If Facebook can achieve that I am positive that they will crush MySpace. And I really hope they do because the design on MySpace pages is not good for anyone. The facebook pages on the other hand are designed like the rest of Facebook; simple and easy to navigate with a familiar structure. The music player is a simple list and the selected song starts playing instantly. Works great. I am a fan.

Friday, October 26, 2007

Google cuts me in half

Reading about the latest change in pagerank by Google I had to check mine. I must say I was fairly confident that it still would be at 6, but no. Oh no! Google cut me in half! Down to three it is. So far no change in incoming traffic. I get about 80% of my traffic from Google. I do not participate in any link schemes or anything like that so not sure why Google changed my pagerank.

At least I am not alone:

Google Toolbar PageRank Losses For Hundreds of Websites

Digg Favorites Slapped By Google

Google Turns PageRank into a Joke - OR - How to Get On With Blogging


Technorati:

Friday, October 19, 2007

Phiary

Arne from iUseThis.com is apparently getting some cool influences in London and has launched a new photo diary called Phiary. The idea is to upload a photo for each day to keep a photo diary, so not a photo collection like with Flickr. I like the idea and it will be interesting to see if it will catch on.

Technorati:

Friday, October 12, 2007

How to track traffic from lesser known search engines with Google Analytics

Google Analytics will track traffic from search engines including which specific keywords the visitor searched for. Google handles most well known search engines but by default Google Analytics does not handle the two local search engines here in Norway, Kvasir and Sesam. It is quite easy to "hack" the GA javascript code so it will track them:

_uacct = "UA-XXXXXX-X";
_uOsr.push("kvasir"); _uOkw.push("searchExpr");
_uOsr.push("sesam"); _uOkw.push("q");
urchinTracker();


Basically all you need to add is line #2 and #3. The first and the last line you will already have included in your pages.

GA has two arrays which it uses for tracking search engines: _uOsr which holds the search engine domain name and _uOkw which holds the search keyword in the querystring. So by adding a new entry in the array you can add local or lesser known search engines so you can track these in Google Analytics.

By default GA tracks the following search engines:


_uOsr[0]="google"; _uOkw[0]="q";
_uOsr[1]="yahoo"; _uOkw[1]="p";
_uOsr[2]="msn"; _uOkw[2]="q";
_uOsr[3]="aol"; _uOkw[3]="query";
_uOsr[4]="aol"; _uOkw[4]="encquery";
_uOsr[5]="lycos"; _uOkw[5]="query";
_uOsr[6]="ask"; _uOkw[6]="q";
_uOsr[7]="altavista"; _uOkw[7]="q";
_uOsr[8]="netscape"; _uOkw[8]="query";
_uOsr[9]="cnn"; _uOkw[9]="query";
_uOsr[10]="looksmart"; _uOkw[10]="qt";
_uOsr[11]="about"; _uOkw[11]="terms";
_uOsr[12]="mamma"; _uOkw[12]="query";
_uOsr[13]="alltheweb"; _uOkw[13]="q";
_uOsr[14]="gigablast"; _uOkw[14]="q";
_uOsr[15]="voila"; _uOkw[15]="rdata";
_uOsr[16]="virgilio"; _uOkw[16]="qs";
_uOsr[17]="live"; _uOkw[17]="q";
_uOsr[18]="baidu"; _uOkw[18]="wd";
_uOsr[19]="alice"; _uOkw[19]="qs";
_uOsr[20]="yandex"; _uOkw[20]="text";
_uOsr[21]="najdi"; _uOkw[21]="q";
_uOsr[22]="aol"; _uOkw[22]="q";
_uOsr[23]="club-internet"; _uOkw[23]="q";
_uOsr[24]="mama"; _uOkw[24]="query";
_uOsr[25]="seznam"; _uOkw[25]="q";
_uOsr[26]="search"; _uOkw[26]="q";
_uOsr[27]="szukaj"; _uOkw[27]="szukaj";
_uOsr[28]="szukaj"; _uOkw[28]="qt";
_uOsr[29]="netsprint"; _uOkw[29]="q";
_uOsr[30]="google.interia"; _uOkw[30]="q";
_uOsr[31]="szukacz"; _uOkw[31]="q";
_uOsr[32]="yam"; _uOkw[32]="k";
_uOsr[33]="pchome"; _uOkw[33]="q";


See the javascript here.

Technorati:

Alexa

To be able to see how a website ranks in terms of visitors compared to others is great. Alexa does exactly that, but it requires visits to be tracked using a toolbar. Who wants to install a toolbar just to be able to track browser visits? Not me. And that is why I think Alexia statistics are flawed and should never be used to compare two websites or in any other form serve as documentation for website popularity.

Technorati:

Wednesday, October 10, 2007

Apple

I bought some Apple shares yesterday. A few years too late I know but I still believe Apple will continue to grow their market share. Not only because everyone buys iPod and everyone wants an iPhone. But because everyone who has an iPod now also wants a Mac. I bought a Mac mini two months ago and I understand why people want to switch from PC/Win to Mac/OSX. I think this image from Princeton University speaks for itself:



Technorati:

Tuesday, October 09, 2007

Handling session logout in Ajax-applications

Ajaxian posts about how to manage session in an ajax-enabled application. We do a ping to the server each minute to keep session alive (and to check various stuff). If that for some reason fails so the user no longer has a session, we handle session logout like this (prototype example):

#1:

if a user is not logged in the requested page (/getSomeData/) returns a http 403 - forbidden status.

#2:

var url = "/getSomeData/";
var opt = {
method: "post",
onSuccess: success,
// Handle 404
on404: function(t) {
alert(’Error 404: location "‘ + t.statusText + ‘" was not found.’);
},
// Handle other errors
onFailure: function(t) {
if ( t.status == 403 ) {
doLogin(); // show login box to user
}
},
asynchronous: false
}

new Ajax.Request(url, opt);

(code not tested..just example :)

If you do not want to ping every minute, we do so mainly because of other reason than to keep session alive, then Jack Slocum's advice (outlined in the comments here) is a good solution. It basically does a cookie check every 30 seconds on the client and pings the server just before the session is about to be end.

Technorati: ,

Trying to find a CMS

We are looking for a good and easy to use CMS-solution for 24SevenOffice.com. So far I am considering a few Norwegian solutions; Idium and CoreTrek as well as open-source alternatives such as Joomla, Umbraco and perhaps I will look further into Wordpress. We really don't care about bells and whistles all we require is:

* Easy content updating for editors.
* Easy to create landing pages for advertising campaigns.
* Good template management, preferably using XSLT.
* Ability to control all aspects of SEO: Good url's, comply to W3C-standards, easy to insert meta keywords, meta-description, document title and headings, generate sitemaps.

And please do not do like these guys: No demo and no prices published on their website. That probably means it is way overpriced and too hard to use without assistance. They lost me at their follow up phone-call (probably didn't help that I was in a cranky mood this morning though). If you are a marketing manager who sells software without a demo on your website and no prices you deserve to be fired.

Please let me know if you have anything to recommend.

Technorati:

Sunday, October 07, 2007

Sundays

Just finished watching the last episodes of Entourage. What on earth should I do the next Sunday when I am hangover?

Wednesday, September 26, 2007

UI / Listviews #2

Back in January i asked whether to use checkboxes in a list or not. While many desktop applications do not use checkboxes to select items many web-applications do. And now even one more to: after my previous post Yahoo! mail decided to change their list implementation to include checkboxes. (If they only would remove all those annoying ads more people would actually use it as well). I assume this is either because users complained about this in the beta testing or the usability experts at Yahoo! overruled the initial decisions made by the developers. Or; probably both.

Ryan Mitton nails it in his comment on my previous post:

in my opinion as a user, drop down menus and anything that 'has to open' leads me to the perception of cumbersome. if more checkboxes or simple 'one click' selections were made (as opposed to the 'two click' of dropping the menus, then choosing selection....the software would 'feel' less cumbersome. quick quick quick is the mantra of everything!


We have decided to change our UI guidelines to always include checkboxes in listviews. In fact we will support both checkboxes and normal ctrl/shift-click selection. So this is one small step for 24SevenOffice and one big step towards to ease of use for our users :)

Oh, and checkboxes is obviously not a word according to Blogger's spellcheck.. ;)

Technorati:

Thursday, August 09, 2007

Don't poke me

Is it just me or does the Facebook poke hand look like the hand of Mr. Burns? I get creeped out every time I get poked. Which I by the way seriously dislike and I never poke back.



Technorati:

Thursday, July 26, 2007

Automated mail don't have to be boring and unfriendly

Subject: Espen - Your CD Baby Order!
From: CD Baby loves Espen

Espen -

Thanks for your order with CD Baby!

Your CDs have been gently taken from our CD Baby shelves with
sterilized contamination-free gloves and placed onto a satin pillow.

A team of 50 employees inspected your CDs and polished them to make
sure they were in the best possible condition before mailing.

Our packing specialist from Japan lit a candle and a hush fell over
the crowd as he put your CDs into the finest gold-lined box that money
can buy.

We all had a wonderful celebration afterwards and the whole party
marched down the street to the post office where the entire town of
Portland waved "Bon Voyage!" to your package, on its way to you, in
our private CD Baby jet on this day, Wednesday, July 25th.

I hope you had a wonderful time shopping at CD Baby. We sure did.
Your picture is on our wall as "Customer of the Year." We're all
exhausted but can't wait for you to come back to CDBABY.COM!!

Thank you, thank you, thank you!

Sigh...

--
Derek Sivers, president, CD Baby
the little store with the best new independent music
http://cdbaby.com cdbaby@cdbaby.com (503)595-3000

-----------

In case you are wondering what I ordered: Daniel Eriksen - Ya Ya. A blues artist from my home town, Langesund. Check out his website for more info.

Technorati:

Tuesday, July 24, 2007

Who's calling?

37Signals mentions a neat iPhone feature that displays the location based on the area code. Now I agree that it's a nice feature but the little application I am using on my phone is so much better. With the use of 3G and an application from Opplysningen 1881 the caller's name and address is displayed when I receive a call. The application does a request to Opplysningen 1881 to look up the number in the white and yellow pages and within a couple of seconds the name and address is displayed on my phone. So I can let it ring for two seconds and then decide whether to take the call or not.

Check this page for more information (in Norwegian).



Technorati:

Tuesday, July 10, 2007

24SevenOffice listed at Oslo Stock Exchange

We have had quite a few things happening on the financial side lately. We had a new round of funding bringing in just over $10 million USD. After the funding was final we got listed on Oslo Stock Exchange on the Oslo Axess list. Previously we were in the unlisted market operated by The Norwegian Securities Dealers Association. The board has also been replaced and now only includes external members, most notable CEO of Dell Norway, Michael Jacobs, and Jo Arnstad, CEO of an investment fund and previously entrepreneur of a software company which he later sucessfully listed on Oslo Stock Exchange.

Outside Oslo Stock Exhance


Ringing the opening bell


Technorati:

Friday, July 06, 2007

64-bit OLEDB Provider for ODBC (MSDASQL) Available in Longhorn Server, Starting Beta 3

We’re pleased to announce that Longhorn Server Beta 3 will include a 64-bit version of MSDASQL, Microsoft’s OLEDB Provider for ODBC.

Isn’t MSDASQL Deprecated?

Previous messaging on MSDN indicated that a 64-bit version of MSDASQL would not be available. However, we have received numerous requests from customers for this technology and we are making it available to address the pain experienced in the scenarios described above without 64-bit MSDASQL.


For some very very strange reason Microsoft decided to leave out a 64-bit version of MSDASQL in the 64-bit version Windows Server 2003. Many applications requires the ability to import from Excel and Access databases and without the driver developers must find another way to access data in Excel spreadsheets in 64-bit version of Windows Server 2003. We have moved over to 64-bit and to be able to still support our Excel import feature in 24SevenOffice we had to put up a 32-bit Windows 2000 box to be able to run the Excel driver from there and then put the data to the 64-bit database server.

I really hope the driver will be available for Windows Server 2003 as well.

Thursday, May 24, 2007

I don't get it

How is this useful?

Tuesday, April 24, 2007

Gaia Ajax Widgets Goes Open Source

Ajaxian has a brief intro to Gaia Ajax Widgets today. Im surprised they do not mention the main thing about this new version: Gaia is now open-source. They now offer a dual-licence model; one GPL and a Gaia commerical license for all your corporate ajax needs.

Also, it seems like this new open-source release no longer includes the 'powered by' image which was inserted in earlier versions (making it useless in practical development). I hope one of the nice Gaia guys can confirm this for me. confirmed.

Technorati: ,