Tuesday, January 31, 2012

it works (period)

2 years ago…

I wrote, speaking about task boards (concrete board):

IMAGE_017_2

Interaction with a concrete panel, directly accessible by the customer has a great collateral effect:

  • our client says: I would love to have also this small feature…it’s a cheap change for you guys (WTF…I can say if it’s cheap or not…not you…Smile)
    • immediately a story takes its own place on the board;
    • the “traffic” on the panel increases;
    • our client directly perceives that stuff to do has increased, increased proportionally to each request;
  • The rate of questions like “which is the state of the art?” has dramatically dropped;
  • The client think a lot, looking at the board, before asking for a change request;

These only to say that online tools a really cool, but being able to physically touch the backlog has its own pros.

2 years later…

Today I can state that it works <cit.>, the board is not the same (from the design point of view) now it’s much more a Kanban board, than a Scrum one, with WIP limits determined by column sizes:

WP_000059

the effect is the same, and my PM only asks me “how you doing” in front of the coffee machine just to know how the weekend has gone and not to know how the project is growing Smile with tongue out

.m

Friday, January 27, 2012

RavenDB: start your engines

This post is intended to be an introduction to RavenDB and as all the introduction will deal with the basic steps required to setup the development machine.

The first step is to download the RavenDB binaries from the RavenDB site: http://ravendb.net/download#builds.
Once downloaded remember to unblock the compressed archive before extracting files to the hard drive.

First run

After the file extraction the directory structure should be something like the following:

image

Figure: file and folder structure from RavenDB build 573.

There are 2 different server versions (the highlighted folders in the above figure):

  • “Server” folder contains server binaries already setup to run as a console application or as a Windows service;
  • “Web” folder contains server binaries setup to run as an IIS hosted application;

During the development process the console version is a real life saver because it gives real time access to server logs. In order to start the console version it’s enough to jump into the server folder and double click on the Raven.Server.exe file.

image

What happens is that the server starts, the first time it can take some time due to the operation performed to setup the environment fir the first time. Once the server is started the console should look like the following screenshot:

image

Figure: the console running a RavenDB server instance.

Side note: you can be presented with the Windows Firewall authorization dialog, as the following:

image

Obviously you need to give appropriate permissions if you need to access your local server from another machine.

The console immediately gives some important information:

  1. The data directory where data are stored;
  2. The server url, host name and listening port;
  3. The storage engine type, on Windows the default is Esent;

And now?

Once the server is running the first thing we can do is trying to connect using the builtin management studio, the studio is a Silverlight application that can be launched simply pointing the browser to the listening server Uri:

image

Figure: the RavenDB management studio running in Chrome.

Obviously the database, the default database that is created at server startup, is empty. At the bottom of the “summary” page there is a button that starts the creation process of a bunch of sample data. After the creation of the sample data your collections should look something like:

image

Figure: database collections just after the sample data creation process has completed.

The server console immediately confirms that something is going on at the server side:

image

Figure: the RavenDB server console showing real time logs.

Are you “secure”?

no…it’s not an Italian false friend, I’m pretty sure Winking smile One question that some readers could raise is: how can it be that the server let a connected, and apparently anonymous, application to write data?

Well…

The first thing we need to understand is the RavenDB security model: when running in the console mode the default security model is Windows authentication (oAuth is an option too) and the access level, the anonymous access level, can be controlled via the server configuration file:

image

Figure: the configuration file showing the Raven/AnonymousAccess configuration setting.

The anonymous access setting support 3 different values:

  1. None: anonymous access is not allowed;
  2. Get: anonymous clients has just read-only permissions;
  3. All: anonymous clients are full trusted clients and can do everything;

So?

As we can see the current running value is “Get”, but since the studio is connecting to localhost it is basically running in “intranet” mode and thus is passing the current user credentials to the RavenDB server that, using Windows authentication, can trust the incoming requests: that’s why we could create data even if no one asked us any credential.

Enough for the moment…next time we’ll see how to connect to the server using our own application.

.m

Thursday, January 26, 2012

This blog is moving…

it is a requirement! I cannot go on scrounging hosting off Gian Maria and Alessandro and at the same time I do not want to pay an hosting plan just to host my own blog, after 3 years I can safely say that it is not sustainable….and since this blog title is “Mauro and the sustainable development”… Smile

So far so good…but what’s happening?

Well…lot’s of things:

  • if you are reading this post means that the FeedBurner feed has been successfully updated to point to the new blog: http://mauroservienti.blogspot.com/;
  • the “old” blog (http://milestone.topics.it) is still alive and will be online until the posts migration process has been completed:
    • I’ve written a tool to migrate posts from the old blog to Blogger, but blogger has a post limit (well a sort of) of 50 posts a day, so the migration process will last something like 16 days;
  • at the end of the migration process the old blog address will be redirected here in order to complete the migration;

This basically means that by the 15 of February I can free some resources of the Gian Maria and Alessandro server Smile with tongue out

Why BlogSpot?

There were, when I decided to move a couple of weeks ago, 2 main competitor:

  • WordPress;
  • BlogSpot;

Both free and with lots of interesting features, really a lot Smile, but I was looking mainly for 2 features:

  • Custom domain, I need to point milestone.topics.it to the blog;
  • Custom pages: the ability top create “pages” other then posts;

Both the competitors offer these features but the custom domain is a paid feature for WordPress…BlogSpot is the winner…easy Smile

In the End…

I’d like to thank:

  • First of all Ugo for Dexter and the support during these 3 year;
  • Gian Maria and Alessandro for the free hosting during the last months;

Thanks guys, I owe you a dinner.

.m

Wednesday, January 11, 2012

The Goal

I just finished reading The Goal: amazing (period). A must read for everyone involved in a project (every kind of project) aside from the role in the project.
.m