僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
kernel2.4.29では無線LANが認識できたものの、サスペンドと音声をどうにもできず、
kernel2.6.11.5を入れた。
無線LANも大切だが、サスペンドと有線(?)LANの方が重要だから。
が二通りできてしまった。 原文がまともな英文に見えるかはよくわからないが。 かと思ったら、ブラウザのキャッシュを消して 翻訳をさせるたびに、微妙に違う日本語ができている模様。 適当に保存しておこう。
自分の誤字も見付かった。ドイツ語はGermanらしい。塑像がstateになっていた。
あと、Googleの翻訳エンジンをブラウザでつっつくと、こんなログが残った (これは多分自分のだ)
216.239.36.136 - - [24/Mar/2005:12:29:44 +0900] "GET /mine/about/about.en.html \ HTTP/1.0" 200 1729 "http://translate.google.com/translate_p?hl=ja&sl=en&u=\ http://www.kuzuore.com/mine/about/about.en.html&prev=/search%3Fq%3Dsato%2B\ makoto%2Bkuzuore.com%26hl%3Dja%26lr%3D%26inlang%3Dja" "w3m/0.5.1,gzip(gfe)\ (via translate.google.com)"
は、外に時刻を聞きに行く以外、何も設定しなくていい...らしい。
適当なクライアントから # ntpdate SERVER で通ってしまった。
とりあえず(Macはapple.から聞いているのでほっとく)、
残りは全部そちらから聞くか。ntpというCNAMEをDNSに放りこんだ。セカンダリに
反映されるのは15時位か。
しかし同じntp.confを何回も設定するのは面倒臭い...
サスペンド効かないな...なんて考えているうちに、
SoftwareSusmendの
ページを思い出した。
行ってみると2.4.29に対応したパッチが出ているので早速当ててみる。
make modulesでコケたので、いくつかをカーネルに、いくつかを無効にして
再度再構築。おっと、起動時パラメータに resume2=/dev/hdXXを設定してと。
# echo -n 4 > /proc/acpi/sleep などとすると、すっと眠る。が、
Xが起動しているとハイバネーションに失敗?読み直し、hibernationスクリプト
を入れた。しかし、Xが絡むとうまくいかないのは同じ。ACPIを外すと、
サスペンドしてもスイッチが切れず、電源ボタンを押すと切れた。
あと、alsaもいらったが、どうしても音は出せなかった。
monaフォントを再インストール。
これもホッと一息。
$ cat bomb.sh #!/bin/sh sh bomb.sh $ sh bomb.sh . . . bomb.sh: bomb.sh: Too many open files in system $echo $? 126
ppp-onでAirHが復活した。
404になってたところを直した、つもり。
debianでは唯のckermitはないらしい。と勘違い。
Sarge:~# apt-cache search kermit gkermit - A serial and network communications package modemu - Telnet services for communication programs Sarge:~# apt-cache show gkermit Package: gkermit Priority: optional Section: comm Installed-Size: 116 Maintainer: Masayuki Hatta (mhatta)Architecture: i386 Version: 1.0-4 Depends: libc6 (>= 2.3.2.ds1-4) Filename: pool/main/g/gkermit/gkermit_1.0-4_i386.deb Size: 39816 MD5sum: d220f978decc0835bc92cee5810396cd Description: A serial and network communications package G-Kermit is a GPL'd kermit package. It offers medium-independent terminal session and file transfer. The non-free package ckermit adds connection establishment, character-set translation and scripting features.
適当に~/.kermrc書いてgkermitしても、出るのはヘルプメッセージばかり。
顔の節穴を広げて、↑やmanをよくよく凝視するとファイル転送用途
にしか使えないっぽい。
やれやれ。/etc/apt/souces.list の適当なところをコピーしてmainをnon-freeに
変え、apt-get update。
そういえばKNOPPIXにはkermitは入ってない。なんとかせねば。
kermit ではlineやspeedやcarrier-watchの他に "modem type none" も SETしておくと繋がるらしい。
独楽じゃなくて駒だが、それはさておき。
man hoge -t するとPostScriptを吐くのか。そうなのか。
iptables-save などをいらったりman したりの間に偶然気づく。
:~$ man 1 ls -t | head %!PS-Adobe-3.0 %%Creator: groff version 1.10 (jversion 0.99) %%CreationDate: Fri Mar 24 12:38:34 2006 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Times-Italic %%DocumentSuppliedResources: procset grops (1.10 (jversion 0.99)) 0 %%Pages: 5 %%PageOrder: Ascend %%Orientation: Portrait
(少なくともSargeでは)日本語も通った。
Plamo-4.2β2を拾う。まずはqemuに突っ込んでみた。
Celeron2Gなホストが、また起動しなくなっている。電源部かどこかが
いかれたかも。
こないだ(数日前)は電源コードを抜いて放置していたら
いつの間にか直っていたが。
デスクトップのPlamoは、sudoを上げたことがなかったようだ。
適当に--prefix=/usr で make。removepkg sudo で古いのを
消してから make install。
/etc/suduers を消されて(雛型でもって上書きされて)しまったらしいが、
大した定義はしてないので、まぁいい。
pamを定義しないと認証が全然通らない。
外してもいいけど、逃げてばかりもなんだね。
通らないときのログ(/var/log/messages)が、
Mar 24 23:39:20 host sudo(pam_unix)[7156]: authentication \ failure; logname=$USER uid=0 euid=0 tty=/dev/pts/5 \ ruser= rhost= user=$USER
これまた適当に/etc/pam.d/sudoをコピペして試す。
$ cat /etc/pam.d/sudo auth required pam_stack.so service=plamo-default account required pam_stack.so service=plamo-default password required pam_stack.so service=plamo-default session required pam_stack.so service=plamo-default
で、その上で sudo ls などやってみた。
Mar 24 23:39:24 $HOST sudo: $USER : TTY=pts/5 ; \ PWD=$PWD ; USER=root ; COMMAND=/bin/ls Mar 24 23:39:24 $HOST sudo(pam_unix)[7156]: session \ opened for user root by $USER(uid=0) Mar 24 23:39:24 $HOST sudo(pam_unix)[7156]: session \ closed for user root
さて、pam(Linux-PAM)のバージョン(pam-0.77-i386-P9)は大丈夫だろうか。
ringサーバのkernel.org/libs/pam/pre/library/を
覗いたら、Linux-PAM-0.99.10.0.tar.gzとかあったりする(14-Feb-2008 00:25)が。
なんとなく試す気になった。 Ubuntuへのインストールを参考にして Linux From Scratch SVN にゴリゴリとインストールする。
ocalmをインストールし、続いてhaxeのコンパイラを、そしてneko-vm、それから
toolsを入れる。そのためにMySQL-5.1.30を、それからapacheを。
apache-2.2.11は既に入っていたが、途中でapache-1.3xのincludeを欲しがるの
ようなので、結局apache-1.3.41も別ディレクトリに入れた。
簡単な*.jsや*.swfを吐く(Webブラウザで見える)のは確認できたが、今はそこまで。
LISPの本を買った。
4ページの性格判定によると、Common Lisp 向きとのことであった。
> (eq (not t) (cdr '(foo))) T
gosh> (eq? #f '()) #f
まあ、このあたりの違いに騒ぐつもりはあまりない。
if の下で複数の処理をするには progn だそうだ。
そういえば、手続き型言語の多くに当然のごとく
用意されてる区切り符号とかインデントとか、
がなかった。
> (if (eq nil t) (progn (princ "foo") (princ "bar")) (progn (princ "bar" ) (princ "foo"))) barfoo "foo"
書きやすそうだけど、どうも if は
とりあえず、car と cdr で同じになったものを 付け足しておく。
> (cadr '((1 2 3) (4 5 6) (7 8 9))) (4 5 6) > (car (cdr '((1 2 3) (4 5 6) (7 8 9)))) (4 5 6)
cadr は、 carと cdrか。
> (caddr '((1 2 3) (4 5 6) (7 8 9))) (7 8 9) > (car (cdr (cdr '((1 2 3) (4 5 6) (7 8 9))))) (7 8 9)
caddr は、 carと cdrと cdrらしい。
> (cddar '((1 2 3) (4 5 6) (7 8 9))) (3) > (cdr (cdr (car '((1 2 3) (4 5 6) (7 8 9))))) (3)
cddar は、 cdrと cdrと carでいいのかしら。
> (cadadr '((1 2 3) (4 5 6) (7 8 9))) 5 > (car (cdr (car (cdr '((1 2 3) (4 5 6) (7 8 9)))))) 5
cadadr は、 carと cdrと carと cdr らしいが、もーわからん。
スクリプト言語によっては、かなり移入されてる気が。
> (setf foo '(1 2 3)) (1 2 3) > (setf bar '(1 2 3)) (1 2 3) > (eq foo bar) NIL > (equal foo bar) T > (setf foo2 foo) (1 2 3) > (setf foo3 foo) (1 2 3) > (eq foo2 foo3) T
リストの要素を数えるCommon Lisp が例題に載っていた。
手習い風に書いてみた。
(define my-length (lambda (list) (cond ((null? list) 0) (else (+ 1 (my-length (cdr list))))))) gosh> (my-length '(1 2 3 4 5 6)) 6
シンボルがリストにあれば、それとその後ろすべての
リストを返す。
なければ偽を返す。
どっちも似たようなものなんだろうな。
> (member 'foo '(1 2 foo nil t)) (FOO NIL T) > (member nil '(1 2 foo nil t)) (NIL T) > (member 3 '(1 2 foo nil t)) NIL
gosh> (member 'foo '(1 2 foo #f #t)) (foo #f #t) gosh> (member #f '(1 2 foo #f #t)) (#f #t) gosh> (member 3 '(1 2 foo #f #t)) #f
を繋いでみた。
繋ぎ方は、
+ ---R1--LED1---LED2--R2--AMPERE--- - | GPIO
でないと駄目だった。電流計自体のグランドと、 測定用のグランドが内部で共通になっているため、 LED1側に繋ぐと、電気がほとんど抵抗なくそちらに逃げてしまい、 とんでもない電流値になったり、あるいはGPIOがOUTになるまで 全然動作しなかったりするから、らしい。
明るい場所ではLEDが消えているように見える 間に流れている電流は1mAより小さいらしい。電流計はゼロを 表示していた。
LEDとGPIOの間も考えたが、この電流計は
負圧は測れない模様。今は諦める。
というか、そんなことをやってたら電流計(動作電圧4.5V-28V)から出た
電流が共通のグランドからGPIO(3.3V)に流れて
Raspiを壊す危険性もあった(!)。
前に書いたかも、はどうでもいい。
以下、gauche。
(define myfact (lambda (n) (cond ((<= n 1) 1) (else (* n (myfact (- n 1)))))))
gosh> (myfact 100) 93326215443944152681699238856266700490715968264381\ 62146859296389521759999322991560894146397615651828\ 62536979208272237582511852109168640000000000000000\ 00000000 gosh>
EmacsLispで書いた次のスクリプトでは、あまり 大きな数は扱えないかも。
(defun myfact(n) (cond ((<= n 1) 1) (t (* n (myfact (- n 1))))))
(myfact 63) 1585267068834414592 (myfact 64) Lisp nesting exceeds `max-lisp-eval-depth' max-lisp-eval-depth 641 (setq max-lisp-eval-depth 1000) (myfact 64) 0
なんとなくLISPの真似をしてみた。
#!/usr/bin/env python from sys import argv num = int(argv[1]) def myfact(x): if x <= 1: return 1 else: return x * myfact(x - 1) print(myfact(num))
$ python myfact.py 6 720 $ python myfact.py 999 | wc 1 1 2566 $ python myfact.py 1000 Traceback (most recent call last): File "myfact.py", line 11, inprint(myfact(num)) File "myfact.py", line 9, in myfact return x * myfact(x - 1) File "myfact.py", line 9, in myfact return x * myfact(x - 1) File "myfact.py", line 9, i . . . File "myfact.py", line 9, in myfact return x * myfact(x - 1) RuntimeError: maximum recursion depth exceeded
このスクリプトをpython3にかけると、998が限界だった。
エラーで検索して、とりあえずの対応。
>>> sys.getrecursionlimit() 1000 >>> sys.setrecursionlimit(2000)
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。