22:59:39 # Life 2010年7月の内容を10月に移動。 git whatchanged -C -p でみると、 ファイルの名前を変えてヘッダ部分だけを変更したというのがわかります。 まぁ、いい感じ。
diff --git a/debianmeetingresume201007.tex b/debianmeetingresume201010.tex
similarity index 98%
copy from debianmeetingresume201007.tex
copy to debianmeetingresume201010.tex
index 30054eb..b72f475 100644
--- a/debianmeetingresume201007.tex
+++ b/debianmeetingresume201010.tex
@@ -31,10 +31,10 @@
% 日付を定義する、毎月変わります。
\newcommand{\debmtgyear}{2010}
-\newcommand{\debmtgmonth}{7}
-\newcommand{\debmtgdate}{17}
-% (+ (* (- 2010 2005) 12) 6) started from zero
-\newcommand{\debmtgnumber}{66}
+\newcommand{\debmtgmonth}{10}
+\newcommand{\debmtgdate}{16}
+% (+ (* (- 2010 2005) 12) 9) started from zero
+\newcommand{\debmtgnumber}{69}
\begin{document}
13:57:08 # Life linux 用の google talk video plugin が出た。 手元のDebianマシンでうごいてくれないので調査。 strace したかんじだとログを~/.config/google-googletalkplugin/gtbplugin.logにはいているようだ。 しかし、手がかりになる感じではない。
[027:031] Warning(clientchannel.cc:687): Connection to GoogleTalkPlugin failed, reason=111 [028:208] Warning(optionsfile.cc:22): Load: Could not open file [028:209] Warning(clientchannel.cc:553): Failed to get GoogleTalkPlugin path. Trying default.
15:25:23 # Life シリアル接続をするのはどんなアプリがあるか。 gkermitとか、GNU screenとか picocom とか。
00:03:16 # Life git status が戻り値をかえさなくなっていた。 なぜそうなったのか記憶に定かではないが昔のスクリプトが動かないので git diff --exit-code を使うようにしてみた。 しかしなぜgitは exit code をデフォルトで常に0をかえすのだろう。
22:38:18 # Life vaio type P の電池。 買ったときは2時間くらいもたなくてこれはなんだとおもっていたが、最近はどうも4時間くらいもっている気がする。
19:59:07 # Life eken M-003をつなげてみた。 VIA のデバイスらしい。
[ 669.431036] usb 4-1: Manufacturer: VIA Technologies, Inc. [ 669.431046] usb 4-1: SerialNumber: 000000000001 [ 669.432589] usb 4-1: configuration #1 chosen from 1 choice idVendor 0x040d VIA Technologies, Inc. idProduct 0x8510
とりあえず SUBSYSTEM=="usb", SYSFS{idVendor}=="040d", MODE="0666", SYMLINK+="%k"を追加してみた。
しかし、ネット上でのもっぱらの噂では、adb connect で wifi 経 由でなら接続できるがUSBでは接続できないらしい。
10:18:18 # Life C++のalgorithm. map で remove_if を使おうとして挫折。 remove_if は mutable iterator を必要とするアルゴリズムなんだけど、mapはmutable iterator ではない。 map は順序を変更できないですよねぇ。 /usr/include/c++/4.3/bits/stl_algo.hを読んでみると、代入しているのでこれは使えない。 remove_copy_if なら使えるかなとおもったけどどうもこれもうまくいかなさそうな。 しかたがないので自分で実装してみる。
class MyPredicate {
public:
MyPredicate() : deleted_items_(0) {}
bool operator() (const pair<const int, string>& map_item) {
bool delete_this (map_item.second == "this" ||
map_item.second == "pen" ||
map_item.second == "fuga");
if (delete_this) {
deleted_items_ ++;
}
return delete_this;
}
string DebugString() {
stringstream ss;
ss << "items deleted: " << deleted_items_ << endl;
return ss.str();
}
private:
// I want to keep some statistics here for deleted items:
size_t deleted_items_;
};
template<class Map, typename Predicate>
void map_remove_if(Map& in_map, Predicate& should_delete) {
for (class Map::iterator i = in_map.begin();
i != in_map.end(); ) {
if (should_delete(*i)) {
in_map.erase(i++);
} else {
++i;
}
}
}
int main(int argc, char **argv) {
map<int, string> hoge;
hoge[1] = "test";
hoge[2] = "this";
hoge[5] = "is";
hoge[10] = "a";
hoge[11] = "pen";
hoge[12] = "fuga";
MyPredicate predicate;
map_remove_if(hoge, predicate);
cout << predicate.DebugString();
for (map<int,string>::iterator i = hoge.begin();
i != hoge.end(); i++) {
cout << i->first << ":" << i->second << endl;
}
}
11:34:33 # Life make の並列度。 make -l 3.0とか指定すると、load average の限界までジョブを開始してくれるらしい。
$Id: 201008.html.ja,v 1.8 2010/09/05 21:41:36 dancer Exp $