ガル白の憂鬱

仮想現実の世界をガル白として生きた管理人が、現実世界の出来事を記録するものです。

男は黙って三仏寺(-ω-)

2006年09月26日 22時41分28秒 | Weblog
ここ最近の週末、特にこれといった大きなイベントもなく過ごしてきた。
しかし、10月の3連休は違う(-ω-)

企画倒れに次ぐ企画倒れで延期になっていた大イベント、三仏寺投入堂ツアーを実施するのだ。

三仏寺投入堂とは、鳥取県東伯郡三朝町の三徳山に存在する寺であり、国宝に指定されている。
切り立った断崖の岩の窪みに絶妙に建立されているこの寺は、その昔、修行僧が法力で投げ入れたという伝説を持つのだ。

高校時代、日本史マニアだったワシは、資料集でこの寺の写真を見て以来、死ぬまでに一度見てみたいものじゃのう(-ω-)
といつも思っていた。

大学時代、社会人になってからも何度かツアーを企画するもすべて企画倒れ。
今度という今度は台風が来ても決行するしかない。

メンバーは例によって地球惑星科学科のメンバー。
福岡からはワシと遠藤。
下関からナオキタ。
大阪からTAKU。
沖縄からマサンド。
の計5名である。

このメンバーで出かけるのは、島根県カニ食いツアー以来、実に2年半ぶりだ。
大学を卒業して多くのメンバーが福岡を離れて以来、なかなか一同に集う機会が少ないため、実に楽しみである。
特に沖縄、大阪から参加するマサンドとTAKU、ご苦労である(-ω-)

宿は偶然にも三仏寺の近くにナオキタの親戚の家の空き家があるらしく、そこにお世話になることにしている。

それにしても、三仏寺を見る以外に特に予定もない今回のツアー、2泊3日をどのように過ごすかを少し考えておかねばなるまいて。
恐らく近辺の温泉を巡ったりするのであろうか?

夜はあれか?
飲んで歌って鍋でもするか?

それともあれか?
池田君が考えた「家政婦は見たゴッコ(注1)」でもするか?

2週間後のことに今からワクワクする29歳のワシ・・・。
いかに今の生活に楽しみがないかを物語っている気がする(-ω-)

注1:家政婦は見たゴッコ
1997年に長崎県島原市雲仙で実施された地球惑星科学実習(宿泊研修)の際に地球惑星科学科のクラスメート、池田君が発案した遊び。
詳細は覚えていないが、電話で人に聞かれてはマズい話をする男役と、それをドアの影からこっそり見つめる市原悦子役の2名で実施される。
池田君はこれ以外にも、「somethingは女の子のジーンズです」のCMで女の子がジーンズをはく時のモノマネなどもやっていた。
是非池田君にも来て欲しい(-ω-)

空も~飛べ~るはず~♪

2006年09月21日 00時25分11秒 | Weblog
土曜日、テニスサークルのメンバーと久々に徹夜マージャンをして家に着いたのが日曜の朝10時。
となりの卓でマージャンしてたオッサン達の会話から推測するに、台風は長崎直撃らしいことは知っていた。
朝、雨も風もたいしたことないことから、ワシはてっきり台風はもう通り過ぎたのだろうと安心して眠ったのだ。

起きると夕方、やばい、生活のリズムが崩れる・・・。
と思って用もないのに車でドライブ。
目的地もなく適当に走ってみる。

すると何やら天候が怪しくなってきた。
どうやら台風は今から来るらしい。
そういやーテレビとか全然見てなかったもんな~、と思い家に引き返すことにした。

次第に強くなる風にハンドルをとられながらも、運転を続けるワシ。

・・・(-ω-)

なにやらヤヴァイ雰囲気なんですけど。。。

あれ?(-ω-)
あそこに飛んでるのはガードレールじゃないですか?(-ω-)
ってこっちに飛んでキター(゜∀゜)
ウヒャッホウーイ(゜д゜ )
キター(゜∀゜)
アビネー(゜д゜ )
ヨケター(゜д゜ )

ウオオオ(゜д゜ )
今度は隣のガードレールが倒れてきたー(゜д゜ )

ノヒョヒョー(゜д゜ )
なんかデッカイ看板が飛んでるー(゜д゜ )
つーか前走ってるトラックがグラグラしてルー(゜д゜ )

この時車内で流れていた曲が、スピッツの「空も飛べるはず」
ほんとだね(-ω-)

ワクワクドキドキしながら運転を続けるワシ。
ゲームみたいで楽しいな~と思いながらも・・・

いや、待てよ(-ω-)
(九州大学理学部地球惑星科学科地球惑星物質科学講座助教授松井先生風に)

あんなの直撃くらったらホントに死ぬかもしれんやんけー(゜д゜ )

ワシの車は屋根がない例のヤツ。
あんな重いもんの直撃食らったら無事では済むまい。。。

信号も止まってる大通りは危険と判断して、細い抜け道に逃げるようにかけこむワシ。当然のように道に迷い、危険は余計に増すばかり。

泣く泣く家に着くも、駐車場から家の玄関までがまた難関。
やっとのことで家の中に着く。

安心感から腹が減るも、食べ物がない・・・。
ワシはその日にならないと食べたいものが分からないため、食料の買い置きをしない。それが裏目に出たのだ。

冷蔵庫を開けると、なぜかラッキョの瓶詰めが1瓶。
ポリポリ食う。
ラッキョって臭いな~って賞味期限1年切れていればそりゃ臭いわ(-ω-)

よし、こんな時はピザとろう(゜д゜ )

あ、モシモシ(゜д゜ )
注文お願いしたいんですけど(゜д゜ )
え?ダメ?(゜д゜ )

・・・プロ意識が低いピザ屋め(-ω-)

結局数時間待ち風も収まった頃コンビニへ。

ロウソクありますか?(オッサン)
すみません、売り切れです。(店員)

ウワー、ベタな会話やな~(゜д゜ )
もちろん食料品はほぼ売り切れだったがカップ麺くらいは買えました。

とりあえず台風の日は出歩くな、とだけ言わせていただこう(-ω-)



あなたな~ら どぉする~♪

2006年09月14日 23時36分57秒 | Weblog
ワシは目が悪い(-ω-)
裸眼視力にいたっては測定不能。
しかしコンタクトレンズを付ければ両目ともに1.5である。

つまり先ほどのあれが見間違いであるはずがない。

道端を汗だくで歩いているオッサンのYシャツから、ブラが透けて見えたとき、あなたならどうする?(-ω-)

ワシこんな時、自分に納得のいく答えを出して解決しようとする。

あ~、あれはあれだよ、あれ、スポーツブラ(-ω-)
あのオッサン、スポーツしてたんだよ、うん。
いや、まてよまてよ(-ω-)
(九州大学理学部地球惑星科学科物質科学講座助教授松井先生風に)
それ全然解決してねえぞ。

あ、おんなか?(-ω-)
あのオッサンに見える人、女か?
Yシャツ着てハゲてるけど、女だろ?
・・・ムリがある。

えーっとどうしよっかな。
あれだ、文化庁が極秘に調査してるんだ。
ブラ付けたオッサンを見たら国民はどのような反応を見せるかを調査してるんだ!
きっとワシの反応が何かの研究に使われるんだ!
・・・ダメ。

単なるオッサンの趣味であると素直に受け止めよう(-ω-)

俺の歴史に・・・また1ページ・・・(-ω-)

2006年09月13日 23時29分35秒 | Weblog
ワシは飽きっぽいのである(-ω-)
以前作成したスケジュール管理システム「スケジュール番長.NET」であるが、まだまだ修正しないと実用に耐えられるレベルではない。
携帯電話対応を筆頭に、その他もろもろの細かい修正がたくさん残っているのである。
でもなんだか一度動くと飽きてしまい、とりあえず放置していたのだが、先日開催されたサークルの新人歓迎会で、みんなから「とっとと完成させろ(゜д゜ )」と励ましの言葉をいただき、重い腰を上げてみた。

久しぶりにプログラムコードを見ると、自分で書いておきながら何を書いているのかよく分からん状態(-ω-)
しばらく眺めて思い出すのに一苦労である。

とりあえず今日はユーザ情報の更新機能と、ユーザ削除機能を追加してみた。
今回のブログでは、それぞれの機能をどのように考えてどのようにプログラムしたかを綴っておくことにする。
はっきり言って、面白いネタは何もない(-ω-)
プログラムとかWebシステムに興味のある人は続きを読むといいかもしれん。
内容を理解できれば、あなたはまぁまぁプログラマに向いているかもしれん。

まずユーザ情報更新機能について。
これは、新規ユーザ登録時に登録したユーザ情報を、各自が更新できる機能。
ユーザ情報には、
・名前
・アカウント
・パスワード
・メールアドレス(今回新規に追加)
の4つがある。

さて、これらをユーザに更新させる際に一番注意しなくてはいけないのは何か?
それは、アカウントが他のユーザと重複しないようにすることである。
アカウントというのは、ログイン時にパスワードとセットで入力し、データベースから該当するユーザ情報を引っ張ってくるために使うものだ。
もしAさんとBさんのアカウントが重複すると、BさんがログインしたときにAさんの情報を引っ張ってくる可能性がある。
これだと困るので、データベース上で同じアカウントが登録されることは避けなければならない。

そこで、更新ボタンが押された際に既にデータベースに同じアカウントが登録されていたら、他のアカウントを入力してもらうようにメッセージを出す処理を入れるのだ。
プログラミング言語のC#では以下のように書く。

//個人情報の更新ボタンが押されたときの処理
protected void Button1_Click(object sender, EventArgs e)
{
int userId = Convert.ToInt32(Session["Login.aspx.id"]);
string userName = TextBox1.Text;
string userAccount = TextBox2.Text;
string userPassword = TextBox3.Text;
string email = TextBox4.Text;
string oldAccount ="";

ScheduleBusinessComponent bc = new ScheduleBusinessComponent();
oldAccount = bc.getUserDataByUserId(userId)[0].user_account;

//登録済みアカウントの重複チェック
if ((bc.isExistAccount(userAccount)) && (oldAccount.Equals(userAccount) == false))
{
//エラー画面へ遷移
Response.Redirect("~/Error/wAccountError.aspx");
}
else
{
bc.updateUserTable(userId, userName, userAccount, userPassword, email);

Response.Redirect("RegistrationComplete.aspx");
}

}

1行ずつ解説しよう(-ω-)
今日は長い夜になりそうだ・・・
まず1行目
protected void Button1_Click(object sender, EventArgs e)
これは、画面上にあるButton1というIDを持つボタンがクリックされたら{}内の処理を実行してくださいよ~という命令。

次の行
int userId = Convert.ToInt32(Session["Login.aspx.id"]);
これは数値型の変数userIdってやつに、現在ログインしているユーザのユーザIDを入れてね~って命令。
Session["Login.aspx.id"]ってのがユーザIDが入っている場所で、Convert.ToInt32で、それを数値型に変換しろよっていってる。

その次の数行
string userName = TextBox1.Text;
string userAccount = TextBox2.Text;
string userPassword = TextBox3.Text;
string email = TextBox4.Text;
string oldAccount ="";

これは、画面の各テキストボックスに入っている値を文字列型の各変数に入れてね~って命令。
ここで取得した値をデータベースに渡して更新するのだ。

次の2行
ScheduleBusinessComponent bc = new ScheduleBusinessComponent();
oldAccount = bc.getUserDataByUserId(userId)[0].user_account;

これは、このクラスと別の場所に書いている処理を使うためにScheduleBusinessComponentクラスをインスタンス化している。
getUserDataByUserId(userId)というメソッド(関数)はワシが勝手に作ったメソッドで、ユーザIDを渡すと該当するユーザの情報をテーブルで返してくれるもの。
そいつの中にあるuser_accountを取得してoldAccountに入れている。
なんでこんなことをしてるかは後述。

次からは条件分岐。
ここで重複チェックをしている。
if ((bc.isExistAccount(userAccount)) && (oldAccount.Equals(userAccount) == false))

これはもしもbc.isExistAccount(userAccount)が真実で、oldAccount.Equals(userAccount)がウソならば次の処理を実行しなさい、というもの。
isExistAccount(userAccount)というのもワシが勝手に作ったメソッドで、userAccountと同じものがデータベースにあったらfalse(ウソ)って返してくれる。
oldAccount.Equals(userAccount)というのは、oldAccountとuserAccountが等しいかどうかを比べている。
更新時には、必ず自分のアカウントはデータベースに登録されているはずなので、isExistAccountだけで判定すると、更新時にアカウントを変えずに名前を変えるといった処理ができなくなるため、わざわざこんな処理を入れているというわけ。

そして次、
Response.Redirect("~/Error/wAccountError.aspx");

これは、上記条件の時はエラーページに飛んでね、というもの。

次のelse以下は、if分の条件を満たさなかったときに実行される。
else
{
bc.updateUserTable(userId, userName, userAccount, userPassword, email);

Response.Redirect("RegistrationComplete.aspx");
}

この場合は、ユーザが入力した情報でデータベースを更新して、完了通知画面に遷移してねって言ってる。

分かった?(-ω-)
ワシも説明しててよくわからんくなった。

ということで、こんなしょぼい機能ひとつ作るだけでも、この小鳥のような脳みそをフル回転して作らないといけないのです。

(;´д⊂)だからもう少し待ってね、ちゃんと作るから・・・。

あなたの知らないシステム開発の世界(-ω-)

2006年09月06日 22時47分42秒 | Weblog
最近、作業時間が少ないとよく注意される(-ω-)
最近というか、ずっと言われているような気がする・・・。

少ない作業時間で仕事を終わらせているのだから、誉められてもよさそうなもんだが、何故に?(-ω-)

成果主義、能力主義っつっても結局見てるところはそこかよ?(゜д゜ )
お前、あれだろ!
日ハムの新庄のプレイ見て、「ファインプレー(゜д゜ )」とか言ってるやつだろ!
スタートダッシュが遅れてダイビングキャッチするのは、作業がさばけなくて残業してやっと仕事終わらせるのと同じだぞ(゜д゜ )

本当のファインプレーは、あらかじめボールが来る場所を予測して難なくキャッチすることだってCMでも言ってるだろ(゜д゜ )

はぁはぁはぁ・・・(-д-)

いや~つい熱くなってしまった、うっかりうっかりうっかりハチベエ(-ω-)

「ご隠居、ご隠居、この店はサービスがいいんですよ(-д- )」

ってお前、そこ江戸時代じゃねーのかよ(゜д゜ )
サービスって何だよ?(゜д゜ )

・・・また取り乱してしまった・・・(-ω-)

さて、ここからが今日の本題。
最近いたるところにはびこっているコンピュータシステム。
しかしワシらみたいな仕事をしていない人たちにとっては、このコンピュータシステムがどのようにして作られているか、知らない人も多いだろう。

そこで今回はごく簡単に、システム開発の流れを説明してみたいと思う。

コンピュータシステムの開発と言うのは、家を作るのに似ているとワシは思っている。

家に必要なものは何か?
誰が住むのか?
そのためには何が必要か?
リビング、キッチン、フロ、トイレなどをまず洗い出す。
これが業務設計、機能設計かな(-ω-)

そして設計図を書く。
どこに建てるのか?
どこに何を設置するのか?
材料は何を使うのか?
これが詳細設計かな(-ω-)

そして組み立てる。
これがプログラミングかな(-ω-)

そして完成した家をチェック。
これがシステムテストかな(-ω-)

そしてリフォームしたりする。
これが機能追加やシステム保守かな(-ω-)

まだよく分からん人向けに、ワシが最近作ったサークルのスケジュール管理システム、スケジュール番長をサンプルにして説明しよう。

スケジュール管理システムに参加する人は、スケジュールを管理する人とスケジュールを登録する人の2種類。
それぞれが何をしたいかというと、管理者はいつどこでどんなイベントがあるかを登録したいだろうし、それに誰が参加するのかを知りたいであろう。
参加者は、どんなイベントがあるかを閲覧して、自分がどうするかを登録したいであろう。
こんな感じで必要な機能を洗い出す。

次に、どんなデータを持ってればこれが実現できるかを考える。
イベントに関しては、
場所、日付、内容など。
ユーザの情報としては、
名前、ID、パスワードなど。
そして、イベントとユーザの関係、どのユーザがどのイベントに参加するかなどの情報も必要だろう。
これを元にデータベースの設計をする。

次にどんな画面にすると使いやすいかを考える。
イベントは一覧表にしたいし、出席欠席などの選択肢はリストから選択したほうが分かりやすい、イベントの日時なんかはカレンダーから選択したいとか。

他にも画面遷移やアクセス権、ログイン情報などいろいろな要素はあるが、まあだいたいこんな感じ。

これを元にプログラムを書く。
コンピュータにどんなことをして欲しいかを教えるのだ。

そして期待通りにちゃんと動くかをテストする。

運用が始まったら、足りない機能を追加したり、使いやすくするために画面を修正したりする。

非常に簡単に説明すると、だいたいのシステムというのはこんな感じで作られているのだ(-ω-)

そんな中でもワシが一番好きなのはプログラミング。
プログラミング言語、という言葉のとおり、プログラムというのは英語やフランス語と同じで言葉なのだ(-ω-)
コンピュータと会話するための言葉、というと根暗なイメージがあるが、だいたいそのイメージで間違ってない。

何が面白いのかって?(-ω-)
英会話習ってさ、外人とコミュニケーションできたらうれしいじゃん?
それと一緒でコンピュータと会話できたときはうれしいのよ。
通じた!通じたよ、母ちゃん(゜д゜ )
みたいな感じで(-ω-)

しかしコンピュータというのは外人と違って融通が利かない。
身振り手振りじゃ通じないというのが痛いところ。
B型にはちょっとつらいところ。

とりあえず、そんなこんなでコンピュータシステムというのは作られているのです(-ω-)

最近少しこの仕事にも飽きてきた。
そろそろ別の仕事がしてみたいものです、占い師とか(-ω-)

確率統計で暴くギャンブルのからくり

2006年09月04日 22時28分18秒 | Weblog
先週金曜日、横浜で行なわれたシステム開発の大規模なセミナーがあったので行ってきた。
ついでなんで、いつも遊びに行っている横浜の友達の家に泊めてもらって、また週末を横浜で過ごしてみた。
この友達の名前はタケ、こいつとは幼稚園の時からの付き合いで、かれこれもう24年近い付き合いになる。
幼稚園、小学校、中学校、大学と同じ学校だった。

泊めてもらうのはこいつが勤めている会社の独身寮。
フロが共同で大浴場なのが気分いい。
当然フルチンの知らない人に会うわけだが、とりあえず
「あ、お疲れ様です(-ω-)」
など適当に言ってみる。

さて、土曜日何するかという話になったが、別に野郎ふたりでどこかに出かけるつもりもないわけで。。。

「パチンコで信長の野望が出たらしいで(-ω-)」←タケ

「まじで?(-ω-)」←ワシ

また信長の野望か・・信長はどんだけ野望を持ってるんだ(-ω-)

思えばワシが信長の野望と出会ったのは小学校5年のとき。
ファミコンの「信長の野望 戦国群雄伝」が出たときか。
当時一緒にやってたのもこのタケ。
ワシら何年経っても進歩ないな・・・。

スロットならともかく、パチンコって退屈であまり好きではない。
まぁ信長の野望がどんなもんか見てみたいし、ふたりで打ってればそんなに退屈でもないかな、と思って行ってみることにした。

あんまり大負けするのも嫌なので、ふたりでノリ打ちすることにした。
ノリ打ちとは、ふたりで勝ち負けを折半するというもの。
つまりワシが5万負けて、タケが10万勝ったら、お互い2万5千円づつ勝ったことになる。

さて、土曜日にさっそく打ちに行ってみる。
うーむ、最近のパチンコはほんとすごいね。
液晶画面はでかいし、なんかボタンとかついてるし。

大当たり確率を見てみると1/330と書いてある。
これは、330回回せば必ず1度は当たるという意味ではない。
パチンコの抽選方式は、毎回抽選の完全確率方式。
簡単に言うと、330枚のくじの入った箱の中から、毎回1枚引いては戻し、引いては戻しを繰り返し、1枚の当たりを引き当てたら当たり。
またそのくじを箱に戻し、同じように抽選を繰り返すというもの。

つまり確率分母の330回を回したときに1回でも当たる確率というのは、330回連続してはずれを引くことの逆の事象になるので、

(1-(329/330)の330乗)*100 ≒ 64%

となるのである(-ω-)
意外と当たらないのだ。

とりあえず隣同士で座って打ってみる。
なにやら大名を選べるらしい、このボタンってそうやって使うんだ(-ω-)

もちろんワシは大友宗麟・・・っておらんやんけ(゜д゜ )

九州は島津しか選べない。
どうやら選択できるのは、島津、毛利、長宗我部、織田、武田、上杉、伊達、北条の8種類らしい。

しゃあないなぁ、武田信玄で行くか(-ω-)
と思って武田を選択。

しばらく打ってるといろんな演出が発生する。
武田信玄の家臣の山本勘助や山県昌景なんかが出てくる。
ほほう、選択した大名によって出てくる家臣が変わるわけか(-ω-)
なかなかよくできてるではないか、と感心して打ってると50回転目くらいで当たった。
それを皮切りに、なんかよく分からんけど台がぶっ壊れた?って感じで当たり、パチンコ玉を入れる箱(通称ドル箱)がワシの回りに積み重ねられていく。
その隣であまり当たらずにハマるタケ・・・。

ノリ打ちだから、あんまり当たってもそれほど嬉しくないワシ(-ω-)

そうこうしてると店員がやってきて何か話しかけてきた。
あまりに当たってるから怪しまれてるのかなぁ(-ω-)と思ってたら、箱の置き場所がなくなったので、10箱くらい先に交換させてください、とのこと。
ウハwwwOkwwwww

途中からタケもそこそこ当たって、終わってみればふたりで約40箱。
金額にして約20万円(-ω-)

とりあえず欲しいものもないので、i-podをもう1台くらい買うか(-ω-)

さて、長かったけどここからが本題。

このタイトル「確率統計で暴くギャンブルのからくり」というのは、数年前にワシが購入したブルーバックスの本である。

ギャンブルの必勝法とは何か?
それは「胴元(どうもと)」になることである(-ω-)

つまり、ギャンブルを運営する側になる、ということだ。
カジノやパチンコ店の経営者、競馬・競輪・競艇などの運営側がこれにあたる。

そりゃそうだろ(゜д゜ )

って言いたくなるが、実際そうなのだ。

例えば宝くじ。
1等3億円(゜д゜ )
などと言ってるが、宝くじの還元率は45%しかない。
つまり、宝くじの売上が100億円あったとして、当たりくじとして払い戻される金額は45億円しかないのである。

競馬の還元率は75%。
残りの25%は、馬主への賞金や人件費などの運営費に回されるのだ。

つまり、運だけにたよって100億円分馬券を買えば、約75億円が返ってくるということ。
胴元が儲かるのは当然であって、ギャンブルに参加する人が負けるのは必至なのだ(-ω-)

そんなギャンブルの中でも、参加者側が必ず勝てるギャンブルというのをワシは知っている。
教えないけどね(-ω-)

とにかく確率統計というのはとても大切なのだ(-ω-)

以前のブログにも書いたが、ワシが思うに学校の授業で習う科目の中で、人生で役に立つのは英語と数学(確率統計)のみ。

以前一緒に仕事していた北海道大学の先生が、
「ふ~みん、人生は微分積分だよ(-ω-)」
と言っていた意味は未だに分からないが、ワシの持論は
「人生は確率統計(-ω-)」である。

時々ワシは考えるのだ。
今のこの状態というのは、とんでもないくらいの偶然が重なり合って存在しているのだと。

例えばワシの存在というのは、父さんの父さんの母さんの父さんの父さんの父さんの父さんの母さんの父さんくらいが、戦国時代に鉄砲の流れ弾にたまたま当たって死んでたらなくなっていただろうし、もっとさかのぼって縄文時代くらいのオッサンがたまたま発見したナウマン象をしとめるとこができたから、その近くにいたワシの先祖が飢え死にせずにすんだから、ワシがここにいるのかもしれないし、もっとさかのぼると、地球が誕生したときにたまたま今の月に当たる衛星が地球の近くにいたから、月の引力の影響で潮の満ち引きが微妙に作用して地球に生命が誕生したのかもしれないし、考えるとキリがないけどもそんな偶然の上に今が成り立っているのだと思う(-ω-)

つまり何が言いたいかというと、過去に起こったどんな些細な出来事が少しでも変わってしまえば現在は存在しないわけで、ドラえもんに出てくるタイムパトロールの人たちにはしっかりとがんばってもらいたいということ、それだけ。

めんどくさくなってきたのでこの辺で終わる(-ω-)