タグ

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

  • クラスのインスタンスを1つに保つ(Singletonパターン)

    サーブレットのようなマルチスレッド環境下で共有リソースを扱うとき、複数のスレッド間で単一のオブジェクトを操作するようなプログラムが必要になることがあります。また、マルチスレッド環境以外でも、プログラム全体の情報を共有するオブジェクトや、生成に非常にコストが掛かるものの使い回しが利くオブジェクトのように、プログラム全体で1つのインスタンスだけを扱いたいこともあります。 小規模なプログラムなら、インスタンスを1つしか作らないという暗黙の規則を作り、注意深くコーディングすれば対応することはできるでしょう。しかし、プログラムの規模が大きくなってくると、そのような暗黙の規則だけではいずれ破たんしてしまいます。もともと1つだけのインスタンスを扱うように作られたクラスが、いつの間にか複数のインスタンスで扱われていたりすると、バグを引き起こす原因になります。 このような問題の解決には、クラスのstatic

    クラスのインスタンスを1つに保つ(Singletonパターン)
  • @IT:Java TIPS -- リダイレクトとフォワードの違いを知る

    しかし、sendRedirectメソッドによる移動は「リダイレクト」、forwardメソッドによる移動は「フォワード」と呼ばれ、内部的な挙動も性質もまったく異なるものです。ユーザーからは同じように見えますが、開発者はこれらの違いを把握しておく必要があります。 まず、リダイレクトとフォワードの挙動がどのように異なっているのかを簡単に説明しましょう。 リダイレクトの場合、クラアイアントがページXを要求すると、サーバがページYを要求する指示をクライアントに戻します。これによって“クライアントは自動的に”ページYを要求し、結果としてページYがクライアントに戻されます(ページXとページYは、必ずしも同一サーバからのレスポンスではない)。これに対しフォワードは、クライアントがページXを要求すると、“サーバ内で”ページXからYへ処理が移送され、ページYが応答として戻されます(ページXとページYは、必ず同

    @IT:Java TIPS -- リダイレクトとフォワードの違いを知る
  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
    Kshi_Kshi
    Kshi_Kshi 2013/04/09
    insert all 冗長ですが・・・。
  • 5分で分かるユーザーエクスペリエンス(UX)

    ユーザーエクスペリエンス(UX)とは何か? ユーザーに愛されるWebサイトには、UXが貢献しています。UXUI、IAを混同している方、必読です ここ数年、Web業界で「ユーザーエクスペリエンス(以下、UX)」が注目を浴びています。Webディレクターや制作だけでなく、Webを企画したり発注するクライアントの立場の方や、マーケティングの方も目を向けるようになってきました。 なぜ、注目されるようになったのでしょうか? UXについては制作や企画の方も知っておく必要があります。 UXへの誤解で多いのが、ユーザーエクスペリエンス(UX)とユーザーインターフェイス(UI)を混同されてしまうケースです。この記事では、このような言葉の違いが区別できるように、説明していきます。 ユーザーエクスペリエンスとは?(入浴剤のパッケージデザイン) ユーザーエクスペリエンス(UX)は、日語では「ユーザー体験」と訳さ

    5分で分かるユーザーエクスペリエンス(UX)
  • route - ルーティングテーブルの表示/設定を行う

    routeコマンドは、IPパケットをルーティングするためのルーティングテーブルの内容表示と設定を行う。ルーティングテーブルは、おもにOSが管理するルーティング情報を保管したメモリテーブルだ。テーブルのエントリーが経路を表している。経路はネットワークまたはホストへ到達するために通過する必要のあるゲートウェイを表している。 ここで、ルーティングテーブルの管理とは、 ルーティングテーブルの表示と確認 ルーティングテーブルへの経路の追加、削除、変更 を意味する。 書式 ●Windowsの場合 route[ -f][ -p][ PRINT| ADD| DELETE| CHANGE[ 宛先IPアドレス][ MASK サブネットマスクアドレス[ ゲートウェイIPアドレス][ METRIC メトリック数][ IF インターフェイス名]]

    route - ルーティングテーブルの表示/設定を行う
    Kshi_Kshi
    Kshi_Kshi 2013/02/25
    route コマンド
  • 開発者が知っておくべき、ドキュメント・データベースの基礎

    開発者が知っておくべき、ドキュメント・データベースの基礎:特集:MongoDBで理解する「ドキュメント・データベース」の世界(前編)(1/3 ページ) ドキュメント・データベースの最大の特長は、「パフォーマンス、大量データ、スケーラブルといった課題を克服するためのシンプルなセットを提供している」という点だ。 もちろん既存の多くのリレーショナル・データベース(以下、RDB)でも、ドキュメント・データベースが備えている特徴的な各機能に類似することが実現可能だし、さらに広範な概念や機能性を提供している。例えばシャーディング(Sharding。詳細後述)についても、既存の多くのRDBでデータの分散化が可能だ。しかしドキュメント・データベースでは、「そもそもデータ構造がこうした構成に適している」という点と、「それに付随して、考え方もシンプルである」という点が優位な特徴である。 万人が、データベースが

    開発者が知っておくべき、ドキュメント・データベースの基礎
  • 共有ライブラリをシステムに認識させるには

    ソースファイルで配布されているプログラムをインストールするにはで紹介した方法で、./configureを実行して環境設定を行う際に、次のようなエラーメッセージが表示されることがある。 $ ./configure (省略) checking for XINE-LIB version >= 0.9.9... no *** Could not run XINE test program, checking why... *** The test program compiled, but did not run. This usually means *** that the run-time linker is not finding XINE or finding the wrong *** version of XINE. If it is not finding XINE, you'll

  • @IT Special PR:仮想化にはマルチコア/マルチソケット型サーバが最適という新常識

    仮想化技術を使ったサーバ統合がいよいよ普及段階に入ったようだ。従来は最新テクノロジに興味がある一部の企業がテスト的に導入するケースが多かったが、最近は一般企業が実稼働しているシステムに対して仮想化によるサーバ統合を適用しようとしている。今後はシステムの規模を問わずに仮想化技術は一般的な選択肢になるだろう。 だが、仮想化技術によるサーバ統合で企業内の情報システムの問題のすべてが解決するかというとそういう訳ではない。仮想化技術が普及するに従って、皮肉なことに仮想化運用の難しさも浮き彫りになってきた面がある。テスト環境では従来の仮想化ソリューションで対応できるが、実稼働するシステムに適用することを考えると、想定通りに行かない面があるのだ。 現状の仮想化ソリューションによるサーバ統合の問題点とは何だろうか。1つはパフォーマンスだ。仮想化技術によるサーバ統合とは、物理的な1つのサーバ上に複数の仮想マ

  • 「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門

    「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門:かんばん!~もし女子高生がRedmineスクラム開発をしたら(5)(1/3 ページ) 連載は、ちょっととぼけた女子高生の姉妹が今注目のアジャイル開発手法であるスクラムプロジェクト管理ソフトの「Redmine」を使って、システム開発をするというフィクションです。 これまでのお話 連載は、ちょっととぼけた女子高生の姉妹が今注目のアジャイル開発手法であるスクラムプロジェクト管理ソフトの「Redmine」を使って、システム開発をするというフィクションです。 ひょんなきっかけから電子目安箱(カウンセラー)を開発することになった「ぷりん」と「まいん」の姉妹。第1回の『高校生になって初めてスクラムを始めました~「ストーリー」で何を作るかまとめよう』、第2回の『スプリントと“かんばん”でチームのビートを刻め!! ~ス

    「うわっ…私のバージョン管理、ダメ過ぎ…?」を解決するGitの使い方“超”入門
  • 「sendmailでLAN外に置かれたサーバへの転送」(1) Linux Square - @IT

    IT 会議室 Indexリンク Windows Server Insider Insider.NET System Insider XML & SOA Linux Square Master of IP Network Java Solution Security & Trust Database Expert RFID+IC リッチクライアント & 帳票 Server & Storage Coding Edge @ITクラブ Cafe VB業務アプリケーション開発研究 @IT SpecialPR

    Kshi_Kshi
    Kshi_Kshi 2012/07/03
    トラブル
  • LVMによる自動バックアップ・システムの構築

    今回は/usr/local/に対してLVMを使用し、スナップショットを利用してバックアップを取ります。また、バックアップはcronによって定期的に実行されるようにします。以上をまとめると以下のようになります。 コンテンツデータ部分はLVMベースのファイルシステム スナップショットをdumpでバックアップ 週1回フルバックアップ、平日はダンプレベル1をcronで自動化 バックアップ媒体はNFSマウントしたバックアップサーバ バックアップサーバ側の準備 ネットワーク経由でバックアップを取る場合、最も手軽なのがNFSの利用です。ここでは、NFSへの最低限のアクセス制御を考慮した設定を紹介します。 バックアップサーバ側には、/backupというディレクトリに各サーバ用のディレクトリを作成します。このディレクトリには書き込みを認めなければならないので、NFS専用のユーザーnfsbackupを作成し、

    LVMによる自動バックアップ・システムの構築
  • @IT:DNS Tips:SOAレコードには何が記述されている?

    ドメイン名のツリー構造は委任によってゾーンに分割され、分散管理されています。SOAレコードはこれらの分割されたゾーンそれぞれのオーソリティ情報が記されているレコードです。SOAはStart Of Authorityの略で、「権威の開始」という意味になります。 BINDではゾーンファイルの先頭、デフォルトTTLの指定の後に書くことになっています。また、SOAは委任に関するオーソリティ情報を記すものであり、各ゾーンの委任されたドメイン名に関連付けられます。 SOAレコードはゾーンファイルの中では、リスト1のように記述されます。 @ IN SOA  ns1.example.jp. postmaster.example.jp. ( 2003081901  ; Serial 3600        ; Refresh 900        ; Retry 604800     ; Expire 36

  • DNSの仕組みの基本を理解しよう

    いきなりだが、2001年はDNSDomain Name System)にとっては、当たり年ともいえる年だった。ニュースなどでも取り上げられているが、「日語」や「多言語」ドメインという大きな構造変化がシステム全体に押し寄せ、ブロードバンド環境の広がりは、個人がドメインを取得して運用するための足掛かりともなった。 連載では、ドメインの運用など、これからDNSと付き合おうとしている方々を対象に「DNSの概念や運用の考え方」を明らかにしていこう。ただし「BIND」など、DNSに関する具体的な製品の設定方法については触れない。詳しくは以下の記事もぜひ参考にしてほしい。 DNSはなぜ必要か? 最初に、「DNSとは何か」を説明するために、「なぜDNSが必要になるのか」を考えてみよう。それには、歴史的経緯から考えるのが分かりやすい。 DNSはご承知のとおり、IPアドレスホスト名をマッピングして相互

    DNSの仕組みの基本を理解しよう
  • Linuxクラスタリング多様化するクラスタ方式

    現在では、コンピュータを導入していない企業はないといえるほど、私たちの業務はコンピュータに依存しています。また、インターネット利用による新しいビジネスは、コンピュータがあればよいというものではなく、いかにサービスを提供し続けるかが成功のための重要なカギとなります。例えば、1台のマシンが故障や過負荷によりダウンしただけで、顧客へのサービスが全面的にストップしてしまうことがあります。そうなると、莫大な損害を引き起こすだけではなく、顧客からの信用を失いかねません。 このような事態に備えるのがクラスタシステムです。クラスタシステムを導入することにより、万一のときのシステム稼働停止時間(ダウンタイム)を最小限にい止めたり、負荷を分散させることでシステムダウンを回避することが可能になります。 「群れ」「房」の言葉どおり、クラスタシステムとは「複数のコンピュータを一群(または複数群)にまとめて、信頼性

    Linuxクラスタリング多様化するクラスタ方式
    Kshi_Kshi
    Kshi_Kshi 2012/04/23
    クラスタ方式別概要
  • 名前解決の仕組みとゾーンファイルの設定

    今回は、BINDの設定を行う。ゾーンファイルの編集を行って正引き・逆引きが行えるようにするほか、MX、CNAMEなど各種レコードの使い方を紹介する。また、名前解決の仕組みについてもここで理解しておいてほしい。 BINDの基的な動作 前回、DNSサーバの代表的な実装であるBINDをインストールしました。今回は設定を行います。 しかしその前に、BINDの動作を簡単に理解しておく必要があります。そうせずに、単に資料の引き写しの設定ファイルを使う方法もありますが、予期せぬ動作をしたときに対処できなくなってしまいます。 前回、「DNSは分散型データベースである」と述べました。つまり、どこかにすべてのデータを持ったサーバがあるわけではなく、あちらこちらにサーバが分散しているわけです。問題は、どうやって目的のデータを持ったサーバを見つけだすかです。 さすがに手掛かりゼロではどうしようもないので、最初の

    名前解決の仕組みとゾーンファイルの設定
  • Samba 3.0のインストールと国際化の現状

    国際化機能と文字コードサポート ■国際化(日語対応)機能の変更 われわれ日人にとって最も影響の大きい点として、日語を含む文字コード関連パラメータの変更が挙げられます。Samba 2.2系列までは、いわゆる文字コード(符号化形式)の変換をSamba自身が行っていました。Samba 3.0系列では、Unicode(UCS-2、UTF-8)やCP850など一部の文字コードを除き、標準的なiconv()関数を利用するように実装が大幅に変更されています。 Samba 2.2系列までは日語を正しく扱うため、

    Samba 3.0のインストールと国際化の現状
    Kshi_Kshi
    Kshi_Kshi 2012/03/27
    3系解説
  • SI業界でPHP/Python/Perlエンジニアの市場価値が高まる

    不況で冷え込んでいたIT業界転職市場に、回復の兆しが見え始めている。だが、業種や職種によって採用数や条件に大きな差異が生まれている。転職市場の動向を追い、自身のキャリア戦略立案に生かしてほしい。 2月のIT業界求人市場まとめ 期末は、多くの企業が採用活動を活発化させる時期。複数の分野で「急募」の求人が増加した。 通常求人の内定率が10%前後であるのに対して、急募求人の内定率は20%と跳ね上がる。そのため、求職者は迅速に応募して最短スケジュールで面接予定を組むなど、スピーディな動きで対応していた。 Web業界 選考を同時に行う会社説明会が、増えてきている。この形式は、優秀な人材を早く採用したい企業側と、選考過程を短縮するチャンスがある求職者側、双方にメリットがある。今後しばらくは、会社説明&選考会を実施する企業が増加しそうだ エンジニア:ソーシャルアプリのコンテンツ幅が拡張→採用が活発に

    SI業界でPHP/Python/Perlエンジニアの市場価値が高まる
    Kshi_Kshi
    Kshi_Kshi 2012/03/23
    Pがつく言語
  • IPA、18人の天才プログラマ/スーパークリエータを認定 ― @IT

    情報処理推進機構(IPA)は5月1日、2007年度第1期、第2期で採択した「未踏ソフトウェア創造事業」において、18人の「天才プログラマー/スーパークリエータ」を認定したと発表した。 未踏ソフトウェア創造事業は、ソフトウェア関連分野の天才的な人材の発掘と育成を目的としている。これまでに1260人の開発者を支援し、天才プログラマー/スーパークリエータには2000年度からのべ176人を認定している。今回は未踏体からは12人、未踏ユースからは6人を認定した。 認定された18人の名前とテーマは次の通り。 未踏体第1期(7人)

    IPA、18人の天才プログラマ/スーパークリエータを認定 ― @IT
  • スマホアプリの作り方【超まとめ】Web編:HTML5やjQuery MobileなどスマホWebアプリ開発に役立つ記事52選 - @IT

    Web編:HTML5やjQuery Mobileなど スマホWebアプリ開発に役立つ記事52選 @IT編集部 2012/1/31(2013/2/28 改訂) iOS(iPhoneiPad/iPod touch)、AndroidWindows Phoneなど、さまざまなスマートフォンのプラットフォームのアプリを作るための@IT記事のまとめです。今後、順次更新・追加していきます。 開発者が登録したApp StoreやMarketplaceなどからダウンロードしてインストールするアプリ、もしくは、あらかじめインストールされているアプリは、「ネイティブアプリ」と呼ばれています。iOSやAndroidWindows PhoneといったOS上で動き、マイクやカメラなどデバイスの機能を十分に使えるのが特徴です。作り方は、基編やデザイン/グラフィック編で紹介した記事が参考になると思います。 一方で

    Kshi_Kshi
    Kshi_Kshi 2012/02/03
    WEBベースのスマフォアプリ作り
  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する