Monday Morning Mug #6Last week I took of a week to finish a couple of personal things, therefore nothing really interesting happened so far. There is a Windows Sidebar Refresh [1], which cold be worth a look. Reading Scott Hanselman's Reading to Be a Better Developer [2] I think about introducing a daily code-review hour. In fact I completely support that you become only a good coder if you read really a lot of code. Writing code is hard, reading it should hard, too. Really? Matthias had some thought on comments in source code [3] which is directly linked to writing code. Something to pick up later on.

Back to normal...

[1] http://blogs.msdn.com/windowssdk/...
[2] http://www.hanselman.com/blog/...
[3] http://unmaintainable.wordpress.com/...

Posted at Monday, August 27, 2007 3:10:02 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [1] #      | 

I already had some thoughts on designing "good" user interfaces [1] before even if you are not a designer. Now, I just found the SSW Rules to Better Interfaces [2] with a couple of interesting statements also to think about.

SSW Rules to Better Interfaces

[1] http://blog.aheil.de/2007/04/27/WPFAndTheVistaUserExperience.aspx
[2] http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterInterfaces.aspx

Posted at Monday, August 27, 2007 2:23:37 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

... in Windows Vista to be fixed by KB 938979 [1] and KB 938194 [2] if you can't wait for Windows Vista Service Pack 1.

[1] http://support.microsoft.com/kb/938979
[2] http://support.microsoft.com/kb/938194

Posted at Wednesday, August 08, 2007 1:46:39 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

It looks like there is some confusion [1] about the licensing model of the Microsoft Robotics Studio and the CCR. To make things a bit more visible you must be aware of the two different licenses available for the MSRS. on the one hand there is a Microsoft Robotics Studio Non-Commercial License [2] providing you free usage of the runtime for non-commercial purposes as well as a  Microsoft Robotics Studio Commercial License [3] if you are going to make money out of it. If you going to ship your robots including the runtime, you must purchase [4] the license to distribute the runtime with it. There is a fee of $2 for each unit you sell. So if you are going to buy three dev licenses they already include 600 units to be sold and distributed. Of course you can see this the other way around: For each 200 units you sell (and therefore purchase a commercial license) you'll get one developer seat for free.

The first question is if it is possible to use the CCR for something else than robotics, and the answer is clearly given by the MSRS Architect George Chrysanthakopoulos in the MSRS Team blog [5]. Furthermore, the CCR can be used independently of the MSRS as you can read in the forums [6].

But what is if the developer wants to make use of CCR within his/her product and the CCR runtime is NOT part of the distribution. Has the end-user to agree the non-commercial license of the MSRS. What’s about the developer then?

In the following let's have a look at several scenarios which should clarify the new licensing model. These examples are a result of a discussion with George Chrysanthakopoulos, architect of the Microsoft Robotics Studio, Henrik Frystyk Nielsen as well as Tandy Trower who is leading the Microsoft Robotics Initiative. However, this is no legal text, not approved by anybody and might be simply wrong. This should only give you an overview of the licensing model and represents my very personal current view of the licensing model. Read the licenses carefully, in any case of doubt contact Microsoft directly. Anyway let's have a look at several scenarios about using the Microsoft Robotics Studio licensing model. There is going to be a official FAQ soon covering the scenarios below.

  1. Company ‘A’ is building an application based on the MSRS/CCR/DSS. The company is going to sell is product but he does not include the MSRS/CCR/DSS runtimes in the package: They need one commercial license per developing seat. In the case of 3 developers in the team they need 3 licenses. This includes 600 runtime licenses they could use in their own company. 

  2. Company ‘B’ is building an application based on the MSRS/CCR/DSS, They are going to sell and distribute this product including the MSRS/CCR/DSS runtimes. They need to purchase a commercial license per developing seat respectively one for each 200 units he is shipping. The commercial license covers 200 units of runtime distribution. The number of licenses depends on the number of developer seats or runtime units (which ever is greater). In other words, if they have 3 developer seats, they must purchase 3 commercial licenses regardless of how many runtimes they distribute. But if they do, they have 600 units of runtime to distribute (3 x 200). Similarly if they have one developer, but needs 500 units of runtime, he would have to purchase 3 licenses.

  3. Customer ‘C’ is using the product of company ‘A’ for some non-commercial purposes. He downloads the MSRS and agrees the non-commercial license. This customer is also limited on deployment of the runtime on up to 10 personal devices (PCs, robots, etc.) and is not permitted to use the software in a “live” operating environment.

  4. Customer ‘D’ is using the product of ‘B’ for non-commercial use. He is not downloading the MSRS since the MSRS/CCR/DSS runtime is shipped with the product. He agrees to the TOC/EULA of company ‘B’. Nothing else is necessary.

  5. Customer ‘E’ is using product of ‘A’ in his company on 5 computers for operative business. He does not make direct money out of it since the customers don't have access to these computers, but the software is used within his business (e.g. back office). He purchased the product from ‘A’. He downloaded the MSRS. It does not matter that he does not sell. He is using it for commercial purpose and thus, since he downloaded MSRS and the runtime, he must pay for at least 1 commercial license (to cover the 5 runtimes). The distinction between #3 and #5 is that 'E' is using MSRS for commercial purposes. If he did not get the runtime from the vendor 'A' (as 'D' did) he will need it, so he must purchase a commercial license.

  6. Customer ‘F’ is using product of ‘A’ in his company by providing MSRS services to his customers. He purchased the product from ‘A’. He downloaded the MSRS. He has to purchase additional commercial MSRS licenses. If 'F' is developing MSRS services for his customers, regardless of whether he charges for them or not, he needs a license (see #2). However, if he is simply a distributor of 'A' (and adds no additional services), then he does not need a commercial license, provided that 'A' did have a commercial license. Downloading MSRS is not the key here. It is whether he creates his own services around MSRS that does. For example, if you are a consultant, and you simply reference sell 'A’s' products, but add no services or otherwise use MSRS , you would not need a commercial license.

  7. Customer ‘G’ is using product of ‘B’. He is using the product in his company, not making direct money out of it. But the product is used as business-relevant component in his back-office on 5 servers. That cost was paid already by Company 'B' and thus he has not to purchase any additional commercial licenses. Customer 'G' does not need to pay anything extra. However, 'B' better make certain he considers the 5 servers that 'G' runs as 5 copies of our runtime as far as his license goes. 'B' can’t license only 200 copies, but give his customers unlimited rights to copy. Every copy 'B' licenses to his customers are part of his copies. So if he give G rights to put it on 5 servers, 'B' has used up 5 of his copies.

  8. Customer ‘H’ is using product of ‘B’. He is using this product to sell consulting services to his customers. The CCR runtime was included in the package he got from ‘B’. As long as he does not distribute any more of Company's 'B' products and he is not developing own MSRS/CCR/DSS products he does not have to purchase any additional licenses.

There are simple rules to follow: Whenever you are going to make money out of the MSRS you have to purchase a commercial license. It does not matter whether you are selling MSRS services our just developing or running them. Luckily the commercial license includes both: the right to distribute and run as well as to develop MSRS services.

Also, the above described scenarios cover all the runtime files mentioned in the runtime.txt in the MSRS folder, which are in detail:

  • ccr.core.dll
  • ccr.adapters.winforms.dll
  • dssbase.dll
  • dsscmdargs.dll
  • dssruntime.transform.dll
  • dssruntime.proxy.dll
  • dssruntime.dll
  • dsshost.exe
  • dsshost.exe.config
  • microsoft.cci.dll

[1] http://petesbloggerama.blogspot.com/
[2] http://msdn2.microsoft.com/bb332140
[3] http://msdn2.microsoft.com/bb332139
[4] http://msdn2.microsoft.com/en-us/robotics/bb521232.aspx
[5] http://blogs.msdn.com/msroboticsstudio/
[6] http://forums.microsoft.com/MSDN/

Share this post :

Posted at Wednesday, August 08, 2007 12:31:07 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

I just put an author version of FDX – Federating Devices and Web Applications, presented at ICWE 2006 online [1].

FDX - Federating Devices and Web Applications

 

[1] http://www.aheil.de/Research.aspx

Posted at Tuesday, August 07, 2007 12:18:58 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

What's all about

The widgets offered by Last.fm are not really customizable. The latest Flash-based quilts are literally flashy and the image-based charts are quite unconvincingly to design. So I sat down wrote a small ASP.NET control to be used as Last.fm Widget with the goal to use it within my dasBlog installation. For that reason I made usage of the data feeds provided by Last.fm.

Last.fm ASP.NET Widget 


Prerequisites

  1. You need a Last.fm account which you can create here.

  2. You might want to download any media player plug-ins from here to scrobble your music.


How to install on a ASP.NET Web Application

  1. Download the .zip file and unpack it's content into your web application's directory.

  2. Add the following line below your page tag to register the control with your ASP.NET web page:
    <%@ Register Src="LastFmControl.ascx" TagName="lastfm" TagPrefix="uc" %>
  3. At the place where you want to add the control similar to
    <uc:lastfm 
    id="Lastfm1" runat="server" Url="http://ws.audioscrobbler.com/1.0/user/aheil/recenttracks.xml" User="http://www.last.fm/user/aheil/"> </uc:lastfm>
  4. Change the username from aheil to your username unless you want to display my recently played music on your site.


How to install on a dasBlog installation

  1. Download the .zip file an unpack it's content into your dasBlog installation directory.

  2. Open the hometemplate.blogtemplate file of your dasBlog theme and use the ASPNETControl makro to add the control on the page.
    <%newtelligence.ASPNETControl("LastFmControl.ascx")%>
  3. Open the LastFmcontrol.ascx.cs file and change the username at
    private string _url 
    = "http://ws.audioscrobbler.com/1.0/user/aheil/recenttracks.xml";
    and
    private string _user 
    = "http://www.last.fm/user/aheil/";
    unless you want to display my recently played music on your blog.


How to Customize

The control makes heavy usage of several CSS div classes to be maximum customizable. The classes used are

.lastFmMain {}
.lastFmHeader{}
.lastFmItem {}
.lastFmItemTitle {}
.lastFmItemArtist {}
.lastFmFooter {}

Simply modify and add these div classes in your CSS file to make the control look seamless integrating into your web page.

The classes are used as following where the lastFmItem is reapeating.

Last.fm Control CSS Usage


Download


Some Comments

I did not spent much effort into this control. Writing this entry took longer that writing the control, not only since the pre-release Windows Live Writer versiopn I am using crashed twice. There are several improvements, which could be done to this control, including reducing the paramters to only the user name, adding the Last.fm icon etc. If you are looking for a more sophisticated dasBlog makro, you might have a look at Alexander Groß' Last.fm makro, which I was pointed to wafter I had written the above one.

Share this post :

Posted at Sunday, August 05, 2007 10:43:52 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [2] #      | 

"GORT, KLAATU BRADA NXTO"

Seen in Tron at 26:16 on Alan's office wall.

 

Posted at Thursday, August 02, 2007 11:05:31 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

I just surfed on Geekpedia. I did not have a lot of time to look though the site, but is seem as there are tons if interesting articles and information about cool stuff there. So if I find I will seek though their archives for some useful tips and tutorials

Geekpedia 

Source: http://www.geekpedia.com/

Share this post :

Posted at Thursday, August 02, 2007 8:29:28 AM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Today, I installed the Social Bookmarking Tool for WLW by Rahul Soni. So I am just starting to add social bookmark links on my future blog entries. 

After installing the tool you have to restart Windows Live Writer. Then you'll see a additional option in the insert pane on the right side of WLW.

WLW with Social Bookmarkin Tool

After publishing your entry, you have to copy the link as well as the title of your blog entry and insert it into the Social Bookmarking Tool dialog. That's all, just publish the tool again.

Social Bookmarking Tool for WLW 

Source: Rahul Soni's blog

Share this post :

Posted at Wednesday, August 01, 2007 11:26:04 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [0] #      | 

Serenity is one of the few science fiction movies available right now on HD-DVD (in Germany). Furthermore, Firefly the series around the spaceship seem to be available on DVD as well. However, today I just surfed on Universal HD's Firefly page were they announce to show Firefly in TV in HD - which could mean that the series could be available on HD-DVD soon... so I'll wait with the order.

Firefly HD 

Source 1: http://www.universalhd.com/Firefly/
Source 2: http://fireflydvd.com/

Posted at Wednesday, August 01, 2007 5:00:53 PM (W. Europe Daylight Time, UTC+02:00) 
Comments [3] #      | 
Copyright © 1995-2009 by Andreas Heil. aheil is a registered trademark of Andreas Heil. All rights reserved.
The opinions expressed herein are my own personal opinions and do not represent my employers' views in any way. Content and thoughts expressed on these pages and the weblog are subject to be changed. Out of date posts should not be considererd as my current thoughts and opinions.