tygertec

Legitimize Your Project With Some Badge Swag

5 minute read Published:

Badges? Why don’t I have any stinking badges? With a flick or your wrist and a flourish of your cape, you unveil your latest open source beauty. It has more bells than a bell foundry, more whistles than a traffic cop convention. But there’s one problem: your OSS-contributing peers all have these cool badges decorating their projects. They’re so shiny and colorful! They imbue an air of legitimacy to their projects, like a detective flashing his badge at a crime scene.

How to find stuff in Git

5 minute read Published:

When you first started with git, you quickly got up to speed with committing, pushing, pulling, merging, and the like. But then you noticed a gaping hole in your knowledge - how do you find stuff in Git? Can you revert to a version of a file as it stood three weeks ago, or find out when a bug was introduced? Who was the last person to edit this file?

They always tell you that the great thing about Git is that you [almost] never lose any history. So how do you access and utilize that history?

Best software development laptop? 5 heuristics to guide you.

7 minute read Published:

What is the best laptop for programming? In the previous article we armed ourselves with a comprehensive mobile workstation checklist to see how popular laptops stack up against the needs of a software developer. We considered popular options like the MacBook Pro, Surface Book i7, and the Dell XPS 15. They’re decent machines, but their flaws burn brightly in the harsh light of The Checklist. So if you’re not bemused by the Big Three in laptop choices – perhaps due to their lack of features or your lack of funds – where can you find a solid programming laptop?

What is the best laptop for software developers?

8 minute read Published:

Sometimes new developers ask me, “So, what’s the best laptop for a programmer?” It’s an important question. As a “software crafts(wo)?man”, your computer isn’t just your tool belt - it’s your pickup truck, miter saw, lathe, awl, bulldozer - all rolled into one. You need a reliable and performant machine that empowers you while staying out of your way as much as possible. It’s an important question, but the answer no doubt reminds you of a certain brand of adult diaper - It depends...

Brute-force all the things?

6 minute read Published:

These days it’s hard to tell whether the computer saves us more time than it wastes. However recently I had an experience programming in Ruby that demonstrated to me that the computer can be our modern time-saving friend, especially when wielding a language like Ruby, delicately designed to just “get out of your way” and let you program. The story involves number crunching, eyebrow scrunching, and in the end, an unabashed brute-force beauty.

OpenCover: ⟳ code coverage metrics with CI build

5 minute read Published:

OpenCover analyzes your .NET codebase and generates an XML report rich with detail about the extent and quality of your code coverage. You think you’ve covered your testing bases, but how do you know? What if there’s actually a sneaky runner leading off second base? If so, OpenCover will blow his cover wide open. In this post I will show you how to retrofit your automated build with OpenCover. Then we’ll make the output more human-readable with Report Generator.

If you read my article about Psake, you’ll recall that I started the open source project Resfit in order to experiment with Acceptance Test Driven Development. I started the project with NCrunch and though the 30 day trial ran out, my appreciation for NCrunch’s coverage metrics did not. I found OpenCover, which generates some amazing code coverage metrics. Only trouble is, they’re all in XML - Better suited to be read by a build server than a lowly Developer like myself. That’s where ReportGenerator comes in, which “converts XML reports generated by OpenCover, PartCover, Visual Studio or NCover into human readable reports in various formats”.

Breaking Build Postmortem: Biting the line that feeds you

4 minute read Published:

It was early one weekend morning and I was trying to integrate AppVeyor with my GitHub project. But there was one problem: my build was failing miserably on AppVeyor. Strangely, it built just fine on my machine; but on AppVeyor the test ToStringShouldReturnResourceKey was failing a string comparison.

Breaking Build: Analysis of a build failure
Breaking Build: Analysis of a build failure

Investigating the failure

Fortunately I was using Shouldly, which produces very readable test output when your tests fail. See what you notice in the snippet below.

Use IFTTT more securely with proxy accounts

3 minute read Published:

IFTTT automates many aspects of your online life. Is it going to rain tomorrow? Hey look I just got an email forecasting rain in my area. Golly thanks T-Guys! :) Or what about receiving an email or finding a new article in Pocket whenever there’s a new xkcd or CommitStrip. Or what if you want to automatically archive your tweets or internet favorites to Evernote or OneNote? Your online alliterative conditional buddy can do all that, and more.

Git hooks, practical uses (yes, even on Windows)

7 minute read Published:

What are Git hooks? Can you do anything useful with them? Also, since Git hooks come from Linux, is there anything special you need to do to get them working on Windows?

What are Git hooks?

Git hooks allow you to run custom scripts whenever certain important events occur in the Git life-cycle, such as committing, merging, and pushing. Git ships with a number of sample hook scripts in the repo\.git\hooks directory, but they are disabled by default. For instance, if you open that folder you’ll find a file called pre-commit.sample. To enable it, just rename it to pre-commit by removing the .sample extension and make the script executable (chmod +x pre-commit if you’re on Linux, or just check your NTFS execute rights if you’re on Windows). When you attempt to commit using git commit, the script is found and executed. If your pre-commit script exits with a 0 (zero), you commit successfully, otherwise the commit fails.

If you take a look at the default sample pre-commit script, it does a few helpful things by default, like disallowing non-ascii filenames since they cause issues on some platforms, and checking for whitespace errors. This means that if you enable this script and have “whitespace errors”, like lines that end in spaces or tabs, you’ll fail to commit and have to remove the whitespace before you can commit.

What cool stuff can I do with Git hooks?

Since you’re working with scripts, you can do pretty much anything with Git hooks. That being said, just because you can do something… Yeah, you know. Git hooks can make the behavior of common Git tasks like committing, pushing and pulling nonstandard, which can annoy people, especially if they’re just trying to get used to the glories of Git. But here are a few examples of what you might accomplish with Git hooks.

Psake automates your .NET build using PowerShell. Here's how.

8 minute read Published:

What is Psake and why do you want it? Psake is a build automation tool written in PowerShell. That means you don’t have to mess around with MSBuild scripts and trying to force procedural code into a declarative XML format - which is just weird. Psake frees you from the shackles of awkwardness. But how does it work?

With Psake, you write a PowerShell script consisting of one or more build “tasks” which you can invoke from PowerShell, or even from a continuous integration build server. You invoke your build task via the Invoke-Psake function or, more commonly, via a build.ps1 or build.bat script. Each build task can depend on zero or more other build tasks, and it’s possible to set a default build task. Each build task can do whatever you’d like, including cleaning your solution, building your assemblies, running your acceptance tests, running your unit tests, generating code coverage reports, packaging the binaries in a zip file, a NuGet package, etc. If you dream it, Psake will build it.

In 18 seconds Psake builds it, tests it, and packages it. Boom.
In 18 seconds Psake builds it, tests it, and packages it. Boom.

PowerShell: An Introduction for Linux Afficionados

6 minute read Published:

Many of us cut our teeth on the elegant simplicity of the Linux command line, with its dazzling zero-based array of infinitely chainable commands. Then, with a dull thud you found yourself dumped rudely into the Windows environment, where things on the command line weren’t quite so peachy, to put it mildly. In fact, working in the old Windows command line was almost as fun as working in the trash compactor of the Death Star. Fortunately, with the advent of PowerShell, the dystopian landscape of the Windows console started to put forth a few shoots and sprigs of greenery. In this post I hope to show you some of our favorite Linux commands translated to their equivalent PowerShell cmdlets.