Moving to Digital Ocean

Moving to Digital Ocean

Lately my isp has been very unreliable, so today I moved the boxed instance behind this blog from the honorable Raspberry Pi Model A+ to a more secure digital ocean droplet.

Enjoy it!

Boxed blog engine

A Dropbox based blog engine

The Boxed project started as a blog as a service platform, but it quickly ended up to be my personal blog. It does its job, it’s far away to be pretty and polished but you maybe find it useful. It allows you to manage your blog in markdown format from your dropbox folder.

You can run it on your machine without installing anything, It’s all bundled in the executable (html and css too), and it saves the data in a bolt database.

Try it

If you want to try it without compile it by yourself you can grab the executable from the aplha releases page

You have to create a dropbox app and select the following:

then you need to modify the .env.sample file accordingly and in your terminal:

# set env variables
source .env.sample

# link local app to dropbox (follow the instructions)
./boxed --oauth

# put a markdown file in the posts folder in your dropbox directory and publish it with:
./boxed --refresh

#run the server with

# visit localhost:8080 to see the result 

if you have correctly set the webhook path you don’t need to refresh, it will be published when the article will been synchronized to your dropbox.

Articles metadata

Boxed will try its best to figure out the publication date and title from the markdown article. If this is not enough for you, you can specify some metadata with a markdown/json comment like this:

		"created-at": "2013-11-11",
		"permalink": "a-brand-new-blog",
		"title": "A brand new blog"


Boxed supports images out of the box, you have to put them in the images folder, and then reference them like: ![cool image](/images/image.jpeg)

Template customization

Boxed comes with the excellent default hyde template. If you want to change it, like i did it for my blog, you have to be able to compile go code, then you have to change the template/css files and then use go rice to bundle them back in the executable.


You can run boxed tests with:

go test ./...

Source code


Geogo is a small package for geocoding street addresses, it uses google maps, open street maps and yahoo maps services and returns the first responding api.

It’s naive, small, not efficient nor idiomatic but…it’s my first go package :).

give it a try

package main
import (
func main() {
  geo := geogo.NewGeocoder()
  result := geo.Geocode("duomo plaza, milan")
  fmt.Printf("%+v\n", result)

  //specify api services and timeout (in milliseconds)
  var geocoders = map[string]string{
      "gmaps": "",
      "osm":   "",
      "ymaps": "",
  geo = &geogo.Geocoder{geocoders, 1000}
  result = geo.Geocode("via teodosio 65, milano")
  fmt.Printf("%+v\n", result)
  &{Lat:45.46420639999999 Lng:9.1892441 Success:true}

Let me know what do you think about it.