UPDATE: With January 1st, 2017 we rebranded our hosted CI Platform for Docker from “Jet” to what is now known as “Codeship Pro”. Please be aware that the name “Jet” is only being used four our local development CLI tool. The Jet CLI is used to locally debug and test builds for Codeship Pro, as well as to assist with several important tasks like encrypting secure credentials. One of the many benefi
If you're reading this blog, then you have a rough idea of what containers are and why you want to use them. Docker has made it easy to experiment with containers, and is slowly making it easier to deploy and manage them in production environments. However, there are a still a lot of gaps in what Docker offers (for free), and others have stepped up to fill them. CoreOS is one such option; it's not
This story started with me wanting to write a steganography tool. Steganography is the process of hiding information inside a file, typically an image. To do that, I had to write an image decoder first because you can't just start changing random bytes. All that will do is make the image invalid or corrupt. I selected PNG as the image format I wanted to work with, and I found the official specific
This article was originally published by Ivan Daniluk on his personal site, and with his permission, we are sharing it here for Codeship readers. Ivan will be speaking on this topic at the next GopherCon in July 2016. One of the strongest sides of Go programming language is a built-in concurrency based on Tony Hoare’s CSP paper. Go is designed with concurrency in mind and allows us to build comple
Spawning services across multiple Docker engines is a very cool thing, but those services need to connect each other and be found by public-facing nodes in order to be routed to users. A way to achieve that is to use NGINX as a reverse proxy by defining one or more public-facing nodes. These nodes are going to have NGINX configured to proxy request to each container exposing your service. In this
Large-scale businesses with complex regulatory and security needs require more than Jenkins alone for Continuous Integration CloudBees CI, a flexible and scalable continuous integration solution, adds value to enterprises by leveraging the powerful Jenkins® engine. Its centralized management system enhances security, compliance, and automation at scale for efficient software delivery. By balancing
This article was originally published by Pierpaolo Frasa on his personal site, and with his permission, we are sharing it here for Codeship readers. Everybody is talking about microservices, but I haven’t seen a lot of good, comprehensive descriptions of how to actually write a microservice in Ruby. This may be because a significant number of Ruby developers are still most comfortable with Rails (
In this article, we'll be looking at a few different aspects of metaprogramming in Ruby. For starters, what is metaprogramming? Metaprogramming is the writing of computer programs with the ability to treat programs as their data. It means that a program could be designed to read, generate, analyze, or transform other programs and even modify itself while running. We'll specifically look at how we
Upgrading software is much harder than it could be. Modern versioning schemes and package managers have the ability to help us upgrade much more than they do today. Take for example my post on Upgrading to Rails 5 Beta -- The Hard Way. Most of the time was spent trying to find all the different libraries my app was using that weren't compatible yet with Rails 5 and upgrade them. What if somehow bu
Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design. — Kafka Apache Kafka is a message queue implemented as a distributed commit log. From the producer's point of view, it logs events into channels, and Kafka holds on to those messages while consumers process them. Unlike a traditional "dumb" message queu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く