2007-02-01から1ヶ月間の記事一覧

スレッド間のデータの受け渡し その他編

上記以外で処理速度を気にしない場合はLocal IPC(socketpair())かpipe()をよく使用する。 他のIPCは余り使用したことが無い。

スレッド間のデータの受け渡し volatile編

mutexを使用したくない場合はvolatileを使用すること。 ただし、これはできるだけ使用しない方が良い。

スレッド間のデータの受け渡し mutex編

プロセス間ではIPCを使用するが、 スレッドの場合メモリを共有しているので普通は共有変数(グローバル変数)だけでよい。 共有変数を使用する場合は値を保証するために、 複数スレッドからのアクセス制御を行わないといけない。 アクセス制御を行うにはmutex…

time wrapper

ふと思い付き、gettimeofday()/setttimeofday()のテスト用に作成しました。 元ネタは、failmallocです。 とはいえ、思い付きでさらっと作成したのでバグがあるかも。

[vim] 選択したすべての行への処理

例:以下の内容へ変更を書ける。 12345 12345 12345 12345 すべての行の先頭へ追加を行う。 0を入力する場合 CTRL-Vですべての行を選択->I->0-> 012345 012345 012345 012345 すべての行の文末へ追加を行う。 0を入力する場合 CTRL-Vですべての行を選択->$A-…

大文字小文字の変換

Vim

Vimで~は大文字小文字の相互変換を行うが、 大/小文字への短方向変換は以下の通り。 小文字への変換(小文字は変化しない) Ctrl-vで範囲選択してu 大文字への変換(大文字は変化しない) Ctrl-vで範囲選択してU

外部コマンド実行結果のstderrも取得する方法

滅多にないけれどときどき必要。 require 'open3' Open3.popen3("/bin/ls") do |stdin, stdout, stderr| p stdout.read p stdout.read end

TAB補完の挙動がいままでと違うのを直す

TAB補完で~/hogeとかを/home/user/hogeへ勝手に補完する。 このような動きは今までしていなかったが、Ubuntu-jaに変更してからなった。 調べているとどうやら.bashrcでこの設定をしているらしい。 以下の部分を削除して元通りになった。 if [ -f /etc/bash_c…

Logicool Cordless Optical Tracmanの購入

マウスの裏にはCE0682とある。 これはトラックボール型のマウス。 MX700を使用していたのが充電がまともにできなくなり 今日まで安物で急場をしのいできたが、 トラックボールならば指への負担が少なそうなので腱鞘炎対策として購入。 ボタンがMX700と同様に…

AutoHotkey

最近AutoHotkeyというかなり便利なソフトを知った。 AutoHotkeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジンである。 多彩なコマンドが用意されており、GUIを持ったプログラムの作成も可能。 これを使用すれば、キーボ…

Pthreadのコンパイルオプション

昨日書き忘れていたので書いておく Linuxのpthreadのコンパイルでは-lpthreadsとするのは間違い。 -pthreadとすること。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/pthreads.7.html Linux でのコンパイル Linux では、Pthreads API を用いたプログ…

スレッド生存確認方法

上記の方法を行うと別の問題が発生する。 本来終了して欲しくないスレッドが、なんらかの理由により終了した場合 それを知る方法が無い。 pthread_join()を行っていればスレッドが終了したのを知るのは可能だが、 デタッチ属性にした場合はpthread_join()が…

スレッド作成

Pthreadは普段から使用するので自分のために今後もまとめていく。 Pthreadのドキュメントはpthreads(7)から読んで行くと良い。 JM:http://www.linux.or.jp/JM/html/LDP_man-pages/man7/pthreads.7.html die.net:http://www.die.net/doc/linux/man/man7/pthre…

MANの最新版

LinuxのMANは余りメンテされていないがこれを行っているところらしい。http://www.die.net/

Slashdot 生きたバクテリアを記録メディアに

文字列のキーボードスキャンコード(セット2)を2塩基を組み合わせた4ビットで表し、これを1ビットずつシフトしたビット列4本を生物内に入れることで、突然変異に耐えられる記録方法を確立したという。枯草菌は胞子を形成することで極限環境耐性があり、過酷な…

FileZilla

FileZillaって使ったことがなかったのだが、 今日使ってみると転送性がいい。 いままではWindowsではFFTPを使用していたのだがFFTPとは全然違う。 今日からこちらに変更しよう。 ただ、FFTPと違ってアップロード、ダウンロードのアイコンがなく、 メニューか…

腱鞘炎

このところ右手中指がまともに曲がらなくなってきた。 曲がらないというか指がまっすぐ伸ばせない。 今日診察してもらうと腱鞘炎との診断。 関節が疲労して腱鞘炎になったらしい。 ここ2〜3年で3回目の腱鞘炎。 しかも毎回右手。 仕事が忙しくなると決まって…

rcheckip.rb 生存IPリスト取得

前に作った生存しているIPアドレスのリストを取得するスクリプト。 取得できるのはx.x.x.0〜x.x.x.255まで。 あまり検索範囲を広げるのも問題なので範囲はこれで十分。 require "ping" while arg = ARGV.shift exit if !arg get_ip = arg.split(/\./) list =…

Bit計算

Bit計算の色々なテクニックがまとまっていたのでメモ(英語)。 http://graphics.stanford.edu/~seander/bithacks.html Bit計算は元々苦手なのでこいうのはありがたい。 下の本も持っているので併用して利用していけばいいかな。ハッカーのたのしみ―本物のプロ…

[Linux][command]atコマンド

普段使わなかったatを使用しました。 普段使用するにはcronばっかりなのですが、今回はat。 目的はmakeに時間がかかるので(しかも重い)ので、 夜にmakeを行うようにしました。 とりあえず簡単な使いかた。 5分後にコマンド実行 $ at now + 5minute > echo "H…

blog開始

今まで自作のメモツールを使用してローカルメモをとっていました(今も使用していますが)。 自宅では問題がないのですが、会社で最近セキュリティーが厳しくなってきて、 会社のデータの持ち出し/持ち込みが厳しくなってきました。 会社のデータはあきらめて…