トップページへ戻る
過去の日記へ


予定


8月25日(木)

 なんか日付も曜日もデタラメだったぞ。

 なぜかPerlのビルド。libdb.soのバージョンがおかしいというのでググると、libgdm.soからシンボリックリンクをはれとのこと。謎。

$ wget http://www.cpan.org/src/5.0/perl-5.24.0.tar.gz
$ tar xvzf perl-5.24.0.tar.gz
$ cd perl-5.24.0.
$ ln -s /usr/lib/libgdbm.so.2.0.0 libdb.so.2 
$ ./Configure -Dprefix=$PREFIX 
# 色々聞かれるが、途中でライブラリのパスに「.」を追加
$ time make
toke.c:(.text+0x20dd): undefined reference to `pow'
pp.o: In function `Perl_pp_int':
pp.c:(.text+0x9787): undefined reference to `ceil'
pp.c:(.text+0x9837): undefined reference to `floor'
pp.o: In function `Perl_pp_sin':
pp.c:(.text+0x9d67): undefined reference to `sin'
pp.c:(.text+0x9de7): undefined reference to `sqrt'
pp.c:(.text+0x9e21): undefined reference to `log'
pp.c:(.text+0x9e31): undefined reference to `cos'
pp.c:(.text+0x9e41): undefined reference to `exp'
pp.o: In function `Perl_pp_atan2':
pp.c:(.text+0xcbf4): undefined reference to `atan2'
pp.o: In function `Perl_pp_modulo':
pp.c:(.text+0xea0f): undefined reference to `floor'
pp.c:(.text+0xea90): undefined reference to `fmod'
pp.c:(.text+0xecdf): undefined reference to `floor'
pp.o: In function `Perl_pp_pow':
pp.c:(.text+0xefb6): undefined reference to `pow'
pp_sys.o: In function `Perl_pp_gmtime':
pp_sys.c:(.text+0x1e09): undefined reference to `floor'
pp_pack.o: In function `S_pack_rec':
pp_pack.c:(.text+0x3487): undefined reference to `floor'
pp_pack.c:(.text+0x34b3): undefined reference to `floor'
time64.o: In function `Perl_gmtime64_r':
time64.c:(.text+0xe1): undefined reference to `ceil'
time64.c:(.text+0x13e): undefined reference to `ceil'
time64.c:(.text+0x1a3): undefined reference to `ceil'
time64.c:(.text+0x261): undefined reference to `floor'
time64.c:(.text+0x3d9): undefined reference to `floor'
time64.c:(.text+0x42d): undefined reference to `floor'
time64.c:(.text+0x44d): undefined reference to `floor'
time64.c:(.text+0x488): undefined reference to `ceil'
time64.c:(.text+0x5e1): undefined reference to `fmod'
time64.c:(.text+0x625): undefined reference to `fmod'
time64.c:(.text+0x663): undefined reference to `fmod'
time64.c:(.text+0x69b): undefined reference to `fmod'

 これって-lmが抜けてたってこと?ふぅ。


8月24日(水)

 来週の物性アプリオープンフォーラムでこんな話をします。去年、「国プロはなぜ失敗するか」を話したセミナーシリーズ二回目です。

・日時

 2016年08月31日(水) 15:00-16:00

・場所

 物性研究所 6階 A612号室 (第2セミナー室)

・発表者

 渡辺宙志さん (東京大学物性研究所 物質設計評価施設)

・題目
 密着電子計算機室24時 ~物性研スパコンのセキュリティを守れ~

・概要:
長かった調達も終わり、新しいスパコンが順調に稼働する中、
渡辺はジョブが見慣れないエラーメッセージを吐いて死んでいるのを見つけた。
検索してみると、とあるウェブサイトがヒットする。
「これは…システム管理ソフトウェアのソースコード…?」
そこに表示されていたのは、まさにいま使っているスパコンの、
管理システムのソースコードと思しきものだった。
何の気なしにざっと眺めていた渡辺の顔色が変わる。
「なんだ…これ…?」
そこには、見た瞬間に「ヤバい」と思う、見るからに危ないコードがあった。
まさかこれがうちで使われている…?
確認のためのスクリプトをいくつか試すこと数時間。
その結果を持って渡辺は6F、電子計算機室に向かう。

「Yさん…rootが…取れました」

これは、物性研のセキュリティを守るため日々暗躍する、
物性研電子計算機室のセキュリティGメン「ホワイトハッカー」の物語である。

 興味のある人、さらに上記に心当たりのあるベンダーの中の人の参加を歓迎します。


8月23日(火)

 昔「京」で動いてたコードが動かなくなってたので問い合わせ。

 subversionがhttpでアクセスするにはserfが必要で、serfをビルドするためにはSConsというものが必要らしい(ため息)。

$ wget http://prdownloads.sourceforge.net/scons/scons-2.5.0.tar.gz 
$ python setup.py install --prefix $PREFIX 

 で、serfをビルドするためにSConsを使おうとしたが、gccに渡すインクルードファイルの位置をどうしても変えられずに 詰んだ。

 serf、SConstructのdefault_incdirを直接書き換えてから

$ scons PREFIX=$PREFIX 

 したらできたっぽい。そんでsubversionのソースツリーで

$ ./configure --prefix=$PREFIX  --with-serf=$PREFIX

 とかやっても

An appropriate version of serf could not be found, so libsvn_ra_serf
will not be built.  If you want to build libsvn_ra_serf, please
install serf 1.3.4 or newer.

configure: error: Serf was explicitly enabled but an appropriate version was not found.

 と怒られるので、

$ ./configure --prefix=$PREFIX  --with-serf=/path/tp/serf-1.3.8

 でうまくいったっぽい。そのままmake・・・したらserf.hとかそういうのが無いと怒られたので、 面倒からserfのビルドディレクトリで

$ cp *.h $PREFIX/include

 してからmake続行。通ったのでmake install。

$ svn --version
svn, version 1.9.4 (r1740329)
   compiled Aug 24 2016, 14:53:50 on x86_64-unknown-linux-gnu

Copyright (C) 2016 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

以下のリポジトリアクセス (RA) モジュールが利用できます:

* ra_svn : svn ネットワークプロトコルを使ってリポジトリにアクセスするモジュール。
  - 'svn' スキームを操作します
* ra_local : ローカルディスク上のリポジトリにアクセスするモジュール。
  - 'file' スキームを操作します
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.8 (compiled with 1.3.8)
  - 'http' スキームを操作します
  - 'https' スキームを操作します

The following authentication credential caches are available:

* GPG-Agent

 httpスキーム追加された!


8月22日(月)

 本郷で研究会。台風直撃。行きはびしょ濡れ。帰りは帰宅困難者に。 根津→北千住はスムーズだったが、 北千住が死ぬほど混んでた。 千代田線でそのまま柏に帰るというのが良かったらしい。


8月21日(日)

 NOP


8月20日(土)

 NOP


8月19日(金)
sudo port upgrade outdated  1321.89s user 222.82s system 262% cpu 9:49.40 total

 月曜日の準備。


8月18日(木)

 MacでGSViewが欲しいので入れた。http://www.gsview.com/downloads.htmlからDiskImage持ってくるだけ。で、epsをGSViewに関連付けて開いて見たが、 Mac版GSViewはepsのBoundingBoxを認識しないのか・・・。

 普通にgvでいけた。

$ sudo port install gv

 Windows版のgsview、Aladdin Free Public Licenceという奴で、 起動する度に「登録料を払え」と言ってくる。 GhostscriptはDeutschという人が書いたらしいが、最初GPLだったのを プロプライエリにしようとしてAladdin Enterprisesという会社を作ったらしい。 現在Ghostscriptの権利はArtifex Softwareというところが持っている。 これがどういう会社がいまいちわからないが、会社の採用情報によると

などとあるので、中国/台湾/カリフォルニアに従業員がいるオフィスレスな会社なのかしら?

Ghostscriptのライセンス見てもよくわからない。 これ、言語仕様そのものに著作権あるんだろうか?例えば、GS互換な言語処理系のフリー実装作ったらどうなるんだろ?

 gvにはファイルの自動更新機能が無いのだが、evinceにはある。これはMacports版もあるから、 こっちの方が良いな。


8月17日(水)

 ノートPC注文した。前のDynabookがすぐ壊れてしまったので、またLet's noteにした。 頑丈さという意味ではThinkpadも良いらしいのだが、若干不安なので・・・。 ついでにOfficeの購入を予約。最近はライセンス制とかで、買い切りか年単位か選べるらしいのだが、 毎年更新するのはいかにも鬱陶しいので買い切りで。初回は3ライセンス購入しなければならないとかよくわからない仕組み。 素直に入会料取れば良いと思うのだが、おそらくそれだと反発があるか、もしくはどこかの国の法律に触れるのだろう。

 Dynabookを買ったのは2013年2月らしいんだけど、すぐにキーボードが取れて、その後しばらくしてディスプレイの 接触がわるくなって、今年完全に切れてしまった。今は別のディスプレイにつないで使っているが、出張用に使えなくなってしまったので プレゼン用ノートが絶対に必要になり、ようやく注文した。

 レノボの奴、なんか変なプリインストールアプリが入ってて、それが心配のもとだったんだけど、いま調べたら レノボの一部のノートPCに入ってただけで、Thinkpadには入ってなかったらしい。 対象となるのはWindowShopperというアプリケーションで、オレオレ認証局を作ったせいで中間者攻撃ができたというもの。 WindowShopperはアメリカのSuperfishという会社の製品で、ベンチャーかどうかはわからない。 会社のサイトにアクセスすると、「Superfish business is closing. 」と表示される。 Wikipedia英語版によると、レノボの件が大ダメージになったらしく、 JustVisual.comという会社に名前を変えたらしい。こんな書き方がされている。

In May 2015, following the Lenovo incident and to distance itself from the fallout, the team behind Superfish changed name and moved its activities to JustVisual.com, in the hope that it can turn over a new leaf.

 「turn over a new leaf」という言い回しがわからなかったので調べたら「仕切りなおす、生まれ変わる」的なことらしい。

 Superfishのアプリケーションが何をやってるか調べたのだが、

 ・・・という、素人目にも「正気か?」と思えるほどのヤバさ。こんなものを作っておいて 「distance itself from the fallout」も何も無いよな・・・。 在りし日の会社は、

We have a highly qualified and motivated engineering team: a great combination of PhDs and experienced, pragmatic engineers, in a high-trust environment with the resources available to do excellent work.

 と、PhD持ちが多数いることをウリにしていたようだが、それでこんなヤバいアドウェア作るって、 「experienced, pragmatic engineers」は何も言わなかったんだろうか?

 これはレノボのコンシューマ向けのノートPCの一部にしかインストールされなかったのだが、 これによりレノボの印象はかなり悪くなり、Thinkpadもその影響を受けた形(とりあえず僕は購入を見送った)。 その前にレノボ製品にバックドアがある懸念から、いくつかの情報機関が使用を禁止しているという報道もあったな。

 この問題に対するレノボの第一声もひどい

我々は本アプリケーションを徹底的に調査しましたが、セキュリティ上の懸念を実証するいかなる証拠も見つかりませんでした。

 秘密鍵がバレているオレオレ認証局を作り、その認証局を「信頼する」設定にしておいて 「徹底的に調査」したのに「セキュリティ上の懸念を実証するいかなる証拠」も見つけられないというのはひどすぎる。 すぐに指摘を受けて、声明を更新している。

しかしながら、セキュリティ面での潜在的な脆弱性については昨日まで認識しておらず、この点について深くお詫びいたします。

 ちなみにSuperfishの脆弱性は、イスラエルKomodia社の「Komodia Redirector SDK」を利用したことが原因。 これを使った別のアプリケーションにも同様な脆弱性があることがわかり、問題は拡大した。 Superfishの開発者達は、おそらくこれが何をもたらすライブラリか、あまり深く考えずに採用してしまったのだろう。 彼らは画像認識のプロであったかもしれないが、それ以外のツメが甘すぎた。


8月16日(火)

 MACでsshfsを使う。

 これでいちいちスパコン側に可視化ツールとかインストールしたりファイル持ってきたりしなくて良くなった。 便利だ。


8月15日(月)

 なんか滅茶苦茶研究が進んだぞ。こんなに集中できたのはいつ以来だろう。

 次の論文は、もし通ったら、そのデータを作るインプットファイルも含めて完全にソースコードを公開する予定。 並列化もしていないので、誰でも簡単に結果を確認できる。これまでもソースコードは公開してきたけど、 論文用データを作るためのインプットファイルまで公開するのは初の試み。もちろん論文が通れば、だけど。


8月14日(日)

 学会の準備。

 「a problem with」か「a problem of」か。 WordReferenceでの 議論では、「ofは全体に関するもの」「withは個別の問題」となっている。 例えば「車に何か問題がある」は「I have a problem with my car.」であり、この場合はwith。 「人種問題に関して議論する」だと「discuss a problem of race」。 LDOCEでの用例でも、 「the problem of race relations」「I've been having a few problems with my car.」が紹介されている。


8月13日(土)

 学会の準備。


8月12日(金)

 学会の準備。


8月11日(木)

 ある環境でのgitが滅茶苦茶古いので、ローカルにインストールを試みる。 できる自信はあまりない。

 あっさり入ったが、git svnをしようとすると、

Can't locate SVN/Core.pm in @INC (@INC contains:

 と言われる。svnが古かったかな。

$ wget http://ftp.riken.jp/net/apache/subversion/subversion-1.9.4.tar.gz
$ tar xvzf subversion-1.9.4.tar.gz
$ cd subversion-1.9.4
$ ./configure --prefix=$PREFIX

get the sqlite 3.7.15.1 amalgamation from:
    http://www.sqlite.org/sqlite-amalgamation-3071501.zip
unpack the archive using unzip and rename the resulting
directory to:
/path/to/build/subversion-1.9.4/sqlite-amalgamation

configure: error: Subversion requires SQLite

 build/subversion-1.9.4にて

$ wget http://www.sqlite.org/2016/sqlite-amalgamation-3140000.zip
$ unzip sqlite-amalgamation-3140000.zip  
$ mv sqlite-amalgamation-3140000 sqlite-amalgamation
$ ./configure --prefix=$PREFIX
/usr/include/apr-1/apr.h:19:24: error: apr-x86_64.h: そのようなファイルやディレクトリはありません

 Apacheのrun timeが入って無いですな。

$ cd
$ cd build
$ wget http://ftp.riken.jp/net/apache//apr/apr-1.5.2.tar.gz
# 展開して ~/localをprefixにしてconfigureインストール
$ wget http://ftp.kddilabs.jp/infosystems/apache//apr/apr-util-1.5.4.tar.gz
# 展開して ~/localをprefixにて、--with-aprもprefixと同じところにしてconfigure;make;make install
$ cd;cd build;cd subversion-1.9.4
$ ./configure --prefix=$PREFIX --with-apr=$PREFIX -with-apr-util=$PREFIX
$ make
$ svn --version
svn, version 1.9.4 (r1740329)

 できた。ポイントは以下の通り。

 で、git svnしようとしたら、まだダメだ。subversionではなく、SVN/Core.pmが必要だったらしくて、 それはSWIGの担当とのこと。で、SWIGを入れようとしたらPCREというライブラリが無いと言われる。

$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
# 展開してconfigure;make;make install
$ cd;cd build;cd swig-3.0.10;
$ ./configure --prefix=$PREFIX --with-perl5=/usr/bin/perl

 最初に間違えてpcre2を入れてしまった。pcreを入れないといけない。

$ ./configure --prefix=$PREFIX -with-swig=$PREFIX/bin/swig
$ make; make install

8月10日(水)

 論文投稿した。これで通るだろうと思われる。長かった・・・。

 イラストレータで作った図が度々問題を起こしたので、tgifで書きなおした。もう二度とイラレ使わぬ。 あと、cond-matの概要、LaTeXのコマンドで認識するのとしないのがあって、--と\%がそのまま表示されてしまう。 余裕があるなら直しておきたい。あと、cond-mat、参考文献をbibつけてもうまく入らず、bblつけなきゃダメだった。

 思わず研究開始から再投稿までの道のりを振り返りたくなったが、これはアクセプトまで我慢しよう。 さて、次だ次。


8月9日(火)

 よくCall for papersのメールが来るのだが、たまにそのジャーナル名で検索をかけている。 今回の「Computer Communication & Collaboration」は、Google検索では「このサイトは第三者によってハッキングされている可能性があります。」という表示が出た。こんな表示を見るのは初めて。確かにとんでみると、なんか変なカジノのサイトに飛ばされる。 もともとこのジャーナルが幻なのか、それともサイト運用がアレで本当にハッキングされたのかはわからないかったが、 30分後にアクセスしてみると普通に戻っていたので、おそらくハッキングされていたのだろう。 しかし、メールの差出人でEditorを名乗っていた名前がEditorial Boardにはなく、 そもそも差出人アドレスのドメインが「gmail.com」になっている(ここで異常に気付くべきではあった)。

 以上を総合するに、こういうことが起きたと思われる。

 なんか手間のわりにメリットが少なそうなんだけど、このフィッシングサイトに何人誘導したらいくら儲かるんだろ?

 Box-Line reductionの次はLine-box reduction。こんなの。

 A行に着目すると、候補4が出現するのは中央のボックス(456列)のみ。従って、A列で4がはいるのは456列に限定されるから、 上段中央のボックスのうち他の場所(B,C行)にある4は削除できる。これをビット演算でやりたい。絶対後で忘れるので覚書。

 まず判定だが、条件はある行のうち、特定の数字が出現する場所が、特定のボックスの中のみに限られる、というのが条件。 ボックスのマスクをbmとし、行のマスクをrmとし、数字のマスクをnmとすると、 ボックスと行の共通部分のマスクは bm & rmなので、それでマスクをとっても、rmでマスクをとっても 数字のマスクが変わらない場合、つまり(nm & bm & rm)が、(nm & rm)に等しければ、その行にて条件を満たしている。 ただし、(nm & bm & rm)が0であってはならない。 消せるビットは、ボックスのビット (nm & bm)のうち、行との共通部分(nm & bm & rm)を除いたものだから、 消すビットをeliminateとして、eliminate = (nm & bm) ^ (nm & bm & rm)。で、 これが0でなければLBR成立、消すことができる。

 最初は、三行のマスクそれぞれr1, r2, r3として、r1で成立したらr2,r3を削除・・・と考えていたが、 よく考えると、ある行で成立した時、その行以外を削除する、というのはXOR一発でいけるので、残りの2行が どこかを特定する必要はない。


8月8日(月)

 散髪。新プロジェクト始動。


8月7日(日)

 英文校閲、まずメールで修正原稿のスキャンが送られて来て、後で請求書と現物が送られてくるシステムなのだが、 そのカバーレターに英語評価が書いてある。今回のは「英語の状態は良い」とのこと。 これまでほとんどの場合「再校閲を強く勧める」という評価だったはずで、 この判定は初めてだと思う。やっぱりそうだよね?だって今回の校閲では本質的な修正、少なかったもの。

 まだこの判定一介だけだし、校閲者にもよるんだろうけど、英作文の力は付いている気がする(無論当社比で)。


8月6日(土)

 物性アプリオープンフォーラムのスライド作った。


8月5日(金)

 改定案とレフェリーへの返事案作成完了。共著者に投げた。おそらくこれで通るであろう。 少し寝かせて来週再投稿しよう。


8月4日(木)

 昨日の続き。改定案ほぼほぼ作った。

 うーん、今回の英語の修正、ほとんど表面的なところだけだなぁ。そんなに英語はひどくなかったということか。 おそらくタイトルとそれに関連する中心的なセンテンスがおかしかったから、Editorがひっかかったんだな。 むー。


8月3日(水)

 英文校閲の反映。せっかく高い(といっても、その仕事の質のわりにはかなり安いと思うけど)お金払ったので、ただ言われた通りに直すだけじゃもったいない。 以下覚書。

 いろいろ仕事してたら英文校閲が終わらなかった。今日はSec. IIIまで。 明日は査読レポートへの返事まで書き上げたいが。


8月2日(火)

 引き続き査読レポートを精査。関連論文を読む。英文校閲が返ってきたが、今回は「再校閲を強く勧め」られなかったな。 少しは英作文が上達したか?それとも校閲者によるんだろうか?Editorが文句つけてきたのも、英文法がボロボロというよりは、 意図するところが伝わっていないのでは?という感じだったし。


8月1日(月)

 査読レポートを精査。なんとかなるかな。


トップページへ戻る