どうも、calcsです。
MECE(Mutually Exclusive and Collectively Exhaustive)ってご存知ですか? 要は集合を漏れや重複のなく、部分集合の集合に分割するってことなんですが。
コンサルティング会社のマッキンゼーが使い始めたとされるこの言葉。プログラマー的には非常に気になるワードな気がしたりしなかったり。
以前if文について書いたことがありましたが、ifとelseは常にMECEです。これらが両立することはありませんし、もれることもないです。
ではelsifはどうでしょうか。これは必ずしもMECEではないです。重複する条件を記述することは文法上可能です(そしてバグになる)。実行はされない処理系が多いですが。
switch文も同様で、default文を入れれば、とりあえず漏れはなくすことができます。しかし各caseが重複していないかはプログラマの頭に委ねられているんです。
例えば動物の特徴を入力して、哺乳綱、鳥綱、両生綱 、魚綱、蠕虫綱を判定するプログラムを書いたとしましょう。これらの項にまたがって存在する生物はいません。
昆虫ってどうするの?昆虫綱が実際にはありますが、ここでは設計上抜けていたわけですね。
学校で習ったことですが、哺乳類は胎生です。なのでそのようにプログラムしますが・・が。
カモノハシをどうするか?ということに気がつくのは、カモノハシという存在が出てきてからなんですね。
かつて鳥類は「毒」を持つことはないと思われていました。が、モリモズという鳥がニューギニアに生息していることが分かり、この常識は破壊されました。じゃあ毒があるから「鳥以外」とはいえないわけです。
結局のところ、MECEに分類することは指標によっては不可能ではないですが、非常に困難な場合が多いわけで、これは自然の摂理なんです。なぜ自然の摂理かというと、分類が先にできるということは稀だからですね。
そしてソフトウェアも、現実の事象を処理するものである以上(たとえゲームのような仮想であっても、『プログラマの脳』を処理しているといえます)、常にMECEであることは困難なんです。
つまり何が言いたいかっていうと、ソフトウェアにバグがあるのは仕方ないんだよ!! ええー・・。
MECEであることの困難性










Yahoo!ウォレットでイラッときたこと。










calcsです。
更新頻度低すぎですね。灰。すみません。
でー、今回はですね草津、瀬田のグルメ情報とかを扱っている、『地域情報サイト アールズマップ』の方のお話です。
まぁサーバ代の足しにでもなればとYahoo!AdPartnerの広告を貼り付けることになったんですけど、口座番号がなぜかエラーではじかれるんですよね。正しく半角数字で入力してくださいとか言って。
してるっつーの!
で、結局なんだったかというと、口座番号をゼロサプライしろということでした。
ゼロサプライというのは、左空白をゼロで埋めて桁を揃えることです。日本では銀行の口座番号は7桁が最大桁長となっていますが、それ未満の桁数も許容されています。場合によっては3桁の口座番号とか。
でもYahoo!ウォレットの登録データの整合性チェックルーチンが、7桁かどうかをチェックしているらしく、左を0で埋める、つまりゼロサプライしないといけないという話。
書いて置けよ!
ごめん。やっぱり人間はCで書かれていたよ










以前人間の体はJavaで出来ているらしいというエントリを書きました。書きました、が。
すみません。やっぱり人間はCで書かれているようです。ソースは今日昼寝した時に見た夢。
前回の激痛と違い、ふと腹部に感じる圧迫感。これは・・、あれだ。
俺「便意か」
しかしトイレに行こうと思っても、なぜか体が動かない。うつぶせの状態からまったく起き上がれないミステリー。やばい。こいつ(=体)・・動かないぞ!
額ににじむ脂汗。腹は痛くないものの、圧迫感は刻一刻と増している。このままでは・・。
そこで彼女が登場。
彼女「ごめん。バグ作りこんじゃったからブレークポイント設定したの」
な・・バグ・・だと?まさかcancerクラスか?
俺「・・で、何が原因だった?」
我慢は限界だ。
彼女「腸の内容物を保存してるハッシュテーブルがコンフリクトしてた」
俺「・・ハッシュのサイズいくつにしたのさ」
彼女「100」
なんでそんな素因数が多いサイズなんだよ!せめて97か101だろ!
彼女「まーでも何処でバグったかわかったし! じゃ、いったんプロセス落とすねー」
・・・・プロセスって何ぞ?
ぎゃー。
というところで目が覚めた。もしかしたら病院にいくべきなのかもしれない。ちなみに起きたら便意は無かった。(名誉の為に言っておくが)メルトダウンしたのではなく、それすら脳の生み出した幻想であったのだ。そう、いないはずの彼女と共に。
半角と全角の間。










I’ll tell you about HyperTextMarkupLangage.
かっこよく?英語から書き始めました。こんばんはkimです。
最近、英語のスペルが出てきません。いや、マジで。ホント。
サーチとかよく使いますよね。あと、広告のアドバタイズとか。これが。
○search -> ×sarch とか
○advertise -> ×advertize などに脳内変換されてしまうわけです。
英語読んでねぇなぁ。そりゃ、落ちますね単語力。
まぁ、そんな話はおいておいて、今回はHyperTextMarkupLangage -> HTMLの話をしたいと思います。
前のエントリで書いてたんですが、HTMLはwebアプリの基本ってのを書きました。
そんなわけで、R’sマップのニューデザインを書いてたんですが。
list要素を使ってリンクを作ってたらあら不思議。変なところに妙な空白が出現しました。
見た目上かなり不自然だったため、除去しようと戦闘開始。
CSSの指定が間違って変なところに、marginやpaddingが存在しているのかと思い。
FireBug起動!(←こいつは超便利です。使った事無い人は是非!)
追いかけても、おかしなところはなし、仕方が無いので、
直接スタイルを指定したりして寄せたり上げたりしてみたのですが、無意味。。。なぜ??
これはもしや、list要素に特殊な仕様があるのかと思いGoogle先生のところへ。
そして、list要素の後ろに改行をすると、その下部にスペースができてしまう事が発覚☆ショック
でも、結論からいうとこれは関係ありませんでした。
じつは、
<li>ほげほげ</li> の </li> の後ろに全角スペースがいました。
うわぉ。やられた、こいつのせいで妙なところに一行何も無い行が誕生していただけでした。
即、消去してバイバイしました。
ここから、まめ知識(まめにもならないかも)
ページ上に意図的に半角スペースを表示させたいときに、HTMLソース内に半角スペースを一つ書くだけでは意味が無いです。
二つ半角スペースを書くと一つ半角スペースが表示されます。(3つ書くとどうなるのかは知りません。(・・;)
これで、スペースが表示されてうれしいわけですが。
いっぱい表示させたいときや、スペースがソース内に意味を持って存在しているのが嫌いな人(私の事です)見えない物を信じる事ができない人。
などは、別の方法をとるわけです。
それが、
“ ” (5文字もあるやんけっ!と言う方は無視してください。)
これを書くと書いた分だけ半角スペースが表示されます。
これだと、数もわかりますし、ここに半角スペースが一つ表示されるという事が一目で分かります。すばらしい!ばんざーい!ヽ(▽ ̄ )乂(  ̄▽)ノ ばんざーい!
さて、ここでしつこく半角、半角書きまくってましたが。なぜかってーと全角と区別するためです。
全角だと一つで当たり前なんですが半角スペース二つ分になるので数が二つ打たないとダメだとかそんなことを気にせずにどかどか打てるわけですが。
プログラムってのは基本的に全部半角です。なので、全角が部分的に混ざると結構めんどうです。
なので、やっぱり半角でまとめたいですね。プログラムによっては全角スペースが混じるとエラーの原因になったりするので、これは結構大事です。
しかし、半角と全角分けるのがかなり面倒。英語万歳の世界ではどうしようもないわけですが。
ふぅ。プログラマの憂鬱は消えません。
Webデザインのあいうえお。










朝に見た人、おはようございます。
昼に見た人、こんにちは。
夜に見た人、こんばんは。
深夜に見た人、早く寝ろ。
さて、エントリ書いてるのは深夜のkimです。
明日も朝からゼミなので、もちろん寝ずに言って参ります。
なぜなら、朝が超絶弱いから。わかりやすいですね。
さて、話変わって、webデザインのあいうえおです。
昨日のcalcsのエントリにもあるように春なので新メンバーが入ってまりました。
非常にうれしい限りです。
Are you happy? Yes, I’m ♪♪♪♪Happy (ノ^^)乂(^^ )ノHappy♪♪♪♪ってな感じです。
さてさて、そんなわけで、私ども技術陣のお手伝いをしたいという方も現れまして。
弊団体では、ご存知のかたはご存知の通り、webコンテンツを作成しております。
中身は、PHPだったりRubyだったりするのですが、
基本的にこのWebに触れる者として知っているべき言語とうか技術?
それは、その名は。。。。
次回へ続く。。。to be continued….
分けないですね。引っ張る内容でも無いです。
それは、HTML + CSSですね。
Webと名のつく職業についてる人はきっとみんな、書けます。読めます。聞き取れます(関係ない)ってな感じです。
もう、web界の共通言語ですね。
なので、弊団体でもHTML+CSSというwebっていうものを知らない人は
最初から少しずつ経験を積んでもらおうという寸法です。
良いですね。プログラムってのは基本的に積んでいくものですからね。
ぴゅーっとは飛んで行けません。
数学と同じなのです。でも、数学が嫌いでもプログラムは書けます(マジでっ!)僕嫌いですしね。(マジでっ!?)
もちろん、HTMLなんて知ってるぜって人はRubyやPHPの方から活躍してもらいます。やったね。
そんなこんなで、今日も夜は更けて行きます。
果たしてキャリアエイドはテクニカルなのか?










どーも、calcsです。
年度が替わってここ最近、うちの団体に入る新団員の人と会う機会が多いです。こういう活動をしていて、自分でもやってみたいと思ってもらえるのはうれしいですね。
でまー、広報などの方はとりあえず置いておくとして、開発側のお話。
「果たしてキャリアエイドはテクニカルなのか?」
よく分からんのですが、うちの団体の技術力って、別に高くは無いと思っています。というか、高い技術を使っていない。団体に入っても、そこらのウェブ系のアプリケーションベンダーや、デザイン業者、ホスティング業者の1~3年目ぐらいが担当するぐらいの仕事しかない気もします。大半は。
まぁ普段作業しながら、レジスタがどうの、命令フェッチのコストがどうの、ゲーム木探索アルゴリズムや数値計算の高速化、動的言語の静的コンパイル、デバッグ手法、そしてコーラはコカかペプシか、といったようなことをグダグダ話してはいますが、実際問題キャリアエイドで扱っている領域には掠りもしていません。
となると別に技術はあんまりいらないよね。オープンソースのCMSを拾ってきてレンタルサーバにインストールして、自分でテンプレートやプラグインを書いたりして俺サイトに染めれる人なら即活躍。そうでない人もバリバリ勉強は出来る。・・気がする。
やや、技術陣は自主的に勉強会開いたりしてますんで、学ぶ機会はオオイヨ!役に立たないことを全力で勉強するのがポリシーダケドネ!
そんなわけで、「無駄にこそ真理がある。無為な時間こそ人生の至福」とか、18世紀の欧州小説に出て来そうなフレーズが思い浮かんだ人はレッツコメント。
僕がプログラミングを好きになった理由










全世界60億人超の皆さん、お久しぶりです。calcsです。
今日は自伝?でも書いてみようかとおもいます。
理由はネタが特にないから。
小さいころは、というか小さいころから工作が大好きでした。
ゴミ捨て場から電化製品を拾ってきては分解。スーパーからダンボールをもらってきては秘密基地の建材にし、使い捨てカメラを分解しては、コンデンサに蓄電されていた電流で感電する(痛い)。
そういう人間でした。
で、まぁそれぐらいならいいんですけど、工作の材料を買うとなると金がかかる。その点ソフトウェアならいくら作っても金がかからない。(多少ソフトがクラッシュしたぐらいではハードがイカレないことはすでに知っていました)
てなわけで、ソフトウェアの道へとのめりこんでいくわけですが・・。
その時はプログラミングをするのに、これほどの書籍費がかかるとは夢にも思わなかったのです・・!(多分続かない)
春の陽気に、おいらは叫ぶ!!花粉よくたばれ。










鼻が詰まっております。
何を隠そう、ヤツが原因です。花粉です。
花粉症です。お久しぶりです。kimです。
うっかりすると書くの忘れますね。
週一の更新を目指そう。今度こそ。
毎週月曜日だな。みんなもがんばろう。
さて、そんなわけで花粉症です。
もう、気づいたときには花粉症になっていていつからなっているかはもう忘却の彼方ですが。
鼻をかんで、鼻が通るなら良いんですが、私は鼻が詰まるたちなので、ダメです。集中できません。
だれか、責任とりやがれ、まったく。
んで、そんなときに役に立つのが鼻シュッシュです。
なんだそれはと、おっしゃるお客さん。鼻に突っ込んで霧吹きみたいなのをシュッシュってやるやつなのです。
これが意外といい感じで、鼻が通ります。
今日は、家に忘れてきてブルーな気分です。なので、鼻が詰まってます。
あー、花粉よ。くたばれ。
新しいサイトを立ち上げた










はーるよー。遠い春よー♪










お久しぶりです。kimです。
ヤバい。自分の前の更新とかもう見れません。二回目です。(一回目は俺じゃない)
人に任せるとろくな事にならないですね。自分が。
今日もcalcs君に感謝。
さて、4月です。
弟が今年からピカピカの大学一年生(ピカピカとは言わない)で、
いろいろ新入生のパンフレットや、授業なにとろうかな。みたいな感じでいろいろやってます。
いいですね。春ですね。
もう、4回生の私とは大学に対するモチベーションが違いますね。
分けて欲しい。。。(/□≦、)
そんなこんなで、4月です。(2回目、1回目も私)
いろいろ、始めるには良い季節です。
学生団体に参加するとか、参加して、プログラムをやるとか。Webデザインやるとか。営業するとか。広報するとか。
もう、考えると楽しい楽しい、学生生活エンジョイですね。
ということで、キャリアエイド開発陣は、やる気あふれる将来エンジニアを目指すあなたたちを心よりお待ちしております。
最近のコメント