1. PostgreSQL9.2 リリース • 2012/09/10にリリース • マルチコアにおけるスケーラビリティが向上。 • JSONをネイティブサポートし、インデックスやレプリケーションの機 能を強化。Index-onlyスキャン、CPU消費電力削減などを実現。 • 最大で毎秒35万件のリードクエリ(従来の4倍強)、データウェアハ ウスクエリのIndex-onlyスキャン(同2~20倍)、最大で毎秒1万 4000件のデータ書き込み(同5倍)に対応。 • カスケーディング・レプリケーションが加わったことにより、水平方 向の拡張性が強化された。 • いくつかの機能について少し掘り下げて説明していきます。 【参考】 http://www.sraoss.co.jp/technology/postgresql/9.2/verification_re port.php 1-1. Index-onlyスキャン • Oracle、MYSQL、DB2などには既に実装されてい る機能 • Indexに格納されたデータのみを検索する場合、 Indexからテーブルを参照しなくても結果を返却 できる • その分、性能向上が見込める →OracleだとB-Treeのみスキャン対象になるっぽい • B-Tree Index知らない人は自分で調べてください。 【参考】 http://www.shift-theoracle.com/index/btree-index.html 1-2. カスケーディング・レプリケーション • PostgreSQL9.0から通常のレプリケーション(非 同期)は実装された • 9.2でカスケーディング・レプリケーション対応 • 簡単に説明するとレプリケーションされるスタ ンバイ機にさらにレプリケーションできるスタ ンバイ機を設定可能 • 以前はプライマリからのみスタンバイ機を設 定が可能 1-3. JSON型 • BETA3から日本語対応 • JSON型をカラムにしているとJSON形式で登録できる →検索できないのでどういった意味が??誰か使い方 調べて教えてください。 • row_to_json関数が便利 →SELECT row_to_json(row(id, name)) FROM EMP; →{“f1”:4649, “f2”:”moguro”} • キーが自動に付与?使い勝手が・・・。 →SELECT row_to_json(tmp) FROM →(SELECT id, name FROM EMP) tmp → {“id”:4649, “name”:”moguro”} 1-4. Range Types (範囲型) • 文字通り範囲を指定できる型 • 今まで日付のFrom、Toは2カラム必要だったのに 1カラムで対応できる • 使用できる型はint4range、int8range、 numrange、 daterange、tsrange (timestamp)、 tstzrange (timestamptz) • よく調べていないので下記参照してください 【参照】 http://postgresql.g.hatena.ne.jp/pgsql/20120416 2. BYOD • 「Bring Your Own Device」の略で私物端末を業務 利用すること • 最近、いろいろな記事などで賑わっている! • スマートフォン普及に伴い、増えてきている • 会社としても経費削減が見込める • ただし、私物端末を業務で使うとセキュリティ事 故のリスクあり • 各企業がいろいろな対策を行っている • 例えば社内システムに私用端末から繋げる場合、 位置情報を取得して社内以外からアクセス不可 3. JQuery関連 • 本日、石○氏が目からうろこの「JQuery Mobile」の説明があります。 • JQueryライセンスの統一 • JQuery Mobile1.2 新機能 • JQuery Mobile絡みで少し補足します →私は簡単な説明ですけど、石○氏は超大作 らしいですよ! 3-1. JQueryライセンス • 今まで「MIT」ライセンスと「GNU GPL」をサポート していた • 今後はGPLを廃止し、MITライセンスに統一 • MITライセンスの特徴 (1) 無料で無制限に扱うことが可能 (2) 著作権表示および本許諾表示をソフトウェアの すべての複製または重要な部分に記載 (3) 作者または著作権者は、ソフトウェアに関して なんら責任を負わない 3-2. JQuery Mobile1.2 新機能 • 2012/10/02にJQuery Mobile1.2 発表 • 主な新機能は以下の通り (1) Popup (2) Collapsible Lists (3) Listview Autodividers ・・・などなど • 新機能はきっと石○氏が説明してくれるでしょ う・・・ • 以下にデモ画面を見れるサイトがあります 【参照】 http://jquerymobile.com/demos/1.2.0/ 3-2-1. Popup • • • • • せっかくなので一つだけ説明 ツールチップやメニューなどをPopupできる Popup画面以外をクリックすると閉じる ダイアログと同じような感じ Popupを表示する元は「data-rel=“popup”」を 記述する • Popup画面は「data-role=“popup”」で指定 • では、ソース例を見ていきましょう 3-2-1. Popupソース // ポップアップでツールチップを表示させる <a href=“#popupTip” data-rel=“popup” data-role=“button” data-inline=“true”>ツールチップ</a> <div data-role="popup" id=“popupTip" class="ui-content" data-theme="e”> これはTooltipですよ </div> // ポップアップでメニューを表示させる <a href="#popupMenu" data-rel="popup" data-role="button" data-inline="true">Menu</a> <div data-role="popup" id="popupMenu" data-theme="a"> <ul data-role="listview" data-inset="true“ data-theme="b"> <li data-role=“divider” data-theme=“a“>お食事メニュー</li> <li><a href=“xxxxx.html”>ラーメン</a></li> <li><a href=“yyyyy.html”>チャーハン</a></li> </ul> </div> 3-3. 脆弱性 • 1.2以前のJQuery Mobileでは読み込んでいるだけで 脆弱性(XSS)を埋め込んでしまうので注意! • 1.2 Betaでは脆弱性(XSS)が改修されたのに 1.2RC1/RC2では別で脆弱性が・・・。 • プロジェクトで使用する時は注意してください。 →1.2 安定版では直っているのかな? • 詳しく説明してくれているサイトがありますので興味あ る方はどうぞ 【参考】 http://masatokinugawa.l0.cm/2012/09/jquerymobile-location.href-xss.html 4. Tポイントツールバー • ブラウザにアドオンするツール • 検索するだけでTポイントがたまる • このツールがWeb閲覧履歴をサーバへ送信 →利用規約に記載していますが・・・。 • SSL通信でもパラメータを取得可能 • クレーム多数・・・。まあそうですよね。 →サーバへの履歴送信やめたそうです・・・。 • ツールを使用するときはパケットキャプチャー必 須ですかね・・・。 5. Android4.1 • Android4.1(Jelly Beans)の新機能 →2012/06のGoogle I/Oで発表された • だいぶ経っているので新機能っていうと・・・。 • 日本でも4.1のNexus7(16GB)が発売 →今購入して、クレジット登録すると2千円貰えるよ • 新機能が沢山あるので気になった3点を紹介 (1) Google Now (2) Notificationの拡張 (3) Android Beam 5-1. Google Now • パーソナルアシスタント機能 • Android上のカレンダー、スケジュール、GPS等か ら予測して情報を表示 • 例えば「2012/10/03 10:00 羽田空港」とカレン ダーに登録しておくと目的地への所要時間、空 港に到着すると便情報などが表示 • 音声などにも反応 • まあ、iコンシェルですね・・・。 • なんか、電池に減りがさらに悪くなりそうな・・・。 5-2. Notificationの拡張 • 今までは通知内容の表示のみ • 拡張できることによってボタンやアイコンを表示 できるようになる • 「Notification.Builder」に設定 →例えば「setLargeIcon()」などでアイコン設定 • そこにアクションを設定できるため、通知内容か らアクションを起こせる。つまり、わざわざアプリ を起動しなくてもいい! →アクションを追加するには「addAction()」 5-3. Android Beam • 何かビームってかっこいい・・・。 • NFCベースの通信で実現 • NFC対応携帯をお互いにタッチすることでアプリ 情報を共有できる →電話帳、ブラウザのURLなど • Bluetooth経由でデータを転送することも可能 • やり取りは「NDEF メッセージ」を使用する 【参照】 http://developer.android.com/guide/topics/conn ectivity/nfc/ 5-3-1. NFC • さすがに知らない人はいないと・・・ • SonyとPhilips社が開発した規格 • 2003/12もISO/IEC IS 18092の国際標準になって いる • NFCとはFeiCaなどの非接触ICカードと互換性が ある近距離無線通信規格です →「Near Field Communication」の略 • 13.56MHzの周波帯で10cm程度の距離を100~ 400kbpsの双方向通信が可能 5-3-2. NFC用途 • カードシュミレーション機能 →駅などで定期、お店の支払いカードなど他規格 との連携 • リーダ・ライタ機能 →ポスターなどICカード、タグなどから情報読み取 ることが可能 • 端末間通信(P2P) →携帯端末同士の連絡先交換など • NFC端末間ペアリング 【参考】 http://www.nfc-world.com/about/02.html 5-3-3. NFC端末間ペアリング • 大きいデータを通信するときに利用 • ペアリングだけをNFCで行い、大きいデータ通信 を「Bluetooth」、「Wifi」などで行うことが可能であ る • この処理を「ハンドオーバー」と言う • 例えば駅などでWifi接続するとき、SSIDと暗号 キーを事前登録しますがアクセスキー登録済の NFC端末を用意しておけばOKとなる • また、近距離でしか通信できないため、盗聴の 可能性が限りなく低い 5-4. Titanium 3.0 • 4.1新機能ではないけど、Android4.1に対応・・・。 • Titanium 3.0 が10/21~10/23に開催される 「CODESTRONG」で発表されるらしい →【URL】http://codestrong.com/ • 2.0までは標準のフレームワークが無かった →自由に記述できるが統一性が無い • 3.0以降ではMVCフレームワーク「Alloy」が標準 になる • 実機でのリモートデバックに対応(すばらしい) • コマンドラインツール「Titanium Studio」を用意 5-4-1. Alloy • Titanium Mobileの開発元「appcelerator」がGitHubで提供 • RoRっぽいMVCフレームワーク • npmでインストールして、「alloy new」でセットアップ →「Play」なんかと同じ感じですね。 • 構成は以下のような感じ • app/controllers/配下にコントローラ(JS) • app/views/配下にビュー(HTML) • app/models/配下にモデル(モデル定義のJSON) • app/config/配下に設定(設定ファイルもJSON) 【参考】 http://www.slideshare.net/donayama/appceleratoralloy 5-5. J2ObjC • スマートフォン絡みということで・・・ • Googleが公開したオープンソース • JavaソースをObjective-Cソースに変換するツール • JavaSE6をサポート • ただし、GUIは作成することはできない • 開発ツールはサポートする予定は無い • 興味があれば自分で調べてください →それほど興味がわかなかったので・・・ 5-6. Selenium WebDriver • これもスマートフォン絡みということで・・・ • Webアプリケーションのテスト自動化サポート ツール • テストコードはJava、C#、Python、Rubyで記述可 能 • iPhone、Androidを含む複数ブラウザ対応 • テストソースは容易に実装可能 • 画面の崩れなどはわからないので繰り返し行う ようなシナリオ試験などに有効なのかな? • JUnitと組み合わせると結果確認も自動化 5-6-1. Selenium WebDriver(サンプル) • 画面A表示(①)、text(name=“xxx”)に文字入力 (②)、サブミット(③)までの流れ WebDriver driver = new FirefoxDriver();//④ driver.get(“http://www.test.com/test”);//① WebElement element = driver.findElement(By.name(“xxx”)); //② element.sendKeys(“sekainoHD”);//② element.submit(); //③ driver.quit(); //⑤ ※④、⑤はブラウザのオープン、クローズ 6. WebPlatform.org • Web Platform Docsというプロジェクト • Microsoft、Google、Apple、Adobe、Facebook などが参加企業 • Webプログラミングでオープンかつ標準づくり を目指しているらしい • メインはHTML5、CSSなど 【参考】 http://www.webplatform.org/ 7. 今月のScala • わが社一押し?の「Scala」情報です • 毎月、徐々に慣れていくためにScala情報を展開 していこうかと思います • 日経コンピュータ9月号に関数型特集が掲載 →次の主役って題名。名古屋大学等でScalaを使用 したシステムを説明 • 今月は2トピックス (1) Developer Contest開催(Typesafe社) (2) 命令型スタイルと関数型スタイル 7-1. Developer Contest • • • • Scalaプログラミングのコンテストです 提出期限が11月末までですが・・・ 賞金は一位が$1,000です! 「Typesafe Stack can do」と記述されているので 「Typesafe Stack」を使うことが条件っぽい • 「Typesafe Stack」とはScalaベースで「Akka」、「Play」な どが含まれるオープンソースのプラットフォーム 【参照】 http://www.typesafe.com/resources/developercontest 7-1-1. Akka • イベント駆動ミドルウェアフレームワーク • 分散アプリケーションを作成するのに向いている(Java、Scalaで開 発可能) • スレッド、ロック、非ブロッキングIOなどを意識することなく実装でき る • 実装する部分はActorなどを使用して、メッセージの送受信を行う • Akka2.0ではScala2.10標準のFutureの実装が行われている →Scala2.9のFuture(Actor用)ではない 【Akkaを試しているソース】 http://www.brainsellers.com/blog/inastream/2011/08/akka.html 【Futureを試しているソース】 http://modegramming.blogspot.jp/2012/09/scala-tips-scala-2104future2.html 7-1-2. Play • 社内システムで使用する予定のフルスタックフ レームワークです • MVCモデルを実現し、「設定より規約」を重視し ている • Scala用ではビルドツールにsbtを採用 • 「Iteratee I/O」を実装しているため、追加設定無 しでWebSocketやCometなどが可能 【Iteratee I/Oの説明】 http://d.hatena.ne.jp/tanakh/20100824#p1 7-2.命令型スタイルと関数型スタイル • Java、C++などは命令型 • Scalaは命令型、関数型の両方可能 • 例えばfor式を使う場合、関数リテラルを使用 することができる • まあ、何を言っているか意味わからないと思 うのでソースで説明します • 配列argsすべてを標準出力します 7-2-1. 命令型スタイル while (i < args.length) { println(args(i)) i += 1 } • 命令型の説明のためであり、Scalaで推奨され る記述方法ではない • インデントは2つが推奨されているらしい 7-2-2. 関数型スタイル args.forearch(println) • この()内に関数を関数リテラルと呼ぶ • 省略しすぎなので以下の記述もできる 【パターン1】 args.forearch(arg => println(arg)) 【パターン2】 args.forearch((arg:String) => println(arg)) 8. JavaEE7 • • • • JavaOne Conferenceが9/30~10/4開催 JavaEE7は2013/4リリース予定 噂されたクラウド対応は見送りっぽい HTML5対応として「WebSocket」、HTML5ではないが JSONサポートなどが含まれる • JavaEE8以降の対応としてPaaS、NoSQLなどが予定され ている →NoSQLはJPAからアクセス可能する • HTML5強化として、Avatarプロジェクトとして進めてい る →詳しい記事みつからない、誰か教えて・・・ 8-1. WebSocketソース • Java API for WebSocket1.0のサンプル @webSocketEndPoint(path=“/ws/test”) public class WsServer { @WebSocketOpen public void onOpen(Session peer) { // 処理 } } 8-2. JSONソース • Java API for JSON 1.0のサンプル JsonObject json = new JsonBuilder() .beginArray(“emp”) .beginObject().add(“No”, “1”).add(“Name”, “John”) .beginObject().add(“No”, “2”).add(“Name”, “Mark”) .beginObject().add(“No”, “3”).add(“Name”, “HD”) .endObject() .build(); 8-3. Apache TomEE • APサーバ繋がりでついでに説明 • 10/8に「Apache TomEE1.5」がリリース →JavaEE6ですけど・・・ • TomEEとはTomcat、OpenWebBeans、OpenEJB、 MyFaces、Bean Validationなどで構成 →正確にはベースにしているだけっぽい • Tomcatとの違いは使っているJarなどが異なる(追加 or 削除している) →詳しくは以下のURLに載っている 【参照】http://blog.teamextension.com/comparingapache-tomcat-and-tomee-913 8-4. Apache Lucene • いつの間にかApache繋がりに・・・ • 10/12「Apache Lucene4.0」がリリース • 同時に「Apache Solr4.0」もリリース • LuceneとはJavaで実装できる全文検索フレームワーク →日本語検索用のアナライザ(JapaneseAnalyzer)も別途 用意されている • SolrとはLuceneベースのエンタープライズ対応の検索 サーバー →4.0はNoSQL検索プラットフォーム • 個人的には凄い興味が10年前から・・・
© Copyright 2024 ExpyDoc