タグ

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

  • [実装編]スレッドセーフにすることを忘れてはいけない

    スレッドセーフとは,アプリケーションをマルチスレッドで動作させても問題がないことを指す。サーバー向けアプリケーションは,マルチスレッドで動作するように設計・実装することが望ましい。そのほうが通常はパフォーマンスが向上するからだ。 だが,マルチスレッドのアプリケーションは,注意深く設計・実装しないとトラブルが生じる。例えば,あるスレッドで保持していた変数の値がほかのスレッドからアクセスされ,処理結果が上書きされたり,ほかの利用者の情報が見えてしまったりする。 こうしたトラブルは,開発者が1人で単体テストしているときには見つけられず,多数の利用者で限界時の挙動テストをしたときや,番移行した後で,たまたま見つかることが多い。トラブルが発生するタイミングを再現することが難しいので,デバッグは困難になりがちだ。 マルチスレッドでのトラブルを防ぐため,開発者は,スレッドセーフな設計と実装を心がける必

    [実装編]スレッドセーフにすることを忘れてはいけない
  • 第3回 モチベーションを上げるための目標設定のコツ

    JTBモチベーションズ コンサルタント。日ヒューレット・パッカードにて,ITコンサルタントとして製造業を中心に,ビジネスプロセスの構築からシステム設計・運用までに携わった後,パッケージ・ベンダーの採用や社員育成に携わる。現在はJTBモチベーションズで,モチベーション・コントロールを軸とした,企業向けのコンサルティングを行っている。モチベーション理論やNLP(神経言語プログラミング)のカウンセリング理論のノウハウを活かし,個人と組織を活性化させるコンサルティング,研修講師,講演などを行っている。メルマガ無料配信中。 今回はモチベーション向上の基の一つ,目標設定についてお話ししていきましょう。 モチベーションは様々な要因によって上がることは,これまでにお話ししましたが,特に,自分にとって実現したい「目標」があるときに,モチベーションは上がりやすいといわれています。 例えば「自分は情報処理技

    第3回 モチベーションを上げるための目標設定のコツ
  • Part5 SOAP,WSDL,REST――Web APIの基礎技術を学ぶ:ITpro

    Web APIWebサービスAPI)をプログラミングで活用するにあたって,ぜひ知っておきたい基礎技術が三つあります。古典的な技術の代表としてSOAPとWSDL,そして昨今急速に普及してきたRESTです。ごく単純に言ってしまうと,前者は「高機能で複雑」,後者は「シンプルで簡単に利用可能」と区別できるでしょう。現時点では,そのシンプルさが多くの開発者に受け入れられたおかげか,REST方式が(先達である)SOAP方式を圧倒しているように見えます*1。 もっとも,だからといってRESTがSOAPよりも優れていると結論付けるのは早計でしょう。昨今では,SOA(Service Oriented Architecture)という言葉に代表されるように,大規模なシステムを「サービス」という単位で構成し,互いに連携し合う設計手法が注目されています。特に,SOAを実現する具体的な基盤技術として注目されている

    Part5 SOAP,WSDL,REST――Web APIの基礎技術を学ぶ:ITpro
  • デリゲート【delegate,delegation】

    デリゲートは,オブジェクト指向プログラミングにおいて,オブジェクトの振る舞いを別のオブジェクトに肩代わりしてもらうことです。「委譲」「委任」と呼ぶこともあります。 デリゲートを使えば,そのオブジェクト自身に処理を実装しなくて済みます。そのため,プログラム実行時まで振る舞いを決定できない場合や,クラスの肥大化を防ぎたい場合によく使われます。 デリゲートはクラスの中で委譲先のオブジェクトを生成してメソッドを呼び出す単純な手法で実現できますが,一般にはJavaのインタフェースやC++の純粋抽象クラスなど,委譲先のクラスでメソッドの実装を強制する仕組みを併用します。 また,.NET Frameworkには基型(プリミティブ型)として,任意のメソッドを指し示すdelegate型が組み込まれています。.NET Frameworkでは,このdelegate型のクラス・メンバーを「デリゲート」と呼びます

    デリゲート【delegate,delegation】
  • マイケル・ジャクソン急死のニュースに便乗したスパム,Sophosが検出

    英Sophosは英国時間2009年6月26日,世界的な人気歌手Michael Jackson氏急死のニュースを悪用したスパム・メールを検出したとして,ユーザーに警戒を呼びかけた。目的は,スパム攻撃に使う電子メール・アドレスの収集とみられる。 6月25日,Jackson氏死亡の約8時間後に,「Confidential===Michael Jackson(極秘情報―マイケル・ジャクソン)」などとする件名のメールが大量に送信されているのを,同社研究所のSophosLabsが発見した。 メッセージ文には「Michael Jacksonの死に関する重大な情報がある。秘密主義で信用できるどなたかにお話したい」との記述があり,メールに返信するよう促している。URLや電子メール・アドレス,電話番号などの連絡先は記載されておらず,発信元の電子メール・アドレスは偽装されていた。 Sophos上級技術コンサル

    マイケル・ジャクソン急死のニュースに便乗したスパム,Sophosが検出
  • インジェクション系攻撃への防御の鉄則

    前回までは,主にクロスサイト・スクリプティングのぜい弱性とその対策について解説してきた。最終回となる今回は,クロスサイト・スクリプティング以外の「インジェクション系」ぜい弱性について解説する。具体的には,SQLインジェクション,OSコマンド・インジェクション,HTTPヘッダー・インジェクション,そしてメールの第三者中継である。 SQLインジェクション対策にはバインド変数の利用が最適 まず,SQLインジェクションから見ていこう。対策には二つの方法がある。一つは,SQLの「バインド変数(注1)」を使う方法である。バインド変数の書式はプログラミング言語によって異なるが,一例として,Perlを使った場合に,パスワード認証のSQLをバインド変数で書き換えた例を示す(図1)。 (注1) 「準備された文(Prepared Statement)」というのがJIS SQLでの用語だがあまり普及していない。バ

    インジェクション系攻撃への防御の鉄則
  • Linuxコマンド逆引き大全 Index - Linuxコマンド逆引き大全:ITpro

    Linuxのコマンドを「やりたいこと」で探すことができます。「やりたいこと」をクリックすると、コマンド名、動作、構文、オプションの意味をご覧いただけます。コマンドの基を学びたい方は「Linuxコマンド道場」を参照ください。ファイルの操作からテキスト・ファイルの処理方法まで,例題に基づいて学べます。

    Linuxコマンド逆引き大全 Index - Linuxコマンド逆引き大全:ITpro
  • バッチ・ファイルの強化 -- No.1 setコマンドで環境変数を確認

    バッチ・ファイルの強化 -- No.1 setコマンドで環境変数を確認 条件分岐と環境変数を駆使して複雑な処理をバッチ化する 今回は個別のネットワーク・コマンドの使い方を覚えるのではなく,コマンドを便利に使うためにバッチ・ファイルを活用するテクニックを紹介しよう。 バッチ・ファイルは1行に1個のコマンドを記述しておくと,上から順番に処理されるのが基動作だ。ただし,特定の条件に合致したときだけコマンドを実行したり,別の処理にジャンプするような条件分岐文を記述することもできる。また,日付や時刻のようにバッチ・ファイルを実行した時間,あるいはコンピュータ名のように実行したパソコンの環境によって変化する値を呼び出して,その値を引数にしてコマンドを実行することもできる。こうした機能を使えば,より複雑な処理をバッチ化できる。 多くの環境変数がセットされている まずは,利用環境などによって変化する値を

    バッチ・ファイルの強化 -- No.1 setコマンドで環境変数を確認
  • いまさら聞けないHTML --- Part2:レイアウトと見栄えを固定

    今どきのWebページは,ウインドウの大きさを変えてもレイアウトが変わらない。見栄えもWebサイト全体で統一されている。このようなレイアウトや見栄えの指定にも,HTMLのタグが使われている。 3ステップでページ作成 Webページ制作者から見ると,Webページの作り方は3ステップ。この作り方の手順に沿って見ていこう(図2-1[拡大表示])。 ステップ1ではレイアウトを決める。使い勝手や見栄えを考えてレイアウトを決めて,Webページに貼り付ける要素を考えながら枠を区切るわけだ。具体的には,枠を固定して区切ることができるタグを使ってHTMLファイルを作成する。 ステップ2は,スタイルの定義だ。デザインを考えれば,ページ内の文字の大きさなどは揃えたい。しかし,今どきのWebページは,もともとは別のファイルを組み合わせて作ることが多い。部分ごとに,更新頻度が違っていたり,作成者が違ったりするからだ。こ

    いまさら聞けないHTML --- Part2:レイアウトと見栄えを固定
    mai_k
    mai_k 2009/03/27
  • 【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro

    SlowLogの設定 環境設定ファイル(Windowsではmy.ini,Linuxではmy.cnf)に次のような設定を加えるとSlowLogが有効になる。 log-slow-queries SlowLogの有効化(ログファイル名を指定可能) long-query-time=2 SlowLogに記録する処理時間の上限 log-long-format インデックスを使用しないSQL文の記録 long-query-timeパラメータは,SlowLogに記録するしきい値を秒単位で設定する。この場合には,2秒超える処理時間を費やしたSQL文を記録する。また,log-long-formatを指定すると,インデックスを使用しないSQL文もSlowLogに記録する。 SlowLogの確認 SlowLogが動作しているかどうかは,次のコマンドで確認できる。log_slow_queriesがONであれば有効と

    【MySQLウォッチ】第8回 MySQLチューニングのテクニック:ITpro
    mai_k
    mai_k 2008/08/18
    [SQL]
  • SQLの基本とRDBMSのアーキテクチャ

    リレーショナル・データベース管理システム(RDBMS)は,業務アプリケーションにおいて必要不可欠な存在です。そのRDBMSを操作するSQLは,C言語やJavaなどの汎用のプログラミング言語とならんで,プログラマ/SEの必須科目と言えます。Part1では,SQLの基であるSELECT,UPDATE,DELETE,INSERTの文法について,Part2では実用的なSQLのテクニックを学習します。Part3では,RDBMSがどのような原理でデータを検索しているかを学び,RDBMSを使いこなすヒントをつかんでください。 Part1 SQLの基を理解しよう Part2 複雑なSELECT文やSQL高速化のコツ Part3 データベースの仕組みを基礎から学ぶ

    SQLの基本とRDBMSのアーキテクチャ
  • エンジニアのためのWebデザイン教室:ITpro

    Webプログラムを手がける企業であっても,必ずしもWebデザイナが存在しているとは限りません。プログラマが自分でデザインを適用しなくちゃならないことも少なくありません。 技術者の人と会話をすると「僕にはデザインのセンスがなくてね」という自嘲的な発言をよく耳にします。しかし,Webデザインにセンスは必ずしも不可欠ではありません。ちょっとしたポイントを学習することで,誰にでもしっかりデザインされたページが作れます。HTMLCSSによる実装を通して,デザインの基礎を学んでいきましょう。 第1回 Webデザインに必要なのはちょっとした知識と訓練 第2回 Webデザインの基礎はHTMLの構造にあり 第3回 文書を装飾するのはCSSの役目 第4回 Webデザインの基を学ぶための環境について 第5回 HTML文書を装飾するCSSの基礎(その1) 第6回 HTML文書を装飾するCSSの基礎(その2)

    エンジニアのためのWebデザイン教室:ITpro
  • 1