2008-05-01から1ヶ月間の記事一覧

rdesktop の tips

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

Windows XP のリモートデスクトップに rdesktop でフルカラー接続

rdesktop(ターミナルサーバクライアント等のラッパも含む)で Windows XP のリモートデスクトップに接続すると 16 bit color になってしまうのは rdesktop のせいだと思っていたのですが,rdesktop 自身はフルカラーで接続することができたんですね。(少な…

libsmbclient + nss_wins の問題 (3)

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

ld 2.18 の -Bsymbolic オプションを使うと共有ライブラリ内でシンボルをローカルバインドできる

Linux の共有ライブラリの挙動について - daily dayflower の続きです。下記は Ubuntu Hardy (8.04) i386 で動作確認しました。 ld 2.18 の -Bsymbolic オプション 昨日書いた通り,Linux で共有ライブラリを利用したプログラムを作る場合,共有ライブラリ内…

Linux の共有ライブラリの挙動について

前フリが長くなったので基礎的な部分は独立した article にしました。でも基礎的な内容だけに間違いが多そうです。ご指摘お願いします。下記に「Hack#??」と書いてあるものはすべて Binary Hacks の Hack です。書籍をお持ちの方はそちらをご参照ください。 …

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 の「本気」な勉強

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

JavaScript のイベントハンドラ

js

本気でやるならonclick属性は避けてライブラリを活用すべき - 帰ってきたHolyGrailとHoryGrailの区別がつかない日記 を読んで,思うところあって書いてみました(決してカウンターアーティクルではない)。 むかしむかし 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 あんまり好きじゃないんですが,知り合いのネ…

Boodler で環境音を BGM に

ごくごく私的用事で環境音を延々と流す必要にせまられました。そういえば以前ためしてガッテンで環境音を聴いていると集中が続きやすいという話もありましたね。そのような環境音を生成する Web ページやシェアウェア*1,既製の素材もあるようです*2。ともか…

libsmbclient を使って SMB Storage にアクセス

libsmbclient を使ってみる Samba ソースツリーには libsmbclient という SMB File System にアクセスするためのライブラリが付属しています((たいがいの Linux Distribution ではライブラリは別パッケージになっています。ライブラリ本体のパッケージ名称は…

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 …