MetroReads: Goodreads for the Windows Phone

May 20th, 2012 No comments

My second app for the Windows Phone platform got certified today!

It is an app to use with goodreads.com. From their site:

“Goodreads is the largest site for readers and book recommendations in the world. We have more than 8,600,000 members who have added more than 300,000,000 books to their shelves. A home for casual readers and bona-fide bookworms alike, Goodreads users recommend books, compare what they are reading, keep track of what they’ve read and would like to read, find their next favorite book, form book clubs and much more. Goodreads was launched in January 2007. ”

Check out the “marketing site” for screen shots and link to Marketplace.

mr_mobileAppTile_173x173

Categories: Windows Phone 7 Tags:

Start Windows8 in Desktop

May 16th, 2012 No comments

Tired of Windows 8 starting up in Metro? Is your first action to switch to Desktop after starting up? Worry no more! If you set a registry key, you can control if Windows 8 should boot in Desktop rather than Metro.

— snip  —

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

“Shell”=”explorer.exe /select,explorer.exe”

— snip  —

Categories: Tips Tags:

Pull the Rabbit out of the Machine

May 10th, 2012 No comments

Today I got RabbitMQ In Action from Manning in the mail. As I have prevous written about, I did a 2nd review on the book. I am, however, looking forward to reading the complete book and play around with the Rabbit.

Last year, I also reviwed Machine Learning In Action also by Manning. Manning was also kind enough to mail me a copy of this book. Since my master thesis I have only worked briefly with artificial neural networks, so it was fun to play around with these kinds of models again. I also enjoyed the examples in Python, an area I have not had the pleasure of doing much work with.

I wrote in my last post about SOA Patterns. This book is about to go into print and when it does I’ll post a picture of the front. Now I can only find one with the MEAP-sign plastered over it.

Categories: Miscellaneous Tags:

Review of books: SOA Patterns by Arnon Rotem-Gal-Oz

April 23rd, 2012 No comments

I have previously written a small blog post about reading SOA Patterns by Arnon Rotem-Gal-Oz by Manning. That time is was what was called a 2/3 review, hence a peer review of the material currently present.

A couple of weeks ago I was approached by Manning and asked if I wanted to do the technical proof reading of the book. I thought about it for a day and two and then accepted the offer.

The book is made up of 10 chapters. Part I (chapters 1 through 7) is titled SOA Patterns and gives, both an overview of SOA and a deep dive into the various patterns and their usage. Part II is called Applying SOA Patterns and is made up of the remaining three chapters. Chapter 8 is about anti-patterns, chapter 9 a case study and chapter 10 a comparison of SOA with other architectural styles.

The full Table of Contents is:

Part I – SOA Patterns

  • Solving SOA Pains with Patterns
  • Basic Structural Patterns
  • Pattens for Performance, Scalability and Availability
  • Security & Manageability
  • Message Exchange Patterns
  • Service Consumer Patterns
  • Composition Patterns

Part II – Applying SOA Patterns

  • Service Anti Patterns
  • Putting it all together – a case study
  • SOA vs. the World

All in all the book is worth the effort and does a good job of linking problems with solutions, regardless of whether you are a “SOA virgin” og an experienced developer/architect.

Categories: Miscellaneous Tags:

SAAK: AgileZen for Windows Phone

March 25th, 2012 No comments

I have previously written about my first attempt to write an app for the Windows Phone. It is an app for lean project management using the API towards AgileZen.com. I had called it MobilZen which seemed like a good and natural name. Unfortuantely I was not the only one. It turned out an American company had registred MobileZen.com and even though they are doing something slightly different, I saw no reason to start a big fued, when they politely asked me to change the name.

Therefore I am proud to announce: SAAK - Serious Applications Agile Kanban.

Some of the graphics on windowsphone.com have not been updated yet, but I have been told it will happen shortly.

Categories: Windows Phone 7 Tags:

MobileZen

March 4th, 2012 2 comments

I’ve been told that you cannot have an app without having a website to market it.

Well, I’ve created a small one using the template created by Nick Harewood.

So check it out and please let me know what you think. Or even better, get the app and send me some feedback. Remember to be gentle, it is my first.

I’m almost done with next version which includes a refactoring of the UI and a lot of added functionality.

Categories: Windows Phone 7 Tags:

My first Windows Phone app

March 1st, 2012 No comments

Today my first app to the Windows Phone was published into the Marketplace.

I’m quite excited and will now wait for the million of downloads.

The application is called MobileZen and is build around the lean project management web-site AgileZen.com and enables the user to view and edit their projects, stories and tasks.

I am in the process of adding a lot of extra functionality and hopefully also increase the user experience. I’ve ever been good with buttons, but I try to learn as I go along.

MobileAppTile

Categories: Windows Phone 7 Tags:

Merry Christmas

December 30th, 2011 No comments

Dear Friends and Family,

The best wishes for the holiday season and the new year.

Categories: Miscellaneous Tags:

More on TFS and xUnit

October 18th, 2011 No comments

In my previous post on TFS and xUnit I tried to describe how to get the unit testing framework xUnit to work with TFS.

I have got a couple of comments about not being able to get things to work. Unfortunately I have not had time to dive deep into why this may be so. It may well be because the description is flawed, for which I apologize.

A few observations:

  • Concerning NUnitTFS: apart from different arguments, it also seems like the functionality is different. Using the newest version I get the following error:

    However, using a previous (alpha) version all works as expected:

  • If you forget to define the endpoints in the NUnitTfs.exe.config-file you will get an error similar to the following:
  • Download the xaml and NUnitTFS I have used and try it out.

 

Using the InvokeProcess component (from the Toolbar) it should be possible to integrate any external tool into the workflow.

Categories: Tips, UnitTest Tags: ,

HowTo: Team Foundation Server and xUnit

October 3rd, 2011 4 comments

For quite some time I have been doing TDD and Continuous Integration (CI), both in my private projects as well as my professional ones. My preferred unit testing framework is xUnit and I recently had to set this up with Team Foundation Server (TFS) to do CI. It turned out this was not a trivial task. One think was to get TFS to run the tests, another was to get TFS Reporting to work and show the test results. This blog post will show the different steps I took. I hope it will be an inspiration to others and help them avoid some of the issues and fustrations I ran into. Any comments or feedback will be greatly appreciated.

First step is to install TFS 2010. The following will describe how to install it on Windows Server 2008 and SQL Server 2008. However, the steps are the same for Windows Server 2008R2 and SQL Server 2008 R2.

I will not go into great details of how to install the server products. There are already great guides available on the web, so please drop me a mail og reach me on twitter if you require assistance with this part of the process.

Install Windows Server 2008 (Enterprise) on a server and apply Service Pack 2 (SP2).

Create a User named, e.g. TFS and add this user to the Administrators group.

Install SQL Server 2008 (Enterprise Edition) with all components. I’ve also selected to install the Business Intelligence Development Studio, which will allow me to create TFS Reports.

Install Reporting Services in Native mode, but select the option of NOT configuring the Reporting Services now. Do not install it in SharePoint Integrated mode.

Add the TFS user as Login to the SQL Server just installed.

Install WSS (Windows Sharepoint Services) 3.0 and Service Pack 2. Do not run the Configuration Wizard at the end.

At this point you should be able to see the default SharePoint site at http://localhost.

Open the SQL Server Reporting Services Configuration Tool and configure the Reporting Services now.

The tool will take you through the configuration step by step and will allow you to specify User, Create database etc. When asked for user credentials specify the User created earlier.

When configuring the Database keep the default setting to Native Mode when asked for Report Server Mode.

When the configuration has completed it should be possible to see the Reporting Service Portal and Web Service, e.g.  on http://localhost/Reports and http://localhost/ReportServer.

Now it is time to install TFS. Initiate the installation and select the features you wish to install, most likely all but the Team Foundation Server Proxy.

You properly need to restart the server during the installation – after all this is Microsoft – but otherwise the installation should run smoothly.

Once done, press the Configure buton, to launch the Configuration Tool. Select the configuration appropriate to your needs. I selected the Standard configuration for this lab.

When asked for the Service Account, enter the user you created previously.

If you are not able to pass all the verification checks, just correct then and re-run the verification. Once all is green, you should be able to complete the configuration.

If you want to read more about TFS, check out the blog posts by Richard Banks and Ewald Hofman.

You now have a running TFS, but we are far from finished. To finish what we set out to do we now have to create and modify a build configuration.

A disclaimer: the following example will have some hardcoded values. The correct way to do things would be to create a custom action, put it in TFS and refer this, but this I will leave
for another post.

In order to run our unit tests using xUnit and publish the results, we need to copy to items to the TFS server: xUnit and NUnitTFS.

I placed then in C:\Tools\. Do not put any spaces in the folder names; this will make your life easier later on.

A little tweaking is most likely required of the configuration of NUnit. You need to ensure that the client endpoints are set correctly in the config-file. By default they point to http://teamfoundation.

First step is to create a copy of the DefaultTemplate.xaml file, rename it to something – I called mine xUnitTemplate.xaml – and add it to TFS.

Open the new template in Visual Studio.

We need two arguments, one for the path to the xUnit console and one for the path to the NUnitTFS.exe.

Select Arguments and click Create Argument.

Create the two arguments: xUnit and TFSPublish.

Click the Arguments to close the list.

Select Variables and create one called XUnitResult. This will contain the output from one of the new processes we create.

Note the Variable Type and Scope.

Now scroll down into the processes and locate the If Statement called If Not Disable Tests and the Sequence called Run Tests.

We want to delete the content of the Run Tests sequence and enter our own. Easiest way to do this is right click on Run Tests and select Delete. This will leave you with something like the following

Now from the Toolbox find the Sequence (located under Control Flow) and drop one on the Then box. Rename it to Run Tests.

Add an Invoke Process to the Sequence and name it Invoke xUnit Console.

The reason for the red exclamation marks is that we need to configure the new control. Open the properties and set the following:

  • Arguments: “xUnit.Test.dll /silent /nunit results.xml” (including quotes)
  • FileName: xUnit
  • Result: XUnitResult
  • WorkingDirectory: outputDirectory

As you can see we here have a hard coded value, namely the name of the assembly containing the unit tests. “It can be easily seen” as we used to say at University, when the math proof was too easy, so I will leave this as a small home assignment to you, my dear reader :)

You also want to add two activities to output the build messages and build errors (if any).

In the properties, set the Message to stdOutput and errOutput respectively.

We are almost done. Add a second Invoke Process under the newly created and name it e.g. Publish xUnit Results.

Set the Argument to the following:

String.Format(“-n {0} -t {1} -p ”"{2}”" -f {3} -b “”{4}”" “,
“results.xml”,
BuildDetail.TeamProject,
BuildSettings.PlatformConfigurations(0).Platform,
BuildSettings.PlatformConfigurations(0).Configuration,
BuildDetail.BuildNumber)

And the FileName to TFSPublish  and WorkingDirectory to outputDirectory and lastly add two output handlers as above.

Save the template and check it in.

Next step is to create a new build definition that uses the new template.

Open the Team Explorer, right click on Builds and select New Build Definition.

Set the name to something meaningful

And the Trigger to Continuous Integration

In Workspace, ensure that the folders you wish to include are active. Here we only got one.

Under Build Defaults set the Build controller and the drop  folder. For this test I have just shared a drive on my TFS server.

Under Process we need to set the Build process template. Click on Show Details to expand the panel.

Click on New to  set the new template we have created earlier.

Select the Select an  existing XAML file and click on Browse…

Select the template we just created and press OK.

Press OK again to  get back to the initial screen (still under Process).

Under 4. Misc you  should see the two arguments we created. Enter the values as shown below.

If you are still seeing a yellow exclamation mark, it may be because you have to set the Configurations to build under 1. Required | Items to Build.

To test that this is actually working, create a solution and  add a class library to hold your unit tests. Remember to name the library  xUnit.Test (or rather ensure that the assembly is named xUnit.Test.dll).

When you check in the test, the new build should commence.

And when done the result is shown:

I made two small tests: one that would pass and one that would  not.

If you create a TFS report looking at the test runs (using ReportBuilder), you can see something like the following:

We are done!

A few things to note:

  • To get TFS to compile and run the tests using xUnit, I create a solution folder (e.g. called Lib) on the same level as my projects and add all the xUnit files to this folder. I then reference xunit.dll from this folder.
  • NUnitTFS seems to have changed from  the Alpha version, where it was possible to give an argument “-v”. This is not  longer possible with newer versions.
  • Be sure that the process running the build has access to the drop location.

 

 

Categories: Tips, UnitTest Tags: ,