タグ

ブックマーク / blog.nekokak.org (8)

  • Redis の SortedSets 同点問題について - blog.nekokak.org

    WEB+DBのRedis特集をひろせまさあきさんと共同で執筆しました。 WEB+DB PRESS Vol.73posted with amazlet at 13.03.05設樂 洋爾 白土 慧 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O 技術評論社 売り上げランキング: 335 Amazon.co.jpで詳細を見る 買ってください。 このRedis特集の第五章では、Redisを使ったリアルタイムランキングについて取り上げたのですが、 記事中にある同点問題について、執筆時から状況が変わりましたのでupdateします。 記事中では、RedisのSortedSetsはスキップリストというアルゴリズムを使っている特性上、 同じス

    gfx
    gfx 2013/03/06
  • Cache::Memcached::Fastの高速化

    一番簡単に高速化するには シリアライザをData::MesagePackにするとよいかもしれない。 #! /usr/bin/perl use strict; use warnings; use Cache::Memcached::Fast; use Data::MessagePack; use Benchmark qw/timethese/; my $normal = Cache::Memcached::Fast->new({ servers => ['127.0.0.1:11211'], serialize_methods => [ \&Storable::freeze, \&Storable::thaw ], }); my $msgpack = Cache::Memcached::Fast->new({ servers => ['127.0.0.1:11211'], serialize

    gfx
    gfx 2011/03/02
  • 株式会社ディー・エヌ・エーに入社しました

    日より株式会社ディー・エヌ・エーで働いてます。 今まで自分が体験したことのない規模をめい一杯堪能したいと思います。 初日は さいきろんさんに色々と教えてもらいつつ、 myfinderさんのおかげで、あっさりと環境構築が完了し、 Zigorou さんのチャチャを受けながら 改めて転職したんだなぁと実感しました。 どんどんキャッチアップしてガンガン行きたいです。 どうぞ宜しくお願いします。

    gfx
    gfx 2011/03/01
    えええええええ!!!よ、よ、よろしくおねがいします><
  • 退職のお知らせ

    2月28日をもって現在勤めている会社を退職致します。 日2月25日が最終出社です。 現在の会社に勤めだして1年ほどですが 今までの単なるwebアプリ開発だけでなく データセンターの選定、 サーバの選定、 などインフラ面にも携わることができ とても勉強になりました。 その成果が昨年のYAPCの発表に繋がっています。 来週月曜日は有給を利用してちょっと休養させていただき、 3月1日から新しい会社で働きます。 どうぞ今後とも宜しくお願い致します。

    gfx
    gfx 2011/02/25
    おつかれさまでした!!!
  • Tengについて

    先ほどTengという新しいORMをリリースしました。 TengはDBIx::Skinnyの後継バージョンと捉えていただいて結構です。 DBIx::Skinnyはおおよそ3年前ほどに一人でつくりはじめたORMで 現在に到るまでに様々な仕様変更を繰り返し、 結構秘伝のタレ的なコードが目立つようになってきました。 元々はDBIx::Skinnyをリファクタリングすることで済まそうと思っていたのですが、 後方互換を残したままのリファクタリングに限界を感じました。 多くの人に使っていただいている現状で後方互換を簡単に捨ててしまうのは 宜しく無いとの判断から別プロジェクトとしてリリースするに至りました。 DBIx::Skinnyは現状、バクレポートも特別なく 問題なく継続してご利用頂けると思いますので、ご安心ください。 また、なにか大きな問題点があれば、サポートしますのでpatches&testsウエ

    gfx
    gfx 2011/01/18
  • DBIx::Skinnyのなおしたいところ(案)

    DBIx::Skinny::SQLがいけてないのでなおしたい   $skinnyのObjectに依存しているのがretrieveメソッドだけなので   若干のインコンパチな変更になるけどなんとかしたいかな。   あとDBIx::Skinny::Accessorを廃止したい。   正直SQL builderとしていけてない。(Data::ObjectDriverからぱくっといてなんだけど)    complex_whereとか書きにくすぎる ・AnonRowクラスの廃止   Rowクラス生成を必須とするかどうか。 ・ClassメソッドでDBIx::Skinnyを操作出来るインタフェース   正直インスタンスをつくって操作したほうがよいのでSkinnyとして廃止したい。 後方互換かんがえると結構大変なことなり。 ちなむとヤルにしてもいきなりエラーになるとかはしないのでご安心を。 そしてヤルか

    gfx
    gfx 2010/11/26
    後のDBIx::Skinny2である。
  • 「バリデーションはどの位置で必要か」のやりとりで思ったこと。

    個人的にはapi単位での引数のバリデーションはあった方がbetterかなとおもう。 tokuhiromが 複数人で開発している場合では、クラスをかいた人と利用者がちがう場合があるので、validation は必要だとおもうけれど。と書いてるけどこれはまさにその通りで、 さらに言うと自分の書いたコードも時間が経てば他人が書いたコードと一緒だから バリデーションの情報から引数の情報を読み取れると、 そのapiに対する理解の速度は向上するとおもう。 実行速度とのトレードオフだったりはするだろうけど、無駄な引数渡したり、当は必要な引数を渡しきれなかったりして それで誤動作とかするくらいならバリデーションあったほうがいいんじゃないでしょうかね。 perlcodesampleさんの 動的言語の利点は、引数にどのような型でも渡せるので、静的言語のように型の指定がいらないということです。つまり、動的言語

  • メモリ使用量の確認

    サーバのメモリが思った以上に消費していたのでサックリ調べてたのですが 各プロセスのメモリ使用状況の調べ方としては ps aux --sort=-rss | head -40とやるとRSSのサイズでソートしてくれるのでheadとかでみてやればメモリ使用量が多い順に参照可能。 ただたんにps auxしただけだと見るのがしんどい。 topでもshift+Mで同じ感じでみれるのでそれでも良い。 (cを入力してプロセスの詳細を表示するとなおよい) あとはCoWに乗ってるかを調べたが、 http://d.hatena.ne.jp/naoya/20080212/1202830671 naoyaさんが紹介されている方法そのまんまでよいでしょう。 sudoして実行すること。 Cowはアプリの質にもよるが基的にはライブラリが共有メモリに乗ってればいいから アプリの質をみつつsharedなパーセントを調整出

    gfx
    gfx 2010/11/09
  • 1