Home

GeekRider - the goal, technical perspective

As I briefly mentioned earlier I am endeavoring on a project which is going to demand a lot from me physically, but also from a technical perspective. I have a lot of things on my plate, during daytime I'm 100% engaged with work at clients, nighttime is the time I have to squeeze in a lot of activities into. For one, I have two kids that needs my attention - and I have a golden rule of engaging with them from the time I get back from work till they're in bed. This leaves some 2-4 hours left per day to do all the things I do. I therefor have to be smart with my time and make the most of it. Adding things into the schedule is hard and if I add something, it in general must have a synergy with something already in my schedule. In my schedule I have a couple of open-source projects that I focus a lot of my energy on; BalderBifrost and Forseti, so pretty much anything I put in must relate to these in some fashion. Geekrider arose concretely from this need of synergy. I need to focus more on physical exercise and brought in Geekrider with the synergy of pushing forward development on the open-source projects I'm involved in forward. Balder will hopefully serve the purpose of 3D visualization and bringing forward the a few features that I want to have in that project. As a general web platform, I could have gone for anything already out there, but I wanted to push forward features in Bifrost, I therefor decided to build the site from scratch on top of it and also push into the cloud by hosting it on AppHarbor. Since the site will become very JavaScript intensive, and I pretty much get allergic reactions when I don't write tests or BDD style specifications for my code, the last project also will get some love; Forseti. The reasoning behind the project is that most test runners out there has so many moving parts in the form of dependencies to get up and running and they're also very focused on running things in a browser. Forseti is aiming towards something very different, a headless runner for JavaScript tests based on Env.js not using by default any browsers to execute the tests/specs.

One of the goals for Bifrost is to make it easier for developers to create rich web based applications, promoting good software development practices. Today, the RIA space is rapidly changing and for the most part moving away from plugin technologies such as Flash or Silverlight and focusing more on the open standards found in HTML, CSS and JavaScript/EcmaScript.

From a fronted development perspective, Bifrost is taking on this latter part. Traditionally one would compose the resulting web page that is handed over to the client on the server. Multiple solutions exist out there for doing so, and specifically in the .net space, ASP.net and its derivatives are the most popular ones. Rendering, as this is often referred to, adds an extra load onto the server - not only is the server responsible for dealing with the request from the user, wether it is getting data or performing an action, but it also has to transform the result into something the client can show. On top of all this, it has to deal with security. This pattern is a very proven pattern, but in my opinion not the pattern we want to be doing moving forward, and therefor Bifrost will focus on a different pattern. Sure, Bifrost will not only be compatible, but also support out of the box the traditional route - but for now in an opinionated fashion by only supporting ASP.net MVC. The technique that Bifrost will be focusing in on is the Single Page Applications, were you basically hand over the "rendering" to the client and let the client compose the page by swapping in and out elements at runtime. This is in fact nothing new, ever since AJAX became the big thing, we've pretty much been doing this - but only for parts at a time and even letting parts of our page be swapped out for new versions being rendered by the server dynamically.

Bifrost will have a composition technique that is based on, as most things in the framework, conventions. The focus will be on Features and one can point to a feature simply by adding a <div/> tag and give it the attribute data-feature="[name of feature]". Based on the configurable convention, Bifrost will find the necessary files representing the feature. Looking at the page from Geekrider as it is at the time of writing this post, we'll have the following.

NewImage

So, back on track. Now that we have this, what is the next logical step?  Up till now, Bifrost has been very server side rendering focused, sporting an extension for ASP.net MVC and taking advantage of that stack. That is about to change, or should I say, the fact that it has been the only way to use Bifrost is about to change. A set of REST endpoints will be exposed from Bifrost, enabling any client to interact with the framework. From a Web developer perspective, this is not good enough, we're therefor working on bringing in a JavaScript library that will just nicely integrate with all this.

In addition to the goals summarized thus far, I've also got another goal for me personally; I want to become more productive with tools other than what I'm used to. I recently bought a MacBook Air, an impressive piece of hardware - but it doesn't sport the same specs as my MacBook Pro or my iMac, I've therefor decided not to put any virtualization software on it to run Windows. This means I have to start using other tools than Microsofts Visual Studio for my development. For .net development, I'm for now using MonoDevelop and for general HTML, JavaScript and CSS development, I'm using TextMate. My long term goal is to be using TextMate for everything.

Summarizing, Geekrider will be the proof of concept for features added to Balder and Bifrost - driving forward with new thoughts and ideas. I will try to blog about the progress as much as my schedule can permit. This means I should keep myself from playing around or doing unnecessary stuff.

This post was brought to you by

PartyPoker

 

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

State of the union; 2012

So, here we are then - actually its been almost two weeks now; 2012. As most bloggers tend to do, I'm going to do the same; do a state of the union thing to tell the world "wasssssup". Consider it a delayed Christmas letter from a relative. :)

2011 was probably one of the most stressful years I've had ever, it is the first year I am totally on my own as a freelancer and not having an employer, but have clients instead. That is needless to say quite different, not in the terms of what kind of work I do, but in more in a psychological perspective. In addition to that I had quite a few speaking engagements. Late 2010 I signed a deal with Programutvikling to do courses in 2011, I did a couple for them as well, but decided to drop doing courses as I was spreading myself way too thin doing way too much stuff. During 2011 I've also been heavily involved in the open source community, for the most part on the following projects; Balder and Bifrost, with most focus on the latter. I also started another project called Forseti, a JavaScript test/spec headless runner written in C# and has the goal of being a self contained executable that is easy to use and get up and running. October last year I got renewed as a Microsoft MVP for the 4th time, very honored and grateful to be receiving this award.

Come 2012, still alive and kicking, new opportunities and challenges are coming. For the last two and a half years I've been hired by Komplett to be their solutions architect and help build there vNext platform for e-commerce for both mobile and desktop web-browsers. The project has been an awesome experience and helped shape Bifrost. But, a new opportunity arose, and from 1st of March this year, I will be involved in a software project at Statoil, Norwegian oil-company. Really looking forward to be involved in that particular project. I will however continue to press forward on building features and fixing bugs in all of the open source projects I'm involved in. Will also try to involve myself more in the developer communities, such as NNUG and other communities. Allthough software is what I do, I'm also slowly realizing that I need to focus more of my energy on my own health. Personal exercise has never been a very big focus on my part, sure I've done my share of bi-cycling - but never reached a point were its natural or I end up doing it on a regular basis. Therefor, this year I'm setting out on a big hairy goal; be part of something called Birkebeinerrittet, apparently the worlds largest cross country bicycle race. In order to accomplish this I need all the motivation in the world and something driving me towards that goal. I decided in December 2011 to start a website to help me drive myself towards that goal; GeekRider. Not entirely sure what the site will end up being, but my plan is to let the site drive forward a few ideas I have with regards to how I see web development moving forward and at the same time help me maintain all of the mentioned open source projects - a synergy.

I guess thats just about it, wish me luck.. :)

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (3) | Post RSSRSS comment feed

Focus focus focus

The last year I've been close to having a split personality when it comes to the projects I've been working on. On my last count, I have 4 active CodePlex projects that I've created myself, and 4 more that I'm a member of:

Balder
Bifrost
Odin
OpenCompiler

I decided a couple of months ago that I will pick one project and focus on it only for now, instead of spreading my attention thin with working one hour here and there on different projects. The choice was kind of obvious on my part, Balder got my attention for now. My reasons for choosing that particular project as my main focus, are many. First of all, it is the most mature of the 4 mentioned above, secondly, it is truly something I love doing - graphics programming has always been close to my heart. We're now running the last leg on Balder to get to a version 1.0 release. When this release is out I will continue on one of the other projects. I haven't decided on which one yet, but my money is on OpenCompiler - creating compiler extensibility for C#.

So, for anyone holding their breath for any features or bug fixes put into anything else than Balder for the next couple of months, start breathing again. :) 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Another chapter

Today was the last day for me over at Objectware. It was a day I have dreaded somehow for a while. I really loved it at Objectware. Due to the fact that it is about 2 hours by bus or train away from where I live, it got to be too much of a strain on my family. I got an opportunity some months back to join a company called Bouvet and join them on establishing in my town; Sandefjord. So the choice was kind of obvious and at the same time gave me a bit of sadness. On average I've been holding jobs for some 3-4 years before changing, and everytime its been because I wanted to, for personal growth. But family has to come first, even though it was short run (some 8 months). Still, it feels kind of odd, leaving a place I got fond of with great colleagues and very fun projects.

I must take this time to thank Objectware for giving me the opportunity - I've had great personal growth and has had really fun challenges and projects. And the colleagues impresses me with their great knowledge and commitment to the job. Kudos!

15th of June, I'll be starting at Bouvet - looking forward for new challenges.

Until then, I'll be sunbathing in Spain, enjoying some time off with my kids and wife.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Why DoLittle?

As you might have noticed, my blog lives on the domain “dolittle.com”. A domain that is hosted by myself on an old laptop sitting in my basement. :)  Anywho, the last couple of weeks I’ve been asked a few times about what's up with the name DoLittle and does it have a meaning of some sort. I didn't have a straight answer for anyone who asked, to be honest; I couldn't really remember. Until it all came back to me a couple of days ago.

The year was 1997, I started to look for some freelance work for moonlighting besides my daytime job. In order to freelance work I needed to register myself as a single-person company with the government. I needed a cool name, or at least a cool URL. My objective was not to do a lot of business; one could say I wanted to do little. But that was not the real reason behind the name. At that point I was really focused on creating reusable code (I'm still focused on that. :) ), I was always building code with the idea of trying to create libraries and frameworks that would enable me to do as little as possible code for the next projects. Finding the common denominators became my life work. In addition to this I was also convinced (still am), that computer software should really be focusing on helping the user achieve desired result in as little time and with as little effort for the user as possible. I even remember coming with a slogan for the company "DoLittle ..  so that you don't have to do much.. " or something to that effect.

That is the story behind the name.. :)   

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed

Non-smoker : Life Laundry Project 1, step 1 completed.

About a year ago I decided to quit smoking with the motivational factor being my 2 year old daughter. I figured my health was in such a bad shape that I wasn't able to keep up with her. As a gift to her 2 year birthday I quit smoking with the help of a drug called Champix (Chantix in the U.S.). I was lucky enough to not get any sideeffects, other than actually being able to quit smoking. The coming week I'll celebrating 1 year of being a non-smoker, as well as the third birthday of my daughter.

Now it's on to maintaining my position in the world as a non-smoker. I'm very motivated to do it, so let's keep our fingers crossed. My next project is to loose enough weight to get down to my 1997 level. This means I have to loose some 20 kilos (appr. 40 U.S. pounds or so) from my starting point which was early january. So far I've managed 3 kilos, which is actually not that bad considering I haven't started doing anything physical yet. Only thing I've done is get rid of bread and introduced WASA Whole Grain Crispbread. This works out great for my diabetes too.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

There is a house...

... in Sandefjord, Norway that's looking for a new owner. :)

After living in the same house for 6 years, we're now selling it and moving to the other side of town. Besides working heavily on my computer over the last years, the house has also gone from a early 1980s combined with early 1950s standard to 200x standard. I've done most of the work myself. Finally we finished it and then we're moving, sounds familiar ?? 

Anywho..  If you know anyone who wants a nice house here in Norway, our house might be the thing they're looking for.  :)

Have a look :

http://webhotell.tinde.no/dnbnor/index.asp?pId=274824&offset=0

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

The joy of being a developer

I've come to a point in my life were I think I've figured out what I'm going to be when I grow up; a developer.
Recently I've been jumping between jobs and found myself wanting to downgrade from being a Chieft of something something to being more of a hardcore developer.

I walked away from a position at a place called Notus a couple of months ago as the Manager of Application Development. I quit this job in june and started working for a startup company called Fjord Media. Being a startup company things weren't that organized that I've grown fond of, and found myself getting very stressed from the lack of structure and processes. I decided to quit and did so and walked out the building the same day without having a job to go to. During that day I started what I normally do when I'm looking for work; send out emails to friends and past colleagues to see if there would be any leads out there. Sure enough, the market is great these days so a couple of leads came my way the same day. I spent the next couple of days walking in and out of interviews and talking to people on the phone and writing emails. During this time I also found the time to start spinning thoughts around in my head about what kind of job would make be a happier person.

6 days after I quit my job at Fjord Media I had a meeting with my former employer, they contacted me the same day I quit and wanted to hear if I was interested in coming back. Not to the same position I held but a developer or team lead for one of the teams. After having the meeting with them I had this good vibe inside me; I was going to write code on a regular basis again. I got an offer later that day that was a very good offer;  I got to be a team lead/lead developer for the platform and architecture team. I was walking around the city when they called me with the offer, so I told them I had to call them back some 15-20 minutes later. It was then it really hit me with a good warm feeling inside of me; I am a developer, I will always be a developer, this is the profession I chose for myself ages ago. I couldn't wait to get home and pick up the phone and accept the offer. It couldn't get any better than this; I got to write code at a place where I knew (and love!) all the people, I knew the code (heck, I've worked there for 5.5 years..) and I got to do pretty cool stuff; work with the latest of .net related technologies (.net 3.0 and later 3.5, BT2006, SQL2005, VS2008, Silverlight..) .

The conclusion is I am a developer and I'm proud of it!

Now, on to writing some cool code..    I've got a couple of Silverlight thingies up my sleeve. :)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: .net | Personal
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Finally the long awaited extension to my family arrived today

During the pregnancy we've been presented with a lot of different dates, ranging from late april till late may. Finally today we got the extension to the family we've been waiting for. His name is Herman and weighed in at a remarkable 4395 grams and had a length of 51 cm. Based upon the last dates presented by the doctor, he arrived exactly one week too late. His mother struggled for some 8 hours to bring him into this world and did a remarkable job (even though I was thrown one or two interesting sentences.:) )

Life is beatiful!

Based upon previous experience with getting kids, it will now take me two years or so before I write my next blog..   NOT...  :)    I'm too excited about Silverlight these days to not end up writing a post now and then.. 

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Wholy Cr.... It's been a while

Where did time go??

It's been close to 2 years since my last post..   What happened?    I'll tell you what happened..   5th of March 2005 I became a dad to a beautiful little girl called Mia. We're now expecting another baby in May, so I have to hurry up with blogging till then, seeing that I tend to be totally thrown off for a couple of years when having a baby.. :)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Categories: Personal | General
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed