■メモ
CGIでファイルに書き込み
CGIでファイルに書き込む際には、予めファイルを作成し、
chmod a+rw filename
としておく必要がある。ファイルが存在しないと、apacheの方でエラーになる。エラーメッセージは
print() on closed filehandle OUT at ***.cgi
である。
delegateで語尾変換
多機能プロキシソフトdelegateでテキストの変換を行なう実検。インストールは他のサイトを参照のこと。
やりたいことはプロキシサーバー経由でネットに接続し、結果をもらってくる際に変換の処理をおこなう。もらってくる際というのはFTOCLというキーワードで指定する。起動スクリプトはこんな感じ(dele.sh)。
#!/bin/sh
if [ -f /usr/sbin/delegated ]; then
/usr/sbin/delegated -v -P8080 SERVER='http'
FTOCL=convert.cfi
RELAY=delegate
OWNER=delegate
PERMIT=*:*:*
ACTDIR=/var/spool/delegate
VARDIR=/var/spool/delegate
fi
ここで、フィルタの内容はconvert.cfiに書かれている。その内容はこんな感じ(convet.cfi)。
#!cfi
Content-Type: text/html
Filter: ./trans.pl
Output/Content-Type: text/html
この中のさらに変換処理を行なうスクリプトがtrans.pl。この中味はこんな感じ(trans.pl)。なお、perlは5.8以上を使用。
#!/usr/bin/perl -w
use strict;
use utf8;
binmode(STDIN,":encoding(euc-jp)");
binmode(STDOUT,":encoding(euc-jp)");
undef $/;
$_ = <>;
s/です/ですぅ/g;
s/しました/したですぅ/g;
s/あります/あるんですぅ/g;
s/ありません。/ないんですぅ。/g;
s/する。/するですぅ。/g;
s/だ。/ですぅ。/g;
s/いない。/いないんですぅ。/g;
s/した。/したんですぅ。/g;
s/た。/たんですぅ。/g;
s/という。/らしいですぅ。/g;
s/る。/るんですぅ。/g;
print;
これらを適当な場所において実行する。
Javaで変換を行いたい場合には、LinuxのJavaはEUC-JPにしか対応していないため、一度EUCに変換したほうがよい。手っ取り早いのはPerlに渡し、内部でEUCに変換したのちsystem関数と引数で渡す方法だと思う。
GentooでJavaで日本語で
Gentooだとフォントの設定をしないと日本語がでない。ここで、注意。
※JavaのLinux版のエンコーディングはEUC-JP
これは、システムのロケールに関係ない。したがって、ロケールがUTF-8だと文字化けする。そこで、やることは以下の2つ。
1.$JAVA_HOME/jre/libの中のfont.properties.jaの中の
-watanabe-minchoを-misc-Kochi Minchoに、
-wadalab-gothicを-misc-Kochi Gothicに置き換えて、
JAVA_FONTの設定を行う
2.ロケールをEUC-JPにする。export LANG=ja_JP.eucJP
これで日本語表示ができるはず。(
参考サイト)。なお、プログラム自体のエンコードもEUC-JPで行う必要がある。
二次元配列を渡す
よく忘れるので書いておく。これは4列のものを渡す。
void function(int array2D[][4])
CentOSでglut
CentOSのyumにはfreeglutというパッケージがあるのでこれをインストールする。
yum install freeglut freeglut-devel
これで、/usr/include/GLの中にヘッダファイルがインストールされる(はず)。
行数を表示する
各行の行数を表示するにはcatコマンドにオプションをつけて実行する。
cat -n hoge.txt
へぇ〜。へぇ〜。へぇ〜。
emacsでコード変換
ctrl-x return f
暗号かよw
ちなみに、vine linuxの人はmule-UCSというパッケージをインストール
するとemacsがutf8対応になって幸せになれるかも。
受信パケットが0
XPを使っていたらこんな症状が。しらべてみたら、ウイルス対策ソフトのウイルスセキュリティが問題だった様子。アンインストールで解決。
macでパラメータリセット
リンゴ+option+R+Pを押しながら電源を入れる。
coutで桁をそろえる
coutでプリントする前に、cout.width(N)とする。Nは桁数。
for(int i=0; i<(int)list.size(); i++){
cout.width(4);
cout << list[i] << endl;
}
string->intの変換
C++で文字列からintに変換するにはistringstreamというものを使う。
#include<sstream>
#include<string>
で、
int num = 0;
string str = "123";
istringstream iss( str );
iss >> num;
とする。
pptで別のプログラムを実行する際の警告をしない
ツールメニューのオプション内のセキュリティタブのマクロセキュリティでセキュリティレベルを低に設定する。
emacsで検索
Ctrl+s
サーチのsだろうけど、セーブと間違いやすい。
iTermで日本語表示
まず、configureのwindowタブで、non-asciiのフォントをMS Pゴシックあたりにする。
次に、sessionタブのencodingをjapanese(EUC-JP)にする。
最後に、出力をnkf -e でEUCに変換する。
これで、一応日本語が読める。
検索結果をCSVに
postgresqlで結果をCSVに保存するにはこうするらしい。
psql -A -t -F , -c "クエリ" DB | nkf --sjis --windows > hogehoge.csv
URLのリストをHTMLに
URLのリストからHTMLに変換するのをawkでやる。awkで行番号はNRで参照するらしい。
cat list.txt | awk '{printf "<a href=\"" $1 "\">" NR "</a>" "\n"}'
とすると、
http://www.yahoo.co.jp/
http://www.google.co.jp/
から
<a href="http://www.yahoo.co.jp/">1</a>
<a href="http://www.google.co.jp/">2</a>
となる。
最終更新:2006年12月02日 00:28