2011年12月03日
【Titanium Advent Calendar 2011:三日目】バージョンチェック
はじめに
この記事は、@astronaughtsさん企画の「Titanium Advent Calendar 2011」向けに書いています。
ちょっと宣伝1
いきなりで恐縮ですが、過日 Titanium Mobile で制作したアプリがリリースされているので紹介させてください。
このアプリはあたまソフトさんによる企画で、私はプログラム部分だけ担当しました。先に述べたとおり、Titanium Mobile 製です。
クイズサークル等で早押し大会をするときに使えます。
iOS向けリリースになっていて、Andoridではまだ見た目の調整が必要ですが、とりあえず動作はします。私は未確認ですがiPadでも動作すると思います。
プログラム的な出来としてはイマイチ感が否めないとか、広告を出す予定だったのが、某社のSDKが正式に対応していなくて、サードパーティでモジュール化されていたものを取り込んだところ画面遷移で落ちまくる事象が頻発し、諦めた経緯があります。
Ti製アプリコレクターはぜひ買ってあげてください。(無償で開発したので私には特になにも起きませんがw)
今日の本題
で、今日の本題です。
みんないろいろ悩むところだけどあまり議論されていない(と思う)バージョンアップのチェック方法、です。
上記のアプリは、ユーザデータをSQLiteで管理しているのですが、何回か開発中にレイアウト変更をしました。
その都度DBを再作成していたのですが、これはリリース後に同じことをすると、蓄積したデータが消えてしまうのでよろしくありません。
そのため、アプリ内でバージョンを判別して、初回起動時、通常時、バージョンアップ時で処理を分けることにしました。
具体的なコードはこんな感じです(かなり端折っています)。
var V = Ti.App.getVersion(); // tiapp.xml の Version の値が入る var CV = Ti.App.Properties.getString('CV',0); // 第二引数は初期値 if (CV == 0){ // 初回起動時(テーブルの生成とか) } if (CV < V){ // バージョンアップ時処理(データの更新とか。バージョン毎の処理はこの中でやる) } Ti.App.Properties.setString('CV',V); // Version の値を CV としてしまう(次回に備える) // ここから通常処理
これにより、アプリの初回起動時はバージョン値(CV)を持っていないので、初期化処理が行われ、通常時は保持しているバージョン値があるので処理はスルーし、バージョンアップ後の初回起動時にバージョンアップ処理が行われるようになっています。
今日の本題は、そもそもコレでいいのか?もっといいやり方とかわかりやすいやり方はないかを聞きたいのと、コレでいいやって人には使ってもらってフィードバック欲しいなっていう二点です。
三日目なのにすごいささやかなネタで申し訳ありません m(_._)m
ちょっと宣伝2
上記のコードは乗っていませんが、Titanium のサンプルコードの KitchenSink に倣って、排水管(DrainPipe)という名前で Titanium Mobile のサンプルコードを蓄積するプロジェクトをやっています。
最近全然手を入れられていませんが、国際化対応、Android&iOS両対応準備、JSSがどんな感じになるのかを簡単にチェック、くらいができていて、もっとコードを集めたいと思っています。
その他のこともいろいろやってた経緯があって、google code なのですが、最近 git も使える感じなので移動しようかなとか考えています。
これを読んでいる人の中で蓄積に付き合ってもいいぜ、とか言ってくれる方がいらっしゃいましたらご連絡ください。
自己紹介など
最後になりますが、ちょっとだけ自己紹介。
Office L という屋号でフリーランスのSE(みたいなこと)をやっています。Twitter / raki です。
IT業界18年目、フリーになって8年目のごく普通のおっさんで、既婚、子持ち、ヘビースモーカー、ノンアルコール、音ゲーマー(jubeat,REFLEC BEAT,ちょっとだけDDR)です。
現職は某「てれーれってれ」って感じのCMで有名な企業さんの、それとは別の部隊でSE兼PGみたいなことをしています。
業界歴が長いので結構な数の言語(BASICやCOBOLから始まってCやVB,VC,Perl,PHP,シェルも書きますし、もちろんObj-Cも書きます。SGML,xml,HTML,CSS,JSはjQuery派)やDBMS(MySQL,PostgreSQL,Oracle,DB2,珍しいところだとInfoMixとかいじってた時期があります)やOS(Windows、Macはもちろん、Linux系OSってゆうか、SolarisやAIXなどのUNIX OSとか、OS2なども)が使えます。ネットワークもそこそこいけますし、オペレータとしてならFireworksも使えます(このブログの過去記事参照)。ご推察のとおり、立派な器用貧乏です。
たぶん一番得意なのは橋渡しで、ITなんかちんぷんかんぷんな企画屋さんとかデザイナーさん、IT以外は知ったこっちゃないSIerの間で、うまいこと仕事を回したり、調整したり、通訳したりするところで結構真価を発揮するみたいです。
個人的にはコード書いてる時間が一番幸せですけど。
メインの仕事は大抵常に埋まってるってゆうか、埋めてもらっている(超強力で優秀で友人でもある営業さんがついている)のであんまり必要ありませんが、サブのお仕事とか企画やシステムのご相談とか勉強会講師の依頼とかご飯食べに行きたいとか友達になりたいとかデートしたいとか(※ただし艶女に限るww)、もろもろお問い合わせお待ちしておりますw
というわけで、明日は @papetto_tvさんでしょうか?
よろしくお願いします!
2011年09月23日
Titanium Mobile によるスマートフォンアプリ開発勉強会(DevHub西新宿)ってのをやってきました
今日はTitanium Mobile によるスマートフォンアプリ開発勉強会(DevHub西新宿) on Zusaarをやってきました。
今回は好きにやってねスタンスをとったので、あんまり事前準備とかしてなくて、ちょっと前に書いた別館記事を紹介する程度で、後はまだ動かせていない人のサポートをしてました。
内容的には特筆するほどのこともなく、淡々とコトが進んだので、反省と次回に向けてをリストアップ。
- 相変わらずイベントのトピを読まないで参加する人をどう扱うか。
- 読んでこないのは百歩譲って個人の自由としてもいいけど、結果として完全に出遅れてる人をどうサポートするか、は今後の課題。参加するほうもサポートするほうも、完全にあらららって感じになっちゃうからね。。。
- 結果として作業に開きがでてしまった場合にどうするか
- 上の件にも通じるけど、作業の開きができるとサポートしきれなかったり、そこだけ作業できなかったりってことがある。サポート用の初心者勉強会と、既にやってる人向けのハッカソンにしてたので、やれる人は好きに進めてくれればいいし、できてない人はサポートを受ければいいんだろうけど、勉強会的な一体感とか、コミュニケーション量に差が出るのは否めないね。
- 環境差をどう吸収するか
- 今回多かったのは MBA の Lion (あーうらやましいw)みたいだけど、MBP の SL や Windows な人もいて、正直全部の環境、個々の問題には対処しきれないなぁと思った。少人数の初心者をサポートすることには意味がある、と個人的に思っていたけど、継続してやっていく価値があるか、というとそうでもないと思った。つまりたぶん初心者サポート系の勉強会はもうやらないw
- コミニュケーションメインにしたいんだけど、そうありたくないタイプの人をどう扱うか
- そもそもうまくやれてないって言われると返す言葉もございませんって感じなんだけど、双方が非コミュじゃねぇ?w 時間的制約もあるけど、もう少し相互にコミュニケーションとれるようにしたい、と思っている。ただ、それを勉強会には求めてないよって人も多い気もするので、今後の課題かなと。
- おやつの分量w
- ネタのつもりじゃないけど、スイーツ(笑)を準備して女性も参加しやすいようにしてみたつもりなんだけど、女性参加者はおひとり。お徳用パックのおかしを買ってきてってことにしてたのだけど、結果として一人分が結構な量になってしまった。おやつに関しては、なしにするか、持ち出し覚悟でこっちで用意するか、実費程度負担してもらうか、って感じになると思うんだけど、今の所未定。でもおかしあるほうが自己紹介タイムとりやすいし、少なくても何もしてないところよりはコミニュケーションとれてるとは思っているんだけど。
- 思惑の違いをどうするか
- これは勉強会後のアンケートにあった話だけど、ハッカソンのお題を一つにしぼって回答を用意したほうがいい、的なコメントをもらったんだけど、個人的には全くそうは思わないってゆうか、それってハッカソンの意味あるの?って感じで、どうしたもんかと。ハッカソンってやりたいことがある人が集まってこんなんやるぜーとか、こんなんやりたいぜーってことをするのであって、回答は用意してあるからこれやってみ、って言われてやるようなもんじゃないと思うのね。いや、意見は意見で別に全然構わないんだけど、こういった主催側の思惑と外れた思想で参加する参加者との認識とかのずれをどこでどう調整したらいいか、的なことも大きな課題かなと。
個人的雑感を最後にメモっておくと、せっかく多くの(そうでもないけどw)人が集まってる勉強会にきて、他の人とコミニュケーションとらずに帰っていくのってどうなのかしらと。
楽しいのかしら、それで、、、(このネタは少しあっためてから別の記事としてそのうち書こうと思います)
2011年09月16日
google+ API が公開されたそうなのでサンプル動かしてみた時にハマったことのメモ
昨日リリースされたんですかね?Google+ API - Google+ Platform — Google Developersが使えるようになっていたので、早速サンプルを試してみました。
ローカル環境はxamppなのでphp選択ですがあしからずw
各自ドキュメントを読むのは当たり前として、Downloads - Google+ Platform — Google Developersから、 google-plus-php-starter - A starting point for your awesome Google+ PHP Applications - Google Project Hosting に飛んで、スターターの zip ファイルをダウンロードして展開。
ついでに google-api-php-client - Google APIs Client Library for PHP - Google Project Hosting から最新のクライアントライブラリをダウンロードして、スターターの直下に展開。
xamppデフォルトなら htdocs 下に上記ファイルを展開。短いほうがアクセスしやすいので、フォルダ名を gpps(google plus php starterだから)に変更。
Google Accountsでgoogle+APIをonにセット
左メニューの API Access で Create an OAuth2 client ID ってボタンを押して、必要事項を入力。プロジェクト名はなんでもいいみたい。url は https://localhost/gpps/ にセット。
Create client IDってすると、OAuthやったことがある人ならおなじみのなんちゃらキーとかが表示される。
gpps/index.php をエディタで開いて、26行目前後のところに値をセット。
$client->setClientId('ほにゃらら.apps.googleusercontent.com');
$client->setClientSecret('うにゃうにゃ');
$client->setRedirectUri('https://localhost/gpps/’);
$client->setDeveloperKey('ここは迷ったけどconsole のSimple API AccessのAPI Keyをセット');
ってしたら https://localhost/gpps/ でアクセスしてできあがり。
以下、環境差にもよるけどはまったところをメモ。
- ssl を別要件で使っているときは設定に注意
- zend等を入れていて.htaccessがフックしちゃうとかも注意
- curl が必要なので xampp/php/php.ini で curl エクステンションのコメントを解除すること
- http でやろうとするとうまくいかなかったのはなんでかなー
- curl で Fatal error: Uncaught CurlException: 60: SSL certificate problem, verify that the CA cert is OK. Details: error みたいなのがでたら、オプションの問題なので /xampp/htdocs/gpps/google-api-php-client/src/io/apiCurlIO.php をエディタで開いて、112行目の
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
を
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
にしてあげれば大丈夫。でもこれ本番機でこんな設定にするなよ。。?
- あとは、gpps/index.php がsjis 認識されて読み込んだAPIの結果が文字化けするのが気になったら、index.php の head の中に <meta charset="UTF-8" />いれてあげれば大丈夫。
出来上がったらindex.phpで他の戻り値を出力してみるとか、他のAPIを呼んでみるとかすればOK。
でもconsoleで見る限り1日1000回しかAPI呼べないようなので、遊びすぎには注意(遊びでそんなに使う人もいないダロ。。。)
2011年09月15日
jubeat copious 稼動記念ジャケ風壁紙
巷では15日から jubeat の最新作 copious が稼動したようですが、仕事が忙しくて初日参戦できませんでした。
あんまりなので久しぶりに Fireworks の練習がてらまた壁紙を作りました。
まだあまり詳細画像が出回ってないのと、サントラジャケットに複数のバージョン(って言っても星の位置が違うだけ?)があって、どうしようかと思ったあげく、自分がさそり座なので背景の星はさそり座にしてしまいましたw
ちゃんとアンタレスもあるのよw
- 今回は先日話題になってた JPEGmini - Your Photos on a Diet! を使ってサイズダウン
- グラデにノイズをかけて質感アップ(?)
- さらにぼかしもかけてスムーズに(?)
- サントラジャケットよりもかなり下方向にグラデ移動
失敗したなーと思っているのは、
- 星はちゃんと45度倒して◆にしてたんだけど、縦に配置したので■になっちゃったこと
- 星の間の線若干手抜き。もう少しバランスとってもよかった
- 透明パネル部の書き方もうちょい工夫できてもよさそうな。今はベタ塗りから透明度30%くらいで描画モード平均を使用してるんだけど、クリアな質感がいまいち。。。
iPhone ユーザの jubeater さんに使ってもらえれば。
宇宙人壁紙はまた今度。
2011年08月27日
(はじめての)Chrome拡張勉強会に行ってきました。
先日書いたとおり、今日は(はじめての)Chrome拡張勉強会 on Zusaarに行ってきました。
事前にちゃんと学習しましたし、前日には id:kidd-number5 (ID記法って慣れないな。。。)から資料の事前レビューを依頼されて見ていたので、とりたててやることはなかったのですが、先日のATND用拡張のATNDATTをZusaar移行して、ZuATTを作ってみました。
が、どはまりしたので、今日ははまったポイントなどをメモすることにします。
■manifest.json
・permissionsのURL指定誤り
書き換える時に注意すればいいだけですが、最後の*を忘れていてAJAXが全然通らなかった。
・バージョンは初期値に
元にしたATNDATTのままにしておくとよくない。いきなり1.1から始まるとかマジ。。。
■content.js(コンテンツスクリプト)
・間違えるほどのことはないけど、Twitter関係はZusaarで返らないので修正要
・本体に書き出すセレクタもATNDとは違う
■background.html(バックグランドページ)
・これが一番はまったところ。
ATNDのAPIの結果とZusaarの結果のjsonのキーの違い ATND(events)に対してZusaar(event)。。。(いずれも出欠確認API)
最初AJAXリクエストがパーミッションエラーで発行出来てなかったこともあって解決まで30分以上かかってしまった。
これを解決するのに、バックグラウンドページのデバッグの仕方を教えてもらって、リクエストは飛んでる、戻り値をチェックするところ出来てる、でも戻りがnullになる、、、まできてようやっと"s"の違いに気がついたという。。。
ちなみに、ATNDが表記誤り(eventって書いてあるけどevents配列が返る)のように見えるけど、実際配列なら"s"付が正しいかも。
いやはや、お恥ずかしい。
APIが似せて作ってあるからって結果も同じと思っちゃダメですなw
2011年08月24日
ATND用の google chrome extension を書いてみました。
我らが@tetsunosuke先生が(はじめての)Chrome拡張勉強会 on Zusaarというのを主催されるので、事前勉強ということで作ってみました。
イベント開催支援ツール アテンド : ATNDのイベントページにて出欠表を書き出すだけの機能拡張です。初めてのエクステンションw
中身的な説明は勉強会当日にLTでぱぱっとするとして、とりあえず自前配布と自動更新のテストとして、サーバにアップしましたので、お手すきな chrome ユーザさんはテストしてみて感想などいただけると喜びます。
ページアクションになっていて、ATNDのイベントページを開いた時だけ有効になります。
アドレスバーのアイコンをクリックすると、画面下部に出席者及び補欠の人のリストが作成されます。それだけです。
本当はWEBのアドレスも欲しかったのですが、それはAPIレスポンスに含まれておらず、面倒なのでなくてもよしとしました。
(やるとしたらユーザ数分ページスクレイピングしないといけませんし。。。)
とりあえず、参加者のアカウントがTwitterに紐付いているか、いるならURL、が出せているので、参加者をまとめてフォローするのに便利じゃないかと思います。
また、印刷(プレビューも含む)した時に前後に改ページをいれているので、イベントの出欠確認にも便利かなと。
コピペでZusaar版も作れるけど、ZusaarはそもそもTwitterで認証できるし、APIのレスポンスにデータが載ってこないのでとりあえず様子見です。
書き忘れ
ソースコードも公開してます。
http://code.google.com/p/office-l/source/browse/#svn%2Ftrunk%2Fchrome%2Fextensions%2FATNDATT
一段上のextensionsフォルダ直下にcrxと自動更新用xmlも置いてあります。
2011年08月01日
AQUOS PHONE THE HYBRID SoftBank 007SH を買いました
我が家の携帯は、主契約(ガラケー)、iPhone、嫁さんのガラケーのソフトバンク三台体制なのですが、ここんところずっと使ってなかった主契約のガラケー(920Tでした。くーまんね)を、アンドロイドの 007SH に機種変更してきました。
- http://mb.softbank.jp/mb/smartphone/product/007sh/index.html
- http://www.sharp.co.jp/products/sb007sh/
- http://ja.wikipedia.org/wiki/SoftBank_007SH
- google 画像検索
- gigazineのムービーレビュー付記事
これまで主回線だった920Tは、iPhoneがあるからってことでずっとメインで使っていなくて、ただただ迷惑メール処理機と化していたのと、iPhone アプリ開発に Titanium Mobile を使うようになって、アンドロイドも欲しいなぁと思っていたので、主契約だけど開発機と割り切って機種変更することにしました。
前日までは、Twitterで HTC Desire HD がいいよと教えてもらっていたのですが、近場のSBショップも量販店も軒並み品切れ、取り寄せ、ということだったので、在庫のあった007SHに落ち着きました。
一番新しいし、ホットモックを触った感じでは他の機種よりさくさく動くみたいだし、開発用としては十分かなということで。
契約については、なるべくランニングコストを下げることを念頭に、
- ホワイトプラン(980円)
- パケットし放題S for スマートフォン(390円〜5,985円)
- 継続でS!ベーシックパック(315円)、あんしん保障パック(498円?)、世界対応ケータイ(これは使うときにかかる)
になりました。
とりあえず、モバイルデータ通信をオフに設定して、Wi-Fiのみでどのくらいで運用できるのかをしばらく見ていきたいと思います。
(iPhoneがあるのでアンドロイドでやりたいことなんてあんまりないんだけれどもw)
ソフトバンクの契約あれこれに対する不満など思いつくまま
先のとおり、007SHに機種変更したわけですが、、、、本当に最近の(いや以前からだけども)携帯電話の契約の煩雑さとわかりにくさはどうにかならないんですかね?
あとショップでもそうだし、MySoftbank(携帯やWEBで見れる契約情報)もそうだけど、ユーザにわかってもらう、を完全に放棄してるとしか思えないんですよね。。。
というわけで、契約前、契約中、契約後、それぞれのフェーズでの不満などを思いつくまま書いてみたり。
あ、契約そのものは西大島のショップでやってもらったけど、対応は悪くなかったですよ。
特別格段にいいわけでもないけど、特に悪いところはなかった、あるとすればSB側システムの問題でしょう、というのだけ、お店の名誉のために先に書いておきます。
契約前
- MySoftbank が使いにくい。
- 契約ごとにしかログインできない上に、副回線のiPhoneの契約をiPhoneから変更できないとか
- 変更するとどうなるかなどがまったくみえない
- どういうプラン編成にすればいいのか、副回線も含めてトータルでどうなるかとか全然比較検討できない
契約中
- 既存の契約状態から機種変更後の状態を比較したりがまったくない
- 変更後の料金説明は手書きの合計算
- パケットし放題のパケット量が全然見えない
- 言わないと副回線についてとかは全然みない
- 何がついてきて、何がついてこないかの説明がない
- プランごとに違う割引サービスの額面が不明瞭
契約後
- ついてこないシリーズ。充電器。卓上ホルダーが同梱されてるんだけど、充電アダプターはついてこない。別売りなんだそうな。カタログにも見えるところに載ってねーし。ショップでも言われなかったし。
- ついてこないシリーズ。FONルーター。無料提供してくれるの?これ。紙が渡された手提げの中に入ってたんだけど。帰る前に言わない?普通。。。
- モバイルデータ通信をオフにするとS!メールが使えないとか。アンドロイドマーケットが使えないとか。おいおい、Wi-Fiはなんのためにあるんだよ。。。てゆーか、そーゆうことは言ってくれよ。
もう十年以上も携帯番号変えていない(デジタルホン時代から同じ番号)なので、今更どうこう言うのもなんだし、他者のこともよく知らないけど、もうちょっとユーザの立場に立ってもの考えないと、サービス業とは言えないんじゃないの?と思いました。とゆーお話。
2011年07月30日
jQueryライトユーザレベルアップ勉強会おかわりってのを開催してきました
jquery, javascript, google code
もっとも、アンコールを要望してた人はほとんど来ていませんがw
本職で忙しかったこと、Titanium Mobileでの開発、検証などで、勉強会に十分な時間を割く事を怠ったために、全体的にぐだぐだになってしまいました。
この場を借りてお詫び申し上げます。
また、主催者のくせに開始時間を間違って覚えていたおかげで、主催のくせに開催時間に遅刻するという大失態を犯してしまい、重ね重ね大変申し訳ありませんでした。
それはそれとして、前回勉強会との差異を簡単に整理しておくと、
- 第一部については、前回よりもプログラム部分の説明をちゃんとやった
- 追加で用意した資料について、簡単に説明して、帰ってから見てもらうことにした
(ですので前回参加されたかたも資料を更新しておくといいと思います)
- 第二部については、自分用ファイル作成の部分についてだいぶはしょった。
- Firebugで、要素を選択、右クリックから要素の調査、コンソール、HTMLタブ等の見方などを説明
- 前回実施したデバッグ大会については、今回は簡単に説明しただけにとどめて、今回用のデバッグファイルでのデバッグを実施してもらった
- 第三部については、参加者全員に、自己紹介を含めて、デバッグしたファイルの内容の説明等を行ってもらった
- あまりいいネタが思い浮かばなかったのは反省点
- 時間を見誤って結構早くに終わってしまった
- 懇親会は10人(だっけ?)
時間管理含めて反省点だらけで、あまりよくないなぁと。
開催告知から開催まで、一ヶ月もあると前回の内容を忘れていたり、モチベーションが維持出来ていなかったり、そもそも違うことやってたりで、この辺りは今後どうやってやっていくか、を自分の中でよく考える必要があるな、と思いました。
2011年07月03日
HTML5+CSS+JavaScriptでiPhoneアプリ開発ができる PhoneGap 始めました
先月はちっとばかりTitanium Mobile Platform | Appceleratorを使って遊んでいたのですが、せっかく jQuery を使っているので、もっと jQueryをばりばり使えるようにってことで、PhoneGap Fan - PhoneGapの日本語コミュニティに手を出してみました。
インストールはとても簡単で、サイトで紹介されていた手順だけでiPhoneアプリはいけました。アンドロイドは実機を持っていないのでパスしています。
Titanium はインストールから初期設定の段階で、資料的な罠にはまってちょっと躓いたりしたのですが、PhoneGapはまったく問題ありませんでした。
今気になってるところは、Titanium だと元のソースコードは1つで、ビルド時にそれぞれの環境用のプロジェクトファイルを吐き出して、それをコンパイルするイメージ(ちょっと正確じゃないかも?)なので、ワンライトマルチユースな感じがするんだけど、PhoneGapはデバイス毎の新規プロジェクトベースのファイルを持っているので、開発者が自分でソースコードの共有を考えないと、ワンライトマルチユースにはならないところ。
個人で開発する分には別にいいのかもしれないけど、仕事で開発しようと考えた時に、ソースコードが(特にメインの部分が)分散しちゃうのは、ハイブリッドアプリなのにもったいない、かなぁとか。
もちろんプロジェクトの構造を工夫するとか、ベースにするファイルのデプロイ方法を工夫するとか、やり方はいくらでもあるんでしょうけれど。
とりあえず、しばらくの間は、PhoneGapで遊んでみて、もうちょっといろいろ見てみようと思っています。
- PhoneGap これが本家?
- PhoneGap Fan - PhoneGapの日本語コミュニティ 日本語コミュニティ(インストールの手順はここから)
- PhoneGapファン (phonegap-fan.jp) | Google グループ
- PhoneGap使い方辞典
- jQuery: The Write Less, Do More, JavaScript Library
- jQuery Mobile | jQuery Mobile
- jQuery Mobile 1.0.1 日本語リファレンス
先月末に jQueryがバージョンアップ(主にバグ潰し?)して、1.6.2 になったのと、jQuery Mobile もバージョンが1.0b1になっているので、ファイル名とパスにだけ気をつければ問題なさそうです。
2011年06月25日
jQueryライトユーザレベルアップ勉強会ってのを主催してきました
jquery, javascript, google code
ちょっと思いつきとゆーか、jQueryの勉強会したいねって話をついったーでしたら、思ったより反応があったので、タイトルのような勉強会を主催して、やってきました。
イベントの概要は jQueryライトユーザレベルアップ勉強会 : ATND
人前で発表ベースでしゃべるの久しぶりだったのですが、割といいリハビリになったと思うとゆーか、むしろもっとやってもいいかなって気になったりしたりしてなかったりw
第一部
イベントの内容的には、タイトルどおりに、割とjQueryはあんまり使ってないんだよー、くらいの人を対象に、jQueryのAPI(メソッド)の分類を本家ドキュメントベースで流しながら、それらがどんなことをするのか、のサンプルファイルのソースコードを見ながら説明をしたのが第一部。
第二部
第二部は、Initializr - Start an HTML5 Boilerplate project in 15 seconds!を使って、自分専用初期ファイル群の作成ってことで、ダウンロードしたファイルの手直しの仕方、その内容とか、WEBの高速化技法込みでだらっと説明して、後半はイベント概要に記載した、お題例を見ながら、FirefoxのFireBug+FireQuery で、どのようにして既存のサイトをいじるか(≒jQueryをどうやって書いてみるか)を説明しました。
LTの時間
第三部の始めに、@tetsunosuke,@hikos , そして会場を貸していただいたフォトクリエイトさんの新入社員のせたさんの三人にLTをしてもらいました。
LT @ 伊藤さん
@tetsunosukeの分は、
って言ってるくらいだからいいんだけど、○○をやってみた、が大好きな彼のやることで、ちゃんと動くものを作っちゃうところはほんとすごいんだけど、LTでやるにはちょっと駆け足すぎてぽかーんってゆうかw
LTじゃなくて、もう少し時間をとったところで、工夫どころも盛り込んだ形だったらもっとよかったな、とか。
自分が同じ内容で、”LT”をやるなら、表紙、自己紹介、やってみたデモ、ソースの中身はこんな感じ、ファイルはここ、で都合三分で片付けるかなぁ、と思いました。
書いてて思ったけど、LTならLTらしく、LT以上ならLT以上で、ちゃんと割り切ったほうが、聞いてる方としてはいいかな、と思った、という感じ。
あ、あとしゃべるの相変わらず早口だねw もっとゆっくりしゃべっていいのにw
LT @ 篠原さん
@hikosの分は、
LTで発表させていただく @hikos です。よろしくお願いします。#jqstudy 資料 URL (朝とURLが変わりました)
2011-06-25 18:33:04 via web
を参照してもらうとして、伊藤さんと同じく、完全に、LTとしては長過ぎ、資料としては掘り下げなさすぎ、という印象。
悪く言うつもりはまったくない(@hikosは俺にとってとても大事な友達だし)のだけど、LTとしてはちょっとどうか、という話。
@tetsunosukeのと違って、プラグインを拾ってきて、ほとんどコピペのコンストラクタと引き渡す設定を書いただけ、なのであれば、そのバックグラウンドは(当人はそこをしゃべりたがっていたのでほんとアレだけど)別にどうでもいいよね?
むしろ、表紙兼自己紹介、このプラグインを使ってみた(URL)、こう書いてみた(ソース)、こうなった(デモ)、ファイルはここ(DL)、最後に宣伝(w)で都合三分、宣伝いれても四分がベターかなって。
LTは自分のやってみた、を発表するってことで全然構わないと思うけど、聞いてくれた人に何か残さないと意味がないというか、それはただの自己満足になってしまうってゆうか、自分の話したいことじゃなくて、聞いてくれる人が知りたいと思うことを話したほうがいいってゆうか、むしろ野球の話とっぱらって、サンプルデータでのデモにすればもっとシンプルで簡単に短時間で説明できて、それこそLTって言うか。
でも朝からこれの話をしてて、ソースとか取り込んでくれたんだよね、ありがとう。
あくまで個人的意見と、よりよくやるならこんな風にするのがいいんじゃない?って程度で。
あ、あとUstしてくれてありがとう。
LT @ せたさん
ここは意見の別れるところな気もするけど、個人的に一番LTっぽくていいなと思ったのは、せたさんのやってくれたやつでしたw
もちろんもっともっと整理はしないといけないし、もろもろ言うべきことはあるとは思うけれども、開催二、三日前になってからやってー、みたいに言われた状態で、LTとして5分で、という条件下で十分なパフォーマンスだったと思います。
短時間で資料化は困難だったかもだけど、紹介サイトをきちんと紹介する、その中で自分が紹介したいのはこれとこれとこれ、をしっかりリストアップして見せる(それからデモを動かしてみせる)、今後の自分の展望として短期目標を語る、をパワポに出来てたらほんと言うことないくらい。
次は掘り下げる方向のLTを聞いてみたいかなw
きっと場数と経験を積んだらすごく優秀な技術者になるんだろうなぁっていうか、若さゆえ(?)のはつらつさが好印象でした。
第三部
で、第三部は、別のお題5問を見てもらい、好きなやつの回答を作ってもらい、それを発表してもらう、という形式をとりました。
初心者向けとうたったはいいけど、お題例は事前にイベント案内に掲載していたし、必要なFireBugの使い方等も説明したし、いけるかな、と思ってたんだけど、ちょっとプログラマブルな感じにすると、そもそもの言語慣れ?とかの違いのせいか、全部はやりきってもらえませんでした。
ここは次回の課題というか、やってみて、できたら発表して、ってやるのは結構難しいというか、出来ても手をあげて発表しない、とか、そもそもできてない、とか、時間配分が難しいみたい。
一度に五問だと、どれやるかとか誰がやるかとか、時間がかかりすぎてちょっとだれちゃう感じになるのもよくなかったかも。
誰かが出来るんだろうから、自分はやんなくてもいい、みたいな空気が混じると特に難しいかも。
ハッカソンだとやる気まんまんな人が集まってる風だし、問題ないのかもしれないけどw
懇親会
終わった後は残れるメンバーで近くの飲み屋さんに移動して懇親会をして、楽しい時間を過ごさせていただきました。
本当にみんなありがとうございました。
飲み会はねぇ、、、我々の共通の友人に、株式会社レーベンの森山さんという営業マンがいて、これが本当に会話の振りが上手っていうか、参加者みんなに気を配って、丁寧に会話を広げていって、万遍なく全員を会話に巻き込むのが非常に上手な男で、本当にすごくその辺り尊敬していて、真似出来るようになりたいと常々思っていて、今日はちょっとがんばって、ほんと自分の周りだけだったんだけど、それなりに会話をふりこんでみたんだけど、上手く出来てたようなそうでもないような、、、ともかく、まだまだでしたw
(人見知りの自分としてはそーとーがんばったと思うんだけれどもw 自分で自分をほめられる程度にはw)
個人的趣旨について
勉強会はわりと足がかり。どんなに仕事が出来ても出来なくても、能力があってもなくっても、自分とのつながりが希薄なら、それは知らないのと同じ、ただの他人と同じ、ですよね。
勉強会(と懇親会やついったーやmixiなどなど)を通じて、人としてのつながりを濃くしていって、お互いに切磋琢磨出来たり、知らないことを教えあったり、協力して何かやったり、要は友達になれる人を増やしていきたいと思っています。
今回の勉強会に限らず、いろんなところでそんな関係を築ける人と出会いたいなぁと思っています。
全体を通じての(わりとどうでもいい)メモ
- ATND は本当にキャンセル率高い。想定してたよりもずっと。そして当日ドタキャンも多いw
- ATNDで送ったメッセージ見てない人多いw 初期の頃にはなかったと思うんだけど、いつの間にかメッセージ機能がついてて、登録者にメッセージ送れるんだけど、それを見てない人多いみたいw えー。。。w
- ATNDでイベント概要を書き直しても見てない人多い。事前準備してこない人も多い。これは最初にきちんと準備できていないこちら側の問題もあると思うけど。今回はATNDの登録日から開催日まで間があったので、何回かにわけてデバッグ大会のお題を小出しにしてたんだけど、半分くらいの人が見てなかったみたい。これはちょっと誤算。
- これらを踏まえていても、やっぱり勉強会の開催はいろいろストレスたまるw 席が足りなくなったら困るんだけど、空いちゃうのも困るし、キャンセルするなら前日、当日じゃなくてもっと前にしてよ、とか。発表内容はこれでいいかなとか、もっとこうしたほうがいいかなとか、難しすぎないかな、簡単すぎないかな、とか、ほんとやばいw もっと場数増やさないとダメだw
- 時間に遅れるのは仕方ないことか。交通事情とかもあるし、一方的に非難は出来ないんだけど、恋人とデートする時も遅刻すんの?って思っちゃうのはよくないことですかね?始業時間に間に合わなくても怒られないようなフレックスな仕事をされてるんですかね?無料の勉強会だから別にいいんですか?そうですか。
- 参加者名簿もらいそこなったw これは後で頼んでおくけど、参加の名簿を作ってもらってたのに、その情報もらうの忘れてたw
- 喫煙率下がりまくってる。勉強会の参加者でタバコを吸うのは自分を入れて三人だけ?懇親会の時は自分だけ。肩身狭いわぁw
まとめ
勉強会は場数大事。特に発言する機会を増やすの大事。月一は難しいにしても、もうちょっとがんばって回数増やしたい。
LTならいつでもやれるから、小さい会場とかで、LT大会とかならやれるかなぁとか。本気のLTみたいなw
もっといろんな人と出会う機会を増やせるといいな(人見知りのくせにw)
おまけ
@blaue_fuchsが、jQueryライトユーザレベルアップ勉強会 #jqstudy - Togetterを作ってくれたので、そっちも見てね。
最後に、本日の資料は、google code の ここに置いてあります。
ひとつづつDLするのは馬鹿っぽいし、trunkを丸ごとDLするのも時間がかかるので、
svn checkout http://office-l.googlecode.com/svn/trunk/jquery office-l-read-only
として落としていただければ。
ちなみに、part3.pdfは閲覧パスワードがかかっています。
(勉強会時に、先に開いてしまって先にごにょごにょされたくなかったのでw)


