2008-01-01から1年間の記事一覧

perluniadvice

perluniadvice の前半部分を訳してみました。かなり意訳。アドバイスと銘うってますが,中級者〜上級者向きです*1。 抄訳 perluniadvice Perl 付属のドキュメント perlunitut はもう読んだ?もしまだなら,そこから読み始めること :) perlunitut - perldoc.p…

chumby と日本語

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

図解: Perl と Unicode 文字列

id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可…

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

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

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

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

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 …

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

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

選択範囲の取得について調べた

js

はてなスターや Tumblr のブックマークレットなど,ブラウザ上の選択文字列をそのままユーザの入力として使えるサイトが増えています。JavaScript からどのようにすれば取得できるのかを調べてみました。 ブラウザ間の差異 DOM における選択範囲の仕様として…

Perl プログラマをしていて知らないと恥ずかしいモジュール 1000

⇒MFPM ごめんなさいネタです。誰も書かないんで*1書いてみました。 なにげに元ネタ*2(YappoLogs: ウェブエンジニアをしていて知らないと恥ずかしい日本人プログラマ300)の id:yappo さん作というのを今日知った。個人的には使ってませんすいません。「登録…

Nexenta (OpenSolaris) で ZFS を (2)

Nexenta (OpenSolaris) で ZFS を (1) - daily dayflower の続きです。 zpool を作る zpool(ZFS storage pool)とは LVM でいう VG のようなもの*1です。c0d0s3 に領域を確保したので,ここを datapool という名前の zpool にしてみましょう。 dayflower@my…