2008/12/26

職場の人間関係を表す指数

最近気づいたんだ。
1時間以上かけて書いたメールを、年何通出さずに消すかは、職場の何かを表す指数になるんじゃないだろうか?w

2008/12/24

俄然猛威を振るい続けるUSBワーム

依然猛威を振るい続けるUSBワーム、今一度脅威の再認識を
http://blog.trendmicro.co.jp/archives/2334

私はなぜそんなにUSBメモリからの感染が広がっているか今まで知らなかったのでメモ。
「XPなら自動実行に関するダイアログが出るのになんで?」って思っていたがその認識は間違いだった。

>自動実行させるための「Autorun.inf」の書式には「openコマンド」と「shellコマンド」というものがあります。

> 「openコマンド」はメディアの挿入をトリガーにしてファイルを実行させるものです。(一般的に「自動再生」と呼びます)
> 「shellコマンド」はドライブのダブルクリックや右クリックメニューなどをトリガーにしてファイルを自動実行させるものです。

> これらのため、「Autorun.inf」の挙動は環境によって差異が生まれてきます。


うーんでもこれってOSの欠陥のような気がするんだけど気のせいだろうか・・・。

今のところは自動実行を無効化するのが最も無難な対策のようだ。

2008/12/18

Fedora 10

Fedora 10のネットワーク設定にはまったのでメモ。
Fedora 10には/etc/init.d/networkによる従来のネットデバイス起動方法と、/etc/init.d/NetworkManagerによる起動方法の2種類があるようだ。で、NetworkManagerが各種ファイルを勝手に書き換えるので見事にはまってしまった。

手順は次のようになる。
NetworkManagerを停止する。

/etc/init.d/NetworkManager stop


system-config-network-gui
を利用して、eth0をNetworkManagerの対象外にする。

system-config-network-tui
を利用して、IPアドレスの割り当てとDNSを設定する。


chkconfig NetworkManager off
chkconfig network on


以上。

MephoBox

デザインのよいサイトの部品ごとを紹介してくれている

例えば、各サイトの404やカレンダーだけを収集してくれている。

2008/12/17

MystOnline オープンソース化

Myst Online.

オープンにする時期やライセンスは公開されていないが、ええこっちゃ。

2008/12/16

Beagle

Beagle.

SUSE Linuxで使われている所謂Google Desktop Search。Microsoft Officeのファイルも検索できるようだ。C#で作られていて、Mono上で動く。開発者用にC#/C/PythonのAPIが用意されている。MITライセンス。

2008/12/13

ソース公開の障害

とあるプロジェクトで、お客様がオープンソース化したいと言っている。
なんか問題ないかな?と簡単に調べてみた。

結論としては著作者人格権の問題にひっかかりそうだ…。
プロジェクトの一部は弊社だけでなく、協力会社が担当している。そのとき、開発した協力会社に著作者人格権というものがあるらしい。その中には公表権なるものが含まれていて、公開するかどうかを開発サイドが意志決定を行う事ができるらしい。これを覆すためには、著作者人格権の不行使特約を結ばなければならない(参考)。

む、結んでるのかな…(汗。そんなの見た記憶がない。

2014/06/28追記:ソースコード引渡義務の有無 大阪地判平26.6.12(平26ワ845号)これ勘違いしてる人すっごいいそう。

/var/log/messagesの -- MARK --の出力を停止

自宅のサーバ(玄箱)で20分毎の生存証明なんかうざいだけなので停止する事にした。/var/log/messagesの肥やしにしかならんしね。

/etc/default/syslogdに

SYSLOGD="-m 0"

を追加。

日本語マニュアル

玄箱に日本語マニュアルをインストールした。


# apt-get install manpages-ja

2008/12/12

Native Client

誰もが思いつく馬鹿な事を、お金をかけて本当にやってしまう会社・Googleがまたやってくれました。ブラウザ上でx86ネイティブバイナリを動かすNative Clientというものを公開してくれています。やねさんのところが詳しいので例のごとくリンクさせてもらおう。
しかしこう次々と画期的なものがリリースされると、正直勉強速度が全く追いつかないなぁ(´・ω・`)

2008/12/09

Eclipse vs Visual Studio

やねうらおさんのところでEclipse vs Visual Studioについて議論している
結論が出なさそうなトピックだが、立場によって意見が違うのは面白い。

2008/12/08

DownThemAll!

画像ファイルをいっきにダウンロードするため、Firefoxのアドオン、DownThemAll!をインストールした。便利。

解説サイト
ダウンロード先

2008/12/06

2008/12/05

学生は無料でWindows Server 2008をもらえる

あり得ん

うらやましすぎる。

ntp

2012/06/22 修正:

玄箱の時刻を正すため、ntpサーバをインストールした。

# aptitude update
# aptitude install ntp ntpdate ntp-doc

/etc/ntp.confを最寄りの公開NTPサーバに設定する。

server ntp-os01.ocn.ad.jp iburst
server ns.riken.go.jp iburst

各種機関別のNTPサーバリストはここ
設定ができたか確認する。
# ntpq -p

2012-11-04 追記:

リソースがもったいないのでcronで走らせることにした。ここが詳しい。でも、調べてて気づいたけど、debianだと起動時に時間調整してくれるんですね。とりあえずそれでどれぐらいずれるか様子見てみよう。

2008/12/04

美女暦

技術者にとって……、いや、社会人にとってスケジュールを管理する事は非常に重要である。そのためには、カレンダーなどはとても見る気が起こる物でなくてはいけない!

だから美女暦をこのブログに乗せてみた!決して趣味ではないのである!!

今日のブログはオバマの演説並に理論的かつ感動的で素晴らしかったと思う。うんうん。

2008/12/03

VMWareゲストOS(Windows2000)の解像度をワイド対応にする

VMWare Server 1.07とGuest OSがWindows 2000の環境において、ゲストを1680x1050の解像度にしたい場合。

  1. VMWare toolをインストール

  2. EditPreferencesDisplayAutofit windowをチェック。Autofit guestをアンチェック

  3. ゲストOSを起動

  4. レジストリエディタを開いて\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Services\vmx_svga\Device0に文字列Resolution.KVMで値1680x1050を作成

  5. ゲストを再起動

  6. 画面のプロパティから1680x1050を選べばよい



2009/01/27 追記:VMWare 2系列と、そのドライバをインストールすれば普通にワイドに対応している。



2008/12/02

Vimの日本語文字コード自動認識

Vimの日本語文字コード自動認識
ずんWikiより

感謝。

楽天版MapReduce・HadoopはRubyを活用

楽天版MapReduce・HadoopはRubyを活用

フレームワークより、高速化のために使用しているアルゴリズムに惹かれた。

アルゴリズム面では、例えば嗜好の似たユーザーかどうかを判定するのに、「ローカリティ・センシティブ・ハッシング」(LSH:Locality Sensitive Hashing)というテクニックを使っているという。LSHを使うと、ユーザーの購買や評価の履歴が作る個別ベクトルの距離が小さい場合、高い確率でハッシュ値が一致するため、ベクトル間の距離をすべて計算せずに済むという。また、商品情報から辞書とマッチする言葉を抽出する際には検索関連で知られた技術「ダブル・アレイ・ツリー」(Double Array Trie)を使うことで高速化しているという。

ふむふむ。いつか参考にさせてもらおう。

後、高速化のためJRubyを採用しているのも面白い。

また今後はJava VM上で動くRuby処理系のJRubyへの対応も検討する。Cで書かれたオリジナルのRubyでは移植性を重視したためスレッド処理はネイティブスレッドに対応しない。このためマルチコアの恩恵を受けづらい。JRubyであれば処理の並列化が容易ではないかという。

Add-onな環境のほうが速度改善までの費用対効果が期待できるってのは皮肉な話だなぁ。

2008/11/28

新玄箱 KURO-NAS/X4

新玄箱 KURO-NAS/X4
ktkr!
次買うNASはこれかなぁ・・・。最初からDebian化されてるのも嬉しい。
残念なのは、CPUをもっといいもの積んで欲しかったorz

DreamHost

レンタルサーバ DreamHost がすごい
月間転送量5TBで月1,000円はお買い得だ。

2008/11/27

JSplash

Googleドキュメントを見たときに抱いた感想は、「馬鹿がいる」(褒め言葉)だった。
和物で同じ感想をJSplashを見て抱いた。

フラッシュをJavaScriptとSVGに変換するらしい。

Lenovoにマルウェア

Lenovoのソフトウェアにマルウェアが発見される
IBMの頃はよかった・・・。

2008/11/24

XMLを利用した様々な規格

http://bizex.goo.ne.jp/tool/it/22_209/

XMLを利用した様々な規格。

Canonical XML

XMLデータをやり取りする場合はXML文書を正規化したほうが良い場合がある。XML文書を正規化する規定が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.zip
# 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
PHPのインストール。
# yum install php php-mbstring
# /etc/init.d/httpd restart
PHPがきちんと動いている事をブラウザで確認。
http://www.hogehoge/rep2/phpinfo.php
にアクセスして表示すれば良い。

データ保存用ディレクトリを作成。
# mkdir /var/www/html/rep2/data
# chmod 770 /var/www/html/rep2/data
設定ファイルrep2/conf/conf_hostcheck.phpで、アクセスするIPアドレスを登録する。whoisコマンドを使うか、ここのリストを見てIPアドレスを登録する。この際、conf/conf_hostcheck.confをいじるのだが、custom変数を1にするのを忘れないこと

これで携帯と自宅で見た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" hoge
rep2用の設定を有効化する。
# sudo a2ensite rep2
最後にapache2を再起動してOK!

[Debian wheezyの場合]
ほぼ上記と同じだが、ユーザーは下記で作成。

# sudo adduser --system --ingroup www-data --no-create-home p2
また、ここを参考にした。

日本国内プロバイダのIPアドレスリスト

GeoLite Free Downloadable Databases
国別ネットワークアドレスリスト
プロバイダ・機関別ネットワークアドレスリスト
有料なやつ 1 / 2

NoScript

NoScript

Firefox用アドオンNoScriptをインストールした。サイトごとにJavaScriptのOn/Offを設定できる。操作性も非常に良い。これでCSRFを少しは防げるかな。

2008/11/29 追記
「一時的に許可」というのが素晴らしすぎる。二度と行かないサイトを追加してブラックリストをぶくぶく太らせなくてすみます。

2008/11/22

ブラウザだけで画面操作の動画を録画

Screencast-O-Matic

プロジェクトの関係上、画面操作をしている動画を非常によく撮影する。
その時に非常に便利。movファイルしか保存できないが、何もインストールしなくても(Javaは必要)キャプチャーできるのは便利すぎます。

IE Tab

https://addons.mozilla.org/ja/firefox/addon/1419

Firefox用アドオンのIE Tabをインストールした。
あらかじめ設定した特定のページだけIEのエンジンを使ってタブを開いたりする事ができるのが素敵。

2008/11/21

ジョエル・テスト

http://japanese.joelonsoftware.com/Articles/TheJoelTest.html

  1. ソース管理システムを使っているか?

  2. 1オペレーションでビルドを行えるか?

  3. 毎日ビルドを行うか?

  4. 障害票データベースを持っているか?

  5. 新しいコードを書くまえにバグを修正するか?

  6. 更新可能なスケジュール表を持っているか?

  7. 仕様書を持っているか?

  8. プログラマは静かな労働環境にあるか?

  9. 買える範囲で一番良い開発ツールを使っているか?

  10. テスト担当者はいるか?

  11. プログラマを採用するときにコードを書かせるか?

  12. 「廊下での使い勝手テスト」を行っているか?


どの程度のプロジェクトがこれを守ってることやら・・・

2008/11/20

ある日付以降に修正されたファイルの検索の仕方

管理者が複数いるシステムを扱っていると、全く身に覚えのない事でトラブルことがある。その調査に便利なコマンドをメモ。
/etc以下で、ある日付以降に修正された物を探す場合、

# touch -t MMDDHHmm /tmp/dummy
# find /etc -type f -newer /tmp/dummy -print

2008/11/19

写真を使った動画の補強

http://grail.cs.washington.edu/projects/videoenhancement/videoEnhancement.htm

「この動画からこの柱を取り除いておいて」「この動画の中の窓の反射を取り除いておいて」といった要求をかなり容易にしてくれる技術。これ次世代の動画編集ソフトに組み込まれるんじゃないかな。この機能があるのとないので手間暇が違いすぎる。

日米、ゲームの作られ方

日米、ゲームの作られ方

日本の一般的なゲーム制作会社とBlizzard Entertainmentとの制作過程の違いを書いている。日本の事例はゲームに限らずそこそこの規模のソフトウェア開発会社全般に当てはまると思う。

日本の開発会社ではウォーターフォールを取って下流に流れる程人数が増えるのに対して、Blizzardは人数を減らすらしい。
あり得ないw。仕事がなくなった人は一体何をするんだ?w
非常に興味深い。

ただ、これ"各工程の開発期間"という重要な情報が抜け落ちてるんだよね。
これも目から鱗が落ちるぐらい実は日米で違うのかもしれない。

2008/11/17

Foxmarks

自前サーバにWebDavを仕組むと共に、Firefoxのブックマークを共有化するアドオン・Foxmarksをインストールした。これで各PCでブックマークを共有するのが楽になった。
以下インストールメモ。

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

HTMLのエンコードフォーム

http://kawama.jp/php/encode_html.php

<を&lt;などに変換してくれる。
ブログ作成に地味に便利。感謝。

pwckとgrpck

pwckとgrpckはパスワードファイルとグループファイルに矛盾がないか調査する。
便利だ。

a:hoverをなどを指定しているサイトでid毎、class毎に設定するには?

このブログはリンクにカーソルを合わせたときに背景色が変わるように、CSSで指定している。
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の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版)













配列数100050001000050000100000
PHP40.34秒3.60秒13.17秒266.86秒-
PHP50.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のバグ

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のサイズ変更

vmware-vdiskmanager ってコマンドがあるらしい。

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は一体どうやって儲けているのか

価格.comは一体どうやって儲けているのか(Gigazine)

情報提供だけで売上の4%近く稼いでるのが興味深い。
今生産者と販売会社が直接やり取りをするため、仲卸の人達は凄まじく不景気らしい。生き残るにはこのへんの情報提供をすべきだと思うんだよなぁ。中間マージンを抜く人は、中間マージンを抜くだけの価値を示さないといけない。

2008/11/07

iSkoot

iskootという会社がある。
そこで提供しているiSkootというアプリケーションを使えば、携帯電話からキャリアの回線を使って、iSkootのサーバ越しにskypeユーザと会話をする事ができる。所謂Skype-phoneがプロバイダの回線を使うのに対して、携帯キャリアの通信を使うのが大きな違いだ。
で、iskootが$19Mの資金を調達したという記事があったので、何となくiSkootのウェブページを見ていたのだが、とんでもない物を発見してしまった。どうしよう((c)銭形)。
FAQによると
Q. 他のインターネットボイスチャットのプロバイダーもするつもりはありますか?
A. はい。私達はもうすぐ他のサービスについてもサポートするつもりです。

Q. 多人数チャットをサポートするつもりはありますか?
A. 私達はこの機能をすぐに追加したいと考えています。

うはwwwwww夢がひろがりんぐwwwwww

2008/11/01

Webアプリ開発環境としてのSafari

Webアプリ開発環境としてのSafari

ASPじゃないWeb開発に使うアプリとしてはFirefoxが多いと思う。特にJavaScriptばりばりのやつ。
でも、これを読んでSafariもいいなと思った。
ネットワークタイムラインとかかなり面白そう。
たぶん面白いだけだけどw

2008/10/31

キーボード打鍵時の電磁波で情報漏えい

キーボード打鍵時の電磁波で情報漏えい

イイネ。
わくわくする。

決して「カメラでもしかけたほうが楽じゃね?」とか言ってはいけません(>w<)

2008/10/07

TrueCrypt6.0の罠

TrueCrypt 6.0のインストールオプションに“Diable Paging Files”というのがある。
http://www.truecrypt.org/docs/?s=paging-file
これはスワップファイルを無効化することで、HDDにTrueCryptの使用痕跡を残さないためのオプションである。

当然のことながら、Windows自体スワップが無効化されるので物理メモリが少ない場合はチェックを外す方が無難。

間違えて設定した場合は下記の手順で元に戻す。

  1. マイコンピュータを右クリックして「システムのプロパティ」を呼び出す。
  2. 「詳細設定」タブ→パフォーマンスの設定ボタンをクリックしパフォーマンスオプションを開く。
  3. 「詳細設定」タブ→「仮想メモリ」→「変更」ボタンをクリック。
  4. “選択したドライブのページングファイルサイズ”を元の設定に戻す。
  5. 分からない場合はカスタムサイズにチェックを入れ、初期サイズと最大サイズを同じにすれば良い。

2008/09/29

USBメモリでTrueCrypt

暗号化ソフトを探していたが未だにTrueCryptが定番のようだ。

USBメモリでTrueCryptを使う場合の情報をまとめている人が既にいたのでリンク

http://d.hatena.ne.jp/simpraight/20070508

このバッチファイルは便利。

2008/09/28

open()とstat()は激遅い

http://d.hatena.ne.jp/yamaz/20061026

openとstatが激遅いというお話。
説得力のあるデータ付きの情報。
ためになるなぁ・・・。

2008/09/26

VMWare ゲストOS上のlinuxでホイールマウスを使う

ゲストOSのCentOSでホイールマウスを動かすようにした。/etc/X11/xorg.confを

Section "InputDevice"
Identifier "Mouse[0]"
Driver "vmmouse"
Option "Device" "/dev/input/mice"
Option "Name" "VMware Point Device"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
EndSection

のように変更した。実際にはProtocolとZAxisMappingを追加しただけ。

2008/09/25

Stack Overflow公開

Stack Overflowが公開された。
プログラマのためのQ and A用掲示板。非常に見やすい。Wikipedia形式を取っていて、後から編集ができ、かつ内容にたいしてタグがつけられる。めちゃくちゃ有用だ。
日本に移植されねぇかなぁ・・・。

2008/09/24

VMWare ゲストOS上のlinuxの時刻が狂う

VMWareのguest OSにCentOSを使っていると、時刻が狂ってしまう。ネットでよくある解決法とは違うアプローチで解決しているので、情報の共有をば。
Google先生によるとhttp://pooh.gr.jp/item-2249.htmlのアプローチを取る人が多いようだ。
私は

# vmware-config-tools.pl

をした後

# vmware-toolbox

でツールボックスを起動して「Time synchronization between the virtual machine and the host operating system」にチェックを入れて解決している。
やってる内容は同じかもだけどん。

vmware-config-tools.plの導入の仕方については/2008/08/vmware-guest-oscentos-5.htmlを参照されたし。

2008/09/23

ファイル操作の排他制御

fopenしてfcloseするしか知らない人が多くて困ります><

某所より引用:http://www.din.or.jp/~ohzaki/perl.htm#File_Lock



ファイルを読み込み,それを加工した上で書き込む場合の安全な排他制御の手順を書いておきます.

1.ロックする
2.ファイルを読み込む
3.一時ファイルに書き込む
4.一時ファイルを元ファイルにリネームする
5.アンロックする

2008/09/21

ブックマーク記述言語

ブラウザを乗り換えるとき問題となるのが、ブックマークの移行。
そこで誕生したのがブックマークの中間ファイル記述言語、
XBEL(XML Bookmark Exchange Language)
アプリケーション固有のブックマークのデータはmetadataタグに記述するようだ。

全てのブラウザがサポートすれば良いが・・・・・しないだろうなぁ・・・。

2008/09/19

Firefox スマートブックマーク (2)

前回の続き

使用していないブックマークをFirefoxのスマートブックマークで表示するには、
place:queryType=1&sort=7&maxResults=10

をブックマークに追加すれば良い。

2008/09/18

Firefox スマートブックマーク (1)

http://www.ideaxidea.com/archives/2008/06/firefox_3_2.html

Firefoxのスマートブックマークはかなり使えそうだ。
ブックマークはどうしても肥大化してしまうので、訪れていないサイトを表示して時々削るのがいいかなぁ・・・。

2008/09/13

PHPでバイナリデータを取り扱う その2

前回の続き

バイナリデータから一部のデータを削除、変換したいときがある。
だが残念ながらereg_replace()はバイナリセーフではない。

このような場合はereg_replace()ではなくpreg_replace()やmb_ereg_replace()、str_replace()などのバイナリセーフな関数を使用する。

例)
str_replace(pack("c", 0x00), '', $subject);

ereg関数などのPOSIX 正規表現関数はバイナリセーフで無いので使用を避けた方が無難である。

2008/09/05

Tree Style Tab

Chormeが発表されて、ネットでは話題になっているが、私は最近逆にFirefoxから離れられなくなっている。
Firefoxのアドオン、Tree Style Tabのインタフェースが直感的で秀逸すぎる。
sleipnirからの移行も遅ればせながら考え始めた。

2008/08/31

PHPでバイナリデータを取り扱う その1

PHPでバイナリデータを生成するにはpack()関数を使用する。
http://jp.php.net/manual/ja/function.pack.php

例えば以下のように文字列と混在させても問題ない。
// 0x03 0x00 0x20 0x61 0x0D 0x00A 0x04
$binData = pack("n", 0x0300) . " a\r\n" . pack("c", 0x04);
「PHP バイナリ」でググってもなかなかpack()関数までたどり着けないのでメモ。


これだけじゃあなんなのでもう一つ。

strlen()関数やsubstr()関数はバイナリセーフである。
http://jp.php.net/manual/ja/function.strlen.php

// 0x03 0x00 0x20 0x61 0x0D 0x00A 0x04
$binData = pack("n", 0x0300) . " a\r\n" . pack("c", 0x04);

echo strlen($binData); // 結果は7
// Windowsの改行コードである"\r\n"
// が長さ2と数えられているのにも注意

$cho = substr($bindata, 1, 3); // 0x00 0x20 0x61 が格納される

これは他の言語から入った人だとびっくりする結果ではなかろうか?

2008/08/29

sysprepで環境複製用のマスタ・イメージの作成

インストール作業を最低限にするマスタディスクを作るには、sysprepを使えば良い。

http://www.atmarkit.co.jp/fwin2k/win2ktips/553sysprep/sysprep.html

2008/08/28

Windowsで動作しているVMWareのサービスをワンクリックで起動

VMWareは非常に便利だが、常時起動でないコンピュータでVMWareの各種デーモンを自動起動にしておくと、ブートが遅くてかなわない。
そこで私は、VMWareの一連のサービスをコンパネから手動起動に変更してVMWareを使用するときだけ起動コマンドを叩くようにしている。

net %1 "VMware Registration Service"
IF "%1" == "stop" net %1 "VMware Authorization Service"
net %1 "VMware DHCP Service"
net %1 "VMware NAT Service"
net %1 "VMware Virtual Mount Manager Extended"

上記のコマンドをvmwareService.bat等のコマンドにした後、コマンドプロンプトから

> vmwareService start

と打てば良い。

2008/08/23

VMWare guest OS(CentOS 5)の解像度変更

VMWare Serverのguest OSにCentOS 5をインストールすると、デフォルトのままでは解像度が800x600までしか設定できない。変更の仕方をメモしておく。

カーネル再コンパイル用の開発環境をインストールする。
このとき、カーネルの開発環境のバージョンが動作しているものと一致するか気をつける事。

# yum install gcc
# yum install binutils-devel
# yum install kernel-devel.i686

VMWareに用意されているtoolboxが納められたISOファイルをマウントする。VMWare Serverの場合はデフォルトでC:\Program Files\VMware\VMware Serverにlinux.isoとしてある。その中のRPMをインストールする。
ドライバを再構築する。

# vmware-config-tools.pl

ネットワーク環境を設定する。

# /etc/init.d/network stop
# rmmod pcnet32
# rmmod vmxnet
# depmod -a
# modprobe vmxnet
# /etc/init.d/network start

Host OSと時刻を同期させるようにする。

# vmware-toolbox

再起動するとXの設定を再設定するように聞かれるので、モニタの解像度を正しいものにする。

2008/08/22

iPhone WinAdmin

iPhone用アプリWinAdmin

リモートデスクトップができるらしい。
ほっ、ほすぃ・・・。

2008/08/21

boost::python

最近boost::pythonを使うため、ネットで情報を集めている。そのとき、かなりの割合で不適切な情報を見る。
まず、
#include <Python.h>

は、使うべきではない。
#include <boost/python/detail/wrap_python.hpp>

とするべきである。何故ならVC++にはauto-linkingなる非常に便利でおせっかいなシステムがあり、
In Debug mode, this auto links boost_python-vc80-gd-1_35.dll which is
the Boost Python debug lib which does not define PY_DEBUG which is not
the behaviour I want. The Boost Python docs makes some reference to
using BOOST_DEBUG_PYTHON to change the behavior of wrap_python.hpp

だからである。もっとも、
but
no such support seems to exist to modify the auto-linking behavior.

というバグもついてくるけれど\(^o^)/

参考:http://mail.python.org/pipermail/c++-sig/2008-April/013457.html

2008/08/20

IT勉強会カレンダー

私はスケジュール管理にGoogle Calendarを使っている。
欠点はいくつかある(予定と実績の両方を書けない、開始時刻だけを書けないなど)。
だが、欠点を覆い隠すぐらい最高に良いのがカレンダーの共有化機能だと思う。
プロジェクト毎にカレンダーを細分化して、関係者にそのカレンダーを見てもらっている。また、オフショア開発の際に盲点になるのが現地の祝日・祭日である。これはGoogleがアドインのカレンダーとして用意してくれていて、非常に便利だ。
有志による公開カレンダーも増えてきていて、最近お気に入りなのがIT勉強会カレンダー。た、たまらん。メンテナーの方には足を向けて眠れない。

2008/08/18

仮装CD/DVD環境 Alcohol 52%

Alcohol 52% Free Edition

CDをイメージとしてハードディスクにバックアップしたいときは今までCloneCDDaemon Toolsを使っていた。
だが、CloneCDのTrial版には限りがあるし、Deamon Toolsは変なものまでバカバカ入れてくれるのでいまいち好きではなかった。
その代替として最近使い始めたのがAlcohol 52%のFree Edition。CCD方式を作れてマウントできて、最初から日本語化されている。素晴らしい。

2008/08/17

欧米のゲーム開発者はどのハードで作ってる?

欧米のゲーム開発者はどのハードで作ってる?
ハードより、開発言語の数値に惹かれました。
Another particularly interesting result that discussing trends in programming language. Of those responding, 76% are currently using C++ to make games, with 31% using C#, and 19% using Java/J2ME in their programming efforts. In addition, 9% of those replying still use assembly language in some way.

C#の躍進が凄まじすぎる。
Microsoftはゲーム業界を今後牛耳るんじゃないかなぁ。

2008/08/15

twiddla


ウェブ画面のデザインについて、電話で話しながらイライラした事はないだろうか?
タチコマだって「言語なんてアナクロな情報伝達手段を使っちゃダメだよ」みたいな事を言ってた気がする。
twiddlaはそんな悩めるweb管理者を助けてくれる。
利用するのにアカウントを作らなくて良いのが素晴らしすぎる。

http://www.twiddla.com/

2008/08/14

2008/08/13

「ようこそ画面」に「Administrator」を表示する

レジストリの
HKEY_LOCAL_MACHINE→SOFTWARE→Microsoft→Windows NT→CurrentVersion→Winlogon→SpecialAccounts→UserList

に値AdministratorでDWORD値1を作成する。

参考: 日経トレンディネット

2008/08/12

Windows XPにてメイリオフォントを使用する

下記のページにて「Windows XP 向け ClearType 対応日本語フォント」をダウンロード&インストール

http://www.microsoft.com/downloads/details.aspx?FamilyID=f7d758d2-46ff-4c55-92f2-69ae834ac928&DisplayLang=ja

ClearTypeを有効にする方法
http://support.microsoft.com/kb/306527/


ClearType系フォントを使う場合には、必ずClearType Tuner PowerToyを使って環境によって調整する必要がある。
チューニングするしないでかなり変わる。

ClearTypeをチューニング
http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx

いずれのページもInternet Explorerでアクセスすることが必要。

iconspedia

システム開発で馬鹿にならない工数を食べるのが、見た目の部分だと思う。
最近、外注先に
「こんなアプリケーションを作るんだけど・・・」
と、競合他社のアプリケーションを見せたら、経過報告のときに全てのアイコンが競合他社そのまんまでびっくりしたことがある。
そうならないために、アイコンなどの素材については常日頃から気を配りたい。
http://www.iconspedia.com/

2008/08/10

現在のSEO手法についての疑問

とある番組でSEO業者の意見が流れていた。

彼は言っていた。

「私達に任せればあなたのページを検索エンジン用に作り変えて、サーチエンジンの上位に表示させますよ」

と。

一昔前ならこの意見には耳を傾けるべきものがあった。少し詳しい人なら、人間から見て内容を全く同一のままランキングを改善させる手法を幾つか思いつくと思う。

だが、最近はこの手の意見を言う企業を私は懐疑的な目で見る。

コストはユーザビリティーの向上・コンテンツの充実にかけるべきものであり、決して検索エンジンを騙すような行為にかけてはいけないと思う。それは一時的な成果しか産まない。

最近、googleがページランクの仕組みがどのような事をもたらすか情報を公開している。

http://googleblog.blogspot.com/2008/07/technologies-behind-google-ranking.html

その中にこのような文章がある。

Identifying critical concepts in the query allows us to return much more
relevant results. For example, our algorithms understand that in the query [new
york times square church
] the user is looking for the well-known church in Times Square and not for articles from the New York Times.

いくつか補足しておく。

  1. New York TimesはRank 9なのに対してTimes Square ChurchはRank 5
  2. [new york times ***]で他の単語を検索すると、高確率でNew York Timesに飛ぶ

googleは世界全体のデータを見ている。対して、SEO業者は対象となるページを小手先で変更するだけである。それでもあなたは、SEO業者にカスタマイズを頼みますか?

ブログ開始

情報ってあるところにどんどん集まるんですよね。
蓄えていてもしょうがないので、仲間内での交流を兼ねて公開する事にしました。


私達の知識がどこかのデスマーチを救う事を願います。

--
taka