<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1608027669404739121</id><updated>2011-11-24T00:52:10.166-08:00</updated><category term='mobile'/><category term='linux'/><category term='wubi'/><category term='Visual Studio'/><category term='virtualbox'/><category term='Type'/><category term='synergy'/><category term='office'/><category term='MOM'/><category term='photography'/><category term='Dependency Injection'/><category term='SQL Server'/><category term='springpad'/><category term='cookie'/><category term='wcf data services'/><category term='C#'/><category term='evernote'/><category term='outlook'/><category term='log'/><category term='photoshop elements'/><category term='windows'/><category term='HP Envy'/><category term='broker'/><category term='virtual machine'/><category term='network'/><category term='VB.Net'/><category term='ubuntu'/><category term='laptop'/><category term='.NET'/><category term='backup'/><category term='iSoft'/><title type='text'>CK blog, smelly as IT is</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-8187829808796999455</id><published>2011-10-06T00:00:00.001-07:00</published><updated>2011-10-06T00:00:34.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='wcf data services'/><title type='text'>IUpdatable, what is it supposed to do?</title><content type='html'>&lt;p&gt;I’m setting up an OData service by means of WCF Data Services. The DataContext publishes a list of BloodPressureMeasurements. These are queried from a more generic model in a lower tier, which in turn is persisted somewhere. So in essence I work with a model specific for the service, hence we call it the ServiceModel. &lt;/p&gt; &lt;p&gt;To publish the BPM’s, the DataContext contains a&lt;/p&gt; &lt;p&gt;public IQueryable&amp;lt;BloodPressureMeasurement&amp;gt; BloodPressureMeasurements&lt;/p&gt; &lt;p&gt;and in the get method I take care of the mapping from the generic model to the ServiceModel. That was the relatively easy part. &lt;/p&gt; &lt;p&gt;Now I want to enable adding new BPM’s. For the service to accept that, the DataContext has to implement IUpdatable. I have found several examples using either Entity Framework or LINQ to SQL. In both cases, most of the actual ‘IUpdatable-work’ is offloaded to the underlying techniques. And neither the official documentation nor the examples explain why IUpdatable is even there, and what the implementation should accomplish. &lt;/p&gt; &lt;p&gt;I’ve started implementing it nevertheless, and that made me discover exactly that: what should it do? In essence, when the data has to be updatable, WCF Data&amp;nbsp; Services needs a place to collect all the changes, whereafter it can ask to save all those changes (or discard them). So the IUpdatable implementation should provide some sort of delta-collection. If you get that, it becomes more clear what each of the methods should do.&lt;/p&gt; &lt;p&gt;And while experimenting with IUpdatable and writing this blog, I finally found a very valuable resource on the &lt;a href="http://blogs.msdn.com/b/astoriateam/archive/2008/04/10/iupdatable-ado-net-data-services-framework.aspx" target="_blank"&gt;Astoria Team Blog&lt;/a&gt; (now WCF Data Service Team Blog, why didn’t I look there earlier?) Read, it’s a good explanation.&lt;/p&gt; &lt;p&gt;I chose a very simple solution: two List&amp;lt;BloodPressureMeasurement&amp;gt; variables, one for additions, one for deletions (editing is not permitted in our case). Since BPM objects are small POCO’s, I can send the objects themselves around. If you instead want to move around references to the objects, you have to implement ResetResource and ResolveResource.&lt;/p&gt; &lt;p&gt;Furthermore, there are no master-detail collections to be taken care of, so I could also leave out SetReference, Add- &amp;amp; RemoveReferenceToCollection.&lt;/p&gt; &lt;p&gt;After implementing I discovered one more thing that might be handy to know: If you implement a ChangeInterceptor on your service, I will be called in this sequence:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;all the methods on IUpdatable (as implemented by the context) for assembling the delta  &lt;li&gt;your ChangeInterceptor  &lt;li&gt;IUpdatable.SaveChanges&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Happy Data Servicing!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-8187829808796999455?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/8187829808796999455/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=8187829808796999455' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8187829808796999455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8187829808796999455'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/10/iupdatable-what-is-it-supposed-to-do.html' title='IUpdatable, what is it supposed to do?'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-8962503020827077123</id><published>2011-09-01T01:06:00.001-07:00</published><updated>2011-09-01T01:06:15.317-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Rijtje records genereren in SQL Server?</title><content type='html'>&lt;p&gt;Hier is een recursieve oplossing. Geinspireerd op de code van deze site: &lt;a href="http://mhimu.wordpress.com/2009/05/07/sql-dynamic-date-range-number-range-in-oracle-sql-server-and-db2400/"&gt;http://mhimu.wordpress.com/2009/05/07/sql-dynamic-date-range-number-range-in-oracle-sql-server-and-db2400/&lt;/a&gt;. Daar doet de schrijver het met dateranges.  &lt;p&gt;NB: Recursie kent een grens. In SQL Server default 100 stappen, met OPTION (MAXRECURSION n) kun je een andere waarde kiezen. De Books Online over MAXRECURSION:  &lt;p&gt; &lt;dl&gt; &lt;dt&gt;MAXRECURSION number  &lt;dd&gt; &lt;p&gt;Specifies the maximum number of recursions allowed for this query. number is a non-negative integer between 0 and 32767. When 0 is specified, no limit is applied. If this option is not specified, the default limit for the server is 100.  &lt;p&gt;When the specified or default number for MAXRECURSION limit is reached during query execution, the query is ended and an error is returned.  &lt;p&gt;Because of this error, all effects of the statement are rolled back. If the statement is a SELECT statement, partial results or no results may be returned. Any partial results returned may not include all rows on recursion levels beyond the specified maximum recursion level.  &lt;p&gt;For more information, see &lt;a href="http://msdn.microsoft.com/en-us/library/ms175972.aspx"&gt;WITH common_table_expression (Transact-SQL)&lt;/a&gt;. &lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt; &lt;p&gt;In dit voorbeeld maak ik er een tabelletje met users mee, maar je kunt zelf vast ook andere opties verzinnen.  &lt;p&gt; &lt;p&gt;WITH IntRange (i) AS&lt;br&gt;(&lt;br&gt;SELECT 1 as i&lt;br&gt;UNION ALL&lt;br&gt;SELECT (1 + i) as i FROM IntRange WHERE i &amp;lt; 150&lt;br&gt;)&lt;br&gt;SELECT i from IntRange&lt;br&gt;OPTION (MAXRECURSION 150)&lt;br&gt;GO  &lt;p&gt;WITH IntRange (i) AS&lt;br&gt;(&lt;br&gt;SELECT 1 as i&lt;br&gt;UNION ALL&lt;br&gt;SELECT (1 + i) as i FROM IntRange WHERE i &amp;lt; 150&lt;br&gt;)&lt;br&gt;SELECT i as ID, 'user_' + CONVERT(varchar(3), i) as Username, 'password_' + CONVERT(varchar(3), i) as Pwd &lt;br&gt;INTO #users&lt;br&gt;from IntRange&lt;br&gt;OPTION (MAXRECURSION 150)&lt;br&gt;GO  &lt;p&gt;SELECT * FROM #users&lt;br&gt;GO   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-8962503020827077123?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/8962503020827077123/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=8962503020827077123' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8962503020827077123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8962503020827077123'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/09/rijtje-records-genereren-in-sql-server.html' title='Rijtje records genereren in SQL Server?'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-5675438970968663092</id><published>2011-03-24T06:45:00.000-07:00</published><updated>2011-03-30T08:11:11.900-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>VS2010 Settings not updating</title><content type='html'>&lt;p&gt;Nitty gritty detail, could drive you mad.&lt;/p&gt;&lt;p&gt;In Visual Studio 2010 I have a C# Windows application. I changed the connectionstring for the database in the app.config file. Later, I opened the Properties | Settings. VS noticed that the app.config had changed and suggested to change the settings accordingly. Yes, VS, I would like that, thank you.&amp;nbsp;&lt;/p&gt;&lt;p&gt;But then (as it turned out much later), it does NOT change the default setting in the Settings.Designer.cs, in the&lt;/p&gt;&lt;p&gt;[global::System.Configuration.DefaultSettingValueAttribute(....)]&lt;/p&gt;&lt;p&gt;When you simply run the application, it will read app.config (or actually the values that were copied to &amp;lt;applicationname&amp;gt;.exe.config). But when you - a I did - use it's classes from a Test project, it will only use the default setting.&lt;/p&gt;&lt;p&gt;Solution: open the editor in the Properties | Settings designer, test your connection (if you want to), and then save the setting. Now VS sees that you altered it, and adjusts the .cs file accordingly.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-5675438970968663092?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/5675438970968663092/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=5675438970968663092' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5675438970968663092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5675438970968663092'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/03/vs2010-settings-not-updating.html' title='VS2010 Settings not updating'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-2632064116126011944</id><published>2011-02-24T05:45:00.001-08:00</published><updated>2011-02-24T05:45:53.981-08:00</updated><title type='text'>Talend SSO, NTLM to SQL Server 2008</title><content type='html'>&lt;p&gt;Fresh laptop, let's re-install the Talend Open Studio for some testing. I usually work with SQL Server through Integrated Authentication (automatically logging on with your Windows account). Not so easy with Talend though. I finally got it to work by:&lt;/p&gt;&lt;p&gt;- downloading jTDS 1.2.5 from &lt;a title="jTDS" href="http://sourceforge.net/projects/jtds/files/jtds/"&gt;http://sourceforge.net/projects/jtds/files/jtds/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;- extracting it, navigate to subfolder x86\SSO&lt;/p&gt;&lt;p&gt;- copy ntlmauth.dll to Windows\System32 (could be anywhere in your PATH if I understood several posts well)&lt;/p&gt;&lt;p&gt;- restart TOS&lt;/p&gt;&lt;p&gt;- leave username and password in the DbConnection settings empty&lt;/p&gt;&lt;p&gt;- in ServerName just the name of my computer (no instance name appended)&lt;/p&gt;&lt;p&gt;And then, ole, it worked!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-2632064116126011944?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/2632064116126011944/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=2632064116126011944' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2632064116126011944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2632064116126011944'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/02/talend-sso-ntlm-to-sql-server-2008.html' title='Talend SSO, NTLM to SQL Server 2008'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6389890517249706963</id><published>2011-02-22T02:13:00.001-08:00</published><updated>2011-02-22T02:13:09.263-08:00</updated><title type='text'>Can you express order in UML?</title><content type='html'>&lt;p&gt;Today a collegue asked me if he could express order in a class diagram. Well, you can't.&lt;/p&gt;&lt;p&gt;Situation: class QuestionList, composition of multiple Question items. Actually, each question in the QuestionList is of a specific subtype of Question. How to express that the Question items should be in a specific order?&lt;/p&gt;&lt;p&gt;The Association in the class diagram offers the attribute 'ordered' in the source or target role. This leads to the first set of classes in the diagram below. However, you cannot infer from it that in the QuestionList, an Object of type FirstQuestion should be first, and an object of type SecondQuestion second. Or even that you should have one of each.&lt;/p&gt;&lt;p&gt;Next option is to use Objects instead of Classes. As in the second diagram. It shows that MyQuestionList consists of one object of type FirstQuestion and one of type SecondQuestion, but still no order.&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh4.ggpht.com/_aE7sdEKaONE/TWOKaiZuZoI/AAAAAAAAExw/wCpmhBzOuTc/%5BUNSET%5D.jpg" alt="Classes and Objects" width="550" height="425" /&gt;&lt;/p&gt;&lt;p&gt;The problem is that the order in which questions are to be asked is a dynamic feature, not a static one. And since a Class Diagram is for static constructions, you cannot express order very well. So we go on to a more dynamic diagram: Collaboration. In this diagram you could use the role binding to state which type of question fulfills which role. And then read 'role' as 'being the first question' and so on. See the diagram below. It still isn't machine processable, but at least you have modelled it.&lt;/p&gt;&lt;p&gt;I'm open to better solutions.&lt;/p&gt;&lt;p&gt;&lt;img src="http://lh5.ggpht.com/_aE7sdEKaONE/TWOMCXEAyMI/AAAAAAAAEx0/WfjFoqZq1fw/%5BUNSET%5D.jpg" alt="Collaboration" width="399" height="295" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6389890517249706963?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6389890517249706963/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6389890517249706963' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6389890517249706963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6389890517249706963'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/02/can-you-express-order-in-uml.html' title='Can you express order in UML?'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_aE7sdEKaONE/TWOKaiZuZoI/AAAAAAAAExw/wCpmhBzOuTc/s72-c/%5BUNSET%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-1654505258654032926</id><published>2011-02-17T06:52:00.001-08:00</published><updated>2011-08-25T02:02:38.443-07:00</updated><title type='text'>Oops, Visual Studio 2010 installed SQL Server Express</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Fresh machine! Fresh Win7 pro!&lt;br&gt;&lt;br&gt;I already loaded SQL Server 2008 R2.&lt;br&gt;Next is Visual Studio 2010. Full install or custom install? Well, what the h*, let's do a full install.&lt;br&gt;&lt;br&gt;Oops, I did not anticipate that the full install of an IDE includes an RDBMS. My mistake I guess.&lt;br&gt;&lt;br&gt;So I ended up with two SQL Server instances, one for 2008 R2, one for Express. Fresh machine becomes mess machine. In just 2 hours.&lt;br&gt;&lt;br&gt;Problem is: When you re-run VS setup, it offers to add/remove features, but SQL Server Express is NOT one of those features. The uninstall team at MS clearly did not count on an RDBMS being included either. On to Add/Remove Programs (which, on a side-note, in Dutch is called 'Software', which is still an English noun...). No such entry as 'Microsoft SQL Server Express'. Hmmm.&lt;br&gt;&lt;br&gt;But hey, I found out: In Add/Remove Programs find the entry 'Microsoft SQL Server 2008'. Select it. Choose 'Uninstall/Change'. It opens a window, choose 'Remove'. After some more steps you will be presented the choice which &lt;span style="font-style: italic"&gt;instance&lt;/span&gt; you would like to remove. Choose SQL Server Express. In the selectionlist for individual features do not select the Shared Features (you'll want to keep them for your 2008 R2 instance). Next, next, finish. &lt;br&gt;&lt;br&gt;Win7 may complain about the uninstall not being compatible or something like that. Ignore it. It has uninstalled properly, as you can check by not seeing the SQL Server Express services in Run | services.msc any more.&lt;br&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-1654505258654032926?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/1654505258654032926/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=1654505258654032926' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1654505258654032926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1654505258654032926'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/02/oops-visual-studio-2010-installed-sql.html' title='Oops, Visual Studio 2010 installed SQL Server Express'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6138634633876285457</id><published>2011-01-04T11:17:00.000-08:00</published><updated>2011-02-17T06:57:16.876-08:00</updated><title type='text'>VMWare upgrade requires expert SQL Server knowledge</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Today our System Administrator wanted to upgrade the VMWare server (aka vCenter Server) to version 4.1, thereby reusing the existing management database. Our SA is no database expert, and he shouldn't need to be.  VMWare thinks otherwise.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;To set the scene: the new version is 4.1, which requires a new server because the server OS has to be 64bit. The existing management database is called 'VMware' and located on a SQL Server 2005 instance. On a previous install the SA was instructed to create a 'VMware' user, and create several tables under that account. And therefore automatically in the 'VMware' schema (which in SQL Server is not exactly the same as a user). So in the VMWare database about 1/3 of the objects lives in the dbo schema, and the rest in the VMware schema. While running the upgrade that leads to the following error:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:courier new;"&gt;Setup found that multiple schemas exist in the database. Please the remove extra schemas before continuing."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apparently, VMWare knows that such a thing may have happened before, and have written an instruction to solve it. It's &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=1011386"&gt;here&lt;/a&gt;. Unfortunately, it is not enough to make it work. It took us two hours, so I write it down here to save you that time. And forget about the 8 steps on the aforementioned page.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ol  style="font-family:verdana;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Make a backup from the original VMware database, before even starting the upgrade process.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Start SQL Server Management Studio, and open a new Query Window.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;USE VMware;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;SELECT schema_id from sys.schemas where name = 'VMware';&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;SELECT '&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;ALTER SCHEMA dbo TRANSFER ' + sys.objects.name from sys.objects where sys.objects.type in ('U', 'V', 'P') and sys.objects.schema_id = &lt;/span&gt;&lt;the schema="" id="" from="" step="" 4=""&gt;&lt;span style="font-family:courier new;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/the&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Copy the result of step 5 from the result window to the query window, and execute this list of statements. You now have moved everything from the VMware schema to the dbo schema.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;I suppose you still want to use the VMware &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;user&lt;/span&gt;&lt;span style="font-size:100%;"&gt; to perform the upgrade, so you have to make sure that when you do, the upgrade scripts doesn't create new objects in the associated VMware &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;schema&lt;/span&gt;&lt;span style="font-size:100%;"&gt; again. It appears that SQL Server Management Studio lets you set the default schema for user VMware in the properties window. You can change it, but it won't remember the change... So, back to scripting:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;DROP SCHEMA VMware;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;DROP USER VMware;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;CREATE USER VMware WITH DEFAULT_SCHEMA = dbo;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Finally, we came across another error in the upgrade log: "Error while upgrading: ERROR [42000] [Microsoft][SQL Native Client][SQL Server]CREATE INDEX failed because the following SET options have incorrect settings: 'ARITHABORT'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods." Well, if you know that, VMware, include a statement in the upgradescript to make sure the setting &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;is&lt;/span&gt;&lt;span style="font-size:100%;"&gt; correct. But hey, we'll do it ourselves:&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Execute: &lt;span style="font-family:courier new;"&gt;SET ARITHABORT ON;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Make another backup of the VMware database, prior to starting the upgrade.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;OK, by now the vCenter Server setup worked through the database upgrade script (using the VMware login for access to the database). I hope it does for you as well.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6138634633876285457?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6138634633876285457/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6138634633876285457' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6138634633876285457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6138634633876285457'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2011/01/vmware-upgrade-requires-expert-sql.html' title='VMWare upgrade requires expert SQL Server knowledge'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4321999192216962309</id><published>2010-10-27T04:43:00.000-07:00</published><updated>2010-10-27T07:22:13.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='broker'/><category scheme='http://www.blogger.com/atom/ns#' term='MOM'/><category scheme='http://www.blogger.com/atom/ns#' term='iSoft'/><title type='text'>TDM, a history of Impact</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Today I came across the acronym 'TDM'. I've worked in the field of healthcare IT for quite some time now, and I was sure I had heard it before. Just could not find the right drawer in my head.&lt;br /&gt;&lt;br /&gt;From the context and some other drawer in my head I derived that it had to do with an integration platform and message brokering. Enter Google. Now this is old stuff, so I had to look a bit further. The answer:&lt;br /&gt;&lt;br /&gt;TDM is an acronym for Transaction Distribution Broker, and it is a communication broker created by CAI - Century Analysis Inc. I think it was then already bundled with the (then BAZIS, now iSoft) ZIS (Hospital Information System, but then the Dutch acronym). In 1998 it was transformed to Impact, which again was bundled with iSoft ZIS to make it communicate with the outside world.&lt;br /&gt;&lt;br /&gt;By now, CAI does not exist anymore. It was acquired by New Era of Networks Inc. (NEON) in 1999. NEON was acquired by Sybase in 2001. Sybase now offers the product under the name &lt;a href="http://www.sybase.com/products/allproductsa-z/e-bizimpact"&gt;"e-Biz Impact"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks to Ric Cross for providing the meaning of TDM. He knows a lot more about it (I quote):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana; font-style: italic;"&gt;Transaction Distribution Management - There was no binary by that name  in the product suite ... just a marketing name to provide some clue as  to the products purpose. A "Distributed Computing Environment" (DCE)  based "POSIX compliant" message broker.&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family: verdana; font-style: italic;"&gt;At the time the term was "Message Oriented Middleware" TDM had  several pieces that worked together, the Broker Server Manager (BSM) the  Store and Forward Manager (SFM) and message client/servers, we called  them Adaptive Interface Modules (AIMs).  The concept "Common Services"  was the prevalent and primary underpinning of the functionality of the  suite. The TDM client GUI was in my biased opinion one of the better  parsers of the day. You used the GUI to craft "Production Objects",   basically, under the covers C++ class structures for the proprietary  "Object Definition Language" (ODL). The ""Production Object" consisted  of an inbound definition and the outbound definition. The Outbound Rules  were where the transformation of data took place, rules would consist  of rule components, with qualifiers and filters (pre and post), built in  function calls, etc. &lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family: verdana; font-style: italic;"&gt;The GUI layout was good. What was clever was the ability load sample data to test the parse and step through the outbound rules.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana; font-style: italic;"&gt;Typically  a developer took the the Production Objects and referenced them to a  SFM. The SFM was defined with AIMs for either Inbound or Outbound and  presto you were moving messages. You could embed Production Objects  within the AIM, make a ODL function call to it to determine data values,  set dynamic links, as an example, which SFM or any number of  manipulations, use it to call another AIM to retrieve additional data  etc, all in all some fairly sophisticated processing could be developed.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4321999192216962309?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4321999192216962309/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4321999192216962309' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4321999192216962309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4321999192216962309'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2010/10/tdm-history-of-impact.html' title='TDM, a history of Impact'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-727519293995685393</id><published>2010-10-20T11:38:00.001-07:00</published><updated>2010-10-20T11:41:19.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='HP Envy'/><title type='text'>HP Envy's scroll feature won't resume</title><content type='html'>&lt;span style="font-family: verdana;"&gt;New laptop, HP Envy 14, cool piece of gear. Little problem: after resuming from hibernate it won't scroll anymore. Only after a restart of Windows, scrolling came back.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;First guess was right: upgraded the Synaptics driver to version 15.0.17.4.  Now it works!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-727519293995685393?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/727519293995685393/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=727519293995685393' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/727519293995685393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/727519293995685393'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2010/10/hp-envys-scroll-feature-wont-resume.html' title='HP Envy&apos;s scroll feature won&apos;t resume'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4680150730532642168</id><published>2010-07-21T00:52:00.000-07:00</published><updated>2010-07-21T01:01:13.236-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='evernote'/><category scheme='http://www.blogger.com/atom/ns#' term='cookie'/><category scheme='http://www.blogger.com/atom/ns#' term='springpad'/><title type='text'>Evernote cookie</title><content type='html'>I'm on a new laptop at a client's site. Firefox works as a charm, thanks to Firefox Sync. Now I also need Evernote, since I don't have OneNote here. (Two OneNotes is not practical anyway, as the name of the tool implies...)&lt;br /&gt;&lt;br /&gt;But the webclipper of Evernote doesn't work. Installation is fine, try to clip, it keeps asking for my password.&lt;br /&gt;&lt;br /&gt;After some more minor annoyances about the clipper and the Windows client, I looked around and came across &lt;a href="http://www.springpadit.com"&gt;SpringPad&lt;/a&gt;. A subject for another blog. However, the bookmarklet for SpringPad did not work either, same symptom. In SpringPad you can link your Google account and then log in with that, also in the clipper bookmarklet. So I tried that. And Google was the first to be so clever to tell me that I should enable cookies.&lt;br /&gt;&lt;br /&gt;It turns out that you need to have third-party cookies enabled, at least until you shutdown the browser.&lt;br /&gt;&lt;br /&gt;Would that have been the cure for the Evernote clipper as well? Click... o, yeah!&lt;br /&gt;&lt;br /&gt;So: If you want to use the Evernote clipper, enable 'cookies from other websites'.&lt;br /&gt;&lt;br /&gt;By the way: if you think about it, it's logical. You're on myrecipe.com, want to clip it, and for that you need a cookie from Evernote.com, which is in this case 'another website'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4680150730532642168?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4680150730532642168/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4680150730532642168' title='11 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4680150730532642168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4680150730532642168'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2010/07/evernote-cookie.html' title='Evernote cookie'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6488387089957677781</id><published>2010-05-11T06:18:00.001-07:00</published><updated>2010-05-11T06:18:23.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>VirtualBox networking for second domain</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;My laptop is configured to be part of the Furore domain, where I work. However, I frequently work at a customers' location. With my current customer, your machine has to be on the domain, say 'ABC', otherwise al kinds of services are unavailable.&lt;br/&gt;&lt;br/&gt;Since my laptop cannot be configured for two domains, I set up a virtual Windows XP with VirtualBox. For the network I used the default NAT setting connected to my physical ethernet connection. Worked fine, for a while.&lt;br/&gt;&lt;br/&gt;Today a network monitoring tool apparently saw a local IP address on the network, the one from the VirtualBox Host. Therefore they automatically shut down my network connection. Problem...&lt;br/&gt;&lt;br/&gt;This can be prevented by using the Bridged setting (according to the documentation). So I tried. Didn't work. I suppose because the Hosts' MAC address is unknown to the domain controller, and therefore does not get an IP address from the DHCP server. I could try to contact the servicedesk to register this MAC address. But instead I will ask for a separate laptop from ABC. I'm done with administering things I cannot fully control myself.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6488387089957677781?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6488387089957677781/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6488387089957677781' title='18 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6488387089957677781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6488387089957677781'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2010/05/virtualbox-networking-for-second-domain.html' title='VirtualBox networking for second domain'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-3863915396238391321</id><published>2010-02-22T23:42:00.001-08:00</published><updated>2010-02-24T10:26:20.585-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Outlook Express can compact messages...</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Interesting message I get the past few days after each startup. Funny thing is that I do not even use Outlook Express, I only use Outlook. So there is exactly 1 message in there, the default welcome message. Makes sense to compact that ;-)&lt;br /&gt;&lt;br /&gt;However, I found the solution, accidentally on an &lt;a href="http://office-outlook.com/outlook-forum/index.php?t=msg&amp;amp;th=125144/" target="_blank"&gt;Outlook forum&lt;/a&gt;. The crucial part:&lt;br /&gt;&lt;span class="MsgBodyText"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;It is related to desktop search - right-click the magnifying glass icon  in the toolbar menu and choose Windows Desktop Search Options from the  menu.&lt;/span&gt;  &lt;span style="font-style: italic;"&gt; If Microsoft Outlook Express is listed under 'Included Locations' then  left-click on it and click on the 'Modify' button'. You should see an  Indexed Locations popup where you can 'uncheck' the Microsoft Outlook  Express: Main Identity entry and you will no longer receive the message.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img src="http://img.zemanta.com/pixy.gif?x-id=ad657f55-be0a-8145-a36a-c558108c360a" alt="" class="zemanta-pixie-img" /&gt;Edit: Next startup the message reappeared! So I just gave in and pressed OK. It will probably be silent for some time now. In short:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-family: trebuchet ms; font-weight: bold;"&gt;Resistance is futile. We are Microsoft&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-3863915396238391321?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/3863915396238391321/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=3863915396238391321' title='7 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3863915396238391321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3863915396238391321'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2010/02/outlook-express-can-compact-messages.html' title='Outlook Express can compact messages...'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-3051013299485404397</id><published>2009-11-28T05:36:00.001-08:00</published><updated>2009-11-28T05:36:49.514-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>Windows 7 needs memory on VirtualBox</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Today finally time to install Windows 7 on a virtual machine. Only it ended fairly quickly with a "failed to start" message. Without any clue as to what might be wrong. Searching on the internet did not reveal the answer directly, but someone had made a description of his own installation, mentioning the amount of memory allocated. That rang a bell. VirtualBox's default is 192 MB. That's not enough. I raised it to 1024 MB and now Windows is installing happily. &lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=82971f00-dd81-8a3a-8899-e4d09c9e5dfa' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-3051013299485404397?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/3051013299485404397/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=3051013299485404397' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3051013299485404397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3051013299485404397'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/11/windows-7-needs-memory-on-virtualbox.html' title='Windows 7 needs memory on VirtualBox'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4942745429467810435</id><published>2009-11-11T06:48:00.001-08:00</published><updated>2009-11-11T06:48:38.077-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='office'/><title type='text'>Outlook knows what's good for you</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Well, sure it does. But if I want to receive an Access database file (.mdb), I do not want to be held back by it. Luckily, Microsoft provided a solution. You just have to edit the registry and reboot your machine. Apparently this cannot be done easier...&lt;br/&gt;&lt;br/&gt;For the solution, see the &lt;a href='http://support.microsoft.com/?scid=kb%3Ben-us%3B829982&amp;amp;x=15&amp;amp;y=15' target='_blank'&gt;Microsoft Knowledgebase, article 829982&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=51bf52ee-b35e-8b90-ba06-4130a0d0b7ab' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4942745429467810435?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4942745429467810435/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4942745429467810435' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4942745429467810435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4942745429467810435'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/11/outlook-knows-what-good-for-you.html' title='Outlook knows what&amp;#39;s good for you'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-5562560932499680863</id><published>2009-09-09T06:39:00.001-07:00</published><updated>2009-11-12T06:10:24.586-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>Clone a virtual machine in VirtualBox</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I have a 'standard' virtual machine with XPsp3 running under Sun's VirtualBox. Now I want to test Mule ESB, so I need a clone of this virtual machine to build Mule ESB on. I have the virtual hard disk file in .VHD format to keep it compatible with the company's standard (but less good) VirtualPC.&lt;br /&gt;&lt;br /&gt;I started simple by copying the WinXPtest.vhd to WinXPMule.vhd. Then into VirtualBox, New Virtual Machine, use existing harddisk, add the WinXPMule.vhd to the device list, BANG! ERROR! Problem turns out to be that both have the same id.&lt;br /&gt;&lt;br /&gt;Luckily some guy Stuart explained on his &lt;a href="http://srackham.wordpress.com/cloning-and-copying-virtualbox-virtual-machines/" target="_blank"&gt;blog&lt;/a&gt; how to do this by way of the vBoxManage.exe. He suggested the use of the clonevdi command, but checking the commandline help of vBoxManage I found the clonehd command. So I entered (include the double quotes):&lt;br /&gt;"c:\program files\sun\VirtualBox\VBoxManage.exe" clonehd WinXPtest.vhd WinXPMule.vhd --format:VHD --variant:Standard --type:normal.&lt;br /&gt;I actually don't know the meaning of the --variant and --type parameters, but Standard and normal sounded quite right. It took some time (copying a file of nearly 4GB always takes some time), but then the command returned with "Clone hard disk created in format 'VHD'. UUID: (some not very interesting GUID)"&lt;br /&gt;&lt;br /&gt;Back to the VirtualBox program, New Virtual Machine, use existing harddisk, add the newly created WinXPMule.vhd to the device list - no error this time - and you're done.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img src="http://img.zemanta.com/pixy.gif?x-id=811b0cfb-988e-852e-a2b6-cda7b880a329" alt="" class="zemanta-pixie-img" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-5562560932499680863?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/5562560932499680863/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=5562560932499680863' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5562560932499680863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5562560932499680863'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/09/clone-virtual-machine-in-virtualbox.html' title='Clone a virtual machine in VirtualBox'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-3604151227259406859</id><published>2009-09-04T04:22:00.001-07:00</published><updated>2009-09-04T04:23:43.681-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><title type='text'>Contact from Nokia to Windows Mobile HTC</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;My wife has bougt a HTC phone on Windows Mobile. Now she would like her contacts from her old Nokia imported. Could you do that?&lt;br /&gt;&lt;br /&gt;Well, it can indeed be done, without the use of Outlook (I was afraid of messing up my own contacts that are in sync with Outlook). &lt;a href="http://manish.wordpress.com/2008/11/14/importing-contacts-to-windows-mobile-without-ms-outlook/"&gt;Here's how&lt;/a&gt;.&lt;br /&gt;Mind you that the PIM backup tool will ask you to map the incoming columns (from your csv) to the internal contact fields. So make sure you tidy up your data prior to restoring, using Excel or OpenOffice Calc. And keep a copy of the data open on your computer while doing the restore, so you can see which columns to map where.&lt;br /&gt;Be aware that whereas Nokia calculates the displayname from the first- and lastname, WM6 does not. So while tidying up, also add a column "displayname" in which you combine first-, middle-, last- and companyname as you see fit.&lt;br /&gt;Fortunately, if you make a mistake, you can easily try again by selecting the restore-option to delete all Outlook-contacts on the phone prior to restoring. It won't touch the SIM contacts, if at all present.&lt;br /&gt;&lt;br /&gt;In my case there were contacts on the SIM, and they should be hidden. Microsoft has decided that that should be very difficult (why???) and be done through the registry. &lt;a href="http://www.modaco.com/content/pocket-pc-general-discussion/257907/hide-sim-contacts-on-wm6-pocketpc-windows-mobile-pro/#entry835204"&gt;Here's how&lt;/a&gt;. In case you need a registry editor first (it's not included in WM6), see &lt;a href="http://www.phm.lu/Products/PocketPC/RegEdit/"&gt;here&lt;/a&gt; for PHM Registry Editor. Choose a version for installation on the device (a .cab file, not through ActiveSync). For both our HTC's (Touch Cruise &amp;amp; Touch Cruise II) I use "Pocket PC 2002,2003 (ARM/PXA)". Copy the downloaded .cab to your phone and doubleclick it there. It will install itself.&lt;br /&gt;&lt;br /&gt;&lt;div class="zemanta-pixie"&gt;&lt;img src="http://img.zemanta.com/pixy.gif?x-id=c7e65af1-6bd0-8819-9c6e-30f2252add6c" alt="" class="zemanta-pixie-img" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-3604151227259406859?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/3604151227259406859/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=3604151227259406859' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3604151227259406859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3604151227259406859'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/09/contact-from-nokia-to-windows-mobile_04.html' title='Contact from Nokia to Windows Mobile HTC'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-3761080106386307011</id><published>2009-08-31T01:15:00.001-07:00</published><updated>2009-08-31T01:15:32.331-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='office'/><title type='text'>Chapter title in footer, MS Word vs. OpenOffice.org Writer</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;In the office we use Microsoft Office, in my case 2007. Apart from having to search my way to the ribbon, and missing some keyboard shortcuts that were present in previous versions, I can get used to it.&lt;br/&gt;&lt;br/&gt;However, I am writing a frankly large document in which it would be nice if you could read the chapter title in each footer. Enter MS Word help. After some searching, I found that it can only be done with &lt;span style='font-style: italic;'&gt;sections&lt;/span&gt;. That means that each chapter would have to start a new section in order to make this work. The other way round, you then have to make sure that every section gets the right header and footer by linking them together. More sections = more trouble, always.&lt;br/&gt;&lt;br/&gt;Obvious question: "Would this be any easier in OpenOffice?" Start it, open help, type 'headers', and there it is, right in the index: 'chapter information'. It's easy: First determine the style you prefer for the heading that you want to use (generally that is Heading 1), then select it as a field in the footer (or header if you prefer). &lt;br/&gt;&lt;br/&gt;Plus, all the commands are right where they should be, in a menu, accessable with the keyboard.&lt;br/&gt;&lt;br/&gt;Now, why is my company so determined to use MS Office???&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=fe0d24c3-85b5-808d-a300-0b2fd76b98fc' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-3761080106386307011?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/3761080106386307011/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=3761080106386307011' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3761080106386307011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3761080106386307011'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/08/chapter-title-in-footer-ms-word-vs.html' title='Chapter title in footer, MS Word vs. OpenOffice.org Writer'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4611100454604927727</id><published>2009-08-17T04:49:00.000-07:00</published><updated>2009-08-17T04:53:16.252-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='outlook'/><category scheme='http://www.blogger.com/atom/ns#' term='office'/><title type='text'>Saving your Outlook shortcuts</title><content type='html'>Outlook has a handy feature in the navigation pane: It let's you save shortcuts to often-used folders.&lt;br /&gt;But I noticed that sometimes these shortcuts disappear (I suspect after an automatic update, but MVP says that cannot be true).&lt;br /&gt;My system administrator has searched for a solution. You cannot make them disappearance-resistent, but you can make a backup of&lt;br /&gt;C:\Documents and Settings\&lt;username&gt;(username)\Application Data\Microsoft\Outlook\&lt;outlookprofilename&gt;(profilename).XML.&lt;br /&gt;Now, if you lose them again, simply restore this xml file from its backup location.&lt;br /&gt;&lt;br /&gt;A related tip is to reset your navigationpane entirely (should you want that): Start | Run | outlook.exe /resetnavpane.&lt;/outlookprofilename&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4611100454604927727?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4611100454604927727/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4611100454604927727' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4611100454604927727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4611100454604927727'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/08/saving-your-outlook-shortcuts.html' title='Saving your Outlook shortcuts'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4979081550589742921</id><published>2009-07-21T07:12:00.001-07:00</published><updated>2009-07-21T07:12:14.987-07:00</updated><title type='text'>Blue screen, dump and debug</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Bluescreen today, did not happen to me for a long time.&lt;br/&gt;Found out that the dump-info is saved and that you can examine it with WinDbg (part of Debugging Tools for Windows). &lt;br/&gt;Did not know where to find the file, but it turned out to be in C:\Windows\Minidump\.&lt;br/&gt;If you load it in WinDbg, you need to load the matching symbol information along with it. I didn't bother to find out what to load to make it work. Maybe some other time.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=d540d317-8987-82d1-b89e-77b2ae4a96ae' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4979081550589742921?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4979081550589742921/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4979081550589742921' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4979081550589742921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4979081550589742921'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/07/blue-screen-dump-and-debug.html' title='Blue screen, dump and debug'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6729739841179660067</id><published>2009-06-29T07:54:00.001-07:00</published><updated>2009-06-29T07:54:44.054-07:00</updated><title type='text'>Microsoft Bluetooth mouse requires passkey</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;span style='font-family: sans-serif;'&gt;New laptop, new problems. Connecting Microsoft mouse with bluetooth connection to the laptop. Although Microsoft says that the OS won't ask for a passkey, it does and won't go further without. Solution: type '0000' (four zero's, without the quotes) and you're done.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6729739841179660067?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6729739841179660067/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6729739841179660067' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6729739841179660067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6729739841179660067'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/06/microsoft-bluetooth-mouse-requires.html' title='Microsoft Bluetooth mouse requires passkey'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-1715688607422260488</id><published>2009-05-27T03:05:00.001-07:00</published><updated>2009-05-27T03:06:25.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Forgot your SQL Server Instance name?</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I stumbled upon this useful &lt;a href="http://weblogs.sqlteam.com/tarad/archive/2006/06/07/10114.aspx"&gt;blog&lt;/a&gt; about SQL Server instance names. In short, you can find the installed instance names in the registry under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL. It also tells you which instance name is associated with which data directory (default names by SQL Server are MSSQL.1, MSSQL.2 and so on).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-1715688607422260488?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/1715688607422260488/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=1715688607422260488' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1715688607422260488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1715688607422260488'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/05/forgot-your-sql-server-instance-name.html' title='Forgot your SQL Server Instance name?'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-2700256888299908067</id><published>2009-05-22T05:30:00.001-07:00</published><updated>2009-05-22T05:38:09.174-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><title type='text'>iContact phantom contact</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Recently I installed iContact (&lt;a href="http://supware.net"&gt;supware.net&lt;/a&gt;) on my Windows Mobile phone (HTC Touch Cruise). Works a lot nicer than the built-in contact manager.&lt;br /&gt;Then I started synchronizing my contact through an Outlook Web Access connection (so far I synced with Outlook on the desktop). Something went wrong, and I ended up with two versions of every contact entry. That's not funny. At the office - with Outlook having a connection with Exchange - I de-duplicated all the entries. Sync the phone again - all well, you might expect.&lt;br /&gt;&lt;br /&gt;However, in iContact I still had all the double contacts. One thing changed: With all contacts, one of the two did not contain any data. What was wrong?&lt;br /&gt;&lt;br /&gt;De-installed iContact, so I could see the original contact manager. There I saw that the data was allright. No duplicates. So the problem was in iContact. Re-installed iContact, thinking that might help. Not so. So it had to be in the iContact settings that had remained on the memorycard after the uninstall. Retry:&lt;br /&gt;- uninstall iContact&lt;br /&gt;- I found the directory &amp;lt;storage card&amp;gt;\Program files\iContact, with allcontacts.dat and favorites.dat files in it. Deleted the directory&lt;br /&gt;- re-installed iContact&lt;br /&gt;Yes, now it was ok.&lt;br /&gt;&lt;br /&gt;Conclusion: iContact does not detect it when you remove contacts outside of iContacts' own program interface. If in trouble: remove the allcontacts.dat files from the program files\iContact directory.&lt;br /&gt;&lt;br /&gt;Edit: the &lt;a href="http://supware.net/iContact/faq/"&gt;iContact faq&lt;/a&gt; also gives a solution: "While viewing the "all contacts" tab, touch the contacts tab at the bottom of the screen again."&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-2700256888299908067?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/2700256888299908067/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=2700256888299908067' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2700256888299908067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2700256888299908067'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/05/icontact-phantom-contact.html' title='iContact phantom contact'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-7148089227967608313</id><published>2009-05-18T02:08:00.003-07:00</published><updated>2009-05-18T02:08:52.039-07:00</updated><title type='text'>WinDiff with Visual Studio</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Microsoft has built a nice tool for comparing files and folders ages ago, and it's called WinDiff. It used to be deployed along with Visual Studio, but as of version 2008 I cannot find it anymore. So if you want to save your WinDiff, you can copy it from VS2005\Common7\Tools\Bin\Windiff.exe. Looking for it in VS2008 is useless.&lt;br/&gt;&lt;br/&gt;Of course you can also download it on numerous places on the web, or use &lt;a href='http://winmerge.org'&gt;WinMerge&lt;/a&gt;.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-7148089227967608313?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/7148089227967608313/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=7148089227967608313' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7148089227967608313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7148089227967608313'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/05/windiff-with-visual-studio_18.html' title='WinDiff with Visual Studio'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-8506344861621636496</id><published>2009-05-18T02:00:00.001-07:00</published><updated>2009-05-18T02:02:41.684-07:00</updated><title type='text'>The right keyboard settings</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Today somehow I found myself with smart quotes. It's that annoying option in Windows where you type a quote, nothing appears, then you type a letter, and you get an accented letter. If I type a quote, I mean a quote. If I want an accented letter, I can type in the alt-code.&lt;br/&gt;&lt;br/&gt;So I had to find out what the solution was (not for the first time, this also happens with fresh Windows installations, but I did not remember exactly). For me it was (on Windows XP SP3):&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Open Control Panel, Regional Options, tab Languages, button Details.&lt;/li&gt;&lt;li&gt;Remove everything but Dutch (as language) and US (as keyboard layout).&lt;/li&gt;&lt;li&gt;Make sure that you don't use US International keyboard layout, since that comes with the smart quotes.&lt;/li&gt;&lt;li&gt;Hit OK a few times and logoff/logon. &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-8506344861621636496?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/8506344861621636496/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=8506344861621636496' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8506344861621636496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8506344861621636496'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/05/right-keyboard-settings.html' title='The right keyboard settings'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-7510340876358831050</id><published>2009-03-11T03:34:00.001-07:00</published><updated>2009-03-11T03:34:31.314-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Throw ex</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;No, don't throw your ex anywhere. It's just that a collegue mentioned something I didn't know about re-throwing exceptions in .Net.&lt;br/&gt;&lt;br/&gt;Say you want to catch an exception and rethrow it after you're done with it:&lt;br/&gt;&lt;br/&gt;    Try&lt;br/&gt;      ' try something&lt;br/&gt;    Catch ex As Exception&lt;br/&gt;      ' do something useful&lt;br/&gt;      Throw / Throw ex&lt;br/&gt;    End Try&lt;br/&gt;&lt;br/&gt;There's a difference:&lt;br/&gt;- Throw: ex is rethrown, and stack trace is left intact.&lt;br/&gt;- Throw ex: ex is thrown, but stack trace is erased.&lt;br/&gt;&lt;br/&gt;So, generally you want to do Throw, not Throw ex.&lt;br/&gt;&lt;br/&gt;C# works the same, although with other syntax of course:&lt;br/&gt;&lt;br/&gt;            try&lt;br/&gt;            {&lt;br/&gt;                // try something&lt;br/&gt;            }&lt;br/&gt;            catch (Exception ex)&lt;br/&gt;            {&lt;br/&gt;               // do something useful&lt;br/&gt;               throw; / throw ex;&lt;br/&gt;            }&lt;br/&gt;&lt;br/&gt;Also see &lt;a href='http://msdn.microsoft.com/en-us/library/ms182363%28VS.80%29.aspx' target='_blank'&gt;MSDN&lt;/a&gt; for an explanation.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=29290283-44cc-4f4a-b575-bd252cfd9439' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-7510340876358831050?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/7510340876358831050/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=7510340876358831050' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7510340876358831050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7510340876358831050'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/03/throw-ex.html' title='Throw ex'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-1029188630328523783</id><published>2009-03-03T02:59:00.000-08:00</published><updated>2009-03-03T03:04:46.565-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dependency Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><title type='text'>Entering string parameters in constructors with Unity</title><content type='html'>&lt;span style="font-family: verdana;"&gt;A Microsoft.Practices.Unity container will try to resolve any parameters that a constructor expects. However, for simple string (or int) parameters, that won't work. My example for this was a queue that expects a name parameter:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Public Class Queue&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Private mName As String&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Public Sub New (name As String)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;mName = name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;This can be solved, and Microsoft explains how in this &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://msdn.microsoft.com/en-us/library/cc440941.aspx#config_dynamic"&gt;section of the documentation&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;In this case it results in code like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    MyContainer.Configure(Of InjectedMembers)() _&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    .ConfigureInjectionFor(Of Queue)( _&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;    New InjectionConstructor("testqueue"))&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-1029188630328523783?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/1029188630328523783/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=1029188630328523783' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1029188630328523783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1029188630328523783'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/03/entering-string-parameters-in.html' title='Entering string parameters in constructors with Unity'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-1527274082598682392</id><published>2009-02-26T12:52:00.000-08:00</published><updated>2009-02-26T13:48:32.227-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='photoshop elements'/><title type='text'>Picture organizing software</title><content type='html'>&lt;span style="font-family: verdana;font-size:100%;" &gt;I have used Photoshop Elements for about 4 years now, starting with PE3, and now PE6. It's nice, though not free. I primarily bought it for organizing my pictures, and have come to appreciate the many editing capabilities as well. But, I have found some pretty annoying 'features' as well:&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: verdana;font-family:verdana;" &gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;By now there are some 12000 pictures in it, and the organizer is getting really slow (on my AMD Athlon64 3000+, 2GB). You use the organizer constantly, so that is a problem.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The tagging system is basically very good. But the interface to work with it is not. All tags are displayed in a hierarchial list. You assign tags to photo's by dragging the tag to the photo. For searching, you click a checkbox in front of the tag. If you have many tags (I have), you're constantly scrolling the tag list. You cannot easily do this with some shortcuts.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;You cannot zoom further than 'fit in window' in the organizer itself. For that you have to start the preview (F11). Which has another problem: it is horribly slow on RAW files.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The editor has very many functions inherited from it's big brother Photoshop, and together with my Wacom tablet it's a fun to use. If... it would not crash about every 5 minutes. I must say, on the aforementioned PC. On my Dell - Intel laptop, this problem is not present.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The program is very eager at doing things automatically. Just now, I switched to it (simple Alt+Tab), and then it started 'updating...' for 2 minutes or so. No clue what needed updating though....&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;One thing on the upside: As of version 6, PE uses an SQLite database for it's data. So with some SQL knowledge and common sense you can do some nice things. Like moving all the pictures to another disc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;Well, if PE is starting to fail on me, let's look at all those free alternatives that have emerged lateley. After some reading on the Internet I decided to try Picasa 3 (I was already using 2 for exchange with PicasaWeb), open source My Photo Index and Microsoft Photo Gallery.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;My Photo Index: Indexing the first small directory of pictures looked promising. So let's try one with (Panasonic FZ-50) RAW files in them. Hmm, it stops responding. That's not good. OK, it's open source and .Net, so theoretically I could try to fix this myself. But hey, I was working on my other hobby now.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;Picasa 3: Indexing goes well, also with the RAW files. As per version 3 it also correctly recognizes multi-word tags (instead of breaking them up), that's nice. Less impressive: labels can not be ordered in a hierarchy. Let's try the search. Simple search box in the upper right corner. Type in 'cat': It matches not just on the label, but on all sorts of things. I cannot find an option to search just the labels, let alone to combine multiple labels. PE is doing far better here! Adding labels however, can be done entirely with the keyboard. I like that.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;Photo Gallery: This is Microsoft, so 'My Pictures' is by default indexed. And cannot be deleted from the index either. Well, MS, not everyone saves his pictures in 'My Pictures'. Duh. However, you can add other directories as well. From here the story is pretty much the same as with Picasa. No hierarchy, no obvious way to add labels, same search-problems. File | Exit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;So, the sad conclusion is that I will have to stick to PE, or install Linux on my main machine. Since digiKam or F-Spot is said to do this very well. But that is still one bridge too far for me.&lt;br /&gt;&lt;br /&gt;However, while writing this I have gave F-Spot a try on my secondary PC with WUBI (Ubuntu alongside Windows). Wow! Tagging with the keyboard, hierarchical tags, search on multiple tags (And + Or functionality), correct import of multi-word tags and RAW files. If you press '/', you get a Find-typing area that understands both tags and filenames. It just does as promised. Why can't all the others do this??? Maybe I should turn over to Ubuntu after all. Whooaa, I need some time &amp;amp; beer to get used to that!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;font-family:verdana;" &gt;If you have any other good ideas, please keep me and other readers posted. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-1527274082598682392?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/1527274082598682392/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=1527274082598682392' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1527274082598682392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1527274082598682392'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/picture-organizing-software.html' title='Picture organizing software'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-7661912697781203431</id><published>2009-02-17T23:54:00.000-08:00</published><updated>2009-02-18T00:02:10.293-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio extensions</title><content type='html'>&lt;span style="font-family: webdings;"&gt;&lt;span style="font-family: verdana;"&gt;Resharper is said to be very good, although it slows VS down. I don't know, because I never used it and I do not intend to pay that much money. Recently I installed two extensions that I'm very happy with. Both are free!&lt;br /&gt;&lt;br /&gt;- CoolCommands, with info in the makers' blog, &lt;a href="https://webmail.furore.com/exchweb/bin/redir.asp?URL=http://weblogs.asp.net/gmilano/archive/2005/11/10/430240.aspx"&gt;here&lt;/a&gt; and &lt;a href="https://webmail.furore.com/exchweb/bin/redir.asp?URL=http://weblogs.asp.net/gmilano/archive/2006/02/27/439208.aspx"&gt;here&lt;/a&gt;. The newer &lt;a href="http://code.msdn.microsoft.com/PowerCommands"&gt;PowerCommands&lt;/a&gt; looks a lot like it, it might be a rebranding.&lt;br /&gt;&lt;br /&gt;- &lt;a href="https://webmail.furore.com/exchweb/bin/redir.asp?URL=http://www.exactmagic.com/products/studiotools/index.html"&gt;Exact Magic Studio Tools&lt;/a&gt;. I like the powerful Go To command the most. It's definitely something that should have been a part of the Solution Explorer all along.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-7661912697781203431?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/7661912697781203431/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=7661912697781203431' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7661912697781203431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7661912697781203431'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/visual-studio-extensions.html' title='Visual Studio extensions'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-4521637595062098638</id><published>2009-02-17T00:23:00.000-08:00</published><updated>2009-02-17T00:30:20.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><title type='text'>Pictures backup strategy</title><content type='html'>&lt;span style="font-family:verdana;"&gt;This week there was a discussion on the &lt;a href="http://tech.groups.yahoo.com/group/Panasonic_FZ/"&gt;Panasonic FZ Yahoo group&lt;/a&gt; about backup strategies for al those pictures. I also added my own. Maybe it can be of help for you too. (BTW: I have a Panasonic FZ-50. Very good camera in the niche between really compact cameras and DSLR's.)&lt;br /&gt;------&lt;br /&gt;I've seen a lot of nice options, yet I add my own for anyone who still&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; isn't satisfied.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; Most solutions in this thread use synchronization. My problem with&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; that is when you did something stupid (deleting that nice picture for&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; example) but you notice a little while later, after the sync, your&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; backup won't save you.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; That's why I use backup software, Peters Backup&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; (&lt;/span&gt;&lt;a style="font-family: verdana;" href="http://pbackup.sourceforge.net/"&gt;http://pbackup.sourceforge.net/&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;), simple, free and open source.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; Configuring it requires you to be a little bit of a geek, but after&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; that you're all set to go. It can make incremental and full backups.&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; It can also save 'the history' (multiple versions) of files. I make a&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; full backup once in a while, and incrementals every time I add new&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; pictures (before deleting them from the memorycard). I even added a&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; clever MSDOS script for automatically saving the previous two full&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; backups, and deleting the oldest. Incremental is quick, so no problem&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; there. The format is plain and simple zip, so you can get it out&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; anytime. The backup goes to an external USB harddisk. If you need more&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; speed but your computercase is full, try e-Sata (external SATA).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; Last but not least: At the end of the year (ok, that's should be more&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; often) I burn the pictures to DVD and bring them to my brother who&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; lives nearby. That gets me an off-line and off-site backup, all in&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; full-format (even raw if I want to), something most online storages&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; won't give you. Plus a good cup of coffee, something I have never seen&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; in any online storage :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-4521637595062098638?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/4521637595062098638/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=4521637595062098638' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4521637595062098638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/4521637595062098638'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/pictures-backup-strategy.html' title='Pictures backup strategy'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-3510850139779851399</id><published>2009-02-16T23:59:00.000-08:00</published><updated>2009-02-17T00:08:57.752-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='log'/><category scheme='http://www.blogger.com/atom/ns#' term='synergy'/><title type='text'>Log level Synergy service</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I use the excellent tool &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt; for using my mouse &amp;amp; keyboard on multiple computers. It can also run as a Windows Service, see the &lt;a href="http://synergy2.sourceforge.net/"&gt;manual.&lt;/a&gt;&lt;br /&gt;Annoyingly, it kept showing me warnings about not finding the server side when I'm at work (it's configured to work with my home PC as the server). Here's how to set the log level for the Synergy service on Windows:&lt;br /&gt;- Stop the running service.&lt;br /&gt;- Start the Synergy program from the Start Menu.&lt;br /&gt;- Click 'Autostart', then 'Uninstall' - that uninstalls the service.&lt;br /&gt;- Set the logging level (to Error).&lt;br /&gt;- Click 'Autostart', then 'Install' - that re-installs the service again.&lt;br /&gt;&lt;br /&gt;Now the service will remember the configured logging level.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-3510850139779851399?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/3510850139779851399/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=3510850139779851399' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3510850139779851399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/3510850139779851399'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/log-level-synergy-service.html' title='Log level Synergy service'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-1614838146823006314</id><published>2009-02-05T03:15:00.000-08:00</published><updated>2009-02-05T03:30:12.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='VB.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Type'/><title type='text'>What type?</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I always get confused on how to get to the type of anything in VB.Net. So I sum it up here and now:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Let's say we have a class:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Class Relation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;and an object:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-family: courier new;"&gt;myMother As Relation&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;For comparison: &lt;span style="font-family: courier new;"&gt;TypeOf myMother Is Relation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;For retrieving the type from the class: &lt;span style="font-family: courier new;"&gt;GetType(Relation)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;For retrieving the type from the object: &lt;span style="font-family: courier new;"&gt;myMother.GetType()&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-1614838146823006314?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/1614838146823006314/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=1614838146823006314' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1614838146823006314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/1614838146823006314'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/what-type.html' title='What type?'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6477884635706126338</id><published>2009-02-04T01:53:00.000-08:00</published><updated>2009-02-04T02:36:05.488-08:00</updated><title type='text'>Short usage of String.Split</title><content type='html'>&lt;span style="font-family:verdana;"&gt;For some reason I don't seem to have a file in my head for the most efficient usage of the .Net String.Split method. Especially the inline declaration of the array of separators always fails. So, when I found out today I decided to note it here. For myself and everyone else:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;For more than one separator:&lt;br /&gt;&lt;br /&gt;VB: Dim SplittedStrings() As String = InputString.Split(New [Char](){";"c, ","c})&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;C#: String[] SplittedStrings = InputString.Split(new Char[]{';', ','});&lt;br /&gt;&lt;br /&gt;For just one separator:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;VB: Dim SplittedStrings() As String = InputString.Split(";"c)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;C#: String[] SplittedStrings = InputString.Split(';');&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6477884635706126338?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6477884635706126338/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6477884635706126338' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6477884635706126338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6477884635706126338'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/short-usage-of-stringsplit.html' title='Short usage of String.Split'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-6317899025976394596</id><published>2009-02-03T07:13:00.000-08:00</published><updated>2009-02-03T07:26:27.472-08:00</updated><title type='text'>Mapping of different NHibernate collection types to .Net</title><content type='html'>&lt;span style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;Today I had to create a many-to-many relationship with some attributes of its own in NHibernate. I ended up with a set construction with a composite type embedded, like shown on page 229 of Hibernate in Action.&lt;br /&gt;&lt;br /&gt;That left me with one question: How to represent the &amp;lt;set&amp;gt; in .Net? There is no built-in Set type. However, NHibernate solved that by using the Iesi.Collection.dll, which is part of the NHibernate download. On the &lt;a href="http://rextang.net/blogs/past/archive/2005/05/31/903.aspx"&gt;blog of rextang&lt;/a&gt; I learned this mapping:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;table style="width: 70%;" border="1" cellpadding="1" cellspacing="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;&amp;lt;bag&amp;gt;&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;IList&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;&amp;lt;list&amp;gt;&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;IList&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;&amp;lt;set&amp;gt;&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;Iesi.Collections.Iset (from the Iesi.Collections.dll assembly in the \bin folder of the NH distribution)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;&amp;lt;map&amp;gt;&lt;/span&gt;&lt;/td&gt; &lt;td&gt;&lt;span style="font-family:courier new,courier,monospace;font-size:85%;"&gt;IDictionary&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;And it works!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-6317899025976394596?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/6317899025976394596/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=6317899025976394596' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6317899025976394596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/6317899025976394596'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/mapping-of-different-nhibernate.html' title='Mapping of different NHibernate collection types to .Net'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-8089224290970913894</id><published>2009-02-02T12:07:00.000-08:00</published><updated>2009-02-02T12:13:04.926-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='wubi'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Wubi Ubuntu boots into CLI</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;I have a spare PC running Windows XP and Ubuntu through a Wubi installation. This evening Ubuntu wouldn't start normally. Instead, it just showed me the command line interface, starting with "(initramfs)". Not good.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Searching on the Net I stumbled upon the phrase "Ubuntu cannot be booted if Windows has not been shut down cleanly" on the &lt;/span&gt;&lt;a style="font-family: verdana;" href="https://wiki.ubuntu.com/WubiGuide#Cannot%20boot%20into%20Ubuntu"&gt;WubiGuide&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;. That made me think that indeed I had not shut down Windows properly before. So I did a checkdisk on both volumes (Windows is on E:, the Wubi files are on C:, don't ask me how I came to this odd configuration), restarted into Ubuntu and everything was fine again.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-8089224290970913894?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/8089224290970913894/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=8089224290970913894' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8089224290970913894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/8089224290970913894'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2009/02/wubi-ubuntu-boots-into-cli.html' title='Wubi Ubuntu boots into CLI'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-5097817864603990380</id><published>2008-11-18T04:27:00.000-08:00</published><updated>2008-11-18T04:52:12.593-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dependency Injection'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Using a Factory for resolving a dependency</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Today I solved the gap between Dependency Injection with Unity and a Factory. What was the question?&lt;br /&gt;&lt;br /&gt;We have a UseCaseFactory for creating instances of descendants of the UseCaseBase class. This factory internally uses the Microsoft Patterns &amp;amp; Practices Unity container for actually instantiating the requested class and its dependencies. When a UseCase is created, it gets it's own container.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;To make things even more complex, we have UseCaseFactory.CreateChildUseCase, which results in a UseCase in the same container as the parent UseCase.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Some descendants - but not all - require repositories for data handling and therefore a Hibernate session. Currently there is a HibernateSessionFactory as well. The NewSession() method can provide you with a session.&lt;br /&gt;&lt;br /&gt;The old solution was ugly: All UseCase classes that required a repository had to be derived from UseCaseWithRepositoriesBase. The CreateUseCase method would check on this. If true, then it created a Session with the HibernateSessionFactory and registered this instance in the container. After that, all necessary repositories (that depend on a session) could be resolved.&lt;br /&gt;&lt;br /&gt;I did not want to completely change the creation of Hibernate session objects just to get rid of the factory. It took me a little while to find out what I really wanted: Register a method on a factory in the container to use when resolving the Hibernate session.&lt;br /&gt;&lt;br /&gt;There are not many hits on it in Google, but it is possible. The Unity framework provides the StaticFactoryExtension exactly for this purpose. Here's how it works:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Imports Microsoft.Practices.Unity&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Imports Microsoft.Practices.Unity.StaticFactory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  Public Class UsecaseFactory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Private Shared mHibernateFactoryExtension As New StaticFactoryExtension()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Shared Sub New()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      mRootContainer = New UnityContainer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      mRootContainer.AddExtension(mHibernateFactoryExtension)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      mHibernateFactoryExtension.RegisterFactory(Of HibernateSession)(AddressOf HibernateSessionFactory.CreateSession)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    End Sub&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  End Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Effectively you tell the container: If a HibernateSession instance is requested and it does not yet exist, call HibernateSessionFactory.CreateSession to create it for you.&lt;br /&gt;&lt;br /&gt;You have to provide the RegisterFactory method with a delegate of type FactoryDelegate:&lt;br /&gt;&lt;br /&gt;Public Delegate Function FactoryDelegate(ByVal container As Microsoft.Practices.Unity.IUnityContainer) As Object&lt;br /&gt;&lt;br /&gt;Although you get the container as a parameter, you need not register the result yourself. You just have to return the requested object (in this case a HibernateSession object). It will automatically be registered in the container. The container is probably just there for your convenience in case you need to resolve other classes along the way.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-5097817864603990380?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/5097817864603990380/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=5097817864603990380' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5097817864603990380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/5097817864603990380'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2008/11/using-factory-method-for-resolving.html' title='Using a Factory for resolving a dependency'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-7372277419750522322</id><published>2008-11-10T01:41:00.000-08:00</published><updated>2008-11-10T08:50:59.973-08:00</updated><title type='text'>XML questions, serializing and numbering</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Two questions I got today, regarding .Net, XML, XSD and XSLT:&lt;br /&gt;1. I have an existing class that is Xml serializable. Can I make the serialization conform to an also existing XSD schema?&lt;br /&gt;2. I have a sequence of elements in one XML. In transforming it to another XML (using XSLT), can I number the resulting sequence in te result?&lt;br /&gt;&lt;br /&gt;One by one, that's the credo.&lt;br /&gt;&lt;br /&gt;Question one is less of a problem than it seams: The differences are only in the ordering of elements. All the elements from the XSD are in fact present in the existing class. But can we steer the XML serializing so that it will use the ordering prescribed by the XSD schema?&lt;br /&gt;&lt;br /&gt;There's a book I should be learning inside out, but I cannot find the time for it. It's annoying. But I knew it contained information about question 1. It the MCTS Application Development Foundation book. Well, chap 5, lesson 2, "How do I conform to an XML Schema". The solution is simple: use the Xml Schema Definition tool xsd.exe tool from the Visual Studio Command line:&lt;br /&gt;xsd C:\schema\blabla.xsd /classes /language:CS&lt;br /&gt;&lt;br /&gt;Of course, /language:VB is also a valid option.&lt;br /&gt;&lt;br /&gt;Problem is: you generate a new class, but we already had an existing class.&lt;br /&gt;&lt;br /&gt;Secondly, I went through the help for XmlSerializer and XmlWriterSettings. I didn't find any help there. And the attributes for steering the XmlSerializer don't seem very helpful either.&lt;br /&gt;&lt;br /&gt;Conclusion: Do use the xsd tool, and manually adapt your existing class to match the generated class.&lt;br /&gt;&lt;br /&gt;On to question 2. Simple. The answer is in the XSLT Cookbook, chapter 5.5, "Numbering textual output". Just use the xsl:number element, and read the help on it for several options.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-7372277419750522322?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/7372277419750522322/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=7372277419750522322' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7372277419750522322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/7372277419750522322'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2008/11/xml-questions-serializing-and-numbering.html' title='XML questions, serializing and numbering'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1608027669404739121.post-2401507193861967535</id><published>2008-11-06T05:27:00.000-08:00</published><updated>2008-11-06T06:16:39.723-08:00</updated><title type='text'>Unity and MethodAccessException</title><content type='html'>&lt;span style="font-family:verdana;"&gt;This was such a day where I got a problem on my desk even before I got coffee. By now, problem is solved and I had some coffee, so time to register the problem and the solution here.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I'm working on a software package for a customer. Up to the previous version we used the ObjectBuilder dependency injection framework. With the latest release we converted it to Unity. Everything still worked in local tests.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So, it was deployed at two client test-sites. Neither of them worked. The log was full of MethodAccessExceptions. This resulted in Unity not being able to resolve many dependencies. We tried:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- moving all the dll's to the same directory as the exe;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- updating to Unity 1.2 (we started with 1.0);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- signing the Unity dll's (see &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://msdn.microsoft.com/nl-nl/library/dd203196%28en-us%29.aspx"&gt;here&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; for an explanation);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;- updating the test server (Windows 2003 Server) with Microsoft Update.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;It turned out that there were 44 updates available for the server, including Windows Server 2003 SP1. Finally, after installing these updates, it worked. We think SP1 was the necessary one. However, since all this updating is done through a remote desktop we didn't bother trying to find out which of the updates actually did the trick.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Along the way, with signing the Unity dll's, I found out that I cannot open the Unity solution file. Neither the 1.0 nor the 1.2 version. It states that "The projectfile [...]\Tests.ObjectBuilder.csproj cannot be opened. The project type is not supported by this installation.&lt;/span&gt;&lt;a style="font-family: verdana;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_aE7sdEKaONE/SRLzoYKKu8I/AAAAAAAADWU/ExU5vrJcTjY/s1600-h/UnitySolutionCannotBeOpened.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 58px;" src="http://4.bp.blogspot.com/_aE7sdEKaONE/SRLzoYKKu8I/AAAAAAAADWU/ExU5vrJcTjY/s320/UnitySolutionCannotBeOpened.jpg" alt="" id="BLOGGER_PHOTO_ID_5265538789354945474" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;So far, I have not found out what is required to open this project file. If anyone knows, please post a reply.&lt;span style="font-family: verdana;"&gt;&lt;br /&gt;&lt;br /&gt;Second thing along the way: Dependency injection is nice, but you can hardly find out which type is loaded when. If you want some insight in this, you can use the Fusion Log viewer, Fuslogvw.exe in the Windows SDK (on my machine: C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin). Susanne Cook has blogged about it &lt;a href="http://blogs.msdn.com/suzcook/archive/2003/05/29/57120.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Back to normal work....&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1608027669404739121-2401507193861967535?l=cknaap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cknaap.blogspot.com/feeds/2401507193861967535/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1608027669404739121&amp;postID=2401507193861967535' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2401507193861967535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1608027669404739121/posts/default/2401507193861967535'/><link rel='alternate' type='text/html' href='http://cknaap.blogspot.com/2008/11/unity-and-methodaccessexception.html' title='Unity and MethodAccessException'/><author><name>Christiaan</name><uri>http://www.blogger.com/profile/01344377375961236220</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_aE7sdEKaONE/SRLzoYKKu8I/AAAAAAAADWU/ExU5vrJcTjY/s72-c/UnitySolutionCannotBeOpened.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
