タグ

nekokakのブックマーク (2,081)

  • Clutchの仕様と構想と(その2) - blog.nekokak.org

    投げっぱなしrequest まぁ、Gearmandで言うところのdispatch_backgroundである。 clientはworkerにリクエストを投げる、 workerはリクエストを受け付けた事だけをclientに通知し、client - workerの接続を終了する。 workerはその後clientからのリクエストを処理する。 こうすることでclientはworkerの処理結果は受け取れないが、即時に処理を終了させることができる。 usecaseとしては、ページングの際の先読みキャッシュを作ったりとか。 multi request 複数のworkerに対してまとめてリクエストを投げたいケースもある。 一つの方法としてはclientが対象となるworkerにまとめてリクエストを投げる方法。 各workerへの接続をそれぞれ持ち、selectかけつつぐるぐるループさせて、read

    nekokak
    nekokak 2012/01/10
    blogged
  • Clutchの仕様と構想と(その1) - blog.nekokak.org

    Clutchを作ってる上で、やり残しの部分だったり、懸念点だったりもろもろが頭の中に残っているので 現状の仕様等をまとめつつ書きだしてみる。 長くなりそうだからその1としている。 なぜGearmanではないのか ClutchはGearmanのように中間daemon(gearmand)を基持たない。 Gearmanの場合はclientは実際に処理を行うworkerがどこにどれだけ居るかを知る必要はなく、 gearmandの居場所さえ知ればよい。 clientがgearmandにリクエストを投げれば、あとはgearmandが対象となるworkerにrequestを回す。 自分としてはこのgearmandという存在がうっとおしく思えた。 例えばちょっとしたツールでjob queueを使いたい場合、workerプロセス以外にもgearmandを起動する必要がある。 別にそれくらい起動しとけばいい

    nekokak
    nekokak 2012/01/08
    blogged
  • perlpod - the Plain Old Documentation format - Perldoc Browser

    CONTENTS NAME DESCRIPTION Ordinary Paragraph Verbatim Paragraph Command Paragraph Formatting Codes The Intent Embedding Pods in Perl Modules Hints for Writing Pod SEE ALSO AUTHOR #NAME perlpod - the Plain Old Documentation format #DESCRIPTION Pod is a simple-to-use markup language used for writing documentation for Perl, Perl programs, and Perl modules. Translators are available for converting Pod

    nekokak
    nekokak 2012/01/04
    pod書くときはここを参考にするといいよね
  • Clutch v0.01 released - blog.nekokak.org

    nekokak
    nekokak 2012/01/04
    blogged
  • 2011の振り返り - blog.nekokak.org

    ちょっと落ち着いたので振り返りなどしてみようかとおもう。 1月 転職を決意し動き出す Teng作ってたみたい Jonkも触ってた 2月 退職の準備とおもいきや10日で1サイトつくるとかやってた SQL::Objectとかつくってた 3月 転職 地震 4月 HandlerSocketに興味を持ってたみたい CPANモジュールガイド献もらったり tmux入門してすぐにscreen回帰した MySQueueとかネタでつくったみたいだ 5月 Yokohama.pmでHandlerSocketの発表とか 6月 Redisの検証をしてた Hokkaido.pmに参加する準備してた DBIx::Handlerを作ったりしてた 7月 Hokkaido.pmに参加。飯が美味かったなり 8月 Web+DBにJobQueueについて寄稿 9月 Test::Function後のTest::Attribute::

    nekokak
    nekokak 2012/01/03
    blogged
  • あけましておめでとうございます - kanblr

    nekokak
    nekokak 2012/01/01
    初日で終わるに1000ペセタ!
  • 接続しているネットワークの変化をトリガとして、任意のスクリプトを実行する方法 - 例えばSSHトンネルの掘り直し - (ひ)メモ

    いままで、 小さいターミナルでこんな感じでSSHのトンネルを掘って while true; do rebuild-ssh-config; ssh -N -o "BatchMode yes" -L ... -R ... TUNNELHOST; echo retry; sleep 3; done ネットワークが変わった場合(会社に着いたとか家に着いたとか)、手動でkillall sshしてトンネルのsshプロセスを殺して掘り直す ということをやっていたのですが、 無線APによって自動でhostsを変える方法 - unknownplace.org を読んで、ネットワークが変わったタイミングでスクリプトを実行する方法を知った(id:typester++)ので、この手法を使って自動的にkillall sshするのと、あとついでに、ターミナルの中で実行してたsshプロセスを、AppleScriptでラ

    接続しているネットワークの変化をトリガとして、任意のスクリプトを実行する方法 - 例えばSSHトンネルの掘り直し - (ひ)メモ
    nekokak
    nekokak 2011/12/29
  • distributed job system. Clutch - blog.nekokak.org

    https://github.com/nekokak/p5-Clutch 公開してみた。 あんまり触る時間なくてこのまま腐るなら出してしまおうということでだしてみました。 まぁ何をやる人なのかをざっくり書くと、 gearmanみたいな中間管理職daemonを立てずに client - workerが直接通信してjob queueを投げる感じです。 gearmandみたいなのがいないので、基的にworkerがどこにいるのかとかはclient側が管理する必要があるけど ちょっとしたツール作るときとかそんなに管理に困るわけでもないので。 前回のHokkaido.pmでの発表でだいたいやりたい内容とか書いてるのであわせてどうぞ http://nekokak.org/presen/hokkaido06/ (発表の時からは微妙に仕様はかわってるけど。) あとパフォーマンスとか今のところ追求していない

    nekokak
    nekokak 2011/12/29
    blogged
  • Rudixを利用して、Xcodeの無いMacにUnix系ソフトウェアを導入する - Glide Note

    Rudix: The hassle-free way to get Unix programs on Mac OS X MacでUnix系のソフトウェアを利用するときはHomebrewかMacPortsなどを利用するのが一般的かと思いますが、 両方ともXCodeを必要として、MBAといったディスク容量の少ないモデルだと、容量バカいのXCodeを入れるのはためらわれます。 私自身、HDD容量に余裕のあるMac miniにはXCodeとHomebrewを入れていますが、MBAにはディスク容量の問題からXcodeを入れていません。 (そもそも外部サーバにssh接続して、作業しているのでMacでコンパイル作業しないってのもありますが) しかしながらXcodeを入れてないMacでもrsync3系やtmuxなど、Unix系のソフトウェアを利用したい事が少なからずあるので、 そんな時に利用するのがRu

    nekokak
    nekokak 2011/12/29
  • Perl Advent Calendar 2011 - Less Tedium, More Transactions

    A frequent pattern when writing database-backed applications with the DBI is to connect to the database and cache the database handle somewhere. A simplified example: package MyApp::DB; use DBI; use strict; my $DBH = DBI->connect('DBI:SQLite:dbname=myapp.db', '', '', { PrintError => 0, RaiseError => 1, AutoCommit => 1, sqlite_unicode => 1, }); sub dbh { $DBH } Just load MyApp::DB anywhere in your

    nekokak
    nekokak 2011/12/23
  • Registrant WHOIS contact information verification

    nekokak
    nekokak 2011/12/15
    cool
  • RENAME TABLEでカジュアルな運用 @mysql-casual#15 - blog.nekokak.org

    やぁ。可愛いアイコンでお馴染みの@nekokakだよ。 mysql-casualとか言ってるけどカジュアルな記事が@oinumeさんくらいしかないよね。 ドン引きだね'`,、('∀`) '`,、 ということでガクンと敷居を下げようって感じで超絶カジュアルな話をしてみようと思うんだ。 カジュアル運用していると、「あれなんかこのテーブルまじレコード数おおすぎね?」 とかあるあるですよね。 そこでカジュアルにcountして見るわけです。 InnoDBのテーブルになのにそれもmsaterに対して。 カジュアルですね。 mysql> select count(*) from accesslog; +----------+ | count(*) | +----------+ | 11676738 | +----------+ 1 row in set (1 min 36.99 sec)1分半くらいかか

    nekokak
    nekokak 2011/12/15
    blogged
  • quick hackの必要性 - blog.nekokak.org

    ふと思ったのでメモっておく位の感じ。 仕事ではquick hackって重要だなぁと。 業務で当に必要と思うような仕組みがあったとして、それをすぐに導入できるかは大人の事情とかがあり なかなか難しかったりするのが普通じゃないでしょうか? 必要な仕組みだから周りだったり上司だったりを説き伏せて正しい(?)手段で導入するのももちろん正道だとおもいますが、 それがなかなかムズカシイのも世の常かなぁと。 自分は必要だとおもっても、周りにその問題意識があるかどうかは別なので。 好き勝手やっていいよって会社であれば別なんでしょうけど、そういう会社って結構珍しいんじゃないかなぁ。 もちろん相談出来る相手がいて、色々と相談や議論をし、協力者を見つけるのもいいし、そういう相手がいるんであればやるべきだとは思います。 そうすれば自分が思っていなかったような問題点なんかが出てきて考えの幅が広がるかもしれない。

    nekokak
    nekokak 2011/12/13
    blogged
  • Hokkaido.pm #06 - blog.nekokak.org

    自腹で参加してきました。北海道の人から事前に、「コケるなよ*2」と言われ天気予報みたら普通に最高気温が氷点下だったのでかなりビビってたんですが、 お陰様でコケることもなく、寒さにもなんとか耐えることができました。 帯広はもっと寒いとか。 今回は最近自分が作ったClutchというdistributed job queueを開発に至る経緯/設計方法/仕組/簡単なデモで紹介させて頂きました。 コードはまだどこにも公開してないのですが、書きなぐったままなので、もうちっと整えたらだそうかなと思っています。 Job QueueだったりMessage Queueだったりを使ってる人自体あんまりいない風味だったので どこまで響いたかわからないのですが&サービスが大きくないから使うまでも無いんですという話もお聞きしましたが、 そういうアーキテクチャがあるんだとココロの片隅にでもあると今は必要無くても何かあっ

    nekokak
    nekokak 2011/12/12
    blogged
  • oinume journal

    Raycastを使い始めて1年経ったので、どういうことに使っているかを振り返ってみる。去年書いた AlfredからRaycastに移行した - oinume journal の記事から少し使い方が変わっているところもあるのでメモがてら。 基的な使い方 Cmd + QをRaycast起動のショートカットとして割り当てている。Pro版は使っていないのでAI機能などは使ったことがない。 ブラウザのブックマーク検索など、よく使うけどHotKeyを割り当てるほどでもないRaycastコマンドはbmのようにAliasを設定している。 Cmd + QでRaycastを起動してbmと入力するとブックマークの検索ができるので楽ちん アプリケーションランチャー機能 アプリケーションを起動するときのランチャーとして使っている。よく使うアプリにはHot Key(ショートカット)を割り当ててる。 Clipboar

    oinume journal
    nekokak
    nekokak 2011/12/12
  • Containerという名のPerlモジュール群 | hirobanex.net

    的には各PODを読めばいいと思うんですが、以下ではちょっとわかりづらい機能や注意したいことをあげていきたい思います。 インターフェースについて 個人的には、上述した例のようなContainerモジュールを継承したクラスを作成するサブクラス化インターフェースがあればいいんじゃないかな?と思うんですが、以下のようなオブジェクト型のインターフェースもあったりします。 use Object::Container; # initialize container my $container = Object::Container->new; # register class $container->register('HTML::TreeBuilder'); # register class with initializer $container->register('WWW::Mechanize

    nekokak
    nekokak 2011/12/12
  • 株式会社ディー・エヌ・エーに入社しました - (ひ)メモ

    12月1日付けで株式会社ディー・エヌ・エーに入りました。 入社して1週間が経ち、少しずつ環境にも慣れてきたところで、優秀な仲間たちと楽しく充実した日々を送っています。 自分の仕事はこれまで通り、コードも書ける(書きたい)インフラエンジニアです。 まだ把握しきれていませんが、想像していた以上のトラフィック、サーバー台数のスケールで、これほど大きなシステムに関われることに興奮して鼻血が出そうな毎日です。 特に前職では人数が少なかったせいもあり、エンジニアリング以外のこともいろいろとやりました(おかげでいろいろと経験できてよかったです)が、ディー・エヌ・エーではエンジニアリングに集中し、自分のこれまでの経験と知識と勘を活かし早期にバリューを出せるように努力しつつ、優秀な仲間たちと切磋琢磨し、より自分の腕に磨きをかけていきたいと思っている所存です。 また、ブログや勉強会等しばらくおやすみしていまし

    株式会社ディー・エヌ・エーに入社しました - (ひ)メモ
    nekokak
    nekokak 2011/12/09
    よろしくお願いします!
  • #08 search - Articles Advent Calendar 2011 Teng

    今日はsearchメソッドを紹介します。 まず、searchメソッドはsingleのようにPRIMARY KEYで1行取得するわけではないが、 そんなに複雑じゃない場合に利用するといいと思います。 my $itr = $teng->search('user', +{name => 'nekokak'}, +{order_by => 'id'}); # SELECT * FROM user WHERE name = 'nekokak' ORDER BY id; のように利用します。 こうすることでnameがnekokakな人をまとめて取得しイテレータ経由でレコードにアクセス出来るようになります。 また、第三引数にオプションを指定でき、ORDER BYなどを指定すことが可能です。 LIMIT / OFFSETを指定したい場合は my $itr = $teng->search('user', +

    #08 search - Articles Advent Calendar 2011 Teng
    nekokak
    nekokak 2011/12/08
    #08うpしますた
  • ベンチどうしますか? - Articles Advent Calendar 2011 Dbix

    どうもnekokakです。 みなさんDBIを使っているコードのベンチマークってどうしてますか? SQLのチューニングであればいいのですが、ロジックのベンチマークを取りたい時に 実際にdatabaseにクエリなげてしまうと、ネットワーク通信等が発生し、細かいロジックのチューニングの邪魔になることがあります。 たとえば私はTengのチューニングをするときに、バックエンドのdatabase性能なんてどうでもよくて、 プログラムの性能をみたいわけです。 そんなときに便利なのがTest::Mock::Guardです。(え Testというnamespaceにありますが、やっていることはコードをさしかえることなので これをつかって実際にデータベースにクエリなげるところとかをフガフガします。 例えばTengのベンチマークを取る時に試したコードは以下のようなものです。 #! /usr/bin/perl us

    ベンチどうしますか? - Articles Advent Calendar 2011 Dbix
    nekokak
    nekokak 2011/12/07
    かいたーよ
  • #06 search_by_sql / search_named - Articles Advent Calendar 2011 Teng

    Tengではsingleメソッドなどを使うと自分でSELECT文を書く必要が無く、 内部でクエリを自動生成し、databaseに問い合わせをおこないますが、 複雑なクエリ担ってきた場合、クエリビルダーをつかってSQLを生成すると問題が発生することがあります。 JOINするようなクエリをクエリビルダで生成する場合、 実際のPerlのロジックからどういうSQLが生成されるかを考えるのが以外に面倒だったりします。 まぁちょっと込み入ったクエリを発行したい場合は生のSQLを使うのが一番だと懐います。 そういった場合にTengではsearch_by_sqlメソッドを利用します。 my $itr = $teng->search_by_sql('select * from user where id = ?', [qw/1/]); search_by_sqlの返却値はTeng::Iteratorのオブジ

    nekokak
    nekokak 2011/12/06
    #06 up