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.

Revel: Web Framework for Go Programming Language patterned after Ruby on Rails

Revel Logo

From the Revel manual on the Revel Website:

Revel is a batteries-included web framework in the spirit of Rails or Play! Framework. Many of the same (proven) ideas are incorporated in the framework design and interface.

Revel makes it easy to build web applications using the Model-View-Controller (MVC) pattern by relying on conventions that require a certain structure in your application. In return, it is very light on configuration and enables an extremely fast development cycle.

GoLang HTTP load testing tool and library

Vegeta image

Not as poweful as JMeter, but way simpler to get setup, especially from the command line. I am currently using it to throw some load at a dev server to observe the memory utilization over time.

$ vegeta -h
Usage: vegeta [globals] <command> [options]

attack command:
  -body="": Requests body file
  -duration=10s: Duration of the test
  -header=: Request header
  -ordering="random": Attack ordering [sequential, random]
  -output="stdout": Output file
  -rate=50: Requests per second
  -redirects=10: Number of redirects to follow
  -targets="stdin": Targets file
  -timeout=0: Requests timeout

report command:
  -input="stdin": Input files (comma separated)
  -output="stdout": Output file
  -reporter="text": Reporter [text, json, plot]

global flags:
  -cpus=8 Number of CPUs to use

examples:
  echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
  vegeta attack -targets=targets.txt > results.bin
  vegeta report -input=results.bin -reporter=json > metrics.json
  cat results.bin | vegeta report -reporter=plot > plot.html

Doozer: consistent distributed data store written in Go

Doozer logo

This looks interesting. At work we use a VIP to control which machines are in the live group and which are in the dark (standby) group. We used to use DNS, but the propagation delay caused issues, especially if we needed to roll back a change.

From the Doozer Github Repo:

Doozer is a highly-available, completely consistent store for small amounts of extremely important data. When the data changes, it can notify
connected clients immediately (no polling), making it ideal for infrequently-updated data for which clients want real-time updates. Doozer is good
for name service, database master elections, and configuration data shared between several machines.

Webview Screenshot from Doozer Github page

Hugo: Static Site Generator written in Go

Hugo masthead from website

I like simplicity, and nothing says simple like a plain, old, static HTML website. Static websites have some real advantages: they are generally pretty secure, they play nice with whatever source control system you use, and they are fast. A static site generator gives you those advantages plus some niceties like templating and asset reuse.

One of the most interesting things about Hugo is that since it runs on the Go language runtime, you can drop the package on your system of choice and go.

From the website:

Hugo doesn’t depend on administrative privileges, databases, runtimes, interpreters or external libraries. Sites built with Hugo can be deployed
on S3, Github Pages, Dropbox or any web host.

Organize your content however you want with any URL structure. Declare your own content types. Define your own meta data in YAML, TOML or JSON.
Use indexes to group your content however you want.

The next time I build a static site, I’ll definitely give Hugo a look. I found out about this tool from Web Appers.