輝々凛々

ガンバるってことは、素晴らしい事だ。

ピジョンホールソートが最速?

今日の今日まで、クイックソートが大体の場面において最速かと思ってたんですけど、 Wikipediaをボーっと眺めていたら「Pigeonhole sort」のページに衝撃の事実が・・。

the best possible performance for a sorting algorithm

で、早速プログラムを組んで、試しました。

実験は、N個のデータを用意し、各ソートアルゴリズムでソートし、ソートにかかった時間を計算します。さらに各ソートは、100セット行います。なおクイックソートがスタックオーバーフローしやすいため、5000個のデータでしかテストしていません。

結果は以下の通り。表中の数字はソートにかかった時間(ミリ秒)です。ソートに用いたデータは乱数、正順(並べ替える必要なし)、逆順(完全に逆順)の3通りを用いました。テストに使用したアルゴリズムは3つで、クイックソート、ピジョンホールソート、参考にコームソートです。

アルゴリズム名乱数正順逆順
コームソート451315352
クイックソート2602208522056
ピジョンホールソート122324

・・・・、圧倒。

いや、でもアレだ、今回C#で組んでるので、再起呼び出しを行うクイックソートには不利だったのかもしれません・・・・(C#って、関数呼び出し不得意だっけ?)。ピジョンホールソートのアルゴリズムは理解していないですが、メモリを使って高速化できてるような感じです・・・・・・・・・(見たまんま)。

比較に載せたコームソートもなかなか優秀で、場合によってはクイックソートよりも速いです。が、やはりアルゴリズムが難しい。いや、難しいというよりテキトーな感じがしてしょうがない。クイックソートは、まだ直感的にわかるところなんですが、コームソートとピジョンホールソートは意味わからんです。

いやはや、まだまだアルゴリズムは進歩するんですかね。

なんか間違ってたりして。

新人ひとり脱落、もとい方向転換。

ひとり新人がやめた。4月に入って、10月に退社だから、7ヶ月で退社だ。
彼は、今後「農業」を目指すらしい。

・・・、プログラムは関係ねぇ。

現状有姿のまま瑕疵を問わない条件

マイクロソフトの使用許諾書を眺めていて、以下のような文言があった。

「サポート サービス。本ソフトウェアは現状有姿のまま瑕疵を問わない条件で提供しているため、マイクロソフトはサポート サービスを提供しない場合があります。」

・・・・、ごめん意味がわかんない。

現状有姿
現状有姿とは、現在の状態という意味らしい。不動産でよく使われるっぽい。売り家を「現状有姿」という条件で引き渡すと売主が言って、買い手が合意すれば、その時点で例え水道が壊れていても、買い手は文句言えないとか(売主が「水道も使えますよ!」とか言ってれば別)。
瑕疵
「瑕疵(かし)」の意味は、「欠陥」の意味に近いらしい。「欠陥」は安全上の不具合のみを指すのに対し、「瑕疵」は不具合全体を指すみたい。ま、「欠陥」と読み替えても支障はないと思う。

現状有姿のまま瑕疵を問わない条件

以上を踏まえて「現状有姿のまま瑕疵を問わない条件」の意味をとると、「現在の状態のままで欠陥を問わない条件」・・・、意味わからない。「現状の欠陥は問わない条件」・・・・、か?

つまり、そのソフトウェア(実は、Visual C# 2005 Express Edition)のサポートサービスは、現状の欠陥を問わない条件で提供しているから、場合によってはサポートサービスが受けれないよ・・・・・、ん? それってサポートか?

現状の欠陥を問わない・・・、変? 間違ってる?

んー、わからん。寝る。

Road to Programmer

プログラマだと言うには、まだ知らないことが多すぎる。 自分の知らないことを知っている人が多すぎる。 まだまだ先は長いけど、千里の道も一歩から歩み始めて近づくのね。

そんなあなたにビーンスターク

コメントにトラックバックしたいな・・と思いつつ・・

百式さんの記事「ブラウザから誰でも簡単にSubversionが使える『Beanstalk』 」で紹介されている「beanstalk」(たぶん、ビーン・スターク)を早速、使って、自宅と会社間でソースの同期を行ってみました。

あ、「誰でも簡単」はちょっと嘘で、Subversionのインストールは必要です。ブラウザだけでは使えませんです。ブラウザでできるのは、リボジトリの作成と閲覧、リポジトリのダウンロード(圧縮済みファイルで)、コミット内容とかの確認だけです(アカウント管理ってのもあるけど)。ソースを編集することはできないですし、ファイルを消すこともできないようです。

導入手順

まずは、beanstalkのウェブサイト(http://www.beanstalkapp.com/)に行き、右上の「Sign Up For a Free Account」をクリックします。で、OpenIDのアカウントが必要なので、持ってない人は「Get an OpenID」から、OpenIDのアカウントを取得しましょう。OpenIDのアカウントやら何やらを入力して、登録は完了です。

あと、Subversionそのものも必要なのでインストールしてない人は、入れましょう。

Subversion本体
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
TortoiseSVN
http://tortoisesvn.net/downloads

あと、TortoiseSVNの日本語パッケージもインストールしておくと楽チン。TortoiseSVNと同じページにあります。

ちなみに私がインストールしたのは、svn-1.4.5-setup.exeとTortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi、LanguagePack-1.4.5.10425-win32-ja.exeです。

リポジトリの作成

リポジトリはブラウザ上で作成します。リポジトリは、ようわソースファイルたちの管理単位で、ソースをサラリーマンに例えると、課みたいなものです。課をたくさん作って、その中に人を配置して、管理するって感じです。リポジトリを作って、その中にソースを配置して、そのソースのバージョンを管理するって感じになります。

ただし、フリーライセンスなので、1リポジトリしか作れませんが・・。

SVN チェックアウト

ようわ、ローカル環境をリポジトリに同期させます。何か適当なフォルダを作って、そこでSVN チェックアウトします。TortoiseSVNを入れている場合、右クリックからチェックアウトできます。チェックアウトするときは、先ほどブラウザ上で作成したリポジトリのアドレスを入力します。アドレスは「http://svn.hogehoge.beanstalkapp.com/piyopiyo/」のようになっていると思います。またアクセス時にはパスワードを求められますので、beanstalkへのログインアカウントでアクセスします。

ファイルの追加と削除

ここからは、もはや普通のSubversionと同じ。先ほど作ったフォルダの中にバージョン管理したいファイルを入れて、ファイルをSVN ADDします。ToirtoiseSVNだと単に「追加」です。で、追加しただけではリポジトリには反映されないので、SVN COMMITします。ようわ「送信」です。削除も同様に、SVN DELETEして、SVN COMMITします。

そんなあなたにビーンスターク

ビーンスタークの効能として、まずは普段からバージョン管理としてビーンスタークを使うことで、Visual Studioが馬鹿で間違って消してしまったソースとかを取り戻せます。普通に自分が間違えて消したソースも取り戻せます。そう、タイムマシンのように過去へ戻れます。

そして、自宅で非常に有意義に開発したソースコードを会社から参照できるようになります。こうして会社で辛らつな状況で書かなければいけなかった仕様のないコードによる仕様のないバグを未然に防ぐことができます。

つまりビーンスタークを活用することで、会社の仕事を家に持ち帰ってしなくちゃいけないなんていう状況を打破できる・・かもしれません。

See also

百式: ブラウザから誰でも簡単にSubversionが使える『Beanstalk』
http://www.100shiki.com/archives/2007/10/subversionbeanstalk.html
Landscape: Subversion を Windows で GUI 中心に使う
http://sonic64.com/2005-03-01.html

やさしくしたくて、うずうずする。

きっと誰でも、やさしくしたくて、うずうずすることがあると思う。
だけど、なかなか手が出ない。あと一歩が踏み出せない。

人にやさしくするのは怖いし、親しくなるにも勇気がいる。
だからやさしくしたくて、親しくなりたくて、うずうずする。

今日ひとつ、やさしくする。
明日ひとつ、親しくなる。
そうしたい。
そうありたい。

圧縮率はアルファベット順?

昨日、あるソースコード一式を圧縮してバックアップ取るときに
4つの圧縮コーデックで圧縮してみました。
試したコーデックは4つ。
  • 7z (7-zip)
  • CAB
  • LZH
  • ZIP

で、たまたまかどうかは知らないですが、7z、CAB、LZH、ZIPの順に圧縮率が良かったです。
ようは数値アルファベット順に圧縮後のファイルサイズが小さくなったってことです。
まぁ、7zとZIP、CABとZIPの関係は合ってると思うけど、
7zとCABは、ファイルの内容によっても違うでしょうね。


(画像はどうだろ。JPG、GIF、PNG、PPM・・・・、比べられないか。)

心底信じて、全部頼っても、絶対騙されない。

宗教でもスピリチュアルでも何でもそうだ。
騙すほうの考えは、よくわかる。
騙されるほうの考えが、まったくわからん。
他人に頼って騙されました? ちゃんちゃら可笑しいわ。
頼ることは良い、だけど騙されるな。

SCEA幹部が騙る、PS3→PS2互換廃止について。

GAMESPOT「PS3のPS2互換機能廃止の本当の理由--SCEA幹部が語る」によりますと、
PS3からPS2の互換機能を廃止した本当の理由は、
「PS2機能が求められてないんじゃない?」と、
「PS3、早く買え!」な、そうです。

いやはや。

「PS2との互換機能をPS3から取りのぞいても、製造コストは大きくは変わらない」


なら、取るな。互換機能ありのやつと値段を変えるな。

「最近のPS3の購入者がこの機能を重視しなくなってきたことと、PS3専用タイトルのラインアップがより充実してきたこと」


嘘つくな、俺は少なくともPS2互換がないPS3なんて、目くそ鼻くそじゃー。
そーれ、飛んでけーっ!

「顧客がより多くの時間とお金をPS3に費やしてくれることを期待」


おうっ。そういう理由なら納得できる!

というわけで、SCEさん。
ゲームディスクのチェックの前にブルーレイの仕様チェックなんかやってる場合ですか?
PS2への互換性は、以前あなた方が言われていた「360にはない」機能だったのに、
本当に削って大丈夫??



以上。

TimeMachineとバージョン管理

Leopardに搭載されているTimeMachineって、 ようわバージョン管理?

僕らの世代がやること。

今、世に出てる技術とか何やらって、
30代~40代くらいの人が一所懸命やった結果なんだと思う。
じゃあ、僕らの世代は何を為せばいいんだろう。
何を夢見て、何を為せばいいんだろう。

舌に口内炎チーム

ちょうど今日で1週間たつのですが、先週の水曜日、歯医者に行ったあとから、どうも舌が痛かった。とりあえず水曜、木曜と放置してたら、金曜の朝には舌の左側が小指の先っぽくらい腫れて、まともに喋れなくなって、まともに食事もできなくなって、とうとう休日診療は高いから、月曜日に病院に行ったら、口内炎だって言われて、「見た目はひどいけど、大丈夫よ。お薬出しとくね。ま、場所が場所だけに1週間から10日くらいかかるね。」(女医)って言われて、今日に至るわけですけど、それがこれが、舌に塗る薬もウガイの薬も、ロキソニンもフロモックスもムコスタも超不味いよ!

まぁ、そんなわけで、今晩のご飯も、元気に卵粥を痛みながら食ってます。
(強制ダイエット)

ビューティフル塊魂、クリア・・

おかしいな。
木曜日に出たビューティフル塊魂なんですけど、その日のうちにクリアしちゃいました。
んー。ストーリーだけなら、2時間くらいで終了って感じです。
ステージ数が少なすぎます(有料コンテンツとして配信されてますけどね!)
ヤリコミ要素は多いけれど、なんかこのボリュームには残念な感じです。
ボリューム以外では、ロード時間が長いことが残念。
あとは、だいたい満足。
いつもの点数は6点くらい。
内容が面白いだけに、ほんと残念。

今回も100万本のバラを集めないといけないのかしら・・・?

その__cplusplusって無駄じゃね?

「hoge.cpp」内にある「#ifdef __cplusplus」って無駄じゃね?
端的にいえば、それだけのことです。

「.cpp」ソースなのに、「C++コンパイラがコンパイル中なら」って意味ないよ。
まー、コンパイラを明示的にCコンパイラ準拠にするとかってのもできるかも、
だけど、その機能も無駄じゃない?

でも、「.cpp」だからC++ソースってのも何だかな~。

Wii Fitがうそみたいな品質。

Wii Fitがうそのような品質。
なんか、こうもうちょっとゲームにしてよ。

Wii Fit (C) 2007 Nintendo
(C) 2007 Nintendo

クラスの定義にコメントをつける場合。

ひとつ思った。
クラスの定義にコメントをつける場合、

・「Public Data Member」とか「Private Property」とかつけるんじゃなくて、

・「ドラッグ&ドロップのための処理」とか「ファイル保存のための処理」とか、
 後でメンテナンスするときの視点に立ってコメント付けるのが良い

んじゃないかと思った。

ファイルとプログラミングの分離

分割コンパイルとか、インクルードとか、ファイルスコープとか、externとか。
プログラミングには必要ないんじゃないかと思う。

プログラミングでファイルを扱うのはいい。
だけどファイルに制限されたプログラミングはもうウンザリ。
早く真に統合された開発環境が出ないものかと思う。

土日出勤

仕事が忙しくて、土日も出勤する。
それって、プラスになるのだろうか。

土日に出勤するメリットとしては、次のものが挙げられると思う。
(1) 土日に出ないと、納期に間に合わないから。
(2) 人がいないから集中できる。
(3) 予定していた作業内容よりも進ませるために。

さて、これらの中でプラスになりそうなものはなんだろう。
(1) は明らかにマイナス思考で、そもそも納期の設定がおかしいか、納期に対する姿勢が悪いとしか思えない。

(2) は、一見プラスに作用しそうだし、実際、プラスにもなることもあるだろう。だけど、何か違う。「集中できるから土日に来る」とか、「他人がいて集中できないから平日は作業が捗らない」とか、嘘だ。
集中できなくても作業は進めるべきだし、他人がいても集中できるべきだ。どんな状況でも納期を守るべきだ。

(3) は1000歩譲って、プラスの理由になると思う。だけどできれば、それも含めて予定を立てておきたい。




ま、でも、自分ではやってるつもりでも「非常事態」は起こるかもしれないし、予定は所詮、予定かもしれない。だけども、どんなときでも土日出勤したら反省する方がいいと思う。絶対、土日出勤しないし、残業もしない。できる限り、働かない。
働かないために、仕事をする。

Perfect Disk 8を購入してみた。

日本ではネットジャパンから販売されている「PerfectDisk8」を購入してみた。
ただしビックカメラのポイントで全額支払いにつき、無料。

購入のポイントは、Vista対応だったことと、昔体験版を使っていて、良い感じだったこと。 「良い感じ」は主に、次の通り。

  • XPやVista標準のデフラグツールよりもグラフィカルにHDDの状況が見れる。
  • デフラグの方法が選べること。(ファイルの更新頻度によるデフラグ、ファイルのデフラグ、空き領域のデフラグ、Windowsブート領域のオフラインデフラグ)
  • スケジューリングできること。(たとえばスクリーンセーバーが動いているときに3日に1度くらいデフラグ・・とか)
  • 外付けHDDもデフラグできること

実際、使用してみて実感できる程度にファイルアクセスが早くなってウハウハです。特に外付けHDDは1度もデフラグしてなかったので、都合4年ほどフラグメンテーションし続けてたわけです。

そんなわけで、PerfectDisk8は標準価格6195円ですが、あまったポイントなんかで買うには丁度いい、お手ごろな製品です。良品。

誰も強くない。

最近、心療内科ではないですが、会社で健康診断と心診断をやるようになりました。
いちお、プライバシの保護ってやつでネットで軽くアンケートに答えるだけのやつなんですが、
なんかもう、そのQ&Aがダメダメで、その質問者の意図がどうとでも取れるような質問とか
質問者の意図がなんとも取れない質問が多いのです。
そうなると回答するとき、社交的な回答か、自身の回答かを決められなくなってしまいます。
どっちでも取れてしまうので、どっちが社交的なのかわからなくなってしまうのです。

で、そんな話とは関係なく、このごろ思うのですが
やっぱ支えってのは大切だなって思います。
難しいですけど、何か人でも花でも空でも、遠くの救急車の音とか
鈴虫くんだって、紅葉の舞う音だって、ペットボトルのキャップをはずす音とかも
何か、全部に支えられているような感じです。

結局のところ、自分は弱いですから、
強い自分になるためには、周りを巻き込むしかないんですよね(きっと)。
だから回りを何でも支えにして、それさえも自分であると主張するんですよね。
(「友達自慢」的なものですね)

そんなわけで、きっと誰も強くはないんです。
きっと誰もが弱いのが本質で、経験とか周囲とかから
支えってのをカッパらってきて、
自身を強くしていくんですね。


で、強くなってどうするのかってのも問題ですが、
・・・
どうするんでしょう。


でも、どことなく純粋にあこがれますね。
強い心(支え)に、あこがれます。

漸近

生きながら老いて、死に近づくことが心底恐ろしい。
だけど、その死への漸近こそが生だというのです。
交差するではない、漸近こそが生だというのです。

虐げられる。

いつも最悪なのが、この足。
理由は明快、「中途半端サイズ」。


というわけで、28.0センチの靴サイズはいつも入荷数は少ない。
大きいサイズの専門店では「小さいサイズ」の分類になるからやっぱり入荷数は少ないし。
いつもディスプレイされているのは、26.5とか27.0。
ほんと、ふざけんなって感じ。

いつも買いたいと思う靴は、28.0が在庫切れ。
ふざけんな。
生意気だよ、この足め。
そんなに自己主張して何がしたいんだ!

何にも縛られたくないって?
ふざけんな!

自由がすきなんだ?
ふざけんな!!

金の節約だ?
ふざけんな!!!


(笑)

ちほみ

久しぶりの音楽ネタは・・、ゆず・・ではなく(もちろん買ったけど)、石原千宝美さん。
きっかけは、たまたま寄った川崎ラ・チッタ・デッラでやってた無料野外ライブ。

野外ライブを聴いて、良い感じだったので、その場でサインしてもらってCD買いました。
それもとりあえずその場にあった3枚全部。
音感(?)は、私の好きな音楽といえばわかるだろうか(←わからん)。

柴田淳とか、その辺。
ヴォーカル曲って言えばいいのか、その辺。
好きな感じです。



最近、Equip.に、ゆずに、千宝美さんにと、CD買いすぎなので自粛せねば。。

一日一歩、三日で三歩

三歩進んで、ダッシュする

羅川真里茂 「しゃにむにGO」より

楽しむ

評価されることを楽しむ、評価されるように楽しむ。 コレ、重要。

10.01

一昨日、10月1日は「マクタッキー」ではなく、「mixiリニューアル」ではなく、「Erika様」ではなく、「3mmテレビ」ではなく、「Wiiリモコンジャケット」ではなく、「長井秀和、身代金の返還求め、2信金提訴」ではなく、「日本郵政株式会社発足」の日として歴史に刻まれるのでしょうね。

ま、いくつかは10月2日のニュースでもあるけど;;。

いいニュース

最近、悪いニュースとかばっかりじゃない? そういうのが目立ちすぎるじゃない。センセーショナルなのが、スゴイ目立つじゃないですか。あれ、ヤだよね。斧とか、ビール瓶とか。悪いニュースなんて、正直見たくないよ。だからさ、良いニュースだけ集めたニュースサイトってないものかね。良いニュースだけ集めたニュース番組ってないものかね。政治も、自然災害も、良いニュースだけを集めて欲しい。

ってことを、前に書いたかどうか忘れた。

こんな→「happynews.com」、「ハッピーニュース」←あった。

日がな一日プログラミング

今日は、一日プログラミングをしていました。で、午前四時なのです。やばいのです。ま、Halo3もやったけど、ほぼプログラミングをしてましたです。ご飯も食べたし、風呂も入ったけど、やっぱりプログラミングなのです。

そんなこんなで、おやすみなさい。風邪など引かぬよう、お気をつけください。