月曜日は妻が検査で病院のため家で留守番。子供とふたりきりというのは初めてだったが大きな不安もなく問題なく終わった。もうちょっと不安な感じになるかと思ったけど、新生児は泣くときの条件が「うんち」「おしっこ」「ミルク」のほぼ3択なので難しくない。すなわち

  • おむつ替え
  • だっこ (移動)
  • ミルク作ってあげる

さえできれば割と長時間なんとかできる。事前の訓練でこれらに不安はほぼなかった。ミルクの量だけ、普段混合なのでよくわからなかったが、ミルク缶の表示分だけ作ったらなんとかなった。母乳と違って飲んだ量が明確で、十分飲めば確実に寝るので大変ではない。ただ、泣きはじめてから調乳するので、それなりに時間がかかり、なおかつ誰もあやす人がいないので、だいぶ泣きわめいてしまって可哀想になる。

生理的なことで泣いている間は原因を取り除くのが比較的楽だが、社会的なこと (ママがいないとか) で泣きはじめると結構たいへんそうだな、と今思っている。

そういやミルクあげたあとは、げっぷさせないと死ぬ!!みたいなイメージがあるが、それは過剰なイメージで、実際はそんなことはないらしい。げっぷさせる理由は

  • 寝かせたあとげっぷが発生してミルクを戻すことがある
    • あまりないが気管に詰まると危険
  • 腸の中に空気が入ると不快感を感じることがある

というあたりを解決するためらしい。うちの子はさっぱりげっぷをせず、毎回おならで出てくる感じになっているが、今のところ殆ど吐くことがないのでそこまで気にしてない。

  1. トップ
  2. 育児
  3. 2人でお留守番

生後もう1ヶ月が過ぎて、1ヶ月検診も終わり、異常なしだった。体重は今のところ1日約30gずつ増えているらしい。この検診には付き添って行っていないので (典型的には母親と母親の母親で行くみたい)、実際は見てないけど1時間ぐらいかかったみたいで大変そうだった。

1ヶ月経ったのでもはや「新生児」ではなく「乳児」にランクアップした (正確には28日未満が新生児) 。

顔に湿疹的なものがでいていてちょっと可哀想。あと髪の毛がだいぶ抜けていっててどんどんハゲていってる。全体的にはだいぶ脱皮したのだが、頭の皮だけはまだ結構残っていて、見た目がちょっと悪い。

とりあえずこれで遠い病院に行く必要が減った。次は自治体の3ヶ月検診だけど、その前の2ヶ月目には予防接種の1発目(たぶん4種混合)があるはずなので、毎月何かしらイベントがあるというのが続く。まだ小児科は受診していない。

  1. トップ
  2. 育児
  3. 1ヶ月検診

昇殿して祈祷もしてもらった。行きはタクシーで行ったが、時間的にも何にしても電車で帰ったほうが楽そうだったので電車デビューした。

  1. トップ
  2. 育児
  3. お宮参り

よくわからなくて買えてない。なんかセオリー本みたいのないんだろうか。

原理的な知識より、現実的な回路を例にして、どんなときにどんなパターンで設計するか?というのが一通り書いてある本がほしい。定数の決めかた (数式) とか、その定数が結果にどれぐらい影響を及ぼして何とトレードオフにあるかとか。この回路のときは能動素子のこのパラメータに気をつけろとか。

複数の選択肢がある場合、何をどう計って設計を検討するかとか、そういうノウハウって絶対あると思うんだけどなあ。回路同士の選択肢もそうだけど、オペアンプとか死ぬほど種類があるわけで、選ぶのがつらい。

  1. トップ
  2. tech
  3. アナログ回路でよさそうな本

最近まで知らなくていちいちコピペして git merge foobarbranch とかやっていたが、

git checkout foobarbranch
.... なんか作業
git checkout master
git merge @{-1}

みたいに、@{-1} を使うと直前に触っていたブランチを示すことができ、これですぐに merge が実行できることを知った。

単にハイフンでいいらしい……


  1. トップ
  2. tech
  3. git で直前にいたブランチをマージ

  • 電子工作
  • golang

電子工作は回路図とソフトは書いたけど実際配線して検証するのがめんどうで止まってる。

golang は作りたいものがなくて手をつけてなかったけど、最近 peco という percol の golang 版でできたので覗いてパッチ書いたりしてる。こういう新しいプロジェクトは楽しい。そして得意な人のコードを読みながらちょっと手を加えてみるのは手軽で良い。


僕はベースの向上心?みたいなものがあんまりなくて「目的なしに学習する」ということが全くできないので、もどかしいときがある。

トーク応募のページ

理由

懇親会対策

基本的にこういうイベントは懇親会が一番重要といってもいいぐらいだが、コミュ障だと懇親会とかで誰と何を話せばいいのかさっぱりわからなくなる。LT でもなんでもいいがトークをすると一定の人から認識され、トーク後や懇親会などで話しかけられやすくなる。逆に話かける側としても「あれおもしろいですね」と気軽に言いやすくていい。

また一応の話題を前もって作れるのでコミュニケーションしやすくなる。YAPC にきて「いやぁ今日はいい天気ですね」とか話はじめるわけにはいかないので、このような話題を持っておけるのは気が楽になる。

つまりコミュ障ほど応募すべき

強制的アウトプット

普段生活していると、アウトプットといってもブログになんちゃら書いて終わりがちか、あるいはそれ自体も忘れて日々バタバタ過ごしてしまう。何らかのイベントのタイミングにあわせてアウトプットを出すといいモチベーションになる。

それと、自分が思っているほどには個人ブログなんてのは他人に読まれていないので、YAPC のように人が多いイベントで話すのはかなりいろんな人にリーチしておもしろい (一応 Perl のイベントだけど、Perl だけを使ってる人はほとんどいない)。

YAPC はチケットの価格が安い

YAPC は一般チケット5000円、先行チケットなら4000円、学生なら無料と、他の言語の同様のイベントに比べて破格の安さのイベントになっている。

有料イベントの場合、入場チケットは安いほど、スピーカーとしてバリューを出さなければ!!と気負う心理的なプレッシャーが少なくなり初心者でも自由に喋りやすくなる。つまらなそうなトークなら運営側でリジェクトしてくれるので、とりあえずトーク応募するといい。

プレッシャーの面でいうと、YAPC では例年、メイントークが3トラックで走るうえに、今年はイベントトラックというのがさらに走るようになので、比較的気楽に喋りやすい。

まとめ

自分は一昨年、去年とトーク応募せずに終わってしまったので今年は応募した。

僕のトークがリジェクトされても、懇親会で cho45 を見掛けたら話かけてください……

トーク応募のページ

会社用の名刺をあんまり持ち歩きたくないのと、今は基本的に勤務先を明らかにしない方針にしており、個人用のいい感じの名刺が欲しかったので作った。まぁ実際使うことは殆どないし、ただ今名刺切らしてメソッドで十分なんだけれども、作りたい欲が出たら作らなければならない。

久しぶりにイラレ使ったけど意外と操作覚えててよかった。

片面カラー・片面モノクロの100枚、角丸加工、送料など含めてオンデマンド印刷の業者で1400円ぐらいだったので安い。思ったよりできあがりも良くて楽しい感じだった。使わないけどいっぱい作りたくなる。

表は名前とURLが入ってるけど、裏は全面モノクロの写真にしてある。なんとなく裏にしてちょっと飾っておけるカードにしたくてそうしたけど、嬉しいの自分だけのやつだ。カット加工ができるならそのまま机における感じにしたいけどむずそう。

裏はこんな感じ

というのを作った。404 Not Found というのがあって、フィードをとってきてモールスにして再生するというもので、面白いのだけれど Java だし Mac だと音がおかしく試すのも辛い感じだった。簡単そうなので似たようなのを作った。

WebAudio + JavaScript のみで実装しているので、殆ど面倒なところはなく、Chrome for Android でも動くので外でも使える。

ただ、フィード取得に Yahoo! Pipes を使っていて、ときどき内容がとれないことがある。よくわからない。

しかし作ってちょっと聴いてみたけどさっぱり聴きとれない。多少は聴けるようになったかな〜と思ったけど全然だった。聴きとり全く上達しない。

  1. トップ
  2. tech
  3. モールスでニュースを聴く
  1. トップ
  2. ham
  3. モールスでニュースを聴く

WebAudio 使ったモールス練習機を自分で作って使っているので公開する。

ほんとに全く聴きとれないときから使っているので、コッホ法というスタンダードなモールスの覚えかたに従って練習してくように作ってある。

見た目的に想像つくと思いますがスマートフォンでも動きます (Chrome for Android でだけ確認)。


コッホ法とは以下のような特徴のトレーニング方法で、無線電信の巧みと技にも書いてあるが、心理学者のルドウィグ・コッホさんが効率的にモールスを習得するための研究した結果を反映したもので、知られているトレーニング方法の中では唯一根拠があるといえそう。

  • 送信スピードは最低でも15wpm (word per minutes) 以上にする
    • 1文字の「符号」をまとまって認識するため
  • 最初は2文字だけから始まり、90%以上聴きとれるようになったら1文字足していく

最初は文字間の無音を長くして、だんだん狭くしていくといいらしい。文字間の無音は長点と同じ長さしかないので、聴いてみると案外短い。1文字ずつシーケンシャルに聴きとっていると間に合わないので、脳内でバッファリングしながら解読する必要がある。

覚える順番は LCWO.net準拠にしてある。LCWO.net もブラウザでモールス練習できるサイトで便利。グラフ化もしてくれるので、学習成果をテストするのに使ってた。ただ、mp3 をいちいちダウンロードしてくる感じなので、そのへんがちょっと使いにくい。コッホ法一通り終わって (20wpm 90%) からは Code Group のほうで 24wpm ぐらいまでちょくちょくテストしてたけど、最近はランダムじゃなくて意味のある単語の練習をしているので、やってない。

もう1年ぐらい前に作ったやつだけど日記にしていなかった。

  1. トップ
  2. tech
  3. ブラウザでモールス練習
  1. トップ
  2. ham
  3. ブラウザでモールス練習

滅多にないことだと思うが、非常に大きな zip ファイルを動的に生成してダウンロードさせるみたいなことをしたいことがあるかもしれない。

Archive::Zip だとストリーム生成できないので、Archive::Zip::SimpleZip を使う。Archive::Zip::SimpleZip だとストリーム出力で file handle などに書き出せる。

これで一度ファイルに書いてから、そのファイルを sendfile 的にレスポンスしてもいいのだけれど、書いている間はクライアントからしてみれば完全に無反応になるので、場合によってはタイムアウトになってしまうことがある。そこでストリーム出力をそのままクライアントにストリームしたくなる。

簡単なコードにすると以下のようになった。Archive::Zip::SimpleZip にコールバックかオブジェクトを渡せたらいいが、渡せないようなので、文字列リファレンスをいちいちクリアしながら出力するキモいコードになっている。

#!plackup
use strict;
use warnings;

use Archive::Zip::SimpleZip qw($SimpleZipError :zip_method);

sub {
    my $env = shift;

    # Return streaming response
    sub {
        my $respond = shift;
        my $writer = $respond->([
            200,
            [
                'Content-Type' => 'application/zip',
                'Content-Disposition' => 'attachment; filename="dekai.zip"',
            ],
        ]);

        my $_buf = "";
        my $buf = \$_buf;
        my $zip = Archive::Zip::SimpleZip->new($buf, Stream => 1) or die "Failed to create zip file";

        for my $n (1..1000) {
            warn $n;
            $zip->addString("$n" x 100, Name => sprintf('%04d.txt', $n), Method => ZIP_CM_STORE) or die "SimpleZipError : $SimpleZipError";
            $writer->write($$buf); $$buf = "";
            select(undef, undef, undef, 0.01);
        }

        $zip->close or die "SimpleZipError : $SimpleZipError";

        $writer->write($$buf);
        $writer->close();
    };
}
  1. トップ
  2. tech
  3. Perl (PSGI) で zip ファイルを動的に作りつつ順次クライアントに送りつける