タグ

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

  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro
  • 鵜飼文敏さんの講演「ハッカーのソフトウェアエンジニアリング」の動画を公開しました:ITpro Challenge! ブログ:ITpro

    お待たせいたしました。第2弾,Debian Project/Google ソフトウェアエンジニア鵜飼文敏さんの講演動画です。

    鵜飼文敏さんの講演「ハッカーのソフトウェアエンジニアリング」の動画を公開しました:ITpro Challenge! ブログ:ITpro
  • ソフトを一人で作るということ:ITpro

    最近,WebアプリケーションやWindowsソフトの取材で,“このソフトは担当者が一人で作っています”という事例に続けて遭遇する機会があった。フリーソフト趣味のソフトではなく,会社が商品として提供し,不特定多数のユーザーが使っているアプリケーションを一人で作って,一人でメンテナンスしているという点に興味を覚えた。 先週都内で開催された開発者向けイベント「ITpro Challenge!」でも,ドワンゴの戀塚昭彦氏がニコニコ動画を一人で(しかも3日間で)作ったと語っていた(関連記事)。よく考えてみれば,ITpro Challenge!に登壇したようなハッカーとかアルファギークなどと呼ばれる優れた開発者でなくても,企業内で一人でソフトを作っているケースは思いのほか多いのではないだろうか。 アプリケーションの規模や内容,また開発者のスキルにもよるだろうが,おおむね一人で開発するほうが, ・低コ

    ソフトを一人で作るということ:ITpro
  • 53. まだ、PEAR::DBをお使いの方へ

    PHPからDBを使うときにはPEAR::DBをお使いの方もまだたくさんいらっしゃると思います。しかし、PEAR::DBのマニュアルにも「This package been superseded by MDB2 but is still maintained for bugs and security fixes」(このパッケージの代わりにMDB2の使用が推奨されますが、バグの修正、セキュリティフィックスは引き続き行われます。)と書かれているとおり、今後はPEAR::MDB2をお使いになることをお奨めいたします。 ということで、今回はPEAR::MDB2についてご紹介したいと思います。 PEAR::MDB2 マニュアル http://www.go-pear.org/manual/ja/package.database.mdb2.php MDB2についてはこちらをご覧下さい http://ww

    53. まだ、PEAR::DBをお使いの方へ
  • 最短かつ最速にアクセスする「DB高速化技術」(前編):ITpro

    ポイント ・高度なインデックスやジョインを利用し,最短経路でデータにアクセス ・メモリー不足を自律的に解消し,キャッシュのヒット率を高める ・インメモリーDBは全データをメモリーで処理し,高速化を図る 目的地に早く到着したいなら,最短の経路を最速で行けばよい。これはデータベース(DB)でも同様だ(図1)。インデックスなどを使ってデータへの最短経路を見つけ,メモリー・アクセスを増やして,最速でたどり着く。DBにはそんな技術が詰まっている。 図1●データベース高速化技術のポイント ビットマップ・インデックスなどを使い、データにたどり着く最短の道を選ぶ。また、できるだけメモリーにデータをキャッシュさせておくことで、アクセスのスピードを上げる、という二つのポイントがある [画像のクリックで拡大表示] 以下では,(1)データにたどり着く最短の道を選ぶ仕組みと,(2)アクセスのスピードを上げる仕組みの

    最短かつ最速にアクセスする「DB高速化技術」(前編):ITpro
  • ITエンジニアの「やってはいけない」---目次:ITpro

    設計・実装から運用,メソドロジまで,最新アンチパターンを徹底解説 先輩から教わったことのなかに多くの「やってはいけないこと」(アンチパターン)があるだろう。だが,その理由を問われると,うまく説明できないことがあるのではないだろうか。突き詰めて考えると,状況によっては「やっても構わない」こともあるし,技術の進化に伴い「やれるようになってきた」こともある。そこで設計,実装,テスト,運用,メソドロジの各分野について,取材を通じて浮かび上がった最新アンチパターンを徹底解説する。テーマごとに「どれくらいやってはいけないか」のレベルも表した。レベル3~レベル1の3段階あり,レベルの数字が大きいほど,やってはいけない度合いも大きい。 関連サイト: ■設計編 ■メソドロジ編 ■実装編 ■テスト編 ■運用編 ■サーバー運用編 ■データベース編 ■セキュリティ編 ■記録メディア編 ■方式設計編 ■内部統制編

    ITエンジニアの「やってはいけない」---目次:ITpro
  • 【XDev】「とりあえず作って,後から作り直せ」,Rubyのまつもと氏が語るエンタープライズ開発:ITpro

    写真●「X-over Development Conference 2007」で講演する,まつもとゆきひろ氏 「結局のところ,顧客に何が必要かは,顧客にも開発者にも理解は不可能だ。そうならば,まずアプリケーションを作って,それを使ってもらい,顧客に合うように直すしかない。これからのエンタープライズ開発も,とにかく速く安く作って,直すことが重要になる」--。プログラム言語「Ruby」の開発者であるまつもとゆきひろ氏は9月7日,ソフト開発をテーマにしたイベント「X-over Development Conference 2007」の講演でこう主張した。 まつもとゆきひろ氏の講演テーマは「Web 2.0時代のエンタープライズ開発」というもの。Web 2.0時代のアプリケーションは,「YouTube」に代表されるように,「仕組みそのものよりも,データがどれだけ集まっているかが生死を分けている」(ま

    【XDev】「とりあえず作って,後から作り直せ」,Rubyのまつもと氏が語るエンタープライズ開発:ITpro
  • 「1人で開発したmixiが、会員数1000万人の国民的インフラに」、ミクシィ 衛藤バタラ 取締役最高技術責任者

    「1人で開発したmixiが、会員数1000万人の国民的インフラに」、ミクシィ 衛藤バタラ 取締役最高技術責任者 衛藤バタラ氏は、2004年2月にSNS(ソーシャル・ネットワーキング サービス)の「mixi」を立ち上げた人物。現在は、運営会社であるミクシィで取締役最高技術責任者を務める。 mixiの会員数は今年7月末時点で1110万人に上る。「当初から、日国民全員に会員になってもらうことが夢だったが、正直言ってここまで成長するとは思わなかった」。サービスを提供するためのサーバーは当初2~3台だったのが、今では数千台になっている。 衛藤氏は、無料のオープンソースソフトウエア(具体的にはLAMP=Linux、Apache、MySQLPerl)を駆使してmixiのシステムを1人で開発し、サーバーの設置などもこなしたという。今では自分でプログラミングをすることはないというが、30人強に増えた技術

    「1人で開発したmixiが、会員数1000万人の国民的インフラに」、ミクシィ 衛藤バタラ 取締役最高技術責任者
  • 生年月日から年齢を計算する簡単な計算式:ITpro

    私の個人ブログに掲載したら好評でしたので、こちらでもご紹介してみます。 最近知ったんですが、生年月日から年齢を計算する簡単な計算式というのがあるそうです。 (今日の日付-誕生日)/10000の小数点以下切捨て。 PHPで書くと echo (int)((20070823 - 19850101)/10000); Perlで書くと print int ((20070823 - 19850101)/10000); JAVAで書くと System.out.println( (int)((20070823 - 19850101)/10000) ); という感じになります。 日の法律を確認してみました。誕生日の前日が終了する瞬間(すなわち誕生日をむかえる午前0時00分の直前)に1歳を加えることになる。ただしうるう年など、年によって期間を定めた場合において最後の月に応当する日がないときは、その月の末日を

    生年月日から年齢を計算する簡単な計算式:ITpro
  • 5分で人を育てる技術 (22)“はじめて部下を持つ人"への5つのアドバイス :ITpro

    前回は,部下を持つことで混乱している坂上司としてどう行動していくべきかを伝えました。そして,私は彼に“はじめて部下を持つ人"への5つのアドバイスをすることにしたのです。 坂は,中堅社員ですが,長く部下を持たなかったので,自分のことだけを考えていれば済みました。しかし,今後はそれでは済みません。彼にはしっかり部下の面倒を見てもらい,組織マネージメントを身に付けてほしいからです。 坂に限らず,多くの人は部下を持つとそれまでとは違った苦労をします。自分だけで精一杯なところに,知識も経験も劣る部下の面倒も見なくてはならないのですから,その大変さは誰でも理解できるところでしょう。 しかし,組織で力を出していく以上,部下の戦力化は避けて通れない道です。どうせやらなくてはならない部下マネージメントなら,しっかりとした「やり方」を身に付けたいものです。まず,私はこれを坂に教えなくてはならないと思

    5分で人を育てる技術 (22)“はじめて部下を持つ人"への5つのアドバイス :ITpro
  • プロコン挑戦記---目次:ITpro

    皆さんは「プロコン」というイベントをご存じですか? プロコンは正式名称を「全国高等専門学校プログラミングコンテスト」と言い,全国にある高等専門学校(以下高専)の学生が年に一度集まって,プログラミングやソフトウエアの開発能力を競う,言わば情報系の甲子園のような大会です。年々規模も大きくなり,最近は,ソフトウエア・ベンダーさんやシステム・インテグレータさんからも注目していただけるようになりました。 筆者は,2002年から4年間にわたってこのプロコンに参加し,3回,最優秀賞にあたる賞をいただきました。といっても,あまり自慢できるような話ではありません。むしろ辛く,ときに恥ずかしい経験ばかりの4年間でした。 今回から3回の短期集中連載で,筆者が経験した,ちょっぴり変わった学生集団によるソフトウエア開発の現場をご紹介したいと思います。若者ならではの無謀さと,ドタバタぶりを楽しんでいただければ幸いです

    プロコン挑戦記---目次:ITpro
  • 「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明...

    「更新とJOINが多ければMySQL,シンプルなSELECT主体ならPostgreSQLが向いている。ストアド・プロシージャでシングル・コネクションならFirebirdは非常に速い」---6月23日に開催された「オープンソースカンファレンス2007.DB(OSC2007.DB)」で,各オープンソースDBのコミュニティのメンバーによる性能比較が披露され,従来の一般的なイメージとは異なる“意外な結果”が明らかにされた。 オープンソースカンファレンスは,オープンソース関連コミュニティが主催するイベントで,OSC2007.DBはデータベース関連のコミュニティが集まったイベントである。性能比較セッションを担当したのは,日MySQLユーザ会の堤井泰志氏,日PostgreSQLユーザ会の片岡裕生氏,Firebird日ユーザー会の木村明治氏。「あくまでボランティアによる性能比較であって,最速,最新マ

    「MySQL,PostgreSQLとFirebirdの性能をユーザー会メンバーが徹底比較,判明...
  • NTT東のフレッツ・トラブル,「ルート再計算により・・・」の真相:ITpro

    NTT東日/西日のひかり電話サービスやフレッツ・サービスはトラブルが続く。その都度、原因を明らかにしてきたが、5月15日に発生したNTT東日のBフレッツのトラブルについてはその原因の説明に納得できなかった。「IP伝送装置のパッケージ交換をきっかけに、ルート再計算の負荷が増え、14都道県のフレッツ網がダウン」。装置が故障するのはよくあること。それに伴うルート再計算で大半のフレッツ網がダウンするとは・・・。やはり、その真相は単純ではなかった。 14都道府県のフレッツ・サービスなどがダウン 5月15日20時、NTT東日は18時44分ごろから「フレッツ・サービス」および「ひかり電話」の一部ユーザーがサービスを利用できなくなっていると発表した。神奈川、千葉、埼玉を除く東日のサービス・エリア14都道県でサービスが利用できなくなった。東京は23区以外の一部のユーザーに影響が出た。 その後、IP

    NTT東のフレッツ・トラブル,「ルート再計算により・・・」の真相:ITpro
  • 第11回 クロージャによる超軽量並行プロセスの簡単実装法

    最近,ネットの一部で「Erlang」(発音はアーランまたはエアラン)というプログラミング言語が流行している(参考リンク)。Erlangはスウェーデンの通信機器メーカーであるエリクソンにて開発された言語で,エリクソン内部や通信業界はもちろん,Twitter(関連記事)などのオンライン・サービスでも採用されているという。 Erlangの特徴は,複数のプロセスが通信をしながら計算をする「並行プログラミング」を,言語の機能として強力にサポートしていることだ。C言語などの逐次プログラミング言語は,プロセスや通信の機能を内蔵しておらず,こうした機能をオペレーティング・システムに「外注」している。しかし,そのような外付けの仕組みは,メモリー消費量や速度,開発効率などの点でオーバーへッドが大きい。Erlangのような並行プログラミング言語では,プロセスや通信といった機能をプリミティブとして実装することによ

    第11回 クロージャによる超軽量並行プロセスの簡単実装法
  • まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro

    第0回 あらためてRuby入門 まつもとゆきひろ氏自身による「Ruby入門」をお届けします。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったものです。 ● 基と他言語との違い ● 実装とRuby誕生の秘密 第1回 プログラミングとオブジェクト指向の関係 プログラマを目指す人々の中にも,「オブジェクト指向は難しい」とか,「なかなか分からない」という印象を持つ方が多いようです。そこで,Rubyを題材にオブジェクト指向という考え方について説明していきます。 ● その1 ● その2 ● その3 第2回 抽象データと継承 オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と

    まつもと直伝 プログラミングのオキテ---目次 - まつもと直伝 プログラミングのオキテ:ITpro
  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
  • APOPのぜい弱性で見えてきたMD5の「ご臨終」

    情報処理機構セキュリティセンターは4月,メール・サーバーの認証プロトコルの一つ「APOP」について注意を喚起した。この注意喚起は,電気通信大学の太田和夫教授のグループが,APOPで使うハッシュ関数「MD5」に新たな欠陥を発見したことに基づくもの。この欠陥は,APOPだけでなく,MD5を使う電子署名などのほかのアプリケーションの欠陥も示唆する。実際にどの程度危険なものか,技術に基づいて考えてみよう。 わからないはずのパスワードが解かれる APOPは,チャレンジ・レスポンスという方式を使って,メール・クライアントとメール・サーバーのやりとりを盗聴してもパスワードが解読できないようにする。パスワードを直接やりとりせずに,まずサーバーからクライアントに「チャレンジ・コード」という文字列を送る。クライアントはチャレンジ・コードとパスワードを連結したうえで,MD5というハッシュ関数を使ってハッシュ値を

    APOPのぜい弱性で見えてきたMD5の「ご臨終」
  • 第8回 倉庫番を解くアルゴリズム - 地球にやさしいアルゴリズム:ITpro

    「倉庫番」*1というゲームをご存じでしょうか。図1のように盤面にはいくつかの「荷物」とそれを運ぶ「人」がいます。人は1個の荷物を押して運ぶことができます。荷物を引っ張ったり,二つ並んだ荷物を同時に押して運ぶことはできません。人と荷物は縦横4方向に動けますが,壁のある位置には進めません。人を使って盤面上の荷物を動かし,すべての荷物を目的地(ゴール)に収めることができればゲーム・クリアとなります。図1の問題を解くための手順を示すアルゴリズムを作ってください。 友人たちと車でスキーに行くとき,いつも困るのは「トランクへ荷物を詰め込む順番」です。大きなスキーやかさばるスキーウエアを詰め込んでいるうえ,人によってはゲーム機やを持ってきたりするので,各自の荷物の量がまったく違うのです。狭い車のトランクには,これら荷物をうまい順番で入れていかないとなかなか全部収まりません。寒い冬の夜中にごそごそと詰

    第8回 倉庫番を解くアルゴリズム - 地球にやさしいアルゴリズム:ITpro
  • グーグルが語る「働きがいのある会社の作り方」

    「Trust Conference」では,働きがいのある会社をいかに実現するかについて活発な議論が交わされた 米サンフランシスコに部を置くGreat Place to Work Institute(GPTW)は,1998年から毎年,経済誌「フォーチュン」に,「最も働きがいのある会社 ベスト100」(以下,ベスト100)を発表している。そのGPTWが,4月18日~20日に米ロサンゼルスで,働きがいのある会社をいかに実現するかを話し合う「Trust Conference」を開催した。2003年には250人程度だった参加者が年々増え続け,5回目の今年は750人を超えた。 このカンファレンスは,ベスト100に入っている会社の経営者が登壇し,信頼関係の高い経営をいかに実現しているかについて,考え方や具体的な取り組み事例を発表する。3日間の会期中には,朝会や昼会,カクテルパーティが催されるなど,

    グーグルが語る「働きがいのある会社の作り方」
  • 第20回 “使いやすいURI(URL)”の設計を考える

    今回は「URIの使いやすさ」について考えてみたいと思います。URIの使いやすさ,というのは,ウェブサイトやウェブ・アプリケーションにおいて,どういうURIでそれぞれのページにアクセスできるようにすると,利用者は使いやすいのか,ということです。つまりは,どのようにURIを設計するのがいいんだろう,ということです。URIの設計については,これまでもいろいろなところで議論がなされていますので,それらの議論や動向などを見ながら,考えていきたいと思います。 URIを話題として取り上げようと思ったのは,4月の4,5日に行われたYAPC ASIA 2007(YAPCはYet Another Perl Conferenceの略)で,Six Apartの創業者でMovable Typeの生みの親であるBen Trott氏がSix Apartのサービス「Vox」について発表を行ったとき,「Voxの出力するRS

    第20回 “使いやすいURI(URL)”の設計を考える