正しくレビューをするということが難しいのはなぜだろうか

システム開発をしていると、大体において開発した物に対して識者からレビューという物が発生します。非常にわかりやすく言うと、できあがった物が適正かどうかを判断してもらうわけですね。ところがこのレビューという物、適切に行うのは非常に難しいのです…

openされたファイルとunlinkについて

tmpfileの挙動でオープンしたと同時にunlinkが発行されて後始末をしなくていいという話だったんですが具体的にどういう挙動なんだということが気になりまして調べてみたら、unlinkはファイルシステム上の名前の削除で、さらにどのプロセスもファイルをオープ…

tmpfileについて調べたこと

Linuxにおいて大体何かを組んでいると一時的に何かに保存したいとかメモリ食べたくないとか様々な理由で一時的なファイルを作成すると思います。一時的なファイルを作成すること自体はそこまで難しくなく/tmp/以下に好きな前をつけて扱えばいいと思うのです…

なんていうか

会社とかで長く生き続けるメンテしづらくてパフォーマンスでないコードのことだと思うけど、くそコード連呼されるのをみてて思うのは、死ぬ気でその集団を守ってきた老兵にその集団で生かされてきた若造が唾はいているようなものにみえて、おまえがそこまで…

3年たったのでかいてみる

正直、震災を忘れたい人もいるだろうからこの日のメディア震災一色はどうにかして欲しい気がする。被害地にいたわけでもないし間接的に関わっただけでも割としばらくの間は精神的にしんどかった。当事者の方々はどう思ってんのかは計り知れないし、どこに直…

ぎょっとしたこと

合気道の開祖である植芝先生はよく「教わったことは忘れろ」といったたぐいのことをよくおっしゃられていたようです。実はこれ分野違っても囲碁でも「定石は覚えて忘れろ」みたいな言葉があったりします。自分なりの解釈としては体に覚え込ませて意識しない…

Rubyの入門書でいいものを知りませんかね?という質問に対してどう答えるべきだったか?

Rubyの入門書でいいものが欲しいという話がちらっと流れてきて、親切な人たちが多い集まりなので、鉄板?であろう「プログラミング言語Ruby」からはじまり「メタプログラミングRuby」、そしてるびまの「Rubyの歩き方」はてはRHGまででてきた。プログラミ…

YAPC 2013年を終えて

まずは、スタッフ関係者の皆様本当にお疲れ様でした。今回レポーターと言うかたちで参加させていただきました。毎年、気がつくと上がってくるgihyoのレポート記事は小人さんが動いているわけではなくてメンバーに登壇者が多く非常に忙しい中で発表の内容をき…

perlのhash randomizationに対する勘違いをしていた

perlの5.18からhash randomizationが導入されるとのことで、同一hashに対しても毎回keys,values,eachをやるたびに結果が変わるんだろと思ってたんですが、hash sliseを行った場合なんかやってもちゃんと動作します。 use strict; use warnings; use Data::Du…

p5_Cnsffcfでservice情報をまとめてかけるようにした。

設定ファイルの中に重複記述が多すぎるのでservice情報をまとめるように変えました。 --- host_and_groups: load_balancer: - PING cache-01: - PING services: PING: check_command: check_ping!100.0,20%!500.0,60% service_description: PING https://git…

crontabで設定しても全く反応しない原因はcrondが停止していたことだった

cronが動かないなーって悩んでて、 スクリプト直に叩いても動くし/var/log/cronみてても読み込まれてるし、 意味が分からなくて、statusしてみたら。。。 /etc/rc.d/init.d/crond status crond は停止しています 勘弁してください。 止まるもんなのかこれ。。…

agの--ackmateというオプションは何なんだ

agには--ackmateというオプションが存在しててつけるとこんな感じで出力されるわけですが、なんかのformatぽいんだけどなんだこれ。事前準備 git clone git://bogomips.org/unicorn.git cd unicorn ag USR1 t/t0006-reopen-logs.sh 24:t_begin "send reopen …

agでの色設定オプションとちょっと調べたこと

このhelpで出てくるDefault 1;33という表記が気になったのでメモ。 ag --help --color-line-number Color codes for line numbers (Default: 1;33) --color-match Color codes for result match numbers (Default: 30;43) --color-path Color codes for path…

%SIGとkill -lでそれぞれ登録されているシグナル

kill -lで一覧が見られると言うことで%SIGもだしてやればみられればおもしろいかなとおもってだしたんだけどググってもひっかからん。。 %SIG perl -e 'print join " ", keys %SIG' NUM63 TRAP NUM42 URG STOP NUM39 NUM62 NUM43 USR2 NUM57 NUM56 RTMAX NUM…

Cowの確認

fork(fork(2))したときに親プロセスのコピーとして子プロセスを生成する。ただ、メモリ上の内容をすべてコピーするのはもったいないのでCowって仕組みがあるんだけど、これ子プロセスのほうで内容書き換えたらアドレスがかわるかなと思ってたんだけどかわら…

nginxでdebug情報を出させたいときの設定

nginxで調査等してるときにもうちょっと細かいアクセス情報とうみたいというときは下記のようにerror_logの設定の末尾にdebugを追記してreloadするとこれでもかというぐらいdebug情報をはいてくれます。(ちなみにdebugオプションをつけてコンパイルしないと…

p5_Cnsffcfでグループ単位だけじゃなくて特定のホストにたいしてもルールを適用できるようにした

server_list.yamlにだけ依存して設定したかったんですが特定のホストだけこの設定をしたいという要求もあるだろうなということに気づいて、グループ単位だけじゃなくて特定のホストにたいしてもルールを適用できるようにしました。rules.yaml --- load_balan…

CloudForecastのserver_list.yamlを元にNagiosの設定ファイルを生成するやつを書いてみた

監視系を手動でポチポチポチポチポチポチポチポチ追加するのが非常に面倒になってきましてNagiosは設定ファイルから監視対象追加できるからどうせCloudForecastでモニタリングをすることは確定しているのでじゃあこっから生成してやれば漏れもなくなるし楽で…

perlでMongoDBの簡易的なviewerを作ってみた

MongoDBはメモリ食べたりメモリ食べたりして運用の方々に煙たがられている感じがしていますが、開発環境において開発者以外の方にログや開発に必要なデータをリアルタイムに見せてあげる用途としてはわりと使えるんじゃないかと思っていてとりあえずいじられ…

rubyで動的にクラス名を使いたいときはObject.const_getつかうらしい

perlで動的にクラス名を決めたいときはこんな感じに突っ込んで呼び出してやるといけるんですけど、 use strict; use warnings; package Hoge; sub hello { print "hello\n"; } package main; my $str = "Hoge"; $str->hello(); これ、rubyで同じことやろうと…

「Perl をゆるふわと語ろう」という趣旨のチャットルームがあるのでいってみるといいとおもいます。

Perl ユーザといえば IRC で囲ってるイメージがありますが実はそうではなく、単にシャイなだけなんです。(要出典) Perl をゆるふわと語ろうというチャットルームが Lingr に出来たので、Perl に興味のある方は参加してみてはどうでしょうか。 Perlの話題を日…

perlのLWP::UserAgentでshow_progressを使うと経過がみえて便利

LWP::UserAgentはいろいろ便利なメソッドがついてるんですが、その中にshow_progressというメソッドがついていましてこれは取得するまでの途中経過を表示してくれるんですね。たとえば、すく例ピングなりproxyサーバーとか作ったときに、特定のサイトだけリ…

fluentをyardで可視化してみた

fluentでこの処理どうなってるんだって思って調査してて、全体を俯瞰してくれる図がほしいなぁと思って調べていたらyardってものが引っかかりましてこれを使うとクラス図を作れるようなんですね。とりあえずローカルのMacでグラフを見たかったので関連モ…

fluentdでfluent-plugin-mongo使おうとしたらちょっとはまった

rubyなれてる人ならはまらないんだろうけど、fluentdでfluent-plugin-mongoを入れてつかおうかなぁと思って gem intall fluent-plugin-mongo して、fluentdを再起動したら下記のように言われるわけです。 **Notice: C extension not loaded. This is require…

そういや昔perlで棒倒し法でマップつくったのおもいだした

蓄積されたファイルみてたらでてきたんだけど、この時何かをさんこうにしてたきがするんだけど今となっては思い出せない。。

perlの最新バージョンでの運用についてどうすればはまらずにいられるんだろうか

最近はperlbrew+cartonで運用するのがはやりなんじゃないかと思ってるんですが、これの運用するばあいおそらく、perlbrewをインストールして、cartonでプロジェクト内部のextlibへモジュールをいれて追加モジュールをは全部そこへ入れるような形になるかと思…

Volansさんのhooksで影響範囲のhostsを知ることができるようにした

volansさんはコマンドをまとめておくツールなんですが、実行後にどこに何をやったか表示して欲しいことは多々あるだろうということでhooksに登録するhookへhostsを渡すようにしました。これでコマンド実行後に今実行したことを把握できるhookが記述できます…

Volansをコマンドを生成できるツールにした

Volansの従来バージョンだとすべてのコマンドがベタ書きでプロジェクトごとに使いまわすなどといったことが出来なかったので、以下のように第2引数以降を設定したコマンドの引数にするようにしました。 volans deploy Hoge 設定ファイルが以下のようにかわ…

VolansというCL(deploy にも使えるよ)toolを作ってみた

最近deployをどうしたらいいかなぁとか悩んでて、(新しく出たcapistranoを使おうかと思ってたんですが、プロジェクトに直接突っ込む形になってたりしてて、サーバーの情報は一元化してもってたいのがあってやめました。) なんかみてて思ったのは、この手のツ…

シェル内のディレクトリ移動で戻りたい場合についてcontrol operatorの()でやれば頑張らなくていいことに気づいた

タイトルそのまんまなんですけど、最近shellを書くことが多かったんですが、いろんな都合上最初の実行ディレクトリに戻ってきたいとか割りとあるので一生懸命`dirname ${0}`とか使って実行ディレクトリ保存して、戻ってきたりとかしてたんですけど、それfork…