がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

わきまえる、ではだめなんですかねぇ?

んと… http://d.hatena.ne.jp/IwamotoTakashi/20070608/p2

Railsでは「ちゃんとしたWebアプリケーション」が簡単にできるんだろうか。簡単にできないんだったら、Railsは非エンジニアが簡単に手を出すべきものではないってことになる。

なのですが。


あちこちで似たような議論は多々拝見するのですが。
なんていうか…「領域をわきまえる」で棲み分けがきくと思うんですがどんなもんなんでしょうか?
別に素人がWebアプリ作ってもよいと思うのですが。それを「お仕事で」出すのは論外だし、一般で出すにしても「危険である」ことは多少なり認識しなきゃいけない。
で、認識してリスクを飲み込んだ上でやるんなら別にいいんじゃないかなぁと。


逆に、ビジネスとして、業務として、お仕事としてコーディングするなら。
言語に寄らず、素人が手ぇ出すな、って思うです。


江戸しぐさの話ではないのですが。自分の力量とか、そこから踏み込んでいい領域を「わきまえる」のは、とても大切なのではないのかなぁと。

「初心者向け」って個人的には嫌いだなぁと思う件について

んと…とりあえずきっかけはここ。 http://www.rubyist.net/~matz/20070604.html#p07
内容としてはなんていうかぶっちゃけ「別に特にチェックするほどでもないごくまっとうな内容」程度なのですが。
秀逸なのはコメント。


んと…個人的には、あえて、あえてこういいたい。
「初心者お断り」
ああ一応念のため。「趣味で使う」ことや「個人にcloseしている」状況は省きます。言及はあくまで「ご職業としてPHPをコーディングなさっている方々」に対してです。


昔接客業やってまして、まぁ指導員などもやっていたのですが。
アルバイトやら新入社員やらに、必ず言ってた話があるです。
「あなた方は"新人"ではありません。あなた方は"店員"なのです。」
別に、現実のスキルが初心者であり新人であるのは間違いのない事実ですし、それを前提に、ぶっちゃけ「安いコストで」働いてもらってるわけではあるのですが。
新人/初心者という単語によっかからない人は、努力して学んで、とりあえず「並」基準程度まで自分を持ち上げようと、それこそ必死になります。
新人/初心者という単語によっかかる人は、とにかくまず専守防衛とばかりにいいわけと理論武装だけを保持して、何はともあれ努力や批判から身を守ろうと、そっちにばかり必死になります。


どの領域においても(具体的には、自分がよく知ってるのはエンジニアとTRPGと占いとイベントオーガナイズ)。「初心者」という免罪符を使おうとする連中にろくなのいません。
故に。「初心者だから大目に見てくれ」なんて趣旨の発言はとりあえず滅びてください。


なんていうのか…この辺の論調と、SIerのある発言の類とに共通性を感じるのは気のせいでしょうか?
「学ばないため、努力しないためならどんな屁理屈も辞さない」
まぁ…不思議と(笑)そういう方々とはあまり縁がないのが*1幸いではあるのですが。

*1:縁って自力で結んだり切ったりするものだよねぇw

(ネタは)まだまだ続くよどこまでも

んと。きっちり伝聞ではあるのですが。
いいから黙って以下のURIをごらんになってくださいませな。


http://www.st.ryukoku.ac.jp/~kjm/security/memo/2007/06.html#20070603__round
http://d.hatena.ne.jp/hnw/20070515
http://www.rubyist.net/~matz/20070528.html#p05
http://oku.edu.mie-u.ac.jp/~okumura/blog/node/1503


んで、燦然と輝くURIはここ!!
http://bugs.php.net/bug.php?id=24142


………げふんごふんがふん。
時間があるからといって、蛇の絵に足なんかかいちゃったら、それはもうただの「化け物」なんだよ?
こういう時にしみじみと。
「最低限にして必要十分」
という考え方を大切だなぁと思うです。


っつかね。その前に。
まともな神経してて二進数の知識あったら「小数点以下は可能な限り避ける」っしょ。通常業務の場合特に。

言語が「出来る」ってどういうことだろ?

あちこちの人身売買広告見てしみじみ思うですが。
Javaの出来る人」「PHPの出来る人」「C#の出来る人」。
別所では「Java3年以上の経験の人」等々。


…出来るってなんだべさ?
Javaソースコードを3年間コピペしたら「Java 3年」なんだろうか?


いつもながら思うんだけど、このあたりの「あんまりに酷すぎる曖昧さ」には…最近あんまり何も感じないなぁ他人事だから(笑


…おいといて、と。


一応。スキルの判定を、もうちょいと、本人達のレベルアップ指針って意味もかねて、どうにかしたいモノではありますです。はい。
っちゅわけで、現在「グリッドシート」なる、スキルシートの代わりになるモノを作成中。
近日にでもα版くらいは出せるといいなぁ…って書いておくと自分への縛りになるから出さざるを得なくなるんじゃないだろうかというかなり他力本願なテストw

2a問題再びw

はぁい紳士淑女&そうじゃない諸君げんきか〜い?
今日は素敵ですばらしいPHPの仕様を、もっと深く掘り下げてお届けする「シリーズ 2a問題を考える」のお時間だよw

$a = 0;
switch ( $a ){
	case NULL:
	case false:
		echo 'orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
}

このソースがもちろん「orz」になる理由はわかるよね?
間違っても「(・ω・)」ぢゃないよ?


でもこれを

$a = 0;
switch ( $a ){
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

ってやると、もちろん「(・ω・)」になるんだ。


そうそうちなみに。

$a = 1;
switch ( $a ){
	case true:
		echo 'orz orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

は当然「orz orz」になるのはわかるよね?
もちろん2a問題の一環なのだから。

$a = "2a";
switch ( $a ){
	case 2:
		echo 'orz orz orz';
		break;
	case 0:
		echo '(・ω・)';
		break;
	case NULL:
	case false:
		echo 'orz';
		break;
}

でどこ通るかなんてぇのは自明の理だよね?
もちろん「case 2」だw


つまり、あれだ。
0はfalseでNULLで、それ以外のすべての値はtrueで。
"2a"は2になって、以下略。


すばらしい言語じゃないか。
何がどんな方向からどんな風にすばらしいのかは…言わせるな。政治的にまずいんだw


…知らずに使うと怖い言語だとは思うけど…まぁ…なんていうか…頭いてぇ…


追記
2a問題は「 素晴らしき自動的な世界〜或いは「型のない」世界〜 ( http://d.hatena.ne.jp/gallu/20061108/p1 ) 」をご覧くださいませませ。

ご内密で自動に…するなっ!!

ある暗い嵐の夜だった*1
そのサンプルソースには、明らかな欠落がある…ように思われた。

<?php

$obj->name = "data1";
$obj->value = "data_value";

以下続く

わかりきった結果を予想しつつ、それでも一応コンソールで確認を取る。
エラー表示をコピペして相手に送りつけるのは、それは神聖ともいえる義務であるからだ。


orz
orz orz
orz orz orz
orz orz orz orz
orz orz orz orz orz
orz orz orz orz orz orz
orz orz orz orz orz orz orz


通ったよをい。
以下、var_dumpの結果。

object(stdClass)#1 (2) {
  ["name"]=>
  string(5) "data1"
  ["value"]=>
  string(10) "data_value"
}

…ありえねぇ。


まぁいいよわかったよ宣言なくて使った俺が悪かったよ。
気を取り直して、以下。

<?php

class hoge {

private $bar_;
private $foo_;
private $foobar_;

}

$obj = new hoge;
$obj->data = "data";

var_dump($obj);

結果。

object(hoge)#1 (4) {
  ["bar_:private"]=>
  NULL
  ["foo_:private"]=>
  NULL
  ["foobar_:private"]=>
  NULL
  ["data"]=>
  string(4) "data"
}

…マヂデスカ?
で。ちょいと遊んでみる。厳密には「酔いどれ源譜」のおにぃちゃんが遊んだコード。

<?php

class hoge {

public function __set($name, $value) {
  unset($this->$name);
}

private $bar_;
private $foo_;
private $foobar_;

}

$obj = new hoge;
$obj->foo_ = "data";

var_dump($obj);

結果。

object(hoge)#1 (2) {
  ["bar_:private"]=>
  NULL
  ["foobar_:private"]=>
  NULL
}

おわかりでしょうか?
private変数が「unsetされて消えてます」。


すげぇよあんた…


んで。大変に困ったことに。この方法を暗黙的とはいえ推奨してやがるPageさんがあります。
http://phpspot.net/php/pgPHP%95W%8F%80%83N%83%89%83X%82%CCstdClass%82%C9%82%C2%82%A2%82%C4.html
…頼むから便利の方向性を間違えないでくれ orz


なんていうんだろ?
こーやって「しつけの出来ていないレゴブロッカー*2ってかジェンガ*3が量産されていくんだなぁ」と。
勘弁してほしいモノです。

*1:とある有名な犬が書く小説の典型的な出だしw

*2:用意されたレゴを積み上げるだけ

*3:積み上げるってより壊す人

それやっちゃだめ…

http://itpro.nikkeibp.co.jp/article/COLUMN/20070402/267111/
それやっちゃダメだよ海原さん;;
うん確かに「使いたくなる」瞬間はあると思う業務的に。
でも、使った瞬間に「もうちょっとだけ」が積み重なって、どえりゃぁ目にあうからってうかすんごいの、いくつか見てるから ;;


こーゆーのは「原則を貫く」ほうが、最終的に楽だと思う。
…ってか、だからSmartyがどうしても好きになれない(苦笑