タグ

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

  • 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
  • 第1回 memcachedの起動オプションを把握しよう | gihyo.jp

    1.4系で新しく追加された主な機能しては バイナリプロトコルの導入 マルチスレッドの標準化 統計の強化 などが上げられます。この1.4系の機能の詳細については前坂徹氏の連載「memcached 1.4の到来」が参考となります。ここではバージョン1.2.5と最新の1.4.5の起動オプションを比較しながら、新しく追加された機能や実際の運用で用いられる起動オプションについて説明します。 1.2系と1.4系の起動オプションの違い まず、memcachedの起動オプションの一覧(ヘルプ)を確認しましょう。memcachedのヘルプを出力するには、「⁠-h」オプションを使います。 $ memcached -h memcached 1.x.x -p <num> TCP port number to listen on (default: 11211) -U <num> UDP port number t

    第1回 memcachedの起動オプションを把握しよう | gihyo.jp
  • 第1回 WebSocket登場までの歴史 | gihyo.jp

    はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「⁠WebSockets⁠」⁠、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S

    第1回 WebSocket登場までの歴史 | gihyo.jp
  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp
    Rewish
    Rewish 2010/05/22
  • 第1回 PHPUnit入門 | gihyo.jp

    はじめに 皆さん、テストしてますか? 近年、システム開発を発注する顧客や利用ユーザーの品質に対する要求レベルは格段に向上しています。そのため、システムの品質を保証するための「テストフェーズ」はますます欠かせなくなってきています。 ここで、一口に「テスト」といっても、フェーズによって以下のような様々なテストがあります。 ユニットテスト・単体テスト 結合テスト・システムテスト 総合テスト 受け入れテスト 負荷テスト セキュリティテスト 筆者の経験上、一般的なシステム開発でもっとも大きな工数を占めるのは、この「テスト」フェーズと考えています。なぜなら、テストフェーズは例外なく「繰り返し作業」だからです。前述の様々なテストフェーズで共通することですが、テストフェーズは「テストで発見されたバグ・障害を修正して再度テストを行う」という作業を何度も繰り返し行うフェーズです。あとのフェーズで不具合が発見さ

    第1回 PHPUnit入門 | gihyo.jp
    Rewish
    Rewish 2010/05/05
  • 第1回 NoSQL、そしてCassandraとは | gihyo.jp

    NoSQLミドルウェアの特徴をもう少し細かく挙げてみます。分量の都合もあり個別には触れませんが、それぞれのNoSQLミドルウェアで差別化部分に関してはかなり詳細に説明がされていますので、ぜひそちらを参照してみてください。 高速に動作する リレーションモデルではないデータモデル スケールアウト型アーキテクチャ コモディティサーバによって構築される スキーマフリー SPOF(単一故障点)を持たない 自動的に複数台へレプリケーションする イベンチュアルコンシステンシまたは一貫性の選択が可能 SQLのような強力なクエリ言語を持たず、シンプルな問い合わせしかできない Cassandraとは何か NoSQLミドルウェアの筆頭といえばGoogle BigTableやAmazon Dynamoですが、オープンソースの世界でもいろいろなものが出てきています。その中でも最近特に注目を集めているのが、Apach

    第1回 NoSQL、そしてCassandraとは | gihyo.jp
  • 第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp

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

    第2回 完全版:ブラウザとデバッグ環境 | gihyo.jp
    Rewish
    Rewish 2010/03/29
  • 第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp

    こんにちは、id:os0xこと太田昌吾です。今回から、クロスブラウザ対策を中心としたJavaScriptの初級から中級の方向けの連載を開始します。JavaScriptの基礎的な文法は理解されているという前提での解説となりますので、ご了承ください(間違いやすい、わかり難いと思われるところは適宜補足します⁠)⁠。初回である今回はJavaScriptやウェブブラウザの背景など盛りだくさんの内容でお届けします。 JavaScriptのイマ JavaScriptは2010年現在において、最も重要な言語となりつつあります。旧来はすべての処理をサーバーで行って、結果をウェブブラウザ上に表示するだけというのがウェブの一般的な姿でした。2005年に登場したGoogle Mapsを一つの契機として徐々にウェブブラウザ・クライアント側での処理が見直され始め、近年ではクラウドやSaas、そしてHTML5の流行によ

    第1回 ウェブブラウザとJavaScriptの未来 | gihyo.jp
  • 第34回 Redmineプラグイン開発(1) | gihyo.jp

    はじめに RedmineRuby on Railsで実装されたプロジェクト管理ツールです。競合のツールとしてTracが有名ですが、Tracと比較して開発速度が早く、ここ数年で急激にユーザを増やしています。Tracには標準で用意されていない機能として、ガントチャートの表示や複数プロジェクトの管理、チケットの種別ごとのワークフローのカスタマイズ機能に加え、最新の0.9系ではTracに比べて唯一貧弱だったチケットのレポーティング機能がほぼ同等レベルまで強化されました。 これにより今年から格的にRedmineへの移行が始まっていくと思われます。既に2009年の9月にはオープンソースのSNSエンジンであるOpenPNEの開発チームがTracからRedmineに移行したことや、Googleトレンドの検索数でRedmineがTracを追い抜いたというニュースもあります。 今回は、Redmineのプラ

    第34回 Redmineプラグイン開発(1) | gihyo.jp
  • WordCamp Fukuoka 2010最速レポート(随時更新) | gihyo.jp

    2010年2月27日、日で4回目、九州地区では初となるWordPressに特化したカンファレンス「WordCamp Fukuoka 2010」が西南学院大学コミュニティーセンターにて開催された。ここでは、その模様について速報でお届けする。 ※順次公開していきます。 会場となった西南学院大学コミュニティーセンター。 開会に先立ち挨拶を述べる株式会社ヌーラボ代表取締役橋正徳氏。福岡で働くWebの人々(FWW)などの運営にも関わっている。 WordPress for the world from Japan~日から世界へ オープニングセッションを務めたのは、ニューヨークを拠点とした情報システムコンサルティング会社1080dの最高情報責任者で、アメリカの最大手出版社であるTime社でWordPressを使った様々なオンラインメディアサイトに関わる立場でもあるNed Watson氏。同氏は5~

    WordCamp Fukuoka 2010最速レポート(随時更新) | gihyo.jp
  • 第31回 RubyistのためのMongoDB入門(1) | gihyo.jp

    はじめに ここ最近、NoSQLというキーワードが注目を集めています。 リレーショナルデータベースは、一般的にスケールアウト(サーバの台数を増やして性能向上を図る手法)が難しく、特に大規模サービスにおいてパフォーマンス上のボトルネックとなりえます。また、タグやグラフ構造のようなデータは関係モデルに馴染みにくいため、それらを扱う際にはアプリケーションコードもぎこちないものになりがちです。 これらの問題を背景に、何にでもリレーショナルデータベースを使うのではなく、用途に応じてKVSなど他のデータストアを選択する流れが広まりつつあります。このムーブメントがNoSQL(Not Only SQL)と呼ばれているものです。 今回は、NoSQLなデータベースの1つであるMongoDBをご紹介します。 MongoDBとは MongoDBは高いパフォーマンスとスケーラビリティを特徴とするドキュメント指向型デー

    第31回 RubyistのためのMongoDB入門(1) | gihyo.jp
  • 2010年のJavaScript:「これまで」と「これから」 | gihyo.jp

    2010年のJavaScriptと題しまして、JavaScript周辺の「これまで」と「これから」についてまとめてみたいと思います。 2009年までのJavaScript JavaScriptは各ブラウザベンダなどが個別に実装するという特殊性から、ブラウザ(実装)ごとの非互換性の問題に悩まされ続けてきた言語です。まず、そのJavaScript歴史を簡単に振り返ってみます。 ECMA-262 3rd editionとスピードコンテスト JavaScriptNetscape社によってLiveScriptという名前で誕生し、その後ECMAScriptとして標準化が進みました。1999年12月にECMA-262 3rd editionが策定されてから、Internet ExplorerのJScript、MozillaのSpiderMonkey(TraceMonkey⁠)⁠、SafariのJav

    2010年のJavaScript:「これまで」と「これから」 | gihyo.jp
  • 先取り! Google Chrome Extensions 記事一覧 | gihyo.jp

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

    先取り! Google Chrome Extensions 記事一覧 | gihyo.jp
    Rewish
    Rewish 2009/10/20
    os0xさんの連載。
  • zshで究極のオペレーションを 記事一覧 | gihyo.jp

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

    zshで究極のオペレーションを 記事一覧 | gihyo.jp
    Rewish
    Rewish 2009/10/15
  • 連載:Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!|gihyo.jp

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

    連載:Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!|gihyo.jp
  • 第1回 jQueryにふれる | gihyo.jp

    はじめに ここ数年、JavaScriptライブラリを使ってサイトを製作するという機会がどんどん増えてきました。今まででであれば、JavaScriptのライブラリを使う・使わないに関わらず、その製作の多くはプログラマーの方が行っていたと思います。しかし近年、そのJavaScriptライブラリも種類が増えてきて、プログラミングの知識がなくても簡単に導入できるようなライブラリも出てきました。そのため、それらの使い手はプログラマーからWebデザイナーやマークアップエンジニア側へとシフトしつつしている部分もあります。 そんな数多くあるJavaScriptライブラリの中でも、Webデザイナーなどのプログラミング知識がない人でも比較的導入のしやすいのが『jQuery』です。このjQueryの魅力は、その使いやすさとプラグインの豊富さにあり、プラグインだけでも、すでに使ったことがあるという方も多いと思いま

    第1回 jQueryにふれる | gihyo.jp
  • 第2回 オブジェクト化しよう | gihyo.jp

    はじめに オブジェクト指向プログラミングの入門書では、動物の鳴き声を使ったサンプルをよく見ますね。 リスト1 オブジェクト指向でよく見かけるサンプル class cat { function mew() { return "ニャー"; } function hasNekomimi() { return TRUE; } } // kitten is a cat. class kitten extends cat { function mew() { return "ミー"; } // hasNekomimiメソッドは、catクラスから継承される } // phpはダックタイピングなので、catクラスのかわりに渡せる class catgirl { function mew() { return "にゃんっ"; } function hasNekomimi() { return TRUE; }

    第2回 オブジェクト化しよう | gihyo.jp
    Rewish
    Rewish 2009/08/12
    第2回アツい
  • 第1回 三次元に挑戦 | gihyo.jp

    はじめに 先日、東京のお台場にガンダムの実物大の模型ができました。見に行かれた方も多いのではないでしょうか。CGでどんな映像でも作れる時代ですが、やはり実物というのは迫力が違うものです。 ガンダムに対抗するわけではないのですが、稿では鉄道模型の制御に挑戦してみようと思います。模型であっても、実際に車両が動くというのは格別なものです。普通、制御というとC言語などを使用しますが、ここではPHPからLAN経由で制御するようにしてみました。まずどうやって制御しているのか、見ていきましょう。 こんなふうに動きます まずは写真のような一直線のレイアウトを動かしてみましょう。普通のNゲージでは電源は1ヵ所だけ供給しますが、今回は5ヵ所に供給しています。これについては、後ほど解説します。 図1 直線レイアウト そして、PHPのプログラムはリスト1のようになります。このプログラムをコマンドラインから実行す

    第1回 三次元に挑戦 | gihyo.jp
    Rewish
    Rewish 2009/08/05
    PHPでやるんだ
  • 第1回 ガジェットAPI | gihyo.jp

    2009年5月28日、Googleのデベロッパーカンファレンス「Google I/O 2009」のキーノートにおいて大々的に発表されたGoogle Waveは、聴衆に熱狂を持って迎えられました。そのキーノートにおいてスピーカーは「Google WaveはProductであり、Platformであり、Protocolだ」と述べました(編注⁠)⁠。 連載ではその3つのPの内の2つ目、PlatformとしてのGoogle Waveについて説明します。 編注 著者執筆のGoogle I/O 2009のイベントレポート記事も参照ください。 なお、Google Waveは現在も急ピッチで開発が進められているプロダクトであり、連載に掲載する画面遷移・ソースコードなどは最新ではない可能性があります。記事に沿って作業していて違和感を覚えた場合にはGoogleの公開しているドキュメントを適宜参照してくださ

    第1回 ガジェットAPI | 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 ... 技術評論社