僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
出会い系と思しき電話が英語でかかってきた。言うまでもなく"No, thank you!"の
ガチャ切り。
今の電話番号になってまだ一月経ってない筈。
あまり他所には伝えていないが、一体どこから洩れたんだろうか。
NTT?コンビニ?プロバイダ?役所?家主?もしや whois??
NotePC+Linux2.6.9でもってpppoe運用してみることとする。
クライアントの設定を変えるのが面倒なので、これまでADSLルータの持っていた アドレスをノートに設定する。ADSLルータをブリッジに切替えて繋ぎ直し、 iptablesでもってipforwardし、メールとWebが通じることを確認。
Noteの方は中と外からポートスキャンかけつつ、怪しいネットワークサービス
は全部落す。
sshdまで切ったのでシリアルコンソールからしか入れなくなった
(tty1とtty2は開けてあるが、まず無理) 。が、それで十分だ。
ついでにiptablesをいらって、クリスマスとNULLを撥ね、FIN,URG,PSH も
受け付けないようにする。
オプション無しのnmapで叩くと、すぐ終了した。
もちろん、クライアントPCの設定は(ほとんど)変える必要はなかった。 ただ、プロバイダからメールを取ろうとしたら、なぜかmewとsylpheedで認証に 失敗。なぜかその後はトラブルなくメール送受信できてる。
消せないPCが一台増えて、また一段と五月蝿くなった。
と思って、家のメールサーバをtelnetで叩き、携帯とプロバイダのIDとに
送信してみた。
すると、
Dec 13 09:32:17 MSERVER postfix/smtp[19789]: MAIL_ID: to=<KEITAI>, \ relay=SERVER.KEITAI[IP], delay=92, status=sent \ (250 Ok: queued as 672808B) Dec 13 09:32:28 MSERVER postfix/smtp[19790]: MAIL_ID: to=<ID@PROVIDER>,\ relay=HOST.PROVIDER[IP], delay=103, status=sent \ (250 2.0.0 iBD0WJt5019454 Message accepted for delivery) Dec 13 09:32:28 MSERVER postfix/qmgr[16784]: MAIL_ID: removed
delayの数字が随分でかいが、一体何だ?何故に?
実体参照で、&と書く方がいいらしい。
"<"とか">"は、<> と直すようにはしているが。
で、昨日の続き。
デーモンは動いている。認証を確認しないと。
$ telnet IMAPSERVER 143 Trying 1IMAPSERVER... Connected to IMAPSERVER.DOMAIN.TLD Escape character is '^]'. * OK [CAPABILITY IMAP4REV1 LITERAL+ SASL-IR LOGIN-\ REFERRALS STARTTLS LOGINDISABL ED] IMAPSERVER IMAP\ 4rev1 2004.357 at Tue, 13 Dec 2005 22:01:13 +0900 \ (JST ) 01 CAPABILITY * CAPABILITY IMAP4REV1 LITERAL+ IDLE NAMESPACE MAI\ LBOX-REFERRALS BINARY UNSELECT SCAN SORT THREAD=R\ EFERENCES THREAD=ORDEREDSUBJECT MULTIAPPEND SASL-I\ R LOGIN-REF ERRALS STARTTLS LOGINDISABLED 01 OK CAPABILITY completed 02 LOGIN USER PASSWD 02 NO LOGIN failed (ry 05 NOOP 05 OK NOOP completed 06 LOGOUT * BYE IMAPSERVER IMAP4rev1 server terminating conn\ ection 06 OK LOGOUT completed Connection closed by foreign host.
続きはまたまた先になりそうだ。
Real以外の動画もPlamoで見たくなった。で、適当にぐぐる。MPlayer本体にコーデック、フォント、 そしてfirefoxのプラグインをインストールするらしい。
ダウンロードサイトから色々頂戴する。
MPlayer-1.0rc1(ソースコード)とessential-20061022(Linux(x86)向けのコーデック)
そしてfont-arial-iso-8859-1(フォントファイル)。
READMEによれば、./configureでコーデックの在処を指定するらしい。
./configure --help を見て、適当にオプションを付ける。
$ ./configure \ --enable-gui \ --enable-radio \ --language=ja,en \ --with-codecsdir=../essential-200610
makeが
無修正で通るなんて信じられない。
make install が済んでから、動画のURLが確認できる例外的なサイトで
mplayer単体の動作確認。画像、音声ともOK。
フォントは...と、これもアーカイブをほどいて、丸ごと
/usr/local/share/mplayer/fontsの
下に移せばいい、のかな。
$ mplayer --help MPlayer 1.0rc1-3.4.3 (C) 2000-2006 MPlayer Team CPU: Intel(R) Celeron(R) CPU 2.00GHz (Family: 15, \ Model: 2, Stepping: 7) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 x86 CPU 向けにコンパイルされました: MMX MMX2 SSE SSE2 使い方: mplayer [オプション] [url|パス/]ファイル名 (ry
酷い現実がここにも。
先に触れた例外を除いて、WindowsXP,2000以外のクライアントを
尽く閉め出している
間違ったサイトがほとんど。USER_AGENTを偽らねばなるまい。
そうでなくても、動画のURLは大抵教えてくれない。ブラウザと組み合わせないと
まずムリ。
で、
mplayerplug-in-3.31を貰う。INSTALLによれば、こんどは
mozilla-develを別途インストールする(何のこと?)か、geckoのsdkを指定する模様。
で、
Ringサーバからgecko-sdk-i686-pc-linux-gnu-1.8b1を貰ってきてほどく。
今度はこんな感じ。
$ ./configure \ --with-gecko-sdk=../gecko-sdk
make && sudo make installが終わる。
これにldconfigでもやっとけば良かったかもしれないが、
INSTALL 通りに *.soなファイルを firefox/plugins に、 同じく*.xpt を
firefox/componetsにコピーする。
色々なファイルを置いてある プロレス動画実験室 が一番試しやすいようだ。 javaランタイムの必要な(面倒くさいよぉ)emblaze動画以外は視聴できた。ただ、 asfとwmv形式は、Firefoxのインライン表示ができなかった。 また、どれ(誰)が悪いのか分からないが、 wmv形式を表示するとブラウザがコケたりすることもあった。
あまり見当たらないが、QuickTimeも表示できた。
MPlayerとPlamo(と、その他諸々のOSS開発者諸氏)
まんせい。
現在これを書いているSCIM+Anthyでは波ダッシュ(/\/)がnviなどに出ない。
なんとか出そうと色々やってるうちにnviが何か勘違いしたらしく、:q!する
しかなくなった。もういい。
↑をsubmitして、ブラウザで確認したら、同じ画像と文がいっぱい。
確か、こんなのが災いしたようだ。
<img class="photo" src="hogehoge" width="XXX" height="YYY" alt="ZZZ" title="AAA" </a> </p>
さて、Chapter6.15が過ぎて、LFSの峠は越えた。後は長い長い下り坂だ。
一晩寝てから続けるとしよう。
後は若干の設定とlinuxカーネル、そしてgrub(Chapter7に移動した)だけど、 リモートなので、再起動後はどうにも。
どっちが「速い」のか、軽く試す。
昨日の機器に、有線と無線各一台をぶら下げ、通信速度のベンチマーク。
めんどくさいので、sshfs で共有したファイルをコピーする。
ちなみにファイルは dd /dev/urandom で作成しており、100MBある。
以下、2.5GHzから。
$ time cp sshfs/100MB.img . real 0m39.611s user 0m0.012s sys 0m1.644s $ time cp 100MB.img sshfs/ real 0m17.386s user 0m0.008s sys 0m0.648s
次に5GHz。
$ time cp sshfs/100.img . real 0m21.539s user 0m0.000s sys 0m1.616s $ time cp 100.img sshfs/ real 0m14.344s user 0m0.004s sys 0m0.620s
もう少し遅い機器でも試したが、5GHz優勢の傾向は大体同じみたい。
無線LANクライアントでdhcpサーバを起動し、
無線経由でアクセスポイントを含めた他の機器にIP付与してみる。
さしあたりはうまくいった。実用性は疑問だけど。
$ python3 three.py 7 3 9 9 729 9 970299 999 997002999 9999 999700029999 99999 999970000299999 999999 999997000002999999 9999999 999999700000029999999
他の一桁の数三乗では、ここまではっきりとは しなかった。
Ubuntu 14.04LTSのGNU Smalltalk 3.2.4-2。
st> three := [: f :s : t | (f + s * t) printNl ]. a BlockClosure st> three value: 2 value: 5 value: 7. 49 49 st> four := [:f :s :t :fo | (f + s - t * fo) printNl ]. a BlockClosure st> four value: 2 value: 5 value: 7 value: 3. Object: BlockClosure new "<0x2b9c7c05eb20>" error: \ did not understand #value:value:value:value: MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254) BlockClosure(Object)>>doesNotUnderstand: \ #value:value:value:value: (SysExcept.st:1407) UndefinedObject>>executeStatements (a String:1) nil
Squeak 3.9 では(少し違うけど)うまくできた。
four := [:f :s :t :fo | Transcript show: f + s - t * fo ]. four value: 5 value:2 value:4 value:6. => 18
UbuntuにはGNU Fortran のパッケージが4.{4,6,7,8}とあった。
とりあえずは一番大きい数字を。
チュートリアルを見て、Hello, Fortranしてみる。
program hello print *, 'Hello World!' ! コメント行だよ。 print *, '世界よ、& &こんにちは' print *, '8885828888888888' print *, -2147483647; print *, 2147483647 print *, 'foo', 'bar' print *, 0.3 print *, 3 + 7 * 4.1 PrInT *, 10 / 3 print *, 10 / 3.0 print *, mod(10, 3) end program hello
$ gfortran -Wall -o helfo hello.f90 && ./helfo Hello World! 世界よ、こんにちは 8885828888888888 -2147483647 2147483647 foobar 0.300000012 31.6999989 3 3.33333325 1
この単純な構文では、
2^31以上の整数は(Integerで)エラーになった。
行の分割は& Space NewLine Space &となるらしい。
行末と行頭に& で、その
間にスペースを入れてもエラーにならなかった。
; で複数の文を。
ソース一行の最大長はASCIIで132文字まで(行頭から改行まで)らしい。
とりあえずはこのあたりで。と書いた後で何度もアップデート。
書式指定が、かなりややこしく見えるので適当で我慢。
program fizzbuzz integer i do i=1, 16, 1 if (mod(i, 15) == 0) then print *, "fizzbuzz" else if (mod(i, 5) == 0) then print *, "buzz" else if (mod(i, 3) == 0) then print *, "fizz" else print *, i end if end do end program fizzbuzz
$ ./fz 1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16
st> #(1 2 (3 4)) inspect An instance of Array contents: [ [1]: 1 [2]: 2 [3]: (3 4 ) ] (1 2 (3 4 ) )
st> foo := [:x :y :z | (x + y * z) printNl]. a BlockClosure st> foo value: 2 value: 3 value: 4 20 20 st> foo inspect An instance of BlockClosure outerContext: nil block: [] in UndefinedObject>>executeStatements receiver: UndefinedObject a BlockClosure
(x - a)^2 + (y - b)^2 = r^2 の続き。
半円のブロックと、全円のブロックと、引数と。
なんかまだ冗長だけど。
ycal := [:x :r :b :nr| ((r * r) - (x * x)) sqrt * nr + b ]. dcircle := [:a :b :r :nr | circle := Pen new. circle up. r negated to: r do: [: x | y := ycal value: x value: r value: b value:nr. circle goto: x+a@y; down ]. circle up .] #(1 -1) do: [:x | dcircle value: 50 value: 70 value: 20 value: x].
st> #(3 5 7 ) do: [:x | 1 to: 5 do: [:y | (x * y) printNl]]. 3 6 9 12 15 5 10 15 20 25 7 14 21 28 35 (3 5 7 )
こっちのほうがわかりやすいかも。
st> #('foo: ' 'bar: ' 'baz: ') do: st> [:x | #('1' '2') do: [: y | (x, y) printNl]]. 'foo: 1' 'foo: 2' 'bar: 1' 'bar: 2' 'baz: 1' 'baz: 2' ('foo: ' 'bar: ' 'baz: ' )
dc もう少し。
$ cat macros_in_macro.txt # test code of [macro1 macro2] s macro3 [1 2 + p] s1 [3 2 * p] s2 [4 6 - p] s3 [l1x l2x l3x] sx lxx $ dc -f macros_in_macro.txt 3 6 -2
最初のうちはエラーばっかり。
ほとんど同じようなものの何かが、急にうまく動くような気がする。
まだ次の日になってなかったことは、今これを書くまで気づかなかった。
"1"から"1""0"まで、
さらに変なdcスクリプトを書いてみた。
多少前とは違うが、再帰で回すのは同じ。
"9"より後は、ちょっと取ってつけた感じになった。
$ echo "48s257sm[clml21+s2l2aprl2>q]sqlqx49aP48ap"|dc 1 2 3 4 5 6 7 8 9 10
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。