タグ

ブックマーク / atmarkit.itmedia.co.jp (27)

  • BFF(Backends For Frontends)の5つの便利なユースケース

    BFF(Backends For Frontends)の5つの便利なユースケース:マイクロサービス/API時代のフロントエンド開発(2) マイクロサービス/API時代のフロントエンド開発に求められる技術の1つ、Backends For Frontends(BFF)について解説する連載。今回はBFFの代表的なユースケースを5つ紹介します。 マイクロサービス/API時代のフロントエンド開発に求められる技術の1つ、Backends For Frontends(BFF)について解説する連載「マイクロサービス/API時代のフロントエンド開発」。前回の「BFF(Backends For Frontends)超入門――NetflixTwitter、リクルートテクノロジーズが採用する理由」では連載初回ということで、BFFの概要を紹介しました。 まだBFFは何をするサーバなのか分かりにくい面もあるかと思

    BFF(Backends For Frontends)の5つの便利なユースケース
  • ゴールドマン・サックス発のJavaコレクションフレームワーク、その7つの特徴と歴史とは

    ゴールドマン・サックス発のJavaコレクションフレームワーク、その7つの特徴と歴史とは:コレクション処理の万能道具箱Eclipse Collections入門(1)(1/3 ページ) 連載では、ゴールドマン・サックス発のオープンソースJavaコレクションフレームワークであるEclipse Collectionsについて、その概要と歴史、機能を中心に紹介します。これまでのJavaJava 8のStream APIと比較して何が違うのか。Eclipse Collectionsを例に、読者の皆さんがコレクション処理をより深く理解するための一助になればと思います。 ゴールドマン・サックスが開発し、オープンソースソフトウェア(OSS)として公開したJavaコレクションフレームワーク「GS Collections」が、Eclipse Foundationに移行し、「Eclipse Collecti

    ゴールドマン・サックス発のJavaコレクションフレームワーク、その7つの特徴と歴史とは
  • なぜ、GPSをオフにしても「位置情報」が取得できるの?――最低限押さえておくべき位置情報取得の仕組み

    なぜ、GPSをオフにしても「位置情報」が取得できるの?――最低限押さえておくべき位置情報取得の仕組み:セキュリティ、いまさら聞いてもいいですか?(8)(1/4 ページ) セキュリティ関連のキーワード関する“素朴な疑問”を解消する連載。第8回では、「位置情報」をテーマに、スマホアプリなどが端末の位置情報を取得する仕組みを解説します。

    なぜ、GPSをオフにしても「位置情報」が取得できるの?――最低限押さえておくべき位置情報取得の仕組み
    operando
    operando 2016/05/21
  • 米フェイスブック、NVMe SSDを最大60基搭載できる装置「Lightning」の設計を公開

    米フェイスブック、NVMe SSDを最大60基搭載できる装置「Lightning」の設計を公開:Open Compute Summit 2016 米フェイスブックは2016年3月9日(米国時間)、同社が主導するOpen Compute Projectが開催の「Open Compute Summit 2016」を機に、多数のNVMe SSDを2Uサイズのシャーシに搭載し、外部接続された複数のサーバから利用できる装置の仕様を公開した。同社はこれを「Lightning」と名付けている。 米フェイスブックは2016年3月9日(米国時間)、同社が主導するOpen Compute Project(以下OCP)が開催の「Open Compute Summit 2016」を機に、多数のNVMe SSDを2Uサイズのシャーシに搭載し、外部接続された複数のサーバから利用できる装置の仕様を公開した。同社はこれを

    米フェイスブック、NVMe SSDを最大60基搭載できる装置「Lightning」の設計を公開
  • 米グーグルがChromecastのSDKを公開

    モバイル端末とTVの垣根を超えるChromecast用のSDKをGoogleが公開。Chrome拡張機能とiOS向けのGoogle Cast SDKは即日提供を開始、Android版も数日中にリリース予定だという。 米グーグルは2014年2月3日、スマートフォンやタブレットなどのコンテンツをTVで再生できるChromecast向けのSDK「Google Cast SDK」をデベロッパー向けに公開した。自分のモバイルアプリやWebアプリにこのSDKを組み込めば、コンテンツをTVに中継できるようになる(Chromecastそのものについては、「グーグルのプレスイベントで見るグーグル新時代の幕開け」を参照)。 Google Cast SDKは2013年7月からプレビュー版が公開されていたもので、AndroidとiOS向け、およびChromeブラウザ向けの拡張機能が用意されている。デベロッパーは

    米グーグルがChromecastのSDKを公開
  • CoffeeScriptやSassなどの使用時にオススメのGruntプラグイン一覧

    連載目次 前回の記事「ブラックなWeb開発現場の救世主、Gruntのインストールと使い方」では、Gruntについての概要とセットアップ、基的な動作を確認してみました。 今回は、Gruntで使用できるいろいろな「プラグインモジュール」(以下、プラグイン)をインストールし、実際に動かして動作を確認してみましょう。 Gruntのプラグインとは、何ができるのか 前回の繰り返しになりますが、プラグインを使用すると、Gruntでいろいろなタスクを実行できるようになります。実行できるタスクの内容はプラグインによってさまざまですが、幾つか例を挙げると、下記のような作業が自動化できます。 CoffeeScript/TypeScriptJavaScriptへコンパイル(変換) SCSS(Sass)/LESSをCSSへコンパイル(変換) ファイルの圧縮/結合/最適化 JSHintでJavaScriptの構文

    CoffeeScriptやSassなどの使用時にオススメのGruntプラグイン一覧
  • JAX-RSを活用して、JavaクラスをWebサービス化しよう

    JAX-RSはもともとRESTアーキテクチャなWebアプリを作成するための仕様だが、これを利用すると、普通のJavaクラスにアノテーションを付けるだけでWebサービスとして公開できるようになる。この記事では単純なJavaクラスを作成し、それをJAX-RSを利用してWebサービスとして公開するまでを示す。 なお、JAX-RS自体はJava EEの仕様のため、Java SEで利用可能なフレームワークはサードパーティによって提供される。記事ではjava.netで公開されているJerseyを利用する。インストール手順などは記事内で説明する。 JAX-RSを利用したWebサービスがどのように動作しているかは最後で解説するものとして、ここではJAX-RSを利用すると、普通のJavaクラスをWebサービス化するのがどれほど簡単かに注目いただきたい。 JAX-RSの意義 全てのソフトウェアをサービスとし

    JAX-RSを活用して、JavaクラスをWebサービス化しよう
  • Android端末で見かける「Google Play開発者サービス」とは何か?

    Android端末で見かける「Google Play開発者サービス」とは何か?:Tech TIPS Androidスマートフォン/タブレットでしばしば目にする「Google Play開発者サービス」。起動した覚えもないのに、なぜかシステムに常駐している。その正体は? 一体何の役に立っているのか? どうすれば最新版に更新できる?

    Android端末で見かける「Google Play開発者サービス」とは何か?
  • 変わらないと生き残れないAndroid Lの新機能まとめ

    連載目次 Google I/O 2014(6月25~26日開催)で、次期Androidが「L」という開発コードでプレビューリリースされました。Android 4.4「KitKat」の次期バージョン「L」は、まだスイーツのコードネームを持たず、7月21日の原稿執筆時点で「開発者プレビュー」という位置付けです。 このAndroid Lは、かなり大きなアップデートであり、さまざまな新機能が詰め込まれています(参考「新しいUIデザイン思想『Material Design』がベース:Android L、Android Wear、Android TV、Android Autoの開発者向け現状まとめ」)。 新機能を大まかに分類すると、以下のようになります。 大きく変わったUIテーマ「Material Design」 新しいランタイム「ART」 「生まれ変わった」Notification Android

    変わらないと生き残れないAndroid Lの新機能まとめ
  • 「設定より規約」のRailsで必要なセッティングの基礎知識と国際化/多言語対応

    前回の「ActionMailerのSMTP設定、テンプレートで送信&ActiveModelの基的な使い方とバリデーション」までで、Railsアプリケーション開発の主要な部分は説明が終わり、そろそろ連載も終わりが見えてきました。今回はアプリケーションの国際化とRailsのセッティングについて解説します。 Railsではビューに記載する文字列やコントローラーやモデルの各種メッセージをユーザーの使用言語に応じて切り替える機能が用意されています。この機能は多言語に対応させるためだけのものではありません。モデルや属性の表現をビューごとに書くのではなく一元管理するためのものでもあるので、変更に強い開発をサポートします。 またRailsのセッティングでは、これまでほとんどデフォルトで使っていた設定を読み解き、Railsの機能について整理します。ステージングやプロダクション環境を作るときには頭に入れて

    「設定より規約」のRailsで必要なセッティングの基礎知識と国際化/多言語対応
  • Node.jsのStream APIで大量プッシュ通知を高速化するテクニック

    連載目次 プッシュ通知を秒間1万4000ほど送るには 前回の「大量データ処理時に知っておきたいAmazonDyamoDB活用テクニック4選」では、Pusna-RSのデータ永続化に使っているDynamoDBの活用テクニックについて解説しました。今回は、そのDynamoDBからAPNs/GCMへのデータ送信までを高速化させた方法を紹介します。 Pusna-RSの配信機能とは 連載第1回「プッシュ通知の基礎知識&秒間1万を超えるプッシュ通知基盤のアーキテクチャと仕組みとは」の際に概要をお伝えしましたが、配信機能はPusna-RSの中で実際にプッシュ通知を行うための機能で、以下の【3】に当たる箇所です。 Pusna-RSではこの一連の流れを最適化させるためにNode.jsのStream APIを活用しています。今回は、このStream APIの活用について紹介していきます。 あらためてNode.j

    Node.jsのStream APIで大量プッシュ通知を高速化するテクニック
  • ゾーンとは何ですか?

    「ゾーン」とは、DNSで提供される情報(リソースレコード)の集合で、ドメイン名のツリー構造の一部を構成する単位を指す。 ゾーンの内容は、人間に読めるテキストファイル形式やリレーショナルデータベース(RDB)の形式などで管理されている。権威DNSサーバーは、設定に従ってそれらを読み込み、記述されている内容に基づいて問い合わせに応答する。つまり、ある権威DNSサーバーが担当するドメインの範囲は、ゾーンによって定義される。 1つのゾーンには、あるドメイン名およびそのサブドメイン名の情報が含まれている。例えばexample.jpゾーンには、www.example.jpやmail.example.jpといったexample.jpのサブドメインの情報が含まれている。 この他、例えばsub.example.jpというサブドメインを別のゾーンに委任するための情報や、example.jpゾーン自身に関する情

    ゾーンとは何ですか?
  • やっと出た! 公式版のProcessingを動画で確認しよう

    外部ライブラリを使って高度なプログラムを作ろう アートやデザインに特化したプログラミング環境「Processing」を紹介するこの連載も、今回で第3回となります。最後となる今回は、Processingをさらに高度に扱うための外部ライブラリを使用したプログラミングについて紹介します。 公式リリース! 前回の「Processingの対話式スケッチプログラミングで遊ぼう」掲載後、以前より予告されていたProcessing 1.0の公式リリースが11月24日に行われました。長らく(α版、β版の期間を合わせると、7年余り)開発版としてリリースされていたProcessingでしたが、公式なバージョン1.0に合わせて、標準APIの追加やシステムファイル構成の見直しが行われています。またアイコンやエディタ画面のボタンのテーマカラーなどが変更されており、公式バージョンを使っていることが分かるようになっていま

    やっと出た! 公式版のProcessingを動画で確認しよう
  • ヒープに対する攻撃とその対策

    攻撃手法を技術的に理解するための連載、今回はスタックと並んでよく耳にする「ヒープ破壊」を取り上げます。 連載目次 前回取り上げたスタックオーバーフローは比較的理解しやすい攻撃手法なのですが、今回取り上げるヒープオーバーフローは少々分かりにくい面があります。恥ずかしながら、筆者自身、これまでなかなか理解ができていなかったのが実情です。スタック管理と比較すると、ヒープ管理はとても複雑で、解説が難しいのですが、ここではできるだけ単純化し、ポイントとなる点をご紹介していきます。 ヒープメモリとは スタックとヒープは、どちらもプログラムに動的なメモリ領域を提供するための仕組みです。スタックは関数の呼び出しなど、プログラムの制御に伴って利用されるもので、コンパイルの結果としてスタック操作が組み込まれるため、プログラマーが意識することは少ないと思います。 これに対してヒープは、プログラム中でmalloc

    ヒープに対する攻撃とその対策
  • ソースポートランダマイゼーションとは何ですか?

    ソースポートランダマイゼーションとは、クエリごとに、フルリゾルバ(いわゆるキャッシュDNSサーバー)が権威DNSサーバーに送るクエリパケットのソースポート番号をランダムに変化させることである。 DNSキャッシュポイズニング(キャッシュ汚染)攻撃を防止するために、フルリゾルバはサーバーに送ったクエリを記録しており、クエリに対応するレスポンス以外を捨てる。図1に、DNSクエリ/レスポンスパケットフォーマットを示す。確認する情報は、権威DNSサーバーのアドレス(図1の「Auth server」)、ポート(53)、フルリゾルバのアドレス(図1の「FullResolver」、通常は1つ)、フルリゾルバのポート番号(図1の「f_source」)、クエリID(16ビット長、図1の「QID」)、クエスチョンセクションの内容(クエリ名、タイプ、クラス(図1の「qname/type」))である。 レスポンスを

    ソースポートランダマイゼーションとは何ですか?
    operando
    operando 2015/01/15
  • DNSキャッシュポイズニング(キャッシュ汚染)攻撃とは何ですか?

    フルリゾルバ(いわゆるキャッシュDNSサーバー)は、名前解決の効率を上げるためにキャッシュを持っている。キャッシュには名前解決中に得られた情報を蓄積し、次回以降の名前解決時に有効に使用する。クエリ名/クエリタイプに一致する情報がキャッシュにあり、有効である場合、フルリゾルバはキャッシュにある情報をスタブリゾルバに返す。 ここで、フルリゾルバのキャッシュに何らかの偽情報を注入することができると、エンドユーザーのクエリに対して偽情報を答えさせることができ、エンドユーザーを偽のWebサイトに誘導したり、エンドユーザーのメールなどを盗んだりすることができる。この行為を「DNSキャッシュポイズニング(キャッシュ汚染)攻撃」と呼ぶ。一度キャッシュへの注入が成功するとキャッシュでの生存期間、誘導が成功する。生存期間の長い情報を注入することで、汚染を長く継続することができる。図1にDNSへの攻撃を示すが、

    DNSキャッシュポイズニング(キャッシュ汚染)攻撃とは何ですか?
    operando
    operando 2015/01/15
  • Webの表示速度を遅くする「SSLハンドシェイク」とは

    Webの表示速度を遅くする「SSLハンドシェイク」とは:現場にキく、Webシステムの問題解決ノウハウ(3) 連載は、日立製作所が提供するアプリケーションサーバ「Cosminexus」の開発担当者へのインタビューを通じて、Webシステムにおける、さまざまな問題/トラブルの解決に効くノウハウや注意点を紹介していく。現在起きている問題の解決や、今後の開発のご参考に(編集部) 知っていますか? SSLハンドシェイク Webアプリケーションで提供するWebページにSSLを適用した場合、SSLでは通信相手の認証/通信内容の暗号化などの負荷の高い処理が実行されるため、WebページのWebブラウザに表示される速度が遅くなることがある。この現象は、SSLセッションを再利用して、「SSLハンドシェイク」(上記の認証/暗号化を含んだ一連の処理)を簡略化することで、解決できる場合がある。 今回は、それらの問題を

    Webの表示速度を遅くする「SSLハンドシェイク」とは
    operando
    operando 2015/01/10
  • 不正アクセスを防止する通信技術(SSL)

    「盗聴」「改ざん」「なりすまし」 インターネットが我々の生活基盤として浸透するにつれて、多くの人がその安全性を重要視するようになってきた。いわゆる電子商取引(EC)はもちろんのこと、個人間での私的な情報のやりとりにおいても、その重要性は日増しに高まっている。 インターネットの安全性とは何だろうか。それは大きく3つのポイントに絞られる。 通信相手は人に間違いないか 通信内容が他人に盗み読まれないか 通信中に内容が改ざんされていないか である。これらのポイントが、インターネットの安全性を考える上で重要となる訳は、話を電話にたとえてみると分かりやすい。 次の図1では、左の女性が通信販売会社「AtMark通販」に電話をして、お気に入りの赤ワインを1クレジットカードで購入しようとしている。日常的にもよくあるシチュエーションだ。この図の中には、前出の3つの観点から安全性を損なう要素が盛り込んであ

    不正アクセスを防止する通信技術(SSL)
    operando
    operando 2015/01/10
  • 初心者がWebフロントエンドを高速化するための基礎知識

    連載目次 ブラウザーの持つ開発ツールとその使い方を紹介する連載「無料で使えるブラウザー開発ツール入門」の第2回です。初回の「初心者がブラウザーでデバッグするための基礎知識」では、フロントエンド開発を始めた方が、ブラウザーに組み込まれている開発ツールを使ってアプリの不具合を見つけ、修正するためのツールとその基的な利用方法を紹介しました。 前回紹介した「DOMインスペクター」「スタイルエディター」「JavaScriptデバッガー」を駆使して、不具合の原因特定と修正を行えるようになり、意図通りに動作するアプリを作成できるようになった方も多いのではないでしょうか。 ところが、フロントエンド開発者には不具合の修正と同様、一定のパフォーマンスの確保もアプリ作成で必要とされます。誰もが体験されたことがあると思いますが、「自分の思い通りに動作してはいるのだが、どうにもこうにも遅くてストレスがたまる」とい

    初心者がWebフロントエンドを高速化するための基礎知識
    operando
    operando 2015/01/10
  • ついに「OpenID Connect」仕様が標準化

    米OpenID Foundationは2014年2月26日、さまざまなWebサイトやモバイルアプリケーションの間で、適切な相手にデジタルアイデンティティ情報を流通させるための技術である「OpenID Connect」の仕様を最終承認した。これに合わせてOpenIDファウンデーション・ジャパンは、OpenID Connect仕様群の日語訳を公開している。 Webサービスやモバイルアプリケーションの普及に伴い、多様で便利なサービスを利用できるようになった半面、管理すべきIDとパスワードも増加した。その結果、エンドユーザーがさまざまな煩雑さを強いられたり、パスワードの使い回しによるセキュリティリスクが増大するといった課題も浮上している。 OpenID Connectは、こうした課題の解決を目指し、OAuth 2.0をベースにして策定されたAPI仕様だ。ユーザーとサイトが常に1対1で認証を行う代

    ついに「OpenID Connect」仕様が標準化
    operando
    operando 2015/01/08