Web カメラ*1の画像ファイルとか、ノート PC から cron で定期的にサーバへ送信している。しかしPUSHじゃなくてPULLも活用したい。
それから Web サーバはホスティングサーバなのであまりヘビーな事はできないし、ツールのビルドに必要なライブラリとかを一般ユーザで用意するのもいろいろ面倒ということで、一部の処理は手元のホストでやらせてもいいかなと。
だいたいいつもIPマスカレード下にいるので、トンネルを用意しないと。 SSHがやはりお手軽かな。 例えば、
ssh -R XXXX:127.0.0.1:80 www.naney.org
しておけば www.naney.org 上からそのホストに
wget http://localhost:XXXX/service.cgi?foo=1234
などとしてPULLできるようになる。 ...はずだがうまくいかないや。何故?
プライベートネットワーク同士ではうまくいったので「ルータがらみ?」かと思ったが、別の外部ホストに対して実験してみたところそっちではうまくいったので、そうでもない様子。
でいろいろチェックしてみたところ www.naney.org で
Feb 2 12:08:41 yyyy sshd[61628]: error: Hm, dispatch protocol error: type 80 plen 33
とエラー吐いてた。 もしやと思って ssh 実行時に -1 したら成功。 通常の SSH接続だと ssh -2 でもつながるし、LocalForward でもプロトコル2でつながっているんだけどなぁ。
そういえば ssh -4 は 'Use IPv4 only.' (OpenSSH_3.6.1p2)。 'Force protocol version 4' が必要な時代がきたらどうするのかな?
*1休止中
Memcached まわりをいじったので、キャッシュ具合をテストしていたら変な現象が。 WikiPage が表示されるべきところに、検索結果が表示されている。 あれ?
WiKicker では WikiPage のレンダリング結果も検索結果もキャッシュしているが、それぞれ別のキャッシュキーになるようにしている (WiKickerのバージョンを $V とすると、'$V:h:ページ名' と '$V:s:検索語')ので混ざるはずがないんだけれどな。 キャッシュしているデータの形式も違うし。
最初は Memcached まわりのアップデートで不具合がでたのかと思ったが、戻しても変わらない。ということは、ずっと以前からこの問題が発生していたのか。 やば。 設定でニックネームを設定している(cookie に保存している)と、その Web ブラウザに対してはキャッシュ機能が働かないようになっているので発見が遅れてしまった。
で結局コードをチェックしてみたら「WikiPage 表示と検索結果表示の View クラスを同じにしていたため、検索結果のレンダリングが WikiPage レンダリング結果と同じ領域にキャッシュされる」という風になってしまっていた。 ということで誰かがページ名で検索するとそれがキャッシュされてしまい、ページを読もうとしてもキャッシュ破棄されるまで検索結果が表示されてしまうというひどい状況になっていたと。
修正。
Memcached の出力をチェックしていたら、たまにエラーが起きていることを確認。 Memcached のプロトコルをチェックしたら、キーには制御文字と空白は使えないとある。 Cache::Memcached を見たらキーはそのまま through するだけ。 ということでページ名に空白が含まれている場合などの時には、まずい事になっていたようだ。 こちらは、キーを自前でエンコーディング(ページデータベースファイル名の作成に使っている base64 の亜種)するように修正。
デスクトップ Windows PC 上でメールを送受信している時は社内で POP3 しか提供されていなくても問題なかったんだけれどノート PC をあわせて使うようになったら、こちらでメール閲覧できなくてちょっと不便してた。 POP3 サーバ上に数日残すようにしておいて両方の端末で受信するというありがちなやり方はイケてないのでローカルに IMAP サーバ立てることにした。
今回は母艦が Windows デスクトップ PC なので Windows 用の IMAP サーバからセレクト。
選んだのは hMailServer。
バージョン 4 までは GPL、バージョン 5 以降はオープンソースではなくなったが free product として提供されている。
POP3 サーバからメールを POP してきてローカルのデータベースに保存し IMAP4 プロトコルでのアクセスを提供してくれるサービスとして動いてくれる。SMTP サーバ機能も持っている。データストアとしては MySQL や PostgreSQL なども選択できるが、パーソナルユースなら embedded されている Microsoft SQL Server が使えるので手間いらずである。
実際使ってみたけれど GUI ベースで特に迷うことなく設定ができ、すぐに使い始めることができた。メール関係のサーバを Linux とかで立てる時は結構神経が磨り減るものだがストレスセットアップできた。ローカルにあった MH 形式のメールを数万通 Sylpheed で IMAP 経由でつっこんだけど今のところ順調。いい感じ。
これで OK。
あとは同じホスト上の MUA からは IMAP サーバとして localhost を指定して設定した ID とパスワードで受信設定を行えば OK。 送信については hMailServer を通さずに普通に送信するように設定し、送信したメールを IMAP 上の Sent フォルダ等に保存するようにしておく。
別のノート PC 等の MUA からは IMAP サーバとして hMailServer を立てている Windows PC のホスト名(等接続できる名前)を指定して同様に設定。
これで hMailServer が定期的にメールを POP3 にて受信してくれるので、あとは各 MUA から hMailServer に接続してメールを読めばよい。IMAP なので既読管理やフォルダ管理なども一元的にできる。
その他 hMailServer にはルールを設定して IMAP フォルダ振り分けしたり、迷惑メールフィルタやウイルスフィルタ設定したりできるので、必要なら設定するとよさそげ。
いよいよ YAPC::Asia Tokyo 2013 スタート!
今回は席に電源があるので安心してノート PC・スマートフォンを使えるので嬉しい。 Wi-Fi がつながっても DHCP で アドレスがもらえなくて通信できなかったりすることがあるのでちょっと注意。いったいどれだけ接続してるんでしょうね。これだけ geek の集まる会場で Wi-Fi 環境整えるの相当ノウハウがいるのだろうなあ。
Perl の今後の機能追加・変更(experimental features)についての話。まだまだ Perl 5 は Perl 5 のまま変わっていくと。便利になったり直観に反するものが減ったりとか良くなっていく。シンタックス/セマンティクスがさらに肥大化していくのは初学者にはちょっと厳しくなるのな。
この話につきものの互換性の話もあった。去年のスピーカーは互換性を大事にするという話だったけれど、今回は互換性を恐れずに改良していくというニュアンスに感じられた(聞き間違えでなければ)。個人的には Perl は古いスクリプトがそのまま動くのがとてもいいと思っているので、そのあたりも引き続き大事にされると嬉しいな。
LINE株式会社では mod_perl から PSGI/Plack にほぼ移行済みとのこと。Starlet を使っている。
今回はリバースプロキシとアプリケーションサーバ間の大量のリクエストを捌くために Monoceros を開発しているというお話。あと PSGI/Plack の基本概念の解説もあって嬉しい。 Perl で書かれた HTTP サーバがハイパフォーマンス出せるなんて、昔は自分は考えもしなかった。
PSGI/Plack のサーバを書く人必見な、中身の濃いトークでした。
RTB システムに Riak を使ってみたというトーク。良い Perl モジュールが無いので作ったとのこと。
DeNA の Perl エンジニア初心者研修プロジェクトについて。Class::Data::Inheritable がコードリーディング教材とし良いらしい。
高速化されたプロトコルの話かなと思っていたけれど、ドヤリングから暗号化という導入で引き込んでいく手慣れたトーク。本格的に使われ始めるのは来年以降?
たまにお名前が話題にあがることのあった @bonar 氏と初対面のご挨拶をさせていただきました。今後ともよろしくお願いします。
社内の Perl 技術動向について談議。最近は解き放たれてきたねとか。
Perl 6 の話など。
Google 翻訳を使ったキュートなスライド(ほとんど聞いてなかった)。
@kazuho 氏の prove のトークで始まって、最後日本人による中国語(のような違うような)でのトークでシメ。
乾杯。
多目的教室3は常に人気で入ろうとしたけど1度も入れなかった。部屋遠しが近いので人気なトークがあるとさっと集るのかもね。
そういえば今年の T シャツ、背中に pixiv って大きく書かれていて着用できないものだということに気がついた。残念。 ピクシブが T シャツスポンサーだからなのかな。スポンサーのおかげで運営ができたりチケット代が抑えられたりできていると思うので素晴しいと思うのだけれど T シャツについては有無でチケット代が違うので、大きく広告が載りますよってチケット発売時に明記してくれるといいと思う(自分は先行販売で買ったので T シャツの有無は選べないから関係なかったけど)。
まずもって、パスワードリストを流通・取引している人、それらを使って不正ログイン・不正アクセスを行う人が悪である。
またIDとパスワードを流出させてしまった事業者や、安全ではないプロトコルでパスワードを流すようなサービスを提供している事業者にも責任がある。
そういった状況の中で、不正ログイン・不正アクセスされる可能性/被害を最小限にするためには、パスワード認証を採用しているサービス毎に複雑で十分な長さの異なるパスワードを使うようにしていくのが各利用者にとって良い対策であるという話であり、そして事業者側も継続的にそうしていただくことをお願いしているというわけである。
「ユーザーがパスワードを使い回しているのが悪い! 変えろ!」という感情であったりはまったく無い。
複雑なパスワードを個別に作って管理するというのはそもそもかなり面倒くさい(当然やっているけれど)。ある一定数以上になったらパスワード管理ツールは必須だし、しかし(一般の人には)どれが良いパスワード管理ツールなのかというのはなかなかわかりにくいし、パスワード管理ツールを使ったら使ったでデータファイルのバックアップやデバイス間の同期をどうするかなども考える必要がでてくるし面倒くさい。
「パスワードをサービス毎に変えてください」というお願いだけでは、ユーザーの方はそうはいってもどうすればいいかわからないし、面倒くさいで終わってしまいやすい。どうしていくのがいいかもきちんと説明していった方がいいのだと思う(そしてもちろん各種不正ログイン・不正アクセスの対策を進めたり、より良い認証方法を検討・導入したりしていく)。
Google Play ムービー& TV で無料レンタル特典が1本残っていたので「ミッション:インポッシブル/ローグ・ネイション」を鑑賞しました。順番に全部観ていると思ってましたが、2011年に公開された4作目の「ミッション:インポッシブル/ゴースト・プロトコル」は実は観ていなかったことに後で気がついたり。
M:i:III を映画館で観たのが2006年7月17日なので10年弱ぶり。IMF ってなんだっけだっりイーサン・ハント以外の役とかもほぼ忘れていたりという状態でした。
しかしながらミッション:インポッシブルシリーズらしさというものは十分覚えていて、本作でも「らしさ」をたっぷり堪能しました。2015年現在で重要データの受け渡しが未だに USB メモリだったり、発電所地下のデータ管理がありえないシステムだったりするのはご愛嬌。「上から落ちるように潜入するシーン」「バイクアクション」などはやはり定番ですね。あのテーマ曲が流れてくるとやはりテンション上がりますね。
ヒカリエホールで開催された DeNA TechCon 2016 に行ってきました。といっても今回は仕事の関係で @hidek 氏の OPENING とその次の @kazuho さんの HTTP/2 と H2O の話のトークだけ聞いてきました。
HTTP/2 の技術要素(バイナリプロトコル・多重化・ヘッダ圧縮・優先度制御・サーバプッシュ)と H2O が速くするために工夫している点(H2O 側で優先度を決めて配信したり)でした。
Web の最先端に取り組まれているの本当にスゴイです。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。
#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。
ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。
※内容は個人的見解であり所属組織とは関係ありません。