過去の 3月2日より。
WiKicker / DiKicker の Log::Log4perl 対応作業。
ということで、warn -> Apache のエラーログに流れている警告メッセージも、Log::Log4perl の方に流して、好きに消せるようにしておくことにする。
SpeedyCGI 下で動かす事を想定して初期化は、init_once で行うようにする。 可能な限り早く初期化すべきなので、設定ファイル名/設定文字列はプロパティファイルに記述しておくのではなく、CGI プログラムで最初に生成する Controller オブジェクトの初期化パラメータで指定するように。
$SIG{__WARN__}を設定して、warn のメッセージを Log::Log4perl に送る。 最初はほぼ FAQ の例のまま、以下のように記述。
use Log::Log4perl qw(:easy); BEGIN { $::SIG{__WARN__} = sub { local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1; WARN(@_); }; }
しかし期待していた通りに動かず悩む。原因は前述する init_once との絡み。 use Log::Log4perl qw(:easy) した時点でデフォルトの初期化が行われてしまうため、初期化済みになってしまって init_once での設定処理がスキップされていたのが問題。
use Log::Log4perl; BEGIN { $::SIG{__WARN__} = sub { local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1; if (Log::Log4perl->initialized) { Log::Log4perl->get_logger->warn(@_); } }; }
と修正。 get_logger も暗黙的に初期化を行うので、init_once する前に warn されるとやはりデフォルトの初期化がおこってしまう。 それではまずいので initialized が真(=初期化済み)の時のみロギングするようにする。 ただしこれだと init_once する前の warn メッセージが失なわれる(STDERR あたりに print するようにすればいいかもしれない)。
CGI::Carp も $SIG{__WARN__} を上書きするので同時に使えない。 以前に use していたのが残っていてはまる。
NaneyOrgWiki、nDiki でロギングしはじめたところ、CGI プログラムの処理はきちんと成功しているもののその後(?) speedy_backend が core dump してしまう事があるようだ。 最初は $::SIG{__WARN__} の設定あたりに問題があるのかと思ったが、Log::Log4perl::Appender::Synchronized を使わないようにしたところ core を吐かなくなった。
IPC::Shareable、IPC::Semaphoreなんて使っているしやっぱりこれが怪しい。 とりあえず外しておくことにする。
しかし何らかの方法でシンクロしておかないとログファイルが壊れるはずだから、本当はどうにかしなければならないな。 もっと簡単に flock とかで排他制御する Appender とか無いのかな。 自分で書くしかない?
仕事がらみの調査で、丸の内オアゾの丸善丸の内本店に行ってきた。 エスカレータにのっていて、フロアの高さというかn階の天井とn+1階の床の間のギャップの広さにビックリした。
店内、書棚は天井近くまであり地震を考えるとちと恐ろしい。
ゆっくり見てまわったり、宇宙航空研究開発機構の情報センター JAXA i をのぞいたりもしたかったが時間の都合でパス。
欲しい書籍を探して三省堂書店神田本店へ移動。
WiKicker の開発でログインフォームとそのスタイルシートの検討をしているうちに、全体のスタイルシートに興味が移ってしまった。
nDiki の日付見出し部分の背景画像をグラデーションに変更。 ページの印象がちょっと明るくなったかな。
それからサイドバーを右側に移動。 基本的には、今までメイン部分の左マージンを大きくとって position: absolute; で左側にサイドバーを配置していたところを、メイン部分の右マージンを大きくとるようにして、サイドバーを右側からの position: absolute; にしたぐらい。
左側にサイドバーがあると、メインである記事を読む時にちょっと目がチラチラするかなと以前からちょっと感じていたので。
変えてすぐは自分でもかなり違和感があったが、しばらくいじっている間に慣れてきた。
WiKicker の認証ドライバの1つとして、まずは Apache の htpasswd パスワードファイル(AuthUserFile ディレクティブ用パスワードファイル)形式のものを作成することにする。 これなら htpasswd で作成することができるので、最悪最初の段階では WiKicker に登録・削除機能を入れないで済む。
Perl からこのパスワードファイルを扱うモジュールとしては Apache::Htpasswd や、Authen::Htpasswd がある。 CPAN にある CGI-Application-Plugin-Authentication は前者を、Catalyst-Plugin-Authentication-Store-Htpasswd では後者を使用している。
機能的にはほぼ同じか。 Authen::Htpasswd の方がユーザ名に対応するオブジェクトを取得するメソッドがあり便利といえば便利だが、まあなくても困らないだろう。
ということで今回は、依存モジュールの少ない Apache::Htpasswd を選択した。 Perl 5.005_03 にはない warnings プラグマが使われているが、Htpasswd.pm の
use warnings;
1行を削除すれば問題無し。
FreeBSD 4.4-RELEASE #3 + Perl 5.005_03 + Apache-Htpasswd 1.7 だと、crypt 関連のテストケースが失敗する(not ok 17)のがちょっと気になるところ。 MD5 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。
去年の3月18日より、約1年ぶり。 今回は事前に朝食抜きの指示があったのでお腹空かせながら出社し、10:00 すぎに例年と同じクリニックへ。
医師に、去年の血液検査の結果で貧血気味と出ていたがどうですかと聞かれた。あ、そうだったの。 全然気にしてなかったなあ。家に帰って確認したらたしかに赤血球関連 C 判定だった。たまーに目が回って起き上がれなくて横になることがあったけど、それ貧血症状だったのかなあ。
今日の診断で目を見たあと「薄いですね」って言われたので何がですかと聞いたら、貧血が薄くとのこと。 薄くありそうなのか、可能性が薄いのか後で思い返してみるとどちらだかわからなくなってきた。
ま、確かに近年疲れや不調を感じやすいのでとにかく注意だな。
新しい手帳が届いたり。この手帳があれば育て方調べるために毎回 iPad 使わなくても済むのですごい有用。
で、ケーキパーティーして、ルービックキューブの LBL 方式黙々と練習してミニマムなのだいたいマスターして、夜はちらし寿司パーティー。
明日に出しにいくつもりで、夜は懸案だった確定申告書類作成。メインの申告書は過去と同様 Web で作成するとして、追加で必要な書類は PDF ファイルをダウンロードして記入。PC で書き込もうとしたら保護されている PDF ファイルで書き込めなくて、しょうがないので iPad 上で GoodNotes でチマチマ書き込む(保護何それ? な感じで書き込める)。各項目の書き方を Web で慎重に調べつつ埋めていって「できた! 次は申告書。」って Web で入力しはじめたら、さっきの書類の作成ウィザードが途中にはさまっていた……(そして最終的にそちらを含む PDF ファイルができあがる)。悪魔やー。先に作った書類で計算された数値を申告書に書くのだから、順番的に申告書作成は後で着手するでしょう普通(実はどこかに説明が書かれていたとかそういうトラップがあるかどうかは調べていない)。
最近使っている写真送信アプリがカメラで撮影後に即送信的なもので、加工して遊ぶ余地がないのでレンズで遊ぶことにした。ケータイのカメラにつけるお遊びレンズ、昔はいろいろあったと思うのだけれど、今は結構少ない。あとお高めの物が多い。そんななか Jelly Lens というのを見つけたので、ヴィレッジヴァンガードに行って買ってきた。税別600円也。
シリーズで何種類かあるんだけれど、魚眼とかマクロとかそっち系はおもちゃレンズでは画質厳しくて面白くなさそうなので描写いじり系の moving をチョイス。
ジェルの粘着でレンズにペタっとつけるタイプで、iPod touch 5th のカメラにはペタッといい感じについた。ジェルの保護的にフタがついているのだけれど、これは気がつくと取れかかっているのでちょっと心もとない。
絵的には思ったよりしっかり効果がかかっていいんじゃないかな。製造上の問題なのか、意図的にかわからないけれど、センターがちょっとずれている → 使い方をみたら「レンズを回転させると中心位置の微調整ができます」って書いてあった。ベストなフレーミングを選ぶのもまた楽しい。
そんなに耐久性はある感じではないのでぱっと遊びつくせばいいかなという感じ。
[ 製品レポート ]
500弱ぐらい Toodledo 上にあったタスクを、見直しつつ Todoist へ移動完了。1〜2年ぐらいのスパンでタスク管理ツールを変えてみたりしていて、手間ではあるんだけれどそのタイミングで棚卸しができるのでそれはそれで良い。
今日 Toodledo から Todoist に Web ブラウザ上でもりもり書き写している途中に Todoist がダウンして同期が取れなくなってロストはいやーとかなったんだけれど、復旧後にオフラインモード状態からきちんと同期してくれたのでまず良かった。
Android デバイス・iOS デバイスからも Toodledo アプリをアンインストール。また気が向くときまでバイバイ。
(画像は http://doist.io/press/ より)
Xperia Z5 SO-01H に Android 6.0 へのソフトウェア・アップデートがきました。
個人的には指紋認証とパターンロックが組み合わせられるようになったのが嬉しいです(今までは駄目だったので PIN にしていました)。
また標準のカメラアプリで 1/3 EV 単位で露出補正ができるようになったのも良いです(今までは謎のスライダーでした)。ホワイトバランス設定も変わり AWB 以外は4つのプリセットを選ぶようになりました。こちらは今までのスライダーと、どっちもどっちです。
Xperia の STAMINAモードはいったん無くなりましたが Android 6.0 の「電池の最適化」が効いているのか引き続き使用していない時の消費電力は抑えられているようです。
先週参加した Inspired 入門勉強会グループメンバで都合のつく人で交流ランチ。第1回の勉強会のふりかえりや次回の進め方などの話をしつつ、カジュアルにプロダクトマネージャー業の情報交換となりました。
私のグループのチームは今はスクラムで開発していますという話をしたところ、他の3名のところではスクラムを導入していない/できていないとのことでした。
私もスクラムは学びながらやっていて「エッセンシャル スクラムを読む会」という社内勉強会に参加している最中です。
1週1章1時間、(参加者がその回の章を読んできている前提として)その日の当番の人がサマリーを発表、流れで随時「ここ良くわからなかったのですけれどどう思います?」とか「私たちの組織・やり方だとここが当てはまっている・違っている」とかそういう会話をする流れでやってます。
といった感じで進めていますと紹介しました。
さっそく戻って読み合わせやろうという話になっているというコメントをもらって、皆さんスピード感があってさすがだなぁと。
そういえば最近 Ulysses (Mac) がファイル操作後のレスポンスが徐々に悪くなってきている感じがします。そろそろファイル数的に厳しくなってきたのかな。
日記や記事ファイルなど必ず1日あたり2〜4ファイルは増えていくので、今後どうなるかちょっと気になっています。
[ ノート・日記はテキストファイルに ]
写真を撮るのに GR1s を出したらファインダーまわりとメインスイッチが経年劣化で若干ベトベトしてきていた。キレイにしておきたいな。
明日のひな祭りを前に、おやつに桜餅と雛あられ。
IKEA の MICKE/ミッケ 引き出しユニットの天板が傷つきやすいので、上にデスクマットを敷いておくことにした。この間ニトリで買ってきた半透明デスクマットをカット。柔らかいのではさみで切れた。
セットでもバラでも同料金。
セットでもバラでも同料金。
RICOH GR III 用にSDHCメモリーカードを買い足し。
いつも買っている Transcend から SDXC/SDHC 500S をチョイス。昨日注文で本日配送。
[ 製品レポート ]
Google アカウントのセキュリティ診断の中の「お使いのデバイス」に2つ前に使っていた Xperia GX が残っていて、もう使ってないのできちんと整理しないとなと思っていた。
まずは起動してみるかとこの間の土曜日に充電器につないでみたけれど、全然充電が進まず一瞬画面が点くも落ちるというのを繰り返しているのでそもそももう駄目っぽい。バッテリを交換しても駄目。ということで Google のアカウント管理の方からログアウトさせた。
あとは物理的な処分を考えよう。
家を出た直後、1分間土砂降った。
Obsidian Publish の Top of Mind に Areas of Focus を移してみたり、 nNodes のグラフのノードの色を変更したり。
Top of Mind から Areas of Focus は外した。
[ Top of Mind ノート ]
雨天もまたヨシ。#photography pic.twitter.com/xifdcZooAw
— Naney (@Naney) March 2, 2021
3回目の新型コロナウイルスワクチン接種を受けてきた。
予約の時点でファイザー社製ワクチンの接種を受けられる予約枠がほとんど無かったので、今回はモデルナ社製ワクチンだ。
過去2回と同じく区の接種会場。会場内のレイアウトが前回と若干変わっていたが、だいたい一緒なので迷わず受けられた。
注射したところのピリッとした痛みを少し感じながら会場を後にし、今日は直接オフィスへ行って仕事をしてきた。
注射をした右腕に筋肉痛のような痛みがあるが、腕を上げられないというほどではなかった。右腕だけでなく気のせいか左腕も若干痛い。というか関節痛が出るタイプの風邪の時のような症状みたい。
念の為体温計とタイレノールA (アセトアミノフェン錠) を持参して出社したが使わずに済ませた。
[ COVID-19 ]
Good morning!#photography
— Naney (@Naney) March 1, 2022
RICOH GR IIIx #GR #GRIIIx #GR3x pic.twitter.com/k0SXDqgntX
「ルージュの伝言」の冒頭の歌詞を聞いていて、『すずめの戸締まり』の劇中で使われた理由が今頃ガツンときた。映画館で聞いた時は旅立ちの曲だとしか感じていなかったんだよね。
マック#photography
— Naney (@Naney) March 2, 2023
RICOH GR III #GR3 pic.twitter.com/1AIZkkiGCr
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。