ラベル 開発系勉強会 の投稿を表示しています。 すべての投稿を表示
ラベル 開発系勉強会 の投稿を表示しています。 すべての投稿を表示

2012年6月24日日曜日

Webデベロッパ ハッカソン at PoRTAL Shibuya に参加してきました

@mon_sat です。
金曜日から土曜日にかけて行われた Webデベロッパ ハッカソン at PoRTAL Shibuya というイベントに参加してきました。

金曜日の夜に開始し、翌午前中まで開発そして成果発表をして終了という、比較的負担の少ないハッカソンです。

ちなみにハッカソンとは hack + marathon ということで、各自が開発をしつづけるというイベントです。たいていは夜通しおこなわれるところがマラソンっぽく体力勝負なわけです。

デザイナー向けCakePHP勉強会でも使わせていただいた PoRTAL Shibuya に10名以上の開発者が集まり、それぞれ普段ではなかなかできないようなことを中心に開発してました。
CakePHPの勉強会等で知り合った方も何人か参加していて、CakePHPに関する質問をしあったりする光景も。

わたしも前日から開発していた monsat/jquery.linkbox に加え monsat/Ogp · GitHub と、 MontBlanc-Sucks/HtmlCache の追加機能を作りました。じつは来週の仕事の準備なんですけど(笑)

HtmlCacheは、もともとMatt Curry氏が作成したHTML等の静的ページを書き出すためのプラグインです。
その後 sams 氏がCakePHP2.0対応を試みていたようなので、forkしてその続きをすでに開発していたのですが。
この日は「任意のディレクトリやファイルを削除する機能」を実装しました。
これによりサイト全体のキャッシュを削除したり、任意のフォルダ以下のキャッシュを削除というような利用が可能になります。

詳しくは別途ブログにまとめたいと思いますが。

話をハッカソンに戻し。
やはり、こういうイベントで他の方と開発をおこなうというのは、非常に刺激になります。
詰まったときに他の方と話をすることで解決の糸口を見つけたりもできますし。

そして、成果発表する時間があるので、「何かしら作る」というモチベーションも高まることでしょう。
どんなに些細なことでも、それが自分にとって有益であれば良いのだと思います。
こういうイベントに積極的に参加することで、開発スキルや、開発の基礎体力がついていくのかもしれません。

まだ参加されてない方は、事前に登録しておくと良いですね。
というわけで次回のイベントでお会いしましょう。

他の参加者のブログ記事

このエントリーをはてなブックマークに追加

2012年5月30日水曜日

8時間耐久でPHPUnitについて勉強してきたよ

というわけで @mon_sat です!

PHPUnitについてのセッションということで気合い充分で参加してきました。
この8時間耐久シリーズはノマドのなかのノマドであり、安藤の中の安藤である@yandoさんが、無償で行っているセミナー(?)です。
コワーキングスペースのなかのコワーキングスペースである下北沢オープンソースカフェにて、午前中から夕方まで、みっちりPHPUnitについて学んできました。

PHPUnit使ってますか?
普段テストを書いていないとは言えませんが、胸を張って言えるレベルではないわたし。
独習でやってきていると基礎体力の点で充分とは言えないもの。今回はみっちりと筋トレしてこようと思い参加した次第。


午前中はPHPUnitのインストールが中心。
しかしそこはサービス精神旺盛の@yandoさん、普通にインストールするだけではありません。
PyrusというPEARの環境を整えるソフトの説明とそれを利用するメリットも教えてくれます。

わたしが理解したところによると、PEARでいろいろinstallしようとすると、全ユーザーに影響する形でインストールされてしまうという問題があるそうです。
自分の環境のみで特定のバージョンのPEARを使用したいといった場合など、普通にPEARを使用すると生じる問題を解決してくれるナイスなツールですね。

午後からいよいよ本格的にテストについてのお話。
まず簡単なclassのファイルを見て、それに対しテストを書いていきます。

基本的なPHPUnitによるテストの書き方は

という具合。
これでSmapleクラスのanyMethod()メソッドが実行され、期待する値(ここでは'正しい値')と比較されます。
assartEquals()というアサーションは == を用いた比較をおこない、同値であればめでたくpassedとなります。
実行は、コマンドラインから次のように行います。
$ phpunit tests/Sample.php
ちなみにこうすると、結果が緑(赤)のバーで表示され見やすくなります。
$ phpunit --colors tests/Sample.php
テストに失敗した場合は、失敗したというメッセージとともに「最後の引数で与えたコメント」が表示されます。
複数のテストを書く場合に分かりやすくなりますね。

その後さまざまなアサーションの種類を教えてもらいました。バージョンアップのたびに増殖中とのこと。
$this->assertCount()とか。

また setUp() と tearDown() を利用して、共通処理の説明も。
上記のサンプルであれば。

という具合。これでテストメソッドがtestOther(), testAnother()のように増えていってもそれぞれのメソッド内でいちいちインスタンスを生成するという重複が避けられます。DRYですね。

ちなみにtearDown()の 'tear' は、涙の「ティア」ではなく、破るという意味の「テア」だそうです。
tear down で「建物等を取り壊す」という意味になるそう。
いやあ勉強になります。こんなこと自分で勉強してたら絶対に分からないですからね。
(この後、休憩中にmacのsayコマンドでいろいろ発音させて遊びました)

その後聞いたことも無い機能を次々と教えてもらいました。

まずはアノテーション。
テストメソッドの前に、指定された内容を書くことで、テストの実行を制限したり、特殊なテストを実行できるようになるとのこと。

他にもこんなアノテーションも。かなりDRYに記述できますね。(テストについてはDRYすぎるのも善し悪しだと思いますが、こういうのであれば何をテストしているかも分かりやすく活用したいところです)


PHPUnitの @dataProvider アノテーションを使用することで配列内のデータでテストを反復して実行可能

@mon_sat@mon_sat
テストの書き方(@は半角)
合計4回のテストが実行される

<?php
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}

public function provider()
{
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}

#phpunit


続いて、PHPUnitが行う気の利いた機能。
なんとPHPUnitではテスト実行前にスーパーグローバル変数を退避させ、テスト実行後に書き戻してくれるのです!
テストケース内で書き換えても影響は無いんだそう。毎度setUp()とtearDown()で $this->_session = $_SESSION; して $_SESSION = $this->_session; する必要はまったくないんだって。驚愕です。

で、ふと気になって、CakePHPのConfigure::read()できる設定はどうなんだろうと、CakePHPのソースを見てみると!




案の定、同じように処理をしていました。
これは便利すぎますね。


この会では、実際に手を動かして何も無いところからテストを書いていったり、逆にテストが与えられclassを作っていくというプチテスト駆動開発を体験できたりと、非常に盛りだくさんの内容でした。

というわけでまた血になり肉になったようです。
@yando さんどうもありがとうございました!
このエントリーをはてなブックマークに追加

2012年4月26日木曜日

第2回Webデザイナー向けCakePHP勉強会とワークショップ #3

今回の勉強会では、CakePHPの使用が初めてという方も何人かいたため、ワークショップを開催しました。

講師は、WebデザイナーのためのCakePHPビューコーディング入門 の著者の滝下 真玄さん、原 一浩さんのおふたり。

今回のポイントは、何といってもインストールから指導しCakePHPの簡単なアプリを作るところまでフォローしたという点。

なにごとも始めの一歩が一番躊躇します。
右も左も分からないまま、とりあえず試そうと思っても、インストールでつまずいてしまい、本質のところまで到達せずに終了というのは良くあることです。

CakePHPはRuby on Rails と違い、その名の通りPHP製ですから、インストールも簡単です。
とはいえそれすらままならないユーザーのために、今回はインストール指導のコースも用意しました。


そしてインストール後はいっきにアプリの作成へ。
今回は本ではフォローされていない、カラムの追加といった実践的な内容も学べたようです。
本に書かれた内容だけでは物足りないという方でも満足できる内容ですね。

今回使用したテキストは、もちろんこちら。



好評なだけに、事前購入者が多かったです。

ワークショップの雰囲気を知りたい方は、PoRTAL Shibuyaのfacebookページの写真をご覧ください。

今後も定期的に開催していこうと思います。
このエントリーをはてなブックマークに追加

2012年4月24日火曜日

第2回Webデザイナー向けCakePHP勉強会とワークショップ #2

昨日途中になった勉強会とワークショップのお話です。

今回も勉強会後は恒例の懇親会を行いました。
会場を提供していただいた PoRTAL 渋谷 さんより20時以降であればということで勉強会会場でのビアバッシュを許可していただきました。

勉強会の模様と懇親会の模様はPoRTALさんのfacebookページで見られます。

わたしが主催する勉強会では、基本的に懇親会を行うようにしています。

理由のひとつは、勉強会は単に勉強する場ではないということです。
勉強がしたいのであれば、ひとりで図書館や喫茶店でも可能です。
勉強会というスタイルは、有志によるスピーカーがいて、そして、そこに集まる参加者がいて成り立つもの。

最近では勉強会をUstream等で配信することが多いですが、それらを見てもかなわないことが、参加者やスタッフとの交流です。

わたしが過去参加してきた勉強会では多くのケースで交流する場を設けていました。
この交流こそ、勉強会に参加する、ひとつの意義だと思うのです。

そして可能であれば、懇親会会場は勉強会会場と同一が望ましいですよね。
立派なお店を予約して行うのも良いのですが、会場をささっと片付け、缶ビールとピザなどで手作りに実施するのも良いのです。

なかなかそういう会場をご提供いただく機会は多くありませんので、今回は大変助かりました。

おかげで和気あいあいとした雰囲気で和やかに交流することができました。
勉強会中は参加者の方々に気を配ることが難しいことが多いので、懇親会でようやく参加者の方々の顔を見られることもしばしば。

今回は普段良く利用するセミナー形式の会場ではなく、アトリエのような場所で、より交流しやすかったと思います。
こういう場所で仕事をしてみたいという方は、今ならキャンペーン料金で申し込めるそうですので、ぜひどうぞ。

あら、ワークショップについては、また明日にでも。それでは。
このエントリーをはてなブックマークに追加

2012年4月23日月曜日

第2回Webデザイナー向けCakePHP勉強会とワークショップ

土曜日の勉強会の余韻の残る @mon_sat です。

4月21日(土)に第2回Webデザイナー向けCakePHP勉強会を開催しました。
昨年7月の第1回から随分と間が空いてしまいましたが、本当はずっとやりたかったんです。

もともとこの勉強会はふたつの狙いがあります。
ひとつは、CakePHPに興味がある方に対しCakePHPを知ってもらって、もっとたくさんのひとに使ってもらいたいというもの。
もうひとつはプログラマーとデザイナーが一緒に(CakePHPで)Webアプリを作成するときに、デザイナーさんがCakePHPについて知ることで、より良いものが作りやすくなるだろうと、その橋渡しをするというもの。

後者はたとえば、デザイナーさんが作成したHTMLをCakePHPのビューに変換した後、クライアントからデザインの修正依頼がはいったとき、元のHTMLではなくCakePHPのビューを編集できたら全体の仕事量は減るでしょう。
同じHTMLの修正にも関わらず全体として2重の作業が発生してしまうと、本来するべき他の作業に影響がでないとも限りません。

反対にデザインのベストプラクティスが分かればCakePHPに取り込むこともできるかもしれません。

デザイナー/プログラマーというのは関係なく、CakePHPに興味のある誰しもがCakePHPのコミュニティの一員でありコミュニティを支えていると思うのです。

このコミュニティこそがCakePHPの強みのひとつであり、興味のある方が気軽に参加できるイベントになれば良いなと思っています。
もし勉強会自体に不慣れな方がいても、そういう人にも参加してもらいたいですし。


今回は勉強会の初っ端に「座談会」ということで「これからCakePHPを利用して何かを作りたい」というかたを交え、CakePHPについての疑問を解決するという試みを行いました。
CakePHPに限らずフレームワークは、まずその思想に惚れ込むというのが効率的に学習していく秘訣です。
今回はあまりご紹介できませんでしたが、Ruby on RailsやCakePHPの思想を意識することは学習の手助けになることでしょう。
(以前紹介した、37signalsのGetting Realも同様に読んでおくと良いですね)


セッションの方はあまり準備期間の無いままに行ってしまって反省点の多いところです。
とはいえその限られた時間で用意したとは思えない素晴らしい出来でしたので、ぜひご参加されなかった方も見てください。


第2回Webデザイナー向けCakePHP勉強会(ビューの基本) | ZENPRE(ゼンプレ)
No Helper No Life | ZENPRE(ゼンプレ)
第2回Webデザイナー向けCakePHP勉強会(テーマ機能) | ZENPRE(ゼンプレ)


懇親会とワークショップについてはまた明日書きたいと思います。

よろしければ次回もやりたいと思いますので、ご参加ください。それでは。
このエントリーをはてなブックマークに追加

2011年10月17日月曜日

PHP祭り2011に行ってきました

というわけで行ってきました「PHP祭り2011」
@mon_sat です。

あれ?むしろ、PHP祭りには「行ってはいけない」んじゃなかったの?というかたもいると思いますが。
案の定運動会は延期になったのですが、翌日ではなく翌週に延期という驚愕の事実が判明したのが、当日の朝7:30の延期決定時。
「だったら今から行っても午後には着くのでは?」ということで、
それから急遽スタッフの方に連絡を取り、参戦を決めました。

PHP祭りを簡単にまとめると、こちらの動画となります。



とりあえず再生しながらどうぞ(笑)

昨年2010年もハイテンションな方が約1名いたという記憶があるのですが、今年はそれ以上にハイテンションな方がいました。コアデベロッパーに(笑)


突然大音量で「Epic Sax Guy」をエンドレスで流し、会場を笑いの渦に包み、祭りが終わる頃にはすでに全員の頭の中でリフレインしているという洗脳ぶり(笑)




帰りの道中ですでに曲を買った方もいれば
お疲れのはずの別のコアデベロッパー@predominantも


@cakephper I can't sleep. I hear epic sax guy looping in my head.Sun Oct 16 13:45:05 via Twitter for Mac


ということで眠れないらしい(笑)

今回の祭りを総括すると「Epic sax guy 10 hours」ということで異論は無いのではないでしょうか?


そんなハイテンションでパワフルな@gwooですが、イベント終了後はさすがに限界だったようで、ロビーのソファーで体を休めていました。
祭りを盛り上げていただいたお礼を言うと、彼の時計は「深夜2時」を指していました。
土曜日からほとんど寝ずに楽しませ続けた彼の体内時計は、実は深夜2時だったのです。
本当に頭が下がります。

残念なことに今年は祭りの前後にコアデベロッパーの方々と食事をご一緒することができませんでした。
次回はぜひ日本を楽しんでもらえるように、アテンドしたいと思います。

コアデベロッパーのみなさん、そしてスタッフの方々、素敵なイベントをありがとうございました!
(えっと、ブログの内容が動画の紹介で終始してしまったので、また祭りのエントリー書きますw)
このエントリーをはてなブックマークに追加

2011年10月6日木曜日

むしろ、PHP祭りには「行ってはいけない」

まずはこちらの写真をご覧ください。(2010年のPHP祭りにて。写真は@lllnorikolllさんより拝借)
CakePHP、Symfony2、Lithiumの各コアデベロッパーがにこやかに並んでいるように見えます。
が、実は全員無表情な写真を「高度な写真加工技術」で修正しています。
実際に拡大すると修正された箇所が確認できることでしょう。





というわけで、タイトルは釣りです。本当にありがとうございました。





こんにちは。
@sio_19851001 さんからバトンが来ました @mon_sat です。
昨年PCも持たずにハッカソンに参加した @sio_19851001 さんの記事(PHPMatsuriは、怖いところじゃないんだよ。)を読むと、確かに怖いものは無くなります(笑)

phpmatsuri2011バナー




「以前は勉強会すら参加してなかった私」が、個人的にこのイベントでどんなふうに変わったかを、書いていきたいと思います。
(なお正式表記はおそらく phpmatsuri ですが、ここでは「PHP祭り」と表記します)


リレーブログを読んでみると、PHP祭りで行われることが「去年以上に」盛りだくさんだと気づきます。
よしおかひろたか氏の基調講演、各セッション(増井雄一郎さんによる Titanium Mobile 、Graham Weldon による CakePHP 2.0 、Fabien Potencier による Symfony2 、Garrett Woodworth  による Lithium )および、ニフティクラウドを始めとした各スポンサーのセッション、テストワークショップ、夜に開催されるという「謎の」闇PHPMatsuri(って何??)、そして各所で開かれるワークショップ諸々。

そのうえで、メインはもちろんハッカソンですから、次の日の発表会(LT大会)があるのです。


えーーっと。あれ?却って、お腹いっぱい???


考えてみれば去年も同じくらい内容が濃かった訳です。
しかし参加してみたら「すごく楽しかった。明日も明後日も続いたら良いのに」と、思ったことを覚えています。

tweetを拾ってきました。

こんなにエキサイティングな2日間は久しぶりです。お会いした方々、本当にどうもありがとうございました。そしてお疲れさまでした! #phpmatsuriSun Oct 03 13:22:48 via HootSuite


「こんなに盛りだくさんでも、自分が興味があるのは、ひとつかふたつだしなあ。参加するメリットはあるのだろうか?」と思っている方はいませんか?

なぜPHP祭りは参加者 *みんな* が楽しめるお祭りなのか?
この疑問に答える前に、私の経験を少しだけ。

勉強会というものに参加したことの無かった私が、初めて参加したのが2009年に開催されたCakePHP祭り(CakeMatsuri)でした。
ワークショップとカンファレンスの(金・土)二日間の構成で、わたしはカンファレンスのみに参加し、CakePHPについていろんな情報収集をしたものです。
ワークショップの方はコミュニティのメンバーが講師やサポート役となり、実際に手を動かして勉強するタイプで、カンファレンスの方は主にコアデベロッパーの方々を海外から呼びCakePHPの新バージョン等の話を聞いたりCakePHPとは直接関係のないトピック(NoSQL等)の話を聞きました。

CakePHP以外の話も聞けたことで、カンファレンスはものすごくためになったのですが、わたしがそれ以上に印象に残っているのは「カンファレンス後の懇親会」
パーティ形式の懇親会で参加者が交流するのですが、初参加でもすぐに馴染める、和気あいあいとした雰囲気がありました。素敵なコミュニティがCakePHPの良さを象徴しているような気がします。

CakePHP自体の知識を得つつ、コミュニティの方々との交流も図れ、さらにはコアデベロッパーと「日本で」話をすることができるという。
こんな素敵なイベントに参加するチャンスは滅多に無いでしょう。


そして翌2010年。CakePHP以外にもsymfony、Lithium、CodeIgniter、Zend Framework等など。枠組みを一気に拡げ、名前がPHP祭り(PHP Matsuri)と改まりました。
さらには「ハッカソン」ということで、一気にイベントの内容がパワーアップ。
このころには勉強会にはいくつも参加していたのですが、ハッカソンについては参加する機会が無く、またまた絶好のタイミングで開催されることに。

会場が私の自宅から比較的近かったこともあり、2010年はスタッフとして当日、受付け等でお手伝いいたしました。

ひとりハッカソンして作ったアプリがCakePHP賞の2位となり、Pocket詳解 CakePHP辞典とNiftyクラウドの無料券もゲットしたり、それがきっかけでLithiumのイケメンコアデベロッパーのjoelに「プレゼンよかったよ」と言われたり。ええ。お世辞だとは思いますが、それが何か?

ハッカソンが初めてなら、勉強会のような場所でLTとはいえ発表するのも初めてでした。
にもかかわらず、こんな光栄な結果となり嬉しい限り。
今年初めて参加される方も、おそらくちゃんと準備できれば注目されます。目立てば私のように良いことあります。場合によっては参加費取り返すような商品だってありますし。

これは後に別勉強会ででてきた言葉ですが「せっかくイベントに参加するなら、目立たないともったいない」とのこと。


1年目で「こんなチャンス滅多に無いから参加しないともったいない」と知り、2年目で「どーせなら、ある程度は、目立たないともったいない」と分かりました。



でも、今思えば、もっと積極的になれば良かったと後悔しています。
初参加だから、とか、初ハッカソンだから、とか、関係ないのです。
参加している以上、有名人も初めての人も一緒。
せっかくコード書いたなら、発表しないともったいないです。
(失敗したってどーせ誰も気にしてないし、運良くはまったら商品もらえたりするしね)



一昨年のCakePHP祭りのときは、ワークショップとカンファレンス(お弁当と懇親会付き)で19,425円でした。(わたしはカンファレンスのみなので8,925円)
昨年のPHP祭りのときは、2日間のセッション等に食事宿泊付きで、22,000円でした。

そして今年のPHP祭りも22,000円です。(食事4回+宿泊込み)

イギリスで行われたCakeFestが4日間で$950(2日間のカンファレンスでも$420)ですので、それと比べたら激安な訳ですが、それ以上に、わたしは「この22,000円を払わないのはもったいない」と思っています。

わたしは、今仕事で使っているツール等の多くは、CakePHPのコミュニティを通してその良さを知り使い始めました。
CakePHPがgitで管理されるようになったと知ってはgitを使い始め、テストの書き方を知ってはテストを書き始め、英語が使えないと生きれないと聞いては英語の勉強を始めました。

そのいずれも「今では、無いとやっていけない」必需品です。
ほかにも、この一連のイベントがきっかけで知ったこと、始めたことは枚挙に暇がありません。
それらのきっかけは、すべてこのイベントからなのです。
(slywalkerさんのいう「種を拾いに行くべし」という言葉の意味は深いと思います)

さらに。
今は、コミュニティで知り合ったメンバーとプロジェクトを組む機会が増えました。
仕事の幅が、何倍にも広がったのです。

どれだけ、本業で利益を生んでいることでしょう。



仕事の幅が広がったといえば。
PHP祭りとなって面白いのは、他のフレームワークを使っている方が多く参加されるのです。普段なかなか交流できない方々と話ができ、一般的な勉強会では決して聞けなかったであろう話をたくさん聞くことができます。
(Fusicさんのブログでも「他のフレームワークは使いやすいのだろうか?」の答えが得られるメリットが書かれています)

参加者のなかで、CakePHPもsymfony2もLithiumもTitanium Mobileも全部使っている人はあまりいないでしょう。もしかしたらゼロだと思います。
では、なぜ、それでも参加するのか。
各FW使いが交流することで生まれるメリットがあるからだと思うのです。


ここに「なぜPHP祭りは参加者 *みんな* が楽しめるお祭りなのか?」の答えがあります。
積極的に交流すれば、化学反応が起き、すべての人が今より前に進めると思うのです。



参加者の一覧を見てください。
そうそうたるメンバーです。

ああ、私も参加したいなあ、、、

え?

え?

ええ、、参加未定です。そして微妙です。
4歳のムスメの運動会があるのです。土曜日に。東京で。

それが判明しても行こうと思ってました。終わってから。
でも、万が一雨が降ったら日曜日になるらしく、、、雨乞いに成功して台風が直撃しない限り行けません。


うん、みなさんは、行かなくて良いんじゃないかな?PHP祭り。
楽しくないよ、多分。いや、間違いなく。
むしろ、PHP祭りには「行ってはいけない」


つまんないと思うからお勧めしないけど、どーしても行きたい人は止めないから。
チケットは以下のページで販売中だよ。
http://2011.phpmatsuri.net/phpmatsuri/paypal
Paypalアカウントがあっても無くても買えるって。(他の方を紹介したらキャッシュバックもあるって)

まずは、↑のページで、twitterによる認証をして基本情報を書き込みましょう。


あ、最後に注意点が。
2009年のCakePHP祭り。わたしがワークショップに参加してない理由だけ。
それは、油断してたら、いつのまにか売り切れてたから。泣く泣くワークショップ諦めました。
興味のある人は面倒くさがらず、とっとと購入しておくと良いと思います。
駆け込み需要で売り切れてしまっても「後の祭り」ですから(お、上手いこと言った)


もうひとつ蛇足ながら、誤解の無いように。
冒頭の画像は、加工されたものではありません。コアデベロッパーが本当に楽しんでいるのが分かります。
(冒頭の釣り画像ではなく)ちゃんとサイズ変更した画像を置いておきますのでぜひご確認を。



というわけで??リレーブログを終了します。
今日は19時からCakePHP2.0勉強会を株式会社VOYAGE GROUPさん(株式会社ECナビより社名変更)で行います。
※ @konsan と @hiromi2424 、@cakephper さんとともに開催します(その他多くの方に協力してもらっています)

明日は、その @cakephper さんです。
(二日酔いに気をつけて)更新よろしくお願いしますー。

phpmatsuri公式サイト

このエントリーをはてなブックマークに追加

2011年7月26日火曜日

CakeCafe と デザイナー向けCakePHP勉強会の懇親会

というわけでMacBook Air を買ってほくそ笑む@mon_satです。
思えば1台目の白いmacbookもBicCamera有楽町店内のApple製品売り場でしたが、結局3台目となる今回も、急遽土曜日に入荷していると知り、前金支払済の某量販店の予約を断ってまで、買いました。


さてさて。
先日のデザイナー向けCakePHP勉強会の記事では漏れてしまったことについて書いてみます。

CakeCafe は、とても素敵なイベントとなった

まずは、CakeCafeから。(ATNDの募集ページ)
きっかけは、思いつきの発言。


デザイナー向けCakePHP勉強会の発表者が決まった。豪華な布陣。さて、そろそろCakeCafeのATND作るか。勉強会前に交流するという画期的な企画wless than a minute ago via HootSuite Favorite Retweet Reply

もともとわたしは、「勉強会と交流(懇親会など)はセット」だと思っていて。
交流がメインということはありませんが、交流しないと、勉強会の面白さは半減すると思っているのです。

単に知識をつけるだけであればUstreamで流れているものも多いですが、やっぱりそれではもの足りません。
できれば、参加者の方に「勉強になった」ということ以上のメリットを感じてもらいたいと思います。

それには勉強会場で周囲の人と話すだけではなく、交流の時間があって、自然と参加者同士で話ができる仕組みがあったら良いのかと思っています。


というわけで懇親会なのですが。
今回は対象がデザイナーさんということで女性も一定割合いるかなと。
となると、「お酒の場で交流ということで良いのだろうか?」という疑問がわいてきた訳です。(後から考えれば *杞憂* だった訳ですが)


で、思いついたのが、勉強会前に交流しちゃえ、というもの。


参加したのは、以下の方々。
@kyouheikarino、@tomix、@NEKOGET、@ken_c_lo、@webarton、@teminanase
と、@konsan、@kara_d、@hiromi2424、@mon_sat。

なかでも盛り上がったのは「ワイヤーフレーム作るなら1px単位で調整したものを作ろうよ」というもの。

わたしは個人的に、Getting Real by 37signals の下記の文章に賛成です。
不要なペーパーワークにさよなら機能スペックから離れるのは良い出発点ですが、そこで終わってはいけません。過剰なペーパーワークもやめます。書類が現実の何かにならないのなら、作らないのです。
作り、書かない。何かを説明する場合は、実際に試作品や模型を作るほうが紙より説得力があるものです。実際のインターフェイスや試作品は、いずれ現実のプロジェクトになるものです。一方紙切れはゴミ箱行きでしかありません。
1つ例をあげましょう。もしワイヤーフレームが書かれていて、実際のデザインに直接ならないのであれば、わざわざ書く必要はないのです。もしワイヤーフレームが実際のデザインにつながっていくのであれば、作ります。
アプリケーションから逸脱した書類は無用です。そこからは何も進展しません。あなたがすること全ては進化の道を辿り実現化しなければいけません。書類が現実に生まれ変わらなければ、死んだも同然です。
(Agileな開発が可能な自社開発ではなく)ウォーターフォールが基本の受託開発では、ワイヤーフレームが、それなりに重要な位置づけとなる場合が多いようです。

というわけで上述の話になったのですが、あまりに同じ意見ばっかりでびっくりしてしまいました。(逆に反対の立場の人の意見も聞いてみたいところ。自分の気づいていない何かがあるかもしれないし)


そんなこんなで、勉強会前に交流するという企画。
普段できない話題、しない話題、が盛りだくさんでした。
次回の勉強会前もやりますよ!
(会社勤めの人はちょっと難しいかもしれませんよねえ。良いアイディアあったらください)


懇親会 #cake_beer

で、勉強会が終わって懇親会です。
事前の予想では(参加率50%で)20人ちょっとかなと思っていたのですが、最終的に30人を上回る盛況となりました。

なんだ皆お酒好きじゃないか。

場所は、ワシントンホテル1Fのビアバー「Billy's STAND」
定員30名のお店に、寿司詰め状態で飲みました。

飲み放題の生ビールですが、ジョッキに1杯1杯、店員さんが丁寧に注いでいくため、30人分揃うのに時間がかかりそう!ということで、ジョッキも持たずに乾杯するという画期的なエア乾杯(笑)

何というか。皆テンションが高かったこともあり、違和感無く、乾杯終了。

参加者の方には、ちょっと狭くて申し訳なかったのですが、結果的には自然と話ができる距離となり、却って良かった感じです。

わたしもいつもと違い、いろいろな方とお話しでき、大満足。
普段はあまりデザイナーさんと話をする機会が無いので、参考になることが多い。
この輪を、これからも広げていけたらいいなあと、そんなことを思った懇親会。

時間的に21時〜23時ということで、遅めで申し訳ない時間帯でしたが、参加していただいた皆さん、ありがとうございました!
「楽しめた」という方は、ぜひ積極的に勉強会へ。
そして、次回の勉強会も是非ご参加を。


なお、お酒が好きな方々は、 #cake_beer というハッシュタグをチェックしておいてください。
飲みたくなったとき、誰かがつぶやき、急遽飲み会が決まるという、そんなコミュニティ(笑)

デザイナーさんも是非気軽に参加リクエストください!一緒に面白いことしましょう!


では、次はCakeRadioGaGaで勉強会の裏話の予定です。明日夜かな??
このエントリーをはてなブックマークに追加

2011年7月24日日曜日

第1回「デザイナー向けCakePHP勉強会」開催!


「ブログ書くまでが勉強会」という名言を紹介したにもかかわらず、勉強会後腑抜けて週末までブログ書けなかった @mon_sat です。

というわけで、7/21の木曜日、かねてより企画していましたデザイナー向けCakePHP勉強会を開催してきました。
(ATND:デザイナー向けCakePHP勉強会)

きっかけは業務上のパートナーである @konsan と @hiromi2424 と話をしている中で出た話。
CakePHPのユーザー層としてデザイナーさん達が入ってくれば、今よりも開発がスムーズに進み、それが納品するクオリティにも影響するだろうと。

それが春先のこと。
そのとき考えたアイディアのひとつが、デザイナ向けに勉強会をやることでした。


デザイナー向けCakePHP勉強会(viewやデザイン部分の勉強会)を今月19〜21日のどれかで開催する方向でやんわりと固まった。 #CakePHP #cake_beerless than a minute ago via HootSuite Favorite Retweet Reply

いろいろあってようやく開催できたのが7月。
いつものようにskypeで話しているときに「エイッ!」と日付を決めてしまいました。


ありがたいことに色々な方にRTしていただき、 @kara_d さんにもご協力をお願いし、無事日付確定。開催の運びとなりました。


話し手について

勉強会の開催を決定した後、CakePHPコミュニティの方々が、お手伝いいただけるということで手を挙げていただきました。

タイムテーブルを見たらLT枠、20:00過ぎからか。リモートでよければできないことも。。 | デザイナー向けCakePHP勉強会 : ATND
http://atnd.org/events/17625less than a minute ago via Echofon Favorite Retweet Reply


@mon_sat 2~30分枠、人いないならどっちかできるよ! #cakephp4dless than a minute ago via TweetDeck Favorite Retweet Reply


@mon_sat スタッフまだ必要ならやりたいです。less than a minute ago via TweetDeck Favorite Retweet Reply

他にもfacebook等で決まったり、それとは別にmentionで申し出をいただいたりしながら、最終的に今回のメンバーに決まりました。
(今回お断りした方すみません。次回はぜひ)


CakeCafe

今回はフリーランスの方(や起業している方)も多いかなと思い、勉強会前に交流するという時間を設けました。

これについては別途書きたいのですが、結果的にスタッフ合わせて10名で開催。
ちょうど良い規模で、楽しい会となって良かったです。

勉強会

さて本番。
今回はさくらインターネットさんのご好意で、無償で会場を貸していただきました。
会場の広さは、定員45人がちょうど良い広さ。

そして設備に驚きます。
まず各席の人が使える電源があります。
無線LANもばっちり。Ustreamを行いながら、各自がwebサイトを見ながら、という環境でも一切遅延無い。(当然と言えば当然ですね、さくらインターネットさんですから)
余談ですが、当日のWifiのパスワード文字列には cake の文字が。スタッフの配慮に感動(笑)

大きなスクリーン&プロジェクターと、マイク等の音響もばっちり。
過去いくつも勉強会出てきましたが、もしかしたら最高の環境かもしれません。



今回は、はじめて勉強会の司会を務めました。
(というか勉強会の主要スタッフになったのは先日のCakePHP2.0勉強会に続いてまだ2回目です)

開催直後いきなり長めのトークがあるのですが、まあ不慣れなところが出てしまい、何というか「まったく参加者の雰囲気をやわらげることができず」(笑)


そんなこんなでメインセッションへ。
内容は各スライドを見ていただくとして、今回のセッションの流れについて説明しようと思います。

そもそも今回の勉強会は「プログラムに不慣れなwebデザイナーさんであっても、CakePHPに興味があり、積極的に勉強したいという方」を対象者の中心にしようと思いました。

そういう方々がどうやったら「CakePHPを好きになってもらえるか」また「CakePHPをより深く勉強しようと思ってもらえるか」を考えたつもりです。

まず「CakePHPについての基礎知識」ということで、「フレームワーク(FW)」や「CakePHP」についての基本的なところからやろうと。
というのも、世の中にはフレームワークはたくさんあり、現在主流のRuby on Rails 系のFWだけでも数多く、PHPに限ってもSymfony、Code Ignighter、Zend Frameworkと、いろいろあります。

私自身が、Ruby on Rails の思想に惚れ込んだからこそ、派生のFWといえるCakePHPに興味を持ちましたし、CakePHP自体の発展の過程も分かっているからこそ、今も業務でCakePHPを選択している訳です。

cakephpに限らずFWって学習時のストレスがたまにしんどくなる。だからこそ学習前に、そのFWを惚れ込むことが大事だと思う。less than a minute ago via Twitter for iPhone Favorite Retweet Reply

この勉強会でCakePHPを好きになってくれる人がいたとしても、学習の途中でくじけてしまってはいけません。
そして、このことは、当然ながら公式サイトでは謳われません。
そうやってくじけて、場合によってはCakePHPを嫌いになる人もいるようです。
それはものすごく不幸なことです。

ぜひ好きになれるフレームワークを選択しましょう。

というわけで、このテーマにぴったりな @cakephper さんにお願いしました。


つづいて、CakePHP(のView周り)についてのセッション。
今回のメインです。
これはもう、ベストセラー書籍『Pocket詳解 CakePHP辞典』の著者の @ecworks_masap さんしかいません。
今回はCakePHPの知識についてのセッションはここだけだったこともあり、ベーシックなところを説明していただくという、使い慣れた方には逆に難しいところをお願いいたしました。

ひとくちにデザイン周りといっても、その範疇は広く、かなり大変だったと思いますが、CakePHPの基本がお分かりいただけたのではないでしょうか。


セッションの最後は、応用編。
今回はデザイナーでありながらCakePHP自体をプログラマー以上に自由に使いこなす @kara_d さんに。
自身の経験をもとにお話しいただこうという我々の気持ちを見透かしていたかのように「MVCのVを極めしWebデザイナーになる」ということで、ど真ん中な内容でお話しいただけました。
このような話は、純粋なプログラマーでは難しいのです。
おそらく、参加者の方も、一番ためになったところだったと思います。


引き続いてLT(Lightning Talk)です。
LTとは5分程度で話をすること。エッセンスが凝縮されるので、短時間でも非常に勉強になりますよね。
今回は、PHPTAL+CakePHPということで @nojimage さんに、つづいて、デザイナーさんが触れる機会の多い Paginator 周りを @ogaaaan さんにお願いしました。

他にも Ktai Library や、Viewについての細かいところ、FormHelperが吐き出したHTMLタグのデザイン等についてもやりたかったのですが、時間の関係でできませんでした。
このへんは次回以降ということで。



全体を通して、スタッフ一同がやりたかったことは。
PHPerのなかでもCakePHPが共通言語となり、いろいろな話がしやすくなったということを感じていて、デザイナー・プログラマー間でもCakePHPが媒介となって共通言語ができれば良いなあと。
その試みのひとつがこの勉強会でした。

勉強会の冒頭でも話をしたのですが、同じくwebサイト(アプリ)を作っているものとして。立場の違いはあれど、より良いものを作るための努力は続けていかなくてはなりません。
私たちスタッフができるのは、CakePHPを知ってもらって、好きになってもらうことです。
ぜひ、CakePHPの魅力でもある「CakePHPコミュニティ」の輪を広げていきましょう。
(今回参加した方々はもうコミュニティの一員ですよ?)

ひいてはそれがCakePHPの発展につながり、(デザイナーさん、プログラマー問わず)自身の業務にも還ってくると思っています。

まだまだ伝えきれない思いはあるのですが、今日はとりあえずここまで。
ぜひ次回の勉強会でお会いしましょう。
See you the next time.








Video streaming by Ustream


発表資料: CakePHPのデザイン周辺(PDFファイル)












勉強会についてのブログ記事

このエントリーをはてなブックマークに追加

2011年6月27日月曜日

CakePHP2.0勉強会で勉強した

@mon_sat です。
先週土曜に開催したCakePHP2.0勉強会のお話。


もともと今月の初旬に、以前から企図していたCakePHP2.0の勉強会をやろうという話を実現することを、いつものメンバーで決めました。
その後もうひとり手伝っていただくことになり、概ね4名で勉強会を開催することに。

この時点では日程だけ(決めうちで)決めたのみで、会場も、内容も決めていませんでした。
(聴講スタイルではなく、実際に手を動かしてもらうワークショップ形式にすることだけは何となく決まっていましたが)

人数もどれくらい集まるか読めず、こちらの想定では20人を超えるくらいだったので、まずは勉強会の参加者募集サイトATNDに、会場・内容未定のまま、30人定員で告知しました。

その後何人かから会場提供の申し出をいただき、最終的に今回の会場に決まりました。
勉強会で大変なのはやはり会場手配だなと再認識。
(トライコーンさん他、提供の申し出をいただいたみなさま、ありがとうございました)

会場が決まった辺りから申し込みが増えてきて、最終的にはキャンセル待ちの方をどんどん繰り上げていき47人まで増加。(当日キャンセルが出てるため最終40~45人程度)

勉強会の様子は別ブログに書くとして、この規模の勉強会を運営するのは初めてのことで、そこで勉強になったことを書きたいと思います。


勉強会の内容を決める


今回はワークショップの講師を務めた@hiromi2424と、司会をしてもらった@cakephperさん、そして@konsanの4人で運営。

まず弊社の事務所で打ち合わせをして勉強会の概要を決めました。(この時点では場所も決まっていませんでした)

メインであるワークショップの講師は良いとして、その他に、セッション・LT(ライトニングトーク)・事例紹介等を行うことを決定。話をしてもらえる人を募集することに。
最悪集まらなければ自分たちでやることにしたら、結局セッションの発表者が集まらなくて自分たちでやりましたけど(笑)

スケジュールは余裕を持って作成。結局、時間は30分程度押しましたが、質疑応答を無くしたことでオンスケで完了。
手配の行き違いでビール到着が、少しだけ遅れたことが悔やまれます。

当日予期せぬことが起こりがちなので、余裕を持ったスケジュールにしておいて、時間が余った時のネタを決めておくというのが良さそうですね。



懇親会の準備


実は懇親会がメインという位置づけの勉強会でした。ハッシュタグも飲み会用の #cake_beer だし。

以下の理由により、事前払い料金制ということにしました。

  • 酒類・食事類の発注量が読めない(今回は勉強会場で懇親会も実施する)
  • 万が一にも会計がマイナスになることは避けたい(当日の発注追加等で)
  • ATND Payment というPaypalを利用した素敵な事前料金徴収システムがある
ということで、事前料金と当日料金を定め、なるべく事前に申し込めるように設定。
したのですが。
当初勉強会参加者のわりに、なかなか懇親会参加者が集まらなくて冷や冷やしました。

結局事前受付締め切り時点で5割程度。
最終的には75%程度の方が懇親会参加ということで、余裕を持って運営することができました。

ATND Payment は非常にお勧めです。

また、当日申し込みもある程度予想できる場合は、やや多めに発注しておいて、当日現金で申し込んでいただいた分で追加発注をかけるというのが安全ですね。
今回は意外と食事のすすみが遅く、足りないかな?という量でちょうどでした。

そのため追加発注として残しておいた分を二次会費用の足しとして寄付することができました。


コミュニティの雰囲気は運営者ではなく参加者で決まる

今回もっとも勉強になったのはここでした。

もともと運営をした我々はCakePHPのコミュニティで知り合った仲間です。
そして各自が、口にこそ出さないものの「この素晴らしいコミュニティの輪を広げる」ことを願っているのです。

だから「勉強になる」のはもちろんのこと「楽しかった」と言ってもらえるようなそういう勉強会にしたいと、わたしは思っていました。

その結果。
盛況の懇親会に、運営としてではなく、いち参加者として参加しながら思ったことは、「やっぱりCakePHPのコミュニティは素敵だ」ということです。
初めての方が割と多めだったにもかかわらず、最初から和気あいあいとした雰囲気でスタート。
それともみんなお酒が目当てだったのでしょうか(笑)

いやいや。
やはり参加者の方々を含め、言葉には表しにくい、良き雰囲気がありました。
(もちろんなかには雰囲気をつかみづらかった方もいたとは思いますが)

わたし自身が、このコミュニティに参加したことで、多くのことを得られました。
少しでもその恩返しができたなら、この勉強会をやって正解だったと思います。


参加者から発表者・運営者へ

勉強会で勉強ができるのは、運営者の方が多かった。

実際ワークショップは自分でも参加者としてやろうとしたのですが、結果的にそれは敵わず、それどころか後半は講師と一緒に解説をするということになりました。

それでも、自分自身がもっとも勉強になったのは。
やはり自分が発表者としても準備をしたことで、より積極的な姿勢で勉強会に臨めたことにあると思います。

自分で経験したから言えますが、いち参加者よりは、発表者として参加するほうが、段違いに得られるものが大きいです。
LTや事例紹介は、当日何人かの方に、急遽お願いしました。(にもかかわらず、皆が聞きたいようなネタが集まり、驚きましたが)
おそらく発表していただいた方々も感じたと思います。
今回発表されなかった方は、次回ぜひ!

そして、発表者から運営者へ。
Ustream配信をしていただいた @suzuki さんをはじめ多くの方に助けてもらいながら勉強会は幕を閉じました。
もしもっと勉強したいということであれば、運営をしてみるというのも一興ですよ。

というわけで一番得をしたわたしからは以上です。
このエントリーをはてなブックマークに追加

Facebookへの「いいね!」ありがとうございます