Monday, January 26, 2009

Building an application ...

.. from idea to reality

As posted before I have some plans for this year. One of these plans is building a complete on-line application all by myself using interesting technology. In this first post I will tell you a bit about the architecture I am using to build it.

Let me first explain (maybe again) that I am web developer and I specialize in C#, ASP.NET, HTML and CSS. Above all I like to experiment with these and do ineteresting stuff from time to time.

With the application I am building I want to solve a problem that I experience myself. This ensures that I will have at least one satisfied costumer. First I will very briefly describe the problem I try to solve and then I will tell a bit about the architecture I have planned.

The problem to solve

When you try to build any application you must have a purpose for it and understanding the purpose is part of the solution. Also being able to relate with the owner of the problem is a big advantage. In this project that is all taken care of. I am the owner of the problem.

In my spare time I am trainer slash coach of the Ladies fieldhockey team of MHC Steenwijk. They are doing great this season and have so far won every of their ten games. This puts more pressure on me than on them as I need to give ever better training to them. I see that as an extra challenge and it gives me even more fun and satisfaction.

As part of the preparation of each training I give I need to document my training. I have to think of a subject for the training (like improve position play, penalty corners, scoring) and then I have to find excercises that support that goal. These excercises need to be drawn in a diagram. I simply have to place some pilons, players, opponents and then add some arrows showing where the players should run and pass.

This is something I usually do on paper with a pencil and I can do it in just a few minutes. But if I want to have these drawings in a digital form, then I could scan those or fire up Visio with a special stencil or go into an even bigger tool like Photoshop or Fireworks. All these tools are way too big for this and way too expensive. I want something that is simple and fast and does that what I want and maybe a little more.

Basic archtiecture

Being a web enthousiast I decided quickly that I want to build as an online tool. I looked at drawing using Javascript libraries and even studied SVG. But I let that be and thought this would be a really interesting project to build using Microsoft Silverlight.

All in all I needed a couple of components in my solution that makes it a complete, fully fledged application.

  • First there is a ASP.NET web page that holds the components.
  • One of the components is the editor with a drag and drop interface and some textboxes for inputting data like name and description of the excercise. This is done in Silverlight.
  • The Silverlight editor uses Isolated Storage for storing intermediate data on the client.
  • The Silverlight editor saves the data to the server through webservice. I have implemented an asynchronous call.
  • The webservice is the layer that gives access to the database, which will hold all excercises and, later, user data.
  • There is also a SQL Server database for storing the data.
  • Also on the page a PNG is shown as the result of the lines and symbols placed within the editor. When the excercise is saved to the database succesfully a callback function to the Silverlight editor the adds some HTML to the DOM among which is dynamically generated image.
  • The HttpHandler generates the images using the data from the database, which it retrieves through the webservice.

All these components are relatively simple. Well, except maybe the SilverLight editor. That will have all sorts of editing functionality. The image handler will just take the excercise data to generate the image. Quite a straight forward process. The database is quite simple and have only a few tables and stored procedures.

Status

At this moment I am close to having solved all the problems that are part of this solution. I can save and retrieve data, drag and drop symbols. Save to Isolated Storage. I have the HttpHandler producing some output.

Basically, I can start to fill in the gaps and then start to test in a real server and see if I can get the configuration all set up correctly. But then it just starts, there is much ore that needs to be added and there's a lot code that I need to rerfactor and clean up.

I have only just begun.

But do read on in part 2.

Reblog this post [with Zemanta]

Wednesday, January 14, 2009

A new year

.. a time to look forward

Sunrise shown in time lapse.  The motions of S...Image via Wikipedia

Now 2009 is officially on its way and it is passed the day for sending best wishes I will give a quick update on what I am upto in the coming time.

Currently I am involved in some projects at work (both insourced and outsourced) and personally I am doing a bit of a project as well. Let me tell you some things about these.

Work projects
Normal working hours
HTML syntax highlightingImage via Wikipedia

Working as a consultant I am since May last year working on a huge project for the Dutch Taxes. I was hired out to Getronics PinkRoccade, which was taken over by Capgemini. It's an interesting project. I think that's a nice way of putting it. My main activities are in programming parts of the Intranet site using things like C#, ASP.NET, WCF, HTML, CSS, SQL Server, SharePoint MOSS. All in a nice Team System environment on a virtual machine.

The funny thing is that my first ever job orientation I did was with Capgemini (I declined, finding it did not fit me). The first ever real job interview was at the Dutch Taxes. I completely flunked that as I had no idea what a job interview was. There were seven (!) people sitting across the table and that completely got me confused.

Other moments of the day

That project is not enough apparently and we are working on some in-house side projects. One of those is a Saas application we are devleoping. It's an online version of Microsoft team Foundation Server. Currently we are busy setting up the service. The accompanying site is getting close to full launch. The actual service is (still) in alpha testing and we expect soon to start with the first beta tests. All in all really exciting.

Coming soon

If that still does not seem enough there already running plans for a next in-house project. This is at the moment still hush-hush. But we intend to outsource some of the coding and also make use of our own Online TFS service. Can be really exciting as well.

Is there still time left?

Well, hardly any time left. But time enough to squeeze in a little project of myself. I am writing a small Silverlight application. To learn that environment, but also because I am need a tool to draw the excercises I use in my field hockey trainings. Usually I just jots some lines and arrows on piece of paper and that's it. But I want to go one step further and have something readable for others.

I have looked around the web and found some tools / sites. These are either big downloads and cost a little or a lot of money. But they all lack some of the things I want. I want to be able to share my excercises and let others use them as inspiration to create even better excercises. Very Web 2.0, very social app.

So, I am trying to set all these things up and have chosen Silverlight as the rich UI element for drawing the excercises.

Enough to keep me busy?

It seems I have a family as well and a hockey team and a dog and a cat.

Better get to work and than quick to get back again and be socially responsible.

Reblog this post [with Zemanta]

Monday, December 29, 2008

The end of another year

.. and time to look back

With 2008 drawing to close I sit here behind my laptop doing some fixes on code broken by others who celebrate the year's end somewhere else with probably much better coffee. Time to blame myself for not doing so, I guess.

It's difficult to completely devote myself to this so I let my mind go wandering, where it will go. Fixing a hole where the rain gets in, keeps my mind from wandering, where it will go.

I am not fixing my roof, but writing a blog post. Works equally good.

Indiana Population Density MapImage via Wikipedia
What happened in 2008?

A lot of stuff happened in 2008. I started the year with my brother and sister in law over in Bloomington, Indiana. An interesting three weeks in a completely different country. The ebst way to know more about your own country and your own habits. About the things you take for granted.

Map of France highlighting the Region of BrittanyImage via Wikipedia

This summer we spent our holiday in France. We visited Bretagne and stayed near the beach on a nice camp site. It was good. Weather was reasonable. Had a good time.

Work related stuff in 2008

I continu to work as a consultant and have done three jobs with totally different outcome. The first, a three month contract that never really got started since the project I was hired to participate in, only had a shifting start and a fixed end date. Then the contract was not extended. Don't know what happened to the project.

Then I got parachuted into a project that was originally taken on by someone from another office for just a couple of days. I proofed to be a disaster area. It was immediately clear that was already there was not state of the art, nor was it doen according to the book. Any book. There was no plan, no design, no clear goal even. No planning. No coordination. I praise myself lucky to have stated so on the very first day. Told them that if there was enough time then we should start from scratch.

Looking back at that project I know that in the end we (I brought in a colleague on the prject) could and should have started from scratch. It would have delivered more and a better product. The only thing I hold against myself is that I did not insist hard enough on a design. There was NO DESIGN. Completely and utterly absolutely nothing. I still do not understand how we worked for all those weeks and why we worked as hard as we did.

But I am happy we just quit the project in time.

Then I got into my present project. A huge project. We are working to build a new system for the Taxes. Several teams are working hard to create the various parts of the system. Interesting and sometimes amusing to see that small projects can have small problems and that big projects have their challenges as well.

And there is more

Apart from this projects that I did (and am doing) on site at the customer. There is also a big ongoing internal project that is slowly getting ready to go really live. An full blown online version of Microsoft Team Foundation Server: Online TFS. Still, only in alpha testing, but oh so close to the beta phase. I can hardly wait for that.

Also I am currently working on my first Silverlight application. It will hopefully be of help with my other time consuming hobby.

Going for a promotion

In my spare time I am the proud trainer and coach of the MHC Steenwijk Ladies team. We are on a steam roller currently have beaten ALL OF THE OTHER TEAMS in the field hockey compettion. 30 points out of a possible 30 points: a totally 100% score! Now in the winter break we are preparing for the second part of the season with still 8 games to go. With 7 wins we secure the title. Maybe less if some of the teams lose points along the way.

My Silverlight application should help me document my training excercises. I plan on releasing it some time in 2009 and then I will make it available to just about everyone. I will keep you posted.

Privately

My oldest daughter has moved to a new school this year. My old school. Weird feeling. It seems like only yesterday when I was attending that school. Well, at lot has changed.

My other daughter was champion with her football team ('soccer' for the suckers). My son has probaly beaten you at Mario Kart.

Finally, my wife is going strong and moved to another job and she is hopefully heading the right direction in 2009.

What about 2009?

In the past I have not been very good at predictions. Still, I have some hopes for next year.

My high hopes and wishes for next year:

  • to bring Online TFS out of aplha into beta and into full swing production
  • to start another exciting internal prject
  • to make it to promotion with the Ladies
  • to be champion with the Ladies
  • for my wife, to find joy and satisfaction in her enw job
  • for my kids, to be succesful and happy at school and at sports
  • for my parents, to have a less eventfull year
  • to finish my Silverlight application
  • to have differenet hopes and wishes for 2010

I wish YOU all the best in 2009!

Image representing Microsoft Silverlight as de...Image via CrunchBase
Reblog this post [with Zemanta]

Tuesday, December 23, 2008

The Broken Nose principle

.. beware

Fractured nose with haemorrhage.Image via Wikipedia
broken nose as punishment

Sometimes, it seems necessary to point someone out that what he did was not reallu correct. He stepped way out of line, made a bad remark or did some damage or almost did some damage. To the company or the company's reputation. Maybe because he was just plain stupid or just did not know what he was doing or causing.

A form of punishment or retribution seems to be in order here. But once that decision is made one need to establish if a simple converstation with a stern look will suffice. Or maybe some stronger method needs to be applied.

Most often when damage could potentially have been done (note that nothing has happened) managers tend to completely overreact and forget to thoroughly investigate what really happened. They usually tend break the nose of the person closest to the cookie jar.

As a figure of speech.

karate kid meets flying mom - _MG_3046.JPGImage by sean dreilinger via Flickr
It sends the wrong kind of signal

They forget everything they ever learned in management training and they start addressing the subject in full view of everyone, start shouting or plain striking away with bad reviews or firing the poor soul.

Even though all these reactions have a time and place and also have just reasons. The problem is that the manager tends to forget to think first. And to investigate before that. First get your evidence complete and then draw your conclusions. Think before you act and investigate before you think.

The defendant usually ends up with a broken nose.

Here's what wrong with this kind of reaction:

  • even though punishment might be needed for the culprit, the reaction is just over the top, there's no connection between cause and effect;
  • others will fail to understand, because they can not see the reason why you react so Big Time;
  • others will dislike your action, because it is in no direct correlation with the error made;
  • others will dislike you and stay away from you, because you seem schizofrenic at best;
  • as a result they will sympatize with the bad guy;
  • all it shows you have no respect or understanding for your people.
  • it is just over reaction, even when it is a correct reaction, reacting too quickly and too loudly will give a bad first impression
  • the event will only help to spread bad news about you and not about the bad guy: it backfires completely.
A broken nose is a bad punishment

A broken nose is not a very good way to punish someone. There are at least five reasons for that

  1. A broken nose is very painful.
  2. A broken nose will keep coming back over the years through minor or major annoyances.
  3. That way a broken nose will keep the grudge alive.
  4. Also a broken nose will make the grudge grow with years.
  5. A broken nose can cause reaction later on: Hey Manager, always look behind you!
LAS VEGAS - SEPTEMBER 26:  O.J. Simpson, (R) a...Image by Getty Images via Daylife
Better think twice before you act

before you strike out at anyone, think again and again and always, always get the story from both sides. Simply because when you do punish in any way, you'll never know their reaction.

  • you may have them silent at first, but then what?
  • they may just strike back directly in an unexpected way
  • they may know karate and you may hit yourself
  • maybe they're a Ninja or worse a lawyer or their bigger brother is one

On top of that: it's almost Christmas!

Reblog this post [with Zemanta]

Monday, December 15, 2008

Pictures

.. of silly things

In the past week I took some pictures with my phone which I would like to share with you. The pictures have in common that they both brought a smile to my face and a wrinkle on my forehead.

These pictures just make me wonder if there are people out there that just do stupid things out of good intentions.

Inspirational poster
Do what you want

For the past couple of months I have been involved at a project at Getronics PinkRoccade. That was recently taken over by CapGemini. On the 1st of December things got really going. We had coffee cups with the CapGemini logo and there were pens (the whole familiy now uses those) and peppermint and all things wow!

The same day the logo was taken of the building and replaced. Also posters appeared throughout the building. Including the one above.

So, now we are invited to "do what we want". I don't think that will do the progress of the current project much good. On the other hand I ahve now more time to do one or the other blog post.

Parking lot

Then this weekend I visited a restaurant in the NH Hotel just outside of Kaatsheuvel, The Netherlands and spotted this sign.

Woman Only parking lot

The parking lot was slightly wider. I measured it and found that this was four steps wide and the others were three steps wide. So, the parking lot was conceived by someone with the conception that women need more space to park their cars in. That must have been a man. A male chauvinist pig with a tiny brain. Every right thinking man knows that women drive in smaller cars so they do not need extra space to park in.

Thinking back I wish I had spotted the sign before I parked my own car. If I had seen it earlier I probably would have parked like an asshole square across at least two parkings spaces. But then again I would have needed a big SUV for that.

Probably

Probably both these have been created by someone with good intentions, but they have both failed completely in my opinion. But still they failed with success.

Reblog this post [with Zemanta]