タグ

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

  • 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
    efcl
    efcl 2011/03/12
    Diffアルゴリズムの解説
  • 第12回 ポインティングデバイスのカスタマイズ(1):トラックポイント・タッチパッドのカスタマイズ | gihyo.jp

    一般的なデスクトップユースでは、マウスやトラックポイント(ポインティング・スティック⁠)⁠・タッチパッドといった、ポインティングデバイスは欠かせません。今回はこうしたポインティングデバイスのうち、ノートPCで利用される、ポインティング・スティック(ポインティング・スティック)とタッチパッドのカスタマイズについて説明します。 トラックポイント(ポインティング・スティック) トラックポイント(一般名称は「ポインティング・スティック」ですが、稿ではこれを「トラックポイント」と呼ぶことにします)は、キーボードの[H⁠]⁠・[⁠J]キーの間に小型のジョイスティックを配置し、これを操作することでポインタを操作する形式のデバイスです。 現在のノートPCではそれほど採用数が多くなく、Lenovo(旧IBM)のThinkpadシリーズや、DellのLatitudeシリーズのモバイル向けモデル、HPのMob

    第12回 ポインティングデバイスのカスタマイズ(1):トラックポイント・タッチパッドのカスタマイズ | gihyo.jp
    efcl
    efcl 2011/03/11
    Linuxでのポインティングデバイス
  • #22 Gitメンテナ 濱野 純 | gihyo.jp

    今回のゲストは、分散バージョン管理システムGitのメンテナで『入門Git』(⁠注1)の著者、濱野純さんです。Linuxカーネルの開発者、Linus Torvaldsさんから引き継いでGitのメンテナになった経緯から、対談スタートです。 (撮影:武田康宏) Gitに関わった経緯 弾:Gitに関わったきっかけは? 濱:2005年の4月にLinuxカーネルのバージョン管理システムとして使われていたBitKeeperが使えなくなる[2]からということで、Linus君がいろいろありものを探したんだけど、使えるものがなくて、誰かがいいのを作ってくれるまでのつなぎというつもりで、とりあえず自分でもコードを書いた、というアナウンスをしました。それをカーネルメーリングリスト(ML)で見ていたんですが、たまたまボクの業がプロジェクトプロジェクトの合間だったんです。なんかおもしろそうなこと始まってるじゃん、

    #22 Gitメンテナ 濱野 純 | gihyo.jp
    efcl
    efcl 2011/03/09
    gitの歴史、githubとの関係
  • 第22回 JavaScriptによるUIの実装:ドラッグ | gihyo.jp

    こんにちは。前回に引き続き、JavaScriptUIを実装する方法を紹介していきます。 要素のドラッグ ウェブアプリでよく使われるインタフェースのひとつ、ドラッグを実装してみます。ドラッグを使用するケースは幾つかありますが、今回は投稿用フォームをドラッグで移動できるようにするという使い方を想定してみます。 投稿フォームで入力する際、そのページのコンテンツを見ながら入力したいということはよくあります。フォームを好きな位置に移動できればそれが実現できます。 ドラッグの基HTML <div class="js-drag" id="js-drag-1"> <form class="js-drag-form" onsubmit="return false;"> <textarea></textarea> <input class="submit" type="submit" value="送信"

    第22回 JavaScriptによるUIの実装:ドラッグ | gihyo.jp
    efcl
    efcl 2011/01/17
    汎用的なドラッグの書き方, UIとしてドラッグの実装方法
  • 2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp

    あけましておめでとうございます。昨年に引き続き、今年もJavaScriptの近い未来についてちょっとだけお話させて頂きます。 最初に昨年の予想を見返しておきましょう。昨年は次の3つを2010年の鍵として取り上げました。 ウェブ標準 ブラウザ拡張 サーバーサイドJavaScript この3つを軸に2010年を振り返ってみます。 2010年のJavaScript界隈でのニュース ウェブ標準 2010年最初のビッグニュースはなんといってもIE 9のPlatform Preview版の登場でした。これまでの独自実装路線から一転して(正確にはIE 8の時点でJSONやWeb Storageのサポートなど、その徴候はあったのですが⁠)⁠、HTML5などのウェブ標準のサポートを進めることを表明しました。そして実際に8週おきにPlatform Preview版をアップデートして、ECMAScript5・S

    2011年のJavaScript ─ウェブアプリ全盛の時代へ | gihyo.jp
    efcl
    efcl 2011/01/01
    2010年のJavaScriptまとめ。 テスト関係JsTestDriver
  • 本日12月1日より、プログラマ有志による技術系Advent Calendarが各所ではじまる | gihyo.jp

    日12月1日より、プログラマ有志による各技術系Advent Calendarが一日目を担当する人のblogではじまっている。ここ数年は、師走の風物詩になっている。 一般的なAdvent Calendarは、12月25日のクリスマスを楽しみに待つために、12月1日から24日までのカレンダーの日付の部分(扉だったりする)がめくられるようになっており、1日ずつその日の日付の部分をめくると天使や動物の絵などが見えるという仕組み(もちろん、様々なバリエーションがある⁠)⁠。 これに発想をえて、技術系Advent Calendarでは基的に、12月1日から25日までの25日間、プログラミング言語縛りなどの最低限のルールで、毎日別の人(同じ人が複数回担当することもある)が自分のblogにて記事を書くという形式になっている(特設サイトを用意して、記事をまとめる手法もある⁠)⁠。なお、国内ではATND

    本日12月1日より、プログラマ有志による技術系Advent Calendarが各所ではじまる | gihyo.jp
    efcl
    efcl 2010/12/12
    Advent Calendarまとめ
  • Jettyで始めるWebSocket超入門 記事一覧 | gihyo.jp

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

    Jettyで始めるWebSocket超入門 記事一覧 | gihyo.jp
    efcl
    efcl 2010/12/03
    Jettyで始めるWebSocket超入門 by kanasan(Kanasansoft)
  • Web標準とその周辺技術の学び方 記事一覧 | gihyo.jp

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

    Web標準とその周辺技術の学び方 記事一覧 | gihyo.jp
    efcl
    efcl 2010/11/17
    Web標準の作り方。 本連載では「仕様書」という面から,Web標準と呼ばれる技術同士の関係やその意義について考えていきます。また,策定中の新しいWeb標準に関する情報なども簡単に紹介する予定です。
  • 第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp

    第32回 PHPセキュリティ月間(Month of PHP Sercurity)で「PHPセキュリティ月間」(⁠MOPS - Month of PHP Security)について簡単に紹介しました。 今回はパスワードを安全に保存するツールの紹介です。今まで数回に渡ってMOPSの成果の一部を紹介してきましたが、今回で最後です。 MOPS Submission 10: How to manage a PHP application’s users and passwords http://www.php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/index.html この論文は1位を取得した論文です。Drupal 7でこのライブラリが利用されてい

    第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass | gihyo.jp
    efcl
    efcl 2010/11/04
    パスワードの保存について。 平文、stretching、saltの比較
  • 第17回 アニメーションの基礎 | gihyo.jp

    こんにちは、太田です。3回ほどJavaScriptの基礎的な内容が続いたので、今回はグラフィカルなアニメーションについて解説します。グラフィカルなJavaScriptというと、難しい・応用的なイメージがあるかもしれませんが、JavaScriptでのアニメーションとはすなわちCSSを段階的に操作するということで、そのポイントを抑えれば中身は単純なものです。 アニメーションの前提知識 HTMLにおける通常のアニメーションを構成するのは、「⁠特定の要素」に対して、「⁠そのCSSプロパティ」を「ある時点からある時点まで」の時間の中で、「⁠ある値からある値に操作」する、といった要素です。 特定の要素と、CSSプロパティについては問題ないと思います。問題となるのは「時間と値の操作」です。 まず、単純にインクリメントするだけというサンプルを見てみましょう。 良くないアニメーション var y = 0;

    第17回 アニメーションの基礎 | gihyo.jp
    efcl
    efcl 2010/10/26
    CSSアニメーション。Tween
  • 第16回 JavaScriptのthisとcall | gihyo.jp

    こんにちは、太田です。前々回、前回とJavaScriptにおける継承について学習しました。今回はそれに深く関わるthisについて学んでいきます。 JavaScriptのthisはややクセのある動作をするように思えるかもしれませんが、仕組みをしっかり把握すれば実に簡単です。特に重要なのは次の2点です。 thisが何を指すかは関数の呼び出し方で決定する thisは関数スコープに存在する特殊な変数である インスタンスとしてのthis では、まずはコンストラクタ内でのインスタンスとしてのthisを見てみましょう。 コンストラクタとthis function A(name){ this.name = name; } A.prototype.getThis=function(){ return this; }; var a = new A('aaa'); console.log(a); console

    第16回 JavaScriptのthisとcall | gihyo.jp
    efcl
    efcl 2010/10/12
    ツールチップ。 position:fixed; IE 6
  • PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp

    2010年9月24日・25日に開催された「PHPカンファレンス2010」にあわせて、PHP開発者のRasmus Lerdorf氏が来日されました。日を訪れるのは2度目という氏に、PHPの現状とその根底にある思想についてお話を聞きました。 現在の仕事について 大垣:昨年 Yahoo! Inc.を退職されましたね。現在はどのような仕事をされているのでしょうか? Rasmus:WePayという起業したばかり小さな会社にいます。WePayはカリフォルニアにある、グループで支払いを行う処理を行うベンチャー会社です。 大垣:グループで支払いを行う、というのは、どういうことですか? Rasmus:グループで何かを買いたいときに、グループとしてお金を管理したいですよね。例えば、大学で学生が集まってプレゼントを買いたいという場合があります。どんなものでも構わないですが、10人が集まって共同でオンラインショ

    PHP開発者 Rasmus Lerdorf氏インタビュー ~PHPは「利己的」な開発者の集まり | gihyo.jp
    efcl
    efcl 2010/09/29
    技術はなにかを実現するための手段であって、それ自体が目的じゃない。 CMSはフレームワークみたいなもの。サイト毎にフレームワークあったっていい。
  • 第2回 UTF-7によるクロスサイトスクリプティング攻撃[後編] | gihyo.jp

    前回に引き続き、UTF-7によるクロスサイトスクリプティング(XSS)について説明していきます。 UTF-7によるXSSは、攻撃対象のコンテンツの文字エンコーディングが不明瞭な場合に、そのコンテンツを被害者のブラウザ(Internet Explorer)で開いたときに、そのコンテンツの文字エンコーディングがUTF-7であるとIEに誤認させ、「⁠+ADw-script+AD4-」のようなUTF-7の文字列が有効なHTML要素として認識されるために発生します。 そして、「⁠文字エンコーディングが不明瞭」な具体的な状況として、以下のような条件のいずれかに該当するということを前回説明しました。 レスポンスヘッダ、meta要素のどちらでもcharsetが指定されていない charsetにIEが解釈できないエンコーディング名が指定されている meta要素でcharsetを指定しているときに、meta要

    第2回 UTF-7によるクロスサイトスクリプティング攻撃[後編] | gihyo.jp
    efcl
    efcl 2010/09/25
    IEは文字エンコーディングが少しでもおかしいとコンテンツで文字コーディングを決める。 METAより前に文字コードを決定できる要素があればそれにそって決定してしまう。
  • 第14回 プロトタイプと継承 | gihyo.jp

    こんにちは、太田です。前回は総集編的な内容でしたが、今回は一転して基礎編に戻ります。JavaScriptにおける継承の方法とその仕組みについて、今回から数回に分けて基礎的な部分からきっちり押さえていきたいと思います。 JavaScriptとオブジェクト指向 JavaScriptはプロトタイプベースのオブジェクト指向プログラミング言語と言われています。new演算子を用いることで、関数がコンストラクタとして働き、そのコンストラクタが持つプロトタイプオブジェクトのメソッド(プロパティ)を継承した新しいオブジェクトを作ることができます。 なお、オブジェクト指向という概念については今回は触れません。オブジェクト指向という概念を掴みきれていない、自信がないという方は、JavaScriptのprototypeをしっかりと理解してから改めてその概念を学んでみるとすんなりと理解できるかもしれません。さらに、

    第14回 プロトタイプと継承 | gihyo.jp
    efcl
    efcl 2010/09/13
    JavaScriptにおけるprototype。 コンストラクターとインスタンス、__proto__ 、this
  • 第2回 JavaScriptのデバッグとチューニング | gihyo.jp

    使用頻度が高いのはデベロッパーツールを起動するCtrl+Shift+I(もしくはCtrl+Shift+J)と、コンソールを開閉するESC、コンソールでは補完候補を選択するtabなどが挙げられます。 例えば、長くて間違えやすいencodeURIComponentのスペルは、Ctrl+Shift+Jでデベロッパーツールを起動してコンソールを開き(コンソールが開かなかった場合はESC⁠)⁠、eだけ打ってtabキーを2回押せば encodeURIComponent が補完されるので、スペルを簡単にコピーできます。 JavaScriptデバッガの活用 前回はブレークポイントの設置方法を紹介しましたが、もう一歩進んだ条件付きブレークポイントの設置方法を紹介します。 まず、通常のブレークポイントを設置します。 この青くハイライトされた行番号の上で右クリックすると次のようなメニューが表示されます。 ここで

    第2回 JavaScriptのデバッグとチューニング | gihyo.jp
    efcl
    efcl 2010/08/25
    JavaScriptデバッグコンソール。 breakポイントの使い方
  • [動画で解説]和田卓人の“テスト駆動開発”講座 記事一覧 | gihyo.jp

    第16回プログラミング言語とTDDは、どちらを先にマスターすべきか? 和田卓人 2007-12-21

    [動画で解説]和田卓人の“テスト駆動開発”講座 記事一覧 | gihyo.jp
    efcl
    efcl 2010/08/19
    テストの仕方コラム。 テスト駆動開発(TDD)
  • 第1回 詳説:デベロッパーツールの使い方 | gihyo.jp

    こんにちは、Google Chrome ExtensionsのAPI ExpertとChromium-Extensions-Japan管理人を担当している、太田と申します。いつもはクロスブラウザで連載していますが、今回はGoogle Chromeのデベロッパーツールについて紹介します。 昨今のJavaScriptHTMLCSSブームの背景には、開発環境、特にFirebugに代表されるようなデバッグツールの目覚しい発展が大きく貢献していると思われます。その反面、高機能化するデバッグツールの各種機能を使いこなすことが難しくなってきているという現実もあります。そこで、今回から全4回でGoogle Chromeに搭載されているデベロッパーツールの使い方とそれを利用したデバッグ・チューニングのノウハウをお届けしたいと思います。第1回はデベロッパーツールの機能紹介と基的な使い方を解説します。 な

    第1回 詳説:デベロッパーツールの使い方 | gihyo.jp
    efcl
    efcl 2010/08/18
    Google Chromeのコンソール使い方
  • 第12回 XMLHttpRequest入門 | gihyo.jp

    こんにちは、太田です。前回はJSONPについて解説しました。今回は、XMLHttpRequestについて解説していきます。 XMLHttpRequestとは XMLHttpRequestはブラウザ上でサーバーとHTTP通信を行うためのAPIです。 名前にXMLが付いていますがXMLに限ったものではなく、HTTPリクエストを投げてテキスト形式かDOMノードでレスポンスを受け取る機能を持っています。 仕様としてはW3CよりXMLHttpRequestとして定義されており、2010年8月3日にCandidate Recommendation(勧告候補)となったばかりです。また、XMLHttpRequest Level 2の策定も進められています。 XMLHttpRequestの機能と特徴 前回のJSONPと比べると機能的には大きな違いはありません。ただ、スキーム、ドメイン、ポート(これをまとめて

    第12回 XMLHttpRequest入門 | gihyo.jp
    efcl
    efcl 2010/08/16
    IEでも使えるJSONパースライブラリjson2.js。 クロスブラウザ対応のXHRの書き方 XMLHttpRequestの実装状況。 XHRまとめ
  • 第1回 一生の仕事を選ぶということ | gihyo.jp

    「一度しかない人生、思いっきり楽しもうぜ」 酒の席になるとやたらと人生哲学みたいなものを語り出して部下や後輩を困らせるという人がたまにいるが、私もあの手の「説教」を聞くのは得意ではない。しかたがないので、「⁠はあ、そうですか」とか「勉強になります」とか言いながらも、心の中では「早く終わらないかな」とか、その日に解決できなかったバグを「明日の朝にはどう攻略しようか」と作戦を練ったりしている私だ。 じゃあ自分なりの「人生哲学」みたいなものをまったく持っていないかというと、そうではない。ただ、そんな話はネチネチと時間をかけて語るものでもなければ、ましてや酒の席でするのに適した話ではないと思っているだけのことだ(私が、下戸だというのはさておいて⁠)⁠。 では具体的には何かと言えば、「⁠自分が当にやりたいことを見つけろ」という、とても単純な話だ。言い方を変えて「わがままに生きろ」でも「自分に正直に

    第1回 一生の仕事を選ぶということ | gihyo.jp
    efcl
    efcl 2010/05/22
    天職とは
  • 特集:jquery.jsを読み解く|gihyo.jp … 技術評論社

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

    特集:jquery.jsを読み解く|gihyo.jp … 技術評論社
    efcl
    efcl 2010/04/10
    jQueryソースコードリーディング