タグ

Goに関するakiramazのブックマーク (12)

  • AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC engineers' blog

    SREチームの藤原です。Tech Kayac Advent Calendar Migration Track 19日目の記事です。いよいよ年も押し詰まってきましたね…! AWS Lambda、使ってますか?最近はサーバーレスという文脈で取り上げられることも多い Lambda ですが、カヤックではそこまでサーバーレスにこだわることはせず、主にイベントドリブンな処理に適切なユースケースに使用しています。 Lambda のリリース当初に用意されていたランタイムは Node.js のみでした。カヤックで最近使うことが多い言語である Go, Ruby のランタイムがサポートされたのが比較的最近だったということもあり、Node.js の Lambda function が比較的多く存在している状況でした。 Node.js EoL (End of Life) ところで、技術基盤チームのリポジトリで「La

    AWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話 - KAYAC engineers' blog
  • tail -Fなどの標準出力を一定時間ごとに指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンド evry を作った - Copy/Cut/Paste/Hatena

    ログの流量やサマリを、カジュアルに、そしてリアルタイムに確認したかったので作ってみました。 github.com これはなに 標準入力の内容を、一定時間ごと(もしくは一定行ごと)にまとめて指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンドです。 使い方 例えば、「NGINXの10秒あたりのリクエスト数を確認する」には、以下のように evry で10秒ごとにまとめた標準入力を wc -l に渡します。 $ tail -F /var/log/nginx/access.log | evry -s 10 -c 'wc -l' 8700 1260 8580 6430 [...] 例えば、「Apacheの1000リクエストあたりのアクセス先ランキング上位5を確認する」には、以下のように書けます(GNU sedを使用)。 $ tail -F /var/log/httpd/access.

    tail -Fなどの標準出力を一定時間ごとに指定のコマンドに渡し、その実行結果をシーケンシャルに出力するコマンド evry を作った - Copy/Cut/Paste/Hatena
    akiramaz
    akiramaz 2019/01/15
  • いま熱い最新スクリーンエディタmicro ことはじめ - Qiita

    microとは何か 最近注目を集めてるような気がするスクリーンエディタ、つまり文字ベースのターミナル(端末エミュレータ)で動作するテキストエディタです。そのようなエディタとしてはviやEmacs、近年ではnanoが知られてます。 microはそのようなテキストエディタの中でも最後発で、目下のところ活溌に開発されてるところです。この記事ではREADME.mdからいい感じに抜萃しつつ紹介します。 microはviやEmacsのような独特な操作体系ではなく、GUIのテキストエディタに近い操作性(キーバインド)を持ちます。SSHなど端末経由でのテキスト編集の必要に迫られたときに、新たな操作体系を覚え直す手間を最小限にしながら作業に取り掛かることができます。 2016年10月20日 追記 #端末(ターミナル)の設定を追加しました。特に、Shift+[←↓↑→]での範囲選択が機能しない場合に参考にして

    いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
  • CSVテキストをMarkdown形式のテーブルに変換するツールをつくった

    Markdown形式のテーブル記法をいつまでたってもうろ覚えで、毎回検索したり、変換サイトにアクセスするのが面倒だったのでツールをつくりました。嘘です。Go書きたかっただけです。 使い方 CSVテキストを標準入力から受け取って整形済みのMarkdown形式テーブルを出力します。 $ mdt < hoge.csv | headerA | headerB | | ------- | ---------------------- | | short | very very long content | 連携 コマンドラインツールなので、pbpasteやAutomatorと組み合わせて好きなように使えます。 以下は、Automatorのサービスとして登録したmdtをGitHubのIssue作成時に呼び出している様子です。 便利っぽい。 機能 CSV/TSVに対応 タブ区切りにも対応しているのでエク

    CSVテキストをMarkdown形式のテーブルに変換するツールをつくった
    akiramaz
    akiramaz 2016/07/24
    便利.
  • アーティファクトの管理について、あるいは go-apt-cacher / go-apt-mirror の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ

    誰も名で呼んでくれないので社内でもハンドルで通そうと ymmt と呼ぶよう社内に部長命令を出したお願いしている @ymmt2005 です。 今回はサイボウズ社内でどのようにアーティファクトを管理しているか紹介します。アーティファクトというのはソフトウェア開発では成果物のことを指します。成果物もいろいろありますが、もっぱら興味の対象になるのはデータセンターにデプロイしたりお客様に配布したりする JAR や実行ファイルやアーカイブです。 忙しい人のために 4 行でまとめておきます。 JFrog Artifactory をアーティファクト管理に利用している Debian パッケージ(deb)を作成・管理する仕組みがある 各地のデータセンターで利用するため go-apt-cacher / go-apt-mirror を作った 既存の apt-mirror や apt-cacher-ng の問題

    アーティファクトの管理について、あるいは go-apt-cacher / go-apt-mirror の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Loading...

    akiramaz
    akiramaz 2016/07/08
    有償だった
  • Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部

    Golangが一番パフォーマンスが良いかと予想していましたが、全く逆の結果になってしまいました。 Golangが遅い理由 遅い原因をいくつか考えて改善できないか試してみました。詳細は省きますが、以下の点については問題なさそうでした。 goroutineはリクエスト単位で起動している コネクションプールは有効になっている BeegoORM特有の処理は主原因ではない(標準ライブラリのsql関数と大差なし) DB側のCPU使用率は100%になっているが、CPU使用率とメモリ使用量はPHP環境と同程度の負荷になっている ここまで確認して、プロファイラを使った方が良さそうに思えたので、いったんプロファイラで状況を確認するために、標準で提供されていて手軽に使えそうなpprofを使ってみました。topで確認すると次のような結果がでました。 (pprof) top 20 -cum 920ms of 15

    Golang vs PHP7(追記あり) - GMOインターネットグループ グループ研究開発本部
  • 仕事の言語に飽きてきた人はGoを使ってみてほしい――『スターティングGo言語』著者が語るGoのパワー

    簡単で早いGoのパワーに目覚める ――『スターティングGo言語』はすでにJavaPHP、Cを使い慣れている方のために書かれた入門書ですが、松尾さんご自身はどのようなプログラミング遍歴があってGoを使い始めたのでしょうか。 松尾:私はこれまでさまざまなプログラミング言語に触れてきました。最初は、長崎・佐世保市に住んでいた小学生の頃で、MSX2+というパソコンをたまたま手に入れたのですが、周りに使い方を教えてくれる人はおらず、や雑誌で知識を吸収して、一人で遊んでいました。それがプログラミングの原体験です。それ以降もプログラミングは趣味でやっていました。大学を辞めたあと、福岡のとあるSI企業に勤めることになりました。当時はJavaの黎明期で、Java Applet、Servletといった新技術が採用され始めた時期で、さまざまなことを試していた記憶があります。 24歳の頃に東京に異動しました。

    仕事の言語に飽きてきた人はGoを使ってみてほしい――『スターティングGo言語』著者が語るGoのパワー
    akiramaz
    akiramaz 2016/07/02
  • Golangのエラー処理とpkg/errors

    GoConでは毎回エラー処理について面白い知見が得られる.Go Conference 2014 autumn においては(実際のトークではないが)居酒屋にて@JxckさんがRob Pike氏から以下のようなテクニックを紹介してもらっていた. Errors are values - The Go Blog Golang Error Handling lesson by Rob Pike これはWrite(やRead)のエラー処理が複数続く場合にerrWriter を定義して複数のエラー処理を一箇所にまとめてコードをすっきりとさせるテクニックであった. そして今回の Go Conference 2016 spring のkeynoteにおいてもDave Cheney氏から(僕にとっては)新たなエラー処理テクニックが紹介された. Gocon Spring 2016 実際に使ってみて/コードを読ん

    akiramaz
    akiramaz 2016/07/02
  • 新卒研修でGo研修を担当しました

    @tenntennです。 今年度の新卒研修でGo研修を担当しました。 スライドで100ページを超えるボリュームの資料を14時間かけて、じっくり網羅的に講義を行いました。 内容は今まで私が外部で発表したスライドをまとめて補足を足していった形になってます。 資料はSlide Shareに公開してあるので、ぜひチェックしてみてください。 また、資料中に扱っているソースコードもGithubで公開していますので、そちらも参考にしてください。 資料 ソースコード 研修をやってみて 新卒の反応は、普段触れない言語に触れて新鮮だったという反応やゴールーチンとチャネルが難しいなどさまざまでした。 スパルタ気味で進め方が少し早かったせいか、ついていくのが大変だったみたいです。 それでも、自主的にpingコマンドを作ってくる強者もいたり、いい刺激になったんじゃないかと思います。 裏話 実は最初はGoで簡易ゲーム

    新卒研修でGo研修を担当しました
    akiramaz
    akiramaz 2016/07/02
  • Golangで支えるハイパフォーマンスAPI

    アプリ・サーバー間通信からスケーラブルなマイクロサービス間の連携まで、さまざまな状況で必要とされてきているRESTfulAPI。これをGo言語で構築し、高いパフォーマンスと高可用性を兼ね備えたサーバーを実現するまでをご紹介いたします。

    Golangで支えるハイパフォーマンスAPI
    akiramaz
    akiramaz 2016/07/02
  • Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々

    同僚がGoを始める上で、案外まとまった資料が無さそうだったので書いてみることにしました。 Macでhomebrewが入っていることが前提です。事前に brew update をおこない formula を最新のものにしておくと躓くことが少ないでしょう。 Goのインストール % brew install go エントリ執筆時点では、1.6.2 が入ります。Goはメジャーバージョンが同じ場合は、後方互換が保たれているので、基的に新しいやつを入れて問題ありません。 環境変数の設定 $GOPATH だけを決めればOKです。$GOPATH はどこでも良いのですが、ここでは $HOME/dev を $GOPATH に設定します。また、 $GOPATH/bin に $PATH も通しておきます。 export GOPATH=$HOME/dev export PATH=$GOPATH/bin:$PATH

    Mac上にGoの開発環境を構築する〜下準備編 | おそらくはそれさえも平凡な日々
    akiramaz
    akiramaz 2016/05/19
    [[peco]
  • 1