読者です 読者をやめる 読者になる 読者になる

えいのうにっき

あたまのなかのデトックスを、不定期的に。主に Web 系技術ネタ。

春の合同勉強会 in 岡山に参加してきたよ!

勉強会 技術

こんにちは、a-knowです。4月も下旬を迎え、暖かくなるのかと思いきや、油断してると肌寒い日がまだまだ続きますね。
そんななか、4つのIT系コミュニティ(「OITEC」「.NET 勉強会/ヒーロー島」「中国GTUG」「プログラミング生放送」)による「春の合同勉強会 in 岡山」が、岡山はデジタルミュージアムにて開催されるとのことで、参加してきました〜。
勉強会への参加は、前回の「Java Cloud Meeting 2010 in Kansai」以来、2度目。前回とは違って、非常に様々な分野の様々なお話に触れられる、大変貴重な機会でございました。
この日は都合により午後からの参加だったんですが、みなさんのセッションを拝聴しながら遅筆ではありますがメモってみてましたので、前回同様、簡単にまとめさせて頂いておこうと思います〜。走り書き、それも超走り書きなので、お見苦しい点多々あるかと思います。それぞれの詳しいお話が気になった方は、ぜひご本人に直接コンタクトを取ってみてはいかがでしょうか〜♪

勉強会の詳細について

こちらを御覧ください〜。Twitterハッシュタグは「#godoben_oka」です。見返してみてもおもしろいと思います♪

第3セッション「IE9に触れたよ!」(5zjさん(プログラミング生放送))

【概要】
ついに Internet Explorer 9 がリリースされましたね(?)IE9 の新機能、固定サイトの話をします。HTML5 の話はありません。

  • IE9新機能「固定サイト」「サイトの固定」を知る
    • IE9で表示しているWebサイトをタスク化する機能
    • Windows7の機能と連携(7向けのIE9の機能)
    • IE9上のタブをタスクバーにドラッグアンドドロップ。ニコ動も対応。ジャンプリスト・コンテキストメニューとかも特化する。ブラウザで表示しているそのサイトをWin上の一タスクとして取り込むようなかんじ!
    • 通知・アイコンオーバーレイ・サムネイルツールバーの対応・初回起動時のウインドウサイズの固定・サムネイルからの操作・スタ--ートメニューへの追加・・・も「サイトの固定」でできる機能
    • win7タスクバーとの連携がメリット利用者は素早くアクセス・付加機能の利用、提供者はブランディングにも
  • 固定サイトの作り方
    • 一番簡単な方法・・・メタタグを入れることでサイトの固定機能に対応するようになる・アプリケーション名・ツールチップfaviconfaviconの色でナビゲーションバーの色は勝手に決めてくれる!)
    • ジャンプリスト・タスク・・・静的に指定(メタタグを使用・・・タスクカテゴリのみ)、動的に指定(JavascriptAPI?)、何をタスクにするかはガイドラインがあるのでそれを参考に
    • 他ブラウザ用にはtry-catchでつぶしておく
  • ぼくの感想
    • ブラウザのシェア競争が激化しているなか、MSのIEもただ指をくわえて傍観してるわけじゃなかったんだなぁ。
    • この「サイトの固定」機能は非常に興味深い。ブラウザベースの業務向けアプリのユーザビリティ向上策としても有効なんじゃないだろうか。

第4セッション「Railsで春から始めるTDD生活」(山本和久さん(岡山Ruby/Ruby on Rails勉強会))

【概要】
「仕様変更の無いプロジェクトは存在しない」事を開発者のみなさんはよくご存知だと思います。仕様変更に強いプロジェクトを作るためには、テストをコードで書くことが絶対条件です。
今回はRuby on Railsのテストを通じて、TDDをどうやって進めていくかをご紹介します。

  • TDDとは?
    • テスト駆動開発(Test Driven Development、関Javaでも、ひがさんがセッションしてくれたやつだ!)
    • Railsではこういうふうにテストを回してますよ、という話になります
    • まずテストを書き、テストを通るようなコードを書いていく、汚くてもいいから。そのあとキレイにしていく「黄金の回転」。
      • 「最初にテストを書く」ことを強調されていた!前回のひがさんのときは特別そんなことは言ってなかったはずだったけど。「そういう方法もある」ということなのかな!
  • RailsMVC
    • Model:項目の値チェックやレコード単位で行う処理を記述
    • View:画面に表示する内容を記述する。htmlファイル。
    • Controller:ModelとViewの橋渡しを行う。
  • Modelのテスト
    • 入力チェックあ正しく動作しているか
    • レコードに関連する処理が正しく動作しているか?
    • Model間の関連性が正しいか?
  • Controlerのテスト
    • get,postなどのhttpメソッドが正しく動作するか?
    • Modelから取得したデータが正しくインスタンス変数に設定されているか?
  • Viewのテスト
    • Controllerで指定した値が正しく表示されているか?
    • ajaxでの部分行為真が正しく機能しているか?
  • アプリケーションの作成(実演)
  • まとめ
    • ノリの良いテストを書くには慣れが必要
    • 仕様変更が発生しないプロジェクトは存在しない
      • 退行しないようにテストを書くのは必須条件と考える
    • specを見れば仕様がわかる
    • プロジェクトでやってなくても、一人でもTDDはできる!
  • おまけ
    • 自動的にブラウザを起動させてテストを行ってくれる(celeniumを組み込むだけでOK)こともできる
    • 自分の開発環境だったらどういうふうにTDDができるかな?と考えてみてはどうでしょうか
    • (質問)なぜRspecを使ってる?
      • →流行ってるから。テストの書き方は変わる。
  • ぼくの感想
    • TDDでの開発を表現するにあたって「ノリの良い」というのは、非常に的を射た表現だと思う!
    • 「うちの仕事場はそんなじゃないから・・・」と考えるのではなく、「自分一人でもTDDはできる!」「自分の開発環境でTDDをやろうと思ったら何が必要かな?」という思考回路に変えていくことから始めなきゃだな!


 

第5セッション「Google技術がある日常生活 for 春の合同勉強会」(横山 隆司さん(中国GTUGマネージャ・専門学校の非常勤講師・Androidアプリ開発))

【概要】
日常生活で利用できるGoogle技術の使い方と、Googleが提供しているサービスを大まかに紹介します。
※今回はプログラミングの要素はありません。
 某OSCの展示ブースで話を聞いているような気持ちで聞いていただければ十分です。

  • GTUG:google公認のユーザ会、GDRTと連絡をとることもあり
    • Google技術全般を扱う
    • 世界中にあり、マネージャには誰にでもなれる、英語必須、日本には6箇所
    • 5/7に香川でGAE開発入門あり(四国GTUG)slim3あり!!
    • 5/21にオープンセミナー2011@岡山 Google Developer Advocateの松尾さんが来てAppengineのお話
  • 本題に入る前に
    • Google技術ってなに?
      • googleが提供しているAPI・サービスを指す、ライブラリを指す
      • 日常生活で便利になるような使い方を今日は紹介
  • 日常生活での活用
    • コミュニケーション
      • メール:Gmail(チャット機能もあり)
    • 情報発信
    • 情報収集
      • Google検索:ぜひログインした状態で!今までの履歴を保持し、以前参照したことのあるサイトが上位に来るようになっている。参照回数も
      • GoogleReaderRSSリーダー
      • GoogleAlert:指定したキーワードに一致する検索結果を通知、登録しておけば毎日検索して通知してくれる。タイミングはクローリング時と思われる。Gmail or Google Readerに通知できる。「フィード」でリーダー。
    • スケジューリング
    • その他
      • GoogleDocument:文書・表計算・プレゼンテーション・入力フォーム(アンケート)。エクスポート可能
      • GoogleChrome:新しい画像フォーマットを提唱・対応。WebP画像フォーマットのサポート。JPEGからさらに30%圧縮
      • ChormeOS:起動時間が10秒だとか
      • GoogleMap
      • Google日本語入力
      • GoogleLoader:JSの各種モジュールをGoogleからダウンロード
      • Go(プログラミング言語)Cの2割増のスピード、GCあり
  • まとめ
    • 非常に便利なサービスがたくさん
    • 組み合わせて使うことで幅が広がる
    • Androidならより便利に
    • データの共有がしやすい、コピーする必要があない、エクスポートも可能、バックアップも不要
    • 無料
    • ネットワークに繋がらないと全く使えないけどね!
  • ぼくの感想
    • 知ってるようで知らない、Googleが提供してくれているサービスについてのお話だった!
    • Googleアラートは早速登録しよう!(自分の作ってるWebアプリ名とかで)
    • 5月はおもしろそうな勉強会が目白押しだな♪

第6セッション「MIX11で発表されていた、あんなことやこんなこと」(きよくら ならみさん(OITEC))

【概要】
4/11〜14日(現地時間)にラスベガスで開催されていたMicrosoftでMIX11で、ASP.NET MVC3、IE10、Azure、WP7、Silverlight5、KINECTなどについて多くの発表がありました。
その中から、気になったものをいくつかピックアップして紹介したいと思います。

休憩・おやつ&LTタイム

  • Kinect実演
    • 途中で乱入したやつは、僕と一緒に参加させて頂いた会社の同僚ですw
  • LT
    • App Inventorを使ってみよう〜5分あれば何かが作れる・・・か?(あひるさん)
      • 普段は.NETの仕事してます
      • AppInventorとは?
        • Androidアプリケーションの開発ツール、ブラウザで画面をデザインする、ロジックは専用のエディタで
      • AppInventorDesigner
      • BlockEditor
        • パズルを組み立てるようにロジックを組み立てていく
    • MS-Excelでの業務アプリ開発 VBAを利用した特定業種向けシステム開発(板谷浩之さん)
      • Excelといえば
        • 表計算ソフト
        • Wordのかわりにドキュメント作成
        • データ2次利用
        • VBAが利用できる開発環境でもあるんだよ!
      • 開発実績
        • 生産管理システム案件(グラフ機能)
        • 自治体向け検査システム案件(データ蓄積・統計)
        • ICカードの発券システム案件(会員データチェックに利用)
      • VBA
        • VB for Application
    • 今回紹介の開発案件
        • 開発規模 画面≒帳票 A4サイズ約70枚
        • フロントエンドとPGとデータが1つのXLSファイルの中に共存・・・ファイルがどんどんでかくなる
        • フロントエンド、PG、データのファイルに分割
        • データは機能別ファイルから顧客別ファイルに変更
          • →処理時間の短縮、検索速度にも貢献
        • OSの変更、バージョンアップの影響うけてない(リボンの影響はあったが)
        • Sheetを有効活用する、DBの代わりとして利用
      • まとめ
        • 互換性を保ったまま進化を続けているVBA、フロントエンドが表形式の場合はgood
    • jQueryでPPT(みずきさん)
      • PPTを使わずにPPTっぽいものを
        • サイトへのUPもファイル形式無関係に。SEO対策もOK
      • PPTっぽい機能
        • フェード効果
        • クリックによる切り替え
        • クリックモーション
      • jQueryっぽい機能も
        • ポップアップ
        • 簡単ページ移動
        • 好きなプラグインを読み込んで使える状態
      • 機能要望
        • テーブル整形、グラフの整形・・・プラグイン取り込みで消化
        • タイマー機能が課題
        • プリントアウト対策
      • 問題
        • jQuery1.5未対応
    • 児童ポルノブロッキング問題について考えてみる(たかたさん)
      • プロバイダが実施する、強制的にアクセス遮断をする
      • 検索サービス事業者が実施する、検索結果非表示・・・など
        • フィルタリング・・・自分の意志で選択可能
        • ブロッキング・・・問答無用
      • プロバイダ9社で実施
      • 4月からスタートするのはDNSブロッキング
      • ブロッキングの問題:通信の秘密を侵害
        • オーバーブロッキング(制限したくないコンテンツも巻き添えにすること)も問題
      • DNSポイズニング・・・DNSの応答を返さなくさせる、現状設備のままで提供可能、コストが抑えられる、具体的にはBINDで設定するなど
      • 対策:IP直打ち、プロキシ通す、トンネル
        • 抜け道はいくらでもある、最終的には元を断たないとだめ
      • 言論統制もできてしまう、きちんと使われているかの監視・監督が必要

  
  
  

第8セッション「Rubyでお気軽スクレイピング!」(拓人さん(プログラミング生放送))

【概要】
ふと、Webから自動でデータを取得出来ればと思うことがあります。
Rubyを使って簡単にデータを取得する方法を紹介します。

  • スクレイピング
    • Webページからデータを取得すること。WebAPIがあればいいが、ないとHTMLを解析しなければならない。その解析をスクレイピングという
  • HTMLパーサでエレガントに!(正規表現でやるのは気合と根性)
    • Nokogiri or Hpricot(RubyのHTMLパーサ)今回は後者で
  • (Hpricotのhowto)
  • 最近のWebサイトはajaxを使っていたりする関係で正直しんどい
    • 認証サイトの場合は?
      • WWW::Mechanizeで頑張ってみる
    • JSをどうする?
      • デベッガで追跡
      • HTTP通信から傾向を見る
    • 最後は?
      • ブラウザ操作か素直に諦める
    • 少し変わった方法で
      • とあるサイトに解析用のJSをアペンド → ブラウザで表示したらそのJSが走るのでは?レスポンスを経由するプロキシでJSを走らせるイメージ
      • メリット
        • DOMアクセスができる
        • JSの変数取得
        • ブラウザ操作
      • デメリット
        • 少し大掛かり(proxyサーバを作らないといけない)
        • データの保存が難しい
        • Gracemonkeyのパクリっぽく見える
  • ぼくの感想
    • Webアプリでもなんでも、突き詰めて言ってしまえば「データをどう見せるか」ですよね。で、アプリのアイデアがあっても、そのもととなる「データ」をどうしよう、って話はよくあると思う、そんなときの「スクレイピング」で、そして今日の話はその方法論であった、と。
    • 震災支援系アプリでも、大変なのはデータだもんなぁ。スクレイピングってのは、今後もっと検討し発展(リアル方面に)させていくべきものなのかも。

   

第9セッション「少しだけみえてきたOffice15」(上本亮介さん(.NET勉強会 ヒーロー島))

  • Office2010は内部バージョンは14、13は縁起が悪いので飛ばされてるんだよ
  • Officeのセキュリティについてすこしだけ・Office2010のおさらい
    • なぜ今Officeでセキュリティなのか
    • 多層防御 Defenth in Depth の考え方
      • 直接攻撃を防ぐ
        • 防御範囲のレイヤーを明確化
        • 防御を多層化
      • MS的にはWindows2000の頃から
        • 各層にセキュリティ向上のための仕掛け
        • 各層それぞれを多層防御
    • Officeでも多層防御
      • 1層・強化
      • 2層・弱点を減らす
        • ファイル検証機能
      • 3層・悪用を減らす
        • 保護されたビュー
      • 4層・UXを改善
        • メッセージバー
    • 第1層
    • 第2層
      • 拡張子による判別
        • マクロを実行するファイルの拡張子の末尾は「m」とする
      • ActiveX Kill Bit
        • 特定のActiveXコントロールを実行不可能に
    • 第3層
      • 危険性のあるファイルを「保護されたビュー」で開く
    • 第4層
      • 保護されたビュー
        • とりあえず閲覧はできる 状態
        • 操作をさせないことで「慣れ」を防ぐ
      • メッセージバー
    • 背反の落とし所
      • セキュアにしたい
        • 多層防御でガチガチに
      • 生産性を上げたい(下げたくない)
        • Officeのキモは生産性
  • Office15に関する、街のウワサ
    • 完全にWeb化?
      • office Web Appsが完成するらしい?
        • → ムリだと思う
      • 使った分だけお金を払うらしい?
        • → あり得る話?もう箱売はしない?
    • 開発はVSTOに一本化?
      • というよりVSTAが標準になるらしい?
        • VBAはなくなる?
          • → 過去の膨大な遺産を捨てることはしないだろう。マクロの記録はどうなる?
        • Office用に絞りこまれたVSTO
    • 新しい製品が追加?
      • コラボレーション系アプリ?
        • 次世代OneNote
        • Lyncと関係あり?
        • SharePointWorkspaceの立場は?
        • FacebookTwitterと絡む?
      • NUIをうまく取り込んだアプリ?(Natural User Interface)
        • KINECT対応?
        • Production製品とは相性悪くないか?
    • 「moorea」とは?
      • メディアのリポジトリ的に使用して、それを可視化している??
      • アイコンがWord??
    • UIが進化する?
      • リボンはどうなる?
      • WP7のMetroUIを統合?
    • 欲しいフィーチャーは?
      • Ribbon XMLのカスタマイザー
      • WP7とのスムーズな統合
      • VSTA
        • VBAはのこしつつ
      • コンテンツ
        • Officeベースのアプリケーション
        • 高品質のクリップアート
        • Excelなどベースにしたアプリケーションを開発・販売するサードパーティが出てもいいんじゃないかと思ってる
  • 旧版Officeのライフサイクルに注意
  • ぼくの感想
    • Officeに対してこんな輝かしい未来を想像したことがなかった!
    • ちょっとOfficeに対しての見る目が変わったかもしれんw
    • 正解かどうかは別にして、上本さんのつぶやき「メディアのリポジトリ的に使用」「それを可視化」というのは、Officeから離れたひとつの独立したアイデアとしても非常にワクワクするものであるなあ!

・・・てな感じでした!

途中にも書きましたが、5月も岡山・香川でおもしろそうな勉強会が開かれる様子!ドライブがてら、参加して来ますかなぁ♪