gdb hacks 第 6 回。前回は IA-32 で gdb がデバッグレジスタをどのように活用しているかを見ました。今回はデバッグレジスタをプロセスが自分自身で利用する方法について考えてみます。
「Gitを使いたいが、中央リポジトリにはSubversionを使わざるを得ない」という場合も多いだろう。そのような状況で便利なのが、SubversionリポジトリとGitリポジトリの橋渡しをする「git-svn」である。git-svnを利用することで、SubversionリポジトリとGitのローカルリポジトリを同期させることが可能だ。本記事では、このgit-svnの活用方法を紹介する。 git-svnのアーキテクチャ Gitの大きな特徴として、分散型アーキテクチャがある。分散型アーキテクチャでは、コミットはローカルのリポジトリに対して行い、ソースコードの同期はそれぞれの開発者間が持つローカルリポジトリ同士で変更点をやりとりすることで行う。もちろん公開リポジトリを利用したソースコードの同期も可能であり、柔軟な開発体制を取れるのが長所である。 しかし、一方でGitは非常に多数のコマンドがあり、
† [1] Summary: Name: examplespec Version: Release: 1 License: Group: URL: Source0: %{name}-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot %description [2] %prep %setup -q [3] %build [4] %install rm -rf $RPM_BUILD_ROOT [5] %clean rm -rf $RPM_BUILD_ROOT [6] %files %defattr(-,root,root,-) %doc [7] %changelog * Sat Jul 3 2004 root <root@localhost.localdomain> - Initia
キーボードを、持ち歩く。 久しぶりに、スマホ用のキーボードを使ってブログを書いている。 いくつかキーが壊れてしまっているので買い替えないといけないのだが、壊れるくらいには使い込んでいたんだなと思った。 当時は、今のようにPCを普段から持ち歩くことが少なかったので、出先でもブログ…
PapercutはWindows向けのフリーウェア(ソースコードは公開されている)。システム開発を行っている時に最も厄介なのがメールの取り扱いだ。メールサーバがなければエラーが起きるし、かといってサーバを立てて本当にメールが出てしまっても困る。本物に近いデータを使っていて、間違ってメールを送ってしまったなんて経験は誰しもがあるのではないだろうか。 ローカルで立てる開発用メールサーバ そのような時に便利なのがローカルコンピュータ上で立てるメールサーバだ。開発環境の設定さえ行えば、これでメールの送信ができるようになる。Windowsの環境であればPapercutを使うのが手軽で良さそうだ。 Papercutを起動するとタスクトレイに常駐する。後は任意のプログラムからメール送信を行うとPapercutが受信してくれるようになる。もちろんlocalhost:25でプログラム側のメールサーバの設定を
JavaScriptがWebアプリケーションを構築する上で欠かせない技術になっている以上、そのデバッグ方法も洗練される必要がある。Firefoxの場合は有名なFirebugがあるが、他のブラウザになるとそれぞれのやり方があったり、そもそも使い勝手が悪かったりと開発効率が落ちてしまう。 多数のブラウザに対応したJavaScriptデバッガ そんな中、Javascript Debug Toolkitでは多数のブラウザをサポートしたJavaScriptのデバッグが可能なようだ。 今回紹介するオープンソース・ソフトウェアはJavascript Debug Toolkit、WindowsやLinuxに対応したJavaScriptデバッグツールだ。 Javascript Debug Toolkitはスタンドアローン版とEclipseプラグイン版が提供されている。Eclipse版であればMac OSXで
ソースコードレビューは意味がないなんて言われることもあるが、適切に運用すればとても役立つシステムだ。他人のソースコードを見て勉強したり、人が見ることを意識するので奇麗なコードを書くようにもなる。 Redmineでソースコードレビューを Redmineにはリポジトリブラウザがついているが、ソースコードレビュー機能がないのが残念に思っていた。が、プラグインを使えば実現できるのだ。 今回紹介するオープンソース・ソフトウェアはRedmine Code Review プラグイン、Redmineにソースコードレビュー機能をつけるプラグインだ。 Redmine Code Review プラグインはRailsのプラグインのようにvendor/plugins以下に配置する。そしてモジュール画面で有効にすれば利用が出来る。使い方は簡単で、リポジトリを表示した際にあるDiffリンクをクリックすれば良いだけだ。
2009年6月10日 物体認識に使える特徴ベクトル Histograms of Oriented Gradients Histogram of Oriented Gradients(HOG)は、大まかに形状を捉えられる特徴ベクトルで、画像の物体認識などに使用されます。 Dalal, N., Triggs, B., Histograms of Oriented Gradients for Human Detection, IEEE Conputer Vision and Pattern Recognition, 886-893, 2005. HOGはその名のとおり、輝度の勾配方向のヒストグラムです。 まず、画像を小さなセルに分割します。 分割したセル上の座標 (x, y) の輝度 I(x, y)から、勾配強度 m と勾配方向 θ
設定 基本 ブランチ リモート・リポジトリ git-stash git-svn 参考 修正履歴 設定 Git には様々なオプション設定がある。中には挙動を大きく変えるものもあるので注意が必要である。 設定をすべて表示する $ git config --list システム (/etc/gitconfig) の設定 $ git config --system --list や、ユーザーごと (~/.gitconfig) の設定 $ git config --global --list など表示する対象を絞ることもできる。 ユーザ名とメール・アドレスを設定する $ git config --global user.name "John Doe" $ git config --global user.email "john.doe@example.com" コミットする時に記録されるユーザー名とメ
時々、Webサイトで入力している内容をその場で判定するものがある。入力必須の項目やメールアドレス、パスワードの一致などでエラーがあればすぐに表示してくれるので、送信してから修正すると言った二度手間がなくて便利だ。 Webブラウザ上で入力チェックを実行する サーバ側でも入力チェックは行うが、ユーザビリティを考えるとオンラインでも検証したい。そんな検証システムを簡単に作れるのがyavだ。 今回紹介するオープンソース・ソフトウェアはyav、JavaScriptの入力チェックライブラリだ。 yavは入力必須はもちろん、数字のみや文字のみといったチェックもできる。メールや日付、文字の長さなどといったフォーマットによるチェックや、「and」と「or」による他の項目の値によって入力チェック内容を変更する機能もある。多言語にも対応している。 設定はこのようになる 入力フォーマットを規定することも可能で、予
Emacs + GDB を利用したいならば、何よりも GNU Emacs Manual: Debuggers(英語) を読むことを強くおすすめします。 和訳も存在しますが内容が古く、マウスを利用した操作やグラフィカルな機能についての記述がありませんでした。 マニュアルを読んで理解したあとは実践で覚えていくわけですが、以下にまとめたチートシートを利用すれば時間が節約できるかもしれません。 もしも便利な機能に関して漏れがあれば是非教えてください。 .emacs ;;; GDB 関連 ;;; 有用なバッファを開くモード (setq gdb-many-windows t) ;;; 変数の上にマウスカーソルを置くと値を表示 (add-hook 'gdb-mode-hook '(lambda () (gud-tooltip-mode t))) ;;; I/O バッファを表示 (setq gdb-use
プログラミングをコピー&ペーストで作ったものはスパゲティーになりやすい。コピー&ペースト自体には問題がなく、それを行うプログラマーのレベルに問題があるという話もあるが、大抵そうなる。 ソースコードを検索して類似ポイントを洗い出す コピー&ペーストに限らないが、修正などによって徐々に肥大化したソースコードは適切にリファクタリングしてやれば可読性が高まり、システムとしての寿命も延び、さらなる機能追加が素早くできるようになる。その手助けになるのがUniqueだ。 今回紹介するオープンソース・ソフトウェアはUnique、ソースコード類似ポイント検索ソフトウェアだ。 Uniqueは指定したファイルまたはディレクトリ以下にあるプログラミングソースについて検索を行い、類似ポイントをスコア評価してくれるソフトウェアだ。もちろんスコアの高い部分は似ていると思われる場所になるのでリファクタリングの対象になるだ
LinuxカーネルやRuby on Rails、Perlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。本記事では、Gitを使いこなすために覚えるべき20個のGit基本コマンドを紹介する。 LinuxカーネルやRuby on Rails、Perlなど、近年多くの大規模プロジェクトで採用されているバージョン管理システムが「Git」だ。Gitには非常に多数のコマンドが用意されているが、日常的に使用するコマンドは20個程度と言われている。本記事では、Gitを使いこなすために覚えるべき20個のGit基本コマンドを紹介する。 なお、Gitの基本的な考え方や使い方については分散バージョン管理システムGit入門でも紹介しているので、そちらも参照してほしい。
金曜日は サーバー/インフラを支える技術出版記念イベント サーバ/インフラ Tech Meeting の日でした。自分は「Linuxカーネルの読み方」と題して、自分なりにまとめたカーネルのソースコードを読むコツについてお話させていただきました。 発表資料を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/08080924svr_techmeeting.ppt (ppt) http://www.slideshare.net/naoya1977/how-to-read-linux-kernel/ (Slide Share) 同じく著者のひろせさんからはなぜこの本を書いたか、どういう本なのかという概論 (One more thing もありました)。Klab の安井さんは DSAS について、特に「ダイナミック」をキーワードにした幾つかのインフラ構
make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基本的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
バージョン管理システムと言うとSubversionやCVSが有名だが、近年急速にユーザーを増やしているバージョン管理システムに「Git」 がある。GitはLinuxカーネルの開発リーダーとして知られるLinus Torvalds氏が中心となって、Linuxカーネルの開発に使用する目的で開発した分散型バージョン管理システムである。2005年に開発が開始されて以来さまざまなプロジェクトでの採用が進み、現在ではPerl 5やRuby on Rails、Android、Wine、X.orgなど、有名な大規模プロジェクトで採用されるに至っている。 本記事では、このGitを使用するのに必要な「分散型バージョン管理システム」の基本的な考え方を紹介するとともに、Gitの導入方法や基本的なGitの使い方について解説する。 分散バージョン管理システムとは? GitはLinuxカーネル開発で用いられることを前提
2009/6/23 更新( Debian5 での準備追加) 2008/4/29 更新(ブロックデバイス追加) 2008/3/18 作成 目次 [1] はじめに [2] 準備 [3] 簡単なモジュール [4] モジュールパラメータ [5] procファイルシステム [6] キャラクタデバイス [7] ブロックデバイス [1] はじめに Linux(kernel-2.6系)のカーネルモジュール(ドライバ)を作成する。 テストした環境は次の通りである。 OS: Fedora7 カーネル: kernel-2.6.23.15-80.fc7 OS: Debian5 カーネル: kernel-2.6.26-2-686 [2] 準備 (2-1) Fedora7,Fedora8 の場合 Fedoraでカーネルモジュールを作成するにあたり、まず fedora wikiを参考にしながら カーネルモジュールをコン
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く