Introduction A big obstacle to the mission to treat infrastructure as code is the way we test it. In the past, the practice of writing automated tests for infrastructure did not exist. Instead, the process was manual, repetitive and error-prone: we would log into a remote machine and run various commands to verify the system. […]
Ideas for Semaphore Community Articles
The Semaphore Community is open for contributions by all developers who would like to write an article for our knowledge base. We encourage you to cover topics you are passionate about and have experience with. Nevertheless, it is useful to also have a general list of topics that we are interested in covering. Here’s an […]
How to write a custom Kerodon matcher
Kerodon provides a friendly API for interacting with web pages in tests. With Kerodon you write a test from the perspective of a user interacting with a web application from a browser. It provides helpers for visiting a page, clicking on a button or a link, interacting with a form and inspecting the page content. […]
How to Write an Article for Semaphore Blog
Semaphore is excited about building a collection of technical articles that help everyone become a well-rounded software developer. Our goal is to cover both cutting-edge technology and timeless topics on building products and collaborating within an engineering team. For this reason, the Semaphore blog is open for contributions and the goal of this article is […]
How to Format Semaphore Tutorials for Publishing
Introduction This article explains how to format Semaphore tutorials. By following the details in this guide and the companion Style Guide, your tutorial will match all of the Semaphore guidelines. Where can I submit the completed tutorial? If you have an approved writing sample and topic, you can submit the tutorial as a link to […]
How to Deploy Node.js Applications with Capistrano
Introduction Capistrano is a popular tool for web application deployment, especially in the Ruby ecosystem where it originated. But Capistrano is being used to deploy applications made in any programming language. It is a perfectly fine tool for deploying Node.js projects too. in the Ruby ecosystem. This article will explain how to set up a […]
How to Deploy a Compojure Application to OpenShift
Introduction OpenShift is Red Hat’s cloud computing platform as a service. It’s based on open source OpenShift Origin project. The platform officially supports a number of languages: Java, PHP, Ruby, Node.js, Python and Perl. Since the platform is open source, other languages and platforms are supported by community-maintained cartridges. A cartridge is a set of […]
Introduction to Gradle
Gradle is a free Java build tool for project automation, similar to Ant and Maven. It’s used by software developers working in Java for running common repetitive tasks in project lifecycle, like compiling code, resolving dependencies, packaging, unit testing, code execution and deployment. Google positioned Gradle as the build system of choice for Android and […]
Getting Started with SSH
Introduction Over the last fifteen years, SSH has become a standard tool for remote management of Unix-like systems and many network devices. SSH stands for Secure Shell, and is one of the ways to get a command line (shell) access on a remote machine. It was designed to be a secure alternative to previous access […]
Getting Started with Node.js and Jasmine
It’s a shame that, almost since its creation, JavaScript had been considered more of a quick hack than an actual programming language. Lacking the tools and the community that other popular languages had, for a long time it was a language that many people enjoyed to hate. Fortunately, with the inception of Node.js, JavaScript got […]
Getting Started with Composer for PHP Dependency Management
Introduction Dependencies are essential for modern development. They save you time and energy. Functionalities you may need for your app like sending e-mails or logging can all be easily included as third party libraries. Thanks to the open source movement, there are many high quality packages to choose from. In the early days, including third-party […]
Getting started with Grunt.js
Grunt is a command line Javascript task runner utilizing Node.js platform. It runs custom defined repetitious tasks and manages process automation. The project’s homepage lists many big players in software development that use Grunt in their development as part of continuous integration workflow. Use case of Grunt.js Let’s say you’re a front-end developer and you […]
Deploying PHP Applications with Rocketeer and Docker
Deploying web applications is an integral part of modern web development. From this need, many tools have emerged to make the process as easy as possible. Rocketeer is heavily influenced by Capistrano and Laravel’s principle of elegant code. It strives to make the deployment process accessible for everyone. We’ll see if it manages to do […]
How to Deploy Sinatra Applications with Capistrano
Introduction Rails is great, but often it is not the best tool for creating smaller applications. For smaller size apps, especially those that are mainly focused around pure JSON APIs, Sinatra is often a far better option. Unfortunately, the majority of learning resources in the Ruby ecosystem are focused on Rails, and leave out the […]
Why We Need Continuous Integration
Introduction Continuous integration is a practice that helps developers deliver better software in a more reliable and predictable manner. This article deals with the problems developers face while writing, testing and delivering software to end users. Through exploring continuous integration, we will cover how we can overcome these issues. The Problem First, we will take […]