IGDA日本 ゲームサーバ勉強会 #8 https://techplay.jp/event/666753 登壇した資料のようなメモ

以下のツイートにもある通り、一見 golang は struct を定義しないと JSON を扱えないように見えます。他にも似たようなツイートをチラホラと見かけましたが、それらは全部誤解です。そこでこの記事では、golang でゆるふわ (structを定義せず) に JSON を扱う方法を紹介します。 golang。rubyのようにゆるふわにJSONは扱えない? https://t.co/olsryDHc5G — bamchoh (@bamchoh) 2016年6月24日 この記事では入力の json.Unmarshal() を取り扱いますが、出力の json.Marshal() にも応用できます。 TL;DR json.Unmarshal() には *interface{} を渡せます interface{} は dproxy を使うと、値のアクセスで楽ができます json.Unmar
言語タグは一般的に言語コード(上記での“en”, “cmn”, “zh”, “nl”, “az”)が来た後に付加的な文字に関する副タグ(“-Arab”)や 地域に関する副タグ(“-US”, “-BE”, “-419”)、変数の副タグ(オックスフォード英語大辞典でのスペルのための “-oxendict”)、あるいは 拡張副タグ(電話帳順のための “-u-co-phonebk”)が続きます。 もっとも一般的な形式は副タグが省略された形、たとえば “az-Latn-AZ” であれば “az” です。 言語タグがもっとも使われる場所は、システムがサポートしている言語の一覧からユーザーが好みの言語を選択するときでしょう。 たとえば、(アフリカーンス語が選択できない場合に)アフリカーンス語を望んでいるユーザーに対しシステムはオランダ語を表示するという決定をする場合です。 このような対応は言語間の包含性
Go言語の開発をしようとして色々調べたんだけど結構大変だったのでまとめ。 基本的にMacでの作業を前提としています。 Goのインストール MacならHomebrewで一発。 $ brew install go GOPATH環境変数? Goでは、GOPATHという環境変数を設定すると、そこが作業スペースとなります。 ひとまずどこでも好きな場所をGOPATHに設定しましょう。 また、$GOPATH/binをPATHに通しておきます。 $ export GOPATH=$HOME/go $ export PATH=$PATH:$GOPATH/bin 同様の内容を.bashrcなどにも入れておきます。 すると、 $ go get [package name] とすることで、importできるパッケージが自動的にダウンロードしてインストールするという便利な仕組みがあります。 例えば、revelというW
西澤です。S3バケットを直接マウントしてファイルシステムのように使いたいケースがありますが、s3fsはややパフォーマンスに難があります。Goで書かれていてs3fsよりも高速に動作することを売りにした"goofys"というツールを見つけたので、早速試してみることにしました。 s3fs-fuse/s3fs-fuse · GitHub GitHub - kahing/goofys: a Filey System for Amazon S3 written in Go 前提パッケージのインストール 今回はAmazon Linux(Amazon Linux AMI 2015.09.1 (HVM), SSD Volume Type)環境で検証を行いました。golangとfuseパッケージが前提として必要となりますので、下記のようにインストールします。 $ sudo yum install golang
Instantly convert curl commands to Go code This tool turns a curl command into Go code. (To do the reverse, check out moul/http2curl.) Currently, it knows the following options: -d/--data, -H/--header, -I/--head, -u/--user, --url, and -X/--request. It also understands JSON content types (see JSON-to-Go). If the content type is application/x-www-form-urlencoded then it will convert the data to Valu
PFNの柏原です。Go言語製のソフトウェアのCI(Continuous Integration, 継続的インテグレーション)環境の構築方法(導入方法)について解説します。想定としてはgithub上にホストしているOSSプロジェクトのソースツリーをCIの対象とします。OSSのpublicリポジトリなため、無料で使えるサービスを利用対象とします。 紹介する各CIサービスすべてでGo言語を扱えますが、まず最初にサービスを利用する上で各サービスについて結論から述べます。その後、各CI環境(OS、Goバージョン)、設定ファイルの例を説明します。 今回はTravis CI、CircleCI、Codeship、AppVeyor の4つのサービスを紹介します。 結論から 結論から書きますと、Linux, OS X, Windowsの各種OSプラットフォームで同時にCIを動かしたいなら、Travis CI(
Echo is a fast HTTP router (zero memory allocation) + micro web framework in Go. Features Zippy router. Extensible middleware/handler, supports: Middleware func(*echo.Context) func(echo.HandlerFunc) echo.HandlerFunc func(http.Handler) http.Handler http.Handler http.HandlerFunc func(http.ResponseWriter, *http.Request) Handler func(*echo.Context) http.Handler http.HandlerFunc func(http.ResponseWrite
タイトルの通りです。Go は LL 的に使える、とはよく申しますが、そういう意識で使っていると REPL 的なことをしたいときに困りがちですよね。そこで作りました。gore。いい名前ですね。 motemen/gore · GitHub 以下のスクリーンキャストでだいたいの雰囲気をお察し下さい。 (スクリーンキャストは cho45/KeyCast を使って撮影しました) 特徴 gore の特徴は以下の通りです。 ラインエディタと履歴 複数行入力 パッケージのインポート、補完つき 式および文を実行可能 コード補完(nsf/gocode を利用) プリティプリント(k0kubun/pp か davecgh/go-spew がおすすめ) ドキュメントも引ける(godoc が必要) 以上のように、非常に便利なものになっております。むしろこの程度 REPL には当然あってほしい機能だとも言える。 イン
こちらです。Perl でいうと Devel::KYTProf に性質がちかい。 motemen/go-loghttp · GitHub (GoDoc) 使用例 たとえばこういうコードに… package main import ( "io" "log" "net/http" "os" ) func main() { resp, err := http.Get(os.Args[1]) if err != nil { log.Fatal(err) } io.Copy(os.Stdout, resp.Body) } % go run main.go http://example.com/ <!doctype html> ... 一行追加すると: package main import ( "io" "log" "net/http" "os" _ "github.com/motemen/go-lo
2014-10-21 使わなきゃ損なGo言語の便利ツール6種 Go 標準ツールだけで十分開発できるGoですが、サードパーティにも便利なものがあります。 1. go.tools 公式サイドが提供しているけど、goコマンドには含まれない、「準標準」のようなツール類です。 しかし、よく見ると、http://godoc.org/code.google.com/p/go.tools/present(プレゼン作成ツール)や、 goimports(importを自動補完するgo fmt)のような、便利(かもしれない)ツールがあるので、時々覗いてみましょう。 2. gox / goxc なぜ多くの人がGoに鞍替えしているか?それは「バイナリを作れるから」「しかも、クロスコンパイルが可能」だから。 direnvやpecoは実際に、githubのリリースページでWindows/Linux/Mac用のバイナリを
Additions: Numeric values are automatically recognized in more cases. Date / Time / DateTime values are automatically recognized in reasonable formats. See Time Strings for a list for accepted formats, and how to convert from other formats. Added join support! Multiple files / directories can be loaded by listing them at the end of the command. Directories are read by reading each file inside, and
Hot Code Reload Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered. Flow Control Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the defaul
Go言語が一歳になったらしいので記念にちょっと訳してみる。わりとヨサゲな言語になってると思うですよ。 http://blog.golang.org/2010/11/go-one-year-ago-today.html Go: 一年前の今日 2009年11月10日、私たちはGoプロジェクト(単純さと効率に焦点を当てたオープンソースのプログラミング言語)を開始しました。この一年間でGoプロジェクト自身とそのコミュニティの両方に多くの発展が見られました。 私たちは当初システムプログラミング、典型的にはCやC++で書かれるような類のプログラム、のための言語を作成することを目指していましたが、驚いたことにGoは汎用的な目的に使用できる言語になりました。CやC++、Javaなどのプログラマの興味は得られるだろうとは思っていましたが、PythonやJavaScriptのような動的型言語のユーザーからこれ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く