0

macでAOSS

家のルーターはBAFFALOのAirStationを使っている。
今までは無線はwepで接続していたけど、なんとなくAOSSとかいうので接続するように変更してみた。
windowsではAirStationのクライアント落としてなんかよくわからんけどつながったんだけど、macになるとさっぱりお手上げ状態。

で、ネットでちょっと検索したら同じ現象の人が数件でてきました。
どうやら、AirMacがAOSSの暗号化システムAESというのに対応してないらしい。
macでは、その暗号化システムをAESからAirMacも対応してるTKIPというものに変更します。
これらは、ルーターの管理画面(うちでは192.168.11.1)の「詳細設定」の「無線設定」で変更できます。

最初の接続でパスワードが聞かれるので同じ管理画面のTKIPの暗号化キーを入力してやります。コピペできないのでかなり大変。
という感じでmacは手動で接続設定という形になります。
無線LAN周りは知らない単語が多かったので勉強になった。

0

CSSNiteについてまったく関係ない俺が一言

俺の意見なんてどうでもいいんだろうけど、気持ちを文にするいい練習材料になるので書いておこう。

まず俺のスペック

  • 業界歴は4年くらい
  • 現在も制作会社勤務
  • 最初の1年はデザイン、コーディング、プログラム
  • 残りの3年はメインはプログラム、たまにコーディング
  • プログラム系のセミナーは何回か行った。(YAPC asiaも)
  • CSSNiteも一回行った。

俺が考えるCSSNiteが嫌われるの根底の理由は3つ。

      主催者が嫌い
      エンジニアがコーダーを見下してる
      (エンジニアからして)セミナーの質が低い

の気がします。

1に関しては、CSSNiteに行ったが、確かにうっとしい。個性が強いだけでは済まされない人間性。
(景品を取りに行く)客に走ってくださいと行ってみたり、前回のCSSNite前夜祭のネタと同じものやってみたり。
CSSNite前夜祭は無料、CSSNiteは有料で同じネタっておかしくない?
そして、なんでそんな偉そうなの?

2つ目に関していえば、認めたくはないがそれはある。
逆も思われるだろう。システム馬鹿と。
java使いがperl使いを見下しperl使いがphp使いを見下す。
そして、php使い(だけじゃないけど)がさらにHTMLコーダーを見下す。

そして3つ目。
クオリティが低い。
大阪だったのもあるけど、ふつーうの兄ちゃん姉ちゃんが普通の話しをしてくれる感じです。
ドリの使い方なんかを。
クオリティより量なんでしょうか。
イベントの数が多い多い。
多いのはいいけど質も高めて。

どんだけ~。

0

wii.jsでwiiリモコンを操作

wiiリモコンで動くサイト(wiiでも閲覧可能)が作りたくて色々調べたらwii.jsってのがありました。

wiiリモコンのイベントリスナーのようなライブラリです。
wiiのインターネットで使われてるブラウザはオペラです。
オペラはmochikitのイベントリスナーでも挙動がおかしかったりしたので不安でしたが、このライブラリは問題なく動作します。(wiiでの話)

オンロード時に読み込む
<body onload="wii.setupHandlers()">

var wiimote = new wii.Wiimote();
wiimote.handleLeft = function() {
alert('左が押されたよ');
return true;
}
wii.addController(wiimote);

はまったのがjsの一行目。
本家のcode samplesが間違えてる。
new Wiimote()ではなくnew wii.Wiimote()が正解です。

十字キーにイベントリスナーを仕込んで、alertの処理を入れてるところになんらかの処理を書いてやればOK。
これを自在に使ってクリックしにくいwiiインターネットをもっと便利なものにしよう。
このへんも参考に

0

トランザクションとは

関連する複数の処理を一つの処理単位としてまとめたもの。例えば、

  1. オークションの現在の価格を見る
  2. 自分の預金残高が入札価格に足りるか確認する
  3. 入札する
    という流れの場合、1から3までの処理の中で、オークションの現在の価格が変動してしまっては困ります。

具体的には、現在の預金残高が\2000で、現在のオークション価格が\1900とします。次の入札には\2000あれば参加できるので入札しようとしたのですが、預金残高の確認中に誰か別の人が入札をしてしまい、3の処理がうまくいかない場合があります。

このようなときに、1~3までの複数の処理を1つの処理単位としてまとめる必要があり、このまとめる処理のことを、トランザクション処理といいます。

0

phpでcsvを開く

perlでcsvを開く際、一行づつ読み込んで、splitで細かくしていくってのが一般的だけどphpの場合、fgetcsvっていう便利な関数が用意されている。
簡単にすればこんな形になります。
$DATAに配列として代入されます。
別にそのまま処理してもOK

sample.csv
001,山田,654-0024
002,河合,005-0424
003,歌田,541-0041

setlocale(LC_ALL, 'ja_JP.UTF-8');
$i = 0;
$handle = fopen("sample.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== false) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
$DATA[$i]["id"] = $data[0];
$DATA[$i]["name"] = $data[1];
$DATA[$i]["zip"] = $data[2];
}
$i++;
}
fclose($handle);

気をつける部分は、一行目のsetlocale(LC_ALL, ‘ja_JP.UTF-8’)
fgetcsvがマルチバイトに対応してないため、UTF8で記述されたcsv等はこのようにエンコード名を明記する必要があります。
phpの関数は便利だねー。

まえ、どっかのブログでphpの関数が多すぎるって書いてたけど多くて何が悪いのだろうと思う。
関数名が長くなるのも当然、いやならオーバーライドしてやればOK。
LL万歳!!

0

MeCabインストールメモ

fedora7にMeCabをインストールした際のメモです。
ほとんどここのパクリです。

MeCab本体をソースからインストール
# wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-0.96.tar.gz
# tar -xvzf mecab-0.96.tar.gz
# cd mecab-0.96
# ./configure
# make
# make install

辞書は別なので辞書もインストール
# wget http://nchc.dl.sourceforge.net/sourceforge/mecab/mecab-ipadic-2.7.0-20070610.tar.gz
# tar -xvzf mecab-ipadic-2.7.0-20070610.tar.gz
# cd mecab-ipadic-2.7.0-20070610
# ./configure
# make
# make install

デフォルトではEUCなのでUTF8に変更しておく。
# /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
# make install

PHPからMeCabを使う
phpizeがない場合
# yum install php-devel

phpで利用できるようにPHPモジュール(MeCab extension)をインストール
# wget http://page2.xrea.jp/pub/php_mecab-0.2.0.tgz
# tar -xvzf php_mecab-0.2.0.tgz
# cd php_mecab-0.2.0
# phpize
# ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
# make
# make install

デフォルトの辞書では不十分に感じてくると思うので自分で単語を追加するユーザー辞書を用意します。
デフォルトの辞書+ユーザー辞書で運用します。
適当なフォルダに移って編集用のcsvファイルと実際の辞書となるdicファイルを作成します。
# touch userDic.csv
# touch userDic.dic
ブラウザから操作する時のために
# chmod 666 userDic.*

csvファイルに一行一単語で登録していく
詳しくはこちら
# vi userDic.csv
ほげ,-1,-1,10,名詞,一般,*,*,*,*,ほげ,ホゲ,ホゲ

ユーザー辞書をMeCab認識させる
# vi /usr/local/etc/mecabrc

下記の一行を追加
userdic = /home/www/userDic.dic

csvのをdicファイルのコピー
/usr/local/libexec/mecab/mecab-dict-index -d/usr/local/lib/mecab/dic/ipadic -u /path/to/userDic.dic -f utf8 -t utf8 /path/to/userDic.csv

perlで使う際はcpanにモジュールがあるけどインストールで必ずこけるの要注意。
これは後日。

これとタグクラウドを組み合わせたら最近流行りのものが作れそう。

0

/dev/nullとか

cron処理の際に何気につけてる/dev/null
頭の整理のためにメモしとく

標準出力のみfile1.txtに書き込む
エラー出力は普通にスクリーンに出す
webalizer 1>file1.txt

エラー出力のみfile1.txtに書き込む
標準出力は普通にスクリーンに出す
webalizer 2>file1.txt

1は標準出力、2はエラー標準出力ってこと。
>file1.txtは書き込み先がfile1.txtってこと。
/dev/nullはごみ箱のこと。

なので
webalizer 1>/dev/null
これは標準出力はごみ箱にいくのでエラー出力のみスクリーンにでる。

でもこの理論では納得いかないが
webalizer 2>&1
これは、すべてスクリーンに表示せず捨ててしまう。

webalizer >file.txt 2>&1
で、これはすべてをfile.txtに保存されます。

全然纏まってないし、余計に分からなくなった気が。

0

yumの更新時エラー

Metadata file does not match checksum

yumで新しいパッケージをインストールしようとおもったらこんなエラーがでて止まってしまいました。
どうやらyumのデータベースが壊れてる模様。
調べてみると修復は簡単。

#yum clean all

で直りました。

#yum update
にしておいたらyumのデータベースを最新にしてくれます。

0

updatedb

updatedb
locateはインデックスされたデータベースから検索するからfindより高速です。
しかしインデックスされる時間はfedoraのデフォルトでは夜中3時くらいなので、インストール直後のファイルは検索対象外になります。
そんな時にデータベースを再構築するのがこのコマンド。