タグ

goに関するnakackのブックマーク (31)

  • horensoというcronやコマンドラッパー用のツールを書いた | おそらくはそれさえも平凡な日々

    リリースしました https://github.com/Songmu/horenso cron等、バッチジョブを走らせた場合にその結果通知やエラーレポートをどうするかは悩ましい問題です。ラッパースクリプトを統一的に噛ますのが常套手段ですが、そのためのツールとして、horenso というものをGoで作りました。報・連・相。その名の通り、実行ジョブの報告をつかさどってくれる君です。以下のようにして使います。 % horenso -r reporter.pl -- /path/to/job args... -- 以降に指定したコマンドが実行され、その結果がJSONとして標準入力経由でreporterに渡されます。reporterは実行可能なファイル、もしくはコマンドライン文字列であり、記述言語は任意です。reporterに渡されるJSONは以下の様なものです。 { "command": "per

    horensoというcronやコマンドラッパー用のツールを書いた | おそらくはそれさえも平凡な日々
    nakack
    nakack 2019/01/27
  • 「Go言語って何ででこんなに偏屈なんだろう」の炎上に答えてみる | 非IT企業に勤める中年サラリーマンのIT日記

    ざっくりGo言語を触ってきました。今までJavaとかC#をメインに使ってきた僕としては、一見先祖返りしたような仕様にちょっと戸惑いました。「コンパイル速度を上げる」目的で作った言語とのことで、その目的のためにコーディングしやすさをある意味犠牲にした、といいう点は理解できます。が、明らかにコンパイル速度(あるいは実行速度)とは関係ないところで使い勝手を「わざと」悪くしたとしか思えない仕様に、Googleエンジニアの偏屈さを感じずにはいられません。僕の単なる認識不足だけかもしれませんが、僕自身が感じた”偏屈”と... 自分のブログが批判とはいえ取り上げられるのは純粋にうれしいです。面と向かって言われたら凹むかもしれませんが、「自分のブログが取り上げられた」といううれしさだけが残るのはネット上ならではなのかもしれません。 んで、こんな時はおとなしくしているのが正しい態度なのかもしれませが、あえて

    「Go言語って何ででこんなに偏屈なんだろう」の炎上に答えてみる | 非IT企業に勤める中年サラリーマンのIT日記
    nakack
    nakack 2017/03/07
  • GoのためのGo

    Go言語はシンプルさを念頭にデザインされた言語です。仕様は単純明瞭さのために小さく収められていますが、そのため表現力に欠けているとか、コードが冗長になるという印象を持つ人も多いでしょう。有名なところでは、ジェネリクスや例外といった機能が(今のところ)存在しないことが問題にされることが多いようです。 一般に、ソフトウェアエンジニアリングというものは書かれる言語だけに依るものではありません。視点を拡げてGoを取りまくツール群を含めて見てみると、go fmt や goimports といったツールが広く使われていること、また go generate コマンドの存在などを見ても、Goという言語には、人間のプログラミングを機械によってさまざまな面から補助しようという態度があります。

  • なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由 | yunabe.jp

    結論としてはGo言語には以下のようないくつかの長所があり、現実路線で非常にバランスがとれた言語だと思います。 これらの長所のために失われたメリットも当然いくつもありますが、一定程度以上の規模のプロジェクトで利用する言語の選択肢としては現存するプログラミング言語の中では一番か二番目によいのではないかと思います。 コンパイルが速い (vs. C++) GCとメモリ安全性 (vs. C++) 妥当で現実的なレベルの型安全性 (vs. Python/Ruby) 実行時パフォーマンスが良さ (vs. Python/Ruby) 現実問題、ある程度の規模と期間のプロジェクトになると型検証があるとリファクタリングなどがだいぶ楽になるのでありがたい。 型があるので自然と実行時パフォーマンスも良い 標準ライブラリが整備されている (vs. C++) むしろ標準ライブラリにjsonのparserすら存在しないC

    nakack
    nakack 2017/01/17
  • 謎の囲碁棋士「Master」の正体は「AlphaGo」 Googleが発表

    記事はアフィリエイトプログラムによる収益を得ています Google DeepMindの共同創立者であるデミス・ハサビス氏が1月5日(日時間)、Twitterを更新。年末年始に世界のトップ棋士を続々撃破していた謎の囲碁アカウント「Master」は、囲碁ソフト「AlphaGo」の新バージョンだと明らかにした。 声明によると、同社ではAlphaGoの改善作業に取り組んでおり、ここ数日はネット上で非公式のテストを行っていたという。「東洋囲碁と野狐囲碁で『Magister』『Master』と対戦した方、そして観戦して楽しんでもらった皆さんに感謝します」。テストが完了したことで、今後は囲碁の団体・専門家と協力して、2017年内に格的な(持ち時間の多い)“公式戦”を実施するとしている。 無敗のMaster 囲碁アカウント「Master」の戦績は、「野狐囲碁」で30勝0敗、東洋囲碁を含めると60勝

    謎の囲碁棋士「Master」の正体は「AlphaGo」 Googleが発表
  • Zebra開発者の石黒氏、Go言語で全面的に書き換えた「Zebra 2.0」を開発中

    2016年10月21日に開催されたネットワーク関連のイベント「ONIC Japan 2016」で、HASH-SET 代表取締役の石黒邦宏氏(写真1)は新しいルーティングソフトウエア「Zebra 2.0」を開発中であることを明らかにした。同氏が開発した「GNU Zebra」およびその派生ソフトウエアである「Quagga」は、オープンソースのルーティングソフトウエアとして広く使われている。Zebra 2.0は、米グーグルが開発したプログラミング言語「Go」を採用し、マルチスレッドに対応したのが特徴。2017年には公開したいとする。 同氏がZebraの開発を始めたのは1996年。当時のネットワークソフトウエアはモノリシックな(=一体型の)構造を持つものが多かった。それに対し、Zebraはマルチプロセスで、各プロトコルを処理するモジュールを独立したプロセスとして実装するという、当時としては先進的な

    Zebra開発者の石黒氏、Go言語で全面的に書き換えた「Zebra 2.0」を開発中
  • 6年間におけるGoのベストプラクティス | POSTD

    稿は、QCon London 2016で行った講演の内容に基づいています。スライドとビデオは近日中に掲載予定です) 2014年に開催された最初のGopherConで、私は「 Best Practices in Production Environments(番環境でのベストプラクティス) 」と題した講演を行いました。 SoundCloud の私たちはGoのアーリーアダプターで、その時点までに既に2年近く、番環境向けの様々なGoコードを書き、実行し、メンテナンスしていました。そして私たちはいくつかのことを学んだので、その教訓をまとめ、多くの人に伝えたいと思ったのです。 それ以来、私はフルタイムでGoを使う仕事を続けています。SoundCloudではその後の活動やインフラチームで、そして現在は Weaveworks で Weave Scope や Weave Mesh の開発に使ってい

    6年間におけるGoのベストプラクティス | POSTD
  • Goのバイナリサイズを削減する — そこはかとなく書くよん。 ドキュメント

    あれ、 "-s"では変わってないですね…darwin環境ではでないのかななld周りのなにかだと思うのでそれはあとで追うとして、元々が26MBだったのが、5.2MBまで減りました。 圧縮に upx -9 を使った場合、かかった時間は15.70秒でそこそこ時間がかかりますね。3回ほど実行してだいたい同じぐらいでした。伸長時は0.10秒ほどでした。もちろんメモリなどにも依存しますので、この結果は鵜呑みには出来ませんが、あくまで目安として。 さらにいうと、 upx -1 で圧縮した場合は 0.78秒しかかかりません。それでいて、6.4MBと充分な圧縮効率となりました。この辺りはターゲットとする環境に合わせて決めればいいと思いますが、 -1 で十分な気もします。 まとめ¶ Goのバイナリが大きい問題は、ldflagsとUPXを使うことである程度解決できるのではないか、という話でした。 UPX知らなか

    nakack
    nakack 2016/03/01
    いわゆるパッカーなので、マルウェアに間違われるかもね
  • モノリシックなRubyからGoによるマイクロサービスへ | POSTD

    過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ

    モノリシックなRubyからGoによるマイクロサービスへ | POSTD
  • Go 実践4日間 | POSTD

    私の仕事の一つに、簡単なバイナリファイルフォーマットのリバースエンジニアリングがあります。”簡単な”というのは、通常は他の人たちが実際の作業全てを行うからです。私はただ、1つか2つの特別なフラグの意味を理解し、できるだけ多くの発見をして自分のブログに公開するだけです。 バイナリファイルの心臓部をのぞくときは、バイナリエディタを利用しています。ただ、 私の気に入っているSynalyze It! でさえ、使うのは手間がかかります。ファイルフォーマットを解明しようとする時、それぞれのバイトの持つ意味を私自身の仮定に基づいてマークアップしたいのですが、今のところ、そのようなことができるバイナリエディタはありません。現状では、バイナリファイルのバイナリ情報を紙に印刷して、去年のテクノロジー関連のカンファレンスでもらったボールペンでマークアップするのが私のワークフローです。 木々を守り、カンファレンス

    Go 実践4日間 | POSTD
    nakack
    nakack 2015/05/16
    postd.cc/four-days-of-go/
  • 逆引きGolang

    これはなにか 逆引きRubyの内容をGolang化しつつあるものです。 当方も初学者なので、いろいろといい加減なコードが含まれると思いますが そのつもりでご参照ください。 Go 1.4.1 で確認しています。Golangは仕様変更が激しいので、都度仕様を確認ください。 なお、ソースコードはGithubに置いてありますので、 何かあればPull Requestでお知らせください。 なお、当初から予定していたファイル系とgoroutineまでなんとか書き上げたので、 ここでいったん更新を終了します(2015/08/12)。 目次 文字列 日付と時刻 数値 配列 マップ 正規表現 ファイル ディレクトリ goroutine Credits RubyTips is founded by TAKEUCHI Hitoshi. HTMLs are generated by Pandoc and deco

    nakack
    nakack 2015/05/10
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 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++

  • 「ほい、これ」ってファイルを渡せる Hoi というツールをつくった

    PC間でのファイル受け渡しのときにファイルサーバを使うことがたまにありますが、OSによってファイルパスやその書式が違ったり、受け渡し用のディレクトリをつくるとか、ファイル渡したいだけなのに、なんだか小さなひっかかりがあってスマートじゃないなあといつも感じてました。 なので、もっと直感的に「ほい、これ」って渡せるツールをつくってみました。 Hoi Hoiはファイルの受け渡しを簡単に行うためのコマンドラインツールです。Go言語で書かれており、HTTPファイルサーバを利用して機能を提供します。 monochromegane/hoi (An easy file transfer tool using http file server.) ファイルを渡す 使い方は簡単でローカルのファイルパスをhoiコマンドの引数に渡すだけです。 そうすると以下のような、ダウンロード用のURLが出力されます。 htt

    「ほい、これ」ってファイルを渡せる Hoi というツールをつくった
    nakack
    nakack 2014/07/18
  • ブックマーク必須、Ruby関連の厳選リンク集「Awesome Ruby」 | ソフトアンテナ

    今の時代、Googleで検索するだけでたくさんの情報をみつけることができますが、見つかった情報が当に価値がある情報なのかどうか、限られた時間で見極めるのはなかなか大変なことだと思います。 そのような時に利用したいのがキューレーションリスト。「Awesome Ruby」はRuby関連ライブラリやリソースへの厳選されたリンク集で、用途ごとに定番情報へのリンクが張られているので、ざっと概略を知りたいときに役に立ちそうです。 例えば、ファイルアップロードでは、環境構築ツールではrvmとrbenvが、ファイルアップロードではpaperclip、carrierwave、dragonflyなどのライブラリの名前が挙げられていて、このチョイスは誰もが納得するところではないでしょうか。 Ruby用だけではなく、GoPHPPython用のリンク集もあるようですのでこちらもどうぞ。 awsome-go /

    ブックマーク必須、Ruby関連の厳選リンク集「Awesome Ruby」 | ソフトアンテナ
  • NDS#36 Go言語入門

    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

    NDS#36 Go言語入門
  • 動的言語だけやってた僕が、38日間Go言語を書いて学んだこと - Qiita

    Go言語を始めて38日たったので、これからGo言語を始めるプログラマにちょっとでもヒントになるように、どのようにGo言語を始めて、どのような手順で学んできたかまとめておきます。 筆者のバックグランド PHP歴、JavaScript歴10年~ Python 3ヶ月くらい Ruby 1日 静的言語経験ほぼ皆無(Java 3日くらい、Scala 3日くらい、Objective-C 1週間くらい、Cそもそも挫折、C# 1日) 静的言語というと、「コンパイルの一手間が面倒」だとか「環境を作るのが面倒」だとか先入観があり、ほぼわず嫌い状態でした。 Go言語とは? Go言語は2009年にGoogleによって作られたオープンソースの静的言語で、LinuxMacWindowsAndroidで動作します。最近ではGoogle App Engineで使うこともできます。 golang.jpの解説によると

    動的言語だけやってた僕が、38日間Go言語を書いて学んだこと - Qiita
    nakack
    nakack 2014/01/13
  • Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨

    二日間ほど集中してgo言語でコード書いたので、その間に感じたことをまとめてみます。普段はだいたいPerlJavaScriptでWebアプリケーションを書いています。 まとめの要約 go言語良い Webアプリケーション書くならPerlとかRubyが良い PerlとかRuby書ける人がミドルウェア書くならgo言語良い 気に入ったところ コンパイルエラーが親切 たとえば気楽な気持ちで以下のようなコードを書くと package main import ("fmt"; "net/http"; "log") func main() { resp := http.Get("http://hatenablog.com/") fmt.Println(math.Pi) } 以下のように丁寧に問題箇所を教えてくれます。 ./hoge.go:6: imported and not used: "log" ./h

    Go言語の気に入ったところ/気に入らなかったところ - はこべにっき ♨
  • golang を始めた時 - 鳩舎

    そういやまだ新しい経験だから覚えてるし、 golang を勉強していった過程を書いておく。 正しさとかは気にせず、動くものが出来るまでがむしゃらに。 Hello, world まで 特にひねりはない。 homebrew は便利だ。 $ brew install go $ cd ~ $ mkdir -p go/src/hello_world $ export GOPATH=${HOME}/go $ cd go/src/hello_world $ cat main.go package main import "fmt" func main() { fmt.Println("hello, world") } $ go run main.go hello, world 手軽。 入門、そして組み込みパッケージを使う http://golang.org/pkg/ に組み込みパッケージの一覧があるので

    golang を始めた時 - 鳩舎
    nakack
    nakack 2013/10/20
  • Mozilla、Goで実装されたサーバーログ収集・分析ツール「Heka」を公開 | OSDN Magazine

    Mozillaは4月30日、サーバーのログデータ収集や分析の簡素化を図るフレームワーク「Heka」のベータ版「Heka v0.2b1」をリリースした。サーバーの稼働状況に関するさまざまなデータの収集・分析などを簡素化・容易化するツールで、初めてのベータ版公開となる。 HekaはMozillaのサービスチームが開発したツール。メッセージのルーティング、収集、分析などの機能をもつ「hekad」とクライアントライブラリから構成されている。logstasch、statsd、syslogなどさまざまなツールが持つ役割を統合するもので、ログファイルやサーバー診断などのデータを収集し、標準形式に変換した後にルーティングルールセットに基づき評価してルーティングするという流れ。hekadはデータパイプラインの構築に適しているとの理由から米GoogleGo言語で作成されており、軽量でほとんどのホストで動くと

    Mozilla、Goで実装されたサーバーログ収集・分析ツール「Heka」を公開 | OSDN Magazine