category: technical deep dives

  • Introducing the Cukeness Project
    SEP 25, 2018 Written by M. Scott Ford

    I’ve had the idea for a new testing tool in the back of my head for years. I’ve been calling it Cukeness (more on that name later). I was actually working on the project when I first asked Andrea to join me on the Corgibytes journey. I did a horrible job of explaining to her why it needed to exist. So she said that I should put it on pause and focus on other things instead.

  • Quick Tip: Installing ruby 1.8.7 and rubygems 1.8.30 with RVM
    MAR 22, 2018 Written by M. Scott Ford

    We frequently work on projects where it's best to start out with an older version of ruby. Getting these to install correctly feels like a dark art sometimes. Here's a quick series of steps that we had to follow to get Ruby 1.8.7 using RubyGems 1.8.30 installed via RVM.

  • Interactive Notebooks - Part 2: Getting Advanced with nteract
    JUN 13, 2017 Written by M. Scott Ford

    As mentioned in my introductory post on the topic, while doing research for another article, I dug into nteract pretty deeply. It's how I like to learn about new things. nteract ships with the ability to run JavaScript code in notebooks, and I was wondering if it had the ability to do more than that. What I discovered revealed an entirely new level of awesome for using interactive notebooks.

  • Bash Tips - Tip 1
    MAY 2, 2017 Written by David Grieser

    Recently, I was pairing with a developer on a client's team. He was stuck and couldn't figure out how to fix the problem. I had a look and guided him through a series of bash and other shell commands until we found the solution. After thanking me -- he had been at it for hours -- he asked me 'How do you know all of this?'

  • npm Scripts: Tips Everyone Should Know
    APR 18, 2017 Written by Kamil Ogórek

    npm is not only the package manager for JavaScript, it's also used to set up tooling around your codebase. Linters, transpilers, testing, and servers. Everything can be configured and run using the very same thing. Basic usage is really simple, too.

  • Hello, TDD!
    APR 11, 2017 Written by Tiffany Gill

    Have you ever had one of those “down-the-rabbit-hole” experiences, in which one idea sends you careening through a wormhole of thought? Such a journey often yields unexpected results, yet the “mind map” of your travels can actually be even more surprising. Well, it was one such “Eureka!” moment that convinced me of the parallels between the classic Hello, World! program and Test-Driven Development (TDD).

  • Unlocking the Beauty of Patterns in Binary Data
    MAR 28, 2017 Written by Catalina De la cuesta

    Software engineers usually don’t deal with binary data directly. Most data is stored in well-known, open-format files and manipulated through libraries that know how to handle them. So bits and bytes are almost never in a developer’s mind. Apparently, they even scare people: all that random, unreadable mess not meant for human consumption...

  • Custom Azure Machine Frustrations
    MAR 7, 2017 Written by David Grieser

    I'm getting very comfortable with Hyper-V on my Windows 10 Pro machine, and I'm really happy I have this as a development environment. After updating Corgibytes' Chief Code Whisperer, Scott, about where I was at for a current client, we talked about remote machines and Azure. This lead to attempting to upload a VHD to Azure.

  • Integration Tests Can Be Fun!
    FEB 21, 2017 Written by Kamil Ogórek

    One of the most mundane and frightening tasks for many developers is writing integration tests. It's a time-consuming, fragile, and often difficult and frustrating task to accomplish. What makes it even worse is that it quickly gets out of hand and breaks often, which leads to frustration and dropping the idea completely.

  • Check Your Work: Ensuring Your Refactoring Doesn't Introduce Bugs
    FEB 14, 2017 Written by M. Scott Ford

    Code refactoring, as defined by Wikipedia, is “the process of restructuring existing computer code — changing the factoring — without changing its external behavior.” As such, refactored code should introduce no behavior changes. Otherwise, you're not refactoring. You're refactoring and doing something else.

  • Handling AWS Bounce Notifications from Simple Email Service
    JAN 31, 2017 Written by Don Denoncourt

    About a year ago, I had to code a Rails application to handle bounce notifications from AWS SES. Amazon Simple Email Service is ridiculously easy to configure and use in a Rails application. As the instructions at the GitHub gem page explain, all you need to do is add the aws-ses Rails gem and create a configuration file called config/initializers/amazon_ses.rb that contains your Amazon credentials (soft-coded of course). But, if you need your application to handle bounce, complaint, or delivery notifications, things get a little more complicated.

  • GIS Basics
    JAN 17, 2017 Written by David Grieser

    Do you use a GPS navigator on road trips? Or a GPS watch to track your run or bike ride? Then, you’ve been exposed to GIS. GIS stands for Geographic Information System. Even if you haven’t used the two items I mentioned, I’m confident you’ve experienced it, as most everyone has used GIS in one form or another. The most common usage is the maps application on a smartphone.

  • The Postman Always Helps Twice
    JAN 10, 2017 Written by Nickie McCabe

    In my role as Director of Operations at Corgibytes, one of my responsibilities is automating and optimizing our day-to-day tasks and workflow. As a result, one of the common patterns of my work is gathering, manipulating, and presenting data of various sorts. Thankfully, much of the data I’m gathering is accessible via API, which means I get to use one of my favorite technical tools: Postman.

  • Starting a Journey with Clojure and ClojureScript
    JAN 3, 2017 Written by Kamil Ogórek

    If you've never tried functional programming development, I assure you that this is one of the best time investments you can make. You will not only learn a new programming language, but also a completely new way of thinking. A completely different paradigm.

  • I Hate Testing Angular Applications
    DEC 13, 2016 Written by Catalina De la cuesta

    First, a confession: I recently wrote a blog post about unit testing an Angular application. Well, as it turns out, what I was in fact doing was trying to convince everybody of the joys of Angular testing. Including myself.

  • Boosting Confidence in Your Code
    NOV 29, 2016 Written by David Grieser

    I was looking for inspiration for my next blog topic and read through some of my old posts. I came across one called “Confidence From Your Code” that originally appeared on Femgineer in 2014. I thought: “Perfect! It's been a few years since I wrote that, I now work with Corgibytes and have even more legacy code experience, I'll update my thoughts.”

  • Testing an Angular Application
    OCT 25, 2016 Written by Catalina De la cuesta

    I recently started writing tests for an Angular application, so I had to go through the entire process of researching the tools, installing and setting up the libraries, writing the tests and learning the tricks. Here's what I discovered.

  • Autodeploying Angular Applications to AWS OpsWorks
    OCT 11, 2016 Written by Don Denoncourt

    Amazon OpsWorks is an excellent, low-cost option for Platform-as-a-Service hosting. OpsWorks provides relatively easy-to-use UI mechanisms to manage, deploy and host applications on AWS EC2. Corgibytes uses OpsWorks to host both Rails-based and Angular-based servers for one of our clients. Configuring the Rails-based OpsWorks hosts was easy – mostly because there are tons of blog posts on how to do it. But setting up the Angular server was a bit more problematic for me, as my good friend, Google, provided little help.

  • Setting up a Minimal, Yet Useful Javascript Dev Environment
    SEP 27, 2016 Written by Kamil Ogórek

    In an era of omnipresent frameworks, libraries and tooling, it may be hard to decide what tool to use and when. I know from experience, that the first thing you do, once you decide to write a module or CLI tool, is set up an environment. Some people love it, some hate it. But no matter on which side you are, you’ll most likely end up spending way too much time doing it, polishing every aspect of the setup.

  • Embracing the Red Bar: Safely Refactoring Tests
    SEP 20, 2016 Written by M. Scott Ford

    Do you ever refactor your test code? If not, I hope you consider making this part of your normal practice. Test code is still code and should adhere to the same high standards as the code that's running directly in production. As important as it is, refactoring your test code is actually a little risky. It's very likely that you could turn a perfectly valid test into one that always passes, regardless of whether or not the code that it covers is correct. Let's explore a technique for protecting against that possibility.

  • The IDE vs Text Editor Battle
    AUG 9, 2016 Written by Catalina De la cuesta

    There are 10 types of programmers: those who use an IDE, and those who think that the ones who use an IDE are not real programmers. I'll start by making it clear that I belong to the first group and do care _a little bit_ about the other group’s opinion. So I decided to dig a little deeper and collect opinions about this topic. The choice was either to become a real programmer and switch to a text editor, or to reinforce that I am a real programmer who uses an IDE!

  • We're Excited about Docker Distributed Application Bundles
    JUN 22, 2016 Written by M. Scott Ford

    Docker's new Distributed Application Bundles are an exciting development. They have the potential to be revolutionary for describing the structure of a distributed application and making that description something that can be deployed as a single file.

  • Portrait of an IBMi Modernization Project
    MAY 9, 2016 Written by Don Denoncourt

    I’m going to list tools and strategies that a state-of-the-art application development project should be using. Essentially a portrait of the infrastructure of a successful IBMi application start. I’ll start with suggestions on dealing with the daunting task of selecting a language and framework. Then, I’ll recommend tools for source control, testing, editing, collaborative communication, knowledge base management, and project management. And I’ll finish with some considerations for RPG integration strategies and database enhancements.

  • Engineers, Interruptibility, and Inception Layers
    APR 15, 2016 Written by Andrea Goulet

    How do you interrupt your engineers appropriately? At Corgibytes, we use Inception Layers do describe how interruptible we are.