僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
に参加。市立大学の実験も兼ねて、プロップステーションとのテレビ会議 もあった。点字を触感で「読める」人は10%程しかいないそうである。 表形式のHTMLは読み上げても分かりづらい。箇条書きにして階層配置 する方式がよさげ。このあたりラジオ放送が参考になりそうだ。
講演ではあまり強調されなかったが、「電子政府」の費用のかけ方は 足腰が非常に脆弱である。地名の読み方さえ管理できていない。
郵政公社の郵便番号データは(自由ヶ丘->"じゅうがおか"なんて表記がある らしい)あちこちで使いまわされている(基礎データとしてJISや六法と 似た性格をおびてきている)ので、「間違いでした、ごめんなさい」 では通らなくなりつつある模様。
メール送信をさせてみた。
$ cat crontab.txt X X X X X hoge.sh | sendmail -bs $ cat hoge.sh #!/bin/sh LOGFILE=/var/log/maillog FROM=USER@DOMAIN.TLD RTO=SOMEBODY TODAY=`date|awk '{print $2" "$3}' ` LOG=`grep "status=" $LOGFILE |grep "$TODAY" ` echo "helo fuga mail from: $FROM rcpt to: $RTO data Subject: $TODAY s maillog From: mail_server crontab<$FROM> To: $RTO $LOG ."
追記すれば、返送先がデフォルトでそっちになる事を確認。 さて、.mew.elにどう書いたものか...
不正中継の穴を
開けてしまった失敗談を発見。
mynetworks = に指定したグローバルアドレスに/8などやったとか。
↑は設定上優先度が高いらしく、reject_listが効かなかったという。また、
不正中継チェックサイトが含まれていなかったので気づきにくかったそうな。
見てすぐ、postconfを叩いたのは言うまでもない。
は、やめた。masquerade_domains等で十分だ。
スパマーが来た。昨日25番を有効にしたばっかりなのに。確認すると2回。
Nov 30 05:06:46 MAIL_SERVER postfix/smtpd[13460]: connect from \ unknown[222.101.92.42] Nov 30 05:06:47 MAIL_SERVER postfix/smtpd[13460]: NOQUEUE: reject: RCPT \ from unknown[222.101.92.42]: 554: \ Relay access denied; from=<04joggxgya7c@netian.com> \ to= proto=SMTP helo=<210.138.41.18> Nov 30 05:06:47 MAIL_SERVER postfix/smtpd[13460]: lost connection after \ RCPT from unknown[222.101.92.42] Nov 30 05:06:47 MAIL_SERVER postfix/smtpd[13460]: disconnect from \ unknown[222.101.92.42]
Nov 30 06:11:59 MAIL_SERVER postfix/smtpd[13488]: connect from unknown \ [218.17.74.16] Nov 30 06:11:59 MAIL_SERVER postfix/smtpd[13488]: NOQUEUE: reject: RCPT \ from unknown[218.17.74.16]: 554: \ Relay access denied; from= \ to= proto=SMTP helo=<210.138.41.18> Nov 30 06:11:59 MAIL_SERVER postfix/smtpd[13488]: disconnect from \ unknown[218.17.74.16]
$ nmap -sU SERVER You requested a scan type which requires root privileges. Sorry dude. QUITTING!
スーパーユーザ、もしくは 4755 でやれという事らしい。
なんか時間が掛かるが、-pするなりなんなり、また後で。
シスコのあたりを見てたら、
スモールサーバとかのページがあった。
echo とか daytimeとか discardとかは以前試したが、
Character Generator
はまだいじったことはない。さっそく/etc/inetd.confをいじり、kill -HUP。
$ telnet localhost 19 CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+ DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+, EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,- FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz強制終了 (ry
telnetが暴走して、こちらもkillしないと止まらなくなった。
ノートに入れたcoplamoで
rcpt: to をローカルに、LANに、そしてグローバルに
$telnet localhost 25。
masquerade_domains は他と同じ。
従って返信はメールサーバにしか届かない。
tdiaryとanthyを整えないと、中から日記が書けない...
日付をTimeからDateTimeに変えた。
これで2038年問題を回避できたのか?
qemu環境下のplamo。にて2038年問題。
# date -s "Tue Jan 19 12:14:05 JST 2038" && \ while : ; do date && sleep 1 ; done Tue Jan 19 12:14:05 JST 2038 Tue Jan 19 12:14:06 JST 2038 Tue Jan 19 12:14:07 JST 2038 Sat Dec 14 05:45:52 CJT 1901 Sat Dec 14 05:45:53 CJT 1901 Sat Dec 14 05:45:54 CJT 1901 (ry
続きは明日、ならぬ前世紀か。
凄。
chroot 環境下のetchにwmakerを開き、scim-rubyをビルド
しようとしてはまる。どのパッケージが足りないのか。
考える気力もないほど眠くて面倒臭くて、man も適当に流す。
$ sudo auto-apt update $ sudo auto-apt -y run ./configure
時々ウィンドウが開いて、足りないものを一つ、
また一つとapt-getするし、時には選択肢つきの
GUIが開いたり。
じっと見ていられなくなってスクリーンショットを
撮り、gimpで
適当に編集。
我慢できなくなって、 auto-aptの出典をめくっているうちに、 でぶあん2000年冬号のpdfに、とめどなく(ry
ところで、scim-rubyの./configure、
$ ./configure (ry checking for SCIM... configure: error: Package requirements (scim >= 0.99.8) were not met: No package 'scim' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SCIM_CFLAGS and SCIM_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
環境変数を何か足してやらないとダメらしい。
続きは明日以降になりそうだ。やっぱり自分は○×△が足りぬ。
もうねろ。
$ time sudo auto-apt update (ry Downloading http://host.domain.tld/debian//dists/etch \ Contents-powerpc.gz ... 100%[====================================>] 10,518,261 \ 2.58M/s ETA 00:00 00:57:18 (2.50 MB/s) - `host.domain.tld_archives_linux_debian\ _debian_dists_etch_Contents-powerpc.gz' を保存しました \ [10518261/10518261] put: 1861737 files, 2885533 entries Downloading http://security.debian.org//dists/etch/updates \ Contents-powerpc.gz ... put: 1865372 files, 2890192 entries done (170 sec) real 2m51.033s user 2m43.015s sys 0m3.122s
# nmap -O $HDD_RECORDER Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-11-30 15:21 JST WARNING: RST from port 80 -- is this port really open? WARNING: RST from port 80 -- is this port really open? (ry Interesting ports on $HDD_RECORDER: (The 1662 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 80/tcp open http MAC Address: XX:XX:XX:XX:XX:XX (A_ELECTRIC COMPANY) No exact OS matches for host (If you know what OS is running \ on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi). TCP/IP fingerprint: SInfo(V=3.81%P=i686-pc-linux-gnu%D=11/30%Tm=456E7897%O=80%C=1%M=080070) T1(Resp=Y%DF=N%W=103B%ACK=S++%Flags=AS%Ops=M) T1(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) T3(Resp=Y%DF=N%W=103B%ACK=S++%Flags=AS%Ops=M) T3(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T4(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=) T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) PU(Resp=N) Nmap finished: 1 IP address (1 host up) scanned in 27.294 seconds
scim-rubyの./configureが うまくいかなかったのは、つまるところscimの ごく一部(実行ファイルなど)しかなかったからであるらしい。
末尾に表示されたメッセージに従い、PKG_CONFIG_PATHとか、
SCIM_LIBSとか、はてはSCIM_CFLAGSだとかの環境変数を
もげもげやると、./configureは通ることもあったが、makeで
こける。
エラーメッセージの最初に
scim.hがないとか表示されるのを見て、ようやくピンときた。
scim-devなどを入れてやる。新しくktermを起動して(自分の付加した
環境変数のない端末で)./configure && make。
...平穏に終了した。
Plamo-4.22ではe2fsprogsパッケージに入っていた。
$ /sbin/logsave echo.txt echo "this is a pen." this is a pen. $ cat echo.txt Log of echo this is a pen. Fri Nov 30 23:13:01 2007 this is a pen. Fri Nov 30 23:13:01 2007 ----------------
LFS-6.4 でpkgsrcのbootstrapがコケる箇所についてあれこれ。
grep -R ARG_MAX /usr/include/* してみる。すると、
/usr/include/sys/param.h に、
/* The kernel headers defines ARG_MAX. The value is wrong, though. */ #ifndef __undef_ARG_MAX # undef ARG_MAX # undef __undef_ARG_MAX #endif
それから/usr/include/bits/local_lim.hにも、
/* Have to remove ARG_MAX? */ #ifdef __undef_ARG_MAX # undef ARG_MAX # undef __undef_ARG_MAX #endif
双方をコメントアウトして bootstrap をやり直すとうまくいくようだった。
出処はglibc-2.8-20080929であるらしい。LFS-6.3にある glibc-2.5.1 には
ないようだ。
先ほどの変更は、さしあたり一旦元に戻しておく。
さて、
どうなってるんだろうか。
6章を続ける。
比較的のんびり、時には make test などもやっていたので、今日中には無理みたい。
あまり大きくなさそうなパッケージをいくつか bmake してみたが、特に不都合はなさげ。
find(1)が/usr/bin の下にあると決めてかかってるものもあったりするが。
流石にX Window system は自分で何とかしろ、という様子に見える。
結構実装依存だったりする。
st> 1234.5678s9 1234.567800000s9
固定小数点の例。
これはSqueakも同様。
st> 98765432.1 + 0.1 98765432.19999999
Squeak では、
98765432.1 + 0.1 => 9.87654322e7
今見ている
Smalltalkの本(VisualWorks 2.5Jを前提)には、
単精度や倍精度を表す"d", "q" などの添字があるが、
少なくともSqueakではエラーになった。
gst は飲み込んでいるようだけど、スルーしていないのかどうか
はまだよくわからない。
標準入力から、数字とa-f を一つずつ読み込むことができる。
g 以降は0と解釈される。大文字小文字の区別はなかった。
これはgnuのbc(1)だけみたい。FreeBSD 9.0-RELEASE の bc(1)
にread()を入れると、 "dc: not a string"
だった。
foo[0]=read() foo[1]=read() print "first num is ", foo[0], "\n" print "second num is ", foo[1], "\n" quit
"}" と "else" の間に改行を入れるとエラーになった。
これは上記のFreeBSDも同様。
GNU bc(1) の続き。
"a" とか "e" とか、一文字なら 10-15になるが、 "ab" とか "1d" とかすると、a-f のいずれもが "9" に置換されるようだった。
foo[0] = read() foo[1] = read() print foo[0], " and ", \ foo[1], " is ",\ foo[0] + foo[1], "\n" quit
$ echo e 8 | bc add.bc 14 and 8 is 22 $ echo ac 1d | bc add.bc 99 and 19 is 118
Prelude> 10 + 3 13 Prelude> 10 - 3 7 Prelude> 10 * 3 30 Prelude> 10 / 3 3.3333333333333335
"/"は浮動小数点演算か。
整数演算は "div"、剰余は "mod"。この場合
演算子は前置記法になる。
Prelude> div 10 3 3 Prelude> mod 10 3 1
中置記法は"`div`"のようにする。
Prelude> 10 `div` 3 3 Prelude> 10 `mod` 3 1
"==" の反対は"/="。
Prelude> 3 == 4 False Prelude> True /= False True Prelude> 3 >= 3 True Prelude> 3 >= 4 False
Ubuntu-12.04LTS x86_64 にて。
$ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.4.1 $ cat helloworld.hs main = putStrLn "hello, world" $ ghc --make helloworld Linking helloworld ... $ ./helloworld hello, world
なんかでかいの(約1.1MB)ができたらしい。
$ ls -alF helloworld -rwxrwxr-x 1 user group 1050868 11月 30 01:47 helloworld $ ldd helloworld linux-vdso.so.1 => (0x00007fff6a670000) libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f7df778c000) libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f7df7584000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7df7287000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7df707f000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7df6e7b000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7df6aba000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7df689d000) /lib64/ld-linux-x86-64.so.2 (0x00007f7df7a1c000)
strip してやっても、723KB あった。
ちなみにGCC-4.6.3によるhello, world は、
$ ls -l helloworld_c -rwxrwxr-x 1 user group 8382 11月 29 23:29 helloworld_c $ ldd helloworld_c linux-vdso.so.1 => (0x00007fffb7fff000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f704a58c000) /lib64/ld-linux-x86-64.so.2 (0x00007f704a96e000)
こちらはstripしてやると、6.1KBに縮まった。
ARMのGHCサポートは、 Tier 2らしい。
$ time ghc --make helloworld [1 of 1] Compiling Main ( helloworld.hs, helloworld.o ) Linking helloworld ... real 0m20.885s user 0m6.340s sys 0m1.510s
ldd は省略。
$ ls -alF helloworld -h -rwxr-xr-x 1 user group 8.9M 11月 30 02:08 helloworld* $ strip helloworld $ ls -alF helloworld -h -rwxr-xr-x 1 user group 3.8M 11月 30 02:09 helloworld*
GCCでは5.1KBだった。strip 後で2.9KB。
fizzBuzz x =
if x `mod` 15 == 0 then "fizzbuzz"
else if x `mod` 5 == 0 then "buzz"
else if x `mod` 3 == 0 then "fizz"
else show x
返す値は同じ型でないとダメかもしれない。
ということで最後に数値の文字列変換を。
Prelude> let addOne x = x + 1 Prelude> addOne 10 11
以上、空白。
接続後どのようなデスクトップになるかは、
$HOME/.vnc/xstartupに記述するらしい。
とりあえずこれだけ。
$ sed -n '/^#\|^$/! p' .vnc/xstartup xrdb $HOME/.Xresources xsetroot -solid grey export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession lxsession & gnome-terminal &
Jessieなどでは適当にやってくれたし、 FreeBSDは何も考えずにwindow makerなど入れていたが、 Ubuntu trusty の初期設定ではroot window しか見えなかった。
gstreamerを撮って確認するスクリプト。
#!/bin/sh
LANG=C
DIR=`date "+%Y/%m%d"`
SAVE=$HOME/$HOGEHOGE/${DIR}
if [ ! -d $SAVE ]; then
mkdir -p $SAVE
fi
if [ "$?" != "0" ]; then
echo Cannot make dir.
exit 1
fi
FILENAME=`date "+%H-%M-%S.png"`
DISPLAY=:0.0 scrot hoge.png
convert -crop 800x600+566+52 hoge.png $SAVE/$FILENAME
display $SAVE/$FILENAME
<後記>
DISPLAY=:0.0を入れてやらないと、
リモート側を撮られるので修正。
</後記>
また性懲りもなく
ランダムプレゼントと。
ソートしたり、格差もグラフに入れたり。
この場合は1000回。格差は時々減りながら拡大を続けており、 最後には初期値(100)を凌ぐ格差ができてしまった。
順位もある程度変動しているようではあるが、こちらについては また別の動画で可視化したほうが。
animated PNG。
Edgeはほっとく。
なんかファイル名が煩いらしく、適当に試行錯誤。
$ ls -1 frame00.png frame01.png frame02.png frame03.png frame04.png frame05.png frame06.png frame07.png frame08.png frame09.png $ apngasm output.png f*.png APNG Assembler 2.7 reading frame00.png (1 of 10) reading frame01.png (2 of 10) reading frame02.png (3 of 10) reading frame03.png (4 of 10) reading frame04.png (5 of 10) reading frame05.png (6 of 10) reading frame06.png (7 of 10) reading frame07.png (8 of 10) reading frame08.png (9 of 10) reading frame09.png (10 of 10) saving output.png (frame 1 of 10) saving output.png (frame 2 of 10) saving output.png (frame 3 of 10) saving output.png (frame 4 of 10) saving output.png (frame 5 of 10) saving output.png (frame 6 of 10) saving output.png (frame 7 of 10) saving output.png (frame 8 of 10) saving output.png (frame 9 of 10) saving output.png (frame 10 of 10) all done
半分強を消費して、残すところ4ヶ月のクーポンでもって
メールサーバを立てた。
逆引きが無いことを除けば、kuzuore.comとほぼ同じ、はず。
iijmioは、spfもdkimもpassだった。
gmailは迷惑メールフォルダ行きになった。
SPF: NEUTRAL(IP: $VPS_IPv4)。詳細 DKIM: 'PASS'(ドメイン: $MYDOMAIN)詳細
Authentication-Results: mx.google.com; dkim=pass header.i=@kuzuore.net header.s=hoge header.b="XXX/YYY"; spf=neutral (google.com: $VPS_IPv4 is neither permitted nor denied by best guess record for domain of $USER@DOMAIN.TLD)
google translateにかけてみた。
google.com:$VPS_IPv4は、user @ example.comのドメインの 最良の推測レコードによって許可も拒否もされていません
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。