A Go port of Skeeter
Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
images
.gitignore
README.md
resize.go
skeeter.go

README.md

Skeeter for Go

This is a port of skeeter to Go.

What is it?

Convert this:

Original image

Into this:

Converted image

You make a request to it like so:

http://skeeter.blakesmith.me/?image_url=http://www.softicons.com/download/animal-icons/animal-icons-by-martin-berube/png/128/moose.png&width=100

And it spits out the ascii art! Magic!

Why do this?

The original skeeter implementation was built with ZeroMQ in Ruby and had seperate processes for each piece. Ensuring all the pieces were behaving correctly and always up became a hassle. The Ruby version also shelled out to jp2a and imagemagick to do the actual image manipulation. I ported everything to Go, including image fetching and borrowed the jp2a ascii algorithm to do image manipulation in one native Go program. No external dependencies, just one binary that you drop onto the server and run!

Building

Install Go

Then run go run skeeter.go resize.go -port=9001 from within the skeeter directory.

To cross compile for linux 386 from OS X, I followed this wiki page to setup the compiler toolchain: http://code.google.com/p/go-wiki/wiki/WindowsCrossCompiling

Once that's setup, I ran:

CGO_ENABLED=0 GOOS=linux GOARCH=386 go build

This generates the skeeter-go binary, which you run to start the web server.

Author

Skeeter is written by Blake Smith blakesmith0@gmail.com.