Wednesday 30 June 2010

サイタマノラッパー2

誰かのせいで、うっかり見て来ました。新宿 Wald 9 って結構便利。全館プロジェクタのはずだが、結構、綺麗。フィルム上映は、もう必要ない感じ。

確かに楽しめました。映画ってのはノリだし。河原のシーンが良い。

でも、画面が小津安っぽい。固定カメラで家族シーンとか、なんか、もう良いよ。やっすい映画だから仕方ないとも思うが、日本映画って語彙が増えてないと思う。それがアニメとの差なんじゃなかろうか? 金かけて語彙だけ増やしても仕方ないんだけど...

エンディングでカメラが空に向いて戻って来るシーンとか確かに良いと思った。でも、それくらいかも。

続きものってよりは、終り切れなかったか。頑張ってくれ〜

Tuesday 29 June 2010

ラーメン二郎




池袋と言えばラーメン二郎な時期もあったような気もしますが、今では結構いろんなところにあります。

新宿でラーメンってことになったので、桂花かな〜 と思っていたら、二郎に言ったことがないと言うので、二郎に。

歌舞伎町のかなり奥にある。なので、歌舞伎町も楽しい。妖しい街。結構、好きだな。

で、ラーメン+ニンニクと、つけ麺+ヤサイに。ヤサイと言っても「モヤシのみ」。

まぁ、二郎ってのは二郎で、ラーメンじゃないんだよね。別に油とか言ってないのだが、油っぽいよ。

つけ麺は、僕しか頼んでませんでした。そんなものかも。うちの学生はニンニクで死んでいたようです。でも、二郎で「トッピングは?」って聞かれて「何も入りません」とは言いにくいよな。僕もヤサイは、ちょっと後悔したかも。モヤシが水っぽいんだよ。でも、まぁ、太くて硬い麺は素晴しいと思います。

で、その後、どっかに行こうと思ったんだが見つかりませんでした。でも、明け始めのゴールデン街あたりを見れたのは良かったです。雨が厳しかったがね。

花園神社に抜ける通りとかは良く通ったな。池袋生まれに取っては、新宿も自分のふるさとなんだよね。あんまり詳しくはないけど。 つうかだいぶ忘れてるし。

Sunday 27 June 2010

iPhoto の地図(Places)

なんか、たまに iPhone のGPSが外れるらしく、カルフォルニア洋上のがなんか。

iPhoto のmapは、メルカトル図法なので、グリーンランドと南極がでかい。

iPhone にしてから海外に行ってないのもわかる。

IXY-10 はGPS付いてないんだけど、同じ時間のものは同じ場所に設定するとか言うのをちょっと思い付くけど、また、AppleScript 書くのかな〜

M氏は、Apple のSoft嫌いなので自分で分類しているらしいです。

次に買うカメラは、GPS 付きにしたいかな〜

ただ、地図に表示されたからと言って何が嬉しいわけでもないんですけどね。

Saturday 26 June 2010

池袋と言えばデュラララ

池袋生まれですが、何か。

「池袋ウエストゲートパーク」、つまり、池袋西口公園とは、僕の庭です。

なんだが、小さい頃は「駅から家が見えた」らしい。今ではビルの谷間です。それでも、環六の工事が終りつつあり、年中工事ってのは終るらしい。何十年やっているんだよ。放射37号拡幅、有楽町線、副都心線、首都高速道路中央環状新宿線、環六の拡幅。東京は、どこでもそんなものだが。20年工事していたらしい。

もう車持っている人が東京にいないので、新宿線とか乗ったことないです。今度、誰かに乗せてもらうかな。大橋ジャンクションとか。

デュラララの風景は、どちらかと言うと東口。西口の区画整理の方が早かったらしく、東口の妖しさは昔からです。西口のロマンス通りとかも妖しいか。

むかしーは、トロリーバス(架線のある電気バス)がたくさん走ってました。あっと言うまになくなった。トロリーバスのせいで空が電線ばかりだった。交差点では、架線を竿でかけ変えるみたいなことやってました。

今でも通っている都電荒川線は楽しい。副都心線からの乗り換えが便利。と言っても行けるのは早稲田だったりしますが。あんまり役に立たない。

副都心線が取っても便利です。埼玉から神奈川まで、どこに行くにも乗り換え一回と言う感じ。

高校生の頃から終電で帰ることが多かった不良です。1時過ぎぐらい。その時点でも賑やかな街です。

なので人混みも平気だが、さすがに、沖縄に長くいすぎて最近は少し疲れるかも。

明日も、二子多摩川に出勤らしいです。火曜水曜は空いているので、良ければ呼び出して下さい。

Thursday 24 June 2010

来週は東京

なんだけど、いつからいつまでか、まだ決めてません。土曜日からかな。で、木曜日までか? 6/26-6/30 ぐらい? 8月9月は空いているんだから、わざわざ今呼び出さなくても良いんじゃないかと思うんだけど、まぁ、向うの都合に合わせますよ。

7/5 がなんとかとか聞いた気もするが、さすがに一週間まるまるは、ちょっとな〜 でも、授業もだいたい目途ついているので、それでも良いんですが。7/1 はなんかあるらしい。駐車マナーには気をつけようね。

昔は、もっとがんがん東京行ってました。最近は予算ないから少ないです。(なので、本土から琉大に来るような人は珍しい...) とか言いながら去年は7往復しているらしい。仕方ないとは言えども。今年は2往復か。

学生も「勉強会とか少ないから東京に行きたい」とか言っているのもいるようです。いや、お目あては別なものだろ。まぁ、せいぜい頑張ってください。

iPhone のOSを上げちゃったので、Willcom の HX003ZT (Willcom Core 3G) を使っているんですが、B-Mobile もそうなんだけど、

 熱くなって、電池ががんがん減る

って感じです。

多少高くても良いから、iPhone のテザリング用意してくれないかなぁ。Lock free な iPhone を手にいれて、Docomo の SIM をさせば、テザリングは可能なようです。

Softbank がいくらお金出しているのか知らないが、ちゃんとしたサービスを提供できない程のインフラしか用意できないなら、iPhone から撤退して欲しい。別に、帯域制限かかってても良いんだけど。

Wednesday 23 June 2010

iOS 4

沖縄は慰霊の日で休講です。でも、先生は休みではありません。

3Gな奥様には、「iPhone 4 にすれば?」って言ったんですが、予約はしなかったようです。iPad も、まだ頼んでない。

自分のは、長い間、3.1.2 + JB で使っていたんですが、この前、3.1.3 にしました。なので、iOS 4 は躊躇せずに導入。が!

 3G回線が継らない

と言う羽目に。しばらく格闘した挙げ句、

 Restore して、Backup を選択せず新規で起動

で治りました。Twitter で見る限り、何人か食らったっぽい。しかし、そういうことなので、

 アプリからメールから全部設定し直し (あ〜ぁ)

ま、良いか。Web では、i.softbank.jp のSSLな設定が書いてあったがうまく動作せず... むぅ。

写真3万枚入れている実験中ですが、iOS 4/iTunes 9.2 で隨分小さくなった。60%ぐらい?

メールが一括して見れるのは良いんですが、メールを出す方を間違える。まぁ、無害ではあるんだが...

Folder は、山田さんは嬉しいでしょう。僕は、割とどうでも良いです。

壁紙が設定できるので、JBする理由は一つは減りました。iOS4のJBは既にあるらしいが、やるかどうかは、まだ、決めてません。

思ったより遅くない。入力が少しもたつくぐらい。でも、昔の10秒沈黙とかではないので、別に良いです。問題ありません。

ntp は嬉しいよね。

マルチタスクも、それほどimpressiveでもないです。これからに期待ですね。

3G回線は動いているんですが、怪しいです。NO SIMとか言われる。最初から絶不調だったので、修理が正しいとは思う。つうか、壊れるならはっきり壊れてくれ。

Tuesday 22 June 2010

Real Wordl Haskell

どうもこうも、さっぱりわからんので(特にMonadsが)、諦めて本を読むことにしました。結局、Amazon 経由で買ったんですが、Web 上でも読める。Twitter で聞いてみたお勧めの本です。

 http://book.realworldhaskell.org/read/monads.html

Chapter 7 の IO は楽勝。ここはわかりやすく書いてある。

なんだが、Chapter 14 の Monads の例題が、ほtんど動かない。なんだよ〜

僕の理解では、「Monads 自体には特別なことはなくて、関数の入出力依存を利用して、順序制御を行ない、do とか、順序付きの入出力を実現する」ってことなんだけど...

ただ、IOに関しては action があるので、少し状況が異なるはず。そのあたりの処理を読みたかったんだが、あまり深入り出来ず。(つうか、うまく設計できてないんじゃないの? Buffering とかさ...)

file:ch10/PNM.hs とか書いてあるんだけど、そういうファイルが用意されているわけではないのね。なので、例題が動かないのが、とっても困る。

でも、do とかで「上から順次実行で、途中で変数の代入も可能」ってことだと、見掛けは C とかと変わらない。変わらないです。

ステートメント、あるいは、関数レベルで Pure であっても、全体が Monads で遂次に書かれるってことだと、Pure Functional の有難味ってなんだろう?

そんな状況だったので学生にもHaskellは、不評だったみたいです。

でも、file の中身を lazy に取り出す hGetContents、stdin/stdout を filtering 出来る interactive は、良かったな。これは便利だと思いました。

Monads を使った Multi thread や、software transactional memory とかになると、そこまでやるんだったら、遂次型の言語で良いやって感じです。

マイナーな言語は、Prolog でさんざんやったので、また、それに commit するってのは、よほどでないとやらないだろうな... まぁ、でも、OCaml よりは、Haskell の方が、帰納的には面白い。

Monday 21 June 2010

僕は割といい加減な性格です

って、みんなわかっているよな。年度末の予算合わせもやったことないです。やらなくても文句言われたこともないです。合わせようとすると裏目に出ることも多い。

PHSの請求の個別の割り振りがどうとか、どうでもいいよ。3kw 程度の冷房とかだって、別に普通の商用クーラーで十分だし。なんとかなるさ。

日本人真面目すぎだと思う。

まぁ、誰かが尻拭いしているんだと思います。ありがとうございます。

Sunday 20 June 2010

時をかける少女 2010

今度は映画ですか。時をかける少女の映画と言えば、もちろん、原田知世なんですが、どっちかって言うと、テレビ版の方の続きっぽい。

原田知世版は、ほとんど筋書きなくて、原田知世かわいいってだけの映画。だよね? いや、別に、それでいいし。

2010 は74年に飛ぶと言う話で、70年代懐かしーねーっていう映画なわけですね。まぁ、それだけなのか。

別に意味を求めたいわけでもないけど、アニメの方がどちらかと言えばタイムトラベルの制約と過去改変を大胆に扱って成功していたので、意味無路線に戻ったのは、ちょっと残念でした。

ってわけで、評価するとすれば70年代の再現ってことになるけど、8mm と来るのか。あの頃、カメラは減らないので貸すのは問題無。って言うか、70年代って、個人の所有物なんてほとんどなくて、親のものか学校のものしかなかったような気がする。でも、問題はフィルム。3分20秒でフィルム代800円、現像代1000円くらいじゃなかったかな。なので、フィルム代の方が大変だったはずです。

現存している8mm映写機が動いているのは奇跡。可動部分が多いからな。実家にあるのはとっくに壊れました。編集機は、まだ動いていたけど。

ほとんどの家に風呂がないってのは、そう言われてみれば、そうだったかも。

でも、なんか、もう少し、救いのある話に出来なかったのかな〜

Saturday 19 June 2010

桜坂

なんか道通そうとしてるのね。古い雑然とした街が区画整理でつまらなくなるってのは良くある話だが...

時をかける少女は、6/25 までらしい。時刻見ないで来たら、13:40 一本ですか。まぁ、良いんだけど。ちょっとはまりました。

桜坂劇場のカフェは無線LANが使えてよろしいね。

Friday 18 June 2010

Haskell

微妙に頭が重い。高血圧の症状らしいです。最近、ずーっとそんな感じなので、そんなものなんでしょう。

Haskell 微妙に硬い。予想通りに動いてくれない感じ。Term Rewriting 系(項書換え)の言語は、動作予測が難しいんだよ。

Haskell は、なんと無限列が扱えます。遅延評価系、関数の内側から評価していくのではなくて、外から評価していく(outer most evaluation) なので、たらいが一瞬で終るとか、そんな話が。(たらいだったか自信がないが)
 
  [1..]

とかすると、[1,2,3, と、延々表示されます。しかも、

  Prelude> take 20 [1..]
  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

とか出来る。これ、別に特別なことをやっているわけではなくて、

  inc n = n : inc (n + 1)
  take1 0 x   = []
  take1 n (x:xs) = x : take1 (n-1) xs

とかで簡単に作れます。

  *Main> take1 20 (inc 1)
  [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

面白い。C とか Java だと、止まらないんだよね。もっとも、Haskell だって止まらない例はいくらでも書けるんですが。

カッコ忘れると、

  *Main> take1 20 inc 1

  <interactive>:1:9:
Couldn't match expected type `[a]'
    against inferred type `a1 -> [a1]'
In the second argument of `take1', namely `inc'
In the expression: take1 20 inc 1
In the definition of `it': it = take1 20 inc 1

とたんにわからんメッセージが。まぁ、慣れればなんとかなるんだろうけど。

  ap [] t = t
  ap (x:xs) t = x : ap xs t

  rev x = rev1 x []

  rev1 [] x = x
  rev1 (x:xs) y = rev1 xs (x:y)

とか書くと、とっても Prolog っぽい。型推論のある言語と、型無しの言語ってのは、実は、ほとんど同じ。Prolog だと、

  ap([],X,X).
  ap([H|X],Y,[H|Z]) :- ap(X,Y,Z).

  rev(X,Y) :- rev(X,[],Y).

  rev([],X,X) .
  rev([H|X],Y,Z) :- rev(X,[H|Y],Z).

そっくりだ。Prolog の方がappend と reverse の対称性が明示されている。

で、問題は、Monad だな。

  getLine >>= putStrLn

とかやるんですが、こいつをどうやって書くのかが良くわからん。

http://book.realworldhaskell.org/read/

ってのがあるので、やっぱり本読むか。

Thursday 17 June 2010

mailq の top 50 を表示する script

この間、はまっている時に作りました。

ちなみにmailq に溜っていた理由は不明。

returns.yahoogroups.jp
とか、
hogehoge-bounces@hogehoge.edu

とかが多いな。

Mac の update の後に、postfixのmain.cf を元に戻す script も作るか...

#!/usr/bin/perl

open(Mail, "mailq |");
while(<Mail>) {

# BFA891CB1425* 910 Tue Jun 8 10:56:56 hogehoge@ie.u-ryukyu.ac.jp
my($id,$q,$day,$month,$day,$time,$mail) = split;
next if($mail !~ "@");
$hist{$mail}++;
}

my $sum;
my $count = keys %hist;

foreach my $key ( sort { $hist{$a} <=> $hist{$b} } keys %hist ) {
$sum += $hist{$key};
next if ($count-- > 50);
print " $hist{$key} $key\n";
}

print "Total $sum\n";

Wednesday 16 June 2010

イオンエンジン

なんか高校の文化祭でデモを見たことがあります。ってことは30年前以上。なので、原理は早くから知られていたらしい。

http://www.jspf.or.jp/Journal/PDF_JSPF/jspf2010_05/jspf2010_05-282.pdf

とかのはやぶさの論文を見ると、中和用の電極があるらしい。当時のデモに、そんなものがあったような記憶はないんだけど、あったのかも。

宇宙船と言うと太陽系を自在に移動するって感じだけど、実際には、軌道を少し変えて、惑星を使ってスイングバイってな感じですね。

成功しないと盛り上がらないのが日本っぽい。平野さんも、HIIが続けて失敗していた時は、すごく暗かったみたなことを言ってました。(もちろん、部署は全然違う)

./J でも、「でも、資料取れてない可能性高いんだろ?」みたいな突込みはあった。パチンコぶつけて跳ね返りを受け取るみたいな方式なんだけど、そのパチンコがどうも発射しなかったらしい。何回かぶつかっているらしいので、微量なものは入っているだろうけど、それが分析できるかどうかはね。

プラネテスでも結構自由に飛んでいたが、推進剤どっから持って来るのかって問題はあるよな。地球からってのは無理筋だから、小惑星を地球のそばに持って来て、それを発掘するのか? 月から持って来るのかな。

月上の自動発掘ロボットとか作って欲しい。でも技術ってのは、すぐに失われてしまうものだからな。連続性は確保して欲しいところだが。

Monday 14 June 2010

涼宮ハルヒの消失

見て来ました。一応、漫画は読んでたので、問題ありません。アニメはほとんど見なかった。

主人公のキョンって、明らかに他の人に説明してないよね。いや、「説明したことになっている」のは、さすがにたまにあるんですがね。大体、説明無しに答えだけ、服従だけ要求してる。まぁ、ハルヒもそうなので、そんなものなんでしょうけど。でも、やっぱり変。長門が説明役なはずなんだけど、こういうストーリーだと、それが使えないので余計そうなっているのだと思います。

ハルヒは時間ものなので、それに沿った話の展開。なので、原作読んでないと理解不可能。そこまでおいてけぼりで良いのかとも思うが、まぁ、この映画を見るような人には、そこまで期待して良いんでしょう。話に付いていければ良い話だと思います。

人が面白い人生と平穏な人生のどちらを選ぶかは、年齢にも寄るかな。20代なら、もちろん前者だが、50代になると後者かも。その方が宇宙的には平和だしね。お嬢様っぽい方のハルヒの方が僕は好みなみたいだし。

Saturday 12 June 2010

Java Kuche 勉強会

なんか、久しぶり。今までで一番人が来ているんじゃなかろうか? 人数制限あるので、もぐりが多いってことなのかも :-)

OCC 連チャンだけど、それも Java Kuche らしいかな。

* Google code 注の f*ck の数は、PHPが断トツ

* Ruby 使いでも、とっさには Perl が出てしまう。

Friday 11 June 2010

鉄腕アトム

なんか、BS11でやっているので録画してます。(が、見てません) たぶん、2003年版じゃないかな。いや、違うな。1980年版か。

割と原作に忠実な印象。

  イワンのバカ
  魔神ガロン
  盗まれた太陽
  地上最大のロボット

いや、見てないんだけど。つうかそういうの多い。

Blu-Ray は、一旦、Blu-Ray に書いちゃうと書き戻せない。なので、お気に入りのシーンを切り出すなんてことも出来ません。アニメの

  棺桶

あるいは、

  墓場

ですね。今回は、刀語、Angel Beats 位かな。見てるのは。なんかつまらん。

あ、今日は「ハルヒの消失」の最終日か〜

Thursday 10 June 2010

大学周辺の食事

産総研の友人(平野さん)が来たので、じゃぁ、お昼ご飯なんだけど、大学周辺だと微妙〜

 うかじそば (沖縄そば、普通)

ちょっと、僕の下限を切っているかも。でも、普通。

 Hantabaru (ふつうの洋食)
 http://r.tabelog.com/okinawa/A4704/A470405/47005970/

大学の近くでなくて良いなら、

 あしびうなぁ (沖縄料理)
 http://www.ryukyujima.net/shop_info.php?ShopCode=020051&&AreaCode2=04

お昼やっているのね。でも、ここもどちらかと言えば場所が良くて味は二の次かな。

実は、

  キングターコス 
  http://r.tabelog.com/okinawa/A4703/A470404/47000035/

は評価高いです。が、ジャンクだからな〜 接待にならん。

L'Oasis 愛用していたんですが、なくなっちゃった。軽食はあるらしいんだが...

あとは、阜(ゆたか)だけど、あまりに本土っぽすぎる。

  http://yutaka.okitabe.com/

今回は、Hantabaru にしてみました。

夜は、ぱいかじ。

Wednesday 9 June 2010

Haskellと、メールの遅延

特に毎日日記を書くようにしているわけでもないので良いんですが... (嘘つき)

Haskell 走らせてて微妙にはまって、

 http://ja.wikipedia.org/wiki/Haskell#.E7.84.A1.E5.90.8D.E9.96.A2.E6.95.B0.E3.81.A8.E3.82.AB.E3.83.AA.E3.83.BC.E5.8C.96

 max = \a -> (\b -> if a > b then a else b)

これが、

GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> let max = \a -> (\b -> if a > b then a else b)
Prelude> max 1 2

<interactive>:1:6:
  No instance for (Num ())
   arising from the literal `2' at <interactive>:1:6
  Possible fix: add an instance declaration for (Num ())
  In the second argument of `max', namely `2'
  In the expression: max 1 2
  In the definition of `it': it = max 1 2
Prelude>

とか文句を垂れる。なにぬねの。

   *   *   *   *   *   *

「ま、良いや」で、今までさぼってた学科のメールを gmail (iPhone 専用) に転送しようと思い立つ。

えーと、.forward に procmail 書いて SPAM 以外を gmail に送って、あとは、今まで通り転送して... とかやると全然メールが来ない。なんで?

と思うと、nirai にメールが溜りまくり。確かに一部の先生の送信が1200とか溜っているんですが、普通、そんなのに時間かからないんだけどな。amavisのprocess 増やしたり、time out 増やしたり...

結局、めんどくさくなって root とから送信キューを削除。(乱暴...) 夜中には掃けたようです。

でも、自分のmailの方に「mail loop detection」なるものが...

自分のサーバ側で、
  \kono
  procmail ...
とかすると、cr domain に送ってしまうらしい。いや、そうしないと、自分のcr domain 学生にメールを送れない。それは、まぁ、正しい。でも、それじゃ困るんだけど。

なので、nirai 側で、gmail に転送するように。nirai の負荷を上げたくないんだが...

でも、
  nirai から研究室サーバに転送
  研究室サーバから振り分けて事務サーバに転送
ってやってる人もいて、事務サーバは、nirai 経由なので結局 nirai の負荷はあがる。うーん。

なんか配送側は amavis 動かさないで、spool 側だけで動かす方が良いのか。良くわからん。

Monday 7 June 2010

Google Paper and iPhoto

昨日のAppleScript のすったもんだで、写真は小さいものはちゃんと削除出来て、32767 枚の写真は、無事、iPhone に同期しました。おかげで、音楽は、ほとんど入らず。

3万枚だと、さすがに重くて、開くのに少し待つ。さらに、アルバムを選択するのに時間がかかる。音楽側も40GBある。それでも、64GB version が出れば、写真全部、音楽全部でも入りそう。

でも、別に、3万枚いつも持ち歩く必然性はないな。MBP17 も持って歩いているわけだし。なので、少し整理して、一部だけにするでしょう。重複が結構ある。1-2割あるんじゃなかろうか。重複を探すソフトとかもあるらしいが...

limit は25万枚とか言う説が。まぁ、そこに到達する頃には限界も広がって... って言うか、そこまではいかないかも。一年1万枚は取らないみたいだから。

ついでに、Google Paper も同期してみました。全然整理されてなくて、PDFとBibTeXがばらばら。名前のないPDFに、PDFのないBibTex。読めなくない感じです。しかも、全然場所取らない。ってことは、データは外にあるらしい。つうか、自分で持っているPDFって全部で502MBぐらい。書籍じゃないからページ数ないからね。Scan したPDFも、うまくやればかなり小さくなります。手抜くとでかくて読めないのが出来上がる。

どっちも暇を見つけて整理ってところですかね。別に忙しくもないし。

Sunday 6 June 2010

iPhone and AppleScript 解決篇

Event log ってのがあるじゃん。

tell application "iPhoto"
    count every photo whose width < 400
        --> 3897
    get width of item 1 of every photo whose width < 400
        --> 270.0
    remove item 1 of every photo whose width < 400 from album 0
    get width of item 3 of every photo whose width < 400
        --> 370.0
    remove item 3 of every photo whose width < 400 from album 0
     ...

うーん。every photo を毎回送っているな。これは...

つまり、repeat with aPhoto in (every photo whose width < 400 ) の()の中を毎回 eval ってる。

ってことは...

tell application "iPhoto"
    set small to 0
    set aList to every photo whose width < 400
    repeat with aPhoto in aList
        remove aPhoto from album 0
        set small to small + 1
        if small mod 100 = 0 then
            say small
            say "is removed"
            -- empty trash
        end if
    end repeat
    -- empty trash
    small
end tell

で、良いみたいです。削除には時間がかかるのは仕方がないが。もっとも、aList が小さくなったので、この方法が可能になったらしい。

うーん、でも、これでも、ゴミ箱に入る数が合わない。 やっぱり empty trash しないとダメなのかな。

tell application "iPhoto"
    set small to 0
    set aList to every photo whose width < 400
    set num to (count of aList) as text
    say num & " photos will be removed"
    repeat with aPhoto in aList
        remove aPhoto from album 0
        set small to small + 1
        if small mod 100 = 0 then
            say small
            say "photos are removed"
            empty trash
            photo 0
        end if
    end repeat
    -- empty trash
    small
end tell

empty tash の後の、photo 0 がないと、album 0 がないとか言って来るみたいです。おまじないです。

でも、速度的には、番号でアクセスする方が高速。おそらく、aPhoto でアクセスすると、object id かなんかを送っていて、それを探すのに時間がかかっているらしい。なので、photo 253 とかでアクセスする方が高速なようですね。

でも、empty trash の後で、何故か、

 album 0 not found

とか言って来る。ダメじゃん。すると、tiwtter.com/Piyomaru 氏が、

with timeout of 36000 seconds
    tell application "iPhoto"
        remove (every photo whose width < 400)
    end tell
end timeout

で、一瞬で終るっていうんですが、timeout 36000 seconds って一瞬なんですか? それに、このscriptって、「debug 不可能」だと思うんだけど。でも、まぁ、かなり速いかな。といっても、3700削除するのに、26分で終らず。


たこな言語作るんじゃねぇ! って所ですが、たぶん、言っても聞かない人が作っていると思われ。

こっちのコードの方が綺麗なんだが...

動かない。つうか、動かしているんだが、

 iPhoto (not responding)
 iPhoto のメモリが200MBから800MB増加後、200MBまで減少を繰り返す

で、終らないです。なんともならんな。

おそらくは、every photo で、全部のphotoの情報を取って来るのがいけないのだと思う。しかも、一件ずつ、AppleEvent 出しているんだと思う。そうとしか思えない。AppleEvent Monitor とかないのかな。

この repeat with .. every を直してくれれば、ApplpScript 悪口を言うのは、金輪際いたしません。

if 文は、AppleScript を信用してないからです。

tell application "iPhoto"
    set small to 0
    repeat with aPhoto in (every photo whose width < 400)
        if width of aPhoto < 400 then
            remove aPhoto from album 0
            set small to small + 1
            if small mod 100 = 0 then
                say small
                say "is removed"
                -- empty trash
            end if
        end if
    end repeat
    -- empty trash
    small
end tell

AppleScript and iPhoto の続き

なんか、どうも、photo 500 を remove すると、photo 500 が次のものに置き換わるっぽい。で、count of photo も変わっちゃうので、設定し直さないとだめ。特定のeventを設定しておくと速いみたいです。

ってことは、こんな感じか?

tell application "iPhoto"
    set i to 0
    set small to 0
    set m to count of photo
    repeat while i < m
        if width of photo i < 400 then
            remove photo i from album 0
            set m to count of photo
            set small to small + 1
            set i to i - 1
            if small mod 100 = 0 then
                say small
                say "is removed"
                empty trash
            end if
        end if
        set i to i + 1
        if i mod 100 = 0 then
            say i
        end if
    end repeat
    empty trash
    small
end tell

こんなダサイループじゃなくて、

  repeat with aPhoto in every photo whose width < 400
     remove aPhoto from album 0
  end repeat

とかっこ良く書きたいんですけど。
   

Saturday 5 June 2010

iPhoto

昔は、5000越えるとクソ遅くて、iPhoto Library Manager ってのを使って分割してます。今も惰性で分割してます。永山さんが4万入れてるとか言うので、全部入れてみようと思い立ちました。(要するに暇)

すると、6万ぐらいある。読み込み自体は1時間ぐらいで終りました。Pictures から読み込んだので、重複はあるんだが、サムネール分が結構あるはず。つうか、半分はサムネールだろう。理論的に。

なので、それを削除したいわけだが、例の通り、Apple Script か。

tell application "iPhoto"
    set i to 0
    set small to 0
    set m to count of photo
    repeat while i < m
        if width of photo i < 500 then
            remove photo i from album 0
            set small to small + 1
        end if
        set i to i + 1
        if i mod 100 = 0 then
            say i
            empty trash -- あぶな〜
        end if
    end repeat
    small
end tell

ですかね。なんだが、remove photo i from album 0 で、visible bell がなっちゃう。これに1秒程度取られるらしく時間がかかる。削除がないと100photo/7sec で、削除があると100photo/60sec ぐらい。なので、6万だと10時間ぐらいかかるらしいです。

こんなことなら、exif 見て、小さいものを除いてコピーして置いてから、library に読み込む方が良かったかも。まぁ、いいよ。

say ってやると番号読んでくれるので調子が良いです。

これで、統合したものを使うようにするのかどうかは、まだ、決めてません。iPhone との同期の時間にもよるね。

Thursday 3 June 2010

抜歯

今日の飲み会はなくなったので、昨日は、代々木上原から飲み始めて、池袋で朝5時まで飲んでました。ずーっとウィスキーだったが、さすがに飲みすぎだったかも。もっとも、そういう飲み方だったので、宿酔は無し。東京で朝まで飲むのは珍しい。

で、起きたら12時過ぎてたので、少し遅刻気味に歯医者に。最近は丁寧に麻酔するのね。で、ペンチでぐいーとひっぱったら、抜けて終り。5分かかった? とか聞いていた。「これはひどい」とか言っているし。まぁ、だから抜いたわけなんだけど。なんか、普通は根っ子が溶けたりしないらしいので「生検しても良い?」とか聞かれます。良いよと言うと+2千円。微妙になっとく出来ない気もするが、まぁ、良いかな。腫瘍性のものもあるらしい。それがわかったからどうこうというわけではないと思いますけどね。

写真も撮ったが、嫌いな人もいるだろうから止めておきます。

この歯は、奥から二番目の奥歯で、最初に生える永久歯らしく、虫歯になりやすいんだそうです。まぁ、あんまり後悔しないんだが、歯に関しては、もう少しなんとかならなかったかなぁと思います。金属入っていると食事がおいしくない。って、入ってなかった頃を良く覚えているわけでもないんだが。

明日は、ミーティングが全然決まらず。何やってんの? でも、土曜日は酒飲むらしいです。

Wednesday 2 June 2010

歯医者




なんか抜かなきゃいけないとかで、いろいろさぼっていたんですが、10年ぶりに綾瀬の歯医者にいったら、やっぱり抜けと。なので、明日明後日で抜いて来ます。飲み会は入っているが、そんなに飲まなければ大丈夫だろう。

と言うか、この一週間忙しかったので、今日はお休みです。

代々木上原のDishで、電源と無線LANを確保。ついでにビールも。

Tuesday 1 June 2010

茶店の梯子、論文書き、論文管理

茶店の梯子しながら、論文書いてました。書き終ったら、なんか、〆切が思いっきり延ばされてました。まぁ、良いんだけど。頭冷やして、もう少し直すか。つうか、コード書けるし。

スタバは、最近、コンセントがある。幸せです。でも、無線LANが、NTT系列しかない。Flets と Docomo 止めちゃったので受けれないです。

ですが、なんと、一日10分のお試しがある。で、Google Papers を落そうと思ったら、なんか、makentos とか変な会社になってるよ。4200円? iPhone/iPad は別? いや、1700円払うと、iPhoneとiPad で使えるみたいです。

自分の論文はWebに、他人の論文の管理は(Webに置けないので)iTunes に入れてます。Google Papers は、iTunes より高速。すらすら見れるのは良い。

でも、実際に必要なのは、BibTex format だったりする。それを正しく設定するのは、少し大変そう。BibTex のファイルを読み込んで、match paper とかするのかな?

iPhone と同期もするんですが「iPhoneじゃ、読めません」意見が多数。僕もそう思います。PDFは無理だね。

東京寒い。少し風邪ひいたかも。