がるの健忘録

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

ある意味すげぇなぁ…

■ 「解雇されたので」一切をブログにぶちまけて起業する
http://internet.watch.impress.co.jp/docs/yajiuma/20090618_294592.html
経由
解雇されたので起業します
http://kousyoublog.jp/?eid=2291


えと…色々観点はあろうかと思うのですが(ベクトルが一致してるよねぇとかいう発言はともかく)。
とりあえず、一番心の琴線を鷲掴みにされたのは、ここ。

上司はとあるところでブログを書いているのですが、僕と上記のメールのやり取りをした日の夜に書いていたブログの内容をざっくり意訳すると「欠勤しているのにブログを書くような奴は仕事中も手を抜くに決まっているので、会社にとって"悪"だ。組織に伝染する前に"ひねり潰す"」的なことがと書いてあった。

えと…直属の上司さんですよね?
「仕事中も手を抜くに決まっているので」
「決まっているので」
「決まっているので」
………はぁ?


えと。もう一度。
直属の上司さんですよね?
部下の仕事っぷりひとつ、見てないんですか? 見る事が出来ないんですか? 理解できるスキルがないんですか?


いや何て言いましょうか…おいちゃん的には純粋に「不思議」です。
無論、そういう生物があちこちに生息しているのが「会社」というエリアであることは承知しているつもりです…が…それにしても…ねぇ(苦笑

思わず定義を調べてしまいました

えと…
梅田望夫氏、今度は「日本にはオープンソースの動きは根付いていない」と発言してOSS開発者にキレられる
http://slashdot.jp/it/09/06/18/0730204.shtml
経由
日本のWebは残念?
http://slashdot.jp/it/09/06/08/0459249.shtml

日本のWebは「残念」 梅田望夫さんに聞く(前編) (1/3)
http://www.itmedia.co.jp/news/articles/0906/01/news045.html

本の発売に先立って「翻訳自由」宣言をする
http://jbpress.ismedia.jp/articles/-/1216

梅田望夫オープンソースを語るなとガツンと申し上げたい
http://d.hatena.ne.jp/higayasuo/20090618/1245292543

目からうろこが何枚も落ちたオープンソースの“人間的本質”
http://enbug.tdiary.net/20080315.html#p02

目からうろこが何枚も落ちた
オープンソースの“人間的本質”
http://www.shinchosha.co.jp/foresight/web_kikaku/u138.html


…いやぁ散らかっててもはや何がなにやらw
シンプルにまとめると…
・「日本にはオープンソースの動きは根付いていない」的発言
・突っ込みつか突っ込まれっつか
・ぢつは以前にもOSSについてミステイクがあるらしい
という流れでおいちゃんは読みました。
んで、その流れで突っ込みを入れながら。


まずこちらから。
イノベーションはなぜ起きたか(上)
http://jbpress.ismedia.jp/articles/-/1216

本の発売に先立って「翻訳自由」宣言をする

まず。「書籍」というビジネス形態を考えた時に、本当にそれでよいのか? という部分で単純な疑問が生じます。

例えば、インターネットが社会にもたらしたインパクトのひとつに「オープンソース」という考え方があります。これは元々ソフトウエア開発に端を発した概念なのですが、いまやそれにとどまらず、世の中をより良い方向に導くと思われるテーマがネット上で公開されると、そこに無数の知的資源が集結して課題を次々に克服していくといった可能性を含む、より広い応用範囲での思考や行動原理を意味しています。

「より広い応用範囲での思考や行動原理を意味しています」そうなんですか?
という疑問はありますが、いったんこの部分はtrueということにして次へ。

サブカルチャー領域への応用は少しずつ進んでいるのですが、全体として、こうした動きがいまだに日本では根付いていません。

「日本」という言葉が指し示すエリアがもう一つ不明ですね。
少なくとも、ソフトウェア業界ではある程度、オープンソースの動きは根付いていると思うので。
せめてここは「ソフトウェア業界ではある程度根付いているのですが、それ以外の業界で」とかなんとか、「どの業界とかどのエリアに向けて言っているのか」を明記されると良かったんじゃないか、って気がします。
# 一応。正確には、上述の私の文章の「オープンソース」という言葉の使い方は、ほぼ致命的に間違えてます。どう間違えているかは後述。

これは自分が愛してやまない将棋の世界に何かしらの貢献をしたいという純粋な動機からのみ書いたものである。自分自身のビジネスや私的な利益とは無縁な、まさに「無私の情熱」の産物である。

そう書いてあるわけではないのでしょうが…「私的な利益とは無縁」の部分が、おいちゃん的には、非常に(嫌な意味で)気になりました。


で…多分。

「僕たちは日本のウェブを明るくしたいんです」

が、色々と誤解(なのか本音なのかわかりませんが)を招く一因なんいじゃないかなぁ、と。


一方で。下のほうがありまして。
http://jbpress.ismedia.jp/articles/-/1235?page=2

なぜ日本の社会や組織ではイノベーティブな動きが阻害されるのか

多分。
「日本の会社や組織の多くでは、オープンソース的なイノベーションが根付いていない」と言いたいンじゃないかなぁ、と、推測はできるわけなのですが。


んで。
一方で、比嘉さんが書かれているBlog…のまえに。
先に「オープンソース」の定義を紐解いてみたい。
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9
http://e-words.jp/w/E382AAE383BCE38397E383B3E382BDE383BCE382B9.html

Open Source Initiative (OSI)( http://ja.wikipedia.org/wiki/Open_Source_Initiative ) による定義である "The Open Source Definition(OSD)" によればオープンソース・ライセンスの要件として、以下のような基準を挙げている。


1. 自由な再頒布ができること
2. ソースコードを入手できること
3. 派生物が存在でき、派生物に同じライセンスを適用できること
4. 差分情報の配布を認める場合には、同一性の保持を要求してもかまわない
5. 個人やグループを差別しないこと
6. 適用領域に基づいた差別をしないこと
7. 再配布において追加ライセンスを必要としないこと
8. 特定製品に依存しないこと
9. 同じ媒体で配布される他のソフトウェアを制限しないこと
10. 技術的な中立を保っていること

参考: http://www.opensource.jp/osd/osd-japanese.html
一方で

日本語ではソースコードが無償で公開されていることを基本とした様々な定義(のライセンス)に「オープンソース」という表現が使われている、またはそのように判断されている場合が多い。

ということで。
きちんとした「オープンソースの定義(OSD)」と「俗称としてのオープンソース」と、まずはちゃんと議論する時はこのあたりを明示化しないと…って思うところからstartして。


梅田望夫オープンソースを語るなとガツンと申し上げたい
http://d.hatena.ne.jp/higayasuo/20090618/1245292543
を読んでみました。
まず比嘉さんが突っ込まれている部分の初手にある

例えば、インターネットが社会にもたらしたインパクトのひとつに「オープンソース」という考え方があります。これは元々ソフトウエア開発に端を発した概念なのですが、いまやそれにとどまらず、世の中をより良い方向に導くと思われるテーマがネット上で公開されると、そこに無数の知的資源が集結して課題を次々に克服していくといった可能性を含む、より広い応用範囲での思考や行動原理を意味しています。

の文章がすでに「変」だなぁと思うです。
多分…単語としてはそれこそ「知の共有」とか言った方が近いんじゃないですかねぇ?


なので。
比嘉さんの

おい望夫(怒っているのであえて呼び捨て)。


お前はオープンソースの何を知っているというのだ。

について…かみ砕くと「定義を間違えるという、議論のもっとも根底の部分でこけている以上それ以降の議論は無意味だ」という感じになってしまうのではないでしょうか?


で…上述危惧はほかでも指摘されていて。
http://enbug.tdiary.net/20080315.html#p02
経由
http://www.shinchosha.co.jp/foresight/web_kikaku/u138.html

オープンソースとは、ソフトウェアのソースコード(人が記述したプログラムそのもの)をネット上に無償公開し、世界中の不特定多数の開発者が自由に参加できる環境を用意し、そのソフトウェアをさらに開発していく方式のことだ。

ダウト。

しかし日本人でたった一人だけ、世界中の人々が使うソフトウェアをオープンソース方式で開発したリーダーがいる。

ダウト2。

オープンソース世界では、他者に何かを強制する道具立てがまったく存在しない。「お前、これをやれ」と人に強いるための裏づけがない。経済的な取引という概念も存在しなければ、雇用関係を基盤とする組織的指示命令系統も存在しない。すべては参加者の自発性だけに委ねられて、プロジェクトが進行する。プロジェクトが成功するも失敗するも、すべて参加者の自発性次第なのだ。

ダウト3(「ある程度までそういう傾向がある」ならtrueだけど「(まったく)存在しない」という強い言葉であるのなら、ダウトだと思う)


で…多分、ここに続く(時系列としては逆なんだけど)。
日本のWebは「残念」 梅田望夫さんに聞く
http://www.itmedia.co.jp/news/articles/0906/01/news045.html
http://www.itmedia.co.jp/news/articles/0906/02/news062.html

頑張ってプロになって生計を立てるための、学習の高速道路みたいなのもあれば、登竜門を用意する会社もあったり。そういうことが次々起きているわけです。

んと…ンなもんだけでプロになれるような生ぬるい世界なんてどこにもないと思うのですが?
参照: http://d.hatena.ne.jp/gallu/20081015/p1

SNSの使われ方も全然違うし。もっと人生にとって必要なインフラみたいなものになってるわけ。

そんな重要なものにはむしろしたくないなぁ。

――日本のSNSは、人生に必要なインフラになっていない、という意味でしょうか。


 なってないんじゃないんですか? 職を探すとか……。人生のインフラ、学習、生計を立てる、キャリアを構築する、みたいな。

えと…それを「SNSでしなきゃいけない」必然性がわからんです。

だけどやっぱり、日本語圏のネット空間において、ユーザーが100万人とかいるはてなの取締役であると。そうすると、日本語圏のネット空間について、何かネガティブなことを語るということは、「おまえは自分の利用者を批判するのか」というコメントがあったわけ。

えと…「会社の方針は別記するとして。私個人としては否定しますよ?」って明言しちゃ駄目なのかしらん?


で…「日本のWebは「残念」」って結局「ボク好みじゃない」って言っているだけのような…。
その上で。わかっているつもりで「間違えた用語の使い方」「狭い見識と、それを踏まえない上での断定的な口調」が、あちこちで「え〜?」って言われているんじゃないかなぁと。


ちょっと興味深かったので、memo。

…まてや

酔いどれ源譜たん
経由
http://www.php.net/ChangeLog-5.php
経由
http://bugs.php.net/bug.php?id=47704

PHP crashes on some "bad" operations with string offsets

えと…

<?php
$s = "abd";
$s[0]->a += 4;
echo "ok\n";

で、シグセグで落ちる、と orz


実験。
まず念のために

$s = "abd";
var_dump($s[0]->a);

で確認。returnにはNULLがくる。


…えと………
おそらく。


PHPは、その「スンバラシイ」仕様によりまして。StdClassってのがあります。
「宣言しないのに使えちゃうクラス」という…なんて言いましょうか…おいちゃん的にはあまりにも度し難いとしか感じ得ないものがあるのですが。

マジックメソッド( http://www.php.net/manual/ja/language.oop5.magic.php )とかいう、やっぱりおいちゃん的に「理解不能」なものがありまして。
その中に「__call」「__callStatic」なるものがあります。これは「存在しないメソッドをcallした時に叩いてくれる関数」だそうです。


ここから仄見えるのですが。PHPは「未定義を許容する」方向の哲学を持っています(つまりその哲学そのものがおいちゃん的に大嫌いなのですが…おいといて)。


で。
矢印演算子だと…おそらく
・矢印演算子なので、その左辺値をクラスインスタンスであると見なしてみる
・右辺値に括弧が付いてないから変数をさしているはず
・でもその変数は未定義
・だから未定義であるnullを返す
という挙動なのだろうと思います。

$ss = 10;
var_dump($ss->a);

で普通にnull帰ってきますし。


んで、次。

$s = "abd";
$s[0]->a += 4;

で落ちるのだから…
まずはここから。

$s = null;
var_dump($s->a);

あれ? 落ちない。


次。

$s = "abd";
$s[0]->a = $s[0]->a + 4;

Fatal error: Cannot use string offset as an array in t.php on line 6

………あれ?
+=だとコケるのに=で+だとコケない?
えと………どゆ語句解析とか意味解析してるの?


んで。

$s = null;
var_dump($s);
var_dump($s[0]);
var_dump($s[0]->a);
var_dump($s[0]->a += 4);

NULL
NULL
NULL
int(4)

………うを?
落ちるおもたのに…


追加。

$s = 1;
var_dump($s);
var_dump($s[0]);
var_dump($s[0]->a);
var_dump($s[0]->a += 4);

int(1)
NULL
NULL

Warning: Cannot use a scalar value as an array in t.php on line 10
int(4)

10行目は「var_dump($s[0]->a += 4);」ここ。


予想。
「$s[0]->a += 4」において。
まず左辺値が評価される。
…おそらく。型のチェックが左辺値全体ではなくて、矢印演算子の左辺「$s[0]」に対して行われている。
で…「矢印演算子の左辺としてはあるんだけど左辺値全体としてはnullである」場合に、チェック漏れがあるのではなかろうか、と。


ただ…そも「+=」と「=の右辺に+」で「間違いなく別ロジックを持っている」というのは…果たして如何なものなのだろうか? と。
相変わらず…ぷりちぃな言語である orz