2008/7/29 火曜日

3dゲーム 酔わない方法

Filed under: 未分類 — admin @ 16:38:01

3Dゲームをしていると3D酔いをしてしまう。

それを解決するには車酔いと同じようにできるだけ動かない遠くの物を目視するように心がければあまり3D酔いをしないことがわかった。なぜ3D酔いをするかというと、ゲーム内では上下に動いているが、実際には動いてないため、三半規管が 誤認識してしまうのが原因と言ったことだ。

実際に酔う人と酔わない人との差は運動神経などによらず視点の違いによりなるようだ。

wikipedia 3D酔い

2008/7/27 日曜日

なんでも「あとでやる」としてしまう人が知るべき10個の真実 GIGAZINE

Filed under: 未分類 — admin @ 15:49:30

う~ん・・・これ、かなりあてはまるんだけど…

仕事の成功を妨げる原因はいろいろありますが、中でも最も頻繁に見られるのが「あとでやる」「あとで読む」「またあとで」というようにしてどんどん先送りにしてしまい、結果的に大きく遅延させてしまうというもの。

この先送りする習慣がついてしまうと、なんでもかんでもとりあえずスルーしてパスして、条件反射的に「またあとでやるから」というようにして自分で自分をごまかし続け、最終的には自分自身の仕事の業績、そして信頼などに跳ね返ってくるわけです。なんとかしなくては。

というわけで、この先送りして先延ばしにしてしまう精神構造について研究している第一人者であるシカゴのデ・ポール大学のJoseph Ferrari准教授、カナダの首都オタワにあるカールトン大学の心理学準教授Timorthy Pychylの両名による、先延ばしにしてしまう人が知っておくべき10個の真実についてです。

この10個の真実を知れば、セルフコントロールできるようになるのかも。詳細は以下の通り。

1:20%の人々は自分のことを先延ばしにする人だと認識している。
ライフスタイル自体が先延ばしすることに慣れてしまっており、時間通りにできなくなってしまっている。

2:先送りにすることを重大な問題ととらえていない人が多いが、決して取るに足らないようなことではない
なんでもかんでも先送りにしてしまうのはセルフコントロール、自己調整の問題であり、特に米国ではその傾向が強いそうです。いわゆるお国柄というやつですね。
また、先送りにする際の「理由」はただの「弁解」であり、言い訳にすぎないのでその弁解を誰も真剣に聞こうとはしなくなる、と。周囲からの評価が下がり、「あいつはああいういい加減なやつだ」という評価になっていくわけですね。

3:先送りするクセはスケジュールや時間管理の問題ではない
意外なのですが、すぐにスルーして「あとで見る」「あとで読む」「あとで返事する」「あとでやる」としてしまう人は時間の見積もりができない人というわけ ではない。ちゃんと何をするのにどれぐらいの時間がかかるのかはわかっている。しかし、ほかの人々に比べて余りにも「楽観的すぎる」そうです。
先ほどのアメリカに多く見られるというのも、この楽観主義によるところが多いのかもしれません。

4:先送りする人は直接的ではないが家庭環境から先送りすることを学んでしまっている
先送りする原因は生まれ育った家庭環境にもあるということ。権威主義的な子育てのスタイルの家庭で育つと起こりやすいそうです。
つまり、両親のうちのどちらかが権威主義的で、厳しく自分の子どもをコントロールしようとして、それがあまりにも強すぎるので子ども自身が自分で自分を律 して調整する能力、自分自身の意図した行動の結果によって何が起きるかということを学ぶことができなくなってしまう、と。そしてそういう親からの支配に対 する「反抗」という形で「先送りにする」という行動が出てくるそうです。
先送りする人はこの家庭環境があるが故に、家族よりも友人の影響を受けやすくなり、そしてこの友人たちによってさらに先延ばしにする習慣が強化されるとの こと。なぜなら、この先延ばしにすることを許容してくれる人、そして先延ばしにする言い訳を許容する人を友人に選んでしまうため。悪循環の開始です。

5:アルコールの消費量が多い人ほど先送りする傾向も強い
先送りにする人は要するに自己調整、セルフコントロールができない人なので、必然的に飲酒なども適量で済ますということはなく、結果的にアルコールを他の人よりも大量に摂取してしまう結果になるそうです。アルコールに限らず、薬物乱用などにも同じように陥りやすいらしい。

6:先送りにする人は自分で自分に嘘をつく
自分の嘘をつく感覚を守るために「これは重要ではない」というように自分に言い聞かせるそうです。そしてさらに別の嘘として、締め切りが迫ってくるプレッシャーがあるときほどよりクリエイティブになれる!などというようなことを考えてしまうらしい。
例えば「今は明日にコレをやりたい気分だ」「期日が迫ってるプレッシャーがないと仕事をする気になれない」などというようにして自分に嘘をつく。しかし実 際には次の日にやるという気分でもないし、プレッシャーがあればいい仕事ができるわけでもない、と。結果的には無駄に時間を浪費しているだけというわけで す。

7:積極的に注意散漫になりがちなことを行う傾向が強い
自分の注意を本来やるべき事からそらすことによって、本来やるべきことをやって失敗するという恐怖から自分の感情や自分自身を保護してしまうそうです。
例えば、電子メールを必要もないのにこまめにチェックするなど。本来やるべき仕事よりも電子メールが何か来ていないか?ということの方が非常に気になるというわけです。試験前に掃除したくなるという人をちらほらと見聞きしますが、あれも同じ理屈かも。いわゆる現実逃避。

8:先延ばしにする人には典型的な3種類のタイプがある
・覚醒タイプ:危機的状況まで何もしないことにスリルを感じる人。締め切りぎりぎりで大あわてで仕事をこなすことに幸福感を覚える。締め切 りぎりぎりまで先延ばしにして超特急で仕事をこなし、終わってから「ああ、いっぱい仕事した~♪」というような感覚を覚える人のことです。つまり、ぎりぎ りまで放置した反省がどこにもない。
・回避タイプ:失敗する恐怖を回避するため、もしくは成功する恐怖を回避するために先延ばしにしてしまう人。これは決して能力不足なのではなく、努力することを怠っているのが原因らしい。いわゆる「やる気になってやればできるのに」という人。
・意思決定不能タイプ:決断ができない人のこと。決断することによって発生する出来事の結果を恐れるため、意思決定することを先延ばしにしてしまう。

9:先延ばしにすると結果的に多大なるコストがかかる
先延ばしにする人は要するに自己管理能力も低いため、結果的に健康に対する害も大きいそうです。風邪やインフルエンザにかかりやすく、胃腸障害も発生しや すい、それどころか不眠症にもかかりやすい、と。それだけでなく、先送りにして遅延させた結果の責任を他者に転嫁するため、仕事のチームワークを乱し、私 的な関係をも破壊してしまう、と。確かになんでもかんでも先送りにし続けるような人がいれば仕事は進まないし、約束も期日通りに守ってくれないのであれば プライベートでも頼りにはされなくなるので必然的につきあいが疎遠になっていくのは当然か……。つまり、あまりにも多くのコストを支払ってしまうというわ け。

10:先延ばしにする人であってもその行動を変えることはできる
ではどうすればこの先延ばしにしてしまう自分を変えることができるのか?変えるには多くの精神的なエネルギーが必要ではあるが、「認知行動療法」によって改善可能だそうです。

なお、以上の記述は以下の記事をベースにして書かれています。

Psychology Today: Procrastination: Ten Things To Know

ソースFrom:GIGAZINE

PHPでのsocket通信 メモ

Filed under: 開発メモ — admin @ 15:40:23

 <?php
// エラーのタイプ
error_reporting (E_ALL); // サポートされる全てのエラーと警告

// プログラム開始
echo “プログラムを開始しました。\n”;

// スクリプトが実行可能な秒数を無制限に設定
set_time_limit (0);

// 出力関数のコールが行われるたびに自動的にフラッシュ操作が行う
ob_implicit_flush ();

// サーバーのIPアドレス
$address = ‘192.168.24.66′;

// 使用するポート
$port = 10001;

// IPv4インターネットプロトコル
$domain = AF_INET;

// 時系列的、高信頼性、全二重、接続型のバイトスト リーム(何の事やらさっぱり)
$type = SOCK_STREAM;

// 最大キュー数(どこで役になってるかよく分からん)
$backlog = 5;

// ソケットを作成する
if (($sock = socket_create ($domain, $type, 0)) < 0) {
echo “ソケットの作成に失敗しました。” . socket_strerror ($sock) . “\n”;
}else{
echo “ソケットを作成しました。\n”;
}

// ソケットに名前をバインドする
if (($ret = socket_bind ($sock, $address, $port)) < 0) {
echo “バインドに失敗しました。” . socket_strerror ($ret) . “\n”;
}else{
echo “名前をバインドしました。\n”;
}

// ソケット上で接続をモニタする。
if (($ret = socket_listen ($sock, $backlog)) < 0) {
echo “接続待ちに失敗しました。 ” . socket_strerror ($ret) . “\n”;
}else{
echo “モニター開始しました。\n”;
}

// クライアントリスト(配列)を作る
$clients = array($sock);

// break 2 するまで繰り返し
while (true) {

// クライアントリストをコピっとく
$read = $clients;

// ブロックの監視
$write = NULL;

// 例外の監視
$except = NULL;

// 有効時間
$tv_sec = 3600; // マニュアルには0でOKってあるけど、0にするとループして処理落ちする

// ソケットの配列を受け取り、 指定した有効時間の間それらの状態が変化するまで待ちます。
if (socket_select($read, $write, $except, $tv_sec) < 1){

// 最初に戻る
continue;

}

// 新規に接続しようとするクライアントがいる場合
if (in_array($sock, $read)) {

// ソケットへの接続を許可する。
if ( ($newsock = socket_accept($sock)) < 0) {
echo “接続許可に失敗しました。 ” . socket_strerror ($newsock) . “\n”;
continue;
}

// クライアントリスト(配列)に追加する
$clients[] = $newsock;

// 現在の接続人数
$clientCnt = count($clients) - 1;

// 接続者のIPを取得
socket_getpeername($newsock, $ip);

// 出力する文字
$msg = “==================================\r\n”.
“サーバーに接続しました。\r\n” .
“終わりたいときは’1′押して。\r\n” .
“サーバーを止めたい時は’2′押して。\r\n” .
“==================================\r\n”;

// クライアントへ文字の出力
socket_write($newsock, $msg, strlen($msg));

// 出力する文字
$msg = “「{$ip}さんが来ましたよ。(今{$clientCnt}人)」\r\n”;

// 全てのクライアントにログインを報告
foreach ($clients as $send_sock) {

// #4を無視
if ($send_sock == $sock ){
continue;
}

// クライアントへ文字の出力
socket_write ($send_sock, $msg, strlen ($msg));

}

// サーバーに文字の出力
echo $msg;

// 発言用のforeachが発動しないようにunset
$key = array_search($sock, $read);
unset($read[$key]);

}

// 発言のあるクライアントの数だけループ(奇跡の同時入力でも行われない限り大抵1個)
foreach ($read as $read_sock) {

// クライアントIP
socket_getpeername($read_sock, $read_ip);

// ソケットから(最大2048バイトまでの)入力データを読込む
$buf = socket_read($read_sock, 2048);

// 接続が確認出来ない場合
if (FALSE === $buf) {

// クライアントリストから削除
$key = array_search($read_sock, $clients);
unset($clients[$key]);

// 現在の接続人数
$clientCnt = count($clients) - 1;

echo “「{$read_ip}さんが切断されました。(今{$clientCnt}人)」\n”;

// 次のクライアントへ
continue;

}

// 空白除去して中身が空っぽだったら次のクライアントへ
if (!$buf = trim ($buf)) {
continue;
}

// 1だったらクライアントの終了
if ($buf == ‘1′) {

// クライアントリストから削除
$key = array_search($read_sock, $clients);
unset($clients[$key]);

// ソケットを切断する
socket_close ($read_sock);

// 現在の接続人数
$clientCnt = count($clients) - 1;

// 出力する文字
$msg = “「{$read_ip}さんが帰りました。(今{$clientCnt}人)」\r\n”;

// 全てのクライアントにログインを報告
// あれ?どっかで同じ処理みたぞ。
foreach ($clients as $send_sock) {

// #4を無視
if ($send_sock == $sock ){
continue;
}

// クライアントへ文字の出力
socket_write ($send_sock, $msg, strlen ($msg));

}

// サーバーに文字の出力
echo $msg;

// 次のクライアントへ
continue;

}

// 2だったらソケットサーバーの停止
if ($buf == ‘2′) {
// ソケットを切断する
socket_close ($read_sock);
break 2;
}

// 全てのクライアントに発言を送信
// あれ・・・また同じ・・・
foreach ($clients as $send_sock) {

// #4を無視
if ($send_sock == $sock ){
continue;
}

// 自分の発言の時は改行コードだけ出力する
if($send_sock == $read_sock){
socket_write ($send_sock, “\r\n”);
continue;
}

// 出力する文字
$talkback = “{$read_ip}:{$buf}\r\n”;

// クライアントへ文字の出力
socket_write ($send_sock, $talkback, strlen ($talkback));

}

// サーバーに文字の出力
echo “{$read_ip}:{$buf}\n”;

}
}

// ソケットを閉じる(サーバーの終了)
socket_close ($sock);

?>

参照元トラックバックURL
http://d.hatena.ne.jp/codeweb2/20080112/1200081048

Perlでのsocket通信

Filed under: 開発メモ — admin @ 1:29:54

Perlによる共通鍵暗号方式でのSocket通信。クライアント部分。

DESは8ビットしか(超・未満)暗号化できないけれど、Crypt::CBCを使えば8ビットを超えるのデータも8ビットずつ暗号化してくれます。8ビット未満の最後の端数もうまいこと処理してくれます。ローカルの入出力はいい加減です。

※DES以外の暗号化方式も処理できます。

#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket;
use Crypt::CBC;
use utf8;

open (IN,”sock_crypt.txt”); #暗号化したいデータ
binmode IN;

# オブジェクト作成
my $cipher = Crypt::CBC->new({’key’             => ‘aaaaaaaa’, #鍵パスフレーズ
‘cipher’          => ‘DES’, #暗号化の方法
‘iv’              => ‘$KJh#(}q’, #初期ベクトル
‘regenerate_key’  => 0,
‘padding’         => ’standard’,
‘prepend_iv’      => 0
});

# 暗号化
my $ciphertext = $cipher->encrypt(<IN>);

my $sock = IO::Socket::INET->new(PeerAddr => ‘xxx.xxx.xxx.xxx’, #送信先サーバのIPアドレス
PeerPort => ‘xx’, #送信先サーバのListenポート番号
Proto => ‘tcp’); #プロトコル

$sock->send($ciphertext); #送信

#送信後、何か受けるものがあれば下記で受信
my @recv = <$sock>;
close($sock);
print @recv, “\n”;

2008/7/21 月曜日

現在の世界 10次元以上の宇宙

Filed under: 未分類 — admin @ 1:28:40

現在、この宇宙は10次元とされているが、最近になって超ひも理論など新しい次元説が浮上している。

一次元、二次元、三次元、四次元などはわかるが、その先の次元って何よ?という人も多いと思うので、そんな4次元以降の話についてムービーによる解説があるサイト

英語です。英語がわからなくてもムービーを見るだけでも面白い。

http://www.tenthdimension.com/

http://www.tenthdimension.com/medialinks.php

2008/7/18 金曜日

XREAで同期元を削除してしまった場合

Filed under: 開発メモ — admin @ 23:56:35

「同期元」を削除し「同期先」が見えなくなってしまった場合、削除してしまった「同期元」と同名のディレクトリを作成すると、見えなくなってしまった「同期先」のディレクトリも復活します。
CGI スクリプトで「同期先」を削除する

この場合は、次の CGI スクリプトを用いて「同期先」を削除するとうまくいきます。@deletefile に、同期先ディレクトリの相対パスを記入してアップロードし、通常の CGI と同じように実行してください。
#!/usr/local/bin/perl

# 削除したいファイルパス 複数指定可能

# ファイル、およびシンボリックリンクを削除できます。ディレクトリは削除できません
@deletefile = ( ‘./hogehoge.com’ );

$cnt = unlink (@deletefile);
$mes = “$cnt 個のファイルの削除に成功しました。”;

print “content-type: text/html\n\n”;
print “<HTML><HEAD><TITLE>ファイル削除</TITLE></HEAD><BODY><H1>$mes</H1></BODY></HTML>”;
メモ帳などにコピーペーストし、「名前をつけて保存」を行ったものをアップロードし、CGI として実行してください。
FTP ソフトで「同期先」を削除する

シンボリックリンクの削除に対応している FTP ソフトなら、「同期先」を正常に削除することができます。しかし、そのようなソフトは非常に少ないので、上記の CGI を使った方法が一番確実でしょう。

inner join と left join の違い

Filed under: 開発メモ — admin @ 23:55:04

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。

MYSQL 3テーブル以上 結合

Filed under: 開発メモ — admin @ 23:53:16

・inner join を使用して、等価結合することもできます。(インナージョイン)

select
受注番号,
受注m.品番   as 品番,
品番m.入庫数 as 入庫数
from sak.受注m inner join sak.品番m on 受注m.品番 = 品番m.品番
;

・3 つ以上の結合を inner join で指定するには、次のようにする。

select
*
from (sak.受注m inner join sak.品番m on 受注m.品番 = 品番m.品番)
inner join sak.得意先m on 受注m.得意先CD = 得意先m.得意先CD
;

ニコニコ動画 アイコン一覧

Filed under: 未分類 — admin @ 1:04:50

ニコニコ動画本家を解析してたらアイコン一覧ページを見つけた。

しっかしよくつくるなぁ・・・。さすが!

http://www.nicovideo.jp/img/tpl/head/icon/nico/

2008/7/17 木曜日

ある大学であった授業2

Filed under: 未分類 — admin @ 0:34:30

ある大学でこんな授業があったという。

「クイズの時間だ」教授はそう言って、大きな壺を取り出し教壇に置いた。
その壺に、彼は一つ一つ岩を詰めた。壺がいっぱいになるまで岩を詰めて、彼は学生に聞いた。
「この壺は満杯か?」教室中の学生が「はい」と答えた。
「本当に?」そう言いながら教授は、教壇の下からバケツいっぱいの砂利をとり出した。
そしてじゃりを壺の中に流し込み、壺を振りながら、岩と岩の間を砂利で埋めていく。
そしてもう一度聞いた。
「この壺は満杯か?」学生は答えられない。
一人の生徒が「多分違うだろう」と答えた。

教授は「そうだ」と笑い、今度は教壇の陰から砂の入ったバケツを取り出した。
それを岩と砂利の隙間に流し込んだ後、三度目の質問を投げかけた。
「この壺はこれでいっぱいになったか?」
学生は声を揃えて、「いや」と答えた。
教授は水差しを取り出し、壺の縁までなみなみと注いだ。彼は学生に最後の質問を投げかける。
「僕が何を言いたいのかわかるだろうか」

一人の学生が手を挙げた。
「どんなにスケジュールが厳しい時でも、最大限の努力をすれば、
いつでも予定を詰め込む事は可能だということです」
「それは違う」と教授は言った。

「重要なポイントはそこにはないんだよ。この例が私達に示してくれる真実は、
大きな岩を先に入れないかぎり、それが入る余地は、その後二度とないという事なんだ」
君たちの人生にとって”大きな岩”とは何だろう、と教授は話し始める。
それは、仕事であったり、志であったり、愛する人であったり、家庭であったり・自分の夢であったり…。
ここで言う”大きな岩”とは、君たちにとって一番大事なものだ。
それを最初に壺の中に入れなさい。さもないと、君達はそれを永遠に失う事になる。
もし君達が小さな砂利や砂や、つまり自分にとって重要性の低いものから自分の壺を満たしていけば、
君達の人生は重要でない「何か」に満たされたものになるだろう。
そして大きな岩、つまり自分にとって一番大事なものに割く時間を失い、その結果それ自体失うだろう。

次のページ »

HTML convert time: 0.296 sec. Powered by WordPress ME