Friday 30 November 2012

LLVM 読み会初日

前回は2年前。LLVM は割とだめな C++ です。でも、

* 動いているソースは汚いもの

ってことね。でも、C++ そろそろやめようよって感じ。

smart pointer とかが鬱陶しい。

今回人数が多い。まぁ、授業だからな〜

まだ、Parser に届かない感じです。先は長い。

http://www.mindmeister.com/233551296/llvm-source-review

とかで、読み会のノート(mindmap) が見れます。

Thursday 29 November 2012

LLVM 11/30

LLVM の読み会は 11/30 に延期です。

* 11/30 14:40 工学部1号館 14:40 から

土曜日も10:00が普通。日曜日は根性と必要性があったら。

最新のLLVMを source から作って、gdb で追えるようにして置いてください。

暗記

苦手です。今でも苦手。得意な人なんていないか。

ピアノ習っていた時にも暗譜が出来なくて。いや、今から考えると、やっぱり、

* 暗譜しようとしなかった

のだと思う。覚えれば良いだけだったんじゃないか? 覚えなかったものはたくさんある。

* 歴史の年表
* 世界地図 (首都と国名とかいうやつ)
* 百人一首
* 周期律表
* ダンス

でも、最近、百人一首は覚えた。でも「ちはやぶる」に出てくるかるた取りほどには覚えてないです。

数学とか物理は覚えなくて良いのが素晴らしい。忘れたら、その場で考えれば良いから。いや、九九ぐらいは覚えたよ。アセンブラは覚えた。自然に覚えるものだよね?

でも、なんか逆の人が多いみたいな話が。数学の問題を覚えるとか一体何を言っているんだ? つまり、

* 覚え芸を馬鹿にしていた

ってのが大きい。でも脳は老化しないらしいので、覚え芸を今から練習するのも面白いかも。昔より苦手意識は減ってる感じ。なんか、

* 連想記憶法

みたいのがあるらしく、いろんなものを覚えるの便利らしい。あと、困るのは、

* 人の名前

だね。誰でも苦手だと思うけど、学会とかで会った人や紹介された人の名前を覚える。これだよね。絶対、わざとやってる。名札ぐらい付けろみたいな。そういえば、高専では先生が名前を覚えるために学生には名札を付けづに出席を取らせるみたいなことをやっているらしい。半期の非常勤に、そんなの要求しても無駄だとは思うけど。研究室ならば、まだしも、学科の卒業生全員の名前ってのは、普通は無理だろう。

英語の単語も赤単とか使っていた頃は全然だめで、長文読解と試験に出る英単語を使い始めたら自然に身についた感じ。あとは、量に触れれば覚えるもの。もちろん、意図的に勉強しないとダメなんだけど。What's what とかを手に入れた時には、そのほとんどを知っていたのは、一体何故なのか自分でも不思議。

覚えるのだけではダメだが、覚える技術も重要だと思う。譜面とかに頼るとダメなんだよな。沖縄民謡も、いくつかはちゃんと覚えよう。

Wednesday 28 November 2012

桜坂

ようやっとエヴァは見てきました。普通に良かったです。

結構、通っているはずだが、地理的関係がまだ良くわかってなくて。公園抜けてテンプスに抜けられるのか。言っちゃ悪いが、テンプスのトイレの方が綺麗。竜宮通りに、まだ、バラックのお店が残っているのは驚き。さすがに、もう入る気はないが。

市場の通りのアーケードがきれいになっていて、なんか変な感じ。国際通りってのは、そういうブランドになって、維持されているってことね。

あと、大山小学校のそばの道路橋を見てきました。宜野湾のたーんうむ畑は結構好きだが、市長は潰す気らしい。


Monday 26 November 2012

年賀状は出しません。

毎年言っているね。

ようやっと論文が片付いたので、Mou でビール。

傘を二本続けて置いてきてしまった。どっちもぼろい傘だから良いのだが、さらにボロい傘を発掘して使うのはどうなのよ。いや、ボロいの使うのが好きなのさ。機会があったら拾いに行こう。

なんか、沖縄は一気に冬って感じ。春夏秋冬ではなく夏夏夏夏冬だと最初に沖縄に来た時に聞かされたっけ。

Sunday 25 November 2012

スカパー追加

全然、仕事がはかどらぬ〜 朝5時まで飲んだりするからなんですが。

年末のWOWOWのを録画しようと再契約しました。ちなみに、ウルトラセブンHDリマスターと、Cowboy Bebop HD リマスター狙いです。

いろいろ考えたんだけど、

* BS ではなく、スカパーで契約する

BS では rate が高すぎるのと、ソニーのレコーダーは二重音声だとDRでないとだめなのが大きい。

アンテナからは二本出ていいるので、前のチューナーで受ければ同時録画できるし。で、スカパーのWebを見るんだが手続きがなくて。で、電話。でも、電話したら、

* Web からできます

え? 聞いてみると「新規契約からできる」はぁ? ってことは、前にアンテナ飛ばした時に WOWOW 使いしていればアンテナ代は出してくれたってこと? おそらくそうだな。思いつかなかった僕があほでした。

なんだけど、久しぶりにソニー DST-HD1 http://www.sony.jp/cs-tuner/products/DST-HD1/ 使ってみると、当時の

http://seeker-s-eye.blogspot.jp/2009/12/hd_25.html

にも書いてあるが、UIが絶望的にひどい。ひどいです。SKP の差が大きい。これはソニーが悪いというよりは、仕様策定したスカパーがあほなのだと想像します。SKP は良くできているので。

まぁ、でも録画自体には支障はありません。あ、そうだ。本体側だとCHANTORUが使えて iPhone から予約できるんだけど、DST-HD1 はダメ。あぁ、既に後悔しているかも。やっぱり、BS にするべきだったか。WOWOWって二重音声ではなく字幕のことが多いし。字幕嫌いなんだけど。

あ、そうそう。チューナー追加でも無料視聴が入るみたい。それは、ちょっとうれしい。欲張りパック+WOWOW にしていると、追加で見れるものがそれほどあるわけでもない。韓国ものとか見ないし。

でも、1月になったら解約かな〜 このチューナー使うのもう嫌。それにスカパーは多少の割引がかかるとはいえ、2台のチューナー使うと、ちょっとお金かかるし。

WOWOW は、お金がなくなると、まっさきに切られるからな。この内容に月2千円以上は微妙。飲み代に比べれば安いんだけど。

Saturday 24 November 2012

Java Kuche / Java One

JavaOne2012 報告会 & Java における HTML5 勉強会
http://t.co/V1L9H3HV

毎年恒例ということで、ありがとうございます。cisco と oracle の event の*金持ちさ*加減を聞くのも懐かしい感じ。もっと学生が出ても良いと思うのだが、それほど宣伝もしてないか。こういう勉強会に出るのは*意識の高い*人だけ? いや、そういうことではなくてコミュニティの問題だということだろうな。Java One 報告会とかは、授業でやってもらった方が良いのかも。

非同期通信で Future とか 80 年代の話を聞いている感じ。

javax.faces の話が出てた。自分で使った時は、あまり楽しいものではなかったが。ぐぐってみると、maven の dependency に書く方式なのか。正しい version 揃えるのに苦労した記憶があるな。maven のクソ遅さは、なんともならんのか。Eclipse で動かしている分には問題ないんだけど。

学生の Java を maven で make して動かすみたいな感じだけど、Eclipse から Project 開けるよりはましというところか。そろそろ、OS の課題のぐちが増える季節でもあるね。

毎週イベントが… 来週は LLVM 読み会だし。ひとつひとつ片付けていこう。

Friday 23 November 2012

TMPDIR

なんか、Lion の頃からかも知れないんだけど、!! で permission denid とか言ってくる。

ls -ld $TMPDIR

すると、drw------- あぁぁ、それではダメだ。chmod 700 $TMPDIR で治るらしいんだけど、

* 誰がこんなことやってるんだ?

おかげで、様々な所で、

unset TMPDIR

が必要になっているらしい。まぁ、zshrc の中で

if [[ -e $TMPDIR ]]; then
chmod 700 $TMPDIR
fi

で、いいか。

 * * *

ここ一ヶ月、奥様が口聞いてくれないので困ってます。主に予定が立たん。(たぶん、ここも見てないです)

年末は、12/25-1/13 まで東京の予定です。いや、予定は立っていないのだが。

Retina の使用感

まぁ、既に、いろいろ語りつくされていると思うんですけど。

「先生は Retina にしないかと思ってました」とか言われましたが。別に新しいものに挑戦するのが嫌いなわけではないです。17 inch は4台使ったけど。

* Libretto と似ている

そういえば、Libretto も4台使った(20,30,50x2)。X11の拡大表示は昔のVGAを思い出す感じ。Dot by dot 時の小ささは Libretto の文字の小ささを思い出す感じ。挑戦的なノートPCだと思う。Dot by dot で使っている人が多いみたいだが、少し疲れるね。<ul>ド近眼専用マシン</ul>かも。Dot by dot だと 17inch よりも Desktop は広いので文句ありません。光沢だが、映りこみはあまり気にならない。明るいからかな。

写真が綺麗なのも Libretto の時の印象と似てる。Libretto は1996-2001まで使ったが、17inchは2003-2012か。

* しっぽが多い

Display adaptor は持ち歩いていたが、さらに、Thunderbolt Ethernet と Magsafe adaptor を持ち歩く必要がある。授業用のプロジェクタと画面共有があるので Thunderbold 2本が埋まる。Magsafe の変更と Ethernet port がないのは、*エコ*でないと思います。

* 外付けUSB HDDが遅い

TMに20時間ぐらいかかってた。USB 3.0にしろってか? 外付けHDD持ち歩けば内蔵SSDは小さくても良いとか言う人もいましたが「本末転倒」です。

* SSD はどうなの?

速いかな? Eclispe が爆速で立ち上がります。と言いたいが、それほどでもない。いや、速いか。768GB だが、VM落としたので、すかすかだ。この前、1TBに換装したばかりなのに。

* 軽い

1kg なんて誤差です。でも、取り出しが楽だね。

* キーボード

ストロークは浅い方が好きなので問題ありません。というか気が付かなかった。Function key の設定を解除して明るさ調整専用に。uim にしてから F1 は必要なくなった。

* CPU

make -j は爆速だ。でも、マルチCPUに関係ないものは関係ない。そういう時代ですね。

core2 make -j gpu 3.28s user 0.79s system 176% cpu 2.300 total
corei7 make -j gpu 3.44s user 0.62s system 641% cpu 0.633 total

corei7 make gpu 1.99s user 0.42s system 95% cpu 2.510 total

-j を忘れないようにしなくては。core2 に負けてしまうよ。

* もう1年、MBP17 でも良かったかも

旧MBPは修理に出します。経験的には、あと数年は持つはず。なんだが修理するほど壊れてない説が。電池も3時間はもってたし。

Wednesday 21 November 2012

Retina and xterm

おそらくは絶滅寸前の xterm 使いなわけですが、

* さすがに dot by dot k14 は辛いだろう?

IPA font でも、ひらぎのでもなんでも良いんですが。

http://ossipedia.ipa.go.jp/ipafont/index.html

なるほどね。で、

xterm -u8 -fa -misc-ipaexmincho-medium-r-normal--0-0-0-0-p-0-iso10646-1 -fs 16

とかで使えることはわかりました。なんだけど、

http://hintsforums.macworld.com/showthread.php?p=634146
> the font spacing seems to use too much spacing.

あぁ、そうですね。その通りです。~/Library/Fonts に放り込んで、Terminal.app で使ってみても同じ。ということは、

* そもそも、元のフォントのspacingが間違ってる?

Terminal.app には spacing を調節する機能が。おいおいおい。ってことは、xterm 修正して、それをつけろってか?

* xterm/fontutils.c

のどっかを直せば良いらしいけど。FaceSpaceing1 みたいなのを作れば良いわけね?

いや、Font が間違っているんだから、そっち直せば? その方が簡単じゃないか? そうなのかな。そのためには TTF の仕様を見るってことですか。

いや、それは、今やることじゃないな。それに、IPA font あんまり綺麗じゃないし。

xterm やめろよ説もあるけどね。

Tuesday 20 November 2012

Retina MBP 15inch

買っちゃいました。画面が小さい。昔のPowerBook 17inchのようだ。なんだけど、dot by dot にすると、k14 font が目の限界に挑戦している感じ。さらに目が悪くなるのか…

前回は

http://seeker-s-eye.blogspot.jp/2009/12/macbook-pro-17.html

3年ですね。あの時には画面に線が出ていて、死ぬ直前みたいだったはず。今回は、特に修理するところはないのだが、AppleCare に入っているので修理に出すつもりです。このアルミになって、ほんと丈夫になった。

移行は簡単だったと言いたところだが…

* 外付けHDDからのTMの移行が激遅

1時間の表示が結局2時間とか。そのまま放置して那覇に出ました。(論文はどうした :-p) 朝、9時半のお客さんの時には終わってました。

X11も問題なく動くのだが、Mac UIM がどうしても動かない。何か動かそうとすると、

* Quartz X を入れろ

と表示される。停め方がさっぱりわからなかったんですが、

/usr/X11R6/bin/xterm -> xstub

なんか変な symbolic link に置き換わってる。/opt/X11/bin になったらしい。一体いつから? 結局、/usr/X11R6 -> /opt/X11 の symbolic link で良いようです。

Mac UIM は良くわかないが、再インストールして、設定を default に直したら動きました。xstub の影響もあったかも。path が変わっていたので久しぶりに twm を見たよ… fvwm とか WindowMaker とかも好きだったけどね。

で、わかっていて面倒だったのが、

* Perl module

/Library/Perl を TM が移行してくれない。自分専用のpathに入れるべきだなんだが、割と面倒。~/.cpan/build に残っているのから入れたり、~/etc/romkan.pl を cpoy したり、cpan から入れたり。ここは、なんとかしたいなぁ。まぁ、3年毎ではあるんだが。/Library/Perl を rsync するという手もあるけど。

あと、Calendar が database 変換に失敗する。~/Libary/Calendar を消して、iCould と同期するのが、うんともすんとも。こちらから新しいカレンダーとスケジュール作ったらフリーズ。そこで、force quit して再立ち上げしたら同期しました。でも、

* iCloud 上からの外部 ics のsubscribeのやりかたが良くわからない。

とりあえず、移行終了なようです。

Monday 19 November 2012

論文書いているらしい

11/24 は

JavaOne2012 報告会 & Java における HTML5 勉強会
http://www.java-kuche.org/modules/eguide/event.php?eid=25

があるそうです。毎週だな、おい。

15inch Retina が来たので設定中〜 2kg なので、今のより、ちょっと軽くなる。X11 が心配なのだが… (まだ、使うのか?)

明日は朝お客さんらしいので、部屋の片付けも。9:30 は僕にしては例外的に早い。

開いてない封筒とか。ごめん。

とか言いながら、今日は那覇に出ようかと。あれあれ〜? でも、今週後半は余裕なはずだ。

来週末は LLVM 読み会で、14:40 からなはずです。12月にはカレーパーティもやりたいです。

Sunday 18 November 2012

KVM

学科のBladeは、VMWare の Advance license なんですが、Enterprise にすれば良かったと若干後悔。

それとは関係なく、KVM に移るつもりなんですが、fiber channel 上の file system をどうすれば良いのか良くわからない。NFS は、ちょっと変だよな。学生が見つけてきたのが、

Oracle Cluster File System version 2

ですね。KVM + OCFS2 は、どっかでトラぶっていたような気もするが気にしない。いや、あれは ZFS か。

http://gigazine.net/news/20120322-sakura-cloud/

で、それを学生に演習で使わせるわけだけど、

* 自分の VM は upload / start / stop できる
* 他人のはいじれない

という風にしたい。ESXi + vSphere は、そこら辺は良くできていて、細かく設定できてよかったんですが… libvirt / virsh には、そういう機能がないっぽくて。で、

* Open Stack

らしいんだけど、まだ、勉強中です。なので、こうすれば良いというのを教えてもらえるとうれしいです。

とりあえず、qemu を root で動かして、virsh の suid wrapper を作って動かす方針です。

Web から libvirt 経由で制御するのを学生が二つ書いたみたいなのだが

* ソースにパスワードを裸で埋めるのはやめろ

いや、まぁ、さぁ、WordPress だって、wp-config.php に DB password 直書きなんだからいいじゃん説はあるが… URL の直接埋め込みとか、最近、見るソースは、そんなのばっかり。OAuth でも、script に token 書いたりするのだけど、なんだかね〜

将士が作った方は「VM整理した時に、その中にあって消えてしまったようです」だそうです。だから、Mercurial repository に入れろとあれほど。いや、別に期待してないよ。

virsh wrapper なら良いのかというと、それも、ちょっと問題なんだけど。でも、少なくとも、そこに password は書いてない。

 * * *

いや、こんなことしてないで論文書かないといけないんだけど。頑張ります。

Saturday 17 November 2012

第3回 Japan AWS User Group (JAWS-UG) Okinawa勉強会

http://atnd.org/event/jawsugokinawa3

JAWS 勉強会ですね。1時間で、AWS EC2 のアカウント取って、電話取って、ssh で login して、mysql 動かして、Wordpress を「手動でインストール」までできました。

なんだが…

* ssh で login して、

* yum update

* yum intall

* service httpd start

* service mysqld start

* mysql create db ....

* unzip wordpress-hoge.zip

やってることは、10年前にもやっていたようなことだなぁ。そんなんでいいのか?

うちの学科だと、

ESX + vSphere / KVM + virsh

とかまで、学生にいじって欲しいと思うので、AWS EC2 だと、ちょっと足りない感じ。それだと、

* 裸の Linux server だけ

だからね。もっとも、それが重要だとは限らないわけだけど。

「先生、クラウド嫌いですよね?」とかいう人もいたようですが、そんなこともないけど、手元のサーバよりもクラウドが、本当に安いかどうかは微妙。特にディスク容量ね。単に僕が奇形的に使っているだけですが。

でも、うちの次期システムでは、外部あるいはクラウドサーバが半分ぐらいにはなるんでしょう。情報系以外は、全部クラウドという大学も増えるんじゃないかな〜

むしろ大企業とか大学とかにいない人の方が AWS EC2 とかは面白いかなと思いました。気軽に使えるし。

Friday 16 November 2012

北東アジアOSSフォーラムの感想

まぁ、そもそもフォーラムってことは成果発表ではないわけで、成果発表ではない発表がなんなのかは、かなり謎。いや、Repository とか標準化ががなんとかとか言ってたな。 初日、二日目の午前中は、中国と韓国の役人か何かの接待なんだったと思います。準備の主導権争いがあるとかなんとか言ってました。料理は美味しかったです。グランドキャッスルだからな。琉大と首里グランドキャッスルは97のバスが直通なので、学生に送ってもらうのとバスと半々で通いました。

三日目がかろうじて技術系なのだが、技術の話ではなく、

* いろんなOSS技術の名前の紹介

みたいな感じ。あらら。

http://from-okinawa.org/oss2/training

なんだが、発表者が来ないとかで順序がわやだった。

(1) KVM 関連技術 (日本人)
(2) Bigdata 関連技術 (韓国人)
(3) Linux Virtual Server 関連技術 (中国人)

でした。

KVM では、virsh/libvirt で権限制御ができないと言ったら、その辺は Open Stack でと言われました。そうなの?

割と意外だったのは、

* 現状ではVMのoverheadがでかいので、ハイブリッドが良い。
* 特に DB は VM にするな。

ふーん、そうだっけ? I/O neck なものは VM のオーバヘッドは目立たないと思ったが、そうでもないのか。昔は、Xen の ping が10倍ぐらい遅くて「お前なぁ」と思ったものだが。でも、ユーザはガンガンVM化しちゃうようです。まぁ、そうだよね。今度、Overhead 測ってみよう。数%程度だったはずなんだが。多重度増やすとだめとか言う話? いや、うちは全部 VM にしちゃったので :-p

Bigdata は、あまり面白く感じなかったのだけど、「クラウドでBigdataするな」、あぁ、まぁ、そうだよね。「50ノード程度で、Hadoop するな」とかも。韓国は結構 Buzz word で動いているらしく、Bigdata 関連はダメなところもあるらしい。日本でもそういうのあったよ。後で、Bigdata と SQL の関連について聞いたんですが、英語が通じなかった。そういうのありなの? Bigdata は結局 SQL に移行してしまうんじゃないかと思います。それですむなら、それが良い。

つうか、そもそもなんで英語でやらんの? Slide は英語なのに。文系のやることは理解できん。文系って英語得意じゃないのか?

Linux Virtual Server は、Kernel patch が Alibaba どうたらで、いろんな話が入りすぎてて時間もオーバみたいな感じでした。この人は、もともとは米国で OODB の実装とかをやっていたらしい。なので、発表が途中から英語になったり。で、通訳の人が、その英語わからんとか言ったり。Fusion IO とか、まぁ、知らないと訳せないよね。Fusion IO で良いんだけど。Kernel をカーナルと訳す通訳でした。別に問題ありませんが、英語の発表を聞きたかったも。中国語で話す、それを通訳が日本語にするという感じなので、Thourgh put 半分みたいな。

初日、二日目は仕分けしてもらって、三日目は、沖縄の勉強会グループの方に下請けに出せば良かったんじゃないかとは思いました。

* * * 

あれやこれやで名刺たくさんもらったので、Evernote が limit 。なので珍しくプレミアムに復帰しました。

Thursday 15 November 2012

Mr. Philip Tan from MIT Game Lab

11/14 に Dual solution の渋川さん経由で、Mr. Philip Tan from MIT Game Lab が琉球大学に来てくれました。

こっちの出し物は、ゲーム班とプログラミング3,4。「じゃ、英語でプレゼンしてね。」と言い放ったのが二週間前。月曜日にスライドをチェック。

* 5枚にしろ (長いとぼろがでる)

* My name is で始めて、何を作ったか言う

* 原稿を書かない。話すことは全部スライドに入れる。

* 単語だけ話したりしない

ぐらいで。

(1) Takataka (貧乏ゆすり共有ネットワーク)

(2) Bomberman like game

(3) ネットワーク対戦拠点防衛ゲーム

(4) ネットワーク経由で Rogue 見物できる Rogue

(5) Web GL base の Shooting game 二つ (いつもの超弾帝)

だったかな?

当日、あまり期待してなかったんですが、ちゃんと英語でプレゼンできててびっくりでした。やればできるじゃん。

僕もそうだけど、渋川さんも学生の英語には期待していなかったらしく、通訳できる人を何人か連れてきて来てくれたようですが、プレゼンに関しては不要な感じでした。

Mr. Tan の出し物は、Slow light speed 、

http://gamelab.mit.edu/games/a-slower-speed-of-light/

でした。赤方変移、ローレンツ収縮とかが3Dで見れるもの。面白いです。MITっぽい。

iPad のゲームも見せてもらったのですが、そうか、iPad/iPhone の HDMI cable も用意しないとだめだな〜 Apple TV でもいけるんだっけ?

Mr. Tan の話では、

* 未完成のうちからプレイしてもらう。面白さはユーザが発見する

* 短期の簡単なプロジェクトと、長期のプロジェクトを混ぜる

あたりが面白かったです。

Tuesday 13 November 2012

中二病

具体的にそういうものがあるわけでもなく。自分がわかってきて、自分がなりたいものとなれるものがわかってくる時期ってことだよね。神秘主義にはまったり、物理や数学にはまったり。SF でもいいし。

たぶん、中学受験が終わったので、暇になったせいだと思うのだが、中一の頃から日記を書いていた。あの頃の日記は読み返したくないです。実家にまだあるはずだが。

大学の頃に再開したりしもしたけど、大学院ではまったく書かなかった。で、fj から、mixi、facebook と続くわけだね。

* 日記は暇な時に書くもの

ということだな。

思春期に限らず、いろんな物事を突き詰めて考えて書き留めるのが必要な時期があると思う。それをしないと、良くない時期にうだうだ考えることになる。まぁ、良くない時期には、何やってもダメだとも思うけど。でも多少のショートカットにはなるね。

今でも、中二病的なところはあまり変わってないな。夜中の Twitter とか、昔の日記と変わらない気もする。世の中の大勢の人の一人としての自分とかを考えるのが好きかも。世の中を変えたいとかも思うけど、それが良い方向とは限らないし。

自分を見つめる時期と、世の中に働きかける時期と、交互にある気がする。それは気質的なものな気もするが、波がないのもつまらんし。今年は自分的には、内省的な年だったかも。あまり仕事がはかどらなかったという意味でも。

Monday 12 November 2012

第11回 北東アジアOSS推進フォーラム 本大会 in 沖縄

http://from-okinawa.org/oss/hontaikai

今日からですね。タダ飯ですが、少し空きがあったかも。

この手の「政治層」には、僕はあまり sympathy はないが、タダ飯に文句があるわけもなく。JICAの人たちとか来てたが、あんまり意味はないのかも。学生向けではなく企業向けのイベントだそうです。

この Web page では、情報が抜けてるようですが、 kvm の話とかがあるらしいです。

安里で飲んでから帰ろうかと思ったが、結局、そのまま、まっすぐバスで帰りました。火曜日は9時からか。昼飯を食う時間はなさそう。頑張って、バスで行こう!

Sunday 11 November 2012

プログラミングのルール

自分のルールを twitter に書いてみました。1時間半ぐらいやってたらしい。

* * *

変数名やクラス名に省略した単語でなく正しいスペルのものを使う。

他人のインデントはいじらないが、間違ってるのはなおす。同じインデントシステムを使う。勝手に発明しない。ちなみに、K&R

大域変数は使わない。Singleton も使わない。インスタンス変数経由でパラメータを渡さない。必要な場合のみに使う。

コメントは関数/メソッドの役割に対しておこなう。bug fix comment には例を含める。

測定を伴わない最適化は無意味で間違っている。

xUnit を使う。

修正前のコードを残すようなことはせず、版管理にまかせる。

fprint() ; exit() ; のようなエラー処理をせず、エラー処理ルーチンを呼ぶ。

malloc を裸で使わない。

use case 図から書き始める。

if else if else を使い、条件を複雑にしない

Java は IDE を使い、ant/maven をつける。Eclipse 派です。

Warning はすべて取る。

変数宣言は使う直前に行い、局所変数は宣言と初期化を同時に行う。

コメントは英語

Java のdefault package は使わず、必ず、独自の package をはさむ。

関数、メソッドは、一画面に収める 。大きな画面なら大きくして良い。

怪しい優先順位には()を多用する。

可能な限り関数的にプログラミングする。副作用を避け、変数の再利用をしない。

寿命の短い変数は、i とか j とかでよい。

短いメソッド名を使わない。メソッド名は再利用する。

継承よりも interface を使う。

一つしか実装がないものを interface 化しない

最初からデザインパターンを目指さない。有効な時に refactoring で入れる。fly weight とかの例外はあるけど。

テストは自動化する

テストパターンは生成する

カバレッジを測定する

同じものを二度書かない。コピぺしない。

行き詰まった時に同じことを繰り返さない。方法が間違っている。

使用するAPIをテストする小さいプログラムをたくさん書く。思い込みでAPIを使わない。

API のエラーはチェックする。

malloc() のエラーチェックがあるのはプログラムの構造的な間違い。

もっとシンプルにならないかと考える。

データやオブジェクトを表示するルーチンを書く

長い時間プログラミングしない

コードレビューをする

こういうことをすると、favstar があふれるな… blog でやった方が良いか。

Iterator を使う。Iterator を書く。

Thread は基本的な同期構造と終了を PathFinder でチェックする (できるといいな、ぐらい)

プログラミング作法、達人プログラマー、そして、コードコンプリートを読む

gdb や Eclipse のデバッガに精通する。条件付きブレークポイント、変数監視を使う。

コンパイラが信用できない時にはアセンブラを見る

malloc にバグなし。malloc library のデバッガ、メモリリークツールを使う。

Java では object を使い捨てる。参照を長く維持しない。できるだけ早く捨てる。(C/C++とは違う)

寿命の長いデータ/オブジェクトはDBに入れる。

DBのテーブルには、id と key がある。

UMLのシーケンス図、協調図を使う。図を勝手に発明しない。

Cでは、include/定数宣言/変数宣言/関数先行定義/関数定義。extern を.c に書くのは手抜き。extern しない関数には static をつける。

エラー処理を分散しない。エラー処理ルーチンを呼ぶ。

file open に失敗した時は file name を表示する。

構造体は typedef し、PTR 型も用意する。* を宣言に使わない。malloc を個別に書かない。

局所変数のアドレスを取らない。(参照ならよいとは、僕は思わない。Effective C++ は違うのだが)

新しいことを勉強し続ける。自分で試す。

勉強会に参加する、自分で企画する。

一週間でできないものは方法論が間違っている。

Java のGeneric を複雑にしない

コンストラクタで複雑なことをしない。初期化を別に分ける。複雑な初期化を持つオブジェクトはファクトリーを用意する。コンストラクタをたくさん作ったりしない。

どんどん分割する。GUI をわける。

関わったプログラムのソースコードは、とりあえず全部目を通す。部分的に読んですませない。

GNU global などと reference 系よりも gdb で追った方が早い。deamon には、外から attach する。

gdb --args を使う。make に書いておく。.gdbinit を使う。

gcc は、もうだめ。clang を使う。

gdb は -O0 。最適化した時だけバグが出る時は、アセンブラから引数の値を見る。gdb から表示ルーチンを call する。

ByteBuffer? flip() したか? 理解してないなら、簡単なテストルーチンを書いて、position, limit, mark を確認

gdb は b main から。実行してC-Cで停めて where。up/down で break するところを探す。comm/cond を使う。ソースコードに if を入れると高速化できる。

hgは細かく commit する。どんどん push する。動いている版は tag をつける。multi head を恐れない。multi head を放置しない。

repository に入ってないソースは消滅する。

計算量を意識する。O(n^2)は実用的ではない。O(n)をn回繰り返すのはだめ。一方、O(2^n)でもnが小さいなら使える。

そろそろ尽きたか。Prolog篇、Perl篇、アセンブラ篇とかも、やりたい気もする。全然、尽きないじゃん…

Know How をwiki などで共有する。自分の中に閉じ込めない。

ペアプログラミングで教えた後「wikiに書いておいてね」と言うのが得意です。

Saturday 10 November 2012

GPU crasher

Open CL 書いてるわけですが、なんかなかなか進まない。なので、ソース見てみるんだけど、

* コンパイルして実行したら、画面が乱れれて死んだ…

学生に聞いてみると、kernel の引数に変な値を入れたらしい。アドレスの代わりに0とか1とか。それで、死ぬ Open CL もあれだが…

* もしかしてわざとか?!

MBP の OS X 飛ばすとはやるな。

とかいいながら、いろいろやるんだが、

* なんか、絶望的にソースが足りない

もしかして、hg add してないんじゃないの? どうも、学生は、自分の隠した repository とかで作業したりするので怪しいんだよな。結局、学生に聞かないとだめっぽい。

* 正規の repository に入れないソースは消滅する

ってのが経験則ですが。実際、それで今年も消したアホがいたし。VMの中に入れっぱなしにして、VM 毎消したらしい。ゴミなソースでも後輩の例題ぐらいにはなるので、残しておいて欲しいところだ。

まぁ、multi version を嫌って、repository を分けるってのは理解できなくもないが、書いている途中のソースを共有する気がないのは、大学ではもったいないね。

Friday 9 November 2012

クラウドとホームサーバ

iPhone は 64GB にしたのだが、音楽と写真は結局、全部は入らない… iPhoto のたこさで、写真がどうしても同期しないので、写真は Photo Stream だけにして、音楽の方を(128kbpsにそろえて)全部入れてます。

なんだけど、subsonic みたいな自前のサーバ上に置いて、そこにアクセスしても良いらしい。写真も、そうすれば良いわけだ。subsonic ではできないようなんだけど。

クラウド上に置いても良いのだが、bitcasa は、相変わらず転送中。まぁ、そんなものだろう。クラウドストレージが、どういう容量で提供されるのか予想するのは難しいけど、現状では、

* 1GB-100GB

程度の想定か。動画なしなら入らなくもないか。でも、もう足りない感じ。クラウド情けない。

なので、bitcasa の無制限ってのが面白いのだけど、成功するかどうか、いや、むしろ持続するのかどうか怪しい。

一方で、3TB 1万円の時代だからね。HDD録画機は基本的にサーバで、CHANTORU とかを使うとNATを越えて予約とかにアクセスできる。Time Capusle は、家庭にも必須だと思うけど、これはNASとしても使える。ネットは速くなってはいるのだが、TBなデータを操作するには、まだ足りない感じ。やっぱり有線だな。線増やせば容量が増えるところが有線の面白いところ。WiMAXやLTEでLANは無くなるとか言っていた人もいるけど、そうはならないと思う。

というわけなので、ホームサーバ欲しいかな。

* 信頼性の高い多重化されたストレージ
* private な配信サーバ

あたりが欲しい感じ。とか言っているってことは、まだ、構築してない。なんか良いものがあればね。

17inch 持ち歩いているので、ほとんどは、その中に入っているからな〜 まだ、ちょっと動機に欠けるかも。 ZFS も良いのだが CPU 食いなのがね。写真は、普通な Web server で良い。でも、そんなことしていると、また、世間の人とずれたものを使うようになってしまうことは確実。USB HDD の数珠つなぎってのはダサすぎる。

容量的には動画込なら 10TB は欲しいかな。3-4万円で構築可能なところが怖いです。bitcasa が backup に使えるなら良いのだが、その数週間の様子だと望み薄だな。

Thursday 8 November 2012

アジア系の怪しいお土産

中国人の学生からとか、ベトナムに行ったお嬢様からとか… この手の物は食べるのに勇気が必要だ。



何故が、激辛系が多い。イギリスで売ってたTATAの袋麺も激辛だった。必ずお腹を壊す。今回のも激辛。

日本の辛さと違うものなんだよね。

まぁ、でも、僕もイギリスに行った時に、おせんべいを持っていたら、食べてもらえなかった。

「醤油に魚が入っているかも知れないからダメだ」

あぁ、そうですか。

海外でも中華街にいけば日本食の原料はほとんど手に入るのだが、せんべいはほとんどなかったな。海外にいる日本人へのおみやげといえば…

* 雑誌 (今はインターネットがあるから、そうでもないか)
* 昆布、米菓などの乾物

だよね。そういえば、

* スッパイマン (梅干しを乾燥させたもの)

が忍者の食べ物説とか見た。運動時に食べると良いらしい。

Tuesday 6 November 2012

第11回 北東アジアOSS推進フォーラム

http://from-okinawa.org/oss/hontaikai

らしいですけどね。沖縄でやるのは珍しいか。

学生に勧めるかどうかは微妙なところ。割とたいくつなことが多いし。微妙に僕の授業に引っかかってるから。なんですが、11/13 は午前中は出る方向です。昼飯は難しそうだ。(この書き方で人に勧めていると言えるのか?)

午後いちの授業に、バスでも間に合わなくもないが、タクシーだろうな。学生連れてって乗せてもらうという手もありますが。

OSS が何かってのを今更書く気もしないが、いろいろ、そうではないものが…

* OSS はただである必要はない

* OSS で金儲けできないわけではない

* OSS に関わったらすべてのソースを公開する必要があるわけではない

GPL の感染条項もいろいろ誤解を生んでいることも確か。もちろん,Stallmanの政治的意図は明確にあるわけだけど、それと契約とは、また別。

5. Conveying Modified Source Versions.

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

あたりなわけだけど。つまり、分けられる別な部分なら勝手にやってくれ、でも、GPL の塊の中での部分は GPL でやってくれってこと。

LGPL や、その他の弱いライセンスを使う場合も多い。OSS != GPL でもある。

Monday 5 November 2012

最強食堂

なんか、普天間基地がうるさい。ま、これまでが開店休業状態だったんだけど。もう移転はなくなったのし、滑走路の整備は終わったしで、でがんがん飛ばしている感じですね。ま、ジェット機が飛ばなければ、どうってことないんだが。

満点食堂がなくなったので、ちょっと困っているわけですが、今回は最強食堂。忘れてましたが、

* 黙って定食を頼むとポーク玉子が付いてくる

いや、両方嫌いなんですが。玉子は食べられないってほどではないんだけど。「ポーク抜き」の味噌汁にしたんですが、「かわりに玉子二つにしておきました」いや、だから、そうじゃなくって… ついでに「ご飯、半分」も忘れた。つまり、最強食堂は

* ポーク玉子要りません。ご飯1/4

と頼むのが正解らしいです。この年になると、もうご飯は少ししか食べられない。いや、学生も白米は控えにした方が良いよ。今から。ちなみに 500円です。

どうも、ポーク入りで作って、後でポークを抜いてくれたみたい。味噌汁が激しょっぱい。そういう意味でもポーク抜きでないとだめなんだよな。

Sunday 4 November 2012

LLVM

今年も LLVM 読みます。11/9 の 14:40 からと、11/10 一日。UST するかどうかは気分次第です。

目標的には、LLVM の Tail call elimination を調べるのと、関数 attribute の扱いだな。

いや、あのポインタタグと格闘すると思うと気が重い…

* Type safe にして、最適化はコンパイラに任せろ

というのを LLVM 自体が守らないってどうなのよ。でも、このポインタタグを治すのは、もう無理なんだろうな。

いや、そもそも使いたいんだったら、

* C++ にポインタタグを built-in

にしたらどうだろう? 実際、

(1) null pointer (未初期化)
(1) 未代入な領域へのポインタ
(2) 普通の pointer
(3) 整数値 ( or ラベル)

とか、区別したいことはあるし。

授業中に、LLVM internal representation を吐く部分とか、intel64 なレジスタを使ったコード生成とか書いたが、実際に動かすところまではやらず… また、来年かな〜

たまに、授業中にコード見て「あれ? 既に書いてあるな」とか「これ、動かしてないな」とか思うことがある。ちょっと前なら憶えちゃいるが、1年前だとちとわからないな〜

Saturday 3 November 2012

Bitcasa

Backup に使おうかなという感じで、10/20 から接続しているんですが、全然、終わらない。2TB ぐらいなんだけど。

Infinite (NFS みたいな感じ、中身は上に上げられる)
Synch (Dropbox みたいな感じ、両方にある)
Backup (local->bitcasa 一方通行)

の三種類がある。どれも upload の扱いは同じみたいだ。

最初に天文学的な時間が表示されて、それから6 daysぐらいになるが、そこから 1day になったり 3days になったり。今日は 1day だ。朝は 9hours だった。

一旦切ると、最初の既に copy されている部分の skip の時間を元に残り時間を予測するらしく、あと3minとか表示されたりしますが、すぐに 6days に戻る。そんな感じです。ってことは深夜に一度切れたな。

終わるのかな? つうか、Bitcasa 大丈夫なのかなぁ。

http://venturebeat.com/2012/06/20/bitcasa/

まぁ、お金はあるみたいが。

来年あたりは 10TB とか手が届きそうで怖いんですが…

Thursday 1 November 2012

コピペ

勉強なんて、本質的にはコピーだと思うので、他の人のレポートを見るのは悪いことだとは思わないです。

でも、レポートってのは、

* 自分が理解したことを先生にアピール

するものだよね。おんなじ内容を続けてみれば、後の方が点が辛くなるのは仕方がない。なので、自分がちゃんと理解していることをアピールする考察を付ける必要がある。でないと、単なるコピペと見なされる。

ダメなのは、コピー元の間違いに気がつかないものね。これは最低なアピールだ。最初の解答に間違いがあるのは、まぁ、大目に見るけど。

ネットで検索すれば、そこに解答はあるわけなんだけど、問題は、

* 一体全体、正解はどれだ?

ってことだよね。情報に含まれる間違いを自分で見つけられないなら理解したとは言えない。

そもそも、検索で見つかるとは限らない。検索して自分の情報が見つかるようになれば一人前か?

まぁ、甘くつけてるけどね。結果が異なるようなもの (hg log とか) を要求しているのは、実作業して欲しいからだけど、実作業がコピペよりも有効な学習になるかどうかは怪しい。

* 実験書はクッキングブックではない

というわけだけど、その後ろにあるものを見つけて欲しいわけだが…

プログラミングやAPIとかを試す小さなプログラムを作るのは楽しい作業なはずだけど、それが伝わればなぁ。締切に追われると厳しいか。

今年は量多目にするつもりなので、後回しすると厳しいかも。そういう噂を流してくれるとうれしいです。というか、今年は割と、早めに提出してくれてるね。なんでだろう?