You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
I went to Gopherfest 2017 in San Francisco and it was really great experience! I live in Japan and I just happened to be around here in this week, so it was great timing :) Gopherfest 2017: https://www.meetup.com/golangsf/events/238748981/ There was a live stream too. I enjoyed especially @francesc’s talk about “State of Go” which shows lots of cool changes between Go 1.8 and upcoming 1.9. I like
Background A month ago, GitHub released a new feature called Topics. https://github.com/blog/2309-introducing-topics Topics are labels that create subject-based connections between GitHub repositories and let you explore projects by type, technology, and more. Since that time, many Go repositories on GitHub have started using a topic to indicate that the repository is primarily powered by (or rela
I’ve had the pleasure of working with several other gophers the last few months on a prototype dependency management tool named dep. dep is part of the project started last year and is organized by Peter Bourgon. I was asked to join the team working on this project due to my involvement in a different tool, “godep”, the OG dependency management tool for Go, (inherited from Keith Rarick) and my wor
I’ll introduce how to represent sum/union/variant(-like) type in Go first. Then, I’ll introduce ‘gosumcheck’, which is a static lint tool which checks all possible cases of type-switch. This is a post for Hatena Engineer Advent Calendar 2016 (Japanese). Sum Type in GoSo, what is sum/union/variant type? From Wikipedia, In computer science, a tagged union, also called a variant, variant record, disc
最近結城浩さんの『暗号技術入門』を読みました。現代の暗号技術について非常にわかりやすく書かれており、とってもおすすめの書籍です。 そこで『暗号技術入門』を参考に、 Go 言語のライブラリを使い、各種暗号技術の実装や使い方について学んでみたいと思います。以下の Go のソースコードのバージョンはすべて 1.5.2 です。 まずは第3章「対称暗号(共通鍵暗号)」です。対称暗号は、「共通の鍵で暗号化と復号をおこなう暗号アルゴリズム」です。 DES (Data Encryption Standard)DES とはDES (Data Encryption Standard) は、1977年にアメリカ合衆国の連邦情報処理標準規格 (FIPS) に採用された対称暗号です。しかし現在ではブルートフォースアタックにより短時間で解読されてしまうため、暗号化に用いるべきではありません。 ただ後述する Tripl
「レシーバ」とはGo 言語はある種のオブジェクト指向プログラミング (OOP) 言語であり、 OOP 言語の慣例通り、メソッドを呼び出される対象のことを「レシーバ」と呼びます。 ちなみになぜ「レシーバ」と呼ぶのかというと、昔の OOP 言語の文脈ではメソッド呼び出しのことを「メッセージの送信」と言い、メソッドを呼び出される側は「メッセージの受信側」だからです。 「値レシーバ」と「ポインタレシーバ」Go 言語では「値」と「ポインタ」が明示的に区別されているため、たとえばある構造体に対してメソッドを定義する場合でも、「値型」に対する定義なのか「ポインタ型」に対する定義なのかはっきりと区別しなければなりません。それぞれについて簡単に説明します。 値レシーバ「値型」に対してメソッド定義されたものが「値レシーバ」です。 Go 言語では構造体は値なので、以下の例では Person という値型に対して
いい記事に感化されて僕も何か書きたくなった。 Golangにおけるinterfaceをつかったテスト技法 | SOTA リスペクト: Big Sky :: golang で終了を確認するテストの書き方 GolangでAPI Clientを実装する | SOTA Big Sky :: GolangでAPI Clientを実装する、の続き 今週のやつではなく先週のです.今週のは特に知見がなかった…grpc-goとか使えたらクライアント勝手に生成されるしいいよねgrpc流行ると便利そう(感想) くらい Golangにおけるinterfaceをつかったテスト技法 | SOTA めっちゃいいなーと思ったんですが,テスト用 の mock を気軽に作るテクニックはあまり詳しく紹介されてなかったのでそのあたりの1つのテクニックを書きたい. 前提 僕もテストフレームワークや外部ツールは全く使わない.標準のt
Go1.5とGo1.6でGoのGCのレイテンシが大きく改善された.この変更について「ちゃんと」理解するため,アルゴリズムレベルでGoのGCについて追ってみた. まずGoのGCの現状をパフォーマンス(レイテンシ)の観点からまとめる.次に具体的なアルゴリズムについて,そして最後に実際の現場でのチューニングはどうすれば良いのかについて解説する. GoのGCの今 最初にGoのGCの最近の流れ(2016年5月まで)をまとめる. Go1.4までは単純なStop The World(STW)GCが実装されていたがGo1.5からは新たなGCアルゴリズムが導入された.導入の際に設定された数値目標は大きなヒープサイズにおいてもレイテンシを10ms以下に抑えることであった.Go1.5で新たなアルゴリムが実装されGo1.6で最適化が行われた. 以下は公開されているベンチマーク.まずはGo1.5を見る. Gophe
Twelve Go Best Practices Francesc Campoy Flores Gopher at Google Best practices From Wikipedia: "A best practice is a method or technique that has consistently shown results superior to those achieved with other means" Techniques to write Go code that is simple, readable, maintainable. 2 Some code type Gopher struct { Name string AgeYears int } func (g *Gopher) WriteTo(w io.Writer) (size int64, er
golangで、 google calendar api v3 を使ってカレンダーにイベントの登録と更新を行うGoGoogle 概要 前回の続きです。 前回は、Client IDの取得とOAuth認証でアクセストークンを取得と、CalendarListまでを行いました。 今回は、イベントの新規登録と更新を行います。 Event構造体 Event構造体を用意してEvents.Insertで登録します。 Event構造体は以下のように定義する事で繰り返しイベント等も登録できるようです。 import "code.google.com/p/google-api-go-client/calendar/v3" event := calendar.Event{ Id: "123456abcdef", // ID(適当なstring) Summary: "test test", // タイトル Star
概要 googleカレンダーをgolangで取得、追加、更新をやってみます。 Goolge Calendar API v3を使うのですが、OAuthなので、まず以下の前準備が必要です。 google APIの Client IDの取得 OAuth認証でアクセストークンを取得する ただし、アクセストークンの取得部分は goauth2の認証手順をもっと簡単にを参考に、プログラム側で作りました。 環境 OS X 10.9 (or Windows7 まだ動作確認していないけど、多少の手直しで動くはず) golang 1.3 google API Client IDの取得 https://console.developers.google.com/project から、 Create Projectをクリック それぞれ適当な名前をつけてCreate Project Dashboardから Enabl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く