88171.net

今週末の頑張り

チェーン引きは惜しいところでエンドに入らなかったもんで、小一時間手でヤ スる羽目になった。金属加工をする機会があるたびにディスクグラインダーが 無性に欲しくなるけど、辛うじて自制中。


svn: Cannot negotiate authentication mechanism

(CentOS|RHEL) 6 で svn から

$ svn ls svn://somehost/
svn: 認証機構と交渉できません
    or
svn: Cannot negotiate authentication mechanism

とか文句言われたら、yum install cyrus-sasl-plain すると直るかも。


Insufficient permissions!

g-cpan から

 * Getting CPAN Info for Catalyst::View::TT
*Going to read '/var/tmp/g-cpan/.cpan/Metadata'
  Database was generated on Tue, 17 Apr 2012 12:27:03 GMT
 * Scanning /usr/portage for Catalyst-View-TT
|Checksum for /var/tmp/g-cpan/.cpan/sources/authors/id/B/BO/BOBTFISH/Catalyst-View-TT-0.39.tar.gz ok
        *- Unsatisfied dependencies detected during ----
        *-   BOBTFISH/Catalyst-View-TT-0.39.tar.gz  ----
    ExtUtils::MakeMaker [build_requires]
  Ignoring dependencies on modules ARRAY(0xd6a9450), ARRAY(0xd2aff28)
  BOBTFISH/Catalyst-View-TT-0.39.tar.gz
  [configure_requires] -- NOT OK
Insufficient permissions! at /usr/lib/perl5/vendor_perl/5.12.4/Gentoo/CPAN.pm line 186.
 * Cleaning temporary space

とか文句言われたら、cpan ExtUtils::MakeMaker すると直るかも。


届かないメッセージ

mixi の設定をいじってたら、たまたま今日が kotaro の誕生日だということを知り、ついついメッセージを送ってしまった。

たとえ世界がひっくり返っても絶対に届かないと、分かってはいるのに。


Tokyo Promenade のアップデート、とか

Tokyo Promenade の 0.9.24 が気づいたらリリースされてたので、ささっとアップデート。あんまり熱くはないけど一応。

で、なんとなく Twitter のログ取りエントリを全部、隠し記事扱いするようにした。正直ただのバックアップだから、タイムラインにゾロゾロ出ててもしょうがない気がするんだよね。

あ、でも SNS 界隈で生存確認に使われてる可能性があることに今気づいたので、後で連携設定します。


Google Authenticatorで2段階PAM認証

久しぶりに日記かと思えば、ヲタい話題。 Debian (squeeze) で pam_google_authenticator.so を使って2段階認証をやる手順。

インストール

$ sudo apt-get install mercurial libqrencode3 libpam0g-dev
$ hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator
$ cd google-authenticator
$ make && sudo make install

ユーザ個別の認証設定

$ google-authenticator

あとはよしなに。

secret key を端末に入力。emergency scratch codes はメモって安全な場所に保管。ここで出てくる verification code は何だろう‥‥。

#光の速さで端末を設定すれば、一致するか確認できるとか?

PAMの設定

手で /etc/pam.d/* をいじってもいいけど、"O Nuno": Use Google Authenticator to login to a Linux PC を参考に、スマートに。

Name: Google Authenticator (all)
Default: yes
Priority: 900
Auth-Type: Primary
Auth:
required pam_google_authenticator.so
EOF
Name: Google Authenticator (enough)
Default: yes
Priority: 900
Auth-Type: Primary
Auth:
sufficient pam_google_authenticator.so
EOF
… more

メモ(謎)


13組メンバーへ業務連絡

一つめ。

連絡先一覧のページ、中の作り込みをかなり中途半端なまま放置してしまっていたので、Wiki を入れました。アクセス方法とかは変わってないですが、もし変なところ見つけたらこっそり教えてください。

二つめ。

kotaroが先日、納骨されたそうです。詳しい場所は書いておきました。ログインは例の方法です。


無題

オンラインでは全力でスルーしようと思っていたけど、FANS の日記を読んで、もう耐えられなくなった。

別に誰かに読んで欲しいとかではなくて、一方的に気持ちを吐き出して少し楽になりたいという邪な動機によるものなので、読まなくていいです。


2011年8月5日、高校来の友人 kotaro がこの世を去りました。一報を知ったのがその日の夜、日付もかわろうかという時間。悪い冗談じゃないか、何かの間違いじゃないか、ついひと月ちょっと前に2人で飲んだばかりなのに、あの新幹線の改札越しに見送った姿が最後だったのか。13組メンバーに連絡をとったり、隙をついて実家に戻ったりという慌しさの中で逆に少し落ち着いたものの、通夜の会場で kotaro の名前を目にしたときに、焼香をあげたときに、kotaro の顔を見たときに、現実が一気に襲ってきて、正直耐えきれなかった。そんな感情を切り離したとしても、kotaro がもういなくなったという事実だけは依然そこに居座っていて、やっぱり逃げ場はなかった。でも何とか、周りの力を借りながら、俺に出来うる限りのことはしてやれたと思うから、そこだけは納得できてる。

… more

zphotoの64bit対応パッチ

zphotoが64bit環境でビルドできなかったりassert()しちゃったりするのに対応するためのパッチ。exif.cの方はOpenSuSE用のSRPMからもらってきた。image.cppはビルド通すために強引に。

diff -ubr zphoto-1.2.orig/exif.c zphoto-1.2/exif.c
* zphoto-1.2.orig/exif.c      2004-06-07 18:58:04.000000000 +0900
+ zphoto-1.2/exif.c   2011-05-05 11:36:02.000000000 +0900
@@ -46,14 +46,14 @@
 static int
 is_little_endian ()
 {
*    static long retval = -1;
+    static int retval = -1;

     if (retval == -1) {
*       long n = 1;
+       int n = 1;
        char *p = (char *)&n;
        char x[] = {1, 0, 0, 0};

*       assert(sizeof(long) == 4);
+       assert(sizeof(int) == 4);
        if (memcmp(p, x, 4) == 0) {
            retval = 1;
        } else {
diff -ubr zphoto-1.2.orig/image.cpp zphoto-1.2/image.cpp
* zphoto-1.2.orig/image.cpp   2004-07-21 01:48:11.000000000 +0900
+ zphoto-1.2/image.cpp        2011-03-12 13:15:27.000000000 +0900
@@ -554,8 +554,8 @@
 static int
 convert_needed_p (const char *src, const char *dest)
 {
*    char *suffix1 = strrchr(src,  '.');
*    char *suffix2 = strrchr(dest, '.');
+    char *suffix1 = strrchr((char *)src,  '.');
+    char *suffix2 = strrchr((char *)dest, '.');

     return strcmp(suffix1, suffix2) != 0;
 }