ブックマーク / xtech.nikkei.com (19)

  • 「Java SE 6完全攻略」Garbage First GC

    Javaがヒープの管理にGCを使用しているのは、読者の皆さんもご存じの通りです。GCの手法にはいろいろありますが、HotSpot VMが採用しているのが世代別GCです。今回は、世代別GCの概要と問題点を解説したうえで、これを解決するために導入されたGarbage First GCについて説明します。 世代別GCの概要と問題点 世代別GCは若いインスタンスと時間を経たインスタンスを別々の領域に配置し、管理する手法です。これは寿命の短いインスタンスほど多いという性質をベースにしています。 若いインスタンスが配置される領域をヤング領域、時間を経たインスタンスを配置する領域をオールド領域とよび、それぞれの領域で異なるGCの手法を使用します。つまり、ヤングとオールドという世代の異なる領域を、それぞれ異なるGCで管理するのが世代別GCというわけです。 ヤング領域には高速ですが漏れのあるGCを用います。

    「Java SE 6完全攻略」Garbage First GC
  • Googleの巨大分散データストアBigtableとDatastoreを理解する

    今回は、米Googleのクラウド環境に存在するデータベースBigtableとDatastoreサービスを紹介します。「巨大分散」という新たなデータベースの地平を切り開くためにどのような工夫をしているか、じっくり見ていきましょう。 「Bigtable」は、Googleの主要なサービスを支える独自の巨大分散データストアです*1。Bigtableは、2005年4月から格的な運用(プロダクション利用)が開始されたもので、Googleの検索サービスをはじめ、Gmail、YouTube、Google Maps、Google日本語入力、そしてApp Engineなど、70以上のプロジェクトで利用されています。その規模は、数P(ペタ)バイト~数十Pバイトに達しているでしょう。 Bigtableは、Google検索サービスにおける膨大なコンテンツやインデックスを保持し、高速に検索するための専用データストア

    Googleの巨大分散データストアBigtableとDatastoreを理解する
  • 第13回 いまさら聞けないアノテーション活用術

    株式会社DTS ネットワーク事業部所属。Struts/Springをベースとしたフレームワークの開発・保守,プロジェクト支援に携わる。2008年,社内認定制度によりITアーキテクトに認定される。 Springは日でも広く使われているフレームワークの一つですが,「XML地獄」や「学習コストが高い」などの批判を受けることもありました。それらの問題を改善するための一つの手段として,2007年11月にリリースされたバージョン2.5で格的にアノテーションがサポートされました。 アノテーションのサポートによって,表1のような処理でXML記述を圧縮する仕組みが提供されています。

    第13回 いまさら聞けないアノテーション活用術
  • 第3回 Java標準のO/Rマッピング機能「Java Persistence API」

    前回はEJB 3.0のインターセプタ機能を使ったセッションBeanとコンテナ管理によるトランザクションについて説明しました。今回はJava EE(Enterprise Edition)やJava SE(Standard Edition)におけるO/Rマッピングの標準になる「Java Persistence API」*1を紹介しましょう。 Java Persistence APIを使うメリットは大きく二つあります。一つ目は,少ないプログラム・コードでデータにアクセスできることです。Java Persistence APIは,Javaオブジェクトをデータベースに格納したり,データベースのデータをJavaオブジェクトへ変換したりする処理を自動化してくれます。したがって,データベース・アクセス用のAPIであるJDBCを直接使ったアプリケーションよりも少ないプログラム・コードでデータベースへのアクセ

    第3回 Java標準のO/Rマッピング機能「Java Persistence API」
  • 第11回 Spring Securityでラクラク! セキュリティ対策

    株式会社DTSネットワーク事業部所属。Struts/Springベースのフレームワーク開発,プロジェクト支援に携わる。 今回から2回にわたって,Spring Securityについて取り上げます。Spring Securityは,Springのサブプロジェクトの一つです。以前までAcegi Securityと呼ばれていたセキュリティに関するフレームワークです。この連載を読んでいただいている方なら,名前くらいは聞いたことがあるのではないでしょうか? しかし,Spring Securityを利用すると,どんなセキュリティ対策ができるのかは,あまり知られていないように感じます。 稿では,まずSpring Securityを利用すると具体的に何ができるのか,また,反対に何ができないのかについて説明します。Spring Securityについて理解したところで,簡単なサンプルの作成を通して,Sp

    第11回 Spring Securityでラクラク! セキュリティ対策
  • 第3回 TracをLinuxにインストール,Tracの基本的な設定

    2004年にTracの存在を知って惚れ込む。Tracや同様のソフトウエアを普及させるべく,収集した情報をdiscypus.jpにて発信している。 今回は,TracをLinuxにインストールする手順と,Tracの管理者が行う基的な設定,の2つについて説明します。ただし,前回はTrac Lightning 1.8,すなわちTrac 0.10.4日語版を用いましたが,今回は新たにリリースされたTrac 0.11日語版を用います。 ※ Trac 0.11(英語版)が2008-06-23にEdgewallから,そして2008-07-07にTrac 0.11日語版がインタアクトからリリースされました。また,Trac Lightningも2008-07-14にリリースされた2.0.0以後でTrac 0.11日語版を採用しています。 Linuxへのインストール 連載第2回で説明したように,Tra

    第3回 TracをLinuxにインストール,Tracの基本的な設定
  • 第7回 Linuxでのファイル検索と正規表現 - Windowsプログラマに贈るLinuxプログラミング入門:selfup

    今回は,ファイルの検索方法と正規表現の基礎を具体的に紹介します。基礎の基礎なので,しっかりと覚えておきましょう。 前回 は,Linux(Ubuntu)上でC/C++言語のコンパイルを試してみました。今回は,ファイルの検索方法と正規表現の基礎を紹介します。 プログラミングを続けていると,いつの間にかたくさんのファイルが作られていて,「あのファイルはどこに?」と探し回ることになりかねません。今回はファイルの検索について取り上げます。 シェルのメタキャラクタ 「拡張子が".txt"であるファイル」を表す場合,「*.txt」のように表すことができるのはご存じでしょう。任意の長さの文字列を表す「*」や,任意の1文字を表す「?」のことをワイルドカードと呼んでいますが,Linuxでも同様に「*」「?」を使うことができます。 早速,端末を起動して試してみましょう(図1)。端末は[アプリケーション]メニュー

    第7回 Linuxでのファイル検索と正規表現 - Windowsプログラマに贈るLinuxプログラミング入門:selfup
  • 第18回 QuickCheckを使ってできることとできないこと

    Haskellでは多くの場合,データ駆動型のテスト・ツールであるQuickCheckの方が,xUnitの一つであるHUnitより役立ちます。 ただ,QuickCheckは万能ではありません。場合によってはHUnitの方が有効なこともあります。今回は「QuickCheckでこうしたことはできるのか?」という疑問に一つひとつ答えていきたいと思います。 高階関数をテストできるか? まず「関数を値に取る関数」,いわゆる高階関数をテストする場合を考えましょう。高階関数((a -> c) -> b)をテストするには,引数になる関数(a -> c)がArbitraryクラスとShowクラスのインスタンスである必要があります。 Prelude Test.QuickCheck> :t quickCheck quickCheck :: (Testable a) => a -> IO () Prelude Te

    第18回 QuickCheckを使ってできることとできないこと
  • 第1回 Tracをオススメする,これだけの理由:ITpro

    Tracの便利さに惹かれるが,インストールに煩わしさを感じ,Tracを簡単にインストールできるTrac Lightning(旧Trac月)の開発を行う。また,日のTracコミュニティであるShibuya.tracにてユーザー補完プラグインなどのプラグイン開発にも携わる。 チーム内のタスクや分散開発におけるタスク管理の手段として,プロジェクト管理ツールのTracが注目を集めています。Tracは,Ruby on RailsやSpring IDEなどでも利用されています。連載では,開発現場を交通整理するために,Tracを利用したプロジェクト管理の効率化を,Tracの基礎から紹介していきます。 ソフトウエア開発において,プロジェクト管理はガントチャート・ベースで行われることが多いでしょう。しかし,ガントチャート・ベースの管理では,詳細を報告するために作業報告書を別途作成する必要があります。 ま

    第1回 Tracをオススメする,これだけの理由:ITpro
  • 第13回 Webページで読みやすいテキストとは:ITpro

    今回のポイント 1行あたりの文字数の目安 1段落の文字数の目安 段落に含む文字数 行間調整の考え方 字間調整を使ったロゴ風味見出し 日語というのはもともと縦書き文化です。文字も筆で縦書きしていくときに書きやすいように作られています。現在PC画面上で見るフォントは,活字印刷物のフォントとは違い,横書きで読みやすいようにもともとの字体から若干形を変えられています。それでも起源である縦書きの形を完全に壊すことができないので,やはり横書きでは読みづらいようになっています。 日人が苦痛を感じることなく読める横書き1行あたりの字数は20字+α程度だと言われています。意識して雑誌などを見るとたいていが!)25文字から28文字程度です。用紙,つまりのサイズがA4を超えるような大判になると,1ページを左右2段組に分けて25~28字程度に調整されています。 一方,縦書きの場合には識別許容量はグンと増加し

    第13回 Webページで読みやすいテキストとは:ITpro
    jyukutyo
    jyukutyo 2008/03/24
  • 簡単実装で学ぶWeb技術---目次

    この連載は,日経ソフトウエア2006年7月号から,2007年6月号までに掲載した連載「簡単実装で学ぶWeb技術2006 / 2007」の再録です。Web技術を具体的でシンプルなサンプル・プログラムを通して紹介します。進歩と変化の激しいWeb技術は,手際よく質をつかんでいきたいものですね。小さいけれどもわかりやすいサンプルを実際に動かして「なるほど,こういうものだったのか」と思っていただければありがたいです。 題材は,新しいものから基的なものまで幅広く取り扱っていく予定です。 第1回 Ajax---動的なWebアプリケーションを作るための技術 第2回 Comet---プッシュ型のWebアプリケーションを作る 第3回 Cookie---状態管理とトラッキング 第4回 Catalyst(前編)---Perl向けWebアプリ・フレームワーク

    簡単実装で学ぶWeb技術---目次
  • 根本から理解するオブジェクト指向分析/設計

    具体論に入る前に,まずオブジェクト指向分析/設計とは何を意味するのかを定義しておきましょう*1。 そもそも「分析」とはどういったことを指すのでしょうか。辞書を引いてみると,“ある事柄の内容・性質などを明らかにするため,細かな要素に分けていくこと”とあります。オブジェクト指向分析を適用する場面で明らかにしたい事柄とは,どのようなシステムを作らなければならないのかということです。つまり,オブジェクト指向分析とは,“どのようなシステムを作らなければならないのかを,オブジェクトという要素を使って解明すること”ということになります。これに対しオブジェクト指向設計とは,“分析によって明らかにしたシステムの実現手段を,オブジェクトという単位を使って明確にすること”となります。 両者の違いがイメージできたでしょうか。では以降は,具体的なサンプルに基づいてオブジェクト指向分析/設計の仕方を見ていきましょう。

    根本から理解するオブジェクト指向分析/設計
  • Vine Linux 4.0(テキスト・インストール編)

    ●名称:Vine Linux 4.0 ●提供元:Project Vine ●URL:http://vinelinux.org/ ●対応機種:PC AT互換機,PowerPC搭載機 Project Vineは2006年11月22日,最新版となる「Vine Linux 4.0」を公開しました。Vine Linuxは,Project Vineが開発する国産ディストリビューションです。日語環境と安定して動作することを重視して開発されているのが特徴です。 Vine Linux 4.0はLinuxカーネルに2.6.16.29を採用しました。また,GNOME 2.14やX.Org X11R6.9.0が利用できます。また,さざなみゴシックをProject Vineが改変した日語True TypeフォントのVLゴシックがインストールされます。 かな漢字変換ソフトは今までのCannaからAnthyに変更さ

    Vine Linux 4.0(テキスト・インストール編)
  • 第2回 JBoss SeamでEJBベースのWebアプリケーション開発

    株式会社DTS ネットワーク事業部所属。Struts/Springベースのフレームワーク開発,プロジェクト支援が主な業務。EclipseプラグインによるIDE開発にも携わっている。 株式会社DTS ネットワーク事業プロジェクトマネージャ。Javaを中心にフレームワーク開発や開発プロセス定義など幅広く活躍中。StrutsIDEコミッタ。著書「まるごとEclipse! Vol.1」(発行:インプレスコミュニケーションズ)。 システム開発に携わる技術者は誰でも,他システムとの連携や後々の機能拡張に柔軟に対応できる構造にしたいと考えることでしょう。そのためにはある程度時間や人手が必要です。しかし,Webアプリケーション開発では,規模や複雑さは増える半面,納期は短くなっているのが現状です。 これを解決するための技術として注目されてきたのが分散オブジェクトです。分散オブジェクトでは,機能を出来

    第2回 JBoss SeamでEJBベースのWebアプリケーション開発
  • Part2 JavaScript流オブジェクト指向プログラミング

    JavaScriptは,きちんとしたオブジェクト指向言語であって,オブジェクトを利用した高度な開発が可能です。JavaC++,.NET系のオブジェクト指向言語がオブジェクトの定義にクラスという概念を用いる「クラス・ベース」の考え方を採用しているのに対し,JavaScriptではひな型となるオブジェクトを元に独自の機能を付加するという「プロトタイプ・ベース」の考え方を採用している点が特徴です。 まず最初に,皆さんの誤解を解いておきましょう。それはJavaScriptは,きちんとしたオブジェクト指向言語だということです。オブジェクト指向言語と言えば,JavaC++などが有名ですし,C#やVisual Basic 2005といった米Microsoftが開発した.NET系の言語もあります。しかしこれらの言語に比べてJavaScriptは,一段低い「Webブラウザで利用する簡易言語」といったイメ

    Part2 JavaScript流オブジェクト指向プログラミング
  • オブジェクト指向開発にRubyを使うメリット - 特集 オブジェクト指向は難しくない!:selfup

    皆さんは,業務や研究などでソフト開発を行う際に,どんなプログラミング言語をお使いでしょうか。試しに筆者が勤務する会社の知人に聞いてみると,COBOL,FORTRAN,C,C++,C#,VisualBasic(VB),Java,ABAP*1といった答えが返ってきました。皆さんの中には,これらの言語のほかにPerlPHPといったスクリプト言語をお使いの方もいるかもしれません。 ここで紹介するRubyについて名前だけは聞いたことがあるという方も多いと思います(カコミ記事「Rubyの特徴」参照)。PerlPHPと同じスクリプト言語です。ただし,Rubyはオブジェクト指向を意識して設計されているので,オブジェクト指向スクリプト言語と呼ばれることが多いようです。そのため,オブジェクト指向設計(Object Oriented Design)に基づいたプログラミングをする際にRubyは大きな効果を発揮

    オブジェクト指向開発にRubyを使うメリット - 特集 オブジェクト指向は難しくない!:selfup
  • 知られざるJavaScriptの世界:ITpro

    最近,Webプログラミングの世界で静かなブームになっている言語があります。何を隠そうJavaScriptです。JavaScriptはご存知のとおり,クライアントサイドすなわちWebブラウザ上で動作するタイプのプログラミング言語です。最初にJavaScriptが実装されたのは,今から10年以上前の1995年,Netscape Navigator2.0でのことです(登場当時はLiveScriptと呼ばれていました)。決して新しい言語ではありません。それが,どうして再び注目されることになったのでしょう。その理由は,Webインタフェースのプログラミングで,JavaScriptの有効性や利便性が再発見され,言語そのものが持つユニークさや機能が技術者の関心を集めているからです(図1)。 JavaScriptを使うのはダサかった? Webインタフェースの技術といってもHTMLしかなかったころ,様々なプロ

    知られざるJavaScriptの世界:ITpro
  • 【初級】新人SEのためのSQLの基礎 第3回(前半) 日付型の注意点

    図1●今回取り上げるSQL文の注意点<BR>(1)日付型,(2)SUMやAVGなどの集約関数,(3)GROUP BY句とHAVING句――今回はこの3点にまつわるSQL文の注意点を説明する 図2●日付型の時間データに注意<BR>Oracleの日付型(DATE)には時間のデータが含まれるため,(1)日付型カラムに対して日付だけの検索条件を指定しても検索できない。日付を検索条件にしたい場合,日付型に時間データが含まれることを意識し,「(2)範囲指定する」,「(3)時間を切り捨てる」,「(4)日付を取り出す」などの方法を採る必要がある 今回取り上げる日付型,集約関数,GROUP BY句,HAVING句は,便利なのでよく使われる。しかしこれらを使い始めのころに一度はやってしまう失敗例がある。一度経験すると大丈夫なのだが,分からないうちは戸惑うことになる。Oracleの日付型には時間データが含まれる

    【初級】新人SEのためのSQLの基礎 第3回(前半) 日付型の注意点
    jyukutyo
    jyukutyo 2006/03/14
  • Excel/VBAクリニック,今月の診断

    【連載の概要】 Microsoft Excelは,VBA(Visual Basic for Applications)と呼ぶプログラミング言語を使えます。当連載では,VBAを使う上で生じる悩みや疑問を,クリニック形式で解説していきます。クリニックの院長は,古庄潤氏。 バグの予防にエラー・トラップ 自作関数にヘルプを設定する処方 Accessのデータを取り込む処方 印刷時の怪現象に対処する処方 印刷時の怪現象に対処する処方その2 マクロだけを更新するには 自作ツールバーでマクロ実行を容易にする処方 イベント・プロシジャを関数代わりに活用する ユーザー・インタフェースにOfficeアシスタントを利用する エラー・トラップが働かないときの対処法と手抜きテクニック セルのイベント・ドリブンで自動入力 再帰的に表現できる処理には再帰呼び出しが有効 日経クロステック Special What's Ne

    Excel/VBAクリニック,今月の診断
  • 1