Technote

by sizuhiko

PHPカンファレンス関西2017に参加してRoboについて発表してきました

2017/7/15 に行われたPHPカンファレンス関西2017に参加してきました。

昨年に続いて参加

今年は場所がGRAND FRONT OSAKAという、梅田にできたすげービルのカンファレンス会場になっています。これは豪華! しかもなんか最近どこもホテルが空いてなくて、仕方なく高いホテルへ、こちらもそれなりに豪華….(なんとかならんのか)

今年も上半期はとにかく忙しく、スライドやデモが直前の完成となってしまったため、新幹線の中とホテルでリハーサル。時間はだいぶヤバそう(なんといっても本当は1時間の内容なのだ)だが、どこの説明に時間がかかるかはわかったので、当日の雰囲気からスキップできそうだったら…という気持ちに。今年から使っているプレゼンポインターも不安の1つだ…

夜はスピーカーとスタッフの前夜祭から、コミュニティ前夜祭と合流しての2次会へと流れ、日付が変わった頃ホテルに戻りました。その後、3次会、4次会があったとかないとか…(これ去年のコピペのままですwww)

PHPカンファレンス関西2017

昨年同様3トラック+スポンサーブースで、会場はどこも広かったものの、人気コンテンツに集中するのは仕方がないですね…。それと朝一番の基調講演に参加者が多かったのもびっくりしました(割と東京のカンファレンスとか午後から来る人も多い)。 参加できたセッションは

  • [基調講演] PHPの現場から
  • PHPにおけるDSL
  • Robo を使ったモダンなタスク管理(自分のセッションです)
  • 現代におけるプロダクト開発とPHPを選定するワケ
  • LT

昨年よりPHP成分多めな気がしました(私が見たところだけかもしれないですが…)

印象的だったことを振り返っておきます。

  • 会場がすごい(かっこいい&おしゃれ)
  • いつもより初心者多め?(最初に質問なかったけど、雰囲気で)
  • 若手が多い(昨年もおもったが)
  • @shin1x1 の基調講演と、 @Potato4d のPHPを選定するワケが、現在のPHPを取り巻く環境についてズバリと攻めていて、すごいと思った

イベントの後は懇親会、二次会、三次会の順に巡りホテルに戻りました(去年のコピペで今年も同じw)。

Roboについて発表しました

なんかPHPの話したの久しぶりな気がします。

最近タイトルで釣らないことに決めているのと、裏のセッションが確実に人気セッションと予測できたのですが、やっぱりその通りとなりました…(気持ち的には残念)。

スライド見ても、お題しか書いてないので、見ても伝わらないと思いますので、トーク用のカンペから抜粋して解説します。

まずタスクランナーとは「タスクを定義し実行することをコンピューターに任せる」ということから自動化と強く関係しているので、最初に自動化やDevOpsの話をしました。 「参加者の中で何か1つでも自動化している人?」という問いに3割ぐらいしかいなかったのは、比較的想定の範囲です。なぜかというと、春先に開催した明日の開発カンファレンスのパネルで同じ質問をして、そのぐらいだったので…

今回は何から自動化するといいよ、という話はしませんでした(時間の余裕がない)が、とにかく静的解析だけでもやるといいですよ。Robo使うと楽になると思います。

で、Jenkinsは2.0からパイプラインでフローを書けるようになったので、実際にJenkinsfileでタスクは自動化できます。ただJenkinsfileは1つのタスクしか流せないし、うまくいかないときローカルで再実行してみようと思っても、そうはいきません。そこでCI環境でもローカルでも動かせるタスクランナーの出番があると思っています。

で、これまではどうしてきたか、というと Phing (セッション中ではファイングと言ってしまいましたが、フィングの方が正しいと思うので修正します)ですね。 でもXMLの定義は学習コストが高いし、仕組みも古いのでカスタムタスク作るのもつらいです。OSSで公開されているタスクとか、標準で用意されているタスクの多さは魅力の一つだとは思いますが。

で、現場ではPHP以外の言語で書かれたツールを使っているケースもあるんじゃないかと思います。特にNode.js系のツールは使われていることが多いかと。 もちろんPHPがバックエンドのAPIだけ(HTMLレンダリングしない)で、フロントエンド全部Node.jsみたいなケースはリポジトリも分かれているし、必要ないかもしれないです(後述のComposer Scriptだけで良い)。ただまだまだサーバサイドレンダリングのWebシステムはたくさんあります。そこで、そういったツールも同じ言語でやれたら良いよね、ということで、ComposerやRoboの出番だと思っています。

Composerは、もうデファクトと言ってもいいPHPのツールで、依存関係を管理するツールです。以下の代表的な特徴があります。

  • コンポーネントをインストールする
  • コンポーネントをソースコードから利用する:オートロード
  • コンポーネントのバイナリーを実行する:スクリプト

Composerのスクリプトは、もちろんカスタムスクリプトをPHPクラスで定義できるのですが、本来は after install などのフックように考えられているので、タスクランナーとしてはちょっと足りません。

そこで、Roboと組み合わせてみましょうということです。

ここからはデモになります。リポジトリの README に詳しい説明が書いてあるので、そちらを見ながらコードを動かしてみてください。

PHPカンファレンス関西2017デモプログラム

裏話

セッションがちょうど30分かかって、質疑応答の時間作れなかったので、もくもくスペースに居るので、質問ある人は聞きに来てください、という Ask for Speaker にしてみたのですが、誰も来ませんでした(実は寂しかった)。 たまたまそのときLT(当日募集)と懇親会LTの内容が書き出されていて、懇親会LTが1枠空いている状況になってました(本編キャンセルで懇親会から1枠移動したため)。

で、それとは関係なく昨年の思い出と、以下の進捗を @tanakahisateru さんに報告していたら、懇親会LTやったら?みたいな話になり、やりました!

スライドは勢いで5分ぐらいで作ったものなので、まぁ良いとして、実際に作ったものが以下になります。

https://github.com/polyester-cms/polyester

これはまだプロトタイプ版で、できも良くないのですが、今後ちゃんとした仕組みでやっていきたいと思っています。

大阪を堪能

最終日は恒例の ねぎ焼き やまもと へ。 今年も東京のPHPerを3人引き連れ、梅田エスト店にやってきました。 そのあと @hamaco とビール飲みに行って、聖地タイガースショップで買い物をして帰京しました。

さいごに

今年もPHPカンファレンス関西楽しかったし、たくさんの刺激をもらいました。ありがとうございました。

CHIRIMEN & IEEE Tokyo Young Professionals hackthon

7/8と7/9に開催された IEEE Tokyo Young Professionals hackthonCHIRIMEN コミュニティとして協力してきました。

CHIRIMEN コミュニティでは、このような活動に興味のある方の参加をお待ちしております! チューターの方が事前講習会でやった内容を十分に把握していてくれたので、私たちはほとんど座っているだけでした。

2日間のtwitterまとめ

アイデアソンのやり方や、今の学生がどんなことを考えているかなど知れて、とても楽しかったです(日本酒も美味しかったなーw)

CakeFest2017に参加してきた

昨年は国内のPHPカンファレンスをすべて廻ることにしたので、2年ぶり。 なんと2年前と同じN.Yで、同じペース大学です。

CakeFest2017最初の驚きは出発直前

ということで、ランサーズがスポンサーになっていました。すごい! ちょうどCakeFestと同じ日に行われたPHPカンファレンス福岡で、CakePHP3へのアップデート発表していましたね。 最近はCakePHP3のコードリーディング勉強会も開催していて、CakePHPコミュニティの活発さが増しているように思います。

2年ぶり2回目のN.Y

さて、前回は後半に1日休みを取っていたのですが、ちょうど休みの日と、東京に戻る日が雨だったのですが、今年は到着した日こそ寒かったものの、2日目から帰るまで真夏の暑さでした…

N.Yに浮かれたので、ヤンキーススタジアムで野球を見てきました。

カンファレンス初日

初日で印象に残ったこと。

世界情勢を反映したCakeFest

カンファレンス最初のKeyNoteはORMの主開発者でもある José Rodríguez だったのですが、世界情勢を反映しオンラインでの講演となりました。 世界情勢とは入出国に関連することであるそうなのです。昨今の世界情勢を考えるとなるほど、難しいですね。 直接会えないのは残念でしたが、内容はビデオで公開されているので、閲覧可能です。

CakePHPの開発を通じで得たOSSとの関わり方が話されているのですが、チーム開発にも役立つTipsがたくさん含まれていましたので、まだの方はぜひ。 今後のCakeのコードをこういう風に変えていこうかな、みたいな話も含まれています(メソッドチェインにする理由など)。

流行りのキーワード多め

Dockerや、CI/CD、PWAからコンテナ管理まで、技術的には国やコミュニティは関係なく、よく聞く話題が多いです。 初日にLTもあって、どうしようか悩んでエントリーまでしたのですが、先着順のため後2人で時間切れ…(ちなみにPHPカンファンレス関西でも話す予定だったRoboを紹介してみる予定でした)

動画は公開されていないのですが、Mark StoryのLTがすごく興味深くて、どうやってOSS活動に時間をとっているか、という内容で、生き方がカッコイイと思いました(公開されないと思うけど、公開されたらみて欲しい)。

Mixer

MixerはLTで発表されたのですが、Ovenに続く新しいCakeDCの取り組みのようです。OvenはCLI(composer)をほとんど使わずCakePHPアプリの初期状態を構築するのに役立つわけですが、そこにプラグインを追加するためのUIです。 将来はマーケットプレイスの要素も見据えているそうですが、まだ具体的な計画はないようです。 CakeDCとしては何かビジネスの種になれば良いということなのかなーと。

その他で興味深かった話

RealWorld というTodoMVCのCakePHPバックエンドサンプルで、いろいろなフロントエンドとバックエンドのサンプルプログラムが提供されているので、比較評価および他の言語やF/Wでどう書くの?的な学習に適していそうです。リンクをたどると他のバックエンドのコードやフロントエンドもあります。

IDE Helper plugin for CakePHP。PHPStormおよびIntelliJで動くプラグインということで(私は使っていないので試していないのですが、デモを見た感じではかなり良さそうでした)。

初日の最後はソーシャルパーティ

カンファレンス初日の夜は恒例のソーシャルパーティ。2年前と同じBarで行われました。 いつものカンファレンス参加者やコア開発者と話したりする貴重な時間です。 そういえば何も写真撮らなかった!!(2年前は撮っていた)。 いろいろな話をして、その後ピザ食べに行ってホテルに戻りました…(日本のカンファレンスとあまり変わりません)

カンファレンス2日目の様子

2日目で印象に残ったこと。

カンファレンスが始まらない

こう書くと、CakeFestって毎年そんな話してない?と言われるかもしれないですが、参加者は少なくても割と時間通りには始まっていますw。 なぜ始まらないかというと、ペース大学のAV担当者が来ていなくて、プロジェクターの出し方がわからない!ということ。

さて、日本との時差13時間で、ライブ配信を見ていた方は気になってしょうがなかったでしょうね。この時点での遅れはSNSなどで通知もされていなかったし。 運良く、私は @kunit さんのつぶやきを見つけ返信しておきました。 その後、発表順番を変更したり、休憩時間を変更したりと慌ただしくもなんとか始まりました。最終的にはCakeFestのSlackチャンネルで修正されたスケジュールが発表されました。

いよいよ真打登場

さていよいよ Mark Story のセッションです。CakePHP4への展望が語られます。 と、その中でCakePHPのLTSが発表され、これも大きいニュースと思います。 動画が公開されているので、ぜひご覧ください。

その他で興味深かった話

今回 N.Y ということで、様々なオーガナイズをしてくれた地元の @savant のセッション。 CakePHPに関連するインフラがどのようになっているのか。お金がないのでOSSで頑張っているよ、という内容で、みんなが開発する上でも有用な情報が満載です。ぜひ!

恒例の

Real Cake が出ました!!

集合写真

最後にみんなで集合写真を撮りました。 初日にTシャツをもらうのですが、そのときに2日目に集合写真撮るから来てきてね、と受付で伝えられます(ので、みんなちゃんとTシャツを着ている…はずw)

今年は @PhpNut が特に楽しそうで、自撮り写真を公開しましたw

さいごに

CakeFestはライブ配信もだいぶ良くなって、日本で見ていてもそれほどストレスはないようです。動画も公開されるので、後追いは可能です(クオリティもいいです)。 ではなぜ現地に行くのか! それはコアデベロッパーと直接話して、CakePHPがどのような思いで作られていたり、どんなコアデベロッパーが作っているのかを体感することで、より深く知れたり、CakePHPへの想いが増す、ということに尽きます。 もちろん休憩時間などに、直接 Mark や(今回来てなかったけど) Jose に質問することができるのも CakeFest だけです。 また日本での利用シーンやコミュニティの活動を知ってもらうというのも重要です。

実際に到着した日には、コアデベロッパーの Brian が「近所のビアバーで飲んでいるから」というので参加しましたし、カンファレンス初日はパーティ、2日目の夜もJoseやMarkに誘ってもらい飲みに行きました(飲んでばっかりですね!w)。実は2日目夜は体調を少し崩していて、あんまりビール飲めなかったのですが、楽しい夜でした(私の開発した Toilet Evolutionが大ウケだったので自慢しておきます)。 コアデベロッパーと知り合いになると、CakePHPのコードを修正してPRを出すときも、なんかお互い親近感が湧くじゃないですか!(個人的主観です)

今年は以下の写真(+1名ワークショップだけ出られていた方がいました)のように4名(+1)ということで、最近毎年このぐらい日本からの参加者もいて楽しいです。

そうそう、いつも来年の場所を言ったりするのに、今年なかったねーなんて話をしていたのですが、 Nashville だそうですよ(Larryがスライドに入れるのを忘れてたそうだ)。

みんなで行けると良いですね!

初夏のJavaScript祭りに参加して、PolymerのアップデートについてLTをしました

5/27に開催されたJavaScript祭りに参加しました

ためになるセッションが多く、とても良いイベントでした。 私は前回(秋のJavaScript祭 in mixi 〜秋のJavaScript収穫祭〜)と同様にLT枠へ申し込み、この半年でおきたPolymerのアップデートを発表しました。

前回のスライドは、2016年まとめ記事よりリンクがあります。

ちょうど、Google I/O 2017が終わった後だったということもあり、その発表をふまえた内容にできたのが良かったです。

これから、どんどん2.0も触っていきたいですね!

Polymer の日本語ユーザー交流用のFacebook Groupを作りました

Polymer に興味がある人の参加をお待ちしております。

Polymer JAPAN Facebook Group

今年になって毎月 Polymer.co-edo というコミュニティ(勉強会)を開催しているのですが、 もう少し広がりがあると良いな、というのと、ここへ来て大きいニュースが2つ続いたのも背中を押してくれました(たかだかグループ作っただけですが)。

まずは GE の IoT プラットフォーム Predix のUI部分で Polymer 使われているという記事。そして続いて

YouTubeの新しいデザイン(dark mode)はPolymerでrewriteされているという記事。

これまで Polymer でできている代表的なサイトは Google I/O 2016 ですよ!ということが多かったので、この2つのニュースは Polymer 何それいいの? みたいなところを超えるのに有効な事例になるな、と思っています。 (古いIEのMSサポートが終わったのもあるかもと思っていますが…)

Polymer.co-edo では今月も勉強会を開催しますので、上記の記事で Polymer に興味を持った方もお待ちしております。 2月はGoogle Mapの使い方、3月/4月はFirebaseアプリを作ってみるハンズオンを開催しました。

仕事では Polymer を1年と8ヶ月ぐらい使っています。 昨年「秋のJavaScript祭り」でLTした内容

からPolymerやWeb Components周辺で起きたアップデートを加えて「初夏のJavaScript祭り」で再びLTをします。