PHPカンファレンス福岡 2016 に行ってきた

概要

項目 内容
日程 2016年05月21日(土) 10:15 – 18:00
会場 FFBホール
公式ページ http://phpcon.fukuoka.jp/
公式Twitter @phpcon_fukuoka
公式ハッシュタグ #phpconfuk

去年に引き続き参加。去年参加分は[2015-06-28-2]を参照。カンファレンスで公開されているスライドをまとめたサイトがあるので参加していないセッションの内容はこれを参考にする。

制約と上手く付き合う / 新原 雅司 (@shin1x1)

発表資料が公開されている。

内容メモ

実演した制約は以下

  • アクセス修飾子とタイプヒンティング
  • 不変オブジェクト
  • インタフェース

質疑の中で出た話題

Q:ライブコーディングではPHP7を利用していたが、バージョンが低い場合はどうするのか?
A:戻り値の型宣言以外はPHP5系でも利用可能

Q:PrivateとProtectedの使い分けは?
A:まずはPrivateを考えて、必要に応じてProtectedを指定する。
  PHP 5.4以降ではtraitがあるので機能のために継承する必要がなくなったためProtectedを使う機会が減ってきたのではないか
  公開されているスライドの最終ページを参照のこと

感想

ショッピングカートを例に制約を実演していくライブコーディング形式。基本的な内容ではあるが朝一のセッションとしては調度よい感じだった。

ドキュメントを支える技術 / 小山健一郎 (@k1LoW)

発表資料が公開されている。

内容メモ

対象は技術ドキュメントではなく、概算見積もりやスケジュールなどのクライアントと共有するための文書。
これらの文書は印刷し体裁を整えるのが前提となる。

ドキュメントづくりを効率化、あわよくば自動化したい。

サーバの利用状況レポート

むかしはEMR+Excel+PowerPointでやっていたが辛い
Embulk+PHP、HTML、CSS、JSでレイアウトを作り自動化する

PHP、HTML、CSS、JSでの印刷レイアウトは結構イケる。

インベントリ情報

インベントリ情報とは、サーバにインストールされているパッケージのバージョン一覧のこと。

サーバ1台ごとに調べていくのはつらい
Komaを使ってJOSNで出力。結果をPHPで処理し、Excelに出力する

PHPからExcelへの出力にはPHP-ExcelをForkしたものを使っている。

概算スケジュール

ガントチャートや方眼紙Excelはつらい
→ CSVからガントチャートExcelを出力するWebサービス化したti.mefra.me。cURLからも実行できる

まとめ

  • HTML+PHPで印刷はよい
  • 紙はなくならない
  • PHPにこだわらず使えるものは使って効率を上げていく

質疑

Q:直接PDF等に出力するようにはしないのか?
A:現在作ってる途中です

感想

最近、事務仕事が多くなって提携の書面を作る機会が増えているので、興味があった。PHP+HTML+CSSで印刷するのは毎回挑戦して微妙にデザインが崩れてげんなりすることが多かったのだけど、割にいい線いけるらしい。もう少しどうにかしてみるか。

Guzzle Promise を使った非同期処理による API コールの高速化 / 鈴木則夫 (@suzuki)

発表資料が公開されている。

内容メモ

1時間毎にAPIを叩く100万件の処理を行う必要があったが、普通にやっていては間に合わない。そこでPHPで実装されたHTTPクライアントライブラリのGuzzleを使った。Guzzleは非同期処理やPSR-7にも対応。スライドではサンプルコードも多数。

単純にGuzzleを使っただけでは処理が追いつかなかったが非同期処理を使うことで対応できた。

  • Guzzleの非同期処理はPromiseというJS由来のモデルを利用している
  • 詳細は「JavaScript Promiseの本
  • 単純に非同期の並列処理を使うと、メモリ不足などに直面するので必要に応じて対応する
  • Generator(yield)+poolなど

感想

お仕事の中でAPい叩いたりとかHTTPで一括処理をしたりという機会は割と多くあるのでGuzzleは今度触ってみたい。一回何かしら書けば流用しやすいような気もするんだけどどうなんだろう。

Go言語で実装するLinuxNameServer / 山下 和彦 (@pyama86)

発表資料が公開されている。

内容メモ

Go 1.5から共有ライブラリを作成することができるようになった。その御蔭で、Goがワンバイナリで動くプログラムを書けるというメリットに加えてLinuxのミドルウェアを作ることが可能になった。

ただし、幾つかの制限はあるし、Linuxを含めたテストも必要になるためC言語の知識や覚悟が必要になる。

Goの特徴

  • バイナリ
  • 共通ライブラリ
  • サーバ
  • クロスコンパイル
  • 圧倒的生産性

感想

Go言語は前から気になっていて手を付け始めている。とは言っても仕事ではあまり使いではないのでどうしたもんか。流石にLinuxのミドルウェアは書かないけど、前のセッションの非同期処理の辺りとかも含めて仕事っぽく試せればいいんだけど。

PHPerに知ってほしいRDBの事 バージョン 2 / 曽根 壮大 (@soudai1025)

発表資料が公開されている。

内容メモ

データベースの寿命はアプリケーションよりも長い。サービスの寿命=データベースの寿命と言っても過言ではない。

検索Index

まずは実行計画(EXPLAIN)が大切。以前行った実行計画の話も参照のこと。

  • MySQLでは、1つのクエリでINDEXは1つしか使われない
  • INDEXでは重複が少ない(結果が少ない)ほうが良い。全体のレコードの10%~30%程度が目安
  • MysqlではJOINが遅い。対象を少なくしてJOINする。不要なJOINは避ける。INDEXを利用したJOINをする
  • 難しいことをしないで済むような設計をするのが大事

MySQL WorkbenchpgAdmin3ではEXPLAINの結果をグラフィカルに確認することができるのでわかりやすい。

削除フラグの話

一般的に使われることが多い削除フラグ(論理削除)という闇。WHERE句が積み重なる、UNIQUE制約が効かなくなる、条件式が複雑になるというデメリットがある。

  • Viewを作っても高速化にはつながらない
  • INDEXが効かなくなる(大部分のレコードがdeleted = 0に該当してしまうため。全INDEXにdeletedを追加する必要がある)
  • UNIQUE制約が効かなくなるのでデータの外部キー制約が使えなくなる。整合性を担保できずバグの温床になる

対策としては
– 削除済みデータ用のテーブルを作る
– そもそもデータベースにステータスを持たせない

感想

PostgreSQLの方はあまり興味がなかったので端折っている。INDEX周りは毎回色々難儀しているので参考になった。MySQL WordbenchでEXPLAINの結果をグラフィカルに見ることができるのは知らなかったので、さっそく明日からでも使ってみる。

削除フラグの話はほんとに耳が痛い話で。要望の問題もあり、どうしても作ってしまう。ただ作り方の問題だと思うので、例えば削除データ用に汎用的なテーブルを作っておいて、削除されたデータをJSONで放り込むなんてのは比較的ラクに作れるかもしれない。

どうせ何かあって戻すときは人手で戻す必要があるんだから、そのくらいラフでもバチは当たらない気がしてきた。

日本で一番PHPのシステムをテストしている手動テスターが思うところ / フクダリナ (@rina)

発表資料が公開されている。

内容メモ

Fusicでは唯一のテスター。エンジニア25人に対して一人。年間 約35案件をテスト。手動でのテスト。

素早く効率的にテストをするために
– 進捗のエビデンスなどは作らない
– パターンを全網羅するようなテストは行わない
– バグを見つける
– おかしな仕様を見つける
– デザインの違和感を教える
– 仕様書がなくてもテストする
– テスト手順書は作らない
– 動かしながらテストする

テストでは品質は上げられない。品質を上げられるのはコード。

感想

Fusicのテスターが一人とは思わなかった。言いたいことは実感としてわかるんだけど、職人の技が光っていて中々横展開ができなさそう。あとテスターにエンジニアの経験があるだけでテストする側もされる側もだいぶ変わるんだろうなぁっと思う。そういう意味では羨ましい限り。

HTTPメッセージ – PHPで扱う場合の再入門 / させざき (@sasezaki)

発表資料が公開されている。

感想

正直良くわからなかった。

Slim3とPSR-7 / 市丸 朋史

発表資料が公開されている。

内容メモ

[Slim(http://www.slimframework.com/)]はphp the right wayを書いた人が作ったマイクロフレームワーク。基本的には router、 middle、PSR-7、di-containerしか無い軽量なフレームワーク。composerなどのおかげでライブラリが外に出ていく傾向があり、slim2からフレームワークとして提供している機能が減っている。

感想

Slimは前から気になっていたフレームワークなので概要がわかった感じ。とは言っても実戦投入ってレベルの理解まではできていないので、これも今後の課題にしたい。特に複雑じゃないAPIサーバなんてのだったら簡単にかけるんだろうけど、もう少し複雑なものになるとどういう風にするのか辺りが気になるところ。

WordPress REST APIが開くWordPressの未来 / 宮内 隆行 (@miya0001)

発表資料が公開されている。

内容メモ

WP REST APIは、WordPress 4.4から追加されたWPをJSON REST APIで操作するための仕組み。現時点のバージョンではWP-APIプラグインが必要(4.7からCoreに取り込まれる予定)。正統派RESTfull API。プラグインで拡張することも可能。

今までのWPの問題点

  • フロントエンドの人がPHPを覚えるコストが高い
  • スケーリングが面倒くさい
  • WP自体が1枚岩過ぎて複雑になりすぎている

WP REST APIで解決できること

  • WPをバックエンドシステムとして扱える
  • 普及しているWPの管理画面を使えることは利用者の学習コストを大幅に下げることができる
  • フロント側では本番環境でもステージングでもライブデータを扱える
  • マイクロサービスの一部としてのWP。他のCMS都の連携も
  • APIの結果にキャッシュを効かせることができるようになる
  • 開発のワークフローの改善(フロントとバックエンド)

実例

  • フロントエンドをnode.js+React。バックエンドをWordpress
  • フロントのサーバはDocker
  • npmのサイトもバックエンドはWordpress
  • node.js側でキャッシュしているのでWP側が落ちても大丈夫
  • NewYorkTimesやWiredなどでも利用されている

WP-APIはWPのテーマ主体としたエコシステムを変える存在になりうる。

カスタム投稿タイプはWPのボトルネックになる。WP-APIで複数のカスタム投稿タイプを利用するのであれば、WP自体をカスタム投稿タイプごとに分けてしまうのもあり。

感想

タイトルの段階では特に興味はなかったんだけど、今回一番面白い話だった。

確かにWordpressのフロント側ってのは面倒くさいんだけど、Wordpressのバックエンドは使いたいって要望はありそう。というか本編中でもあったように利用者の学習コストを大幅に下げることができる。

それに加えて、バックエンド側を開発するコストも大幅に下げることができるので、案件全体の省力化が見込めるような気がする。カスタム投稿タイプ周りなんかもあるので、テスト的にやってみてその辺りを確認してを見てみたい。

CakePHP3レポート / 伊藤 潤樹 (@Junkins_110)

内容メモ

CakePHP 2と一番変わったところは、ModelのEntity。これを有効に使うことでModelの負担を減らし、よりCakePHP3らしいコードを書くことができる。

感想

別の方が補足記事を書いてくれている。

ライトニングトーク

トランスパイルという文化の話 / 平尾ゆうてん (@cloud10designs)

セキュリティは2016年も「熱男」で行こう! / Tomohiro Hanada (@decoy_service)

PHP関数他探訪2016 / 平田 哲 (@debility)

発表資料が公開されている。

Codeceptionでテストしよう / 野島 隆 (@nojimage)

発表資料が公開されている。

Composerを活用した脆弱性ハンドリングツールのご紹介 / 諌山鉄平 (@tette)

発表資料が公開されている。

まだ正規表現で消耗してるの? / 岸田 健一郎 (@sizuhiko)

発表資料が公開されている。

Perlに比べてPHPが不便(主観です)ああ…だから僕は… / 石田 絢一 (@uzulla)

発表資料が公開されている。

swaggerでかっこいいAPIドキュメントを作ろう / 渡辺 一宏 (@kaz_29)

発表資料が公開されている。

PHPカンファレンス福岡 2015 に行ってきた

先日行われたPHPカンファレンス福岡に行ってきたので、感想や気になったことなどをメモ。

率直な感想

PHPカンファレンス福岡。今日はずっとレガシーなシステムに関する話を聞いてる気がする。やっぱりレガシーとどう向き合うかが課題なんだよなぁ

ref. https://twitter.com/atyks/status/614686488647696384

項目 内容
日時 2015年6月27日(土)
URL http://phpcon.fukuoka.jp/
会場 福岡市博多区博多駅前2-10-19 福岡ファッションセンタービル(FFB) 8階
Twitter https://twitter.com/phpcon_fukuoka
ハッシュタグ #phpconfuk

あなたと秘伝のタレ mid 2015〈@uzulla氏〉

秘伝のタレは基本的には「悪い物」として扱われており、その存在は否定され続けています。

我々は秘伝のタレについてどのように付き合い、どのように安全にタレを補充していくのか。あるいは秘伝のタレとどうやって決別していくべきか。

いくつかの秘伝のタレの具体例を交えつつ、あなたとタレの今後の付き合い方について、一緒に考えましょう。

秘伝ははじめから秘伝なのではなく、使いまわされる中で文脈が欠落していき、秘伝化する。そして文脈が欠落したまま継ぎ足されていき、別の使われ方をし始めたりする

外部ライブラリが腐っていないとは限らない。一番ひどいタレは実はフレームワークなのかもしれない

  • 自分側がタレになっていることも
  • 新しいものが良いとも限らない
  • そもそもPHPがタレなのでは?

大切なことは、流行っているものや、他の言語、言語に依らない知識を学ぶこと
普通に書く。アクロバティックではなく普通に書く

10年超えるサービスのphpバージョンを4から最新にする話〈@linyows氏〉

php4.3で、テストもない、サーバも物理で、冗長化もされてない、サーバもコード化されてない、デプロイはFTPという、10年越えサービスのphpバージョンアップを通して行った様々な改善で得た知見を話します。

サーバ切り替えは一気にやらず、ロードバランサーで新旧サーバを振り分ける
はじめは新環境の方へのトラフィックを少なくしておいて、徐々に切り替えていく

  • インフラ周りをVagrant、Chef、Capistranoに置き換えていき、開発環境のポータブル化を進めた
  • PEAR周りは新しいバージョンに置き換えることはせず、自力でアップデートしていった
  • 半年くらいかかった

phpspecで始めるBDD〈@ex_takezawa氏〉

phpspecの利用方法とビヘイビア駆動開発のポイントを解説します

BDD(Behavior Driven Development)
– Test First, Test Driven Developmentの流れ
– テストとリファクタリングを繰り返すCI

PHP Spec。オブジェクトの振る舞いを使用として自然言語で記述する

behatによるRESTFUL APIのテスト、及びbehat extensionの作り方〈@hanhan1978氏〉

Restful APIのテストを例に出しつつ、behat extensionの自作方法をレクチャーします。内容的には中級者向けですが、なるべく初心者でもステップを踏めば、自作可能なように努力します。PHPにおけるBDDの裾野が少しでも広がればと思います。

  • behatはcucumberのPHP版。テストを自動的にやってくれる
  • テスト(feature)とアサーション(step)は自分で作る
  • テストを作るための敷居が引くい(昼休みにでも試せるレベル)

当日の資料

オープンソースな帳票ツールを作りました〈@hidakatsuya氏〉

オープンソースな帳票(PDF)ツール Thinreports for PHP の紹介。
シンレポーツと呼びます。特徴としては、マルチプラットフォーム対応のデザイナで簡単にレイアウトが作れること、日本語表示ももちろん OK なこと。使い方や今後のロードマップなどを紹介します。

  • Rubyで作ったPDF帳票ツール Thinreports をPHPに移植した
  • Thinreportsは、ChromeエクステンションのeditorとPDFを生成するGeneratorで動作する
  • 今回移植したのはGenerater側
  • レポジトリはThinreports Generator for PHP

当日の資料

僕がエンジニアを辞めた理由〈栗林 氏〉

オフショアを利用した開発・運営の話。ベトナムオフショアを採用した経緯、今後ベトナムオフショアを使用していく理由

  • やることがいっぱいあって、開発以外のタスクが増えて来たのでオフショア
  • ベトナムは単価が安い、でもバグが多い
  • バグが多いのは要件定義がちゃんとできていないことも原因
  • 要件定義は大切(全体の7割くらい)

実はまだエンジニアやってます

PHPでHerokuを利用したWebサービスの作り方〈@hiro_y氏〉

conasu(https://conasu.co)などWebサービスをHerokuを利用して開発・運用するにあたってどのような部分に気をつけて開発しているか、ローカルの開発環境をどうしているかなどをお話しします。

Herokuの特徴
– Gitによるデプロイ
– Compserによる拡張のインストールが可能
The Twelve Factorsという考えかた
– でも、東京リージョンがないのでレイテンシは低め
– 料金体系が変更になり、無料のプランだと24時間連続で立ちあげられなくなった

素晴らしき Carbon の世界 〜あなたも今日から日時マスター〜〈@omoon氏〉

一度使うとやめられない、DateTime の拡張 Carbon(http://carbon.nesbot.com)の素晴らしさを、愛を込めてお伝えします。

基本的な使い方、便利な使い方、テストでの使い方、ハマりどころ、等、Carbonのすべてを、一気にお伝えします。

ホント便利そう

当日の資料

CakePHPを業務で使ってみた(7年ほど)〈@k1LoW氏〉

会社として業務においてCakePHPという1PHPフレームワークとどのように向き合っているのか?どのように効率化を図っているのか?飽きないのか?もうLaravelでいいのではないのか?公開できるギリギリの範囲で紹介します。

  • 会社で1フレームワークのみを採用するのはメリットとデメリットがある
  • デメリットはCakePHPの考えかたの枠に囚われてしまうこと。「ほげ言語」のパラドックス。隣の芝生を青く感じていこう
  • メリットはフレームワークのレール(ベストプラクティス、ライブラリ、プラグイン、自動生成)を伸ばしやすい

「ほげ言語」のパラドックス
普通のやつらの上を行け —Beating the Averages—
あなたは本当に、他の言語を学ぶべきなのか?

インフラエンジニアからレガシーPHPへのレイヤーアップ〈@pyama86氏〉

ISPのサーバエンジニアから、WEB業界に転職し、10年もののPHPのWEBシステムの開発者となった際に、アグレッシブに改善し、そこで既存不具合を踏んだことや、サービスを良くしていったこと、安全にレガシーシステムを触っていくための方法論の話

レガシーは必ずしも悪ではない。リファクタリングはナウく書くのが目的ではない。
– 触る範囲を明確にする
– E2Eテストを使ってUIの挙動とDBの値を保証できれば大きく信頼性を高められる

とある事業の脱レガシー 〜技術的負債を取り戻すプロジェクトの物語〜 〈@tanakahisateru氏〉

もっともイケてないタイプの架空のPHPプロジェクトを例に取り、いまどきのWeb開発では一般的にどうしたらいいのかを、未経験者でも楽しくわかりやすい形でお伝えできたらと思います。これから始める人、うっかりイケてない始め方をしちゃった人に、経験者から、今のうちに知って欲しい、PHPプログラミングの周辺の基礎を。

ITは直接売上を上げるわけではないのでレガシーが残りやすい
– Gitは重要
– チケット管理は重要
– テスト環境をVagrantで構築
– テストサーバをAWSに。最終的に本番もAWSに

最終的には人事、社風を変えていくことが大事

当日の資料

LT

2015年はOWASP Kyushuが熱男(アツオ)!〈@decoy_service氏〉

お前は今まで入力したフォームの値を覚えているのか 〈@k1LoW氏〉

  • typd :Chromeの拡張。Formの入力値を簡単に再現できる

東京(西側)の勉強会事情 〈@akira1908jp氏〉

  • 勉強会やったほうがいいよ
  • 気張らなくてもなんとかなる的な

日本語文字ライブラリの紹介 〈@cloud10designs氏〉

  • JSで日本語のNormalizeをするライブラリJaco
  • PHP側と同一のAPI、設定を使えるようにしたい
  • そうすることでバリデーションなどに統一感を持たせることが出来る

後で試したいことまとめ

Fukuoka.php Vol.13に参加してきた

概要

項目 内容
日程 2014年04月25日(金) 19:30 – 21:30
会場 株式会社グルーヴノーツ
公式ページ https://www.facebook.com/groups/355557634510818/

PHP Security @cakephper

パーフェクトPHPのp376〜p383を参照

変数汚染攻撃

PHPでは配列のキーを変数名として展開する場合があり、脆弱性が入り込む

攻撃URL例)test.php?_server[REMOTE_ADDR]=hogehoge

foreach($_GET as $key => $val) {
$$key = $val; // ここでキー名を変数名として展開している
}

もしくは、extract() 関数を利用する

extract($_GET);

このようにすると、本来は上書きできない変数に値を注入することができてしまう

本来は使わないほうが良いが、フレームワークなどでも利用されていることが多い。
使わざるを得ない場合は、事前に配列のキーが問題ないかどうかをちゃんとチェックすること。

nullバイト攻撃

文字列の途中でヌル文字(¥0, 終端文字列)が入ってしまった場合、バイナリセーフではない関数で利用されると問題が発生しうる

攻撃URL例)test.php?file=/etc/passwd%00.txt

// null文字以降を無視するバイナリセーフな関数と、バイナリセーフでない関数を混ぜて使ってしまうと問題
if(file_exists($_GET["file"]) && substr($_GET["file"], -3, 4) == "txt") {
print file_get_contents($_GET["file"] );
}

確かこんなコードだったと思うのだけど、手元だと再現しない。なぞ
※ 市川さんに再現するコードを教えてもらいました。PHP4.3だと再現、PHP5.4だと再現しない?

Null文字は事前にチェックして削除しておく。また、関数はバイナリセーフなものを利用すること

SecurePHP

市川さんが作成したライブラリの紹介、以下の様な機能がある。
・Null文字、制御コードの削除
・配列のキーのチェックと削除

seh. SecurePHP

Webアプリケーションの脆弱性診断 @y_maehira

どのように脆弱性を見つけるか?チェックを自動化するか?

オープンソースの脆弱性診断ツール
[OWASP ZAP][]
: Java製。GUIで操作する。ローカルプロキシとして利用可能
: ログインのセッションも利用できるが、ローカルプロキシとしては微妙

Arachni
: Ruby製。GUI、CUI。
: Web Apprication Security Saner Frameworkに則っているため、カスタムズもできる。YamlでPOSTの内容なども指定できる
: ログインのセッションを利用する機能などはなし

ツールでチェックして問題ないからと言って、安全とは限らない
誤検知と見逃しの両方をゼロにすることはできない。(※ 精度と再現率のようなもの)
・False Positive : 誤検知
・False Negative : 見逃し

また、チェックする場合は、以下の点に気をつけること
・大量のアクセスが発生する
・攻撃のコードが実際に飛んでしまうため、万が一通ってしまうとデータの破壊などが起こりうること
・自サイト、自サーバに以外には試さないこと
・クラウド(AWSなど)の場合は、事前に要確認のこと

OSコマンドインジェクションに関するチェックでは、escapeshellcmd() は使わないこと
seh. PHPのescapeshellcmdの危険性

Proxy toolを用いた自己診断 @greenz_greenz

診断の目的は脆弱性を発見することではなく、安全な状態に持って行くこと

診断の種類
・インフラ系
・Web アプリ系
 ・White Box : CxSuite, LAPSE+, RIPS, PHP-Sat
 ・Black Box : Fiddler, Burp Proxy, [OWASP ZAP]

※ WhiteBoxは、内部の状態が分かっていてチェックすること
※ BlackBoxは、内部の状態を考慮せずチェックすること
※ ツールでは、わからないものもある

Burp Suite Free Edition

・Java製。有料だが、フリー版もある
・ローカルプロ式として動作する
・日本語は文字化けする
・パラメータを手動で調整可能なので便利

プロキシの切り替えには、Chromeなら 拡張機能 Proxy SwitchySharp が便利
入力値だけではなく、出力時の対策も必要

参考資料

OWASP Cheat Sheet Series
IPA 安全なWebサイトの作り方
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践

Webセキュリティ入門 @Eidwinds

IPAのテクニカルウォッチによると、脆弱性の報告のうち、約55%がXSS、続いてSQLインジェクションが多い

XSS
・パラメータのエスケープなどの対策が必要
・保険的対策として
 ・CookieにHTTP-Onlyを追加する
 ・Traceメソッドを無効にするなど

SQLインジェクション
・プレースホルダーを利用し、SQLの書式を正しく構成する
・保険的対策として
 ・エラーメッセージをそのまま表示しない
 ・データベースの権限を正しく設定するなど

脆弱性の確認のためのやられサイトとツールについて

Web Security Dojoといったところで、やられサイトのイメージ(VirtualBox)やツール、解説を公開している。カジノのポーカーサイトの例では、他人になりすましてログインしたり、無限にコインを増やしたり、役を確定させたりなど色々できる。

使い方、デモについての動画も公開されている。seh. https://www.youtubh.com/user/MavenSecurity
そのほかOWASPbwaなども

質疑

WebAPIの脆弱性の考え方について

・基本的にWebアプリの考え方と変わらない
・FormがないのでURLを基準にチェックする
・ブラウザからアクセスされないと思わずにチェックする

Webサーバの脆弱性を診断するには?

有料のものならばあるが、無料のものはあまりない

[OWASP ZAP] : https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

初心者向けデータマイニング@福岡 Supported by AIPに参加してきた

概要

項目 内容
日程 2014年04月23日(水) 19:00 – 20:00
会場 Rubyコンテンツ産業振興センター
公式ページ http://www.zusaar.com/event/5027006

第一部

データ分析関連の勉強会

データ分析やビッグデータが流行している割には、特定のツールに関するモノ以外の勉強会は福岡でもは少ない。
R勉強会@福岡
・Hadoop関連技術勉強会@福岡

データ分析ブームを起こしたい

データ分析

Data to Information, Information to Creation

モチベーションは事業のコアになる部分と重なる
・売上アップ
・作業の効率化
・今まで気づかなかった知見の創出

データ分析の流れ ###

  1. 収集
  2. (蓄積)
  3. 事前処理
  4. (蓄積)
  5. データ分析
  6. 可視化、予測

データ分析に焦点が当たりがちだが、可視化は特に重要

応用分野の紹介

化学分析
: 効率的な実験条件や環境をシミュレーションする。多目的な最適化やトレードオフ分析

医療分野
: カルテからの知見抽出。高血圧、肺がんなどの予測や症状からの薬のレコメンド
: 在宅健康支援ネットワーク。血圧や体重、生活習慣などの生体データから事前に予測する

センサー分析
: M2Mクラウド

会場での使用例の紹介
・BI
・地価の分析
・バグの発見
・成功事例の分析

質疑 ###

小規模なデータ解析の例にはどのようなものがあるのか?

15件〜300件のレコードを対象にした分析を行ったことがある。データ量は少なくとも多変量解析をやりだすと時間や計算量が増加してしまう。また、迅速に結果を出すためにもデータ分析は必要。また、少ないデータで予測するのは、大量のデータを相手にするより大変になる。

第二部 フリーソフトではじめる機械学習入門

参考書をベースにして読み進める

書籍について

フリーソフトではじめる機械学習入門

・取っ掛かりとしてはよい
・事例としてWekaが取り上げられており、試しやすい
・ただし、難しいことを学ぶには不向き

また、Wekaはビッグデータの分析には使えないので要注意。
※ 帯や書籍にはビッグデータについて触れられているが、ほんとに触れられているだけ

特に、1章,2章,3章,4章,6章,7章,10章,11章,12章あたりが参考になる

分析ツールについて

Weka
Pentaho
KNIME
R
Rapidminer
SPSS

様々なツールがあるが、用途に合わせて使い分けることが大事
実際の分析では複数のアルゴリズムを使用するため、そのツールでサポートされているアルゴリズムは大事

分析ツールは、プログラムが掛けなくても分析が行えるのが利点

ビジュアル化には以下の様なツールがある ###

・Excel
・Pendtahoなど

分析について

モデル化する
数字の集まりから数式を導き出すこと

収集と整理 ###

・データセットに対してどのようなアルゴリズムや手法を用いるか、あたりを付けるには数をこなすのが大切
・Google Scholarなどで類似例や前例を探したり、一先ずやってみて当たりをつけたりする

生データをそのまま分析に書けるのはハイレベルすぎるので処理にかける
・クリーニング、クレンジング
・データの結合
・ノーマライズ(正規化)
・データの間引き(データが多すぎる場合など)

そもそもデータを集めるのが大変
→ ビッグデータとはいうけれど、そんな大きなデータはあまりない

評価基準

・分析に入る前に決めておく
・クロスバリデーション(交差検定)などを行うかどうかも

大まかなデータ解析の体系 ###

・教師あり解析
 ・識別(主に文字列に対して。ベイジアンネットワーク)
 ・回帰(主に数値に対して。関数)
・中間的手法
 ・半教師あり(機械的に行い、人手で調整する)
 ・深層学習(多層ニューラルネットワーク)
・教師なし
 ・モデル推定(クラスタリング)
 ・パターンマイニング(バスケット分析)

有名な「おむつとビール」の話はパターンマイニングに相当する。

その他

Code For Fukuoka

オープンデータを推進していく団体として「Code For Fukuoka」を立ち上げる。今後、福岡市など行政にたいいてオープンデータに関する意見や要請を行っていく。

会場からの事例紹介

ScutumというSaaS型のWeb Apprication Firewallでは、人手での攻撃パターンの学習には限界が有るため、攻撃の判定にベイジアンネットワークを利用している。

今後の会について

せっかく大人数集まった勉強会なので、今後も継続していきたい。まずは福岡でデータマイニングのコミュニティを作り、分析手法やツール、ハンズオンなどの勉強会を行っていきたい。

※ はじめにFacebookでグループを作る

Future Sync Vol.3に参加してきた

概要

項目 内容
日程 2013年05月11日(土) 12:30 – 19:00
会場 九州産業大学
公式ページ http://futuresync.jp/
公式Twitter [@future_sync]
ハッシュタグ [#futuresync.jp]

[@future_sync] : https://twitter.com/future_sync
[#futuresync.jp] : https://twitter.com/search/realtime?q=%23futuresync.jp&src=typd

仕事がらみでドタバタが続いている中でのイベント参加。前日までどうしようかと思っていたけど、勢いで参加。なにげにFuture Sync自体も初参加。FutureSyncは有料のイベントということもあって、最後のLTとクロージング以外はUstreamは配信しないとのこと。なので、ここに書くメモも秘密っぽいことは端折ってまとめておく。

オープニング

Future Syncは「数年後の未来」。いろんな人がいていろんな未来がある。それを同期させることができればもっと面白いものができるのではないか?というネーミング。遠い未来よりももっと近くの未来。そして、Vol.3のテーマは「知識の寄り道」。いつもはあまり触れ合わないようなセッションに参加して欲しい。

ゆとり世代/デジタルネイティブと呼ばれる10代のワカモノが見るセカイ – 吉田 拓巳 氏

フリートーク風のセッション。スピーカーの吉田氏は、家入 一真さんからの出資やアドバイスを受けて高校生で「セブンセンス」を起業したらしい。ノリと勢いで起業する新しい感じ。

サービスについて

10代のネット疑似選挙 Teens Opinion
B-DASH Lab.「ようこそ、近未来。僕らの九州へ」
お年玉.me

お年玉.meは、学生がTwitterのフォロワーなどからお年玉をもらえるようにするためのサービス。2013年1月にリリース。サービスの構築はかなりの短納期。勢いで作った。が、炎上。ハム速にも取り上げられ、TwitterやFacebookでもバッシングを受ける。
セブンセンス社長16歳の吉田拓巳くんが作成したお年玉を貰える乞食サイトが資金決済法に引っ掛かりPayPal規約違反で大爆死wwww

一度は炎上してみたほうがいい。それで分かることも色いろある。とのこと。この辺は家入さんも似たようなことを行っていたなぁっと思う。

ゆとり世代について

参加していたのは、学生半分、社会人半分くらい。簡単な挙手アンケートで、学生の一部には「ゆとり世代」といわれることに不快感があるとのこと。しかし、ゆとり世代は良いものだという話。確かに勉強時間は減ったが、勉強すれば就職できるかどうかも分からない世の中になっている。それよりも時間があるのでいろんなことに挑戦できる世代。

どうせ学生は失うものはあまりないのだから、どんどん挑戦していったほうがよい。

新しい企画

Teens Opinionなどを経験し、新しい企画はどんどん実況して行ったほうが良い。リリースまで内容を秘密にするという今までのやり方は古い。どんどん実況することで参加者が増える。参加者は規格に参加していくことで、規格に親しみや愛着を感じてくれるようになるし、よいアイディアも出てくるようになる。

何をするか?がなくても起業していいんじゃないか?

世の中では起業するに辺り「何をする会社なのか?」「マネタイズは?」などいろんなことを考えることを勧めている進めている。でも、起業をやりたいと思うのなら、やらない理由を考える前にやれば良い。どうせ学生は失うものはあまりないのだから、どんどん挑戦していったほうがよい。マネタイズも後回しで考えれば大丈夫。

広がるAWS − 堀内 康弘 氏

Amazon AWSのエバンジェリスト 堀内氏のセッション。

クラウドファーストが常識になる

広がる事例

・東急ハンズ:自社でデータセンターももっているが、クラウドを活用
・Nasa:火星探査のキュリオシティでもAmazon AWSを活用
・オバマ:ネット選挙で活用。構成などをawsofa.infoで公開
・DropboxやPinterestなどはAmazonのS3というストレージサービスを利用している
 ・単なるストレージサービスだけなく、静的なサイトなどの公開にも利用できる

広がる理由

・企業のニーズが出てきた
 ・今までの固定費としてのサーバ費用から、変動費に
 ・自分でサーバを運用するよりも低額で可能
 ・キャパシティの見積もりが不要。必要になれば追加すれば良い。不要になれば削除すれば良い
 ・サーバ調達のスピード感、敏捷性の増加
 ・サーバの運用などの差別化できない仕事を意識しなくて良くなる
 ・数分でグローバル展開が可能(AWSで世界中に分散できる)

・クラウド側の機能が整ってきた
 ・AWS内にプライベートクラウドが作れるように
  ・VPC(Virtual Private Cloud)、VPN、AWS Direct Connect
 ・セキュアなクラウド(様々な安全規格に合格)
 ・機能の追加も頻繁に行われている

・ソフトウェアのクラウド対応も進んできた
・OSやプログラミング言語、DBなどのミドルウェア
・各種ソフトウェアの対応も進む
・AWSでは、作成時のオプションで自動的にWordpressがインストールされた状態で構築できたりする

Webにとらわれない運用

今までのAWSは、Webサービスの枠組みで捉えられていたが、業務システムなどへの利用も進んでいく。

おすすめの書籍

beyond IA Thinking – 坂本 貴史 氏

IA とは Infomation Architecture(情報アーキテクチャ)のこと。

情報アーキテクチャとは

情報をわかりやすくして、見つけやすくすること。課題解決のための具体的な方法ではなく、解決方法へのアプローチ。コンテンツや技術、デザイン、全てに関わり、「オントロジー(意味論)」、「タクソノミー(分類)」、「コレオグラフィー(振る舞いやルール)」と言ったものからなる。

シナリオが重要

従来、情報アーキテクチャを考える上では、ワイヤーフレームやサイトストラクチャ、ナビゲーション、ラベルなどが使われる。また、ペルソナを使ったユーザの想定やユーザが実際に利用することを考えたユーザシナリオ、ジャーニーマップなども使われる。

が、一番重要なのは、シナリオ。通常、サイト構成から考えていきがちだが、はじめにシナリオを考えることが大事。

モバイルフロンティア

サイトの位置付けをちゃんと考えることが大事。世の中には様々なチャンネル(PC、テレビ、モバイル、ソーシャル)が存在するが、サイトはどの段階で使われて、次にどんな行動を起こして貰いたいと考えるのかを考える。それによって、求められるものが異なる

常に「なぜそうなるのか?」を考える

おすすめの書籍

僕達のWWW Webクリエイターのこれからを考える – 村岡 正和 氏

スライドが公開中

Webは今どこに向かっているのか?

Web Platformという考え方。Webは世界でたった一つのネットワークで世界中がつながっていることに意味がある。前地球的なデータプラットフォーム。One Webという考え方。そのプラットフォーム上で動作する Web Application、Webアプリの時代。

HTML5と最近のWebの進化

HTML5は、Webの進化を加速させたキーワード。試しにHTML5が出てからのブラウザのバージョンアップの速度は加速されている。

最近のWebの進化は以下の様な物が考えられる

機能性
: HTML5 APIsを始めとするAPI群。ブラウザだけではなく、デバイスのAPIも叩けるようになってきている
: GPS、加速センサー、Bluetooth、USBなど

安定性
: ブラウザの進歩

高速性
: asm.jsを代表とする取り組み。ゲームのような物理演算やレンダリングが可能に
: Tear-able cloth in asm.js
: Epic Citadel

相互運用性
: Firefox OSやTizenなどWebブラウザをベースとしたOSの登場

村岡 氏の注目するHTML5の技術はAppCacheとWeb StorageといったWebのオフライン化を可能にする技術。これにより高速なユーザ体験が可能になる。

Webクリエイターとしてどう考えるか?

・Webサイトからアプリへのシフト
・Web技術は、ブラウザの外へ広がっていく
・WebビジネスはWeb制作業界の外へ広がっていく

一見すると活躍の場が広がりそうだが、Webの技術は敷居が低い。そのため異業種からの参入やクリエイターの増加など急激なコモディティ化が進むかもしれない。そうなったとき、Webクリエイターとしてどう生きていくか?

Webクリエイターの定義を変えよう ###

今までのWebクリエイターは、デザインする人、開発する人などを指す言葉だった。それを分野にとらわれず別のキーワードで捉え直す。
・Web制作で高いパフォーマンスを発揮できる人
・様々な場面でWeb技術を活用できる人
・Webに関わる業務でイニシアチブを取れる人

キーワードは「作るから創るへ」

そのためには、深い知識、実践力、ノウハウ、最新の情報、様々な業界の知識などを磨いて、活かしていく事が大事。

監修した書籍

Webアクセシビリティ事例集およびJIS X 8341-3:2010解説書

Co-Creative時代の企画・ディレクション – 阿部 淳也 氏

今のやり方を疑ってみて、考えて行動することが大事。

僕たちは何者なのか?
Webの領域は広がっていき、様々なものや事が多様化して複雑になっていく中で、Web Productionはどうなるのか?
その変化を危機と捉えるか、チャンスと捉えるか?

動画の紹介

R/GAのプロモーション動画
 ・テクノロジーは人生を変える
 ・アナログ時代の受動的な人たちは、デジタル時代のアクティブな消費者に取って代われれた

Epic Mixのプロモーション動画
 ・スキーと山をプロモーションするのに、山全体をソーシャル化した
 ・RFID を使ってユーザの行動を可視化、ゲーミフィケーションも取り入れた
 ・従来のアナログなプロモーションとは全く異なる

認識を変えるのではなく、現実を変えることが重要
今までの広告は認識(イメージ)を変えようとしてキャンペーンやカタログを作ろうとしていたが、これからは新たな付加価値(利便性の提供、関係性の構築など)へのシフト、コミュニケーションプラットフォームの構築へのシフトを考える必要がある。

これからのWeb Production

・競争から協業へ。クライアント、エージェンシー、プロダクション、開発者
・短期的な広告から、中期的な投資へ
・広告予算(費用)から、マーケティング予算(投資)へのシフト

Webはタッチポイントの一つでしかない

そのために

・クライアントと一緒に提案から考える時代へ
・そもそもクライアントの与件は正しいのか?
・アイディアや要件は無償ではないという認識の共有。

ワークショップをクライアントと共同で行うことで、ビジネスの要件、現状の問題点、ユーザニーズなどを共有化していくことができる。また、クライアントを巻き込むことで、クライアントにも自分で決めた感がでて手戻りが少なくなる、戦略レベルでクライアントに関わることができるようになる、プロセスの見える化ができるようになり予算が付けられる様になったりする。

また、共同でワークショップをやるにあたって、席をバラバラにして座ったり、発言を偏らないようにしたり、終了後写真をとって置くなど、色々な工夫が必要になる。いきなり、初めからやろうとすると大変になりすぎるので、毎日の中で少しずつ変えながら準備をしていくことが大事。

LT大会 + クロージング

当日募集したLTに10組以上の参加。イベントの告知や紹介など盛りだくさんのLT。また、3分間のLTでほとんど時間オーバーがないという珍しいLTだった。イベント事の告知のみを列挙しておく。

また、LT大会とクロージングのみUstreamで配信されていた様子。
Ustream

GDG DevFest Japan 2013 Google I/O 報告会
: 2013年5月25日(土) 九州産業大学 情報科学部
: Google I/Oの報告会

TDD Boot Camp Fukuoka 2013
: 2013/06/15 (土) – 2013/06/16 (日) 福岡県Ruby・コンテンツ産業振興センター
: ブートキャンプ式にTDDを体験するイベント。テストの書き方と利点を2日間に分けて
: テストが使えれば、言語は問わない。学生無料

Agile Japan 2013 福岡サテライト
: 2013年5月26日(日) 福岡県Ruby・コンテンツ産業振興センター

Qu De L 福岡の学生のためのデザインを語る場
: デザインを学んでいる、デザインに興味のある福岡の学生のためのデザインに関するあれこれを情報交換するFBページ

八時間耐久作品制作会
: 毎月やっているイベント
: クリエイターが集まって、8時間で実際に作品を創るイベント

福岡市西区プログラム勉強会
: 2013年5月26日(日)

カナダ ブリティッシュ・コロンビア州「ICT・デジタルメディア産業セミナー」
: 2013年6月4日(火)

AWS Summit Tokyo 2013
: 6月5日、6日の2日間
: 東京都品川

明星和楽
: 今年も秋ごろに開催予定

HTML5 Carnival Fukuokaに参加してきた

概要

項目 内容
日程 2013年02月9日(土) 13:30 – 18:30
会場 九州産業大学
公式ページ http://html5-carnival.jp/
Togetter http://togetter.com/li/437845
主催 HTML5+α@福岡, html5j.org

仕事がドタバタしていた中で、最後まで参加できるかどうかかなり微妙な感じだったけど、無事参加。特にオフライン・ファーストの話は非常に面白く、試しで何か作ってみたいと思うような話だった。

また、イベント自体も参加人数が500人という大賑わいのイベント。HTML5がメインということでどちらかと言うとプログラマよりデザイナ系の人のほうが多かったかもしれない。少なくとも会場のアンケートの職業欄には、「プログラマ」という欄は存在しなかった。「サーバエンジニア」はあったんだけどなぁ。

USREAM

12105教室
: http://ustrh.am/TDVb

12106教室
: http://ustrh.am/TDV6

12107教室
: http://ustrh.am/TDUI

オフライン・ファーストの思想と実践。白石氏

オフラインファースト

Offline first a better HTML5 User Ecperience」という記事で取り上げられた考え方。ただし「オフラインで使えるWebアプリケーション」という考え方自体は、2007年のGoogle Gearsなど昔からある考え方。しかし流行らなかった。

オフラインWebには、「オフラインで使える」「スピードが速い」という特徴がある。結果、ユーザビリティが向上する。

Offline is Feature

ではなぜ、今まで流行らなかったのか?。
オフラインで使えるということは「自然とそうなる」のではなく「一種の機能」である。機能であるがため、意図的に実装を行う必要があるが、読むのが中心のWebサイトでは、オフラインで使えるという機能を実装するコストがメリットを上回らない。

一方モバイルアプリなど編集が中心のWebサイトでは実装するためのコストがメリットを下回る。また、今後の企業向けモバイルアプリの大半はHTML5になるという予想も有り、オフライン・ファーストの考え方は大切。

読むのが中心のサイト
: コスト > メリット

編集が中心のサイト
: コスト < メリット

オフラインWebのためのAPI

オフラインWebを実装するためには、いくつかの手段がある

アプリケーションキャッシュ

Cache Manifestと呼ばれるファイルリストを作成し、ブラウザにキャッシュを指示するもの。大量のページを対象にするとキャッシュの容量の制限やキャッシュの構築の時間がかかるのが欠点。Titanium Mobile 2.0.2 API Documentsなどで使われている。

#3 「あまりApplication cache(cache manifest)のことを甘く見ない方がいい」 Advent Calendar 2012 | tech.kayac.com – KAYAC engineers’ blog
アプリケーション キャッシュ初心者ガイド – HTML5 Rocks

Web Storage

ブラウザに組み込まれているキー・バリューストア型のデータベース。格納できるのは文字列のみだが、JSONを使うことで様々なデータを格納することが出来る。JSONでデータのやり取りを行うため、使い方によっては遅いことがある。

Indexed Database API

ブラウザに組み込まれているデータベース。Javascriptのオブジェクトをそのまま格納することが出来る。また、非同期で使用できたりとWeb Storageよりも高機能だが、RDBMSほど柔軟ではなく、APIがイケてない。また、SafariやOperaでは実装されておらず利用できない。

File API

Chromeのみで実装されているAPI。なのでChrome以外では利用できない。GoogleのGoogleSlideではこのFileAPIを利用して実装されている。

オフライン・ファーストの勘所

オフラインWebは、通常のWebサービスと前提が全く異なるため、開発の途中からオフラインWebの機能に取り組むのは難しい。そのため、Webアプリケーションの最初の設計から想定しておく必要がある。

例えば、アプリケーションとサーバを切り離して開発を行ったり、Wrapperを通じてWeb側のAPIを呼び出すなどして、データソースやネットワーク呼び出しを抽象化しておく必要がある。

データの同期処理も難しい

オフライン・ファーストに必ず必要なデータ同期処理も難しい。これを楽に実装できるようなAPIなどが標準化されることが望ましい。
・同期の途中でオフラインになったら?
・更新が衝突したらどうする?
・必要最小限のデータ動機を行うためには?

NoSQL DBとJavascript。原田氏

NoSQL誕生の背景

Webの拡大によって、RDBMSとSQLの組み合わせでは手に負えない状況が増えてきた。そこで、各Webサービス提供者やデータベースベンダがそれぞれに問題を解決するため新しい仕組みを作り始めた。例えば、Google、Facebook、Twitter、Oracleなど。

そのため、NoSQLと呼ばれる一つのものがあるのではなく、様々な考え方のものが存在しNoSQLと一括りにはできない。また、それぞれに向き不向きがあるため、すべてのRDBMSがNoSQLに置き換わられるということではない。例えば、RDBMSはトランザクションや集中管理に向いている。

種類と特徴

NoSQLにはいくつかの大まかな種類と沢山のプロダクトが存在する。ドキュメントストア(html5 Indexed Database)、オブジェクトストア、グラフストア、キーバリューストア(html5 Web Storage)、カラムストア(Hadoop, Google Bigtable)など100種類以上のNoSQLが存在する。

よくNoSQLの特徴としてあげられているものもNoSQL全体の共通項目ではないので要注意する。例えば、スキーマ定義は不要、Rest/JSONのAPI、JSONを格納できる、Javascriptエンジン/シェルを含むなど。

Javascriptエンジンにも色々な種類がある

SpiderMonkey、V8、Javascript Core、Rhino、Trident、Chakraなど。それによってNoSQLに組み込まれているJSエンジンも異なる。Javascriptエンジンによっても向き不向きがあるため要注意。

Webの例(ライブコーディング)

ブラウザに組み込まれているIndexed DatabaseとWeb Storageを使ってJavascriptによるデータベースアクセスをライブコーディング形式で紹介。

Local Storageはブラウザ全体で共通して使える。永続化も。使用できるのはSame Originポリシーの適用範囲内で利用可能になる。Same Originポリシーは、同一ドメイン、同一ポート、同一プロトコルの範囲のみ。Session Storageは、一つのタブやウィンドウで独立したストレージ。永続化は行われない。 Indexed Databaseは使うのに手間がかかる。白石さん曰くイケてない。

ハイブリッドアプリ開発最前線から見たHTML5n理想と現実。田中氏

ハイブリッドアプリとは

・モバイルのは様々なOSが混在、そして今も増加中
・html5で作るとマルチプラットフォームで動く?でも遅い?

ハイブリッドアプリとは、ネイティブアプリの良いところと、HTML5の良いところを組み合わせて開発するアプリ。ガートナーの予想では2015年には企業向けアプリの50%はハイブリッドアプリになる。

例えば、HTML5+(PhoneGap、TriggerJO) + (Zept-js, Jquery,Sencha Touch) + (Objective C, Java)などの組み合わせ。世界的にはとりあえずPhoneGapを使っておこうという風潮もある。

HTML5の利点と欠点

利点 欠点
クロスプラットフォーム ネイティブAPIが使えない。OSの機能や課金など
低コスト開発が可能 開発環境が貧弱(デバッグ環境など)
クロススクリーン 標準が揃っていない(OSやブラウザなど)

Monaca(デモ)

HTML5で作られたハイブリッドアプリの開発環境。ブラウザベースのWeb IDEとPhoneGapベースのフレームワークの2種類の形態で提供中。

AndroidやiPhoneアプリとして提供されている「Monaka デバッガー」を使用することで、Web IDEで開発した内容が自動的に更新され確認することができる。また、HTMLで苦手なLook&Feel(メニュー、アニメーション、ツールバー、タブバー)や速度が出ないところ、ネイティブの機能などをネイティブ開発することで補うことができる。

ハイブリッドアプリの問題点

デバッグがしづらい、クロスプラットフォームへの対応の難しさ、フルネイティブと比較した時のヌルサク感、ネイティブを組み合わせること
によるポータビリティなど、問題点はある。

HTML5は本当にマルチデバイス対応の銀の弾丸か。羽田野氏

マルティデバイスとは?

Web業界では、PC、携帯、スマホ、タブレットなどに対応することをマルチデバイス対応ということがあるが、本当にそれだけだろうか?例えば、ゲーム機、テレビ、車、デジタルサイネージなどHTMLやWebの技術が利用されている領域は増え続けている。それにより、スペックの多様化、OSのフラグメンテーション、ブラウザの多様化など、個別の作りこみにも限界がきている。

では、HTML5ならばOne Source Multi Deviceが可能なのだろうか?これは独自のAPI、独自のパッケージング、独自のUIなどデバイスごとにことなるため不可能。これが現実。

例)テレビに組み込まれているブラウザ(OperaやNetFront)のHTML5対応度は下手なスマホよりもよっぽど高い。でも、テレビのマシンスペック自体が低いため、実行速度は遅い。

例)スマホやタブレット、カーナビ、テレビなど、用途によってUIは全く異なる。

コンテンツ流通の限界

レイアウト、スケール、プログレッシブ・エンハンスメントなどが異なるため、微妙な調整が難しい。MVC的な考え方を導入し、MCと共通化し、Vのみを各デバイスごとに準備するなどの対応は今後も必要になっていく。

HTML5でOne Source Multi Useは可能か?

同じ言語でアプリが作れることは、学習コストやトータルのコストが低下するためHTML5の利用する意味はある。ただし、常に理想と限界のギャップが存在するため、今後も環境に応じた調整を行なっていく必要は続く。そして、HTML5自体も進化が続いていく。

Web技術の目利き

HTML5によってビジネスの競争の土台が変わった。アプリの基盤や開発技術のコモディティ化が進んでいる。そのような世界で起業や開発者が生き残っていくためには、採用する技術やマーケットを最先端の業界の中で見極めて集中と選択を行なっていくための目利き(ソムリエ)としての能力が必要になって行くのではないか?

気になった話

デジタルサイネージには、動画コンテンツは向かない。なぜならサイネージを見つけて通り過ぎるまでにかかる時間は5秒以下。そのようななかでコンテンツを見せようとしたとき、動画のコンテンツでは間に合わない。もちろん休息所など人が長時間留まることが考えられる場所であれば別。

サイネージに表示する画像についても、通り過ぎるまでの時間を考慮して切り替える必要があるし、動きをつけるのならばその秒数以内とする。

クロージング

クロージングでは、プレゼントの当選者の発表や全体の質疑応答などがあったので、その中からいくつか。

HTML5をより高速化するにはなにができるか?

・JSではなくCSSでやる
・HTTPのリクエストを少なくする
・minifyやgzipなどを行いデータサイズを減らす
・ファイルの数を減らす
・例えばCSSで影をつけるより、影付きの画像をあえて使ったほうが早くなることも

Adobe Edge Codeは単独提供されないのか?

自分が聴講していない話の中でそういうアプリが紹介されたらしい。

Adobe Edge Codeはオープンソースプロジェクト「Brackets」のディストリビューション版とのこと。なので、それを利用してもいいかもしれないとのこと。Adobe Edge CodeはCSS編集、CSSエディタらしい。

参加者のブラウザの使用状況

ブラウザ毎に挙手してもらったところ、会場の参加者は、ほぼChromeユーザ。9割くらいだったかも。

IE = Safari < Opera < Firefox <<<<< Chrome

オープンソースカンファレンス福岡2012に行ってきた

概要

項目 内容
日程 2012年12月8日(土) 10:00-18:00
会場 KCS福岡情報専門学校(福岡市中央区春吉1丁目11-18)
公式ページ https://www.ospn.jp/osc2012-fukuoka/
Togetter http://togetter.com/li/398124/

本当は午前中から参加する予定だたったけど、結局午後からの参加。かなり面白い話が聞けた会でした。また、引き続きの懇親会ではじゃんけん大会でダーツをもらったり、そのまま久しぶりのダーツをやったりとかなり楽しめたイベントに。やっぱりこういう会は面白いなぁっと思う。

「jus研究会福岡大会「IT業界を良くする方法」」 小室 文 氏

IT業界は3K(きつい、厳しい、帰れない)と言われているが、これを良くするにはどうしたら良いだろうか?という問題に対しての提言型のセミナーに。はじめに登壇者の話を聞いたあと、簡単なグループディスカッションなども。ただ、まだ頭が働いてなくてグループディスカッションの結果を書き留め忘れた始末。

・まずは男性の就業環境を改善することが大切
 ・女性は様々なサポートがあるが、男性には少ない

例えば、タスクが多い、一つのことに集中できない、家族を養うにのが自分だけ、病気になれないなどのプレッシャーにさらされている。そのためには負担や拘束を減らして責任範囲を明確にするなどして改善していくことが大事。

また、これからは女性の社会進出を増やして行かないといけない。そうしないとただでさえ労働人口が減る中で、男性の負担が更に増加してしまう。男性の負担を減らすことが出来れば、過程の負担がヘリ、女性が育児をしやすくなり、女性が働きやすくなる。そして男性の負担が減るという良いループが生まれるのではないか?

「HTML5がもたらす世界 ~W3C側の立場から~」 一色 正男 氏

Webは世界最大のオープンプラットフォーム。従来のドキュメントを共有するためのプラットフォームから、アプリケーションを実行するためのプラットフォームになって来ている。ブラウザがあれば、アプリケーションがどこでも動作する。大切なのはInteroperability(相互運用性)とDevice Independent(デバイス非依存)。

Webで様々なことが実現できるようになってきている。HTML5の最終リリースはまだだが、実装はすでにある。Web Socket、Geolocation、SVG、Video、Web Intents、Canvas、Drag And Drop API、この他HTML5には様々なAPIもある。

W3Cとは

・世界最大のオープン組織の一つ
・プログラムではなく規格をオープンにする
・70を超えるワーキンググループがある
・日本の役割も大きい

実装主義
: 規格が決まるためには複数の実装が必要とする

コンセンサスモデル
: 規格を決めるためには、全員の合意を必要とする

Web Platform.org

HTML5やJavascriptに関する資料やチュートリアル、デモを集めたサイト。今までバラバラに存在してきたものを一箇所に集める。Wiki形式で記事が書かれており、日本語のものも。http://www.webplatform.org/

若い人たちに向けて

・飯をちゃんと食え
・ガシガシ作れ
・発言するのは大事

「ビジネスインテリジェンス入門~OSSでBIを始めよう~ 2nd Ed.+」 佐伯 健介 氏

ビジネスインテリジェンス(BI)とは1989年に提唱された考え方。「企業が持つデータ分析を専門家の手から、実際にビジネスを動かす現場に取り戻す」ための考え方。現場がデータ分析を行えることで、迅速に対応することができる。

インテリジェンスとは?
: 少ないデータを元に意味を導き出すこと(データや情報とは異なる)
: 導き出すには、機械的な技術や経験が必要

Data(事実)からDecision(意思決定)やAction(行動)を導き出す。BIはあくまで提案するだけ。実際に意思決定や行動を行うのは会社の経営陣。そのためにデータを集め、整理し、眺めて、表現する。

Jasper Reports Server
: オープンソースのBIシステムツール
: Javaで動作する
: 有償版とフリー版がある
: 日本JasperServerユーザ会

「オープンソースだけでは解決しない! 中小企業IT化の現場の声!」 菅 雄一 氏

非IT系の中小企業で独力でオープンソースを導入して業務を改善してきた。社内サーバとネットワークの導入を業者に見積依頼したところ100万の見積りが出てきたが上司が高すぎると指摘。Linuxと空いたマシンを使って本を読みながら導入していったところ、自力で構築できたのがきっかけ。
導入過程は講師の菅さんのWebサイトの「システム奮闘記」も参考に。オープンソース(OSS)で中小企業のIT化

それ以降様々なオープンソースシステムを導入していった。結果、オープンソースでは「無償」、「思ったら即実行できる」、「失敗しても損しない」ため、試行錯誤が可能になり、機会損失を防ぐことができた。中小企業にとってオープンソースは非常に重要なもの。ただし、素人では限界があるため、技術力の向上は大切。

しかし、オープンソースで業務の効率化は可能だが、経営方針などは旧態然として変わらなかった

オープンソースの限界

経営課題のうち、ITで解決できるのはごく一部でしかない。そのためにはBPMNや経営戦略、経営課題の抽出などの経営学の知識を使って解決していく必要がある。しかし、実際には様々な問題があり、中小企業が経営学の導入は難しい。

・部分最適化に陥りがち
・根本問題が見つけづらい
・危機感の欠如
・現状維持に陥りがち

そもそも経営学は日本人に向いていないのではないかとも思い始めている。

中小企業の問題点
・日本では意識改革をしたがるが、それでは生産性は向上できない
・マネジメントで方向性を示せれば、日本人的な一致団結が可能ではないか?
・大手のIT化、人員削減、業務改善によって中小企業が割を食う
・法律に弱く、法務がない。人員を確保するのも難しい

そもそも頑張らなくても会社が回るような仕組みが重要ではないか?

この辺の話もシステム奮闘記にまとめられている。経営戦略入門 IT担当者のためのIT経営入門

ライトニングトーク&閉会式

「上海でOSCを開きたい」 菅 雄一 氏

・中国政府はオープンソースに関心が強い
・でも、一般人は不正コピーや海賊版がメイン
・あまりオープンソースの需要がない

中国はその他料理も美味しく、面白いのでぜひ上海でやってみたい

「Firefox User Support On Twitter」 catback 氏

FirefoxのユーザサポートをTwitterを使ってやってみた話。Army Of Awesome。TwitterからFirefoxに関するキーワードを検索して、それに対してサポートする仕組み。意外と好感触だった。

「今までの活動・これからの活動」 今泉 香菜絵 氏

KCSのオープンソース部の紹介。ダーツに関するシステムを作成した。まだまだ足りないところもあるので今後も続けていきたい。

「オープンソースカンファレンス2013 Tokushima 下見旅行へのお誘い」 東平 洋史 氏

青春18切符で東京から愛媛まで行くイベントをやった。そして今年もやるよ

「未定(翻訳っぽいねた)」岡野 孝悌 氏

LibreOfficeの翻訳など、オープンソースの翻訳をおこなうプロジェクト、Doc-Ja。Doc-Festというイベントや翻訳カフェなどもやって行きたい。まずは翻訳がおかしいと指摘してくれるだけでもよいので是非参加して欲しい。

「福岡発 OSCの歩き方」 清末 直 氏

福岡から全国のOSCへ参加した話。移動手段や移動時間の紹介と、各地の名物紹介。

「イベント告知『Future Sync vol.3』」_koyanagi 氏

バスを探す福岡アプリの紹介。Future Syncの紹介。昨年も行ったFuture Sync、みんなの頭にある未来を同期させようという意味を込めたイベント。来年も2013年5月11日に九産大でやるのでぜひ来て欲しい。

D2K 778th 規格外な生き方

概要

項目 内容
日程 10月24日(水) 19:00
会場 レソラ NTT夢ホール
登壇者 家入 一真 氏
ハッシュタグ #d2k

家入さんの話を前に聞いた時の話はこれ。seh. [2012-09-23-1]

規格外の生き方

遊び場を遊びながら作る。遊び場とは、「なにか新しいことが生まれる場所」。

自己紹介とやってきたこと

・来歴
 ・22歳の時にpaperboy&co起業。Webの遊び場
 ・29歳の時に上場し、それを期に退任
 ・partycompany、カフェ事業。リアルの遊び場
 ・ハイパーインターネッツ
  ・CAMPFIRE、クラウドファウンディング
 ・partyfactory、ベンチャー支援
 ・Liverty。会社ではなくチーム。

・Webもリアルも人が集まってくる遊び場と捉えるとなにも変わらない。
 ・クリエイターを支援したい
 ・起業もひとつの自己表現。アーティストやクリエイターと同じように人の心をざわざわさせる

Liverty
 ・会社ではなくチーム。
 ・様々なサービスをみんなで集まってくる
 ・より自由に生きるために。Live + Liberty = Liverty

・何にもできないというけれど、何とかして生きていけるのではないか?
 ・ぼくのおつかい
 ・Orepon
 ・顔面広告

規格外な生き方をしよう

・肩の力を抜いて自由に出来ればいいと思う
 ・会社や組織に依存してしまっているのではないか
 ・依存すると身動きが取れなくなってくる。これはリスク
 ・人生には色々な生き方があり、選択しがある

・自由な生き方とは
 ・仕事以外にも沢山の顔を持つ
 ・仕事も収入も分散させる(一つに依存しない)
 ・嫌なことはしたくない

・遊び方
 ・仕事と遊びなんて分けられない
 ・遊びから仕事に
 ・友人もどんどん巻き込んで仕事する
 ・楽しく遊びながら仕事すれば、支援してくれるファンも増えてくる
 ・仲良くなってもマンネリ化してきたら一回ぶち壊す

・ものづくり
 ・機能より物語が大切
 ・自分が何かできないなら、出来る人を巻き込めばいい
 ・とにかく最短距離で実現させる。例えば、3ヶ月以内にできることをする
 ・アイディアはとにかく晒す
 ・逆境を最大限に利用する

・自分に厳しい人が多いが、一回ぶち壊してみると実はなんてことないことが多い。
 ・「三年我慢すれば云々」→すぐやる、今やる。さっさとやってみて、それから考える
 ・朝からビールを飲んでみると、細かいことがどうでも良くなって気楽になれるのでおすすめ

・今の日本では、失敗しても死ぬことはそうそう無い → ならやろう!!
・「〜だからできない」を「〜だからできる」に

パネルディスカッション

家入氏、覚田氏

家入氏

・コンプレックスが原動力。他人に認められたい
 ・上場した時に一つの夢がかなったので退任
 ・飲食がやりたかったが、「上場してカフェ事業」は王道パターンと言われる
  ・言われるのが嫌だったので一気に6店舗作ったら、お金がなくなった

覚田氏)

・仕事でパフォーマンスが出せていれば自由にできることがある。

家入氏)

・自由にもいろいろな形がある
 ・自分の好きに自由にしたい人もいる
 ・なにをしても良いと言われるとなにをして良いかわからなくなる人もいる

家入氏)

・お金を稼ぐということは大切
 ・生活を維持するため
 ・お金を稼ぐことで自信にもなる

・どうせ稼ぐなら、アーティスティックに好きなことをしたい
・全く同じ物を作っても、その中の物語が異なる

覚田氏)

・日本は人間の母数が小さく、ニッチだと成り立たないのではないか?

家入氏)

・会社では成り立たない領域でも、個人なら成り立つことが多い
・日本でなら、東京なら、福岡なら
 ・それぞれの場所でできることをやればよい
 ・他と比べる必要はない

Fukuoka.php Vol.4

概要

項目 内容
日程 10月23日(金) 20:00 to 23:00
会場 ギルドカフェコスタ(福岡市中央区大名1-10-14)
Facebookグループ https://www.facebook.com/groups/355557634510818/
Togetter http://togetter.com/li/398486

場所がギルドカフェコスタということで飲み放題付きのイベントに。後半になるにしたがって段々お酒が入ってくるのが面白かった。そしてそのまま懇親会に突入。

@akase244氏のFacebookでのまとめはこちら

アメリカ訪問記 @withelmo 氏

以前自分も参加した福岡Rubyビジネス拠点推進会議の主催で行われたRubyシリコンバレーミッションへの参加報告。自分が参加した時の記録はこれ([2009-11-27-8])。自分が参加したときはかなり刺激のある内容だったし、あれから3年ほど経っているので色々変わったんだろうなぁっという思いながら聞いた話。

なので聞いた話のメモ以外にも前回の感想を思い出しながら書いていたりする。

Heroku

Ruby on Railsの環境を提供するPAAS。自分が言ったときはフロアが手狭だったらしく近くのガレージ的なところで講演+ちょっとしたレセプションだったのだけど、今回の発表を見るとかなり大きなフロアになっていて面白かった。でっかくなるってのはすごいなぁ。

どうも自転車を駐輪するときは立てて駐輪するのが主流らしい?

seh. [2009-11-27-4]

github

ここは前回行ってない。というか当時会社自体がなかったんじゃないか。短期間でこんな大きなインフラや企業ができるのもすごい。

githubのコンセプト
: 仕事をしやすくするための環境を提供する

・入り口には看板がない。写真を見るとただのビルの入口

・ワークスペース毎にコンセプトがあり使い分けている
 ・集中するためのegg roomなど

・なぜかビアサーバもある
 ・いつ、どういう機会で飲むのかは不明
 ・仕事中というより、仕事終わりやイベントごと時に飲む?

・社員の半数が遠隔オフィスで働いている
 ・そのため社内ではリモートでの会議を行うために動画配信システムなど有り
 ・会議の内容なども動画で配信していたりするらしい

Engine yard

ここもクラウドを利用したPAASを提供している会社。シリコンバレーミッションでは毎回お世話になっているらしい。っていうかいつの間にか日本語のページまでできているのが驚いた。

seh. [2009-11-27-3]

Plug and Play Tech Center

ベンチャーのインキュベーション施設。最近では福岡の企業も増えてきているらしい。ヌーラボや一風堂も。また、福岡県も事務所を構えている様子。

seh. [2009-11-27-6]

なんかわかりやすいまとめがあった。Quaterly Report: シリコンバレーで“プラグ・アンド・プレイ”

Scribd

文書共有サービス。Slideshereと似ているが、対象はスライドだけに限らず文書全般。数年前、FlashからHTML5にシステムを作りなおしたらアクセス数が大幅にアップしたらしい。

Scribdのコンセプト
: オンラインライブラリーを目指す

その他

Twitter社やLinkedinなども

初心者向けっぽいお話 加賀澤 氏

PHP初心者に向けたお話だったのだけど、あいにく当日はPHP初心者が少ないという事態に。そのかわり話題はPHPのフレームワークの使用率のアンケートなどの質疑コーナーに発展。

HTMLに直接埋め込めるのが売りだったが

メンテナンス性の問題からテンプレートエンジン(Smartyなど)が登場。現在はフレームワークの全盛の時代。抽象化が進む。これによってプログラマは便利になったけど、デザイナなどには取っ付きづらくなってきているのではないか。

単にPHPを覚えるだけではなく様々な周辺知識が必要になってきているし、それらを知ることで分かるようになってくる。例えばHTTPやサーバサイドの話、Coockieやセッション、キャッシュなど。

(この辺からPHPの基本的な動きや制御構文のスライドがあるも割愛)

PHPフレームワークの話

会場内で使用しているフレームワークのチェック。CakePHPが圧倒的。数はおぼろげな覚え。また、挙がっているのは会場で名前が上がったもの。

フレームワーク 使用人数
CakePHP 13人
Zend フレームワーク 1人
FuelPHP 2人
symfony 0人
CodeIgniter 2人
俺々フレームワーク 1人

WordPressのローカライズとか多言語処理のお話 @takayukister 氏

ローカライズ、多言語化、国際化は、それぞれ意味が事なる。

ローカライズ(localization, I10N)
: 現地化。英語のものを日本語にするなど、ある特定の言語に対応させること

多言語化(Multilingualization, M17N)
: 様々な言語に対応し、切り替えて使用できること。日英中韓を切り替えられるなど

国際化(Internationalization, I18N)
: 様々な言語で利用するための設計や仕様などを組み込むこと。

WordPressと多言語化プラグイン

Wrodpressでは、L10NについてはGnu gettextで、M17Nについてはプラグインで対応している。

gTranslate
: HTMLのコメント中に言語を埋め込む。ポータビリティが低く、他のプラグインとコンフリクトする

WPML
: 独自のテーブルを多数追加する。ポータビリティが低く、他のプラグインとコンフリクトする。有料

いずれもポータビリティが低く、他のプラグインとコンフリクトするなどおすすめしない。また一旦特定の方法で多言語化すると、他の仕組みに乗り換えづらくなってしまう。ので、作った

Bogo
: WordPressが元々持つメタデータ情報を使って多言語対応を行う
: ので、テーブルを追加しない
: ので、コンフリクトしづらい
: 無料

第11回 福岡IT飲み会に参加してきた

項目 内容
日程 10月10日(水) 19:00 to 21:00
会場 GuildCafeCosta(ギルドカフェコスタ)
公式ページ http://www.it-nomikai.jp/fukuoka/before-info/121010

いつかオフレコの話も飛び出したけど、そこら辺はもちろん回避しつつ気になったところを抜書きして文章風に再構成。

飯塚市議の方のブログ
: 福岡IT飲み会へ。ゲストスピーカーの武雄市長樋渡啓祐さんのスピード感がいい!!

以下、抜書きして文章風に再構成したもの

シリコンバレーにいってGoogleなどを見学してきたが、そこで感じたのは強烈な緊張感+圧倒的な自由度。この組み合わせが世界を変える。シリコンバレーは周辺都市との距離感など武雄市に近いかもしれない。

今までは組織の大きさや肩書きで評価されていたが、これからは何を言ったか、なにを行ったかで評価されるようになる。

武雄市は知名度が低い。早稲田大学で行った講演の際に「武雄市を知っているか」と聴衆に尋ねたところ、知っていたのは一人。しかも知っていたのはカンボジアのタケオ州のことだった。それ以前に佐賀県の知名度自体も低い。同じく早稲田大学で「佐賀県はどこにあるか」と100人に尋ねたところ77人くらいしか分からなかった。知られているということはブランド。そして、ブランドは付加価値。まずは知られることが大事。

付加価値をつけるには、他の価値をもつものと組むのが早い。そのためには意思決定者と合う必要がある。決められない人と会ってもも仕方がない。スピードは最大の付加価値。相手の懐に飛び込むことが大切。しかし、決められる人は忙しい。そのためには最初の5秒が大切。話し方、内容、行動のいずれも大切。この話は「大阪の橋下府知事がデーブ・スペクター氏から学んだこと」というおまけ付き。また、CCCとの武雄市立図書館委託の件も、たまたま少しだけ一緒になったCCCの社長に短時間でアピールしたことが提携のきっかけを作った。

トップの役割は人の気持ちを奮い立たせて動かすこと。

あらゆるものを劇場化する。すると人が注目してくれる。これは人口5万人の田舎にある市出会っても同じ。

・対等に組む(大手を相手にしても)
・反省しない
・何事にも過ぎる(大げさに、やりすぎる)
・パクリ倒す
・劇場化する

プレスリリースなどアピールする場合は時期を考えること。例えばニュースが少ない連休中など、新聞が暇な時などが狙い目。

これからの武雄市
・機業家を集めたい
・エンジェル投資を行なって行きたい
 ・代わりに投資先の株を保有するなど
・このようにすることで雇用が生まれる。雇用が生まれることが大切
 ・なにかやる→所得が増える→福祉などが充実する→(最初に戻る)

人はものじゃなく、物語(ストーリー)を買う。FB良品ではただ商品を紹介するだけではなく、作り手自身が商品を紹介するなど。「情報」ではなく「共感」を発信する事が大事。

SNSが万能だとは思っていない。ただし、いろいろな人達とつながることができ、コストパフォーマンスがいい。「情報」ではなく「共感」を発信する事が大事。ITは使ってなんぼ。

最大の悪は無関心。もし逆風ならば、順風に変えれば良い。

告知。11月16日(金)から18日(日)に日本Facebook学会で総会を開く予定。