2013-01-01から1年間の記事一覧

快適mysqlコマンド★カスタマイズの決定版

この記事は MySQL Casual Advent Calendar 2013 の25日目の記事です。自分の過去のブログも含めて、mysqlコマンドのカスタマイズについていろいろな情報がありますが、わたしがオススメの秘伝のタレをまとめたいと思います。是非、ご参考に。 定型文(SQL)の…

ELBのIPアドレスの変更を監視するやつを書きました

https://github.com/hirose31/monitor-elb-address cpanm -l local --installdeps . cp config-sample.pl config.pl vi config.pl ./monitor-elb-address -c ./config.plな感じで使えて、列挙した FQDN の IP アドレス(Aレコード)の変更を通知します。IPア…

Nginxでproxy_passにホスト名を書いた時の名前解決のタイミング

Nginx 1.4.2で試しました。ネームサーバーは、ローカルのunboundをlocal-zone, local-dataを使って簡易コンテンツサーバーにして試しました。 local-zone: "oreno." static local-data: "api.oreno. 30 IN A 192.0.2.11" # local-data: "api.oreno. 30 IN A …

galloc - Gachapin alloc というのを作りました

Overriding System Functions for Fun and Profit | Hacker Boss をみて自分も試してみたくなったので書きました。 https://github.com/hirose31/galloc malloc(3)するとガチャピンが、free(3)するとムックがSTDERRに報告してくれます。便利!!1 $ make ga…

NATインスタンス冗長化の深淵な話

AWS Casual Talks#1を開催しました - まめ畑 http://d.conma.me/entry/2013/11/02/140136 に参加して『NATインスタンス冗長化の深淵な話』というLTをしてきました。 Redunduncy of NAT instance on AWS/VPC from Masaaki HIROSE これまで何度か発表をしてき…

SSLプロセッサが付けてくれる/に付けてほしいHTTPヘッダ

付けてくれるやつ やつ ヘッダ 値 備考 AWS ELB X-Forwarded-Proto https Apache/mod_ssl X-Forwarded-HTTPS on 要設定: RequestHeader set X-Forwarded-HTTPS %{HTTPS}s 付けて欲しいやつ やつ ヘッダ 値 備考 Plack::Middleware::ReverseProxy X-Forwarded…

秘伝のタレ化していたmodule-setupをDist::Zilla化してみた (仮)

今まで秘伝のタレ化したmodule-setupのテンプレでモジュールのひな形を生成してたんですが、なういMakefile.PLやBuild.PLの書き方とかcpanfileとかMYMETA.*とかそのへんもろもろに追従するのがしんどくなってきたので、milla (Dist::Milla) を元に秘伝のタレ…

プロセスが起動した日時を知りたい

プロセスの起動日時は ps の START カラムでわかりますが、24時間経過すると表示上時刻がわかりません。 $ ps auxwwwwww | grep -e PID -e redis-server USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND hirose31 775 0.1 0.0 36328 2008 ? Sl Sep2…

YAPC::Asia 2013でLT『How to inspect a RUNNING perl process』してきました&スピーカーへのお願い

YAPC::Asia 2013でLT『How to inspect a RUNNING perl process』してきました How to inspect a RUNNING perl process / YAPC::Asia Tokyo 2013 http://www.slideshare.net/hirose31/inspect-runningperl ハングアップとかメモリバカ食いとか、稀にしか発生…

ファイル指定で、ページキャッシュにのっているか確認したり追い出したり

ファイル指定で、ページキャッシュにのっているか確認したり追い出したりするPerlモジュールを書きました。 https://metacpan.org/release/Sys-PageCache https://github.com/hirose31/Sys-PageCache Linux なら動くはずですが、動かなかったら教えてくださ…

AWS::CLIWrapper-1.00 をリリースしました

先日 awscli が正式リリースされたので、 http://aws.typepad.com/aws_japan/2013/09/new-aws-command-line-interface-cli.html Perlのラッパーの AWS::CLIWrapper-1.00 をリリースしました。 https://metacpan.org/module/AWS::CLIWrapper awscli にはこれ…

撮った写真と動画の管理とかバックアップとか

写真 デジカメメイン機、サブ機共にEye-Fiを使っていて、撮ったら再生モードで放っておけばEye-Fiが写真データをアップロードしてくれます。Eye-Fiからアップロードされたデータは、拙作のDoumeki (百目鬼)が受けます。Doumekiは自宅サーバーで動いていて、 …

シェルスクリプトでハマった件→【募】ステキな回避方法

追記: 解答編を下の方に書きました!!! 追記: お題に不備があったので変更しました>< あとgistに一式置いたので簡単にテストできます!! https://gist.github.com/hirose31/6232206 git clone https://gist.github.com/6232206.git oreno cd oreno ./te…

補助グループ権限もつけてくれるsetuidgidのようなもの

daemontoolsのsetuidgidは補助グループ(supplementary groups)権限をつけてくれないのですが、どうしてもつけたい時もあります。あるはずです。いくつか検討したのでそのメモです。 自分で書く! 結局この方法にしました。 [twitter:@kazuho] さんの setuidg…

How to defend SSL/TLS servers against BEAST, CRIME and BREACH attack for Nginx

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プログラミング』の原書『Advanced Programming in the UNIX Environment』(通称APUE)の3rd Editionが出てました

同僚に「UNIXのfileとかsocketとかsignalとかの勉強(輪講)するのにいい本ないですかねー」ときかれて、自分はスティーブンスの『詳細UNIXプログラミング』読んだけど、もうだいぶ古い(例えば、sigaction(2)について書かれてない)し、リファレンス的に使うな…

setitimer - 本流の処理とは別に定期的に割り込み処理をしたいときに

本流の処理とは別に定期的に割り込み処理をしたいとき、例えば、ログを読みつつ整形して表示しつつ、n秒間にm行以上流れたら通知をするとかです。PerlだとAnyEventのようなイベントドリブンのフレームワークを使いたくなりますが、単純な定期割り込みなら se…

『Perl徹底攻略』と一息にファイルを書き換えるIO-File-AtomicChange

Perl徹底攻略 (WEB+DB PRESS plus)作者: 大沢和宏,cho45(さとう),小林篤,和田裕介,嶋田裕二(xaicron),牧大輔(lestrrat),奥一穂,広木大地,伊藤直也,長野雅広,藤原俊一郎,伊藤智章,まかまか般若波羅蜜,小飼弾,近藤嘉雪,中川勝樹,宮川達彦,tokuhirom,藤吾郎(gfx…

git pullする前にローカルレポジトリにどんな変更が行われるか確認する

git

# ~/.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 は基本的にシングルスレッド、イベントドリブンモデルなので、時間のかかるLua スクリプトを実行したらどうなるかというのは想像に難くないのですが確認してみました。Redis は 2.6.14 です。 redis-cli eval 'while true do print("hello") end' 0な…

DNSのネガティブキャッシュの残存時間(TTL)はどのようにして決まるか

dns

結論からいうと、 問い合わせた名前が見つからなかった場合のnxdomain応答は当該ドメインのSOAレコードが返ってきて、ネガティブキャッシュのTTLはその応答(SOA)のTTLになる です。 以下、詳細。nxdomain応答の際のSOAのTTLは、SOAの(TTLではなく)minimumで…

monitor-aws-status - AWSのService Health Dashboardに異変があったらIRCで通知してくれるヤツ

AWSで障害が起こったらナルハヤで知りたいよねってことで、AWSのService Health Dashboard http://status.aws.amazon.com/ はRSSフィードを提供してるので、それを定期的にチェックしてIRCに通知してくれるスクリプトを AnyEvent で書きました。(要ikachan) …

Apacheでreverse proxyするときに、受けのパスに応じて異なるタイムアウト値を設定する方法

Apacheでreverse proxyするときに、バックエンドは同じなんだけど受けるパスに応じて別なタイムアウト値を設定しようとしてハマったのでそのメモです。以下、Apache 2.2.22 でのお話です。2.4でどうなってるか、どなたかご存知でしたら教えてください>< ま…

死んでもプロセスを上げ直さないdaemontoolsのrunファイル

追記 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経由でプロセス間でファイル記述子のやりとりができるので、コネクションをプーリングして、unix domain socket経由で別プロセスに貸し出すスクリプトを試しに書いてみました。 https://github.com/hirose31/socket-pooling poold.pl は起…

How to prevent premature hsplit issue for EOL Perls

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…

p

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 = …

ChromeでへんてこなポートにHTTPで繋ぎたい

起動時に --explicitly-allowed-ports オプションでへんてこなポート番号を指定すれば繋げるようになります。複数ポート指定したい場合はカンマ区切りです。自分はQuickSilver(betaが取れて1.0が出ましたね http://blog.qsapp.com/post/46268365849/quicksil…

クライアントにはdefault-character-setを指定したいけどmysqlbinlogには怒られたくない

my.cnfには[group]というオプショングループが書けて、グループ毎に設定ができます。オプショングループには特殊な[client]というのがあります。 [client]オプショングループは、すべてのクライアントプログラム(mysqldは除く)によって解読されます。これに…

大文字小文字を同一視して補完したい!!

キャメルケースなファイル、ディレクトリに囲まれている人は、シェルやエディタのパス名補完時に大文字小文字を同一視すると捗ります。とりあえずbashとemacsだけ。他は募集中です!! Shell bash .inputrc に set completion-ignore-case on zsh zstyle ':c…