ブックマーク / lestrrat.ldblog.jp (8)

  • Goでstart_server (Server::Starter)とうまいことやる : D-7 <altijd in beweging>

    色々調べてたらgo でHTTPサーバーをgraceful restartする方法の記事にあたって、そのなかでシグナルを受け取るとリクエストを受け取ったらそれまでに受け付けたリクエストを処理してから停止するmannersというツールを見つけた。さらにゼロダウンタイムでサーバーを再起動するgoagainというツールも見つけたんだけど、これはサーバー内のコードをそれなりに変更しないといけないっぽくてうんざりしてしまった。 「っていうか普通にServer::Starterをかませるようにできればよくね?」と思ったので、go-server-starter-listenerを書いてみた!使い方はREADMEにあるとおり。このようなコードを書いておいてからstart_server --port XXX -- ./your-go-program って感じで動作させればServer::Starterが保持し

    Goでstart_server (Server::Starter)とうまいことやる : D-7 <altijd in beweging>
    daiki_17
    daiki_17 2016/12/19
  • Dockerもシェルスクリプトも使わずGoのクロスコンパイルを行う : D-7 <altijd in beweging>

    moznion.hatenadiary.com 別にDocker使ったっていいんだけど、こっちでもできますよ、ってことで、Dockerもシェルスクリプトも使わない方法の説明。元記事を読んでわかるのは: 1. makeを使ってる 2. GOOS/GOARCHを設定してクロスコンパイルしている(gox等を使っていない) 3. Dockerであげた同一イメージ上で全てのクロスコンパイル結果を吐いている ということなので、であれば別にローカルの環境でクロスコンパイルしても何の差もなさそう。別の環境をたててクロスコンパイルしたい場合もあるが、それは例えば cgoを使っている os.User 関連のコードをコンパイルするとか、そういう時だしその場合はそれぞれのプラットフォームごとに別のホスト上でコンパイルする必要がある。それをする必要がないなら go 1.5 以降であればもうGOOS/GOARCHを設

    daiki_17
    daiki_17 2016/05/27
  • ISUCON5初参加して散ってきた : D-7 <altijd in beweging>

    初めてISUCONに参加してきた。ちなみに初めて櫛井さんが主催するイベントに参加してみた。 チームメイト達は何回も素振りという名の練習をしていたのだけど、こちらは家族サービスで鴨川シーワールドに行ってたりして一回練習しただけ。GCPは普段から慣れ親しんでるのでその辺りもあって余裕ぶちかましてましたね! 当日は朝からdotsに陣取り、自分は黙々とコード書いてた。最後に会心の一撃で1400点台から6000点にあげた以外は特にすごい事はできなかったなぁ。トップページが重いのはわかってたけど「その前にやることあるだろ」精神で他のところチューニングし始めたの、時間配分的には間違ってたね。 実装はPerlでデータセットを先にmmapファイルに展開する方式でがんばってやってみました。最終的に会心の一撃はSQLをチューンするより「リクエストごとにKVS的にデータをがっともってきてオンメモリ展開した上でSQ

    ISUCON5初参加して散ってきた : D-7 <altijd in beweging>
    daiki_17
    daiki_17 2015/09/28
  • ソーシャルコーディングの時代に置いてはエンジニア以外もレポジトリ(GitHub等)を見るべき : D-7 <altijd in beweging>

    ソーシャルコーディング時代の非技術者と技術者の関わり方についてちょっと考えをまとめたい。なお、これは「技術によって実現されるなにかをベースに商売をしている団体」という前提のもとで書く。たまたまインフラの一部にGitHubを使っているとかそういうのはここに含めない。また、大きめの企業・団体では数の利をいかしてなんとかこのあたりを解決できてしまったりするので、それもここでは含めない。 昔々、自分がメーカー系の会社に勤めていた頃バグトラッカーやレポジトリ(Perforceだった)などにエンジニア以外の人を入れるのは御法度だった。技術者側からの「わけのわからん注文をされる」「話がかみ合わない」など、納得の理由もある。なにより技術的な素養をもたない人達にとってはこれらのツールを使いこなすことが難しく、閲覧することさえなかなかかなわなかった。こちらもごもっとも。 が、21世紀に入って10年以上過ぎてい

    ソーシャルコーディングの時代に置いてはエンジニア以外もレポジトリ(GitHub等)を見るべき : D-7 <altijd in beweging>
    daiki_17
    daiki_17 2015/02/17
  • pecoがぼちぼち成功した3つの理由 : D-7 <altijd in beweging>

    さきほどちょろっとアップデートが入ったpeco v0.2.2をリリースしました(Changeログ)。 で、ついでに昨日mattnさんがpecoについてツイートしてたので流れてしまう前にまとめておく mattn@mattn_jppeco、便利だしとても完成度高いんだけど、客観的に見るとあのプロジェクトがあれだけ流行ったのには理由があると思ってる。 2014/07/22 23:17:31 mattn@mattn_jpまず、Windows をネイティブサポートしたこと。少数ユーザの様で意外と多い。Windows だけ一部機能が欠けてるという事もない。 2014/07/22 23:22:00mattn@mattn_jp次に人気が出る中、手を止めなかったこと。停滞するとユーザも飽きる。 2014/07/22 23:25:44mattn@mattn_jpそして丁寧な README とアニメーションgi

    pecoがぼちぼち成功した3つの理由 : D-7 <altijd in beweging>
    daiki_17
    daiki_17 2014/07/23
  • 私家版の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>
    daiki_17
    daiki_17 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>
    daiki_17
    daiki_17 2014/04/30
  • YAPC::Asia Tokyo 2013: 「本当にあったレガシーな話」と最近のlivedoorBlogの改修 : D-7 <altijd in beweging>

    はい、というわけで自分のトークです: 昨年12月頃から関わってるlivedoorBlogのコードを触っていた時の憤りをスライドにぶつけてみました。 追記:スライドに「ログにマーカーをつける」というのは、(コード読んでないけど)多分こちらのエントリにあるLog::Minimal::Indentとだいたい同じ感じのヤツです ところでWeb上で見かける感想の中でこんなのがありました: 今年個人的に一番衝撃的だったのはやっぱ、livedoor blogのPlack化です。技術的な側面もさることながら、ああいう近視眼的には何のメリットもないし、逆にデメリットの方が大きそうな案件にリソースを割くジャッジができる会社としての姿勢が当に凄いなと。 実はビジネス的にも意味はあるんだなー。 なかなか書くことができなかったんだけど、その内容というのがこちらと→ ブログのお引っ越し機能を大幅に強化しました! (

    YAPC::Asia Tokyo 2013: 「本当にあったレガシーな話」と最近のlivedoorBlogの改修 : D-7 <altijd in beweging>
    daiki_17
    daiki_17 2013/09/24
  • 1