日本のPHPコミュニティのあゆみ
ソフトウェアデザイン2016年9月号が発売されました。
- 出版社/メーカー: 技術評論社
- 発売日: 2016/08/18
- メディア: 雑誌
- この商品を含むブログ (1件) を見る
この号の第2特集でPHPが取り上げられていて、私もコミュニティについて2Pほど執筆しています。
ソフトウェアデザイン編集長の池本(@XR230)さんから企画案をいただきまして、PHPのslackチャンネルで執筆者を募集して、実現された記事となっています。
私が執筆した第4章のコミュニティについての文章は、各グループの紹介にほぼ終始していて、あまり読み応えのある内容とはいえません。自分が締め切りすぎまでもたもたしたせいでページ数が減った結果、前半に用意していた導入部を全部ボツにするという判断で、現在のものになったのでした。
ということで、せっかく執筆した前半導入部なので、ここで公開することにします。
日本のPHPコミュニティのあゆみ
ソフトウェアデザイン2016年9月号 PHP特集ボツ原稿
コミュニティの発端
PHPに関するコミュニティらしきものが日本に生まれたのは、1997年のPHP-jpメーリングリストに遡ることができるでしょう。当時のPHPのバージョンは PHP2.0、「漢字patch」と呼ばれるものを各人が当てて日本語を使用していました。そのままでは日本語を扱えないものに対して、有志の人々が協力して日本語を扱えるように作業をし、そこでコミュニティが形作られていくのは90年代の日本のソフトウェアシーンとしてはごく当たり前の光景でした。
その後、PHP3.0.7に対して日本語を扱えるようにしたものを、日本のコミュニティとして独自に配布を始め、日本語も問題なく使用できるウェブプログラミング言語として評判になっていきます。そこからさらにコミュニティは発展して、2000年に「日本PHPユーザー会」の発足へとつながっていきます。この時はまだ自分はユーザ会には関わっていなかったですが、当時のニュース記事などを読むときちんとメディアを呼んで記者発表会が行われたようです。日本PHPユーザ会は、2000年7月2日に日本で最初のPHPカンファレンスを開催し、その後毎年欠かすことなく開催を続けています。
メーリングリストからブログへ
2000年代前半は、コミュニティのやりとりの中心はもっぱらメーリングリスト(ML)でした。普段MLでやり取りしている人達と、年に数回行われるPHPカンファレンスやLinuxConferenceなどのリアルイベントで顔を合わせて話すことで関係が深くなっていったということは、この頃なら誰しも経験していると思います。MLの流量も今とは比較にならないほどで、多いときは1日に100通以上が流れていたと思います。
そこから大きく変わってきたのは2004年頃にブログが流行ってきてからです。簡単な方法で広く世界に情報発信できるブログというツールは、その界隈での有名人を多く生み出すことになりました。PHPコミュニティでもその傾向はあり、PHPに関する情報を発信し続けるブログとそのコメント欄というコミュニケーション手段が加わることで、人のつながりが多層になったように思います。
情報をブログで発信する人が増えてくると、それをまとめて読みたい要望も生まれてきて、特定ジャンルの各ブログのRSSを一箇所に集約して配信する「プラネット」と呼ばれるサービスが流行したこともありました。
そしてSNSへ
今で言うSNSが最初に使われ始めたのは2004年頃でした。mixiやGreeが日本発のSNSとして相次いでサービスを開始したのも2004年ですし、海外サービス勢もその後次々に日本に上陸してきました。しかしSNSが流行し始めた当初は、ITエンジニアコミュニティではさほど影響を与えていなかったように思います。
この流れが変化したのは2007年頃からのTwitterの流行だと思われます。Twitterは最初マイクロブログと呼ばれていたように基本的にはオープンな場で、人々の情報発信の敷居を大幅に下げました。ブログほど堅苦しくなく、日々の疑問やコードを書いていて感じたちょっとしたことなどがどんどん投稿されていき、そこから様々なコミュニケーションが生まれました。Twitterが広く一般に使われ始めるのは2010年頃からですが、それ以前よりIT関係者はこの新しいツールを上手く使いこなしていたように思います。
追って日本に上陸したFacebookも、ITエンジニアコミュニティにじわじわ浸透し、現在では一部のPHPコミュニティの主要コミュニケーション拠点にまでなっています。
あいまいになるコミュニティ
ブログやSNSがコミュニケーションの中心になることによって、ITエンジニアコミュニティに大きな変化が表れました。それは個人のブランド力の増大と、それに呼応した組織への帰属意識の希薄化です。2000年前後のエンジニアコミュニティは、組織や団体という看板を必要としました。そのメンバーの一員になるという帰属意識が、人々を結びつけるのに大きな影響力を持っていたのです。しかしブログやSNSでの活動は、それを書いているのが「どこのだれ」ではなく、ただ単に「だれ」ということのみが注目される傾向が強く、組織としてのコミュニティの役割は一面ではすでに失われつつあります。
個人が特定の組織に帰属することなく、その人それぞれの興味ある対象ごとに広くゆるく繋がっている状態、それが現在のITコミュニティの実態だと言えるでしょう。そういう意味では、GitHub上の各プロジェクトや、各Q&Aサイトも今風のコミュニティの一形態と見ることもできます。
PHP BLT #4 で PHP の興味深い挙動を知った
そこで @uzulla さんが雑談的に発表された内容に面白いものがありまして。
たしかこんな感じのやつ。
$values = [ 'a' => null, 'b' => 'abc', ]; foreach ($values as $key => &$value) { $value[$key] = '123'; // 本当は $key[$value] = '123' の意図 }
ここで間違えて $key と $value を入れ替えて記述したのはいいけど、$value が null の時にはエラーにならなくて、abc の時に初めて
PHP Warning: Illegal string offset 'b' in /some/path/hoge.php on line X
なんてのが出るという話。
値が null の変数は未定義と等しく扱われるので、そこで変数の生成と代入が同時に行われる。null は未定義と等しいのは以下の例をみても分かる。
$a = null;
var_dump(isset($a)); // 結果は bool(false)
で、先の uzulla さんのコードを、エラーを出さないようにキーが 'b' の要素を抜いて実行すると、当然エラーにはならず $values は以下のようになる。
$values = [ 'a' => null, ]; foreach ($values as $key => &$value) { $value[$key] = '123'; } var_dump($values);
実行結果:
array(1) { ["a"]=> &array(1) { ["a"]=> string(3) "123" } }
あれ? なんで配列が入れ子になるんだろうと不思議に思ったので、色々試してみたところ挙動が理解できた。
この場合 foreach でループを回す際の $value に & がついて参照になっていることがキモで、ループ内で新たな配列が作られた後、それが $values キー 'a' の値として上書きされているということになる。
分かりやすく代替コードで示すとこう。
foreach ($values as $key => &$value) { $tmp[$key] = '123'; $value = $tmp; }
参照をやめれば、当然ながら要素の上書きは起こらない。
$values = [ 'a' => null, ]; foreach ($values as $key => $value) { $value[$key] = '123'; } var_dump($values);
実行結果:
array(1) { ["a"]=> NULL }
クリスマスイブに「さくらの聖夜」というイベントに行ったら、とんでもない発表が行われていたw #さくらの聖夜
クリスマスイブの 12月24日 19:00 から DMM.make AKIBA で「さくらの聖夜」というイベントが開催されたわけですよ。さくらインターネットが不定期に開催している「さくらの夕べ」のクリスマスイブ特別版という位置づけで、今年で3年目になります。私はたまたま毎年参加しているので、今年も行ってきました。
2部構成の前半はさくらのこれまでのあゆみ
法林さんのイベント開始のあいさつのあとの最初のセッションは、さくらインターネット社長の田中さんとさくらインターネット研究所所長の鷲北さんによる、写真で振り返るさくらインターネットの歴史セッション。前身となった会社の初データセンターの写真とか、鷲北さんの前職のときの写真とか、ラックマウントサーバに絡みつくぐちゃぐちゃのケーブルとか、綺麗に整理されたケーブルとかw
こちらのセッションも軽妙なお二人のトークで大変面白かったのですが、それをふっとばす内容が後半に控えているとは、その時は露にも思わなかったのです…。
後半に IoT 絡みのすごい発表をぶっ込んできたw
後半は、今回の会場である DMM.make AKIBA を立ち上げ今年の8月に古巣のさくらインターネットにフェローとして復帰した小笠原治さんと、様々なネットデバイスを発表して飛ぶ鳥落とす勢いのCerevo 岩佐琢磨さんによる IoT 絡みのセッション。基本は小笠原さんの発表に岩佐さんが突っ込むという形式でした。
セッション冒頭でも「IoT」がバズワード化しているという話が出ましたが、小笠原さんがさくらに戻ったらすることは IoT 絡みの何かだということはすでに様々なメディアで語られているので、実際にどのようなサービス内容になるのか一部には注目を集めていたわけです。
で小笠原さんが「これここで発表しちゃっていいのかなー」とか言いながら、さくらが来年サービスを開始する予定の「さくらのIoTプラットフォーム」の概要をしれっと発表しちゃったのでもう大変。おいおいさくらは一部上場しても暴れん坊だなw
さくらのIoTプラットフォームはオールインワンパッケージ
www.slideshare.net
小笠原さんから公表されたさくらのIoTプラットフォームは以下の構成要素から成り立っていました。
- Cerevo のBlueNinja が乗った SIMモジュール
- このサービスに特化した通信SIM
- SIMのデータの送り先としてさくらのプライベートクラウド内のエンドポイント、DB、ストレージ、ルールエンジン
- それらを外部から叩くAPI
小笠原さんが DMM.make AKIBA でさまざまなハードウェアスタートアップの人達と話して分かったのは、彼らの中でインターネット技術を理解している人は本当に少なかったことだったそうで、そういう人達が手軽に使えるようになるには上記のようなオールインワンのものが必要なのでしょう。
さくらインターネットは先日発表したブロックチェーン関連のサービスで株価が爆上げ中らしいですが、こちらにも絡んでいる小笠原さんは、ブロックチェーンは別に FinTech だけのものではなく、IoT でデバイスから流れていくる連続データを抜けなく安全に処理することにブロックチェーン技術も使えるだろうとおっしゃっていました。
SORACOM とは真逆のサービス方向が面白い
IoT 専用の通信サービスとしては SORACOM さんが革新的で話題になっているわけですが、今回のさくら IoT も SORACOM も価格を圧倒的に安くするというユーザ目線は同じものの、そのサービスの方向は全く正反対とも思えるところが大変面白いです。
つまりこういうことです。SORACOM は AWS 出身の玉川さんがやっているだけあって、技術者が機能を隅々までコントロールしたいという目的のもとに設計されています。そのため最小限の使用では最小限の金額しかかからず、使った分だけ支払えば良いというモデルです。実サービスを構築するにはAWS IoTやその他クラウドサービス等を組み合わせて自在に使える技術力を、サービス設計者が持っていなければいけません。設計者にとってコスパに優れて使いやすい「技術要素」に徹するというのが SORACOM の特徴です。
対して今回発表されたさくらのIoTは、SIMモジュールからのデータの送り先はさくらのプライベートクラウドに限定されていて、一通りそこだけで完結する構成になっています。さらに外部からデータを利用したい場合はAPIを使って取得すればよいわけですが、ワンストップで全て揃っているのはサーバサイドに弱い人とってはそのほうが良いからでしょう。これまで IaaS に特化してきたさくらが、IoT を軸にしてようやく PaaS を志向しはじめたと捉えることもできて、個人的には大変感慨深いです。
少し考えれば分かるように、これはどちらの方向が正しいかではなく両方共正しいしどちらもあって良い、使う側の志向によって好きな方を選べば良いわけです。
IoT関連でも特徴的で面白い要素サービスがどんどん生まれてきそうで、来年は楽しみな年になりそうです。
NCMB Android SDK v2の設計方針の記事を書きました
Nifty Cloud Mobile Backend (NCMB) のエヴァンジェリスト活動を現在おこなっています。
上記の記事にも書いたように、エヴァ活動の最初はNCMB Android SDK v2の設計と開発のお手伝いを主にしていました。9月いっぱいでそれも終わり、SDK v2は無事にリリースされました。
少し時期が開きましたが、その NCMB Android SDK v2 の設計に際して注意した点などを NCMB の Qiita ブログに書きました。
久々の Java プログラミングや、ほぼ初めての本格 Android 開発ということもあって、なかなか苦労したことも多かったですが、総じて楽しい経験をさせてもらったという感想です。
「落合陽一 meets DMM.make AKIBA/初回対談ゲスト:小笠原治」に参加した
ささけんの上の Facebook ポストで知ったイベントに行ってきた。
ホストとなる落合陽一さんは、イベントで登壇して喋っていることを観客席から何度か見ていて、超アグレッシブで面白い人だなぁと感じていた。
ささけんから『レポートよろ」とコメントついてたので、途中まで頑張ってログをメモってたんだけど、落合さんと小笠原さんという頭の回転の早いお二人の掛け合いが始まったあたりから、自分も脳みそフル回転で同じテーマについて考えながら話を聞いたほうがより楽しめるタイプのイベントだなということに気がついて、ログ取りをやめて話に集中するようにした。
落合さんは、筑波大の研究室やピクシーダストという自分の会社で
Digital Nature (デジタルネイチャー)
という単語をテーマに研究活動を続けていて、これは
Digital | Nature
という2つの単語の間の縦棒、壁をいかにしてぶっ壊すかという意味だとおっしゃっていた。世の中森羅万象の物事がすべてコンピュータで感知、制御できるようになった時に、自然と情報世界が同列に扱われる上位概念として Digital Nature を位置づけ、その視点でこれまでの様々なコトモノが再構築されていく。確かに、デジタルと自然って対立軸に置かれる場合が多いので、それを同一に見る視点で物事を考え、そこで何が必要かを考えるという発想は目ウロコだった。
帰りの電車の中でもやもや考えながら気がついたテーマは、さて Digital Nature の考え方で諸々再構築されていった場合「人間はそれに合わせてどのように変わっていくのか?」ということだった。イベント中に落合さんも「人間こそインターネットだ」ということを言っていたが、そこで話された人間モデルはあくまでも現在の人間活動だったように感じる。まだコンピュータの手の届かない場所は世界中のいたるところにあって Digital Nature と呼べる環境はまだ限定的だと思うけど、それでも都心で暮らしているとそれに近い状況にはもうすでになっているはず。
Digital Nature な場の中で生活していくことで、人の思考や行動はどのように変わっていくのだろう?
ぱっと思いつくのは、能動的受動的にかかわらず情報を生み出すことそのものがより価値になっていくだろうということ。生み出されるより多くの情報が、その人の個の存在の独自性を高めていくだろう。もちろんプラスにもマイナスにも作用するし、バカッター炎上案件のようにセンセーショナルな愚行があっという間に世界を駆け巡る例を、私達はいくつもすでに目撃している。
何にしてもエキサイティングで面白いイベントだった。2回目もぜひ参加したいと思う。
どうせなので途中まで取ったログも貼り付けておく。
LL Ring Recursiveで「エンジニア不足はいつまで続くのか」というセッションをやります
いよいよ LL Ring Recursive が開催される9月5日が来週に迫ってきました。
「エンジニア不足はいつまで続くのか」を企画した経緯
私は今回、「エンジニア不足はいつまで続くのか」というパネルディスカッションのセッションを企画しました。
カンファレンスや勉強会で、発表者のスライドの最後に「エンジニア募集中」「We're hiring!」という文章が当たり前に踊るようになってどのくらい経ったでしょうか。2000年代後半のソシャゲブームがはじまった頃には、すでにWebエンジニアの獲得競争が加熱していて、GREE や DeNA の高額な人材紹介料が話題になったものです。
あれから世の中ではクラウドが一般的になり、ビッグデータや機械学習などの新たなトレンドも加わって、相変わらず Web 業界では人材不足が続いています。知人の会社から「どこかに良いエンジニアはいないでしょうか?」という問い合わせが来る頻度も、時とともに増えている印象です。
業界的に深刻な人材不足が続いているにもかかわらず、それが解消される気配が一向にない。もちろん様々な理由があるのでしょうが、もはや皆がそういうものだとあきらめムードに入っている感じもあります。雇われる側のエンジニアにとっては良い状況が続いていると言えなくもないのですが、加熱しすぎた人材獲得戦にはどこか歪んだものを感じてしまうのも確かです。
ということで、この辺りで冷静に状況を俯瞰して見て、Web 人材業界では今何が起きていてこれからどうなっていくのか、様々な視点から考察してみようというセッションを企画してみました。
登壇されるのは以下の方々です。
エンジニア向けの Web メディアを運用しエンジニアの転職事情にもお詳しい、エンジニアType 編集長の伊藤健吾 @itoken0226 さん
本イベント的にはナイスなタイミングでクラウドパックを退職されフリーランスとなった吉田真吾 @yoshidashingo さん
従来の就職の形にとらわれず新しい働き方を模索しているクラウドワークスの吉田浩一郎 @yoshidaCW さん
もちろん私も司会者として登壇します。
このセッションを企画するにあたり、各種の統計資料や IPA が毎年発表している「IT人材白書」なども読み込んでみたのですが、ここで扱われる IT 人材は、大規模案件の下請けやいわゆる SI ビジネス的なものも多く含んでいて、少し自分の興味とは違うなぁと思っています。今回のセッションは、おそらく参加者の多くが居るであろう、Web 業界、インターネット業界に対象を絞って議論を進めたいと考えています。
鹿野さんデザインの当日パンフレットを見逃すな
Maker Faire Tokyo 2015 後の燃え尽き症候群から復活したスタッフの鹿野恵子さんが、当日パンフレットのデザインを昨晩仕上げてきました。すげーなんだこれww プロレス会場で行われるイベントに相応しすぎるスポーツ新聞チックなパンフレットです。
ぜひともイベントに参加してパンフレットをゲットしていただきたいです。チケットは Peatix で3,000円で販売中です。
NIFTY Cloud mobile backend (NCMB) のエバンジェリスト記事が公開されました
先月、以下のブログ記事で報告しましたが、NIFTY Cloud mobile backend (NCMB) というサービスのエバンジェリスト活動の仕事を現在させていただいています。
エバンジェリスト活動の一環で、NCMB の 6/15 リリースの新機能である Google 認証機能を Android で行うやり方の記事を Qiita に書きました。自分としての初エバンジェリスト記事です。
かなり丁寧に書いたので、いろいろ事前準備するだけで 1 記事を使うという贅沢っぷりですw まあその分この記事を読んでその通りにやれば、ハマる人はまあ出ないだろうという初心者に優しい記事になっています。
自分でやってみて分かったのですが、この辺の複数サービス連携機能は、こっちで生成した文字列をあっちに入力して…というのが複雑に絡み合っていて、ぱっと見すごく分かりにくいです。どこで何が必要かということを意識して整理して書いたので、その点は少しは分かりやすくなっていると思います。