タグ

ブックマーク / songmu.jp (13)

  • 退職とFA宣言のお知らせ | おそらくはそれさえも平凡な日々

    所属的には5月いっぱいですが、5月12日(月)が最終出社で有給消化中です。理由はいろいろありますが、結婚離婚がそうであるように、結局のところはタイミングの問題です。 一番大きな理由は家庭の都合です。家庭の都合というとネガティブに聞こえてしまうかも知れませんが、実際にはポジティブな挑戦です。 ただ、そのために会社を辞める必要は必ずしもなく、会社も引き止めの時にその事情を鑑みてバックアップしてくれる事は伝えてくれました。CTOに 「会社は社員の夢を実現する場所だと思っていて、だからといって全員が別の方向を向いているわけにもいかないので、誰かの夢に乗っかる形で事業を作っている。なので『こいつの夢に乗っかりたい』とか思わせたり、逆にそう思えるようなイイヤツを採用している。ただ、松木くんくらい会社に貢献してくれた人間だったら、自分の個人的な夢や目的のために会社を利用してくれて構わないし、むしろそう

    退職とFA宣言のお知らせ | おそらくはそれさえも平凡な日々
    hiroyukim
    hiroyukim 2014/05/13
  • MySQL::Partition has been released! | おそらくはそれさえも平凡な日々

    MySQL::Partitionをリリースしていたのでお知らせです。パーティションを切る用のSQLを生成してくれるクエリビルダーです。 Webサービスでは如何にデータを増やさないか、DBを分割しないで一系統に抑えるか、DBをメモリに如何に載せきるかってのがゆるふわサービス運用をしていく上で重要です。MySQLを使っている場合、そのために非常に有用なのがパーティションで、適切にパーティションを切り、古いデータを随時Dropしていける運用に落としこむのが非常に大切なわけです。 社内のプロジェクトでもPartitionを活用しているわけですが、いまいち仕組み化されておらず、古いプロジェクトからコピペを重ねて秘伝のタレ化しており、例えばデイリーでパーティションを切る場合、MySQL5.5からはRANGE COLUMNSパーティションが使えるにも関わらず、TO_DAYS()とかを未だにコピペして使い

    MySQL::Partition has been released! | おそらくはそれさえも平凡な日々
  • 大相撲の対戦相手マッチングアルゴリズムとスイス式の話 | おそらくはそれさえも平凡な日々

    ぶつかり稽古最高でした。僕の所属組織の人事の悪乗りに乗りまくって、あそこまでのものを作り上げてくださった皆様には感謝の言葉もございません。当にすみませんでした。ありがとうございました。 さて、終わったあとの雑談で、大相撲の試合の組み合わせのアルゴリズムがスイス式に近いって話をしたんですけど、そのスイス式のご紹介。 スイス式はチェスの世界ではメジャーなトーナメント方式です。ちなむと僕は中高ではチェス部だったのです(大学でもサークル所属はしていた)。詳しくは、Wikipediaに書いてあるのでそっちを読んでもらえればと思いますが、基的にその時の成績(勝ち数等)に応じて、次の組み合わせが決定されるものです。 相撲で言えば勝ち星が同じか近い力士同士が当たるようになっているということです。大相撲では2日先まで取り組みを決めていたりすることや千秋楽は横綱戦といった興行上の理由で、厳密なスイス式の適

  • そろそろText::Markdown::Discountについてひとこと言っておくか | おそらくはそれさえも平凡な日々

    Text::Markdown::Discountってどうなの?って話があったりするわけですが、Perlの人は積極的に使ったほうが良いと思うし、Discount自体はPerlに限らずおすすめだよーっていうエントリです。 これはDiscountというCのMarkdownライブラリのバインディングです。Rubyにはrdiscountという、メジャーなMarkdownのgemがありますが、これもDiscountのバインディングです。Jekyllとかで利用している人も多いでしょう。 Rubyの世界だと他にもredcarpetというgithubが採用したことで一躍有名になったMarkdownライブラリがあります。これはsundownというCのMarkdownライブラリのバインディングです。 sundownは処理が高速なのがウリらしく、PerlでもText::Markdown::Sundownを書こうか

    そろそろText::Markdown::Discountについてひとこと言っておくか | おそらくはそれさえも平凡な日々
    hiroyukim
    hiroyukim 2013/08/12
  • おそらくはそれさえも平凡な日々: memcachedのflagsってのが何のためにあるのかっていう話

    memcachedで値をセットするときに以下みたいな感じでセットするわけですが、 この<flags>ってのが何のためにあるのかいまいちよくわかってなかったわけです。 set <key> <flags> <exptime> <bytes> <data> で、Cache::Redis書いてた時にCache::Memcached::Fastの実装を見てたら、 あーこれ大事だわってなった。C::M::Fだと、ストアされているデータが シリアライズされてるか否か 圧縮されてるか否か 文字列か否か みたいな情報をこのflagsに持たせています。 C::M::Fはオブジェクトやリファレンスはシリアライズして、 単一スカラ(数値や文字列やバイナリ)はシリアライズせずに値をストアするように なってます。これはデフォルトのシリアライザであるStorableが単一スカラをシリアラ イズできないというのもあります

    hiroyukim
    hiroyukim 2013/05/27
  • おそらくはそれさえも平凡な日々: CPANモジュールのパッケージングの歴史

    最近同僚が次々とCPAN Authorになってて良い流れだなーとか思っています。 ただ、CPANへのモジュールの上げ方がわからないとか、M::Iを使えばいいのか M::Bを使えばいいのか、それらがそもそも何やってるのか分からないという話も 聞くので、僕自身もその辺の知識を整理してアップデートしました。 とりあえず、今はModule::Buildを使っておけば良いんじゃないかと 思っていますが、そこに至る歴史的経緯をまとめてみます。 大体、以下に書いてあることに加えて、最近の動きを書いています。 Module::Build:MakeMakerの後継者を目指して PerlでCPAN形式のモジュールを配布する場合は、Makefile.PLなりBuild.PLなりを モジュール作者が用意して、それがインストールに必要なファイル類を自動生成 するという流れになっています。 既存の雛形を使うと色々ファ

    hiroyukim
    hiroyukim 2013/02/13
  • おそらくはそれさえも平凡な日々: Plack::Middlewareで$envの中身を見るテストを書く方法

    Plack::Middlewareの中で $env->{'psgix.hoge'} 的な何かを突っ込むことはあるん じゃないかと思うが、そのテストをどう書くかという話。 Plack::Testだとレスポンスは見られるが、$envはもう見られない。 結論を言ってしまうと、$envをシリアライズして、response bodyに突っ込んでしまう $appを作るのが乱暴かつお手軽かと思う。 以下サンプルコード。 package Plack::Middleware::Hoge; use strict; use warnings; use parent 'Plack::Middleware'; sub call { my ($self, $env) = @_; $env->{'psgix.hoge'} = 'fuga'; $self->app->($env); } このMiddlewareをテストす

    hiroyukim
    hiroyukim 2013/02/02
  • おそらくはそれさえも平凡な日々: #isucon2 で連覇させてもらってきました

    主催の皆様素晴らしいイベントの提供当にありがとうございました。 まさかの2連覇ですが、@fujiwaraの恐ろしさを再認識するとともに、@typesterのチート性能を見せつけられた感があります。 まずは個人的な反省点から 去年よりかは大分成長しているつもりだったのに、@fujiwaraとの力関係が何もかわっていなかったことに衝撃 @typester(Redis期)がRedis使ってくることはわかっていたのに、競技中に brew install redisとかやってるのはダサすぎ ということで、isucon2を振り返ります。 事前準備 事前にIRCチャンネルを作っておいてnopate botを呼んでおいたくらい。カヤックから別チームも出ていたので、お互いのチャンネルには入らないという紳士協定。 去年の経験から、revサーバーに直接gitリポジトリを作れれば捗ることは分かっていたので、その

    hiroyukim
    hiroyukim 2012/11/07
    細かい実況がすごくおもしろいです。結果への過程が凄くわかりやすくてたすかります。
  • おそらくはそれさえも平凡な日々: shipped Plack::Middleware::Auth::OAuth

    Plack::Middleware::Auth::OAuthをリリースしたのでお知らせします。 https://metacpan.org/release/Plack-Middleware-Auth-OAuth ソーシャルゲーム開発等、OAuthの署名検証が必要な場面では必須のモジュールかと思います。ご活用ください。 いきなりバージョンが0.03になっているのはこれまでCPANに上がっていなかった中で変更が加えられてきたからです。そもそもこれは@hidekさんがgithubにあげているもので、僕は一回pull reqを送ったくらいです。それを@hidekさんの許可を得て僕が代理でCPANに上げました。 このモジュールは社内で活用していたので、CPANにあげて欲しいなーと思っていたのですが、YAPCの前夜祭後の飲み会で@hidekさんに「上げてもらえませんか?」みたいな話をしたら「あれ、まだ上

    hiroyukim
    hiroyukim 2012/10/02
  • おそらくはそれさえも平凡な日々: Text:Markdown::GitHubAPI書いてみた

    githubmarkdown rendering APIの話をちょくちょく聞くのでPerlから使うやつを書いた。 https://github.com/Songmu/p5-Text-Markdown-GitHubAPI 使い方は、Text::Markdownとかとほとんど同じです。これでgithubmarkdownがお手元でも! 微妙にCache::LRUとか使って頑張っちゃってる。なんで最近こんなMarkdown期なのか自分でもわからない。 そういや、Plack::App::Directory::MarkdownはyusukebeがYomicoっていう同じようなのをだいぶ前に書いてた。

    hiroyukim
    hiroyukim 2012/09/03
  • おそらくはそれさえも平凡な日々: Plack::App::Directory::Markdownが便利な件

    https://metacpan.org/release/Plack-App-Directory-Markdown 自作自演乙。 意識の高いエンジニアの皆さんなら、markdown形式でメモを残しているんじゃないでしょうか。 plackup -MPlack::App::Directory::Markdown -e 'Plack::App::Directory::Markdown->new->to_app' のような感じで、ディレクトリ内のmarkdownファイルの一覧を出してくれるとともに、markdownファイルはhtmlに変換して出力してくれます。皆さんが見飽きたBootstrapデザインになっております。 padm とかでalias作るときっと楽ですね。 alias padm="plackup -MPlack::App::Directory::Markdown \ -e 'Plack

    hiroyukim
    hiroyukim 2012/08/21
  • おそらくはそれさえも平凡な日々: perlbrewのperlをrsyncでばら撒くときの注意点

    結論:なにも考えずに--updateオプションをつけているとハマる。--updateは付けちゃダメ!絶対! perlbrewでインストールしたPerlrsyncでばら撒くという運用をしているところは多いと思うんですけど、そこで最近一点ハマりました。 cpanモジュールをインストールした時にpmファイルのタイムスタンプは、tar ballの中身のファイルのタイムスタンプがそのまま保持されています。 ただし、コアモジュールのタイムスタンプはPerlインストール時のものになります。 そして、コアモジュールをupgradeした場合は、タイムスタンプはtar ballの中身のタイムスタンプになるので、タイムスタンプが古くなります。以下例。 $ perl -MTime::Piece\ 999 Time::Piece version 999 required--this is only version

    hiroyukim
    hiroyukim 2012/05/31
  • おそらくはそれさえも平凡な日々: #isucon で優勝させてもらってきました

    まずは、ライブドアの皆様、素晴らしいイベントの提供当にありがとうございました。めちゃくちゃ楽しかったです。 Kayacのエンジニア3人 @fujiwara @sugyan @songmu の3人でチームfujiwara組を結成し、結果優勝することができました。 実際は周りの認識通り、@fujiwaraさんに優勝させてもらったようなもので、@sugyanと僕は手を動かしていただけです。まあ、空気にならずには済んだので、そこは安堵しています。 修正したisuconソースはフォークしてGithubに置きました。プログラムの修正部分のみで、my.cnfの修正なんかはここには反映されていません。 さて、@fujiwaraのコンテストでの動きや、帰宅後のBlogアップまであらゆる仕事が速くてビビるんですけど、詳しくは、#isucon で優勝してきましたを見てもらうとして、 どういうドタバタがあったの

    hiroyukim
    hiroyukim 2011/08/28
    これはありがたいです。
  • 1