僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
を、ぐぐって見付けた サイトを頼りに、今度はFreeBSD(98)4.10でやってみる。 NEC(98)のUSBコントローラが OHCIなんて知らなかった(道理で無反応だった訳だ)。 それを有効にしてカーネルを再構築し、キーボードを挿すと、 認識はされたものの、キーを叩いても無反応。 改めて読み直し、# options KBD_INSTALL_CDEV のコメントを外す。 しかし、繋げれば使えるわけではないらしい。
# kbdcontrol < /dev/ttyv0 -k /dev/kbd1 -l jp.106.kbd (us.iso.kbd)
を入力して(どこから?)キーボードを切替える必要があるようだった。
(jp.106.kbdを指定しても、自分のキーボードはUS-ASCII配列になっていた)
BIOSはUSBキーボードを認識しないようだ。カーネルだけが認識できるらしい。
起動時メニューは勿論いらえない。
つまるところ、いざという時すぐ使えない。結論をいえば役に立たない。
それより、二つついてるシリアルポートをなんとか活かす方が。
シングルユーザモードの時にシリアルコンソールを
有効にする方法は...また今度確認しよう。
をMacで動かす。現状これを動かせる(音の出る)マシンはこれだけだから。
ダウンロードサイトで半自動で落したplayerは動作せず(OSが
古すぎとかイチャモンつけただけ)、legacyで拾ったRealOnePlayerは起動するや
否やFirefox1.0と無理心中。
IEから立ち上げて、ようやく見えた。
34Kbpsの配信内容はさっぱり追わず、コンソールを叩いてばっかり。
netstatとtcpdumpもっと知っておかねば。
と、ろくでもないことばっかり。
ping www.google.co.jp すると75ms前後。
普段と全然変らない。帯域余り放題、でいいのか?
index.html
からサイトの殆んど、特に
日記を舐めるように
アクセスしていったログには ConveraCrawler/0.4 とあった。
ぐぐると、
こんなのが。
ふ〜ん、impolite な bot か。ログをよく見ると、こんな身勝手なアクセスを
30分程の間に50回も繰り返していた。
HOST 63.241.61.8 - - [18/Jan/2005:09:58:07 +0900] \ "GET /~kuzu/diary/update.rb?edit=true;year=2004;month=10;day=30 \ HTTP/1.0" 401 431
さてはコメントスパマァか。とりあえずはiptablesで出入り禁止にしておく。 でも、IPアドレスの割り当て状況をもっと追求しないと、 根絶やしにはできまい。
セキュリティアドバイサリのメール見ても、
緊急でもあるまいとしばらく放置していたが、
ようやくupdateする気になった。
まず /usr/src/UPDATING を見る。ソースが
cronにより更新されたらしい事を確認し、
各々のソースディレクトリに移動して
# make obj && make depend
&& make install。
特にトラブルもなし。
apache-2.0.55 ? orphaned: www/apache2
FreshPortsに行ってみた。
・ port moved here from www/apache2 on 2005-12-03
REASON: renamed for consistency with other apache ports
www/apache20 にて、改めて make install。
何も変ってなかった。余計だったかも。
FreeBSD-SA-06:05.80211 が来た。
802.11でバッファオーバーフローとか。
カーネル再構築が必須らしい。
とはいっても、"IV. Workaround"にある通り、
無線LANなど使ってないので関係ない。
よく見たらRELENG_6以降が対象になっていた。 さらに無関係だった。
M-x html-modeに </p>が見当たらないのが 気に入らないなぁ(省略可能なんだろうけど)。 てことで、少しいじってみる。
Plamo-4.21のemacsでは、html-modeはどうやら、 /usr/share/emacs/21.4/lisp/textmodes/sgml-mode.elcに 入ってるらしい。つまり、同じディレクトリのsgml-mode.elを 編集して、$ sudo emacs -batch -f batch-byte-compile sgml-mode.el すればいいようだ。
まずは$ grep -n html-paragraph sgml-mode.el などして、関数の位置の
当たりを付ける。で、この関数をコピペして
define-skeleton html-paragraph-end などとやってみた。そして
適当なキーバインドもコピペしておく。
一応これでも使えることは使える。が、
<p>を書くなら、</p>がセット になるに決まってるじゃないか。てことで、
$ diff sgml-mode.el.ori sgml-mode.el 1383c1383 < \n "<p>") --- > "<p>\n" _ "\n</p>")
メールデータのありかは、%USERPROFILE%\AppData\Local\Microsoft\Windows Mail
だった。もちろん、デフォルトでは見えない。
ことを以前書いたかどうか、名前がありきたりすぎて検索で確認できない。ので
わからない。
をデフォルトでPCに組み込んで出荷する神経は、理解不能。
起動時メニューの右クリックで、「管理者として実行」があった。
XPにしても、「別のユーザーとして実行」ができるようだけど。
コンソールから、今動いているVirtualBOXの仮想マシンに、ホストのCD/DVDをつけたり外したり。
まずホストにCD/DVDを入れてマウントしておく、、、必要はなかった。
helpには"host:<drive>"と書かれていたが、/dev/cdromなどと、
デバイス名で書く必要があった
("/media/cdrom"など、マウントポイントを指定してもダメ)。
それから、外すときに"none"。
$ vboxmanage controlvm $GUEST dvdattach host:/dev/cdrom VirtualBox Command Line Management Interface Version 1.5.2_OSE (C) 2005-2007 innotek GmbH All rights reserved. $ vboxmanage controlvm $GUEST dvdattach none VirtualBox Command Line Management Interface Version 1.5.2_OSE (C) 2005-2007 innotek GmbH All rights reserved.
mpg321だけでは、MP3ファイルは鳴らない。
$ mpg321 -o alsa testm.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for \ Layer 1, 2, and 3. Version 0.59q (2002/03/23). Written and copyrights \ by Joe Drew. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! \ USE AT YOUR OWN RISK! Title : test Artist: Album : Year : Comment: Genre : Playing MPEG stream from test.mp3 ... MPEG 1.0 layer III, 160 kbit/s, 44100 Hz joint-stereo Can't find a suitable libao driver. (Is device in use?)
audio/libao-alsa をbmake install してOK。
html および script タグは省略。
var first = {}; var second = {}; first.data = {foo: "bar"}; second.data = new Object(); second.data.baz = "bar"; document.write(first.data.foo == second.data.baz, "<br>"); document.write(first.data.foo === second.data.baz, "<br>");
どちらも true が返る。
どちらの foo も、"bar" というString を含む変数。でいいのか?
この場合、var first = second = {}; とやるとfirst.data.foo が
"undifined" になってしまった。
やっぱり分かったような分からないような。
var strobj = {}; var newobj = {}; strobj.qux = "foobaz"; newobj.qux = { bar: strobj.qux }; document.write("newobj qux bar is ", newobj.qux.bar , "<br>"); strobj.qux = "bazfoo"; document.write("newobj qux bar is ", newobj.qux.bar , "<br>");
newobj qux bar is foobar newobj qux bar is foobar
ここでは qux の値は変化なし。
var foo = {}; var bar = {}; foo.baz = bar.qux = "quux"; document.write(foo.baz == bar["qux"]);
true が返るのは、オブジェクトは連想配列として使えるから。 らしい。
gauche で書いてみた。
スクリプトにするには、まだ足りないかと思ったが、
一応動いた。
(define fizzbuzz (lambda (x) (cond ((eq? (mod x 15) 0) "fizzbuzz") ((eq? (mod x 5) 0) "buzz") ((eq? (mod x 3) 0) "fizz") (else x)))) (define fbtime (lambda (y z) (cond ((> y z) #f) ((print (fizzbuzz y)) (fbtime (+ y 1) z)))))
x と y,z は、別々にする必要はなかった。
また、else は有っても無くても動く。
年末に買って放置していたが、
なんとか勉強会メソッドっぽく強行して汚く雑なはんだつけに
本のコピペ。
動いたことを確認し、サンプルソースから
変数、関数の定義部分のみ抜いて source コマンドに
かける。
# RaspberryPi[実用]入門 Page 153-154 より # 変数、関数定義部分のみ引用 I2CBUS="1" CHIP_ADDR="0x3e" BL_GPIO="4" BL_GPIO_BASE=/sys/class/gpio/gpio${BL_GPIO} BL_GPIO_VALUE=${BL_GPIO_BASE}/value BL_GPIO_DIRECTION=${BL_GPIO_BASE}/direction IP_ADDR=$(hostname -I) HOSTNAME=$(hostname) decimal_dump() { echo $1 | python -c \ 'print " ".join([ "%d" % ord(x) for x in raw_input() ])' } send_block_data() { i2cset -y ${I2CBUS} ${CHIP_ADDR} $1 $2 i } send_byte_data() { i2cset -y ${I2CBUS} ${CHIP_ADDR} $1 $2 b } do_reset() { send_block_data 0 "0x38 0x39 0x14 0x78 0x5e 0x6c" sleep 0.25 send_block_data 0 "0x0c 0x01 0x06" sleep 0.05 } do_clear() { send_block_data 0 1 } move_to() { send_byte_data 0 $(expr 128 + 64 \* $1 + $2) } do_disp() { send_block_data 0x40 "$(decimal_dump $1)" } change_bl() { echo $1 > ${BL_GPIO_VALUE} }
そしてスーパーユーザで適当にコマンドを叩く。
適当な位置に移動し、Hello と World! を入力し、
GPIOのLEDをONにする。
コマンドの次元で理解してはいないけど、一応
ラッパーを利用することはできたと。
こないだの旧いメールクライアントで
メールが送れず、sylpheedでできたはなしの続き。
Tsharkで文字に流し、適当に伏せ字にする。
一旦SMTPを試みて失敗(1-9)し、POPで認証(10-14)し、何もメールを 取らずにバイバイ(15-16)するが、もう一度SMTPを試みて やっぱり蹴られる(17-25)と。
1 15:05:23.90 $OLD_MUA -> $MAIL_SERVER SMTP 73 C: HELO $MYHOSTNAME 2 15:05:23.94 $MAIL_SERVER -> $OLD_MUA SMTP 93 S: 220 $SMTP_HOST ESMTP Postfix 3 15:05:24.20 $MAIL_SERVER -> $OLD_MUA SMTP 79 S: 250 $SMTP_HOST 4 15:05:24.21 $OLD_MUA -> $MAIL_SERVER SMTP 85 C: MAIL FROM:<$MAIL_ADDR> 5 15:05:24.26 $MAIL_SERVER -> $OLD_MUA SMTP 68 S: 250 2.1.0 Ok 6 15:05:24.27 $OLD_MUA -> $MAIL_SERVER SMTP 83 C: RCPT TO:<$MAIL_ADDR> 7 15:05:24.31 $MAIL_SERVER -> $OLD_MUA SMTP 128 S: 554 5.7.1 \ <unknown[$MOB_IP]>: Client host rejected: Access denied 8 15:05:24.32 $OLD_MUA -> $MAIL_SERVER SMTP 60 C: QUIT 9 15:05:24.36 $MAIL_SERVER -> $OLD_MUA SMTP 69 S: 221 2.0.0 Bye 10 15:05:24.55 $MAIL_SERVER -> $OLD_MUA POP 112 S: +OK Hello there.\ <XXXX.XXXXXXXXXX@localhost.localdomain> 11 15:05:24.55 $OLD_MUA -> $MAIL_SERVER POP 88 C: USER $POP_ACCOUNT 12 15:05:24.59 $MAIL_SERVER -> $OLD_MUA POP 78 S: +OK Password required. 13 15:05:24.61 $OLD_MUA -> $MAIL_SERVER POP 69 C: PASS $POP_PASS 14 15:05:24.66 $MAIL_SERVER -> $OLD_MUA POP 70 S: +OK logged in. 15 15:05:24.67 $OLD_MUA -> $MAIL_SERVER POP 60 C: QUIT 16 15:05:24.71 $MAIL_SERVER -> $OLD_MUA POP 68 S: +OK Bye-bye. 17 15:05:24.84 $OLD_MUA -> $MAIL_SERVER SMTP 73 C: HELO $MYDOMAIN 18 15:05:24.87 $MAIL_SERVER -> $OLD_MUA SMTP 93 S: 220 $SMTP_HOST ESMTP Postfix 19 15:05:25.14 $MAIL_SERVER -> $OLD_MUA SMTP 79 S: 250 $SMTP_HOST 20 15:05:25.15 $OLD_MUA -> $MAIL_SERVER SMTP 85 C: MAIL FROM:<$MAIL_ADDR> 21 15:05:25.19 $MAIL_SERVER -> $OLD_MUA SMTP 68 S: 250 2.1.0 Ok 22 15:05:25.20 $OLD_MUA -> $MAIL_SERVER SMTP 83 C: RCPT TO:<$MAIL_ADDR> 23 15:05:25.24 $MAIL_SERVER -> $OLD_MUA SMTP 128 S: 554 5.7.1 \ <unknown[$MOB_IP]>: Client host rejected: Access denied 24 15:05:25.25 $OLD_MUA -> $MAIL_SERVER SMTP 60 C: QUIT 25 15:05:25.30 $MAIL_SERVER -> $OLD_MUA SMTP 69 S: 221 2.0.0 Bye
普通に通るMUAならこんな感じ。SMTPのみ。
1 14:54:37.44 $MAIL_SERVER -> $MY_MUA SMTP 105 S: 220 $SMTP_HOST ESMTP Postfix 2 14:54:37.44 $MY_MUA -> $MAIL_SERVER SMTP 80 C: EHLO $MYHOSTNAME 3 14:54:37.50 $MAIL_SERVER -> $MY_MUA SMTP 250 S: 250 $SMTP_HOST | \ 250 PIPELINING | 250 SIZE 10240000 | 250 VRFY | 250 ETRN | 250 STARTTLS | \ 250 AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN | 250 ENHANCEDSTATUSCODES | \ 250 8BITMIME | 250 DSN 4 14:54:37.53 $MY_MUA -> $MAIL_SERVER SMTP 81 C: AUTH CRAM-MD5 5 14:54:37.58 $MAIL_SERVER -> $MY_MUA SMTP 128 S: 334 \ YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY== 6 14:54:37.59 $MY_MUA -> $MAIL_SERVER SMTP 148 C: \ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ\ ZZZZZZZZZZZZZZZZZZZZZZZZZZZ 7 14:54:37.65 $MAIL_SERVER -> $MY_MUA SMTP 103 S: 235 2.0.0 \ Authentication successful 8 14:54:37.65 $MY_MUA -> $MAIL_SERVER SMTP 97 C: MAIL FROM:<$SENDER> 9 14:54:37.70 $MAIL_SERVER -> $MY_MUA SMTP 80 S: 250 2.1.0 Ok 10 14:54:37.71 $MY_MUA -> $MAIL_SERVER SMTP 96 C: RCPT TO:<$SENDTO> 11 14:54:37.80 $MAIL_SERVER -> $MY_MUA SMTP 80 S: 250 2.1.5 Ok 12 14:54:37.80 $MY_MUA -> $MAIL_SERVER SMTP 72 C: DATA 13 14:54:37.84 $MAIL_SERVER -> $MY_MUA SMTP 103 S: 354 \ End data with <CR><LF>.<CR><LF> 14 14:54:37.84 $MY_MUA -> $MAIL_SERVER SMTP 446 C: DATA fragment, $NUM bytes 15 14:54:38.07 $MAIL_SERVER -> $MY_MUA SMTP 104 S: 250 2.0.0 Ok: \ queued as $QUENAME 16 14:54:38.08 $MY_MUA -> $MAIL_SERVER SMTP 72 C: QUIT 17 14:54:38.12 $MAIL_SERVER -> $MY_MUA SMTP 81 S: 221 2.0.0 Bye
検索結果の丸写しだけど、しないよりは。
VPS借りて、アップデートして、適当に色々貰っておいて。
$ sudo ufw allow to any port 25,80,443 proto tcp
$ sudo certbot certonly --manual \ --preferred-challenges dns-01 \ --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos --manual-public-ip-logging-ok \ -d $DOMAIN.TLD -d *.DOMAIN.TLD -m $MY_MAIL_ADDR
操作中に DNSのTXTレコードを書き換える。
$ dig @SERVER _acme-challenge.$DOMAIN.TLD TXT +noedns ;; QUESTION SECTION: ;_acme-challenge.$MYDOMAIN.TLD. IN TXT ;; ANSWER SECTION: _acme-challenge.DOMAIN.TLD. 200 IN TXT "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
一回目は更新を検知してくれず失敗したが、 二回目はうまくいった。
更新は、またこんど。
どうにかできた。
前に試したときは絵文字のアカウント名では認証が通らず
メール送信とIMAPへのアクセスができなかった。
今回はメールアドレスと認証のアカウント名を別々にする。
SQLiteのデータベースは次のようになった。
{PLAIN}が気になるが、それはまた後で。
sqlite> select * from sqlite_master; table|mail|mail|2|CREATE TABLE $ACCOUNT_LIST(id INTEGER PRIMARY KEY, addr TEXT, account TEXT, password TEXT, maildir TEXT) sqlite> select * from $ACCOUNT_LIST; 1|user@$MYDOMAIN.TLD|user|{PLAIN}XXXXXXXXXXXXXXXXXXXX|user 2|diff@$MYDOMAIN.TLD|foo|{PLAIN}XXXXXXXXXXXXXXXXXXXX|foo 3|日本語@$MYDOMAIN.TLD|fizz|{PLAIN}XXXXXXXXXXXXXXXXXXXX|fizz 4|😺🐕@$MYDOMAIN.TLD|buzz|{PLAIN}XXXXXXXXXXXXXXXXXXXX|buzz
まず、ASCII文字だけで送受信確認から。
アカウント名とメールディレクトリの名前は、まだ別々にできなかった。
Postfixのローカル配送。
$ grep pmailbox /etc/postfix/main.cf virtual_mailbox_maps = sqlite:/etc/postfix/$MAILBOX_QUERY $ cat /etc/postfix/$MAILBOX_QUERY dbpath = /etc/dovecot/$ACCOUNT_DB query = select maildir || "/" from $ACCOUNT_LIST where addr = '%s'
Dovecot側の設定。
$ cat /etc/dovecot/dovecot-sqlite.conf.ext driver = sqlite connect = /etc/dovecot/$ACCOUNT_DB default_pass_scheme = plain password_query = SELECT password AS password \ FROM $ACCOUNT_LIST WHERE account = '%n' user_query = \ SELECT '$MAILDIR' || maildir AS home FROM $ACCOUNT_LIST \ WHERE account = '%n'
MUAは今の所Outlook 2019だけ。
送受信の相方にできたのはGMailだけ(
SPFもDomainKeyも設定したにも関わらず
迷惑メール扱いだけど)。
相手によっては
status=bounced (SMTPUTF8 is required, but was not offered by host $HOSTNAME[XXX.XXX.XXX.XXX])
で蹴られることも。
設定のせいかどうか、届いてもメールアドレスが文字化けしたりもするから、
今の所到底まともには使えまい。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。
※ nogajun [厳格さを求めるならpsgmlがいいですよ。 確かtdiary-modeもデフォルトがpsgmlだったような気がする。..]
※ kuzu [コメントどうもっす。 今確認したところ、tdiary-mode.elの1.4は違うっぽいですな。 psgmlは入れ..]
※ nogajun [psgmlを素で入れるときはカタログ探すのがめんどいっすね。 そゆときはdebianからソース(!)を貰ってきて入れ..]