Ever faced the following issue while dealing with long paths in Windows?

Good news! Microsoft has released the .NET 4.6.2 framework and it fixes the “path is too long” error.

Applications using the Win32 framework will also take advantage of this new feature but you will need to tweak a couple of settings to make it work, since Microsoft didn’t enable it by default.

This blogpost explains how to set up your machine to get the issue fixed.

The goal of this blog post is to explain how you can take advantage of the Jenkins pipeline projects with Plastic. As you probably know, Plastic SCM already includes a plugin for regular Jenkins projects. This way each of your commits/checkins will trigger a build in Jenkins. But the standard plugin does not yet support the Jenkins Pipelines (formerly called "workflows"). Jenkins supports Pipelines with Git, though, so we will use Plastic GitServer to take advantage of that.

Pipelines are Jenkins jobs enabled by the Pipeline plugin and built with simple text scripts that use a Pipeline DSL (domain-specific language) based on the Groovy programming language.

Pipelines leverage the power of multiple steps to execute both simple and complex tasks according to parameters that you establish. Once created, pipelines can build code and orchestrate the work required to drive applications from commit to delivery.

The concept of build pipelines has been around for a few years and it is now becoming more and more a standard practice.

Back in late August, I was working from home. Then someone asked me to send a VMWare image to the office. The virtual machine was +17 GB in size so using Slack was not an option. Since I wasn't at the office, using a USB drive was not an option either.

I had some spare time so I thought: "well, writing a small program using UDT's rendezvous mode should be straightforward" (this mode which basically lets you establish a true P2P connection)... By the way, I could have used something better like https://reep.io but... hey, I just wanted to do some coding :-)

There are situations where you don't have a wifi or LAN available but you would like to exchange some files. Then you find yourself copying to a usb stick and giving it to your colleague. You are probably sitting together on the lobby of a hotel, a train, a plane, it doesn't matter, but connecting to the internet or a local network is not an option.

Wi-Fi Direct is a standard to connect with each other without a wireless access point. So, if your two laptops are close enough, you should be able to take advantage of your wifi antennas to transfer data faster than using the usb.

.NET has a bunch of classes to help implementing this. Unfortunately, (IMO) they are all designed to be used from UWP or Windows Store apps, and it is sort of a nightmare to use them from a simple Console application (or a Windows service, which could greatly benefit from this functionality). I'm going to explain how to use the old PeerFinder (available since Windows 8.1) to transfer data using Wi-Fi Direct from a simple C# Console program. Full source code available on GitHub.

We have just released BL775 and it includes a number of visual improvements native Plastic SCM GUI for OS X. They are small touches that help creating a more polished tool, something that is a priority for us since OS X is definitely one of our more important platforms.

The following screenshots shows the new syntax highlight in diff plus the line numbers. It also shows the improved selection in lists, with the white text on blue background.

Code repositories can give you lots of useful information about how you work with your code. This post will explain how to extract part of this information and how to visualize it using powerful tools such as Power BI.


Getting the information

The Plastic SCM command line tool allows you to export all the information you need from the commits. Unlike Git, Plastic SCM allows you to export logs in XML format so you can parse from Power BI without having to develop a parser.

While the office is not far, I code from home very often. So I want to keep track of the location of each checkin to extract some statistics later on, and figure out how much code I check in from each place. In fact, I have checked in some interesting code from planes too, and I added the info on the comments, which is fan to read later on.

So, I have been using a small trigger for about a week now, tracking the exact location of each of my checkins and adding the info as attributes to the changesets in Plastic.

The trigger code is available on GitHub and you are free to modify it and tune it for your own purposes. Each time I checkin I get a notification like this one on your desktop (Windows only so far):