Migrating from TFS + TFVC to VSTS + git

It seems like everybody uses git for source control nowadays. Heck, Microsoft is using git instead of its own TFVC. Although I’ve been using GitHub for open source projects for years now, most of my day is still spent in TFS. I finally got the green-light to move one fairly large project from TFS with TFVC to VSTS with git, this post is about my experience during the move. Requirements Migrate one repository with few branches from TFS 2017 to VSTS Permanent move; no need to keep TFS and VSTS in sync after conversion Migrate history for all branches being moved The first two requirements are quite easy to achieve but the last one proved to be tricky....

July 15, 2018 · 3 min · LPains

Install Root CA cert in Android emulator

When developing a small Xamarin forms app I wanted the android emulator to connect to an intranet identity provider. That didn’t work. The id server was using an SSL certificate issued by an untrusted CA. Here’s what I did to get it working. First, you will need the CA certificate so android can trust the SSL cert. If you don’t have the cert, you can export it using Chrome on mac or Chrome on windows:...

July 7, 2018 · 1 min · LPains

Building string with placeholders

Last post I showed a cool way to parse strings into typed objects. In this one, I want to show the opposite. How to build strings using a template and an object. The idea is to use a template like {BirthDate:D} My name is {FirstName} {LastName} and I'm cool. and an object with properties BirthDate, FirstName and LastName to fill in the placeholder values and apply optional formatting. There are several uses for a utility like this but my favorite use is templated email messages....

April 13, 2017 · 1 min · LPains

Parsing text into typed objects using RegEx named groups

A little while ago, I had to build a desktop app that received input from devices which I had no control of. Although each implementation had similar requirements, the devices connected to the app were slightly different and so were the inputs received from them. I’ve looked for other similar implementations and found that some people implemented device specific parsers. Furthermore, they used configuration to select the correct parser. I think there is at least one issue with this approach: any change to the known inputs would require the application to change as well....

April 6, 2017 · 2 min · LPains

Using html5 canvas to build a WYSIWYG label designer

Fact check: market thermal label systems are freaking expensive. Maybe I could build my own label WYSIWYG designer? Should be simple, right? To spice things up, I decided to try building this as a web solution. Thus, I started playing with html5 canvas to draw text, barcodes, rectangles and images. Once the design was created I could save the configuration for the items drawn and create actual printer specific commands....

January 31, 2017 · 2 min · LPains