Introduction Most websites we use provide an HTTP API to enable developers to access their data from their own applications. For developers utilizing the API, this usually involves making some HTTP requests to the service, and using the responses in their applications. However, this may get tedious since you have to write HTTP requests for […]
Lightweight Docker Images in 5 Steps
Deploying your services packaged in lightweight Docker images has many practical benefits. In a container, your service usually comes with all the dependencies it needs to run, it’s isolated from the rest of the system, and deployment is as simple as running a docker run command on the target system.
Getting Started with BDD in Go Using Ginkgo
Introduction Over the past few years, Go has developed into the language of choice for many types of applications. Its popularity can be attributed to several factors, out of which its testing story is a prominent one. Out of the box, Go comes with a great package for testing. This tutorial will explain how you […]
Activity Monitor: Visualizing Your Team’s Running CI/CD Processes
Growth always has its challenges. With more developers, there are more ongoing projects, branches and CI builds. And sometimes while you work, you find yourself wanting to know what else is in the pipeline on Semaphore.
PHP Versions Used in Commercial Projects, 2016 Edition
As in earlier reports on other languages (see Ruby, Node.js, Python), today we’re sharing data from Semaphore about usage distribution across versions of PHP in active private projects.
Testing Common Redux Patterns in React Using AVA
Introduction This is the second tutorial in our series on testing React and Redux applications. If you haven’t read the first part, we encourage you to do so. Redux is a library for managing state in React applications. Since the code using Redux is composed of many small pieces, it’s very easy to test it. […]
How to Capture All Errors Returned by a Function Call in Elixir
If there is an Elixir library function that needs to be called, how can we be sure that all possible errors coming from it will be captured? Elixir/Erlang vs. Mainstream Languages Elixir is an unusual language because it functions as a kind of a wrapper around another language. It utilizes Erlang and its rock solid […]
Continuous Deployment of Golden Images with Packer and Semaphore
In this tutorial, we’ll introduce you to Packer and its use cases. It covers using Packer to build an Amazon Machine Image (AMI) and deploying the application to AWS with a load balancer and autoscaling group. Prerequisites This tutorial involves a few mandatory tools and assumes a few things. You’ll need the following to complete […]
Dockerizing a Java Play Application
Introduction In this tutorial, we will learn how to run a Java Play application as a Docker container. Docker is a software containerization platform. It uses containers instead of hypervisors for a number of reasons. First of all, containers are lightweight and they have a lower memory footprint. Secondly, containers virtualize the operating system while […]
Platform Update on November 22nd
The upcoming platform update is scheduled for November 22nd, 2016.
Chromedriver gets and update with version 2.25.
Git has been updated to version 2.10.2.
Python Versions Used in Commercial Projects, 2016 Edition
In October we shared data on which versions of Ruby and Node.js developers use to get the job done. Next up is a report on Python, for which the main question is binary β is it Python 2 or 3 that developers use at work today?
Sending ECS Service Logs to the ELK Stack
Having comprehensive logs is a massive life-saver when debugging or investigating issues. Still, logging too much data can have the adverse effect of hiding the actual information you are looking for. Because of these issues, storing your log data in a structured format becomes very helpful. Also, being able to track the number of occurrences […]
Testing Services in Angular 2
Introduction Services are important in any complex Angular architecture. They allow our code to share common functionality across our application. In this article, we’ll explore how to use a test-driven development (TDD) approach to incorporate services into our Angular applications. Prerequisites Before starting this article, it is assumed that you have: An understanding of Angular […]
How BDD and Continuous Delivery Help Developers Maintain Flow
Programming is cognitive work, and programmers perform their best work under intense concentration. While there are external factors that can affect this, such as having a quiet office, controllable ways of communication, etc., there are also some internal factors that need to be taken into account. In fact, the way we work can influence the […]
Introduction to Testing Elixir Applications with ExUnit
Introduction Every language needs a solid test framework, and that framework needs to provide mechanisms that allow a developer to exercise the features of the language. To that end, Elixir comes bundled with ExUnit to allow developers to make use of all the features Elixir provides without having to compromise on unit tests. In this […]