2008/11/29
Windows Media Playerでスクリーンショットを撮る方法
2008/11/28
2008/11/27
2008/11/26
2008/11/24
Canonical XML
Canonical XML和訳
2008/11/23
rep2あらためp2
2ちゃん閲覧環境のp2をインストールした。
こいつをインストールすれば外でアクセスしたときも自宅でアクセスしたときも同じブックマークと履歴を利用できる。また、携帯から2ちゃんにアクセスするときも非常に便利だ。インストールログをメモ。
[CentOS 5の場合]
ダウンロードして、設置して、rep2用にユーザを作成。
# wget http://iij.dl.sourceforge.jp/p2-php/33316/rep2_v1_8_40.zipPHPのインストール。
# unzip rep2_v1_8_40.zip
# mv rep2 /var/www/html
# useradd -d /var/www/html/rep2 -g apache -s /sbin/nologin rep2
# chown -R rep2.apache /var/www/html/rep2
# yum install php php-mbstringPHPがきちんと動いている事をブラウザで確認。
# /etc/init.d/httpd restart
http://www.hogehoge/rep2/phpinfo.php
にアクセスして表示すれば良い。
データ保存用ディレクトリを作成。
# mkdir /var/www/html/rep2/data設定ファイルrep2/conf/conf_hostcheck.phpで、アクセスするIPアドレスを登録する。whoisコマンドを使うか、ここのリストを見てIPアドレスを登録する。この際、conf/conf_hostcheck.confをいじるのだが、custom変数を1にするのを忘れないこと。
# chmod 770 /var/www/html/rep2/data
これで携帯と自宅で見た2ちゃんの内容を同期できる。
追記 2012/02/17:lib/UA.phpを変更することで、androidでも携帯用インタフェースを利用できるらしい。
追記 2012/02/17:
認証機能はrep2ではなく、apache2標準のDigest認証を使うことにした。
# sudo a2enmod auth_digest/etc/apache2/sites-available/rep2を作成。
<Directory "/var/www/rep2">認証ファイルを作成する。
AuthType Digest
AuthName "Members' Zone"
AuthDigestDomain /rep2/
AuthUserFile /etc/apache2/.htdigest
Require valid-user
</Directory>
# sudo htdigest -c /etc/apache2/.htdigest "Members' Zone" hogerep2用の設定を有効化する。
# sudo a2ensite rep2最後にapache2を再起動してOK!
[Debian wheezyの場合]
ほぼ上記と同じだが、ユーザーは下記で作成。
# sudo adduser --system --ingroup www-data --no-create-home p2また、ここを参考にした。
2008/11/22
ブラウザだけで画面操作の動画を録画
プロジェクトの関係上、画面操作をしている動画を非常によく撮影する。
その時に非常に便利。movファイルしか保存できないが、何もインストールしなくても(Javaは必要)キャプチャーできるのは便利すぎます。
IE Tab
Firefox用アドオンのIE Tabをインストールした。
あらかじめ設定した特定のページだけIEのエンジンを使ってタブを開いたりする事ができるのが素敵。
2008/11/21
ジョエル・テスト
- ソース管理システムを使っているか?
- 1オペレーションでビルドを行えるか?
- 毎日ビルドを行うか?
- 障害票データベースを持っているか?
- 新しいコードを書くまえにバグを修正するか?
- 更新可能なスケジュール表を持っているか?
- 仕様書を持っているか?
- プログラマは静かな労働環境にあるか?
- 買える範囲で一番良い開発ツールを使っているか?
- テスト担当者はいるか?
- プログラマを採用するときにコードを書かせるか?
- 「廊下での使い勝手テスト」を行っているか?
どの程度のプロジェクトがこれを守ってることやら・・・
2008/11/20
ある日付以降に修正されたファイルの検索の仕方
/etc以下で、ある日付以降に修正された物を探す場合、
# touch -t MMDDHHmm /tmp/dummy
# find /etc -type f -newer /tmp/dummy -print
2008/11/19
写真を使った動画の補強
「この動画からこの柱を取り除いておいて」「この動画の中の窓の反射を取り除いておいて」といった要求をかなり容易にしてくれる技術。これ次世代の動画編集ソフトに組み込まれるんじゃないかな。この機能があるのとないので手間暇が違いすぎる。
日米、ゲームの作られ方
日本の一般的なゲーム制作会社とBlizzard Entertainmentとの制作過程の違いを書いている。日本の事例はゲームに限らずそこそこの規模のソフトウェア開発会社全般に当てはまると思う。
日本の開発会社ではウォーターフォールを取って下流に流れる程人数が増えるのに対して、Blizzardは人数を減らすらしい。
あり得ないw。仕事がなくなった人は一体何をするんだ?w
非常に興味深い。
ただ、これ"各工程の開発期間"という重要な情報が抜け落ちてるんだよね。
これも目から鱗が落ちるぐらい実は日米で違うのかもしれない。
2008/11/17
Foxmarks
以下インストールメモ。
WebDav用の設定を/etc/httpd/conf.d/bookmarksync.confに作る。
#
# This is to permit URL access to WebDav
#
Alias /bookmarks/ "/var/www/html/bookmarks/"
<IfModule mod_dav.c>
DAVMinTimeout 600
<Location /bookmarks>
DAV On
Allow from all
</Location>
</IfModule>
<Location "/bookmarks">
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile "/var/local/basic_passwd/webdav
Require valid-user
FileETag None
</Location>
htpasswdを使って、AuthUserFileを作る。
apacheに設定を再読み込みさせた後、ここからアドオンをダウンロードする。
インストールするとウィザードが起動してくるが、今回は自前でサーバを用意するのでさくっと無視。設定を開いて「アカウント」タブの"ユーザ名"と"パスワード"を入力。「詳細」タブの"自分のサーバを使用"にチェックを入れてURLを入力する。
このとき、ディレクトリではなく保存するファイル名まで入れる事に注意すること。また、シンクロしないときはETagを記述する必要がある。
どんどんFirefoxラブになっていくなぁ・・・。
2009/01/20 補足
ETagについてはここを参照。
2010/01/17 補足
Xmarks Bookmark and Password Syncに名称が変更されたようです。
2008/11/16
a:hoverをなどを指定しているサイトでid毎、class毎に設定するには?
a:hover {
color: $linkColor;
background-color: #ccddee;
}
ただタイトルのロゴのように、同じページ内で背景色を変えたくない場合もある。
そういう場合は下記のように記述している。(IDの場合)
#header a:hover {
background-color: #fffaf0;
}
classで指定している場合は以下のような指定方法がいいようだ。
(hogehogeクラスのa:hoverを個別に指定したい場合)
a:hover.hogehoge {
background-color: #fffaf0;
}
ただbloggerのデフォルトでは下記のような指定方法を記述していた。
h1.title a, h1.title a:visited {
color: $headerTextColor;
text-decoration: none;
}
ちなみにW3Cのサンプルはまた違う書き方だったりする。
http://www.y-adagio.com/public/standards/tr_css2/selector.html#link-pseudo-classesより引用
<a class="external" href="http://out.side/">external link</a>その場合,次の規則により,リンクは青になる。A.external:visited { color: blue }
どれを使えばいいのやら・・・。
ssh-keygenで鍵を作ってrsyncでパスワードなしでファイルを同期
rsyncで自動でsshログインするようにした。
まずは既存の鍵がどのような種類か確認。ssh-keygen -l -f $HOME/.ssh/id_dsa.pub
SSH protocol version 2の場合(暗号強度が弱いため現在非推奨)
DSAキーを生成。local$ ssh-keygen -t dsa -N ""
Generating public/private dsa key pair.
Enter file in which to save the key (/home/name/.ssh/id_dsa):
Your identification has been saved in /home/name/.ssh/id_dsa.
Your public key has been saved in /home/name/.ssh/id_dsa.pub.
local$ scp -P 22 .ssh/id_dsa.pub name@remote:
remote$ cat id_dsa.pub >>.ssh/authorized_keys2
remote$ chmod 600 .ssh/authorized_keys2
openssh 7に対応させる場合
2048bit以上のRSA証明書を作成する。local> ssh-keygen -b 2048 -t rsa -N "" (生成するキーファイル名を指定する場合は-fをつける)
local> cd $HOME/.ssh
local> scp -P 22 id_rsa.pub name@remote:
remote> cd $HOME
remote> cat id_rsa.pub >> .ssh/authorized_keys
remote> chmod 600 .ssh/authorized_keys
remote> rm id_rsa.pub
crontabにスクリプトを追加して自動化にさせる
バックアップスクリプトの作成
#!/bin/sh RSYNC=${RSYNC:-/usr/bin/rsync} SSH=${SSH:-/usr/bin/ssh} SSH_PORT=${SSH_PORT:-22} USER=${USER:-ubuntu} ORIGINAL_SERVER=${ORIGINAL_SERVER:-hoge.com} ORIGINAL_DIRECTORY=${ORIGINAL_DIRECTORY:-/some/foo/} BACKUP_DIRECTORY=${BACKUP_DIRECTORY:-/some/foo} LOGGER=${LOGGER:-/usr/bin/logger} $RSYNC -avz -e "$SSH -p $SSH_PORT" $USER@$ORIGINAL_SERVER:$ORIGINAL_DIRECTORY $BACKUP_DIRECTORY if [ $? = 0 ]; then $LOGGER "Backup OK: $0" else $LOGGER "Backup NG: $0" fi登録
$ sudo crontab -u name -e
0 12 * * * /sbin/backup.sh
注意としてHOMEディレクトリのotherにrとxの権限がある必要がある。
2011/03/23 追記
ファイルサーバ用のユーザと権限を用意したときにはまりました。/etc/ssh/sshd_configのStrictModesをyesにしていると、groupに対して書き込み許可を出しているときに自動ログインができないんですね。一般ユーザでは自動ログインができていたため、原因をなかなか特定できずにあがきました。/var/log/auth.logをよく見ていれば、
Authentication refused: bad ownership or modes for directory /home/shareというメッセージが表示されていたんですが...
2013/06/18 追記
virtual boxの仮想ファイルのバックアップ時、ローカルマシンの負荷を抑えるように変更した。ioniceってのがあるんですね。
大量・巨大なファイル操作を低負荷で行う方法
新しいCygwinをインストールして痛い目を見ました。突然ログインできなくなったんですね。調べてみるとopenssh 7からDSAがデフォルト無効化になっているためでした。
sshで複数アカウントのBitBucketを使う場合はこことかここを参考
2008/11/13
PHP4のunserialize関数は遅い
例えば下記のようなコードをPHP4とPHP5で実行速度を比べてみる。
// $arrayは連想配列とする。
$serializeData = serialize($array);
$startTime = getmicrotime();
// アンシリアライズを単純に繰り返す。
for ( $i = 0; $i < style="color: rgb(0, 0, 153);">$i++ ) {
$unserializeData = unserialize($serializeData);
}
$endTime = getmicrotime();
echo $startTime - $endTime;
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$sec + (float)$usec);
}
配列数が増えてくると実行速度がどのように変化するか調べてみた。
(ただしWin32版)
配列数 1000 5000 10000 50000 100000 PHP4 0.34秒 3.60秒 13.17秒 266.86秒 - PHP5 0.19秒 1.17秒 2.45秒 15.06秒 50.67秒 増加量 179% 309% 538% 1772%
遅いだけならまあ関数を使わないだけで済むのだけど、実はsessionを利用するときに問題となる。
http://jp.php.net/manual/ja/intro.session.php より引用。
全ての登録された変数は、リクエストが終了した後に、シリアル化されます。・・・
マニュアルではどういう意味か分かりにくいが、実際は連想配列をセッションに保存する時はserialize/unserializeされている(と思われる)。
つまり処理の高速化の目的で巨大な連想配列をセッションに保存して利用しても、PHP4では大して早くなっていない可能性がある。
まあ特別な理由が無ければPHP5を使おうという結論で・・・。
2008/11/12
PHP 5.2.6(Win32)におけるphp_pgsql.dllのバグ
これを導入してしまうとpgsql関係の関数が全く使えなくなる。
http://bugs.php.net/bug.php?id=44905
http://bbs.php.gr.jp/topic-63.html
既に導入してしまった場合はFIX済みのDLLを上書きして再起動すればよい。
ちなみにXAMPPは未だにバグが含まれるPHP5.2.6を使っているので注意が必要だ。
http://www.apachefriends.org/jp/xampp-windows.html
私が確認したところXAMPP1.6.7~1.6.8で発生しているようだ。
バグが発見されたのが今年の5月なんだからいい加減直そうよ(^^;;;
仮想HDDのサイズ変更
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/740bigvmdisk.html
試してみたらHDDは増えたが,パーティションは自分で拡張しないといけないらしい。
当然といえば当然か。
PartitionMagic が一昔前だと有名だったのだが 最近はもう存在してないのね。
というわけで フリーのパーティション操作のソフトを探してみた。
EASEUS Partition Manager
http://www.forest.impress.co.jp/lib/sys/hardcust/defrag/easeuspart.html
最初にHDDを小さめに作って,必要な分だけ増やしていくというのが仮想環境だと正解かも。
2008/11/08
価格.comは一体どうやって儲けているのか
情報提供だけで売上の4%近く稼いでるのが興味深い。
今生産者と販売会社が直接やり取りをするため、仲卸の人達は凄まじく不景気らしい。生き残るにはこのへんの情報提供をすべきだと思うんだよなぁ。中間マージンを抜く人は、中間マージンを抜くだけの価値を示さないといけない。
2008/11/07
iSkoot
そこで提供しているiSkootというアプリケーションを使えば、携帯電話からキャリアの回線を使って、iSkootのサーバ越しにskypeユーザと会話をする事ができる。所謂Skype-phoneがプロバイダの回線を使うのに対して、携帯キャリアの通信を使うのが大きな違いだ。
で、iskootが$19Mの資金を調達したという記事があったので、何となくiSkootのウェブページを見ていたのだが、とんでもない物を発見してしまった。どうしよう((c)銭形)。
FAQによると
Q. 他のインターネットボイスチャットのプロバイダーもするつもりはありますか?
A. はい。私達はもうすぐ他のサービスについてもサポートするつもりです。
Q. 多人数チャットをサポートするつもりはありますか?
A. 私達はこの機能をすぐに追加したいと考えています。
うはwwwwww夢がひろがりんぐwwwwww
2008/11/01
Webアプリ開発環境としてのSafari
ASPじゃないWeb開発に使うアプリとしてはFirefoxが多いと思う。特にJavaScriptばりばりのやつ。
でも、これを読んでSafariもいいなと思った。
ネットワークタイムラインとかかなり面白そう。
たぶん面白いだけだけどw