Deis: Open source PaaS build on Docker/CoreOS with Heroku-like workflow

Deis logo

From the Deis Overview page:

Deis (pronounced DAY-iss) is an open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.

Deis can deploy any application or service that can run inside a Docker container. In order to be scaled horizontally, applications must follow Heroku’s 12-factor methodology and store state in external backing services.

Deis can deploy any language or framework using a Dockerfile. If you don’t have a Dockerfile, Deis includes Heroku buildpacks for Ruby, Python, Node.js, Java, Clojure, Scala, Play, PHP, Perl, Dart and Go.

Deis can be deployed on any system that supports CoreOS including your workstation, as well as most public clouds, private clouds and bare metal.

Quasar: Java library providing high-performance lightweight threads similar to go-routines

From the Quasar website:

Java 7 is required to run Quasar.

Quasar is a Java library that provides high-performance lightweight threads, Go-like channels, Erlang-like actors, and other asynchronous programming tools.

Quasar’s chief contribution is that of the lightweight thread, called fiber in Quasar.
Fibers provide functionality similar to threads, and a similar API, but they’re not managed by the OS. They are lightweight in terms of RAM (an idle fiber occupies ~400 bytes of RAM) and put a far lesser burden on the CPU when task-switching. You can have millions of fibers in an application. If you are familiar with Go, fibers are like goroutines. Fibers in Quasar are scheduled by one or more ForkJoinPools.

Fibers are not meant to replace threads in all circumstances. A fiber should be used when its body (the code it executes) blocks very often waiting on other fibers (e.g. waiting for messages sent by other fibers on a channel, or waiting for the value of a dataflow-variable). For long-running computations that rarely block, traditional threads are preferable. Fortunately, as we shall see, fibers and threads interoperate very well.

Fibers are especially useful for replacing callback-ridden asynchronous code. They allow you to enjoy the scalability and performance benefits of asynchronous code while keeping the simple to use and understand threaded model.

Jekyll: Blog-aware static website generator written in Ruby

Jekyll logo

I’ll probably manage my next blog using a static site generator, and Jekyll is the current front-runner. The Jekyll documentation is quite good.

  • Supports Markdown and Textile markup
  • Uses the Liquid templating engine
  • Blog aware: Supports permalinks, categories, pages, posts, & custom layouts
  • Can import from CSV, Drupal 6, Drupal 7, Enki, Ghost, Google Reader, Joomla, Jrnl, Marley, Mephisto, Movable Type, Posterous, RSS, S9Y, Textpattern, Tumblr, Typo, WordPress, and
  • Free hosting with Github Pages
  • Comes with a built-in development server for local preview

Spring Boot: Create Spring applications with minimal configuation

Spring Logo

From Spring Boot page:

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that can you can “just run”. We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

  • Create stand-alone Spring applications
  • Embed Tomcat or Jetty directly (no need to deploy WAR files)
  • Provide opinionated ‘starter’ POMs to simplify your Maven configuration
  • Automatically configure Spring whenever possible
  • Provide production-ready features such as metrics, health checks and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration

wipes: Go program to pipe text to a WebSocket server

You know what? I ain’t even gonna lie. I have no idea how I could use this, but I have a feeling that it might be a useful tool for my toolbox at some point in the future.

From the wipes GitHub page

wipes is a simple Go program that reads from STDIN and demuxes lines to open WebSockets. For convenience, it also serves files over HTTP (defaulting to the local directory) such that you can talk to the WS server easily.