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

Haskell メモ

無名関数は高階関数と組み合わせて意味がある 関数は値ではなく、作用に着目して定義できる h(x) = f(g(x)) ではなく、h = f・g という数学表現の実現のこと(ポイントフリースタイルは圏論の射で書くこと?) 遅延評価では無理なく無限のリストが扱える 順…

ubuntu jaunty amd64 非日本語版に ATOK X3 をインストールする

ubuntu 対応で喜んで購入したものの、いきなり Can't install on your system. 対応が明記されているのは ubuntu 日本語ローカライズド版で deb パッケージは 32bit 版しか用意されていなかった。ウェブの情報を参考に試行錯誤でなんとか動作するようになっ…

Windows Vista で IP Messenger が使えない

ウイルスバスターを入れている場合は、パーソナルファイアウォールの設定で IP Messenger の通信を許可する 「例外ルール(プログラム)」に TCP/UDP でポート 2425 を受信/送信ともに許可する 「送受信」で設定するとなぜかポート欄がグレーアウトされて「…

ドキュメントを作成した後のチェックリスト

PowerPoint の最終ページにいれておいて振り返ってもらう。 目標は「継続してメンテナンスされたドキュメント」 更新されない情報はゴミになる チームで更新が続けられる分量にあえてとどめましょう サクっと書く 過度にデザインや体裁は整えてはいけない 次…

未整理な行動ルール

会社のwikiから撤退して仕事術っぽいのをまとめる場所がなくなったのでこちらに。自分なりに考えたもののみ。思い出したら追加する。 「勇気を出す」とは具体的に何をすることなのか? 自分を信じること それは自分のネットワークを信じること つまり他人を信…

参照型のクラスメンバ変数

has-a はポインタを使うことが多くて曖昧な知識だったが、参照型のクラスメンバ変数は初期化子で初期化すれば利用できる。 class test { public: test(int& val) : m_val(val) {} // OK test(int val) : m_val(val) {} // OK // test() {} // test.cpp:6: er…

Windows Vista でシステムの起動終了時間をイベントビュワーで確認する

勤務管理などでPCの起動終了時間を知りたい時にイベントビュワーを見ていたのだが、Vista だとカスタムビューを作成できて便利だった。 メニューバー→「操作」→「カスタムビューの作成」 フィルタタブ 「ログの日付」→「過去30日間」(好みで) 「イベントレ…

FireGestures で最後のタブをクローズするとアプリケーションを閉じるスクリプト

FireGestures のサイトにあった [Hybrid] Close Tab / Close Window がうまく動かなかったので自分で作ってみた。常時タブを表示する設定だと、アプリケーションを閉じる BrowserCloseWindow() がエラーになるようだ。 var isLastTab = (gBrowser.mTabs.leng…

twitte.rb が終了時のウィンドウ位置を覚えるようにしてみた

twitte.rb の212行を書き換える。 < if Gdk.windowing_win32? and @prefs.window_x != nil and @prefs.window_y != nil then --- > if @prefs.window_x != nil and @prefs.window_y != nil then

amd64 環境での PTR_MANGLE/PTR_DEMANGLE の実装を確認してみた

glibc-2.7 のソースコードで確認した。以下は jmp_buf から実際のアドレスを抜き出すテストプログラム。 #include <stdio.h> #include <setjmp.h> #define PTR_DEMANGLE(var) asm("rorq $17, %0;" \ "xorq %%fs:0x30, %0;" : "=r"(var) : "0"(var)) int main(int argc, char** a</setjmp.h></stdio.h>…

gnome-terminal で一部の全角文字が半分しか表示されない

○△→などが表示はできるが、直後の文字がかぶって表示される。これは幅の認識の不具合らしい。 LANG=ja_JP.utf8 VTE_CJK_WIDTH=1 gnome-terminal --disable-factory とすれば直る。VTE_CJK_WIDTH は ja などの一部のロケールでしか有効でないので、デフォルト…

ubuntu で SCIM によるインライン入力可能な emacs

SCIM-Anthy か SCIM-Prime あたりを利用しているが、emacs だとインライン入力できずに入力ウィンドウが開くのが嫌だった。そこでテキストファイルにたいしての関連付けを以下のようにして gnome-terminal 内で emacs -nw で開くようにしてみた。専用のプロ…

VMware player のゲスト OS の起動直後に USB オーディオだけ自動接続する

USB オーディオの Vender ID と Product ID を調べる $ lsusb Bus 007 Device 006: ID 0b39:0001 Omnidirectional Control Technology, Inc. Bus 007 Device 005: ID 046d:c521 Logitech, Inc. MX620 Laser Cordless Mouse Bus 007 Device 004: ID 0d8c:0002…

ubuntu hardy でショートカットキーでコマンドを起動する

gconf-editor の apps → metacity keybinding_commands の command_1 〜 command_12 にコマンドを記述する 例: firefox http://www.amazon.co.jp/ global-keybindings の run_command_1 〜 run_command_12 にキーバインドを記述する 例: a

ubuntu hardy のフォントの設定

hardy で main になった VL ゴシックがとても良い感じ。Sans-serif 系はこれで足りている。 http://dicey.org/vlgothic/

libdvdcss2, w32codec(w64codec) など

レポジトリを追加すれば Synaptic でダウンロードできる automatix2 は hardy で開発中止になっている http://www.medibuntu.org/

ubuntu hardy で Synaptic の更新やダウンロードが重い

jp.archive.ubuntu.com が重いようだ Setting → Repositories → ubuntu software タブ → Download from で Server for United States を選択

ubuntu hardy でフォルダの open with で VLC を開く(DVDディレクトリイメージの再生)

フォルダの右クリックメニューで Properties → Open With タブで Add して VLC media player を選択→ Use a custom command で vlc %s %s がないとうまく動かない? .local/share/applications/userapp-vlc-XXXXXX.desktop が生成されるので name=VLC media p…

twitte.rb-0.2.9 が ubuntu 8.04 で動作するように修正してみた

Enter/Ctrl+Enter を押してもステータスが送信されない 右クリックメニューがでてこない 発言内の URL を左クリックしてもブラウザが起動しない About などの URL を左クリックしてもブラウザで正しいページが開けない を修正。 diff -r twitte.rb-0.2.9/twi…

VMware Player + ubuntu 7.10 amd64 に VMwareTools と vmmouse をインストールする

VMware Player を使っているが、VMware Server も無料で登録できてライセンスがもらえるので最近はそちらが良いのかもしれない。 VMwareTools Linux 版の VMware Server をダウンロードする (私が作業したときは VMware-server-1.0.5-80187.tar.gz) vmware-s…

Dell XPS M1330 でビープ音がうるさい

デバイスマネージャで、「表示」→「非表示のデバイスの表示」を選択する 「プラグ アンド プレイではないドライバ」→「Beep」→「ドライバ」→「スタートアップ」→「無効」

Dell XPS M1330 で VGA と HDMI で 2 つの外部ディスプレイに接続する

Dell XPS M1330 は外部ディスプレイ端子として HDMI と VGA があるが、 Mitsubishi RDT24IW (1920x1200, HDMI 端子, HDMI → DVI アダプタ利用) Mitsubishi RDT20IL (1600x1200, VGA 端子) に同時に接続することができた。内蔵パネルはオフになる。ただし Vis…

Dell XPS M1330 で IME 入力時に英語キーボード配列にならない

Vista Home Premium でデバイスマネージャは「101/102 英語キーボードまたは Microsoft Natural PS/2 キーボード」となっているが、IME をオンにするとなぜか日本語配列なってしまう。以下の記事を参考にして修正できた。http://shinmk.cocolog-nifty.com/ma…

IE 拡張コンテキストメニューに「範囲選択されたURLを開く」を追加してみた

Fastladder で twitter の RSS を見ると、following の文中の URL がリンクになっていないので面倒くさい。せめて範囲選択してすぐ開けないかと思って作ってみた。IE の拡張コンテキストメニューは、以下のレジストリに登録してあるローカルの HTML ファイル…

Linux の手順説明でプロンプト $ と # の使い分けをしている場合がある

正直そこまで注意して読んでいなかったりするのだが、プロンプトの違いで手順を伝えようとしていることがある。以下は例。 $ make ユーザ権限で make する。 # make install root 権限で make install する。(個人的には、su とか sudo など明示的に書いた…

整数変換の順位

C99 の 6.3.1.1 のよく使う部分のまとめ。 long long = unsigned long long int64_t = uint64_t long = unsigned long int = unsigned int int32_t = uint32_t short = unsigned short int16_t = uint16_t char = signed char = unsigned char int8_t = uint…

PTR_MANGLE/PTR_DEMANGLE の実装は xor + ror/rol になっていた

マイクロスレッドの実装で、%ESP と %EIP の切り替えに setjmp()/longjmp() を利用しようとしたらハマってしまった。調べてみるとセキュアコーディングの関係で jmp_buf の %EIP, %ESP のポインタがエンコーディングされていた。 http://d.hatena.ne.jp/yupo…

uint8_t* getBuf() const { return m_buf; } でコンパイルエラーになる

普段ちゃんと const を付けていないので自分でもビックリなところでつまずいてしまった。 #include <stdint.h> class test { public: uint8_t* getBuf() { return m_buf; } private: uint8_t m_buf[256]; }; というソースコードで、getBuf() は副作用がないから const </stdint.h>…

gcc の警告オプション

自分でプログラミングするときの指定を整理してみた。自分で全部の警告オプションを選別できなかったので、Bruce Evans 提唱の BDECFLAGS を基本にしている。他にオススメのオプションがあれば教えてください。 C/C++ -Werror -Wall -W -Wno-format-y2k -Wpo…

文字列リテラルの配列への代入

gcc で -Wformat-nonliteral の確認をしていたときに、文字列リテラルについてちょっと自分が誤解していたことに気づいた。文字列リテラルの代入は(善し悪しはともかく)次のようなバリエーションがある。 char string0[] = "test"; const char string1[] =…