タグ

golangに関するt-wadaのブックマーク (99)

  • pt&Goroutines

    pt(the_platinum_searcher) を高速化するために Goroutines まわりで試したことを発表しました。 http://connpass.com/event/6370/

    pt&Goroutines
    t-wada
    t-wada 2014/05/31
    pt(the_platinum_searcher) の内部設計の変遷と goroutine について。この講演は非常に面白かった。 #gocon
  • idada/v8.go · GitHub

    V8 JavaScript engine bindings for Go. Features Thread safe Thorough and careful testing Boolean, Number, String, Object, Array, Regexp, Function Compile and run JavaScript Create JavaScript context with global object template Operate JavaScript object properties and array elements in Go Define JavaScript object template in Go with property accessors and interceptors Define JavaScript function temp

    idada/v8.go · GitHub
    t-wada
    t-wada 2014/05/29
    “V8 JavaScript engine bindings for Go” とな!?
  • Goroutine Synchronization : D-7 <altijd in beweging>

    (以下はgo 1.2.x時点での話です。将来的に仕様がかわるかどうかはわかりません) これを読んでいて、こういうの気にしてない人多いんだろうなーと思って、書いてみます。元のポストはdeferの挙動について語っているように見受けられるけれども、これは要は複数スレッドで実行されるコードについて、プログラム終了時に同期とか取りたくない、という話だと思ったので、このポストのdeferを正しく動かすには…というところからどういう形でgoroutine同士で同期を取る方法があるのか、一例を書き出していきます。 TL;DR; goでいくらgoroutineが気軽にかけるからと言って、複数スレッドで処理が行われているので同期はキチンとやらないとダメですよ。 deferの基 goではLLのノリでコードを書けるのが売りの一つですが、メモリ管理はしてくれるものの、様々なリソース解放も全て自動というわけではあり

    Goroutine Synchronization : D-7 <altijd in beweging>
    t-wada
    t-wada 2014/05/28
    "goでいくらgoroutineが気軽にかけるからと言って、複数スレッドで処理が行われているので同期はキチンとやらないとダメ" 同期を行うためのリファクタリングプロセスが Doug Lea の本を読んでいるみたいに面白い
  • direnv – unclutter your .profile

    direnv – unclutter your .profile direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory. Use cases Load 12factor apps environment variables Create per-project isolated development environments Load secrets for deployment How it works Before each prompt, direnv checks for the existence o

    t-wada
    t-wada 2014/05/27
    ディレクトリ毎に環境変数を設定できるツール。これは便利そうだ。実装は golang で描かれている模様。
  • Go言語のコードレビュー

    SoundCloudが2年半ほどGo言語を利用したプロダクトを番で運用した知見をGopherConで発表していた(“Go: Best Practices for Production Environments”).その中で“CodeReviewCommentsというGoogleでのGo言語のコードレビューにおいてよくあるコメントをまとめたサイトが紹介されていた. 最近Go言語を書くようになり,使えそうなのでざっと抄訳してみた.“リーダブルコード”的な視点も含まれており,Go以外の言語でも使えそう. gofmtでコードの整形をすること コメントは文章で書くこと.godocがいい感じに抜き出してくれる.対象となる関数(変数)名で初めて,ピリオドで終わること // A Request represents a request to run a command. type Request str

    t-wada
    t-wada 2014/05/27
    Google (と SoundCloud) における Go 言語のコードレビューに関する記事の翻訳。とても参考になる。
  • GitHub - gopherjs/gopherjs: A compiler from Go to JavaScript for running Go code in a browser

    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 - gopherjs/gopherjs: A compiler from Go to JavaScript for running Go code in a browser
    t-wada
    t-wada 2014/05/12
    Go 言語で書いたコードを JavaScript に変換する transpiler. 現在 goroutine 以外は全てサポートされているとのこと。
  • 【翻訳】プロダクション環境でのベストプラクティス - Qiita

    Qiitaは2ヶ月ぶりです。 GopherCon2014でSoundCloudの方がプロダクションでGoをどう使うかというところで発表されていたようです。その内容がブログで公開されていたので、僕の勉強も兼ねて翻訳することにしました。 英語は得意でないのですが、ザクッと訳してみました。きっと間違い有るので、どうかご指摘ください。 元ネタ:http://peter.bourgon.org/go-in-production/ スライド:https://github.com/gophercon/2014-talks/blob/master/best-practices-for-production-environments.pdf SoundCloudでは、たくさんのクライアントに対してAPIの形でプロダクトを提供するようにしています。ですから、ウェブサイトやモバイルクライアント、モバイルアプリの

    【翻訳】プロダクション環境でのベストプラクティス - Qiita
    t-wada
    t-wada 2014/05/02
    "Go: Best Practices for Production Environments" の翻訳。 SoundCloud がどうやって golang を使っているか。
  • 私家版のgoでホットデプロイの仕組み、もしくは椅子もマサカリも投げられたくないときの気遣い : D-7 <altijd in beweging>

    なんかごく一部に補足されているので、念のため軽く説明しておきます。 masahiro nagano@kazeburo某所のlestrratさんのgolangなアプリはhot-deployが可能になってる。サーバはserver_starter経由で起動されていて、バイナリ消してHUPを送ると自動でビルドしなおしてプロセスを入れ替えてくれる。便利 2014/04/30 12:18:31 これ、ベストな方法だとは思っていないんだけど、最初にこれを書いた当時の考え方は以下の通り: これは自分の部署で初めて 番に設置するgoアプリである一次対応をする人は自分とは限らない細かいコード内容の修正はともかく、明らかなバグっぽいものの修正(例:SQL文の変更)などを自分以外の人間が施した後にサーバーを簡単に再コンパイル+再起動するする方法がないと椅子が降ってくる事が容易に予想される Apache::Log

    私家版のgoでホットデプロイの仕組み、もしくは椅子もマサカリも投げられたくないときの気遣い : D-7 <altijd in beweging>
    t-wada
    t-wada 2014/05/02
    プログラマとしての牧さんの姿勢、本当に格好良い
  • Rebuild.fm ep42の補足等 : D-7 <altijd in beweging>

    tl;dr: 別にPerl捨ててないです。Perl大好き。俺はLLはPerlでいい。でも別ドメインの事もやってもいいよね! Rebuild.fmに限らず、公の場でYAPC/Perl以外の話をする事があるとは正直思っていなかったが、このたびRebuild.fm ep 42に置いて1時間Goについてしゃべりまくってきた。1時間ぶっつけ番でしゃべりたい事はだいたいしゃべってきたのだけど、その後のフィードバック等もふまえてまとめておきたいと思ったのでこのエントリでまとめてみます Go事始め そもそもなんでここまでGoをガリガリ書き出したのか。 正直親父ギャグとvimで有名なあの人が「Goいいよ!」と言い出したときにはGoに対してはうさんくさい印象しかなくて特に注意すらしてなかったんだけど、そろそろ違う言語とドメインに向いてみるかーと思って探していた時に「あ、俺もうLL系の言語別にいらないな」とふ

    Rebuild.fm ep42の補足等 : D-7 <altijd in beweging>
    t-wada
    t-wada 2014/05/01
    最近やっと Go を触り始めたので、ここに書いてあることが分かってきました
  • Go 1.3 Release Notes - The Go Programming Language

    Introduction to Go 1.3 The latest Go release, version 1.3, arrives six months after 1.2, and contains no language changes. It focuses primarily on implementation work, providing precise garbage collection, a major refactoring of the compiler toolchain that results in faster builds, especially for large projects, significant performance improvements across the board, and support for DragonFly BSD,

    Go 1.3 Release Notes - The Go Programming Language
    t-wada
    t-wada 2014/04/23
    Go 1.3 beta 1 がリリースされたのか
  • GitHub - dinedal/textql: Execute SQL against structured text like CSV or TSV

    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 - dinedal/textql: Execute SQL against structured text like CSV or TSV
    t-wada
    t-wada 2014/04/17
    CSV や TSV も SQL で扱えるツール。これも golang 製か。
  • GitHub - filhodanuvem/gitql: 💊 A git query language

    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 - filhodanuvem/gitql: 💊 A git query language
    t-wada
    t-wada 2014/04/17
    git の履歴を SQL 風のクエリ言語で検索できるツール。これは格好良いな。実装は Go 言語。
  • または私は如何にして例外するのを止めて golang を愛するようになったか — KaoriYa

    Java の finally よりも golang の defer のほうが筋が良さそうだ、 ということから考え始めた結果、 どうして私が golang を気に入ったのかがわかった気がしたので書いておきます。 ファイルをオープンし読み込みな処理で何かして終わったら閉じる、という関数を Javagolang で書き比べてみましょう。 Java で書くとこんな感じですね。 public static void readFile(String fname) throws IOException { InputStream s = null; try { s = FileInputStream(fname); // // Do something with "s". // } finally { if (s != null) { s.close(); } } }

    t-wada
    t-wada 2014/04/17
    "すべての分岐を明らかにし把握することが、真に頑強(ロバスト)なプログラム を作成するための最低必須条件"
  • Big Sky :: golang で複数のエラーをハンドリングする方法

    golangいまどき例外ないの頭おかしいって思ってたけどようするにgoroutineと例外がうまくいかないからgoroutineのほう取って例外捨てたってことかねえ。 — Urabe, Shyouhei (@shyouhei) April 15, 2014 FAQ に書いてあります。 Why does Go not have exceptions? - Frequently Asked Questions (FAQ) - The Go Programming Language We believe that coupling exceptions to a control structure, as in the try-catch-finally idiom, results in convoluted code. It also tends to encourage programme

    Big Sky :: golang で複数のエラーをハンドリングする方法
    t-wada
    t-wada 2014/04/17
    Go 言語に例外機構が無いのはなぜか (私も goroutine を取ったと理解しています)、ではエラーハンドリングはどうするかを説明しているエントリ
  • Go弱の会でgo vs node.jsのパフォーマンスベンチを取った話をしてきた。 #gojaku - from scratch

    Go弱の会に行ってきました。今回はnitrous.ioの話、revelの話、Dartの話がありました。 僕も少しだけしゃべったので、その話を含めてやったことをまとめます。 僕が話した内容 Go弱っぽく、Webアプリを作成し、そのベンチマークを取ってみました。 作ったアプリ angularjs と goweb(RestFul server) と mgo (mongo driver) でツイッターっぽいアプリを作ってみました。 Goweb製(heroku) : http://goweb-angular.herokuapp.com/app/#/ githubはここでアップしてます。 GitHub : https://github.com/yosuke-furukawa/goweb-sample ちなみに比較対象のkoa製の方もherokuにアップされてます。 Koa製 (heroku): htt

    Go弱の会でgo vs node.jsのパフォーマンスベンチを取った話をしてきた。 #gojaku - from scratch
    t-wada
    t-wada 2014/02/12
    むしろ boom という golang 製のベンチマークツールに興味を惹かれた "boomはapache benchとやれることはほとんど同様なんですが、POST、PUT、DELETEが簡単に投げられるため、RESTFul APIと相性が良い"
  • Go by Example

    Go is an open source programming language designed for building simple, fast, and reliable software. Please read the official documentation to learn a bit about Go code, tools packages, and modules. Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below. Hello World Values Variables Constants For If/Else Switch Arr

    t-wada
    t-wada 2014/02/03
    Go 言語のコーディングイディオムが多数掲載されているサイト
  • build-web-application-with-golang/ja/ebook/preface.md at master · astaxie/build-web-application-with-golang · GitHub

    1.Goの環境設定 1.1. Goのインストール 1.2. GOPATHとワーキングディレクトリ 1.3. Goのコマンド 1.4. Goの開発ツール 1.5. 概要 2.Go言語の基礎 2.1. こんにちは、Go 2.2. Goの基礎 2.3. フローと関数 2.4. struct型 2.5. オブジェクト指向 2.6. interface 2.7. マルチスレッド 2.8. 概要 3.Webの基礎 3.1 webでの作業方法 3.2 Goで簡単なwebサーバを立てる 3.3 Goはどのようにしてweb作業を行うか 3.4 Goのhttpパッケージ詳細 3.5 概要 4.フォーム 4.1 フォームの入力を処理する 4.2 フォームに入力された内容の検証 4.3 クロスサイトスクリプティングの予防 4.4 フォームの複数回送信の防止 4.5 ファイルのアップロード処理 4.6 概要 5.デ

    t-wada
    t-wada 2014/01/29
    Go 言語を学びながら Web アプリケーションを作成する電子書籍の日本語訳。原文は中国語で、本文のライセンスは CC BY-SA 3.0, コードのライセンスは修正 BSD 3-Clause (と、書いてある。たぶん。)
  • 「2014年プログラミング大予測」に参加しました - t-wadaのブログ

    あけましておめでとうございます。 昨年の暮れに『日経ソフトウエア』誌の新春恒例である技術予想企画に参加しました。きっかけは特集担当記者の大森さんからアンケートへの回答依頼を頂いたことです。その大森さんに掲載許可も頂いたので、このエントリでは私が行った回答に関して書いてみたいと思います。 日経ソフトウエア 2014年 02月号 [雑誌] 出版社/メーカー: 日経BPマーケティング発売日: 2013/12/24メディア: 雑誌この商品を含むブログを見る アンケートには大きく二つの設問がありました。 問1 プログラミング分野における2013年の大きなトピックは何だったとお考えかを、「なぜその技術が重要か」という理由付きで教えてください。 問1は 2013 年に関する質問であり、この一年であったプログラミング上のトピックを一つ回答しようと考えました。となるといくつか挙げられるのですが、私が 201

    「2014年プログラミング大予測」に参加しました - t-wadaのブログ
    t-wada
    t-wada 2014/01/01
    日経ソフトウエアの「2014年プログラミング大予測」に寄せたコメントと、その背景をブログに書きました
  • Go の Test に対する考え方 - Qiita

    この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg/testing/ 命名規則 では、

    Go の Test に対する考え方 - Qiita
    t-wada
    t-wada 2013/12/10
    “「何が落ちたか」よりも、「なんで落ちたか」が書かれています” "Go は、 assert やその他テストを構造化する仕組みなどを標準で提供しない代わりに、最小の API と十分なコマンドを提供する"