タグ

ブックマーク / thinkit.co.jp (15)

  • DBは習うより慣れよ!

    試してわかる並列処理 巨大なデータベースを検索する場合や、アカデミックで複雑な検索を行う場合に、1つのクエリがとてつもなく重たくなった経験はありませんか。もちろん、SQL文の効率が悪い、あるいはインデックスの張り方が悪いなど、パフォーマンスチューニングの基動作ができていない場合もありますが、そもそも「そんな巨大なクエリを1台のマシンでやらせることに無理がある」場合もあります。これに対する強力な処方せんの1つが並列処理(パラレルクエリ)です。 最近は、データウェアハウスやメールの解析といった情報系のシステムが増えており、データベースのクエリに求める利用者の要望は複雑化しています。しかも、Googleのような検索エンジンがサクサクと動いているので、データベースの検索なんて早くて当たり前と考える利用者が増え、期待値は高まる一方です。 ただ、業務に必要不可欠な基幹系のシステムとは違い、情報系のシ

  • [ThinkIT] 第3回:基本設計書 (3/3)

    画面・帳票レイアウトを作成したら、次はER図とテーブル定義書の作成です。ER図とはEntity Relationship Diagramの略で、データ中心設計(DOA:Data Oriented Approach)に向いたモデリング記法です。ER図はデータベース設計に広く使われており、E(エンティティ)はテーブル、R(リレーション)はテーブルの関係に相当します。図4のようにエンティティを四角、リレーションを線で表わし、リレーショナルデータベースのデータの関連性をわかりやすく示すことができます。

  • WEBrickを使ってみよう!

    Webサーバー=Apache!? 今、Webサーバーを構築しようとした時、ほとんどの人はサーバーソフトとして「Apache(Apache HTTP Server)」を選ぶと思います。 確かにApacheは非常に高機能で、通常必要と思われるほとんどの機能が備わっています。 しかし、自分用にちょっとしたサーバーを立ち上げるには、その設定項目の多さなどが少し大げさに感じることはないでしょうか? また、大抵のことは設定変更や外部で公開されているApacheモジュールなどで事足りますが、その範囲を超えてWebサーバーを拡張したい場合、自分でApacheモジュールを書かなくてはいけません。 Apacheモジュールを書こうとすると、かなりしっかりドキュメントなどを読む必要があり、また主にC言語による開発になるので、どうしても敷居が高くなってしまい、実際に書くということはほとんどないでしょう。 Apach

    comogly
    comogly 2011/03/24
    WEBrickはRubyのみで書かれたWebサーバー用フレームワーク
  • [Think IT] 第1回:再発見Visual Studioの魅力 (1/3)

    今こそ聞きたいVisual Studio 2008の基礎の基礎 第1回:再発見Visual Studioの魅力 著者:マイクロソフト 馬田 隆明 公開日:2008/02/05(火) 高品質なアプリケーションを迅速に作るための支援を行う開発ツール 開発ツールを十分に活用することによって、高品質なアプリケーションの迅速な開発が可能になります。しかしその一方で、高度な機能を持つ開発ツールはその複雑さからその機能を十分に活用することが難しい部分もあります。 連載では最新の統合開発環境「Visual Studio 2008」を取り上げ、アプリケーション開発におけるこれら課題を解決するための機能やその仕組みについて解説していきます。 特にこれまで簡単なアプリケーションをプログラミングしたことがあるものの、格的な開発にこれから取り掛かる人に役立つよう、基機能から解説を進めていきます。また、Visu

    comogly
    comogly 2010/12/12
    今こそ聞きたいVisual Studio 2008の基礎の基礎
  • [ThinkIT] 第4回:セッション乗っ取り (1/4)

    今回はWebアプリケーションの脆弱性における3番目のカテゴリー「セッション乗っ取り」について解説する。 ※注意: この記事にはWebアプリケーションの脆弱性を解説する必要上、攻撃手口に関する情報が含まれています。これらの手口を他者が運営するWebサイトに向けて仕掛けると、最悪の場合刑事罰および損害賠償請求の対象となります。脆弱性の調査・検証は、必ずご自身の管理下のコンピュータシステムおよびローカルエリアネットワークで行ってください。この記事を参考にした行為により問題が生じても、筆者およびThinkIT編集局は一切責任を負いません。 Webアプリケーションのセッションとは、複数のWebページにまたがる会話処理のことである。たとえば「商品を選ぶ」「配達先を指定する」「カードで決済する」といった会話処理の流れがその例である。これらのページ間では適切に情報が引き継がれてゆくが、それは一連のHTTP

  • O/Rマッピングとは?

    皆さん、はじめまして。連載を担当するビーブレイクシステムズの山之内と申します。連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作

  • [ThinkIT] 第8回:HTTPキャッシュの効果 (1/2)

    前回では、クエリキャッシュと出力キャッシュのベンチマークを行いました。今回はHTTPキャッシュのベンチマークを測定します。 5KBのテキストデータを単純に出力し、abコマンドでSuiqd+Apache、Apache、Apache+PHP、Apache+PHP+PostgreSQL、Squid+Apache+PHP+PostgreSQLの組み合わせで計測を行いました。Squidを利用したベンチマークが、HTTPキャッシュを利用した場合の性能、Apache+PHPのベンチマークが、出力キャッシュを利用した場合に相当します。ベンチマークの環境は、図25のとおりです。 なお、Squid、Apache、PHP、PostgreSQLはすべて同じPCにインストールしました。Squidは、HTTPアクセラレータモードに設定した8888番ポートでリクエストを受け付け、ローカルホストの80ポートのApache

  • [Think IT] 【Webサーバーを極める!】 JSON vs. FREDDY:Web軽量通信 第1回:JSONとFREDDY、変貌するWeb技術(1/3)

    Web 2.0が引き起こしたパラダイムシフト 読者の皆さんはWebと親和性の高いデータフォーマットと聞いて、何を思い浮かべるだろうか。もしこの問いを数年前に発したのなら、おそらくほとんどの人がXMLと答えただろう。今年で誕生から10年を迎えたXMLは、データ交換のための最も重要なフォーマットとして、利用機会が高くさまざまな分野で用いられている。しかしながら、今日では、Webと親和性の高いデータフォーマットは「JSON」と答える人も多いのではないだろうか。 Web 2.0というキーワードとともに、ここ数年でWebを取り巻く環境は劇的に変化した。もちろんWeb 2.0という用語自体は単なるバズワードであり、意味のない宣伝用語として使われることも多く、筆者自身あまり好きな言葉ではない。Tim O'Reilly氏のWeb 2.0の定義(http://www.oreillynet.com/pub/a

  • Gaucheをはじめてみませんか?

    Gaucheとは 連載では、今注目のプログラミング言語「Gauche」について解説しながら、簡単なWebアプリを作っていきます。Gaucheとは、ハワイ在住の日ハッカー「川合 史朗」さんが作ったLispの一種である、Schemeの処理系です。オープンソースで開発されています。 Gaucheの特徴は、Perlのように気軽に使える軽い処理系でありながら、正規表現、CommonLisp風オブジェクトシステムなど、Scheme標準にはない拡張機能や豊富なライブラリを持ち、実用的なプログラミングが行える点です。 最近「Gauche」に関するも出版され、「第4回:都内大手3書店の3月ベスト3発表!(http://www.thinkit.co.jp/article/49/4/2.html)」でも紹介されているように売れ行きも好評です。それは、なぜでしょうか? 筆者はLisp、特にSchemeの持

    comogly
    comogly 2009/07/27
    Gaucheとは、ハワイ在住の日本人ハッカー「川合 史朗」さんが作ったLispの一種である、Schemeの処理系
  • [ThinkIT] 第1回:Webブラウザを使ったテストツールSeleniumとは (1/3)

    この連載は、WebアプリケーションのテストツールであるSelenium(セレニウム)についてサンプルを用いながら概要と基的な使い方を解説していきます。連載第1回の今回は、Seleniumの概要について紹介します。 Seleniumとは、Webブラウザを使ってWebアプリケーションをテストするツールです。この「Webブラウザを使って」というのが非常に大きなポイントで、人が手でWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるのです。 そして単純に操作するだけでなく、例えばエラーメッセージが正しく表示されているかといった検証も行うことができます。つまり、今まで人手を必要としていたWebブラウザを使った試験が自動化できるものなのです。そのため数百項目もあるテストも、クリック1回で実施できます。 より重要なことは「自動化することによって試験を繰返し実施できる」こと

    comogly
    comogly 2009/07/26
    Webブラウザを使ってWebアプリケーションをテストするツール
  • [Think IT] 第3回:無線が変わる!コグニティブ無線 (1/3)

    【ネットワーク教習所】 未来が近づく、新世代ネットワーク! 第3回:無線が変わる!コグニティブ無線 著者:情報通信研究機構 原田 博司 公開日:2008/03/17(月) なぜコグニティブ無線が必要なのか 連載では、新世代ネットワークのさまざまな技術を取り上げる。第3回の今回は「コグニティブ無線」を紹介しよう。 コグニティブ無線は、無線機が周囲の通信環境に応じて最適な周波数や通信システムを選択することにより、限られた周波数帯域内でできるだけ多くの無線通信システムを共存させ、できるだけ多くの人にブロードバンド通信環境を供給することを目指す新しい無線技術だ。2015年頃にかけてコグニティブ無線の格的な導入が検討されつつある。 現在、2015年頃の移動通信システムにおいてはブロードバンド化に伴う周波数不足が非常に大きな問題として考えられている。実際に、毎年のように新しい無線LANシステム、携

  • [ThinkIT] 第1回:共有バッファでどれだけ変わる? (1/4)

    PostgreSQLとは、リレーショナルデータベース管理システム(RDBMS)です。誰でもどのような目的にも無料で使えるオープンソースのソフトウェアです。最近ではすっかり知名度も上がり、非常に多くの方がPostgreSQLを利用されるようになりました。 これほど普及してくると利用される方の技術レベルも様々で、長らく商用RDBMSでシステム開発をされてきた方もいれば、RDBMSを扱うのはPostgreSQLがはじめてという方もいます。当然PostgreSQLの使われ方も様々で、PostgreSQLの性能を限界まで引き出すようにチューニングを施している方もいれば、インストールしたままのデフォルト設定のままで使っている方もいます。 ソフトウェアのデフォルト設定を「開発者の推奨設定」と捉える方がいらっしゃいます。しかし残念ながらPostgreSQLにおいては成り立ちません。それではPostgreS

  • [ThinkIT] 第5回:高度なインデックスの活用 (1/2)

    ここまでは単一の列に対して作成するインデックスを前提にお話ししてきました。しかし、インデックスは同一テーブルの複数の列に対してまとめて設定することもできます。検索条件に複数列を指定する場合などは、このようなインデックスを使えばさらに効率よく処理を行うことができます。

  • [Think IT] 第7回:Apache+SSL環境を構築しよう! (1/3)

    こんにちは。ビーブレイクシステムズの木下です。前回はSSLのメカニズムについて解説しました。今回は、皆さんのApacheでSSLを利用する方法について解説します。 それでは、皆さんの環境にApache+SSL環境を構築しましょう。 Apacheをインストールされていない方は、「第2回:Apacheをインストールしてみるのは難しくない」から、「第5回:ApacheをWindowsへインストールするのだ!」を参照し、それぞれの環境に合わせてApacheをインストールしてください。 インストール時の注意点として、ソースインストールを行う方はconfigure時に、「# ./configure ?enable-SSL」としmod_sslを有効にしてください。また、Windowsの方はOpenSSL付きApacheインストーラでApacheをインストールしてください。

  • [ThinkIT]MapServerとは

    これまでWeb上に地図を表示するには、商用の地図配信業者に依頼したり、限定されたライセンス制約のもと、Google MapsなどのWeb サービスを使う以外に有効な選択肢はありませんでした。この連載では、上記よりもより柔軟でカスタマイズ性に富むMapServerソフトウェアを使った、WebGISアプリケーションの構築手法について学んでいきます。 突然ですが、Google Mapsを見たことがあるでしょうか。もしないというのであれば、この記事を読む前にご覧になってください。この記事で紹介するMapServerはGoogle MapsのようなWebGISといわれるシステムを作成する際に絶対に必要となる技術です。 MapServerをどの部分で使用するのかというと、ベクトルデータといわれる点や線、面の数値情報を画像データに変換するために使用します。地図画像の作成なんて専門の会社でなければできない

  • 1