2010年11月28日日曜日

Shibuya.lisp テクニカルトーク#6 に行ってきました。

11/28に
Shibuya.lisp テクニカルトーク#6
に行ってきました。

今回のTechnical Talksは非常にアカデミックなにおいがすごいして、
内容も難しい部分が多かったですが、
大変興味深い内容でした。

記号処理言語と記述言語 〜 TAO/ELISのアプリケーションから職業大でのIT教育に至る経験談
大野先生の講演。
大学時代の話から、NTT時代の研究、現在の職業大学の教育についてのお話をされていました。
LISPでどういうアプリを作ってきたか(エキスパートシステムや決定木の話)、
TAO/ELISがどういう場面で、どんな風に使われていたのかという話は、ものすごく勉強になりました。
最後の職業カードのシステムを設計はUML/実装はLISP/出力はXMLで行う研究の話も興味深く聞かせていただきました。
懇親会で名刺交換させていただいたときには、自分が通っている会社を存じていてびっくりしました。

CLOS/MOP入門とOWL Full処理系開発事例紹介
CLOS/MOPとOWLの話ですが、
CLOS/MOPの話で時間が取られて、セマンティックWebの部分はあまり聞くことができませんでした。(全部聞きたかった><)
MOP(Meta Object Protocol)はメタクラスがどうのこうのと頭がこんがらがってきてしまって、なかなか理解できませんでした。
小出先生に懇親会で難しくて理解できなかったと正直にいってみましたが、あれは慣れだとのこと。あとでビデオを3回ぐらい見て、自分でコードを動かしてご覧といわれました。早速やってみます!

Lisp今昔物語
LISPが昔どういう風に扱われたか、そして今後プログラミングはどういう風になっていくかという話でした。
安村先生が日立時代のHILISPを作ったときのどのように高速化したか、といった話や、LISPのメリットについてお話しされていました。
後半はこれからのプログラミングについてのお話で、
人間はみんなプログラミングできる能力があるので、一般のひとにもそれができるようにということで、Programming 2.0という概念を提唱されていました。
先生はインターフェースの研究を行っていて、そこから、Programming 2.0といった、緩いプログラミングでもいいんじゃないかという発送につながっていったようです。

LTも面白い話盛りだくさんでした。

Shibuya.lispのスタッフの皆様には、このような機会を設けていただいたことに深く感謝申し上げます。
次回も参加したいなぁ。

2010年11月23日火曜日

Firefox Developers Conference 2010に行ってきました。

11月20日に
Firefox Developers Conference 2010 に行ってきました。
私が聞いた講演は下記。

  • 基調講演
  • John Resig feat. Shibuya.js
  • Firefox 4 & Mobile
  • Firefox Panorama
  • Web の地上化 ~ 生活に溶け込ませるブラウザの発想と戦略 ~
  • トークセッション: HTML5 時代の技術で Web プラットフォームはどう変わるのか
  • 大ライトニングトーク
どれも、充実したないようで、大変満足。
下記に、基調講演のメモと、
@dynamitterさんが紹介してたトークセッションのデモサイトのリンクを張っておきます。
その他の内容はもし時間があけばまとめてみようと思います。

基調講演
Jay Sullivanさんの基調講演。
これからはOpen Web Platformになる。
Firefoxは今後
  • mobile
  • cloud
  • apps
  • social
の4つの柱を考えていく。とのこと。


  1. mobile
  2. スマートフォンの普及により、 mobileでしかWebブラウザを使わない人は今後確実に増えていくでしょう。 プラットフォームはAndroid,iPhone,Symbianといった多様化してるし、アプリケーション開発者も大変な状況。 ただ、HTML5の80%はモバイルでも実現できるし、HTML5に環境に依存しないプラットフォームが実現できる。 これは大きなチャンス。 Mozillaとしては、今後大きく進化していくだろうAndroidへ投資していく。
  3. cloud
  4. FireFox Syncの話がメイン。 クラウドはどんどんコストが下がっており、今後クラウドWebにインパクトを与えていく。 MozillaはFireFox Syncを中心にクラウドに取り組んでいくというようなことを言っていた。 クラウドでは、個人情報がダダ漏れになる心配があるが、FireFox Syncは暗号化されている。
  5. apps
  6. ネイティブアプリケーションでできることは、Webアプリケーションでもできるが、 まだapp storeのような収益かの仕組みができていない。 Open Web Apps といった試みを紹介。
  7. social
  8. ブラウザはLaunch Pointとなるので、 世の中のユーザサービスとどのように統合していくのか、どのようにしてコミュニティと一緒に成長していけばいいか考えなければならない。 ソーシャルをどうやって生かすか、どうやって共有するかが今後の課題
Mozillaの今後どういう方向で進化していくかがよくわかりました。

@dynamitterさんが紹介してたHTML5関連デモのまとめ



FireFoxのイベントはかなり勉強になります。
また機会があれば行こう
と思います。

2010年11月21日日曜日

第12回「HTML5とか勉強会」に参加してきました。

11/18に、第12回「HTML5とか勉強会」に参加してきました。
いつも気が付いたら満員だったのですが、念願の初参加です!
今回は素晴らしいスピーカーの皆さまでした!感激でした!
(あと、英語だったので、あんまり理解できないところも多々。。。orz)

Paul Irish: The State of HTML5 : Inaugural Address
http://wde2010-pi.appspot.com/#slide1

HTML5関連技術について、一通りのデモを見せてくれました。
Audio data APIとWebGLを組み合わせたもののデモは秀逸でした。
WebGLで書いたビリヤードゲームで、玉のぶつかった音とかをAudio Data APIで表現したり。
もう、HTML5でゲームやらアプリやらを作れる時代が来ていることを実感。
SVG Filterなんかも紹介。
ライブラリとして、
HTML5の対応状況を調べてくれる modernizer.js  http://www.modernizr.com/
無駄なスクリプトのロードを防いだりしてくれるスクリプトローダーの
yeonope.js http://yepnopejs.com/
を紹介していました。

Bruce Lawson: WAI-ARIA
http://www.slideshare.net/brucelawson/bruce-lawsonhtml5ariajapan

WAI-ARIAというアクセシビリティの仕様のお話。
WAI-ARIAを描けば、例えば、ディスプレイがないデバイスでも音声などで補助してくれる、
そういうことを実現するための仕様です。
WAI-ARIAはHTML5と組み合わせることが可能で、
roleという属性を使って、"navigation"とか"banner"とかその要素の
役割を書くことができるようです。
HTML5には<nav>とか、<header>とかセマンティクスが用意されていますが、
対応したデバイスを考えてWAI-ARIAも組み合わせて書くべし。
あとは、要素にwebSRTを指定して、動画に字幕をつけるデモもしてました。

Jonathan Stark: jQuery Mobile + PhoneGap
http://www.slideshare.net/jonathanstark/building-mobile-apps-with-html-css-and-javascript-4807782

モバイルのWebを書くにはどうするかという話。
モバイルのwebを書くためのライブラリとして
  • iUI
  • jQTouch
  • Sencha Touch
  • jQuery Mobile
を紹介。
jQTouchのライブコーディングは非常におもしろかった。
WebアプリとNativeアプリを組み合わせるための
PhnoeGapの紹介もしてくれました。

Michael Fellinger: Canvas implementation using CoffeeScript

Coffee Scriptという
Ruby/Pythonライクで、
書いたコードをJavaScriptに変換してくれるスクリプト言語を紹介してくれました。
存在は知っていましたが、いじったことはなかったので、
あとでいじってみようと思いました。
詳細は下記で。Web上で動かすこともできます。
http://coffeescript.org

懇親会でのライトニングトークも面白かったです。



このようなすばらしい勉強会を企画してくれた主催者の皆様に感謝!
また行きたいな!

2010年11月13日土曜日

情報収集の方法

私が今勤務している会社で最近、
係長・主任クラスの社員が中堅社員研修というものを受けているようです。
(私は平社員なので受けられませんが)

これは、同様の主任クラスの社員の話ですが、
中堅社員研修のなかで、講師の先生が
「私の会社で給料をあげるのは簡単です。
例えばAKB48のメンバーの名前を10人言えといって、言うことができれば給料を上げます」
と話されてたとか。
これは決してその先生がAKBヲタというわけではなく(笑)、
仕事に関するものをちゃんと情報をキャッチして覚えているかどうか試すということらしいです。
(ちなみにちょっと聞いただけなので、その先生がどの業界の人とかそういうのは不明です。)

でも、ただその業界に関する情報を一生懸命覚えようとしても、
覚えられるものではありません。
AKB48の名前を年号のように覚えるのはバカみたいじゃないですか(笑)

やっぱり、自然に情報をキャッチできるようにする、仕組みを整えるといったことが
大事なのだと思いました。
ということで、私の情報収集の方法をまとめてみようと思いました。

  • まず興味をもつこと
  • その情報を持っている知り合いを増やす
  • 情報収集する仕組みを構築する

まず興味をもつこと

例えば、AKB48の名前を覚える場合について。
  • AKB48のメンバーが出てるドラマを見る
  • => その娘の名前を覚える
  • => その娘の出ているテレビや雑誌などに目がいくようになる。
  • => blogやtwitterをチェックするようになる。
  • => blogやtwitterで他のメンバーの話が出てくるので、その娘も覚えるようになる。

ここで、全くその娘を知らない場合は、
例えば本屋で雑誌の表紙を見ても、素通りしてしまいましが、
知っていると「あ、あれに出てたあの娘だ」と頭に引っかかるようになります。
スタート地点はまず興味を持つことです。
どうしても興味を持てない場合は、もうあきらめましょう。

その情報を持っている知り合いを増やす

共通の趣味/関心を持つ知り合いは重要です。
同じ関心を持つことで、
自分が知らない情報を知ることができます。
(ちなみに関心がない情報はいくら聞いても記憶に残らないものです。)
Androidの便利なアプリとかは、
Geekな先輩に教えてもらったりしています。
(先日はAndroid標準の連絡先アプリが便利と教えてもらいました。)

AKBファンはどうだか知りませんが、
大学生のときにモー娘。のコンサートに行ったときは、
いっぱいグループがあって情報交換をしているのを見ました。
好きなメンバーのプロフィールとか、スケジュールとか、グッズの情報とか。
そうやって、情報収集しているんですね。

情報収集する仕組みを構築する

情報を効率翌週収集する仕組みを構築します。
まずはインプットです。
インプットはやっぱりGoogleReaderです。
RSSをとにかく購読して、
GoogleReaderで一気に読んでいきます。
RSSはタグで整理しておき、タグごとに読んでいきます。
GoogleReaderはスクロールすれば読んだことになるので、
興味がない記事はタイトルと1、2行だけ読んでスクロールしてしまいます。
読みたい記事は、自分は「Read It later」に入れておいて、後でiPadで読みます。

twitterも情報収集に使えます。
ただ、TLを眺めているときりがないので、
リストを活用します。

次にアウトプットです。
インプットだけでなく、できる限りアウトプットをして自分の頭の中を整理したり、記憶を強化するのは重要です。
すべてEvernoteに書いていきます。
本を読んだときのメモや、講演会・勉強会のメモ、気になったこと等は、
すべてEvernoteに書いておきます
書いたことは、電車の中など時間があるときに、XperiaやiPadを使って読んでいます。
もう一度読み返すことによって、頭の中を整理します。
週末にEvernoteに書いたものを整理します。

ある程度まとまったら、
スライドにまとめて、発表資料にしてしまいます。
昔、私がいた部署では、研修等に行ったときに課定例でそのフィードバックのための発表をする機会をもうけてもらっていました。
スライドを作っていると、頭の中でもやもやしたものが整理されます。
わからないところ、わかったつもりになっていたところがはっきりします。
わからないところは、調べ直して整理できます。

と偉そうに書きましたけど、
自分もまだ試行錯誤の状態です。
もっとブラッシュアップしておこうと思います。

2010年11月9日火曜日

日本Androidの会11月の定例イベントに行ってきました。

日本Androidの会11月の定例イベントに行ってきました。
簡単にレポートします。

SHARP Androidモデルのご紹介とタッチ&トライ

今回はタッチ&トライということで、
au/Softbank/docomo 3キャリアの端末を実際に触らせてくれました。
感想としては、

  • 液晶きれー
  • 3Dスゲー

ってとこですかw

いや、3つともすごいいい機種です。
液晶はWVGAで、とてもきれいでした。

UI(ホームスクリーンとかメニューとか)はAndroid標準からはちょっといじっている
感じでした。
起動中のアプリ一覧も画面の右下のアイコンをタップすれば一覧みれますし。
3キャリアとも若干の違いはあるけど、ほとんど同じもののようでした。

SoftBankとdocomoは3Dに対応していていましたが、
本当に3Dに見えました。
カメラも3Dに対応していて、撮った写真を3Dにできます。
撮るときにすこしだけ、カメラを右に動かすようにして撮ります。
今までの2Dの画像も3D化できるとのこと。
正直、3Dの動画やゲームをみるのは、いいけど、
カメラとか3Dは必要ないんじゃないかと個人的には思います。
SoftBankの携帯、ホームスクリーンとかメニューとか3Dにできたけど、若干気分悪くなりましたw
あと、3Dの拡張APIもあって、それの公開も検討しているそうです。
正直アプリ開発には必要ないかな。ほかの端末で動かないなら意味ないし。

あとは、いわゆるガラケーの機能(ワンセグとかFelicaとか)
をほとんど持ってきているので、
メインの電話機として十分活躍できそう。
(オープンのプラットフォームでFelicaを載せたのはすごい!)
ガラケーを買い替えようとしているけど、ガラケーの機能も必要という人は、
ぜひシャープ端末をお勧めします。

気になったのは、同じメーカーなのに、3キャリアともだいぶ違う端末にだったこと。
やっぱりそれぞれのキャリアの要求/仕様にあわせて作り込間なくちゃ行けないのかなと思いました。
同じ端末を3キャリアで出せればいいのに(><)

詳しくは、それぞれの端末のページを見てください。



Javaだけじゃない!Adobe AIRで作るAndroidアプリ話

AIRでAndroidのアプリを作ろうぜ!っていう話。

  • AIR2.5 にはAndroid向けにも対応していて、PCやSmart Phoneといったでこでも動かせるアプリを作ることが可能
  • Smart Phone には、AndroidとiOSとBlack Berryに対応している
  • Android向けでも、実行環境はAndroidマーケットでダウンロード可能で、AIR環境がない場合でも、AIRアプリが自動的にAndroidマーケットに誘導
  • Adobeのクロスプラットフォーム戦略として、AIRであれば、ソース共有/再利用ができるので、様々なプラットフォームに対応するコストがグンと下がる


とのことです。
以下、聞いたときのメモをそのまま載せます。
* AIR for Android 開発
-Flash ActionScript
-- 自由度の高いUIコンテンツ作成が可能
--  デザイン指向 
- Flex (ActionScript +MXML)
-- Flashのフレームワーク
-- ビジュアルコンポーネントがそろっている
--- タグで書くだけでFlashUIが作れる
-- Web(Flash)とDesktop(AIR)に対応
-- 次期バージョンではモバイル対応
-- 画面遷移機構もフレームワークも提供
--- 開発が簡単になる
- 開発ツール
-- Flash Builder (Burrito)
--- EclipseベースのIDE
--- preview 制限なし
--- AirSDK/Flex SDK ドウホウ
- 基本構造
-- ルートタグ
-- ViewNavigator
--- MobileApplicationに一つ
--- ビューコントロールを対応
--- データキャッシュ対応
-- View 
-- 一つの画面表示

ぶっちゃけ、シャープ端末を触るのに夢中で開発のデモをあんまりみれなかったのですが(ごめんなさい><)
XMLで見た目を書いて、動作をActionScriptで書くといった感じでしょうか。
個人的には、クロスプラットフォームを実現するんであれば、
HTML5の方がいいんじゃないかなーと思っています。
あれも、要はブラウザがあればどの環境でも動く訳だし。

AIRも結局、プロファイルにあわせて動作をかえなくちゃいけない訳だし、
画面サイズによってレイアウトが崩れる問題も解決できなさそうなので、
クロスプラットフォームって点では微妙な印象です。
でも、FlashやASが得意な人はいいかもしれません。

NEC Life Touch


これ http://www.nec.co.jp/solution/spfsl/cloud/communicator/

こういったデバイスを使って何かのソリューションを提供するんだったら、
利用するならのは手かもと思いました。
アプリ開発者としては、ちょっと。。。
アプリをこのデバイスにサクッと載せられるのならばいいのかもしれないけど。。。

ということで、ざっとですが以上です。

2010年11月5日金曜日

ブラウザカンファレンス2010に行ってきました。

ブラウザカンファレンス2010が11月2日にYahoo!JAPANであり、
行ってきました。

以下に雑多ですが、メモを書いておきます。
本当はまとめて文章にしようと思ったのですが、
整理する時間がなかったので、ほぼそのまま公開。
多分、いっぱい書き落とし、聞き落としがあるような気がしますが。。。

  • HTML5時代におけるYahoo!JAPANの取り組み

Yahoo!の是井さんの発表
* 現状
- 130以上のサービスを提供している
- 49671000000/PV 226120000/UB 月
- 様々なプラットフォームでサービスが提供できるようにする(機器に依存したコードはできる限り避ける)
-- モバイル、スマフォ、テレビ、ゲーム機


* ライフエンジン
- Yahoo!Japanの基本姿勢
- いつでも、どこでも、顧客にサービスを提供できるように


* ライフエンジンを実現するために
- 災害情報モジュールは一斉配信され、全てのサービスで表示
-- 配信プラットホームに一斉配信で全てのデバイスで表示
- 基準規定を設けてサービスを提供
- UIガイドライン設定
-- PCブラウザのみでも数十種類のバージョンをサポート、モバイル、スマフォも最適化へ
- サポートブラウザを規定
-- 一定のシェアを超えればサポートになる
- 社内の軽量javascriptライブラリを使う
- テンプレートシステム
- Yahooモバイルトランスコーダー
- スマートフォン共通テンプレートシステム
--  HTML5、CSS3、JavaScriptを使用したテンプレート。Webstorageを使用してJavaScriptをキャシュするのでアクセス速度が速い。


* HTML5導入
- 「新しい技術を取り込むこと」と「多くのユーザーに対応できること」とのバランス
-- スマートフォン中心に導入
--- スマートフォンはすべてWebKitだからね
-- PCブラウザは様子をみながら

  • パネルディスカッション

まず、ディスカッションの前に各ブラウザ代表者のプレゼンがありました。
その後に、ディスカッションという形式でした。

加藤誠さん(Mozilla)
- Firefox4では、JavaScriptが早くしている
- でもSunsupider は本当に役にたってる? 使われない使い方ばかり
-- ベンチマークはリアルワールドではない
- Krakenはリアルでどう使われているか元にして作った。
- 発表資料 http://www.slideshare.net/djraven/keep-it-real-5643210


ダニエルさん(Opera)
- なぜ自分はOperaを好きになったか
- ユーザを楽しませる会社である
- Extension=> Web標準を使って拡張
- 正しい作り方をしてもらうため、変なページはデベロッパーに連絡


春日井さん(Microsoft)
- Silverlightは残る
- PC使用中の57%の時間はブラウザを使っている
- ブラウザは劇場
-- 高速化:GPU JavaScript
-- Webがアプリ化する


北村英志さん(Google)
- Chromeは早い
- タブごとにプロセスが分かれる
- Extensionも別プロセス
- JavaScriptはどんどん早くなっている
- Web標準でextension作れる(operaとの違いは?)
- Chrome web Store
-- Web アプリのマネタイズの方法を提供
-- Hosted Application (従来のWeb)
-- Packaged  Application(クライアント側で実行)


* 実装の優先度
** Firefox
コードの貢献度
bugzillaの報告度(ユーザの声)
** Opera
ユーザと顧客の優先度 バランス
** IE
W3Cに従う
W3Cが定めるHTML5に従う。WebSocketsを実装していないのはHTML5仕様から外れたため
IEは社会インフラになっているので、変えることを好まないユーザが多い。開発して実装するまでの時間が一番かかる。
-- 個人ユースと、法人ユース(会社の縛り)を意識している
-- 「ブザウザには2種類ある。個人でWebを楽しむために使うブラウザと、会社で使わざる得ないブラウザである」
** Chrome
ユーザの声とパフォーマンス重視
html5でコンセンサスが得られているか


* Extension
** Firefox
FireFoxモバイル版に全く同じものを持って行く
ユーザが好みにカスタマイズできる方向で
** Opera
- 仕様は統一するべき
-- Extensionはwidget apiをもとに作った
** Chrome
Exteisionのapiが統一されていることは重要


* 開発者ツール
** Firefox
デバッガにもextension必要じゃね?
Firebugはリリースに影響するほど大きい
** Opera
Dragonfly モバイルサイトとの連携もできる
** IE
F12キー
開発ツールは持っている Visual Studio / Expresson
JavaScriptのツールがない vswdでjs対応計画中
** Chrome
必要な機能実装している


* Video/Audioのコーデック
** Firefox
-- ロイヤリティフリーかどうか重視
-- W3Cに入るかどうかを重視
-- H.264難しい WebM
** Opera
- ロイヤリティフリーが重要
- WebM
- マルチデバイスでコーデックの統一は重要
** IE
- H.264
-- 汎用性の高さ
-- テレビとか利用を考えると汎用性重要
** Chrome
- WebM


  • 感想

Operaがハードウェアを強調していたのが印象的でした。
インターフェースの話(テレビのリモコンはブラウジングが難しい)とか
標準化にもハードウェアが入るべきとか。
videoのコーデックは統一するには時間がかかりそうな気がしました。
個人的には、WebMがロイヤリティフリーでいいと思うんですけどね。
IEの汎用性を考えてH.264っていうのもわかる気がしました。

とにもかくにも、
各ブラウザベンダがWeb技術自体の普及という目標のもと、それぞれが切磋琢磨していて、
いい意味で競争しているんだなと思いました。

発表資料は公開できるものは公開できると言っていたので、
公開されるのが楽しみです。じっくり研究したいと思います。

とても勉強になりました。ありがとうございました。