タグ

ブックマーク / gihyo.jp (14)

  • diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp

    UNIXの基的なコマンドの1つであるdiff。 これに実装されているアルゴリズムは実に興味深い世界が広がっています。 稿では、筆者が開発した独自ライブラリ「dtl」をもとに「diffのしくみ」を解説します。 はじめに diffは2つのファイルやディレクトリの差分を取るのに使用するプログラムです。 ソフトウェア開発を行っている方であれば、SubversionやGitなどのバージョン管理システムを通して利用していることが多いかと思います。稿ではそのdiffの動作原理について解説します。 差分の計算の際に重要な3つの要素 差分を計算するというのは次の3つを計算することに帰結します。 編集距離 2つの要素列の違いを数値化したもの LCS(Longest Common Subsequence) 2つの要素列の最長共通部分列 SES(Shortest Edit Script) ある要素列を別の要

    diffの動作原理を知る~どのようにして差分を導き出すのか | gihyo.jp
  • 第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp

    「締め切りを守ること」の大切さ 今までたくさんの日米のエンジニア仕事をしてきた。その中には私よりも明らかに「賢いエンジニア」もいたし、ものすごい生産性でプログラムを作ってくれる「馬力(ばりき)のあるエンジニア」もいた。しかし、そんな中でも、私がものを作るうえで最も大切だと考えている「あること」をキチンとこなせる人は100人に1人もいなかった。その「あること」とは、「⁠常に締め切りを守れるように仕事をすること」である。 チームで仕事をする場合、どうしてもお互いが担当するタスク(=作業)の間に依存関係が生じる。そんなときに、どれか一つのタスクの完了の遅れが、ほかのタスクの完了に波及し、それがタスク間の競合を引き起こして全体のスケジュールがさらに遅れる、という事態はソフトウェア開発の現場ではよく見られる。そんな状況をできるだけ回避するには、プロジェクトに関わる人全員が、自分に割り当てられたタス

    第2回 「締め切りは絶対に守るもの」と考えると世界が変わる | gihyo.jp
  • 第1回 機械学習 ことはじめ | gihyo.jp

    次のサービスや製品はどれも身近にありますが、これらに共通していることはなんでしょう。 Amazonの「この商品を買った人はこんな商品も買っています」 はてなブックマークの「関連エントリー」 Google 翻訳 Google 日本語入力 メールクライアントのスパムフィルタ デジタルカメラの自動顔認識 ニンテンドーDSの手書き文字認識 買い物履歴、ユーザが書いたコメントやタグ、Webに無数にあるページ、メール、画像や動画と対象はそれぞれ異なっていますが、どれも「データから有益な情報を取り出す」ということを行っています。 これらは「機械学習」という技術を使って実現されているのです。 機械学習の応用範囲 機械学習は冒頭で挙げた以外にも、様々な分野で使われています。 例えば、ノイズ除去や特徴の抽出を目的とした利用パターンがあります。音声認識や画像認識、文字認識(OCR)などはその代表格です。それらも

    第1回 機械学習 ことはじめ | gihyo.jp
    dgdg
    dgdg 2010/06/25
  • 第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp

    こんにちは、太田です。前回はクロスブラウザの入口として、各ブラウザの特徴をまとめつつ、実際にクロスブラウザなコードを紹介しました。今回はクロスブラウザ対策における基である、各ブラウザ環境の構築について解説したいと思います。 前回紹介した通りブラウザにはたくさんの種類・バージョンがあります。それぞれが動作する環境を用意するだけでも、一苦労ではすみません。なるべく少ないマシンで、各バージョンをインストールして、さらにデバッグするための環境作りについて紹介します。なお、Safari以外はWindows環境を想定しています。さらに、特に断りがない限りはWindows XP SP3をベースに解説させていただきます。ご了承ください。 各ブラウザのデバッグ環境は近年目覚しいほどの進化を遂げています。統合デバッグ環境の草分けであるFirebugを筆頭に、Safari/Chrome(WebKit)のWeb

    第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp
    dgdg
    dgdg 2010/03/30
    次も楽しみ
  • 第1回 無料でFlash作りに挑戦!Flex 3 SDKを導入してみよう | gihyo.jp

    Flashを作るには何万円もする専用ソフトが必要…、デザイナーが使うものだから敷居が高い…。そう考えてる方も多いのではないでしょうか。実はそんなことはありません。 Adobe社が無料で提供している開発環境「Flex 3 SDK」を利用すれば、ActionScript 3.0というプログラミング言語でFlashを作成できます。ActionScript 3.0はECMAScriptに準拠しているため、プログラマの方にとってもなじみやすい言語といえます。 この連載ではプログラマの方に向けて、サンプルを交えながら、ActionScriptでFlashを作る手法を解説していきます。 ActionScript 3.0でHello World! いきなりですが、ActionScript 3.0のサンプルコードを見てみましょう。定番のHello World!です。 package{ import flas

    第1回 無料でFlash作りに挑戦!Flex 3 SDKを導入してみよう | gihyo.jp
  • 検索エンジンはいかにして動くのか? 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    検索エンジンはいかにして動くのか? 記事一覧 | gihyo.jp
  • 『Software Design』の10年間がこの1冊に──『Software Design総集編【2000~2009】』発売決定!:新刊ピックアップ

    Software Designの創刊は,1990年の秋にさかのぼります。当時は,コンピューティングに対する興味が,弊誌の前身とされる『プロセッサ』に代表されるようなハードウェアに近い部分から,徐々にソフトウェアだけの情報に移ってきた時期でした。言い換えると「コンピュータを使う=プログラミングする」という図式の時代から,徐々にアプリケーションユーザが広がりつつあった頃で,ほんの一部の愛好家にしか読まれていなかったコンピュータ雑誌にも,バリエーションが現れはじめた時代だと言えます。 そんな中,弊誌は,「⁠ワンランク上のコンピューティングを目指す人」をターゲットに,それまで英語だったり難解なマニュアルや堅苦しい研究書にしか載っていなかった情報を,わかりやすい形でお見せする,というコンセプトで発刊されたのです。 総ページ数2万4,000ページ超! Software Design創刊以来初となる総集

    『Software Design』の10年間がこの1冊に──『Software Design総集編【2000~2009】』発売決定!:新刊ピックアップ
    dgdg
    dgdg 2010/01/14
  • 第3回 演算子と関数の噂を検証 | gihyo.jp

    はじめに 今回は演算子に焦点をあて、同様の動きをする演算子や関数と比較検証を行います。 ‘==’と‘===’ ‘==⁠’と‘⁠===⁠’とを比較します。‘⁠===⁠’は値だけではなく型も含めて比較を行う演算子です。 まずはベンチマークを取ってみます。 benchmark_equal.php <?php $t = microtime(true); $i = 0; while($i < 1000) { if ('a' == 'b') {} ++$i; } $tmp = microtime(true) - $t; var_dump($tmp); ?> benchmark_identical.php <?php $t = microtime(true); $i = 0; while($i < 1000) { if ('a' === 'b') {} ++$i; } $tmp = microtime(

    第3回 演算子と関数の噂を検証 | gihyo.jp
    dgdg
    dgdg 2009/10/22
  • 第1回 Chrome ExtensionsのAPI#1 | gihyo.jp

    こんにちは、ALBERTの太田です。今回からChrome4のリリースまでの間、Google Chrome Extensionsの詳細を追っていきたいと思います。なおタイトルの通り、この連載は先取り! Google Chrome Extensionsの続編となっています。 まず、重要なお知らせがあります。前回の特集で何度か使用していたToolstripsとMoleがベータリリースまでに削除されることが決まりました。その代わりとして、今回解説するBrowser Actionsが利用できるようになります(Important: Toolstrips being removed in favor of browser actions⁠)⁠。また、Browser Actionsに合わせて、第3回で解説したPage Actions APIの新バージョンが提案されています。こちらも詳細は追って解説します。

    第1回 Chrome ExtensionsのAPI#1 | gihyo.jp
  • 第1回 横浜サイエンスフロンティア高等学校往訪編 | gihyo.jp

    連載第1回目は、2009年に開校した横浜サイエンスフロンティア高等学校に取材をし、教育の視点から見たサイエンス、その可能性について前編・後編に分けて考察します。 連載開始にあたって 文系の私には長らくサイエンスに対してある種の偏見というか、誤解がありました。それはサイエンスというのはサイエンティストという職業の人間だけに見える一領域的な世界であって、文学者や音楽家のものとは全く違うものだと考えていたのです。 しかしながら、今日、サイエンスは人間の創造的活動領域をも含め、世界というものの摂理を追求し、解明するものだと思い直すに至りました。そのことで、数学や物理といった自分が高校時代に苦手として来た学問が今更ながらまったく違って見え始めたのです。とにかく嫌いだった数式なども急に魅惑的に見え始めました。 ただし、ここに至るまでには相当長く時間を要してしまい、私はすでに40代になっていました。もち

    第1回 横浜サイエンスフロンティア高等学校往訪編 | gihyo.jp
  • ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社

    はじめまして。面白法人カヤックの村瀬と申します。ArkというWebアプリケーション作成用のフレームワークを開発しました。今回から4回にわたって、このリリースしたばかりの「Ark」について紹介させていただきます。 Ark(アーク)とは Arkは、Perlで作られたWebアプリケーションフレームワーク(WAF)です。 Arkの特徴としては Catalystに似たインターフェース CGI/FCGI/mod_perlなどさまざまな環境で実用的に動作する CGI用モードの存在 日製であり、日語ドキュメントが充実している などが挙げられます。 Catalystに似たインターフェース Catalystは、Arkと同様にPerl製のWebアプリケーションフレームワークで、現在、Perlのフレームワークでは標準となりつつあるものです。 Arkは開発動機の1つが「CGIでも実用的に動作するCatalyst

    ついに出た!最新Perlフレームワーク「Ark」徹底解剖:第1回 Arkって何だ? -Ark が生まれるまで|gihyo.jp ... 技術評論社
  • 連載:独学で極める “Webデザイン”の技と心|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    連載:独学で極める “Webデザイン”の技と心|gihyo.jp … 技術評論社
  • 特集:Subversion+svkでらくらく分散リポジトリ|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    特集:Subversion+svkでらくらく分散リポジトリ|gihyo.jp … 技術評論社
  • 連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
  • 1