Minecraft のマルチプレイ用サーバをプレイ時だけ稼働させるための Lambda Function
三行
- Minecraft サーバはメモリ2GB以上のインスタンスが欲しいけど VPS を借りると月2000円ぐらいかかるところが多い
- プレイ時だけ稼働させればよいので Slack からインスタンスを立てて遊び終わったらデータを退避させて壊せるようにした
- $0.03 / hour で遊べる
minecraft-lambda-function
Minecraft サーバをプレイ時だけ稼働させるために下記の機能を持つ AWS Lambda Function を作った。
create
: DigitalOcean にサーバインスタンスの生成 → S3 からプレイデータ(world
ディレクトリ)のダウンロード → Minecraft サーバの起動 → IP アドレスを Slack に通知upload
: S3 へプレイデータをアップロードdestroy
: インスタンスの破壊
続きを読むMinecraft をマルチプレイするためのサーバー代と手間を削るために良いの作った https://t.co/CwZkKXaoS6
— モ㌡ (@morishin127) 2017年1月9日
Swift っぽい UserDefaults
Swift 3 の Notification
Swift 3 から Notification.Name
型が追加され、Notification の名前に生の文字列ではなく Notification.Name
型の値を指定できるようになった。
extension Notification.Name { static let userLoggedOut = Notification.Name("UserLoggedOut") } let n = Notification(name: .userLoggedOut, object: nil)
参考: Swift 3 以降の NotificationCenter の正しい使い方
Swift っぽい UserDefaults
UserDefaults のキーはまだ生の文字列を使っているけど、新しい Notification のようなインターフェイスで扱えたらうれしいなと思って薄いライブラリを書いた。
続きを読む遺伝的アルゴリズムでやっていく Mario AI Competition 2009
この記事は CAMPHOR- Advent Calendar 2016 19日目の記事です。
Mario AI Competition 2009 とは
Mario AI Competition 2009 は Sergey Karakovskiy と Julian Togelius という研究者の方が主催していたらしい大会で、スーパーマリオブラザーズ(を模したゲーム)を自動操作する AI を作ってスコアを競うというもの。スーパーマリオランではありません。
続きを読むzsh 時間のかかるコマンド実行が終了したら通知センターに通知する
コマンド実行に5秒以上かかったときだけ通知センターにコマンドの終了を通知するようにします。
続きを読むDocker と nginx-proxy で自分だけの nbviewer をシュッと立ち上げる
jupyter notebook を他人と共有したい時には nbviewer が便利ですよね。公式のページ もあるのですが簡単に Docker でドーンできるようなので自分のを作ってみました。
- お使いの DNS の設定で Docker ホストの IP アドレスに対し nbviewer.example.com 的なレコードを設定する。
- 公式の README 通りに nginx-proxy を立ち上げる
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
VIRTUAL_HOST
にドメインを指定して nbviewer を立ち上げる$ docker run -d -e VIRTUAL_HOST=nbviewer.example.com -e GITHUB_API_TOKEN=<YOUR_API_TOKEN> jupyter/nbviewer
- ブラウザから http://nbviewer.example.com を開く。
以上です。nginx-proxy すごい。