Software I enhancements, Part 3 - Testing continued

I found a couple of problems with our CI workflow that we built in the last post. We’re not running any tests The docker container we’re using to build the solution doesn’t pass out the exit code of our command; if a build fails inside the container we won’t know about it as long as our docker-compose command exits with code 0. I picked xUnit to test our C# code because it’s got a more familiar assert structure that’s similar to jUnit.
Read more →

Functional Programming and the Origin of State

I’ve been learning Elixir in my spare time, and it’s really a wonderful language to work with. It’s also a great introduction to anyone who wants to learn functional programming and it’s taught me quite a few things about it’s cousin, object-oriented programming. Object-oriented programming is a programming paradigm that has been around for decades. It’s strengths lie in the ability to group like variables and functions together into a logical “object”.
Read more →

Software I enhancements, part 2 - CI and testing

I’ve always been interested in automated testing ever since I learned about it. However, it’s really hard to do, and the difficulty has always been a barrier to doing things right. I wanted to remove those barriers with this project so I decided I’d start right this time and go with TDD and CI at the start. I started looking into CI providers for open-source projects, and decided to start with Appveyor.
Read more →

Open Source Software - The high-trust nature of free software

Open source software is alive and well in 2017. Any application you could think of or imagine probably has already been created and released as open-source software. The rise of package manager’s like Node’s NPM, Python’s pip, and .NET’s Nuget allows this software to be delivered into developer’s hands with a simple command entered in a terminal window. I am convinced that there’s never been a better time to be a software developer, and it’s easier than it ever was to learn how to code.
Read more →

Software I enhancements, part 1 - project setup

I’m a student at WGU and I recently finished the new Software 1 project. It was a desktop app using JavaFX to mock an ERP for a business that sells products that have parts inside of them. It’s a great proof-of-concept app, but there’s a lot lacking from the initial requirements document. There’s no way any company would look at what I built for the Software I class and say “Hey, I can use that right now!
Read more →