長崎ITCamp 2012

このブログは読みやすいようにサブタイトルをまとめてみました。
お好きなところから読むことが出来ます。

0. はじめに
1. 8時半集合だけど5時までLTの練習をする。
2. 割り箸をたてるゲーム全然だめだった・・。
3. デスマのにおいがぷんぷんする。
4. 作業開始
5. LT失敗
6. 旅館にてITCampというか修学旅行の雰囲気を感じる。
7. めちゃくちゃ美味しく感じたのり弁。
8. 色々苦労したけど堂々の2位だった!(3チーム中)

0. はじめに

  ITCampが開催されるということで、行くかどうか真剣に悩んだ結果、行ってきました。
  そして、そこで思ったことや感じたことを書いていきます。(かなりゆるい感じで)

1. 8時半集合だけど5時までLTの練習をする。

  LTってやったことないけど、どや顔で話したいことでもいいということで、
  私の作ったAndroidアプリ「ダイエットビューアー」を
  宣伝したい気持ちになりLTすることにしました。

  でも、準備をするのがなぜか嫌で嫌で仕方がなかった。
  そして気づいたら何の準備もせずに午前1時になっていた。
  準備を1時間でして2時に寝ることにしたが、
  Webなどでスライドの参考とかLTの仕方とか、勉強に1時間を費やした。
  それからスライドをパワーポイントで作って、evernoteに原稿を書いて2時間半、
  午前4時半から午前5時まで声に出して時間を計ってみる。(夜中に何をやっている・・。)
  完璧な準備ができて就寝する。
  とりあえず、5分遅刻してしまう。汗(すいません・・。)

2. 割り箸をたてるゲーム全然だめだった・・。

  チーム分けが終了して、(4人で1チーム)
  運営の木原さんが、「割り箸を輪ゴムでどれくらい高く積み上げれるかで、
  チームワークが、どの程度かわかる。」という。

  私は(図工苦手だったし、いやだな〜。)という
  気持ちが少しあったせいか、チーム内では全然役に立たなかった・・。
  どうやれば高く積み上げれるのか全く思いつかなかった。

  2回やって、2回とも3位でチームワークが悪いのかなとちょっと思う。

  「そのときの上手くいかなかった写真」

  (こりゃだめだ(笑))

3. デスマのにおいがぷんぷんする。

  私のチームは、私以外、全員が学生で
  2人がプログラマーで、1人がデザイナー。  

  まず、どんなWebアプリを作るか考えるタイム。
  私たちのチームは、Twitterの登録をしたものの全然使わない人たち「bocchi」を
  救済するアプリを作ることにした。

  「bocchi」がTwitterでつぶやいて、そのつぶやきに対して返信したら
  ポイントがもらえる。
  そのポイントによってユーザーのレベルがアップ!
  アイコンも進化する。
  これはうれしいねー!というアプリ。

  そして、実際に誰がどの部分を作るか計画していくタイムになる。

  デザイナーを目指す学生の人が、HTMLと素材を担当することになった。

  プログラマーを目指す2人と私の3人でプログラムを担当することになったが・・。

  問題発生。

  2人の話を聞くと、言語としてJavaは出来るけど、
  HTMLとSQLなどは使えなくて、ServletやJSPも知らないという話だった・・。
  Eclipseも触ったことはない。

  終わったときにみんなが満足出来るようにするにはどうしたらいいんだろう・・。
  たぶん、実際にプログラムを組んでもらうのが一番満足するんだろうけど、
  二日間ということと、Webアプリということを考えると、
  やっぱり勉強してもらうしかなく、HTMLとSQLを勉強してもらうことにした。
  (申し訳ない・・。orz・・。
  プログラムだけ出来るっていう場合に、思いつく作業がなかった・・。)

  しかし、出来上がっていく途中のプロジェクトなどは2人のPCに環境を作って
  どういう風に動くのか、見せていくことにした。

4. 作業開始

  私の作業は、実際にプロジェクトを作るのと、プログラマー2人に環境の作り方
  Eclipseの使い方などを教えるのに時間を費やして焦りを感じていた。
  (もうあきらめちゃおっかな〜と何度か心が折れそうになる。)

  しかし、デザイン担当のメンバーは順調に素材とHTMLを作っていく。

  このままでは、プレゼンのときになって、素材とHTMLは出来ました。
  こんな感じに動く予定でしたー!となってしまう・・。
  これはすごく残念なので、がんばってプログラミングしていく。

5. LT失敗

  一日目のITCampが終了して飲み会となった。
  しばらくして、LT大会が始まり私の番になった。
  はじめのスライドまでは上手くいったが、
  実際にエミュレーターでデモを見せるときになると、、動かない・・・。
  押しても押してもエミュレーターが反応しない・・。
  結局、エミュレーターを再起動して見せることに・・。
  evernoteに原稿まで書いてたのに全ての手順が頭から吹っ飛んで、
  結局アドリブで見せたいところを見せて終わってしまった・・。
  (次回やるときはちゃんと直前に動くか試すようにしよう。)

6. 旅館にてITCampというか修学旅行の雰囲気を感じる。
  旅館にて、ゆっくりして感じた雰囲気が、「修学旅行」。
  私以外の人が全員学生でしかもほとんどが知り合いだったらしい・・。
  (な、馴染めてないか!?)とか気になったが・・、
  プロジェクトがデスマすぎて頭の中がそれどころじゃなかった・・。
  結局、PCを出して必死で足りない分のプログラミングをする。
  (どんな場面でもある程度のものが出来ないと、
  気が済まないタイプなのかな〜・・。)
7. めちゃくちゃ美味しく感じたのり弁。

  2日目の昼食時、運営の人たちが弁当を用意してくれていた。のり弁だった。
  (なんでカツ丼にしてくれないんだよ木原さん〜〜orz・・。)
  とか思って食べてみたら、めちゃくちゃ美味しかった・・。
  人生でこんなにのり弁を美味しく感じたのは初めてってくらいに。
  ものすごくエネルギー消費してたんだろうか・・。

8. 色々苦労したけど堂々の2位だった!(3チーム中)
  デザイン担当のメンバーのHTMLと素材を、プロジェクトに組み込み。
  問題点がいくつかあるもののプロジェクトは完成。
  というか時間切れのため仕方なくここまでという感じ。

  プレゼンタイムに入り、他のチームの人たちが、どっかんどっかん笑いを取る。
  (まぁ、そういう趣旨のプレゼンでは、ないんだけど・・。)

  私のチームのプレゼンも完了して、評価タイムになる。
  うまい棒を投票用紙に見立てて、袋の中に入れていく投票形式。
  そして結果、私のチームは堂々の2位入賞!

  とりあえず、色々と無事に終わってよかった。
  あと疲れた〜。

  私のチームのメンバーの皆さんお疲れさまー!

  「今回作ったWebアプリの画像」

  「レベルが上がったらこんな風にアイコンが変わる。デザイン担当のメンバーの力作」

Facebooktwitterlinkedintumblrmail

OSC2012 Tokyo/Fall 終了!

ただいま羽田に移動して帰りの飛行機を待っております。まずは一安心。

ブースにお足をお運びいただいた方々、ありがとうございました。

足を止めてくださる方がすくないマイナーブースではありますが、来て下さった方々はみなさん熱心に話を聞いてくださってとても刺激になりました。

刺激といえば他のブースの方々からもいろいろと。

まず、Joe’sさんの10周年記念漫画にガツン!とやられ(ツインタワーに飛行機がー!)、

Ejectコマンドユーザー会さんの Raspberry Pi を使用した低消費電力なEjectソリューションにニヤニヤし(薄い本買いました)、

自宅ラック友の会さんのラックに感動したり諸々いろんな刺激を受けまくったり!(Tシャツ買いました。MobiRuby勉強会で着よう)

などなど。

いいイベントでした。

移動は大変ですけど(多分自宅に帰り着くのは25:30位です)。

そろそろ搭乗のようです。それでは。

Facebooktwitterlinkedintumblrmail

OSC2012 Tokyo/Fall 一日目無事終了しました

懇親会からホテルにもどって書いております。

ここのところOSCが終わったらとんぼ返りで懇親会にはでることができなかったので久しぶりでした。

毎回参加できるといいんですが。 懇親会重要!

本日、峰松のセミナーにご参加いただいた方々、ありがとうございました。

事前登録よりも多くの方々にご参加いただき、大変うれしかったです。
そうそう、OSCには関係ないけどGOTO組もうまくいったようでよかったよかった。

それでは、そろそろ明日にそなえてやすもうと思います。

おやすみなさい。

Facebooktwitterlinkedintumblrmail

観光に仕事で五島(GOTO)にいってきた話

1.全然上手く行かない1日目

    1日目はとにかくトラブルの連続であまり上手くいきませんでした。

    カーナビの仕事だったので、五島の炎天下の中、
    駐車場で「ならない、ならない、ならない」の連続。

    なんでならないのかその糸口もつかめない状態でしたが、
    uraさんから鶴の二声が・・。(問題点を2つも発見)

    助言があり、何が問題なのかがわかり、
    yoshidaさんと私で夜のうちに問題点を修正し明日、再挑戦することになった。

2.飲み会

    今回作っているシステムの詳しい話を聞いて、
    初めてどんな規模のプロジェクトに関わっているかを知る(遅・・。)。

    あと、五島では海のものがかなり新鮮な状態で食べられるらしく
    色々美味しいものを食べさせてもらいました。

    題「きびなを七輪で焼いて食べる」
題「きびなを七輪で焼いて食べる」

3.夜のプログラミング

    とにかく、明日上手く行かなかったら大変なことになるため、
    問題点が解決するまでコーディング、コーディング!

    私のほうもyoshidaさんのほうも結構あっさり問題が解決し、
    万全の準備ができて就寝。

4.上手くいった2日目

    次の日は、解決策が見事に効いて、
    1日目のトラブルがうそのように、全てがすんなりいき、とても嬉しかったです。

5.ギリギリだった五島観光システムが上手くいっているかをテストするためのドライビング

    テストしながら、色々なポイントを回っているうちに
    時間がなくなりフェリーに間に合うかどうかギリギリに・・。
    
    そうこうしているうちに、EV車の電気がなくなりさらにギリギリに・・。

    電欠ギリギリ時間ギリギリでも、
    最後にはきちんと間に合って長崎まで帰れました。

    題「すごく奇麗だった高浜海岸」
題「すごく奇麗だった高浜海岸」

Facebooktwitterlinkedintumblrmail

OSC2012 Tokyo/Fall はじまります

ブースの準備できました。

本日14時からは弊社、峰松が

『県庁並行稼働中!OpenCOBOL汎用機ダウンサイジングでのハマりどころ』

と題しましてセミナーを行います。よろしくお願いします。

飛び入り参加大歓迎です。

Facebooktwitterlinkedintumblrmail

DNSサーバへのANY? . な連続リクエスト対応

管理してるサーバのネットワークトラフィックが妙に高まっていてなんだコレ?と調査しておりましたら…

16:00:11.143581 IP (tos 0x0, ttl 233, id 62542, offset 0, flags [none], proto: UDP (17), length: 61) 184.154.183.56.5325 > 60.32.189.190.domain: [no cksum]  32583+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:00:11.143674 IP (tos 0x0, ttl 233, id 62543, offset 0, flags [none], proto: UDP (17), length: 61) 184.154.183.56.5325 > 60.32.189.190.domain: [no cksum]  32583+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:00:11.143738 IP (tos 0x0, ttl 233, id 62544, offset 0, flags [none], proto: UDP (17), length: 61) 184.154.183.56.5325 > 60.32.189.190.domain: [no cksum]  32583+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:00:11.143823 IP (tos 0x0, ttl 233, id 62545, offset 0, flags [none], proto: UDP (17), length: 61) 184.154.183.56.5325 > 60.32.189.190.domain: [no cksum]  32583+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:00:11.143898 IP (tos 0x0, ttl 233, id 62546, offset 0, flags [none], proto: UDP (17), length: 61) 184.154.183.56.5325 > 60.32.189.190.domain: [no cksum]  32583+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:00:11.144194 IP (tos 0x0, ttl  64, id 26513, offset 0, flags [none], proto: UDP (17), length: 56) 60.32.189.190.domain > 184.154.183.56.44493: [bad udp cksum 5296!]  22153 ServFail- q: ANY? . 0/0/1 ar: . OPT UDPsize=4096 (28)
16:00:11.144323 IP (tos 0x0, ttl  64, id 26514, offset 0, flags [none], proto: UDP (17), length: 56) 60.32.189.190.domain > 184.154.183.56.44493: [bad udp cksum 5296!]  22153 ServFail- q: ANY? . 0/0/1 ar: . OPT UDPsize=4096 (28)
16:00:11.144432 IP (tos 0x0, ttl  64, id 26515, offset 0, flags [none], proto: UDP (17), length: 56) 60.32.189.190.domain > 184.154.183.56.44493: [bad udp cksum 5296!]  22153 ServFail- q: ANY? . 0/0/1 ar: . OPT UDPsize=4096 (28)
16:00:11.144539 IP (tos 0x0, ttl  64, id 26516, offset 0, flags [none], proto: UDP (17), length: 56) 60.32.189.190.domain > 184.154.183.56.44493: [bad udp cksum 5296!]  22153 ServFail- q: ANY? . 0/0/1 ar: . OPT UDPsize=4096 (28)

おお、DNSサーバへの激しい連続request。測ったところ50回/秒以上のペースで複数箇所から投げてきてるようでした。request内容も ANY? . ということで、弊社のDNSコンテンツサーバが応答する必要がない(ので ServFailを返している)内容のようです(DNS ampなDDoSのシカケにしては、偽装された?rewuest元IPが色々と分散していて謎です)。

複数箇所から飛んでくるのはDNSサーバの運命ですからしかたないとしてServFailを返すだけでも負荷が高まりますし、帯域も多少埋まって勿体ないのでiptablesでフィルタすることにしました。

tcpdump -n -vvv -X -s1500 -i eth1

にてもう少し詳しくパケットの内容を拾ってみると。

16:22:35.827460 IP (tos 0x0, ttl 238, id 36986, offset 0, flags [none], proto: UDP (17), length: 61) 97.93.19.246.hexarc > 60.32.189.190.domain: [no cksum]  61037+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
   0x0000:  4500 003d 907a 0000 ee11 cd03 615d 13f6  E..=.z......a]..
   0x0010:  3c20 bdbe 1ce5 0035 0029 0000 ee6d 0100  <......5.)...m..
   0x0020:  0001 0000 0000 0001 0000 ff00 0100 0029  ...............)
   0x0030:  2328 0000 0000 0000 0000 0000 00         #(...........
16:22:35.944826 IP (tos 0x0, ttl 233, id 48921, offset 0, flags [none], proto: UDP (17), length: 61) 77.99.52.123.25697 > 60.32.189.190.domain: [no cksum]  6521+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
   0x0000:  4500 003d bf19 0000 e911 96d9 4d63 347b  E..=........Mc4{
   0x0010:  3c20 bdbe 6461 0035 0029 0000 1979 0100  <...da.5.)...y..
   0x0020:  0001 0000 0000 0001 0000 ff00 0100 0029  ...............)
   0x0030:  2328 0000 0000 0000 0000 0000 00         #(...........

な内容でしたので、iptablesにて

iptables -t raw -I PREROUTING -p udp --destination-port 53 \
 -m string --algo kmp --from 30 \
 --hex-string "|010000010000000000010000ff0001000029232800000000000000000000|" \
 -j DROP

とIPパケットの30byte目からのパターンに注目してhex-string形式で指定してみます。
結果:

16:40:37.686016 IP (tos 0x0, ttl 238, id 51404, offset 0, flags [none], proto: UDP (17), length: 61) 97.93.19.246.32175 > 60.32.189.190.domain: [no cksum]  15020+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:40:37.686094 IP (tos 0x0, ttl 238, id 51405, offset 0, flags [none], proto: UDP (17), length: 61) 97.93.19.246.32175 > 60.32.189.190.domain: [no cksum]  15020+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:40:37.686176 IP (tos 0x0, ttl 238, id 51406, offset 0, flags [none], proto: UDP (17), length: 61) 97.93.19.246.32175 > 60.32.189.190.domain: [no cksum]  15020+ [1au] ANY? . ar: . OPT UDPsize=9000 (33)
16:40:37.853317 IP (tos 0x0, ttl 234, id 23094, offset 0, flags [DF], proto: UDP (17), length: 69) 201.6.2.85.14604 > 60.32.189.190.domain: [udp sum ok]  11303% [1au] AAAA? ns.server.st. ar: . OPT UDPsize=4096 (41)
16:40:37.854079 IP (tos 0x0, ttl  64, id 44172, offset 0, flags [none], proto: UDP (17), length: 110) 60.32.189.190.domain > 201.6.2.85.14604:  11303*- q: AAAA? ns.server.st. 0/1/1 ns: server.st. SOA[|domain]
16:40:37.855922 IP (tos 0x0, ttl 234, id 23093, offset 0, flags [DF], proto: UDP (17), length: 69) 201.6.2.85.62860 > 60.32.189.190.domain: [udp sum ok]  15132% [1au] A? ns.server.st. ar: . OPT UDPsize=4096 (41)
16:40:37.856467 IP (tos 0x0, ttl  64, id 44173, offset 0, flags [none], proto: UDP (17), length: 143) 60.32.189.190.domain > 201.6.2.85.62860:  15132*- q: A? ns.server.st. 1/2/2 ns.server.st. A 60.32.189.190 ns: server.st.[|domain]

ServFailも返すことなく、返すべきrequestについては正しく応答を返してますね。
何事も平和が一番です(´ー`)

Facebooktwitterlinkedintumblrmail

OS X Mountain Lion セットアップ日記 4 Bazaar激闘編

激闘なんかしたくなかった。

MacOSXDownloads – wiki.bazaar.canonical.com

最新の Stable、Snow Leopard (10.6 – Python 2.6) 2.5.0 をインストールしました。
Mountain Lion 用どころか Lion 用のインストーラーもないんだよね。

でも Bazaar Explorer を起動できたので大丈夫だと思っていた、まだ幸せだった、あの頃。

地獄変

盆休み明けにコードの編集始めようリポジトリを選択したら Bazaar Explorer がぶち落ちやがった。

$ bzr explorer
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
〜 250行位略 〜
QKqueueFileSystemWatcherEngine::addPaths: open: Too many open files
QEventDispatcherUNIXPrivate(): Unable to create thread pipe: Too many open files
QEventDispatcherUNIXPrivate(): Can not continue without a thread pipe
zsh: abort      bzr explorer

(´・ω・`)

いろいろ試してみるとターミナルから操作しても bzr-svn プラグインでエラーとなることが判明。

$ bzr log
〜 略 〜
revno: 14
committer: Junya Murabe 
branch nick: trunk
timestamp: Mon 2011-05-09 19:12:41 +0900
message:
  chkPassowordCharをapp_modelに移動。chkFilenameChar作成。
bzr: ERROR: exceptions.ImportError: Unable to load subvertpy extensions: dlopen(/Library/Python/2.6/site-packages/subvertpy/repos.so, 2): Symbol not found: _svn_fs__path_change2_create
  Referenced from: /usr/lib/libsvn_fs-1.0.dylib
  Expected in: /usr/local/lib/libsvn_fs_util-1.0.dylib
 in /usr/lib/libsvn_fs-1.0.dylib

Traceback (most recent call last):
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1141, in run_bzr
    ret = run(*run_argv)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 673, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 697, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 136, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1158, in ignore_pipe
    result = func(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 2895, in run
    Logger(b, rqst).show(lf)
  File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 382, in show
    self._show_body(lf)
  File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 412, in _show_body
    lf.log_revision(lr)
  File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1558, in log_revision
    lines.extend(self.custom_properties(revision.rev))
  File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1476, in custom_properties
    lines = self._foreign_info_properties(revision)
  File "/Library/Python/2.6/site-packages/bzrlib/log.py", line 1498, in _foreign_info_properties
    foreign.foreign_vcs_registry.parse_revision_id(rev.revision_id)
  File "/Library/Python/2.6/site-packages/bzrlib/foreign.py", line 185, in parse_revision_id
    foreign_vcs = self.get(revid.split("-")[0])
  File "/Library/Python/2.6/site-packages/bzrlib/registry.py", line 177, in get
    return self._dict[self._get_key_or_default(key)].get_obj()
  File "/Library/Python/2.6/site-packages/bzrlib/registry.py", line 74, in get_obj
    self._obj = get_named_object(self._module_name, self._member_name)
  File "/Library/Python/2.6/site-packages/bzrlib/pyutils.py", line 51, in get_named_object
    obj = __import__(module_name, {}, {}, from_list)
  File "/Library/Python/2.6/site-packages/bzrlib/plugins/svn/mapping.py", line 23, in 
    from subvertpy import properties
  File "/Library/Python/2.6/site-packages/subvertpy/__init__.py", line 130, in 
    raise ImportError("Unable to load subvertpy extensions: %s" % e)
ImportError: Unable to load subvertpy extensions: dlopen(/Library/Python/2.6/site-packages/subvertpy/repos.so, 2): Symbol not found: _svn_fs__path_change2_create
  Referenced from: /usr/lib/libsvn_fs-1.0.dylib
  Expected in: /usr/local/lib/libsvn_fs_util-1.0.dylib
 in /usr/lib/libsvn_fs-1.0.dylib

bzr 2.6b2 on python 2.6.7 (Darwin-12.0.0-x86_64-i386-64bit)
arguments: ['/usr/local/bin/bzr', 'log']
plugins: bash_completion[2.6b2], bzrtools[2.5.0], changelog_merge[2.6b2],
    colo[0.4.0], email[unknown], explorer[1.3.0], fastimport[0.14.0dev],
    git[0.6.8], keychain[0.1.0], launchpad[2.6b2], loom[2.2.0],
    netrc_credential_store[2.6b2], news_merge[2.6b2], pipeline[1.4.0],
    po_merge[2.6b2], qbzr[0.23.0], rewrite[0.6.3], svn[1.2.2], upload[1.1.0],
    weave_fmt[2.6b2], xmloutput[0.8.8]
encoding: 'utf-8', fsenc: 'utf-8', lang: 'ja_JP.UTF-8'

*** Bazaar has encountered an internal error.  This probably indicates a
    bug in Bazaar.  You can help us fix it by filing a bug report at
        https://bugs.launchpad.net/bzr/+filebug
    including this traceback and a description of the problem.

中央リポジトリは Subversion なので死活問題。

解決編

bzr-svn
先に解決したのは bzr-svn。こいつのエラーが原因で explorer も落ちてるのかも?と思っていたので(違ったのですが)先に対処しました。

エラーメッセージを読むと subvertpy でエラーが出ています。調べると Mercurial でも Mountain Lion で Subversion 連携が動作しなくなったとの情報などありました。

JavelinDev ブログ: Mountain Lionでpython関係のライブラリが動かなくなったのを復旧した手順

bzr-svn も subvertpy でエラーが起きているので入れなおすことにしました。インストールの邪魔になるので、まず、元のファイルをどかします。消すのは怖いので mv しました。

$ sudo mv /Library/Python/2.6/site-packages/subvertpy ~/
$ sudo mv /Library/Python/2.6/site-packages/subvertpy-0.8.10-py2.6.egg-info ~/

そしてインストール。

$ sudo easy_install-2.6 subvertpy

bzr-svn 復活!

$ bzr commit
Committing to: svn+http://###.###.###.###/##/#######
modified app/controllers/jobs_controller.php
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:252: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
  for child_name, child_ie in base_tree.inventory[file_id].children.iteritems():
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:703: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
  return self.old_tree.inventory[file_id]
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:685: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
  old_ie = self.old_tree.inventory[file_id]
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:303: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
  base_tree.inventory[child_ie.file_id].parent_id != child_ie.parent_id):
/Library/Python/2.6/site-packages/bzrlib/plugins/svn/commit.py:364: DeprecationWarning: bzrlib.revisiontree.InventoryRevisionTree._get_inventory was deprecated in version 2.5.0.
  base_tree.inventory[child_ie.file_id].parent_id != child_ie.parent_id):
Committed revision 83.

commit 時に非推奨ワーニング(DeprecationWarning)がでたりしてますが動作しているようです。

Bazaar Explorer
Bug #926439 “Can’t open project in GUI “Too many open files”” : Bugs : Bazaar Explorer

の #9 にあげてくださってる workaround-926439.patch で解決しました。

$ cd /Library/Python/2.6/site-packages/bzrlib/plugins/explorer
$ sudo patch -p0 -b < ~/Downloads/workaround-926439.patch

ここにたどり着くまで、長かった。

調べたりやってみたりしたけどたぶん無駄だったこと

プリインストールの Python が2.7系も入るようになったので(Lionから?)2.6系を使用している Bazaar が動かなくなるという不具合が過去に発生していたようです。コードを見たところこの不具合への対処は入っていました。

Bazaar Explorer が落ちる件、ダウンロードページに「 QT をバージョンアップしてみなよ」とか書いてあるので QT の再インストールを何通りかの方法でやってみましたが症状は変わりませんでした。結果的に Homebrew で入れた QT を使用している状態ですが今回のエラー対処には影響していないとおもいます(たぶん)。

こんな状態だと Bazaar 、オススメできないなぁ。

Facebooktwitterlinkedintumblrmail

【PPTPが危ない?】MS-CHAPv2の脆弱性

VPN接続で良くお世話になるPPTP接続。
どうも、この骨格となるMS-CHAPv2の認証方式に
容易に突破される脆弱性があるとの事。

原文
http://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/

かなり重大なセキュリティ上の問題なので、翻訳してブログに乗せようと思ったのですが…難解な用語に引っかかり、心折れました…orz

この脆弱性に関する詳細な解説がなされています。

その代わりといってはなんですが、Mcfeeにこの脆弱性の勧告ページがありましたので、そちらの紹介をば…。原文を読んでいると、「あぁ、原文参考にして書かれてるな。」とわかる勧告内容ではあります。

「MS-CHAPv2の暗号化された資格情報のハッシュの回避」
http://www.mcafee.com/japan/security/virVul.asp?v=vul120116

 

 

 

 

 

 

Facebooktwitterlinkedintumblrmail

OS X Mountain Lion セットアップ日記 3 Xcode&Homebrew etc

Git や Subversion、他もろもろのインストールで必要なのでパッケージ管理システムを入れます。
以前は MacPorts を使っていたのですが最近はめっきり Homebrew です。

http://mxcl.github.com/homebrew/

「Xcode は Mac App Store から入れるんだよな。あとはターミナルから
ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go) で一発やで〜」 ダメでした。Xcode 入れただけじゃコマンドラインツールが入らなくなったのね。 コマンドラインツールは Xcode の Preferences の Downloads からインストールできました。

さっきも書きましたがHomebrewのインストールはターミナルで

ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)

一発です。すばらしい。

あとは心のおもむくままに Homebrew で必要なパッケージを入れていきましょう。

特に Subversion は日本語ファイルの扱いに関するパッチが適用された状態でインストールできるので Homebrew で入れるのをオススメします。

brew install subversion --unicode-path

Homebrew は便利ですが perl と ruby は別の方法で入れます(デフォで入ってますが新しいのを入れる場合の話ね)。

perl は perlbrew。CentOS の場合については以前ブログに書きましたね。

メモ:CentOS 5.5 で perlbrew + cpanminus

基本的に同じです。

ruby は rbenv+ruby-build で入れます。
rbenv と ruby-build 自体は Homebrew でインストールできます。

以前は rvm を使ってたんですが切り替えました。

どちらでも良いと思いますが複数のバージョンを切り替えられるようにしておいたほうがいいです。

Facebooktwitterlinkedintumblrmail

OS X Mountain Lion セットアップ日記 2 Java&NetBeans

コードはNetBeansで書くことが多いので早速インストール!

Javaはいってないので無理いわれました。

「Java入れないとな〜」と検索したら下記ページを見つけました。

Mountain Lion (Mac OS X 10.8)にJavaをインストールする – memo.yomukaku.net

Java入ってない状態でターミナルで

java -version

とかしたらインストールのダイアログ出てくるのね。知らなかった。

Java入りました。こりゃ楽だ。再度 java -version してみましょう。

java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)

おけおけ。

NetBeansは必要なのを選んでインストールするといいです。ボクは全部入り。

http://ja.netbeans.org/

特に調整せずに使ってもあまり困りません。Eclipseよりセットアップは楽だと思う。

ねこび〜んカワイイです。

Facebooktwitterlinkedintumblrmail