Shammer's Philosophy

My private adversaria

2012-10-01から1ヶ月間の記事一覧

応答を返す UDP Server

自動起動スクリプトの作成 - Shammerismの UDP Server は、メッセージを受信したらそれをそのままクライアントのIPとかと一緒にログに記録するだけの動作だが、これが応答を返すようにしてみた。 (defun start () (let ((server (make-socket :type :datagra…

自作の/etc/init.d/XXXで起動したらbackgroundで動作しない

自動起動スクリプトの作成 - Shammerismで作成した UDP サーバーを、/etc/init.d/ 配下に作成したその UDP サーバ用の起動スクリプトで start するとフォアグラウンドで動作する。/etc/init.d/skeleton の start−stop−daemon が --background オプションがな…

自動起動スクリプトの作成

Lisp UDP Server 改 - Shammerismで作成した簡易UDPサーバを自動起動させたいと思う。その手順を整理する。大枠としては以下の作業になる。 lisp ファイルをコンパイルしてバイナリにする /etc/init.d/skeleton をコピーして編集 lisp ファイルをコンパイル…

Lisp UDP Server 改

Lisp UDP Server - Shammerismで残っていた課題を反映させてみた。 (let ((server (make-socket :type :datagram :local-host "0.0.0.0" :local-port 7001 :format :binary))) (with-open-file (f "/var/log/clozure-udp-server.log" :direction :output :if…

printStackTrace を自力で書いてみる

printStackTrace は、デフォルトでは標準出力に出す。そして、引数で PrintWriter を渡してやればそこに書き込みしてくれる。しかし、、、文字列でそれを取得したい場合にどうするんだろう、と思ったのでちょっと調べてみた。こんな感じで書けばそれっぽい情…

cut を awk のように使う?

タブやスペースなどを含む行から、そのタブやスペースで区切られた形で行を複数の文字列に分割するときに awk を使っていたが、cut でも同様のことができるとわかったのでメモ。 $ cut -d "_" -f 1-2この例だと、ホワイトスペースでなく _ で行の文字を分割…

find と remove-if-not

remove-if と remove-if-not を理解する - Shammerismでちょっとだけ言及したが、、、remove-if-not を使って、リストから欲しい情報を取り出すことができる。しかし、-not という関数は Lisp の世界では duplicated とされており、いつ使用できなくなっても…

文字の整形に format を使用する

Lisp を触り出した頃から format を使用して動作を確認してきた。デバッグプリントのたびに format を使用してきた。いわば、C 言語で言うところの printf 的な存在。単に文字列を標準出力に出すのみでなく、その見せ方を制御できるのが printf のいいところ…

JavaScript の処理を途中で止める

ある text box に値が入力されている場合だけ JavaScript の処理を進める、というような意図で以下のような JavaScript を書いていた。 function sendForm(form){ if ( form.id.value == '' ){ window.alert('TextBox is null'); } else { action_url = "htt…

Symbol を文字列にしたい

文字列を Symbol にするには intern を使用すればいいが、その逆もできることがわかった。prin1-to-string という関数を使用すればできる。Symbol のリストを連結して文字列にできる。以下のように使用する。 ? (prin1-to-string '(this is a test)) "(THIS …

文字化けファイル名を mv したい

Windows から Linux サーバへアップロードされたファイルで文字化けが発生することがよくある。そうすると、普通に mv しても、No such file or directory になる。。。 この場合の対処。 ls -li で対象ファイルの inode を調べる mv `ls -li | grep $INODE …