追記: 解答編を下の方に書きました!!! 追記: お題に不備があったので変更しました>< あとgistに一式置いたので簡単にテストできます!! https://gist.github.com/hirose31/6232206 git clone https://gist.github.com/6232206.git oreno cd oreno ./te…
daemontoolsのsetuidgidは補助グループ(supplementary groups)権限をつけてくれないのですが、どうしてもつけたい時もあります。あるはずです。いくつか検討したのでそのメモです。 自分で書く! 結局この方法にしました。 [twitter:@kazuho] さんの setuidg…
The information presented herein is without any guarantees and I’ll take no responsibility if any harm happens to you or your users. If you find any factual problems, please reach out to me([twitter:@hirose31]) immediately and I will fix i…
同僚に「UNIXのfileとかsocketとかsignalとかの勉強(輪講)するのにいい本ないですかねー」ときかれて、自分はスティーブンスの『詳細UNIXプログラミング』読んだけど、もうだいぶ古い(例えば、sigaction(2)について書かれてない)し、リファレンス的に使うな…
本流の処理とは別に定期的に割り込み処理をしたいとき、例えば、ログを読みつつ整形して表示しつつ、n秒間にm行以上流れたら通知をするとかです。PerlだとAnyEventのようなイベントドリブンのフレームワークを使いたくなりますが、単純な定期割り込みなら se…
Perl徹底攻略 (WEB+DB PRESS plus)作者: 大沢和宏,cho45(さとう),小林篤,和田裕介,嶋田裕二(xaicron),牧大輔(lestrrat),奥一穂,広木大地,伊藤直也,長野雅広,藤原俊一郎,伊藤智章,まかまか般若波羅蜜,小飼弾,近藤嘉雪,中川勝樹,宮川達彦,tokuhirom,藤吾郎(gfx…
# ~/.gitconfig [alias] pull-dry-run = !"git fetch origin; B=$(git rev-parse --abbrev-ref HEAD); git diff --stat --summary ${B}..origin/${B}"
Redis は基本的にシングルスレッド、イベントドリブンモデルなので、時間のかかるLua スクリプトを実行したらどうなるかというのは想像に難くないのですが確認してみました。Redis は 2.6.14 です。 redis-cli eval 'while true do print("hello") end' 0な…
結論からいうと、 問い合わせた名前が見つからなかった場合のnxdomain応答は当該ドメインのSOAレコードが返ってきて、ネガティブキャッシュのTTLはその応答(SOA)のTTLになる です。 以下、詳細。nxdomain応答の際のSOAのTTLは、SOAの(TTLではなく)minimumで…
AWSで障害が起こったらナルハヤで知りたいよねってことで、AWSのService Health Dashboard http://status.aws.amazon.com/ はRSSフィードを提供してるので、それを定期的にチェックしてIRCに通知してくれるスクリプトを AnyEvent で書きました。(要ikachan) …
Apacheでreverse proxyするときに、バックエンドは同じなんだけど受けるパスに応じて別なタイムアウト値を設定しようとしてハマったのでそのメモです。以下、Apache 2.2.22 でのお話です。2.4でどうなってるか、どなたかご存知でしたら教えてください>< ま…
追記 2013-05-30 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widget…
unix domain socket経由でプロセス間でファイル記述子のやりとりができるので、コネクションをプーリングして、unix domain socket経由で別プロセスに貸し出すスクリプトを試しに書いてみました。 https://github.com/hirose31/socket-pooling poold.pl は起…
Dear EOL Perl (5.8, 5.10, 5.12) users, Devel::PatchPerl 0.86 was released yesterday.Now Devel::PatchPerl applies patch to fix CVE-2013-1667 against EOL Perls (5.8.8, 5.8.9, 5.10.1, 5.12.5).I suppose we will be able to get fatpacked patchpe…
use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Deepcopy = 1; $Data::Dumper::Sortkeys = 1; $Data::Dumper::Terse = 1; sub p(@) { my $d = Dumper(\@_); $d =~ s/\\x{([0-9a-z]+)}/chr(hex($1))/ge; print $d; } my %very_complex_data = …
起動時に --explicitly-allowed-ports オプションでへんてこなポート番号を指定すれば繋げるようになります。複数ポート指定したい場合はカンマ区切りです。自分はQuickSilver(betaが取れて1.0が出ましたね http://blog.qsapp.com/post/46268365849/quicksil…
my.cnfには[group]というオプショングループが書けて、グループ毎に設定ができます。オプショングループには特殊な[client]というのがあります。 [client]オプショングループは、すべてのクライアントプログラム(mysqldは除く)によって解読されます。これに…
キャメルケースなファイル、ディレクトリに囲まれている人は、シェルやエディタのパス名補完時に大文字小文字を同一視すると捗ります。とりあえずbashとemacsだけ。他は募集中です!! Shell bash .inputrc に set completion-ignore-case on zsh zstyle ':c…
プロセス間の期限付き排他ロック - (ひ)メモ というのを書いたのですが、id:fumiyas さんに欠陥の指摘を、id:viverさん(VIVERなつい…)に実装案をもらったので実装してみました!!! 引き続き、以下の件は募集しております それ○○でできるよ!! IPC::Lock::…
追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメ…
Re: [twitter:@riywo]'s UNIX Command Idioms ps auxwwwwwww number of "w" depends on my mood in that day :D ps auxwwwwwwwww -L netstat -tna / -una / -tnl / -tnap tar xvf tar zxvf / jxvf / Jxvf are boring trailing slash in rsync rsync -av file…
WEB+DB PRESS Vol.73にRedisの特集記事を書きました。2/23発売なので、もう書店に並んでいると思います。 http://gihyo.jp/magazine/wdpress/archive/2013/vol73 WEB+DB PRESS Vol.73作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあ…
昨日行われた「AWSでサービスを動かす 〜クラウドの中のサービスはAWSをどう使っているのか〜 « クックパッド開発者ブログ」で、「AWS Command Line Interface (aws-cli)をつかってみた」というタイトルでLTしてきました。 Introduction of aws-cli from Mas…
某所で 人間の脳には人の顔を識別するための特別な神経回路が最初から組み込まれていて、人の顔の違いを見分けたりというのが、他の図形よりも格段に高速に行えるようになっています。ということで、ログメッセージに顔文字を入れてみたら、なにこれすごいヽ…
#!/bin/bash sort_by_filename() { awk -F'/' '{print $NF" "$0}' | sort -k1 | cut -d' ' -f2 } produce_filepath_list() { cat <
勢いで Text::LBSV という perl モジュールを書いたけど、ただ bell を split してコロンで split するだけなのでわざわざこんな駄モジュールを使うまでもない、という・・・。 use Text::LBSV; use Time::HiRes qw(sleep); my @curry = qw(mouyan bon hause ja…
先日公開されたaws-cliのPerlのラッパーモジュールを作りました。 https://metacpan.org/module/AWS::CLIWrapper https://github.com/hirose31/AWS-CLIWrapper PerlでAWS EC2のAPIを叩くにはNet::Amazon::EC2が便利です。一昔前に比べると多くのAPIに対応し…
perlの配布物の中にあるINSTALLの"Building a debugging perl"セクションにある通り、-DDEBUGGING=ナニガシを指定すればよい。 http://perl5.git.perl.org/perl.git/blob_plain/HEAD:/INSTALL 指定する値によって、 "perl internal debugging code"とデバッ…
packageごとのメモリ使用量とリクエストを処理する前後の増分を確認できるPlack::Middlewareを作りました。時間が経つとぶくぶく太るプロセスがいるときに、犯人特定の助けになると思います。 https://github.com/hirose31/Plack-Middleware-MemoryUsage 要…
なぎおす!な!なんとなく〜 ぎ!ギャグでごまかそうと〜 お!おっさんどもが〜 す!すべってゆく〜ハイ!ガショー!! Nagios (nagios-plugins) にcheck_mysql_queryというのがあります。 http://nagiosplugins.org/man/check_mysql_query MySQLに任意のク…