Skip to main content


Showing posts from March, 2015

Github for Windows: Where can I find Git.exe?

Yesterday I mentioned an issue about Bower where Git.exe was not part of the PATH environment variable. Now if have installed msysgit , your path will be something like c:\program files\git\bin\ or c:\program files (x86)\git\bin. But what if you are using GitHub for Windows ? In that case the correct path is little bit harder to find. GitHub for Windows is using a portable version of msysgit. To find the location of this portable version, open up windows explorer and go the following folder: %USERPROFILE%\AppData\Local\GitHub\ Inside this folder, you should find a folder PortableGit_<some guid> . Open up this folder. Inside you’ll find a bin folder with the git.exe: Copy this path to your PATH environment variable.

Bower - ENOGIT git is not installed or not in the PATH

I’m currently switching from NuGet to Bower as my client side package manager. The process is not going as smoothly as I hoped. During the process I got a range of problems. One of the problems was that Bower throw the following error when I tried to install the Bower packages: ENOGIT git is not installed or not in the PATH This one is easy to fix, just add the path to Git.exe to the PATH environment variable.

Microsoft cloud IT architecture posters

Microsoft published a list of posters about the core infrastructure components of Microsoft cloud services and platforms. “These architecture posters give you information about Microsoft cloud services and platforms, including Office 365, Microsoft Azure, private cloud datacenter, and hybrid on-premises and cloud solutions. IT decision makers and architects can use these resources to determine the ideal solutions for their workloads and to make decisions about core infrastructure components such as identity and security.” Very useful if you want a quick, concise view of the Azure IT landscape.

Multiple ‘Definitions of Done’

One of the signs of a good Agile team is that they have well defined ‘Definition of Done’. One thing that I learned over time is that you need multiple ‘Definitions of Done’ depending on the context(user story, release, sprint, and so on…). Mitch Lacey did a blog post where he shared his Team “Done” List : Daniel Gullo goes even further and split the Definition of Done in 2 parts: Completion Criteria and Acceptance Criteria: What are your ‘Definitions of Done’?

Save time and disk space when using Git

By default Git will copy the full history when you clone a repository. This is one of the advantages of a distributed source control system as you have the full history locally. But what if you have a project that accumulated years of project history in your repository? The solution is a shallow clone. A shallow clone allows you to clone a repository keeping only the latest n commits of history. How can you do this? Just use the - -depth option: git clone --depth depth remote-url Remark: This can also save some time on your build server. Hint, hint…

Free Angular.js ebook

If you are new to Angular.js and want to learn the basics, I can recommend the free Angular Basics e-book . It covers everything you need to know to get started and best of all it includes a large list of editable and runnable examples…

ASP.NET MVC Identity–Registration

I was listening today to DotNetRocks episode 1109 with Troy Hunt , a well known security expert. In this episode Troy was sharing the following story(I summarized it): “Some people claim that they have hacked DropBox or iCloud. But instead the only thing they did was trying out a list of available usernames and password(acquired from other hacks), until one of them works. To make this more difficult for a hacker, it’s important that your application doesn’t expose any information if a specific email address is used inside your application or not. For example, on the login page when a user types a wrong email address to login, don’t say that the email address can not be found but give a more generic error mentioning that ‘username and/or password are incorrect’. Do the same thing on your forgot password page, don’t tell the users that the email address  can not be found but tell them that ‘a password reset mail is send to the specified email address’. Last place where you coul

Excel Team Explorer Add-in: HTTP code 407: Proxy Authentication Required

Did you ever had the following error when you tried to connect to Team Foundation Server(TFS) use the Team Explorer add-in in Excel? HTTP code 407: Proxy Authentication Required When you see this error, most of the time, it’s caused by the fact that your organization is using a proxy. The proxy credentials are not properly passed through the Excel add-in and you end up with the error above. I had the same problem when connecting to TFS from Visual Studio. There I solved it by updating the devenv.exe.config with the following section: But Excel doesn’t have a config file, so I was thinking I couldn’t use the same solution. I was wrong, what you can do is create a new Excel.exe.config file, put the same information in as above and place it on the same location as Excel.exe. This solved the problem for me…

Xamarin and Caliburn

This news made my week! My favorite cross-platform framework( Xamarin ) and my favorite MVVM framework( Caliburn.Micro ) are finally coming together. The team after Caliburn.Micro announced that they have a working port of Caliburn for Xamarin. Not everything is ported yet, but I expect that some of the platform specific features will be ported as well. A working sample can be found here: nigel-sampson/xamarin-experiements .

System.InvalidOperationException: ID1073: A CryptographicException occurred when attempting to decrypt the cookie using the ProtectedData API (see inner exception for details).

Last week I spend a lot of time searching for a specific WIF issue we encountered. The Facts Let’s first describe the situation before I come to the error itself. We have a root ASP.NET MVC Website e.g. and a list of subsites,,…  Users always have to login through the root site before they can use any of the subsites. Login is handled through WIF and a range of STS instances(depending on the  authentication type). Once logged in on the root site, users have Single-Sign-On and can connect to any of the subsites without authenticating again. The Issue Last week we upgraded the root site to ASP.NET MVC 5, .NET 4.5 and the build-in System.IdentityModel and System.IdentityModel.Services. The sub sites are still using .NET 4.0, System.IdentityModel and Microsoft.IdentityModel. Authentication on the root site works as expected, but when we try to connect to any of the subsites, SSO fails and WIF returns the follo

Xamarin Forms Succintly

The Syncfusion ‘Succintly’ collection of free e-books keeps growing. The latest addition is  Xamarin.Forms Succintly . It is available for free here (registration required). Xamarin.Forms Succinctly With the fragmented landscape of mobile device platforms, tools for creating cross-platform apps have sprung up as varied and numerous as apps themselves. Most of these tools create their own APIs and translate them into the mobile platform APIs, which works fine for some. And then there’s Xamarin.Forms, which creates mappings from its C# classes and controls directly to the native platform APIs and controls. With Xamarin.Forms Succinctly by Derek Jensen, you will learn how to use Xamarin.Forms to build a common code base that can be deployed to iOS, Android, and Windows Phone devices, coming as close as possible as to the mythical “write once, run everywhere.” You’ll also learn how to build UIs with some of the 40 controls included in Xamarin.Forms, and even how to access native

123D Circuits

I’m dusting of my soldering and electronic skills to play around with Raspberry PI and Arduino circuit boards.  The only problem is that electronics is less forgiving than software development. A bug can blow up some components or even the whole board (don’t ask me how I know…). If you want to experiment in a safe environment before trying it on your real board, have a look at 123D Circuits . It allows you to design and simulate circuit boards and share the results with the rest of the world.

Common Weakness Enumeration

In software development, errors, bugs and mistakes are so common that we even have a website dedicated to it; Common Weakness Enumeration : International in scope and free for public use, CWE provides a unified, measurable set of software weaknesses that is enabling more effective discussion, description, selection, and use of software security tools and services that can find these weaknesses in source code and operational systems as well as better understanding and management of software weaknesses related to architecture and design. It offers a large list of (almost) everything that can go wrong inside a software project, frightening but also very insightful material! For example, let’s have a look at weakness number 369, the good old ‘divide-by-zero’ exception: Remark: Couldn’t find a better post for a Friday the 13th…

DTExec error: Unable to load the package as XML because of package does not have a valid XML format

Today I had some trouble to get a DTSX package up & running. On the command line I tried to execute the following command: DTEXEC /FILE "S:\Data Files\dtsx\Package.dtsx" /REPORTING EW /CONFIGFILE "S:\Data Files\dtsx\importjob.dtsConfig" But no luck, instead of a running DTSX package, I got a very explaining (*ahum*) error message: 143910:T:M584D4:tsk> Microsoft (R) SQL Server Execute Package Utility 143910:T:M584D4:tsk> Version 11.0.2100.60 for 64-bit 143910:T:M584D4:tsk> Copyright (C) Microsoft Corporation. All rights reserved. 143910:T:M584D4:tsk> 143910:T:M584D4:tsk> Started:  2:39:09 PM 143910:T:M584D4:tsk> Error: 2015-03-12 14:39:10.83 143910:T:M584D4:tsk>    Code: 0xC0011007 143910:T:M584D4:tsk>    Source: {4B5520B2-BF3D-41B0-83F6-C266A50A51BB} 143910:T:M584D4:tsk>    Description: Unable to load the package as XML because of package does not have a valid XML format. A speci fic XML par

Free e-book: Azure Automation

This is one for every devops guy out there, over 100 pages describing how to automate common tasks inside Windows Azure. This ebook introduces a fairly new feature of Microsoft Azure called Azure Automation. Using a highly scalable workflow execution environment, Azure Automation allows you to orchestrate frequent deployment and life cycle management tasks using runbooks based on Windows PowerShell Workflow functionality. These runbooks are stored in and backed up by Azure. By automating runbooks, you can greatly minimize the occurrence of errors when carrying out repeated tasks and process automation. It discusses the creation and authoring of the runbooks along with their deployment and troubleshooting. Microsoft has provided some sample runbooks after which you can pattern your runbooks, copy and modify, or use as-is to help your scripts be more effective and concise. It explores uses of some of those sample runbooks. Download it here (PDF).

ng-conf 2015

In case you missed it, last week it was ng-conf 2015 . So if are you interested in Angular and want to know more about it’s future, you have a long list of sessions to watch…

TypeScript replaces AtScript as the preferred language for Angular 2

October last year, I wrote the following : I heard some colleagues discuss if Angular.js will ever be written using TypeScript . The answer is no. In fact, the Angular.js team is using their own language AtScript to build Angular 2.0. Man, could I have been more wrong! Last week S. Somasegar shared the following news: For the last several months, the Microsoft TypeScript and Google Angular teams have been working closely together. Today at ng-conf in Salt Lake City, the Angular and the TypeScript teams are unveiling the first fruits of that collaboration.  We’re excited to announce that we have converged the TypeScript and AtScript languages, and that Angular 2, the next version of the popular JavaScript library for building web sites and web apps, will be developed with TypeScript. Working closely with a rich library like Angular has helped TypeScript to evolve additional language features that simplify end-to-end application development, including annotations , a

Building the Internet of Things: Early learnings from architecting solutions focused on predictive maintenance

With IoT(Internet of Things) around the corner as the next hype, Microsoft starts to share some useful information on their vision on IoT. A great read is the “Building the Internet of Things: Early learnings from architecting solutions focused on predictive maintenance” whitepaper. This white paper provides a comprehensive overview of lessons learned from the authors' experiences in implementing large scale customer projects that target predictive maintenance as a space in IoT. It frames various elements and considerations of importance within the Internet of Things, highlighting tradeoffs, opportunities and grounding the implementation activities using a reference architecture and an associated comprehensive cost model. Interesting bedtime literature…

Agile Pick ‘n Mix

Agile became such a bloated term that it’s hard to define what it actually is. Chris Roberts created a one page snapshot view of all Agile values, principles and activities grouped into logical categories. Very useful!

SQL Server Data Tools: Run SQL Server unit tests during your CI build

Last week I explained how to configure a CI build for your SQL Server Database project. This week we’ll continue by adding Unit testing into the mix. Before we can run our test, we need to have one. So let’s start by adding a unit test to your database project. One way to do this is to click on a stored procedure, function,etc…  and choose Create Unit Tests… On the Create Unit Tests screen, specify the Test project you want to use(or create a new one), choose a good class name and click OK . Before we run our database test, we’ll have to specify which database we’ll use. Therefore right click on your test project and choose SQL Server Test Configuration… Choose the database where you want to run your test. Optionally you can specify a different connection string(using different credentials) to run the test validations. This is enough to run your tests locally, but if you want to integrate them into your CI build, we’ll have some extra work to do. First of all, w

The dbType NVarChar is invalid for this constructor

To test some custom made mapping logic, I created a fake IDataRecord item. However when I tried to run my test, it failed with the following error message: The error message is not very explaining. The thing is that when you specify NVarChar as the dbType, you also have to specify the MaxLength. After doing that, the error was gone.

Team Foundation Server 2015–System Requirements

For a customer I’m preparing a roll-out of Team Foundation Server 2015 once it is released(yes, I know it’s still in CTP ). The server guys were asking for the hardware and software specs, but I couldn’t find a definitive list of system requirements. The only somewhat useful/official information I could find was in the comments of a blog post by Brian Harry . If Brian is right(as the TFS Product Unit Manager, he should be), requirements will probably stay the same as for TFS 2013 .