タグ

golangに関するkimutanskのブックマーク (34)

  • Jenkins上でgolangのプロジェクトをCIするときに気をつけなければならないこと - sgykfjsm.github.com

    JenkinsでgolangプロジェクトをCIするときに少しハマったので、同じミスをしないで済むようにここにメモする。 Jenkinsでgolangを使えるようにする。 何はともあれ、これをしないことには始まらない。特に理由が無ければ、Jenkinsのプラグインを使うのが良い。 “Jenkinsの管理” > “プラグインの管理” > “利用可能”タブ へ進み、フィルターで”golang”と入力すれば、Go pluginが見つかる。チェックを入れた後、”ダウンロードして再起動後にインストール”を押下する。 再起動後、”Jenkinsの管理” > “システムの設定”へ進むと、”Go”のセクションが追加されていることが確認できるはず。 もしシステムの管理で”ロード中”から復帰しない場合、”Jenkinsの管理” > “プラグインの管理” > “高度な設定”タブ へ進み、画面右下の”更新”ボタンを

    kimutansk
    kimutansk 2017/02/17
    カスタムワークスペースとGOPATHに気づけば、後は比較的すんなりいきました。depもこの環境があれば使えますしね。
  • GithubのGo言語プロジェクトにPull Requestを送るときのimport問題

    TL;DR fork元(オリジナル)をgo getしてその中で作業,forkした自分のレポジトリにpushしてPull Requestを送る. 問題 Github上のGo言語のプロジェクトにコミットするとき,cloneの仕方で若干ハマることがある.普通のOSSプロジェクトの場合は,forkしてそれをcloneしてpush,Pull Requestとすればよい.Go言語のプロジェクトでは,同じレポジトリの中でパッケージを分け,それをimportして使ってるものがある.そういう場合にforkしたものをそのままcloneすると,importの参照先がfork元の名前になりハマる. 例えば,github.com/someone/toolがあるとする.このレポジトリはgithub.com/someone/tool/utilsという別パッケージを持っており,mainがそれを使っているとする.つまり以下

    kimutansk
    kimutansk 2017/01/25
    一度はまってこうやったら出来るやとなりましたが、一度やらかさないとわからないっちゃわからないですよね・・・
  • Grumpy: Go running Python!

    The latest news from Google on open source releases, major projects, events, and student outreach programs. Google runs millions of lines of Python code. The front-end server that drives youtube.com and YouTube’s APIs is primarily written in Python, and it serves millions of requests per second! YouTube’s front-end runs on CPython 2.7, so we’ve put a ton of work into improving the runtime and adap

    Grumpy: Go running Python!
    kimutansk
    kimutansk 2017/01/05
    CPythonのランタイムの並行実行性能に問題があったからGoランタイム上でPythonを実行可能にして、Goモジュールも読めると。Go>Python呼び出しで、Goランタイム上で実行できる流れもある・・?
  • GitHub - redis/go-redis: Redis Go client

    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

    GitHub - redis/go-redis: Redis Go client
    kimutansk
    kimutansk 2016/05/11
    Go用Redisクライアント。一度小さいツール作ってそれを拡張しながら学びますかね。
  • GolangのGCを追う

    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

    kimutansk
    kimutansk 2016/05/09
    GoLang、数百GB単位のヒープでも数十ms単位のpauseで済みますか。アルゴリズムもシンプル。ライトバリアはMarkTerminationと併せてこう実現されてますか。
  • SensorBee: An open source stream processing engine for IoT

    Stateful Extracting useful information from unstructured data often requires machine learning. SensorBee works well with online machine learning algorithms by storing machine learning models as user-defined states. It supports various machine learning toolkits, including Chainer and some components of Jubatus. In addition, SensorBee’s query language enables stateful temporal data handling. Express

    SensorBee: An open source stream processing engine for IoT
    kimutansk
    kimutansk 2016/03/14
    Go言語製の軽量ストリーム処理エンジンですか。これまでは重厚なのが多いですが、これだとエッジサーバでも普通に動くと。
  • Goらしいコードの書き方(ミニ)

    Goらしいコードの書き方(ミニ) Go 1.6 Release Party 17 February 2016 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team 巻末付録「Goらしいコードの書き方」を書きました。 Ebook is now available! 2 Go 1.6 言語仕様の変更 -> なし! Goらしいコードの書き方は基的にかわっていない。 golang.org/doc/effective_go.html github.com/golang/go/wiki/CodeReviewComments 3 Effective Go Go is a new language. Although it borrows ideas from existing languages, it has unusual

    kimutansk
    kimutansk 2016/02/18
    ある意味何でもInterface切って後から差し替え可能にしようと考えがちなJVM系言語とはやはりそれなりに違いますか・・・
  • イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD

    この投稿は、私が去年OSCONで行ったプレゼンテーションを基に作成しています。プレゼンよりは簡潔に編集し直し、プレゼン後にいただいたいくつかのフィードバックに応える形で記事を書いています。 Go言語に関してよく言われるのは、Go言語はサーバでうまく機能し、静的なバイナリや強力な並行処理、高いパフォーマンスを見せくれるということです。 この投稿では、その後半の2つの項目に関して焦点を当てます。プログラマとってGo言語とそのランタイムは、スケーラブルなネットワークサーバをスレッド管理やブロッキングI/Oを気にせずに書くのにどんなに有効かを説明していきます。 効率的なプログラミング言語に関しての議論 技術的な話に入る前に、Go言語をターゲットにしたマーケットを説明する2つの議論に関してお話したいと思います。 ムーアの法則 画像は以下より引用; 2005年5月にHerb Sutter氏が書いたDr

    イベントループなしでのハイパフォーマンス – C10K問題へのGoの回答 | POSTD
    kimutansk
    kimutansk 2015/09/15
    サイズ増減可能でスイッチが軽量なGoルーチンとルーチンごとの待ち状況をランタイムとして検知する機構。これで高速化したと。
  • Go packages from Hashicorp

    Go packages from Hashicorp hashi_wantedly 5 August 2015 deeeet About me @deeeet / @tcnksm http://deeeet.com 社内PaaS(CloudFoundryを利用)の開発運用 (CFの中でConsulが採用される予定) 2 TL;DR Hashicorp / mitchellh氏が開発しているGo pacakgeを紹介する 3 Goal Go言語を使ってるひと... このパッケージ良さそう! Go言語を使ってないががHashicorpツールは使っているひと... Hashicorpツールで使われているものも多い.コードを追うときの参考に! 4 Packages 自分が採用しているもの/触ったことのあるものを紹介する mitchellh/cli mitchellh/go-homedir mitc

    kimutansk
    kimutansk 2015/08/06
    ツールの構成要素となっているパッケージも提供されてますか。Go勉強するときの参考にはいいですかね。実際使ってるからその意味でも読みやすいでしょうし。
  • GitHub - linkedin/Burrow: Kafka Consumer Lag Checking

    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

    GitHub - linkedin/Burrow: Kafka Consumer Lag Checking
    kimutansk
    kimutansk 2015/07/01
    Go言語製のKafkaモニタリングツールで、HTTPのEndpointも多数提供と。データと構成はKafka自体とzk保存なので、それ以外に何か必要にならない、というのはいいかも。
  • Golang で心を無にしてコードを書く // Speaker Deck

    LINE Developer Meetup #11 での LT スライド。Golang の語り尽くされたであろう、単純さについて入門的にふれる話。 6/22 19:00 宮崎開催! LINE Developer Meetup #11 - connpass http://connpass.com/e…

    Golang で心を無にしてコードを書く // Speaker Deck
    kimutansk
    kimutansk 2015/06/25
    継承なし、構造体埋め込みで移譲は見てみると意外にわかりやすい。抽象度が高いものを書くのは辛い、というのは無駄に移譲リレーとかにならないので逆にいいのかもしれませんね
  • Prometheus: Go言語で書かれたモニタリングシステム - ワザノバ | wazanova

    https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Prometheusは、SoundCloudが中心となって開発を進めているオープンソースのプロジェクトDockerの社内でもメインのモニタリングシステムとして利用されているようです。 各社のブログのエントリーから、その特徴をまとめると。 多元データモデルとそれを活かす柔軟なクエリ言語 全てのデータにタイムスタンプのある、OpenTSDBに準じたデータモデル。 http_response_500_totalやhttp_response_403_totalなどHTTPレスポンスのステータスごとに用意しなくても

    kimutansk
    kimutansk 2015/01/30
    安易に分散するよりは単体の性能を高められるモニタリングシステムにする・・というのは重要ですね。見てみましょうか。
  • cgoでGolangとC++ライブラリをリンクするとき、何が起きているのか

    関東も秋が深まり、「紅葉を見にいこうよう」と言ってスベるシーズンがやってきました。みなさんいかがお過ごしでしょうか、れもんです。 さて、自社サイトでGoやるよって発表したので最近はずっとGoを書いているのですが、ついに難題がやってきました。C++で書かれたライブラリをGoで使うというやつです。今日は、GoからC++のライブラリを使おうとするときに何が起きているのかという話と、それゆえにこのオプションを指定するとドツボにはまるのでやめた方がいいよという話です。 GoからC++を使うときの基的な考え方はRubyとかPerlC++のライブラリを使うときと同じです。なので、いつものセオリーでやってみることにしました。まぁC++なら素直にSWIG使えよって話もあるんですが、何事も最初は挑戦だってことで手で書きます。 そのいつものセオリーとは何かというと、C++のライブラリをCインタフェースで使え

    cgoでGolangとC++ライブラリをリンクするとき、何が起きているのか
    kimutansk
    kimutansk 2015/01/17
    GoLang側で生成されるグル―コードがCなのでC++としてビルドかけると途中で引っかかるというわけですか。なるほど・・・
  • Go製サーバーを開発・運用して〜ピクシブ新広告配信サーバー〜 // Speaker Deck

    キャリアを充実させる『カギ』に!PR TIMES CTO金子達哉から学ぶアウトプット術 / output_method

    Go製サーバーを開発・運用して〜ピクシブ新広告配信サーバー〜 // Speaker Deck
    kimutansk
    kimutansk 2014/12/09
    Go製サーバの運用事例。UNIXドメインソケットでサーバ内通信を行い、Circusで起動管理&ホットデプロイですか。
  • Goに入ってはGoに従え

    Goに入ってはGoに従え Go Conference 2014 autumn 30 November 2014 鵜飼文敏 Fumitoshi Ukai Google Software Engineer - Chrome Infra team Go Readability Approver Go言語のReadabilityをレビューするチーム コードレビューを通じてGo言語のよいコードの書きかたを教える メインのプロジェクトとは別のコードをレビュー 一年前くらい前に参加して 20% timeで 200くらいのCLをレビューしました 今は一日3CLくらい、週に12CLほどのペースでやっています Gopher by Renée French 2 Readabilityスキルとは? プログラミング言語のリテラシー 作法にかなったやりかた で、読んだり書いたりできる能力 言語ごとに作法が違う C++

    kimutansk
    kimutansk 2014/12/01
    ローカル変数はindexよりi/readerよりr、それでわからない時点でfuncが肥大化していると。名前付け命とばかり考えていると確かに気付きにくい視点です。
  • Goと大規模分散システムの相性 - ワザノバ | wazanova

    Googleで分散システムの開発をてがけ、現在はソーシャルメディア mttr.toを立上げ中のBen Sigelmanが、Goを分散システムの開発に利用する場合の、メリットおよびチャレンジについて講演しています。 分散システムのあるべき姿 分散システムの勘所は、最上位ビットをパフォーマンス的にも構造的にもうまく扱うことができるかというのがポイント。その効果が一番大きい。スループットの改善のような詳細は、自分もGoogleでそれに取組んだけれども、9ヶ月くらいたつとハードウェアの性能で解決される可能性が高い。また、構造的にというのは、なるべく小さなコンポーネントを組み合わせたシステムにできるかという意味。 Goのよいところは、 両方、とくに後者によい。Railsだとアプリを複数個用意して並列処理するのは大変だったけど、Goだとシンプルにできて、標準ライブラリも読みやすいとかなどなど。パフォー

    kimutansk
    kimutansk 2014/11/24
    大規模システムにおけるデバッグはGoに限らず対応は大変ですので、大規模分散システムに導入する際の他の言語に対する機能的なNGポイントはほぼない、という感じでしょうか
  • Goを使い複雑性を回避する | POSTD

    『銀の弾などない— ソフトウェアエンジニアリングの質と偶有的事項』 を書いたFred Brooksはその論文の中で、 偶有的な複雑性と質的な複雑性 について重要な区別をしています。 質的な複雑性 とは、問題特有の領域から生じる複雑性のことを指します。例えば、SMTPクライアントを作成しているディベロッパは、 RFC 5321 の核心の細かいところ全てに取り組む必要がありますが、これはSMTPクライアントの作業をする上で避けては通れないものです。これに対して 偶有的な複雑性 とは、私たちが自ら作り上げた問題から生じる複雑性のことを指します。 技術者としては、自らの選択で生じる偶有的な複雑性によって、余計な負担が増えないようにとても注意しなければなりませんよね。その意味では、言語の選択は偶有的な複雑性を軽減できる完璧な例と言えます。Webアプリケーションを書くのにアセンブリ言語を選びます

    Goを使い複雑性を回避する | POSTD
    kimutansk
    kimutansk 2014/11/19
    GoのHTTPサービスはセルフホスティング、コンパイル時に全ての依存関係がバイナリに含まれる、と。大きいですね。
  • [翻訳]なんでGoってみんなに嫌われてるの? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 原文:http://npf.io/2014/10/why-everyone-hates-go/ 酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。 訳者の1行でわかるサマリ それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの? なんでGoってみんなに嫌われてるの? いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけ

    [翻訳]なんでGoってみんなに嫌われてるの? - Qiita
    kimutansk
    kimutansk 2014/10/17
    出てからそこまで経っていないのに叩かれているということは逆に今後発展するという見方も出来ますね。
  • LedisDB - A high performance NoSQL like Redis powered by Go.

    Data structure Rich data structure: KV, List, Hash, ZSet, Set. Various Backend Various backend databases to choose: LevelDB, goleveldb, LMDB, RocksDB, BoltDB or Memory. Expiration & TTL Supports expiration and ttl in all kinds of data structures. CLI Support Redis clients, like redis-cli, are supported directly. Easy Embedding Easy to embed in Go application. Data Protection Replication to guarant

    kimutansk
    kimutansk 2014/07/26
    Redisとよく似たインタフェースを持つLevelDBをバックエンドとしたGoLang製のNoSQLDB、と。Redisと比べるとLevelDB呼び出しのコストのせいで性能は若干劣る、と。他の特徴は何があるんでしょうね
  • Dockerコンテナに入るなら SSH より nsinit が良さそう - Gosuke Miyashita

    追記 はてブでつっこみもらいました が、実行するカレントディレクトリは /var/lib/docker/execdriver/native/$id を使うのが正しいようです。(情報読み違えてた。)こちらには container.json があるので、ソースツリーからコピーしてくる必要ないですね。 また、コンテナ ID 取得は、docker ps -q --no-trunc の方が良い、とも教えていただきました。 つっこみにしたがって、最後の方の説明とシェル関数書き換えました。 つっこみありがとうございます! tl; dr タイトルまま 経緯 Docker でつくったコンテナの中に入って状態を確認するために、コンテナ内で sshd を立ち上げてアクセスする、ってなことを以前やってたんですが、コンテナ内で sshd を立ち上げる、というやり方がいまいちだし、そもそもコンテナの仕組みから考えれば

    kimutansk
    kimutansk 2014/06/23
    単純にSSHで接続して入るのではなくて、こういう手段もあったんですね。コンテナの名前空間に入るわけ・・ですかね