つれづれ日記 2010年8月

予定

毎日


2010年8月24日 (火曜日)

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}
 
	

2010年8月22日 (日曜日)

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 とか。

2010年8月16日 (月曜日)

00:03:16 # Life git status が戻り値をかえさなくなっていた。 なぜそうなったのか記憶に定かではないが昔のスクリプトが動かないので git diff --exit-code を使うようにしてみた。 しかしなぜgitは exit code をデフォルトで常に0をかえすのだろう。

2010年8月15日 (日曜日)

22:38:18 # Life vaio type P の電池。 買ったときは2時間くらいもたなくてこれはなんだとおもっていたが、最近はどうも4時間くらいもっている気がする。

2010年8月9日 (月曜日)

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では接続できないらしい。

2010年8月8日 (日曜日)

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 の限界までジョブを開始してくれるらしい。


Junichi Uekawa

$Id: 201008.html.ja,v 1.8 2010/09/05 21:41:36 dancer Exp $