あけましておめでとうございます。
2015年は合同会社ねこもりを設立し、怒涛の1年でした。
たくさんの方と出会えたし、たくさん事、たくさんのモノに出会えました。
楽しくて楽しい1年でした。
2016年はもっと皆様と笑い、楽しみ、嬉しい1年にしたいと思います。
今年もよろしくお願い申し上げます。

“「はじめよう!要件定義」ではじめる、すらすらと手が動くようになる楽々要件定義レッスン” を開催しました

「はじめよう!要件定義」ではじめる、すらすらと手が動くようになる楽々要件定義レッスンを4/11に企画開催させていただきました。
https://rd-lesson.doorkeeper.jp/events/22317

要件定義レッスン ワークショップ

本を読むだけでは絶対にもったいない。これはちゃんと素振りをしておく必要があるよねという気持ちをFacebookに投稿した結果、企画開催させていただくことになりました。
つまり言い出しっぺの法則発動です(^ー^)

  1. 基調講演
  2. 4人によるワークショップ
  3. ドーナッツタイム
  4. 2人によるワークショップ
  5. 1人によるワークショップ
  6. クロージング・講演

当日はこのようなこのような流れでした。

この本を読んでまず感じたことは、さらっと読めすぎてとても不安になったことです。
なるほどなーと思いながらあっさりと読めてしまって、で、読んだ後「私はこれ、今出来てるのか?」という不安がありました。
普段の仕事の中では受託開発をさせていただく中で、要件定義をします。でそれを元に機能考え見積もり、作業時間と費用を算出して見積書を作成します。
なので成果物として要件定義書がある場合ない場合ありますが、少なくとも要件定義は毎回やっているはずです。
おそらく自社開発をされている方々でも、「こういうのつくってほしいんだけどどれくらいでできる?」と言われて「これぐらいでできますよ」って答えるまでの間に紙に書いたかどうかは別として要件定義と工数見積もりは普通に日々やってることだと思います。
この本を読んで「私は本当に要件定義できてた?それって要件定義だった?」という疑問を投げかけられました。できている気分になっていた、もやっとした私の要件定義が私の中にあったわけです。
もやっとしてる事を本で気づかされ、この講演とワークショップで、「要件定義とは」を再定義していただいた気がします。

実際の案件(プロジェクト)では、“昔ながらの「敵がいてそれをやっつける」シンプルなわかりやすいモノ” なんてものは少なくて、登場人物は利用者Aの1人だけじゃなくて、たくさんの登場人物がいて、それらの満足する結果をどうつくるのか?に注力して要件ができあがっていくのだと思います。
それらしいことをそれらしくやった結果ぐだぐだににならないように
「何つくるの?」を確認する事が要件定義 なのだなと再認識しました。

4人によるワークショップでは、「ねこあつめ」アプリを元に行いました。
画面の要素解析を行い、その要素のためになんの手続き(実装)が必要かを拾い出すワークです。
「作りたいもの・これから作るべきもの」を今すでに出来上がっているものに置き換え、逆算することで要件定義を行うワークででした。
実際の案件では要件を聞き取り完成した姿を想像しながらやるであろう作業になると思います。
ここでの体験はこの規模の成果物を想像しそれをテキストに落とすためには4人がかりでも25分では定義しきれないという規模感を体感として知ることができました。「ねこあつめ」はシンプルな小さいアプリに見えますが実はとても多機能で複雑なUIです。拡張も済ませて使い込んでる気になっていましたが知らない機能がありビックリしました。かわいいに騙されますが実はすごい子だったのでした。
ワークの内容そのものは画面フロー図に近いものの作成です。
書籍の93ページあたりから書かれている内容の実戦でした。
これはワークショップ後に再度読み返すと、最初に本を読んだ時とはかなり印象がかわりました。やる前とやったとで自分自身の視点が変わったように思います。
(※ 私自身はスタッフ業のためワークショップそのものには参加できていません…(>_< ) 後日ねこあつめだけ25分間の素振りをしました) ワークが終わった後、全員で他のチームの成果物をチームごとで見学するツアー。 同じお題ですがスタート位置が、ローディング画面から始まるチーム、にわさきから始まっているチーム、細かく重点的に書かれた場所はそれぞれのチームごとに異なり、視点が違うと出来上がるものも違う点はとても興味深いものでした。 また各チームともに書き方に工夫があり、見るだけなのに発見があり、気付きがありました。 同じお題でワークをした人と一緒に他のチームの成果物をみて意見交換をするのは、気付きをチームで共有できていたことがすごく良かったです。チームがさらにチームになっていく過程を見ることができました。 基調講演では、実力とは

  • 実行するスキル
  • 知見のボキャブラリー
  • の2つであるとのお話がありました。

    また、本を書いた上で、「身も蓋もない」大前提のお話がありました。
    この大前提があるからこそ、薄く読みやすい本になったのだとのお話でした。

    • プログラミングができること
    • ちゃんとプロジェクトマネージメントができてること
    • DB設計ができること(楽々ERDレッスン (CodeZine BOOKS) 余裕!みたいな)
    • 組織設定や業務設計もちゃんとできるてる
    • ヒアリングスキル・接客能力もちゃんとある

    私にとっての要件定義は見積のために機能を洗い出し、工数を出すための絶対必要な事、モノです。「実行するスキル」はきっと基調講演の中で話された「身も蓋もない大前提」のこの5つのことができてないと精度のゆるいものになるのだと思います。機能落ちしていたことに気がつかずリリース直前で爆発するプロジェクトが思い浮かびました。

    「知見のボキャブラリー」は経験の数。知っていることの数。
    どういう場合にどうする?どうしたらいい?の例を知っているということ。それを自分の中の引き出しから引っ張り出せること。経験者になる。経験を活かせる人になるための材料になるのだなぁと知りました。

    今回のワークショプでは、4人, 2人, 1人のワークの成果物を合計46件の事例として見ることができました。大きな知見をいただきました。
    羽生先生もクロージングの講演で話されていましたが、本当に本当に眼福でした♡

    要件定義レッスン 講演

    要件定義レッスン ワークショップ

    要件定義レッスン ワークショップ中

    要件定義レッスン ワークショップ

    今回、企画開催させていただきとてもとても幸運でした。そして幸せな時間でした。
    会場を提供いただいた楽天さま、
    スタッフとしてご協力いただいた方々、
    そして基調講演からワークショップまで4時間以上の長丁場を担当してくださった羽生先生、
    そして参加いただきました皆さまのおかげです!!!
    大感謝!
    ありがとうございました!!!

CodeIgniterのライセンスがMITに変更されました!

こんばんわNEKOGETです。
CodeIgniterのライセンスがMITになったというニュースが飛び込んできました。
https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/license.rst

これは本当に本当に嬉しいニュースです。
2013年(つまりは去年)ライセンス問題と戦うべく弁護士さんに相談し、真剣にライセンスについて調べ学んだのは本当に良い思い出です。
参考記事 : CodeIgniter3のライセンス問題に対する意見書公開

プロジェクトのオーナーが、エリスラボ社から、ブリティッシュコロンビア工科大学に変更となり、企業から大学へと変わりました。
ここしばらく、エリスラボ社のサイト内にあったCodeigniterのサイトへ転送されていたcodeigniter.comは、あたらしいサイトへと生まれ変わっています。

あとはもう、CodeIgniter3がリリースされるのを待つだけ!
期待待ちです♡

PHPカンファレンス関西 2014に行ってきました!

PHPカンファレンス関西 2014に行ってきました!
今回の目当ては郡山さんの基調講演だったわけですが、他のプログラムも非常に面白く興味深いものがたくさん有りました。
時間が経ってしまうとあれなので、とりあえず雑感を…..

基調講演の中で特に興味深かったものは、海外でのお話
会場に来ていない人からも声がかかるほどの、海外での技術に熱い人の存在。
また、地域コミュニティの勉強会がパブで行われていてそれがまたとてもかっこいい!
Dis is itのお話は、初回 PHP勉強会の後の飛び込みLT(ロングでしたw)で初めて聞いたのが最初だったことを思い出しました。
PHPは面白いよね。もっともっと面白くなるよね。

OSSを維持しつづけるには…. のCMSコミュニティの話。
Drupalの規模運営については全く知らず、またその規模の大きさに驚きました。
Symfony2への乗り換えの話など、コードとか開発そのものじゃなくて、運営の部分でのきつさ難しさが聞けたのは大きな収穫でした。考えさせられました。

フレームワーク4本勝負 FuelPHP
FuelPHPの良いところ。構造についてこんなにきちんと紹介してくれたプレゼンって無かったように思います。この講演どこかで再演やりたいです!

ライトニングトーク(LT) 市川さんの 継続的WEBセキュリティ診断サービス

もう開発している最中から、セキュリティチェックもCIしようぜってのは心に刺さりました。
テストコードは書いてるけど、それではセキュリティ的に問題ないかどうかを知る事は出来ないしと思っていたところだったので、丁度気になっていたところに気になっていた話が聞けました。
http://vaddy.net

非常に楽しい時間を過ごす事ができました。
公開された資料を見直したり等して、もうすこし昇華できたらまたもう一度感想を書いてみたいと思います。

git filter-branchを使ってレポジトリの中の一部だけを追いかけたい願いを叶える

こんにちはNEKOGETです。
githubにあがっているもので、特定のフォルダの中だけコードを追従したい場合とかありますよね。
具体的に言うと…..

フレームワーク(CodeIgniter)のgitレポジトリの中にドキュメントが入っていて、これの日本語化をしたい。
ソースコードはいらん。ドキュメントだけの変更を追いたい!
こういう場合です。

しばらく方法を悩んでいたんですが、できました。
方法としては次の通りです。

{フォルダ名}のところは適当に置き換えてください。

(1) gitレポジトリを cloneします。
(2)cloneしたフォルダを{フォルダ名}という名前でコピーします。
(2)のコピーしたフォルダの中でフォルダを指定してgitの情報をフィルターをかけます。

$ git filter-branch -f --subdirectory-filter {フォルダ名} HEAD

そうすると、指定したフォルダの履歴だけがフィルタリングされ、そのフォルダだけのレポジトリができます。
そうやってできた抽出レポジトリをcloneして、(3)作業用のレポジトリを作ります。

(3)の作業用レポジトリをリモート(今回試したのはgithub)にpushします。

ここまでで、取り込むための環境ができました。
追従元の変更の取り込み

(2)のgit filter branchを実行した{フォルダ名}を削除します。
(1)の最初に作った追従元からつくったcloneで、git pullを実行し、変更を取り込みます。
それをコピーし、{フォルダ名}を作り直します。git filter-branchを実行し、抽出したレポジトリを作成します。
つまりは(2)を作り直します。

(3)作業用レポジトリは、抽出後の(2){フォルダ名}から変更をmergeします。

つまり抽出されたgit レポジトリからmergeをすることによって、全部入りのオリジナルの変更をとりこむわけです。
(2)は取り込む作業をする都度削除します。した図のピンクのレポジトリがそのフォルダになります。

日1回程度取り込めれば良いので、
shを用意しcronで定期実行することにしました。
これで追従したいレポジトリから変更を取り込めます。

参考にさせてしただいたサイト : http://subtech.g.hatena.ne.jp/secondlife/20101108/1289221814
git filter-branchをここで初めて知りました。

CodeIgniter本家のレポジトリから、ユーザーガイドだけを抽出したレポジトリです。
3.0以降のユーザガイドの翻訳に利用しようと思います。
https://github.com/NEKOGET/ci_user_guide_src
(注 : 2014.1.1 レポジトリ名を変更しました)
もっとスマートでうまいやり方があればぜひ教えてください(=人=)

FuelPHP&CodeIgniterユーザの集い2を開催しました。

FuelPHP & CodeIgniter ユーザの集いを開催しました。
CodeIgniter talk #03とFuelPHP勉強会 東京#6となります。
今回2回目です。

当日のつぶやきのまとめ
“http://togetter.com/li/599883

【新卒課題】フレームワークを用いた開発とそのサンプル例

 ブリッジドット株式会社 佐藤雄大( @q2e2d2 ) さん

新人教育の話がとても興味深い発表でした。メンター制度の話など。
人数によって、コンテスト風にするか、協力して作る課題にするかを決めた話。
新卒にちょうど良い課題に悩むといった話など。
丁度2日間程度のボリュームで課題設定をしてみると良いといった話は、新しいフレームワークに挑戦する自分用課題にも参考になる良い話だなと思いました。

自己紹介TIME

今回の勉強会では、CodeIgniterな人が多く参加いただきました。
また、自己紹介TIMEでのCodeIgniter押しっぷりな発言が多かった結果飛び込みでFuelPHPの発表が増えるなど、とてもよい刺激になったように思います。

「UnitTestとリファクタリング」

@NEKOGET
発表をさせていただきました。
デモではぐだぐだになってしまいました。実際にコードを書いてデモをするというのは難しいですねorz



話の中で、データベースのリファクタリングがしたくなった場合は?という話題があり、この本をご紹介させていただきました。
デモで使用したコードは近日公開します。
セッション中、アンケートをとったのですが、PHPUnitでテストコードを書くチュートリアルをした事がある人は勉強会参加している人のほぼ100%が実践していました。
実際にCodeIgniterやFuelPHPでテストコードを書いている人は1割もいないようです。
CodeIgniterについてはもう少し資料をつくったり公開したりできるようにしたいと思います。
もくもく会的な事をしてもいいのかもしれないですね。

 

CodeIgniterでXMLを処理してみる

php-XML_Builderを紹介いただきました。MITライセンスで使いやすそうです。

CodeIgniterをCLIで使った時の事例

@hiroshitoda さん
CGIモード+pcntlモジュールで、PHPでマルチプロセスできるお話でした。
リソースの問題や保守を考えると、デーモンやcronでの定期実行するものをサービスを作成したフレームワークで作る事は確かに、良い事のように思いました。
PHP5になってPHPネイティブに、マルチプロセス実行するための関数が用意されています。
http://www.php.net/manual/ja/class.thread.php
これ、初めて知りました。自分用ツールに試してみたいです。

FuelPHPの2013年を振り返る

@Tukimikage さん

開催されたfuelphp関連の勉強会の多さに、びっくりしました。(羨ましいです!)
やはり開催されるという事はそれだけ利用者が増えているという事なのでしょうね。

次回勉強会は2014年2月15日の予定です。
今からとても楽しみです。

FuelPHP ♡ CodeIgniter ユーザの集いを開催しました

FuelPHP ♡ CodeIgniter ユーザの集いを開催しました。
今回は、コワーキングスペース茅場町 Co-Edoを会場にお借りし、@Tukimikageさんと開催させていただくことができました。
募集を上回る応募をいただき、また当日はたくさんの方にご参加いただき、感激です。
勉強会も非常に盛り上がり、楽しい時間を過ごさせていただきました。
開催中のつぶやきをtoggetterでまとめました。

開催のキッカケはPHPカンファレンス2013での、フレームワークアップデートでの登壇で、登壇後勉強会やりたいですよねっていうことで意気投合し開催となりました。FuelPHP勉強会#5 CodeIgniter talk#2としての開催でもあります。

今回は私はライセンス問題について登壇させていただきました。
そもそもわかりにくい内容の発表だったのですが、ツイートを見ていた感じだと、よくわからなかったという意見の方が数名いらっしゃいました。
もうすこしわかりやすい表現でお話をしなければいけなかったと思います。資料を改善せねばですね。
そもそもライセンスとは?から話をするべきだったのかもしれません。

codeigniter2系から3へのアップデートについて
発表された方 : 株式会社サイバーエージェント 北浦 智大さま

CodeIgniter3の開発の現状と、実際にアップデートした経験についての発表でした。
私自身はまだ2系からのバージョンアップは行っておらず、興味深い発表でした。2系から3系の差はそれほど劇的ではなく、わりとすんなり移行できますよとのこと。CodeIgniter3は確実に品質が上がる方向で開発されている事から、バージョンアップのしやすさというのはとてもありがたい情報です。

FuelPHP x Ratchet で WebSocket
発表者 @madmamor さま

今回 Ratchet の発表をされた方が2名いらっしゃり、どちらもとても興味深い発表でした。 Ratchetそのものを今回初めて知ったのですがとても面白そうです。

FuelPHPでDynamoDB
発表者 @koyhoge さま

DynamoDBという存在を始めてしりました。とても面白そうです。
AWSのKVSだそうです。AWSに関しては私は不勉強で知識が薄いのですがこれはとても気になりました。これは使ってみたいです。
codeIgniterでもきっとだれか使っているはずと検索してみると、いくつか見つけることができました。
試してみたいです♡

【LT】CI用の自作CRUD Isoldeについて
発表者 : 斎藤 健太 さま
[資料発見次第追記予定]
デモがとてもすばらしく、資料を心待ちしています。
設定を書き換える事での機能変更(機能のフィルタリングと言うべきかしら?)はとても面白くまた、便利に感じました。
私もこれはぜひに使ってみたいです!

【LT】ブリッジドット株式会社のFuelPHPの事例
発表者 : ブリッジドット株式会社 佐藤雄大さま

実際の導入事例についてお話いただきました。
まずは使ってみるという取り組みが良いですね。静的ホームページをFuelPHP化。必要に応じて動的な実装をしていくことって使い始めとしてはとてもやりやすいです。私の仕事用のサイト works.nekoget.netも同じようにCodeIgniterにしてから、動的にしたい部分を順次機能実装してみたりしました。親近感満載でした!

【LT】FuelPHPを本気でcomposerに対応させた時の話
発表者 : 株式会社ガラパゴス 細羽啓司さま

興味深い発表でした。ライブラリの構成管理は確かにとても面倒で、それがフレームワークのバージョンごとにバラバラな管理というのは、ちょっと目眩がしそうです。それをcomposerで解決とういのはとてもわかりやすいなと感じました。
以前開催したCodeIgniter talk #1でも、「CI + composer で 名前空間を使った話」な発表がありました。

【LT】omoon.org の裏側(FuelPHP の task 活用例)
発表者 : @omoon さま

大阪から参加いただきました。FuelPHPがガテン系フレームワークであると知らしめた関西のFuelPHP使いさん!
flickerとEye-Fiを使って、長期運用中の自分サービスの自動化のお話でした。ここでもcomposer対応をしたい旨の話がありました。
もうcomposer 対応はあたりまえの世界がやってきているんだなぁ….

【LT】CodeIgniterを初めて使うときにハマった4つのポイント
発表者 : @noldorinfo さま

Production環境 でエラーログは悩ましいなぁと思っていました。これ本家に取り込まれてほしいです。index.phpもしくは設定ファイルで変更できるとさらに嬉しいです。E-MAILの文字化け問題の対応コードすばらしいです。私はそこはもう追いかけずにqdmailで対応してしまってそのまんまにしてしまっていました。https://gist.github.com/takekoshi/6931872 を私も試してみます!!!

【LT】FuelPHP+Ratchet+WebRTC
発表者 : @Tukimikageさま
[資料発見次第追記予定]
Ratchetの発表2人目となりました。Ratchetは本当に本当に面白そうです。
WebRTCを初めて知りました。実行できるブラウザは限定されそうですが、WindowsでもmacでもLinuxなデスクトップ環境でも動くらしく、興味津々です。

セッション4本 LT6本という、とても濃く熱いイベントとなりました。
懇親会でもたくさんの面白いお話が聞けて大満足です♡

次回は12/7(仮)にやりましょうということで、懇親会中に@Tukimikageさまと相談させていただいています。次回も合同開催でイベントを開催したいなと思います。
今からとても楽しみです!!!

PHPカンファレンス2013 フレームワークアップデートに登壇させていただきました

フレームワークアップデートにCodeIgniterのお話をさせていただくべく登壇させていただきました。

8フレームワークとモデレータでのパネルディスカッションでしたが、不勉強な部分もあり、十分に話せたかどうか自信はありませんが、内容はとても濃かったように思います。

仕事をする上で、いろんなコードと出会います。
OSSなライセンスで公開されているフレームワークを使う場合と、社内フレームワークを使っている場合とがあります。
きちんと作られているコードであれば、どちらも遜色は無いし、どちらが優れているというものでもありません。

OSSなフレームワークを採用する場合、それが大勢の人にメンテナンスされているということと、ドキュメントが整備され更新されている事が最大のメリットです。
そして、多くの人が同じコードを見ている、使っている事が大きいと感じています。
あらたな人材を外部に求める場合、そのフレームワークを使った事があるというところで、何の話をするにしても、共通のコトバで共通の事をベースにすることができる事かなと思います。
それは情報を共有する上で、
コードの話をする上で、
敷居の1つをすばやく下げてくれます。
早くコードが書ける以上のメリットがそこにあるように私には思えます。

PHPカンファレンス2013 フレームワークアップデート 集合写真

こんなすごい人たちと同じ壇上に立ち、お話させていただいたことはとても光栄です。
また皆様にお話を聞いていただけた事、とてもとても嬉しいです。

ありがとうございました。

CodeIgniter3のライセンス問題に対する意見書公開

ハミングバード法律事務所 白木先生に作成いただいた意見書を公開します。

☆意見書 (pdf)

受託開発、自社サービスでの開発を前提として、意見書を作成いただきました。
私が仕事をする上での懸念材料は全て払拭することができました。

2013年9月14日に開催されました、PHPカンファレンス2013 LT発表で登壇させていただきました発表資料については少し修正をした上で、改めて公開をさせていただきます。

ライセンス問題についてはCodeIgniter のライセンス変更問題のタイムラインにkenji_sさんが時系列で詳しくまとめてくださっています。
2011年 CodeIgniter カンファレンスにて、CodeIgniter3からOSL-3.0ライセンスへライセンスが変更になる旨が発表されました。2011年当時の日本CodeIgniterユーザ会のMLでも、ライセンスの話題について多く話し合われました。ユーザ会としての公式な見解は未だに出されていないままです。
この「ライセンス問題」があったためにフレームワーク採用の検討の際に検討の候補にあがる手前で候補からはずされてしまう状況はあまりにも深刻でした。またすでに運用フェーズに入ったCodeIgniter2系で作られているアプリケーションについて、バージョンアップをするかどうかの検討時にも、「ライセンス問題」があるために身動きがとれない状況にありました。

この意見書により、私は自信を持ってCodeIgniterを提案し、またバージョンアップの検討をすることができるようになりました。

ぜひ意見書をご覧いただき、皆様の意見をいただければと思います。