memo

chumby と日本語

未整理なメモメモ。Flash の知識は貧弱なので間違ってるかも。 フォントについて Flash には下記の2種類のフォントがある。 デバイスフォント システム(OS 等)の持っているフォントを使う クロスプラットフォームで使えるように,いくつか predefined な名…

ファイルハンドルをめぐる冒険(ただしマニア向け)

以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://sea…

リモートデスクトップ接続でキーボードレイアウトを再初期化するプログラム

わたしは英語キーボードを使っているのですが,Linux からリモートデスクトップ接続したときに,入力ロケールが EN になってしまって困っていました。 -k en-us のように英語キーマップを指定するとうまくいく……のですが,ログイン時に Windows 側の「入力言…

rdesktop の tips

Linux から Windows のリモートデスクトップ(もしくはターミナルサービス)に RDP で接続するのには rdesktop というコマンドがあります。これコマンドラインインタフェースから使うので敬遠する人も多いかも。GUI のフロントエンドとして,たとえば GNOME …

libsmbclient + nss_wins の問題 (3)

謎は解けた。 libsmbclient + nss_wins の問題 - daily dayflower libsmbclient + nss_wins の問題 (2) - daily dayflower と謎を追ってきたのですが,非 static な関数があたかも static 定義な関数のように振る舞っていたのは,リンカのフラグに -Bsymboli…

libsmbclient + nss_wins の問題 (2)

昨日は間違ったことを書きました。debug_add_class() が static ではなくて外部に露出したシンボルだから(そしてその中でだけ変数 DEBUGLEVEL_CLASS を設定しているから)問題ないはずなのです。昨日の例だと,下記のようなフローになるはず。 main が libs…

libsmbclient + nss_wins の問題

2008-05-21 追記: 下記に(とくにメカニズム)間違いがありました。あとで書きます。 現象 nss_wins(bundled with Samba)を hosts の名前解決時に使うような下記の設定だとします。 # /etc/nsswitch.conf hosts: files mdns4_minimal [NOTFOUND=return] dn…

JavaScript の「本気」な勉強

まだひっぱるのもなんですけど。たぶん,言葉の指す対象にいろいろブレがあると思うんですよね。 勉強する人 まったくの初学者 さわりの文法などは知っているが,現実になにをどう書けばいいかわからない 勉強のスタイル 本気で勉強したい 本気で深く勉強し…

libsmbclient 問題の現時点での整理

時間がないのでメモ。あとでちと整形するかも。 main ? (cli_connect 等) libsmb/namequery.c:resolve_name() libsmb/namequery.c:internal_resolve_name() libsmb/namequery.c:resolve_hosts() libc:gethostbyname() libc:gethostbyname_r() nsswitch nss…

ぐあ間違えてリンクしてた

abort するのは間違えて -lsmbclient してたやつでした。それ外したら gethostbyname() 版もうまくいきました。疑ってすいません>libcんーと作戦練り直しですね。

gdb でアセンブリコードを見てみる

see ぐあ間違えてリンクしてた - daily dayflowerんじゃ機械に近いアセンブリで覗こうと思って (gdb) disassemble Dump of assembler code for function debug_add_class: <+0>: push %ebp <+1>: mov %esp,%ebp <+3>: sub $0x28,%esp <+6>: mov %edi,-0x4(%e…

gdb でおっかけ

see ぐあ間違えてリンクしてた - daily dayflowerソースのパスの指定の仕方がわかったのでソースコードデバッグをしてみます。 $ gdb test GNU gdb 6.8-debian ...... snip snip snip ...... This GDB was configured as "i486-linux-gnu"... (gdb) set envi…

-dbg パッケージでライブラリのシンボル情報を得る

たとえば libc6 だったら libc6-dbg というのがデバッグ用シンボル情報のパッケージです(Debian 系の場合)。 $ sudo apt-get install libc6-dbg $ sudo apt-get install samba-dbgなにがうれしいか,というと元ソースコードの行とか引数の状況とか gdb で…

getaddrinfo() を試す

さっきの続き。gethostbyname() は obsolete だから getaddrinfo() を使ってね,と man に書いてあったので,getaddrinfo() だとどうなのか調べてみる。 #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> #include <arpa/inet.h> int main(int argc, char *a</arpa/inet.h></netinet/in.h></netdb.h></sys/socket.h></sys/types.h></string.h></stdio.h>…

Ubuntu Hardy で gethostbyname() をやや追い

Ubuntu Hardy でリモート smb サーバに nautilus でつなぐと,とっても時間がかかったり timeout したり,という現象がでて困っています。で,ちょっと追ってみました。現時点までのメモです(まだ解決していない)。see ぐあ間違えてリンクしてた - daily d…

Google Apps 用 tinydns の設定

2008-05-23 追記: example.jp に CNAME を設定していたため MX 参照が失敗していました。ごめんなさい。個人で持っているドメインを Google Apps で使えるように tinydns を設定しました。ほんとは djb products あんまり好きじゃないんですが,知り合いのネ…

Firefox のテーマの作り方を調べた

必要半分・現実逃避半分で Firefox 用のテーマについて調べました。「作った」といってもデフォルトテーマをちょっといじっただけです。AIR とか流行ってるのに XUL なんて今更なネタですかね。わたしの環境は Ubuntu Linux 8.04 (i386) Firefox 3.0 Beta 5 …

Ubuntu 8.04 に system-config-lvm をインストール

Ubuntu には LVM を管理するための GUI ツールが備わっていません。CentOS で使っていた LVM 管理ツールは(ほんのちょっぴりダサいものの)なかなか便利だったので,あれをそのまま Ubuntu でも使えるようにしよう,というのが今回のお話です。HOWTO : LVM …

Ubuntu 8.04 を LVM 有効にしてインストールする

Ubuntu の Desktop 版インストーラではデフォルトで LVM を使ってインストールすることができません。Alternate 版を使えば LVM を使ってインストールできるんですが,テキストモードでインストールするのは嫌だとか,日本語ローカライズド版でインストール…

winbind で Linux 認証 on Ubuntu

2011-06-02 追記: 古くなったんで Natty (11.04) 向けに書きなおした ⇒ winbind による Active Directory 認証 on Ubuntu 11.04 - daily dayflower winbind で Linux の認証を ActiveDirectory にまかせる - daily dayflower を Ubuntu でやろうとしたら,い…

Mercurial のインストールを bdist_rpm で

Python のアプリケーション配布に distutils を利用している場合,setup.py の引数として bdist_rpm を与えると dist ディレクトリに RPM パッケージを生成してくれます。 % python setup.py bdist_rpm running bdist_rpm creating build creating build/bdi…

Mercurial 勉強中 (8) - hook を Trac と絡めて

TracMercurial を使ってインタフェースとして Trac を利用している場合*1,hook を設定するとさらに便利になります。 trac の post-commit-hook ヘルパスクリプトとは たいていの SCM には commit 時などについでに何か(メールを送信したりスペルチェックを…

Mercurial 勉強中 (7) - Web 経由の push と HTTP 認証

Web 経由で Mercurial のレポジトリを公開すると,デフォルトの状態では clone / pull しかできません。push するためには設定が必要になります。なお今回は hgweb.cgi や mod_wsgi 経由*1等で Apache と絡めた場合の話になります。というのは,hg serve コ…

Mercurial 勉強中 (6) - named branch と update -C

今回は named branch についてです。別に Mercurial を利用するうえで必須の概念ではないのですが,こいつを使うと multiple heads での changeset 間移動に習熟できますので。 ひとことまとめ Multiple heads は怖くない!hg update -C で branch 間の移動…

Mercurial の Subversion convert extension

Mercurial 0.9.5 以降には,他の SCM からレポジトリを取り込むための convert extension が装備されました(⇒ ConvertExtension - Mercurial)。Subversion のレポジトリから convert するための extension ももちろん含まれています。利点も多いのですが,…

Mercurial 勉強中 (5) - conflict と multiple heads, merge

他レポジトリとの conflict 状態と multiple heads の関係を step by step で確認していきます。 Step 1: 既存レポジトリを clone する まずは,既存のレポジトリを clone します。 [hg]% hg clone remote local 1 files updated, 0 files merged, 0 files r…

Mercurial 勉強中 (4) - branch と heads

Mercurial には branch という概念があります。これは Subversion で svn cp にて能動的に利用する branch とは違って,システムで用意されている機能です。なので,Subversion における branch(es) のことはスッパリ忘れてください。ややこしいのは,Mercur…

Mercurial 勉強中 (3) - .hgignore で無視リスト

要旨 SCM にはバージョン管理の対象外としたいファイルを指定するのに「無視リスト」という機能があります。 Subversion では svn:ignore プロパティにより無視リストを指定する このため,cp や mv 時に無視リストも引き継がれる また,あくまで svn:ignore…

Mercurial は空ディレクトリを管理対象に含めることができない

[~]% mkdir example && cd example [example]% hg init [example]% touch a.txt && mkdir b [example]% ls -F a.txt b/ [example]% hg status ? a.txt [example]% hg addremove adding a.txt [example]% hg status -A A a.txt [example]% hg ci -m "Initial …

Trac / レポジトリ生成用 CGI を Mercurial 対応に

以前(⇒ レポジトリ・trac 生成 CGI を作る - daily dayflower)作ったレポジトリ等生成ウェブインタフェースを,Mercurial にも対応するように書き換えました。といっても Trac 0.11b2 用にしてしまったので,0.10 では動きません。一応注釈はいれておいた…