タグ

ブックマーク / blog.kentarok.org (14)

  • gRPCでgdbmにネットワークインタフェイスを持たせる - Kentaro Kuribayashi's blog

    先日、HTTP/2とProtocol BuffersをベースにしたRPCフレームワーク、gRPCがリリースされた。 Google Developers Blog: Introducing gRPC, a new open source HTTP/2 RPC Framework Microservicesがなんちゃらいわれる昨今だが、その実現のためには、設計面におけるベストプラクティスはもとより、実装面においても課題がある。すなわち、サービス間でどのようにオーバーヘッドが少なく、帯域を浪費しない通信を実現するかということ。そんな折Googleが、上記のリンク先にある通り「うちらめっちゃMicroservicesだし」ってんで、まさに「これだ!」という技術スタックでいい感じのものを出してくれた。 gdbmにRPCしてみる とりあえず試してみたいので、簡単にできそうな例として、gdbmにネットワ

    gRPCでgdbmにネットワークインタフェイスを持たせる - Kentaro Kuribayashi's blog
  • `gate`をGitHub対応した - Kentaro Kuribayashi's blog

    Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - unknownplace.orgで紹介されている、typesterさんのgateという、GoogleのOAuth2認証付きプロキシサーバがとても便利そうだったので、即座に使いたくなった。 これは、昨今増えつつあるメトリクス系のツールだとかの、インターネット上に置きつつも、社内のみに提供したいサービスを立てるに際して、フロントにnginxをおいた場合に、認証のことを考えるのがだるい、というか、nginxの設定自体がだるいみたいなときに役立つツールです。その際、自分とこ的にはGitHubのorganizationでアカウント管理できるとさらによいので、GitHub対応をしてpull requestを送ったところmergeされました。ありがとうございます。 会社で運用しているorganizationがfoo_orga

    `gate`をGitHub対応した - Kentaro Kuribayashi's blog
  • ghqを使ったローカルリポジトリの統一的・効率的な管理について - Kentaro Kuribayashi's blog

    GitなどのVCSからcloneしたローカルリポジトリをどう管理するのがいい感じなのか、よくわからない。なんとなく自己流でやっているが、もっといい方法を知りたい。 tl;dr - ディレクトリレイアウトをgolangの作法に合わせ、すべてのリモートリポジトリをghqを使ってcloneし、percolを使って簡単に検索できるようにしましょう。 追記: いまならpercolの代わりにpecoというツールを使うのもよいでしょう。というか、僕はそうしています。設定方法はこのエントリとほぼ同様の内容でいけると思います。 背景 そんな課題を抱えつつも、特になにかをするわけでもなく日々暮らしていた折、Rebuild: 42: When in Golang, Do as the Gophers Do (lestrrat)で@lestrratさんが、Goのお作法に、他の言語のリポジトリも含め、すべてあわせる

    ghqを使ったローカルリポジトリの統一的・効率的な管理について - Kentaro Kuribayashi's blog
  • Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - Kentaro Kuribayashi's blog

    稿では、"Immutable Infrastructure"時代におけるconfiguration management tool(以下、CMT)の要件およびそれを満たすツールについて議論する。 背景の整理 "Immutable Infrastructure"とは、2013年6月、Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components - Chad Fowlerにより提唱された概念だ。ある種のプログラミング言語における不変性がプログラムにおける厄介な問題を解決するように、サーバの状態を不変な(正確には、状態を変更しない)ものとすることで、成長し続けるソフトウェアにとって避けられない、時間の経過によりもたらされる種々の問題が、解決可能であるとする。 そもそもどのような

    Immutable Infrastructure時代のConfiguration Management Toolの要件およびその実装について - Kentaro Kuribayashi's blog
    hide_o_55
    hide_o_55 2013/12/02
  • Joined CPAN-API (metacpan) Team - Kentaro Kuribayashi's blog

    We're honored that we, PrePAN developers, can announce we just joined CPAN-API organization! PrePAN repository PrePAN cookbooks repository We're going to make the site better as possible. Please keep eyes on us and send pull requests to our repository.

    Joined CPAN-API (metacpan) Team - Kentaro Kuribayashi's blog
  • fluent-plugin-rewriteというプラグインを作成した #fluentd - Kentaro Kuribayashi's blog

    fluent-plugin-rewriteというfluentdのプラグインを作成した。以下、このプラグインの解決する問題について述べる。 https://github.com/kentaro/fluent-plugin-rewrite https://rubygems.org/gems/fluent-plugin-rewrite 問題 あるサービスのレスポンスタイム改善をしていて、まずは状況の可視化のために、fluentdを用いることにした。その際、たとえば トップページ ユーザページ 書籍検索ページ 書籍詳細ページ ... その他 といったグループにわけて、レスポンスタイムの各種統計を取りたい。また、ログを全部集計すればいいというものではなく、除外すべきmessageも複数種類あるので、柔軟にフィルタルールを設定したい。 既存のプラグインだとout_exec_filterを使うことによっ

    fluent-plugin-rewriteというプラグインを作成した #fluentd - Kentaro Kuribayashi's blog
  • シンプルなデプロイツールを書いているという話 - Kentaro Kuribayashi's blog

    デプロイツールにcapistranoを使っているのですが、経年劣化により、何をやっているのか意味不明になり、機能追加しようにもどうにもならない感じになってきたので、もっとシンプルなものを作ってみようというわけで、ちょっとやってみています。 https://github.com/kentaro/cinnamon 設計指針は以下の通り。 role/taskという枠組みはcapistranoと同じ というか、このモジュールは、role/taskの管理 + アルファだけを提供する 設定のset/get コマンド実行(run/sudo) リモートでのコマンド実行(remote) (いまはないけどstreamみたいなのも欲しい) 普通、デプロイツールというのは、デプロイ先のディレクトリ構成をいい感じにしてくれたり、VCSとの連携を上手いことやってくれたりするわけですが、このモジュールはそういうことはし

    シンプルなデプロイツールを書いているという話 - Kentaro Kuribayashi's blog
  • HTML5のclient-side form validationで書かれたattributeからvalidation rulesを抽出し、client/serverでルールを共通化するモジュールを書いた - Kentaro Kuribayashi's blog

    Validation Ruleの記述ってけっこう面倒で、うまい方法を思いつけないのでいたのですが、今日、なんとなくHTML5にclient-side form validation specなんてものがあるんだから、それを使ったらいいんじゃないかと思って、ちょっと実装してみました。 http://prepan.org/module/3Yz7PYrBGs https://github.com/kentaro/HTML-ValidationRules 以下のようなメリットがあるのではないかと思っています。 client-side form validationを使いつつ、server-sideでも同じルールを別の形式で書くのは無駄感。 HTML5が、validation rulesをHTMLというフォーマットによって定めているとみなせば、client-side/server-side両方でそれ

    HTML5のclient-side form validationで書かれたattributeからvalidation rulesを抽出し、client/serverでルールを共通化するモジュールを書いた - Kentaro Kuribayashi's blog
  • PrePANをAmon2化した + Amon2で気になった点など - Kentaro Kuribayashi's blog

    PrePANのWebアプリケーションフレームワークをAmon2に変更しました。閲覧者的には何も変わるところはないので特に意味はないですが、今後の機能開発がしやすくなったので、結果的にはよい影響はあると期待しているところです。 WAFは、YAPC::Asia 2011でのcho45さんの発表「ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく」にあるように「薄いフレームワーク」がより良いと最近は感じています。PrePANはまあ、特に変わったこともしていないアプリなので、ドメインスペシフィックに対処するべきこともなく、また、下手に自作するよりも、Amon2の方がずっといいものであることが明白なので、今回はAmon2を使うことにしました。 というわけで、Amon2作者のtokuhiromさんに「Amon2使いますよ!!1」と話したのを実行できたし、PrePANはいろいろと機能追加の

    PrePANをAmon2化した + Amon2で気になった点など - Kentaro Kuribayashi's blog
  • Perlモジュールのレビューサイト PrePAN をオープンしました - Kentaro Kuribayashi's blog

    Perl Mongersの皆様へ: PrePANというサイトをオープンしたので、お知らせいたします(実装は僕、デザインは同僚のスーパーデザイナid:kudakurage)。 http://prepan.org/ PrePANとは? 社内でこんな話をしたことがありました。 業務や個人的な活動なので、便利モジュールができた〜ということがあった時、んじゃ、せっかくなのでCPANize(CPANに公開)しよっかなと思っても、いくつか不安に思うことがあったりします。 既に似たようなものがあるのでは? 実装について不安が……。 CPANizeするに際しての名前やファイル構成の慣習がわからない 誰かにちょっとチェックしてもらいたい そのような問題に対する解決の一助となればと思い、サイトを作ってみました。「こんなの作ったけどどうだろう?」とか「こういうモジュール他にある?」とか、いろいろなことに使ってもら

    Perlモジュールのレビューサイト PrePAN をオープンしました - Kentaro Kuribayashi's blog
  • Hash::Compactでキー名にエイリアスをふってストレージ容量を節約する - Kentaro Kuribayashi's blog

    MySQLのカラムなりMemcached的なストレージなりに構造化されたデータをつっこみたい時に、長ったらしいキー名が何度も使われるのは容量の無駄だなあという話になって、簡単にキー名にaliasをふれるようにしたら便利だね、つか、Data::Modelに確かそういうのあったよね、汎用的に使えるようにしたい、とid:nanto_viと話したので、ちょっとやってみた。 CPAN: http://search.cpan.org/dist/Hash-Compact/ github: https://github.com/kentaro/perl-hash-compact たとえば、以下のようなデータがあるとして { name => 'antipop', age => 17, ... } これをMySQLのカラムなりMemcached的なストレージなりに、JSONだとかなんだとかでシリアライズして保

    Hash::Compactでキー名にエイリアスをふってストレージ容量を節約する - Kentaro Kuribayashi's blog
  • Imager::Marquee、あるいは、揺れるイケメン - Kentaro Kuribayashi's blog

    画像を左右に動かしたり揺らしたりするモジュールを作成しました。 https://github.com/kentaro/imager-marquee 以下、使い方を説明します。 たとえばここに、イケメンを写した画像があります。 確かにイケメンです。しかし、しばらくほれぼれと眺めているうちに、いくらイケメンとはいえ、動きがないとちょっと飽きてしまうのも事実(「美人は3日で飽きる」ともいいますし)。これでは、せっかくのイケメンも片無しです。そこで、ちょっと動きをつけてみましょう。 use strict; use warnings; use Imager::Marquee; my $image = Imager::Marquee->new(file => shift); $image->marquee(3)->write( file => 'marquee.gif', gif_loop => 0,

    Imager::Marquee、あるいは、揺れるイケメン - Kentaro Kuribayashi's blog
  • Titaniumに入門、CPAN Searchアプリを作ってみた - Kentaro Kuribayashi's blog

    周囲がTitaniumについてあれこれいってるので、僕もやってみたくなり、ビールのつまみとして、飲みがてらちょっと入門してみた。CPANモジュールの新着と、任意の文字列での検索結果を表示するだけの簡単なものだけど。 https://github.com/kentaro/titanium-cpan-search まずは、起動すると新着モジュールが表示される。クリックすると、普通にWebViewで表示する。 んでもって検索。例ではPlackと入力してみている。表示は上記と一緒。 GUIのプログラミングが初めてなのでお作法とかよくわからない(JavaScript自体も苦手です……)のだけど、いろいろ情報があるので、なんとなくそれっぽいものができたのでよかったです。 あと、雑感。 うまいこと構造化できなくて適当なコードになってしまったので、いい感じのフレームワークができたらいいんだけどなー。 上記

    Titaniumに入門、CPAN Searchアプリを作ってみた - Kentaro Kuribayashi's blog
  • Kansai.pm第13回ミーティングで発表しました「HudsonでPerlプロジェクトの継続テスト」 - Kentaro Kuribayashi's blog

    Kansai.pm #13で、「HudsonでPerlプロジェクトの継続テスト」というお題で発表しました。僕もまだ使い始めたばかりでわからないことも多く、いたって入門的な話ですが、少しでも使うひとが増えたらノウハウもたまっていいんじゃないかと思って発表した次第です。 発表者やお越しいただいたみなさま、また、ustreamでご覧になっていただいた方々、お疲れさまでした!!1

    Kansai.pm第13回ミーティングで発表しました「HudsonでPerlプロジェクトの継続テスト」 - Kentaro Kuribayashi's blog
    hide_o_55
    hide_o_55 2010/11/20
    Hudson は使いたい
  • 1