年上の彼女、うーん何の変哲も無いただのラブコメになってきたのでそろそろ切ろうかな。
ハツカレ最終巻、まぁ余韻にひたりながら読み進める...と思ったらえらい厚いな。
LaLa、ホスト部の行き先がよくわからなくなってきました、良い意味で予想できないよさはあるけども...。田中メカの新作は読み切り、どうにもお迎えです以降の連載がパッとしないと誰の目にも見えてるんだろうなぁ。この読み切りみたいなノリは好き。
Software Designはpython 3000とOSSネタの為に購入。
今日、とりあえず現状どの程度外で使えるか試すためにis30をカバンにつっこむ。で、電車の中で起動してみたら、acアダプタが切れていることは認識してくれた、どうも起動時に抜けてれば認識するのか?通勤中、昼休みとちまちま使ってみたけどバッテリは持ってくれたのでなんとかいけそうな予感。
しかし、バッテリの残量が/proc/acpi/battery以下で全く見えない。状態は全部「present no」なのでそもそもバッテリが見えてないのか。
google先生に聞いてみればis30の特殊さが原因で、DSDTの更新が必要、とのこと。
DSDTを更新するのにカーネル再構築が必要なんですが、Vineでの再構築の仕方がわからない。specファイルを書いてやればできそうだけど書き方がわからないし、調べてる時間が今は無いので今日は保留。
しばらく今の状態で使ってみて不都合が出てきたら考えよう。
先日のエントリへ反応をいただいて、Vineのmkkpkgというツールを教えていただいた。ちょうど今回の用途にベストマッチ。以下の通りコマンド入力して実行、途中で現在のkernelとこれから作るイメージの名前が被らないように名前を指定して、menuconfig実行。
% mkkpkg kernel-2.6.16-0vl66.src.rpm menuconfig
ここで指定するオプションは、ThinkPad s30 ACPI Patchでのカーネル2.6.9〜のコンフィグレーションの通り。DSDTのファイルを/rootに置いたとして以下の通り編集した。
後はただひたすら待ち、rpmができたらそれをつっこみ、再起動。
無事、バッテリの情報がとれるようになりました!
ACアダプタも起動後でも着脱にちゃんと反応するようになったし、電源周りは完璧です、やっほい。後はサスペンドと無線LANの設定かー、無線LANはまた来週...。
1枚目はヴィーナス ヴァーサス ヴァイアラスのOP、2枚目は恋する天使アンジェリーク〜かがやきの明日〜のOP。ヴィーナス〜の曲はアニソンらしいテンポが早めな気持ち良い曲、本編は結構どうでも(何
gogoを使わなくなって(gentoo-amd64のportageに無いだけだけど)、lameに移行したのでアニソン切り出し用コマンドの記録。mp3ファイルのところは適当な出力名で。
cdparanoia -B "1" && lame --preset 320 track01.cdda.wav BravinBadBrew.mp3 && rm track01.cdda.wav
会長はメイド様、ゲーマーズで売ってるわコンビニでも売ってるわで結構人気あるんだなぁと思う。普段少女まんがを読まない人からすればイロモノっぽく見られてるかもしれないけど、まっとうな少女漫画なので今、他人に勧められる少女まんがはと聞かれればこれを挙げる。
ただ、コマが細々してるのと、話のテンポが急なのが惜しいところか。
メガミマガジンはなのはStrikerSの漫画の為に買ってるけど、どうにも物語の主軸がどこになるのかはっきりしないなぁ...。で、主人公になるっぽいスバルのデバイスが近接戦闘用なので作画とか演出がシビアなことになりそう。
gentooのkernel-sourceが2.6.20に上がったので環境を更新。そしたらintuos3の挙動が怪しくなった。/var/log/Xorg.0.logを見ると最後の方に以下のようなログが。
(**) Option "Device" "/dev/input/event2" stylus Wacom X driver grabbed event device WACOM: unable to ioctl max values. stylus Wacom X driver grabbed event device WACOM: unable to ioctl max values. (**) Option "Device" "/dev/input/event2" eraser Wacom X driver grabbed event device WACOM: unable to ioctl max values. eraser Wacom X driver grabbed event device WACOM: unable to ioctl max values.
キーワード「unable to ioctl max values」でgoogle先生に聞いてみるとそのものズバリが出てきた。
レスの中で「デバイスが/dev/input/event0じゃないからだよ」と言うことだったので、こっちのログでは、/dev/input/event2じゃないということなんだろう。というわけで/proc/bus/input/devicesを見ると以下の通り、/dev/input/event4がintuos3に割り当てられていることがわかった。
I: Bus=0003 Vendor=056a Product=00b2 Version=0102 N: Name="Wacom Intuos3 9x12" P: Phys= S: Sysfs=/class/input/input4 H: Handlers=mouse1 event4 B: EV=1f B: KEY=1cff 1f00ff 0 0 0 0 B: REL=100 B: ABS=1000f00017b B: MSC=1
/etc/X11/Xorg.confを修正して無事終了。
さて、作業の続きを...。
具体的な目標設定が見えないとすぐにダレる。で、ダラダラ仕事してしまう。そうなるとやることなくてすぐ帰るんだけどものすごい後ろめたい気分になる。
自分でタスク見積って、自分でスケジュール立てられるようにならないといけないと思いつつ、うまくいかない。と言い続けてる気がするなぁ...ぎぎぎ。ほーんとダメ、くそぅ。
% python >>> a = [ x * 2 for x in range(3)] >>> a [0, 2, 4]
上のリスト([〜])のような表現をリストの内包表記(5. データ構造の5.1.4)と呼んでいますが、そもそも"内包"表記って何よ?っていう状態だったのでふと思い立って調べてみた。
集合の性質、条件を示すのが内包ということなのね。確かにリストの内包表現はリストの要素の条件を示しているなぁ、納得。
で、なんでこんなことを今更書いているかというと、2006年3月28日の日記のコメントで
pythonでlambdaを使う機会と言えば,リストの内包表現(リストの中でリストを返すブロックを書く事)がほとんどなので
とか自分で書いてて、間違ってんじゃんと気がついたからでしたとさ...orz。一番上のプログラムの通り、lambdaは使っておりません、むしろ内包表記は
リストの生成を map() や filter() や lambda の使用に頼らずに行うための簡潔な方法を提供しています。
Python チュートリアル 5.データ構造 5.1.4 リストの内包表記
そして家に帰ってきて本棚漁ったら大学の時買った本の中に内包表記の説明があったよ...(泣
キャラは明らかに成長していってるので、同じ事やってるっぽくても飽きない。けども、やっぱり刊行ペースの長さはどうにかして欲しい、1年半後って2008年9月だよ、...その頃何やってるんだろうなぁ。
ちなみに単行本の画像がアレなんで補足しておくけども、ホモ漫画じゃないですからね。
GObjectリファレンスマニュアルを読んでて仕組みが繁雑だなぁと思っていたとき、あまり関係ないけど関数の呼出元・先をグラフで表してあるとわかりやすいのかなぁと、コールグラフの可視化について調べてみる。で知ったのがGraphviz。doxygenと合わせて以下のサイトが中心かしら。
いざ使ってみると、あぁ最終的にそこを呼ぶのかとパッと見てわかるってのは重要だなぁと気づく。でも、GObjectの仕組みを考慮した可視化ツールとか無いかなとは思う。以下は他に参考にしたサイト
調べてるとき、名前の呼び方をちゃんと確認してなくて「ぐれいふぁず」とか呼んでて、同期と話をした時に通じなくて苦労した。普通に読んでれば「ぐらふう゛ぃず」って読めるねorz。あと、呼出の関係を畳んだりできるkscopeというのも教えてもらった。こっちはインストールはしたけど使い方がイマイチわからず放置中orz。
2007年2月8日 リストの内包表記へのコメントとして、2007/02/11 リストの内包表記とlambda(ヒビノキロク)で反応を頂いた。
その中でリストの内包表記の有効な使い道として「多変数の組み合わせから条件を満たす解を探索するような場合」として、Scheme:TaxiNumberのラマヌジャンのタクシーナンバーという例を教えていただいた。
というわけで、これをpythonでそのまま書いてみた。(%はコマンド、\は表示の都合での改行)
% python >>> [(a, b, c, d) for a in range(50) for b in range(a+1, 50) \ for c in range(a+1, b) for d in range(c+1, b) if a**3 + b**3 == c**3 + d**3] [(1, 12, 9, 10), (2, 16, 9, 15), (2, 24, 18, 20), (2, 34, 15, 33),\ (3, 36, 27, 30), (4, 32, 18, 30), (4, 48, 36, 40), (6, 48, 27, 45),\ (9, 34, 16, 33), (10, 27, 19, 24), (12, 40, 31, 33), (17, 39, 26, 36)]
まぁこんだけ長いリストもどうよとは思うけど、内包表記について認識を改められた。ぶっちゃけこんなに柔軟な表現ができるものとは思ってなかったよ。
tabletの設定状態の確認とxsetwacomのフロントエンドとなるGnomeアプリ。あぁやっぱりこういうこと考えてる人他にもいたのか...。わりと困らないから作るモチベーション上がらなかったけど作ってくれた人がいるなら使ってみたいな。
で、version 0.3での変更点、vertical layoutがGNOME HIGに適合しないんで横並びにしたらしいけど、これ見にくい気がする。
今試せる環境が無いからソースを落として中身みようとしたけど、makefileを眺めてフイタ。これはちょっとさくっと試すには向かないなぁ。まぁ困らないから(ry
絶対可憐チルドレン、エスパーを軸に色んな話が展開していく様とそれでも発散してそれぞれが薄くならないのはさすがというのか。今までは話の筋道が見えないのが不安だったけどそこを期待しないで楽しむことがやっとできてきた感じだ。まぁ今まで楽しめなかった理由は打ち切られるんじゃないかという恐怖があったからなんだけども(何
大好き、くぅぅすばらしき水沢めぐみの少女漫画の世界。とはいえ1巻で完結してしまうのはきついなぁ、3巻ぐらいで一つにまとまっているとちょうど良いスピードなんだが...。
上のサイトを参考に以下の通り設定。/etc/acpi/events/lid を作り以下の内容を記述
event=button/lid.* action=/etc/acpi/actions/lid
/etc/acpi/actions/lid を作り以下の内容を記述した後、chmod 755 /etc/acpi/actions/lidを実行。
#! /bin/sh if grep -q closed /proc/acpi/button/lid/LID/state ; then /usr/sbin/hibernate fi
デフォルトだとhibernateから復帰後、ネットワークが使えなくなるので、/etc/hibernate/common.confに以下を記述
### modules UnloadModules xircom_cb UnloadBlacklistedModules yes LoadModules auto ### network DownInterfaces eth0 eth1 UpLinterfaces auto
後は、サスペンドとハイバネートを使い分けるかどうかだけども、当分いいや。
C言語を使った開発が少しやっては違うことをやり、また少しやっては違うことをやるという形だったので学習曲線的には一向にレベルアップしない形で来ていました。で、そんな状況を打開すべく実戦的なプログラミングを勉強しようと、買った本でした。まぁ後は大学の時、他の学科で教科書に使っていたのを見ていて読んでみたいなぁと思っていたという側面もありますが。
うーん、こんな簡単な内容だったのかなぁ、この本。とはいえ、電車の中で連日、珍しく他の本にあまり浮気すること無く通して読むことができた、今までは(技術書では特に)少し読むと新しい本へを浮気していたので自分としては進歩な気がする。パラパラ読んでいけるのが読みつづけられた理由なのかなぁ。
読むだけではつまらないパート(プログラミングの実習等の箇所)を飛ばして、躓くことも無かったので読みつづけるモチベーションを維持できたのかもしれない。今後はとにかく一通り読み通すことを目標にすればいいのかな。まぁ読み切ったからどうこうという類の本でも無いけど。
windowsを使うとき、今はデュアルブートにしていないので別のPCにキーボード、マウス、ディスプレイを繋ぎ直す必要がある環境でした。windowsを使う用事がしばらくパタパタ出てきそうなので、デュアルブートにするか、CPU切替器を導入するかで躊躇していました。躊躇していた主な理由はwindows入ってるintellistationがやっかましいからなんですが。
とはいえ、windowsもlinuxも再インストールして、さらに事故ったときのコトを考えると時間がえらいかかりそうなので、デュアルブートは暫くしない方向で、切替器で乗り切ることに。
しかし切替器ってこんなに安くなったのか。まぁUSBの切り替えはできないのでアレだけども。
vista導入はコミックスタジオがvista対応になってからにするつもりだったけど、なんか2ch見てると当分なさそうな悪寒。
PSPのwebブラウザ上で動的なページを作ったとき、処理能力の低さも問題なんだけど、それ以上に機能的な制限が多かったので、ぶちあたったところまでまとめ。
まず、PSPのwebブラウザ、NetFrontのカスタマイズ版のベースは以下の通りらしい。
で、その上でぶちあたった問題とか。
一つ目の問題から、PSP上では動的なHTMLの編集はできないということになるのかな。formの編集は可能なので、こっちをうまく使って似せるしかないか。
後、どっかでlayer関係も使えないという記述があった気がする。innerHTMLはsetIntervalと同様DOM level 0(標準化されていないDOM)なのでPSPそのものの機能制限なんだろうなぁ。
こう、ブラウザで使える関数とかを調べる方法って無いのかしら...。これでいけるかなー。
PSPのブラウザで何が使えて何が使えないのか、SCEI(Sony Computer Entertament Inc.)に問い合わせたら、PSPシステムソフトウェアアップデートの更新内容のその他にあるとの返信をもらった。どうも2.80から配布が始まっていた模様、いつもこのページ見ないでアップデートしてたから全然気がつかなかったorz
で、案の定appendChild、createElement、replaceChildの類はアウト、Layerも全てダメ。とか思ってたら、RegExpの$1,...,$9もダメなのか。むーむむー、思ったより厳しいなぁ。
使えない使えないと騒いでいたけどちゃんと使えたよorz。うーん、他のところで間違ってたのをinnerHTMLが原因だと勘違いしたんだろうなぁ...。さて、原因はどこだ。
innerHTMLのカウンタにPSPでアクセスすればちゃんとカウンタアップしていく。
まぁしかし、最低限のモノから一つ一つ確認するという初歩的な調査を怠った報いかな。
こーの日をどれだけのPSPユーザが待ち望んできたことか、平日の午前中だというのに、どう考えても大学生or社会人ばかりのヨドバシゲーム売り場。予約してなかったけどレジで20分並んで購入。
基本的に連続してPSPで遊べない(目が疲れる)人間なので、断続的に進めてる状態。前作の細かいところで不満だった点が結構改善されているのでかなり遊びやすくなってる。BGロードは特にすごい、これだけつけて前作のリメイクしたって売れるよって言うぐらいによくなってる(言い過ぎかしら...。
そういや知り合いの話だと、MHP2ndが出てからxlink kaiがすさまじく重くなったとか...。まぁこれがないと正直やってられないしのぅ。
gentooのlinuxwacomがずっと0.7.4-3なので、自前で最新の0.7.6-4にしてみることにした。つってもパッケージを最新に変えるだけですが。まずは、ローカル用のportageディレクトリを作って検索対象に加える。%はコマンドプロンプト、>は編集行。
% mkdir /usr/local/portage % vi /etc/make.conf > PORTAGE_OVERLAY="/usr/local/portage"
linuxwacomのディレクトリを作って、ebuildファイルをコピーした後編集。
% mkdir /usr/local/portage/x11-drivers/linuxwacom % cd /usr/local/portage/x11-drivers/linuxwacom % cp /usr/portage/x11-drivers/linuxwacom/linuxwacom/linuxwacom-0.7.4_p3.ebuild \ ./linuxwacom-0.7.6_p4.ebuild % vi linuxwacom-0.7.6_p4.ebuild > SRC_URI="http://prdownloads.sourceforge.net/linuxwacom/linuxwacom-0.7.6-4.tar.bz2" > epatch ${FILESDIR}/linuxwacom-xorg71.diff (削除)
でもって署名を更新。以下のコマンドを実行すると、files/digest-linuxwacom-0.7.6_p4とManifestが生成される。
% ebuild ./linuxwacom-0.7.6_p4.ebuild digest
後は、いつも通り。
最初、ebuildファイルのバージョン表記で"-"ではなく、"_p"をつけるのを忘れててエラーを起こして右往左往したorz
SunSet SwishはBLEACHのEDが結構良かったのでそっからの関係で今回購入。正直アニメ自体は今期他にネタになるものが無いので繰り上がり的にプライオリティ上がってる状態、OP/EDは好きよ。芽生えドライブは対照的にEDアニメーションが好み、曲単体で聞くとあんまくるもんがないけど、いや嫌いではないですよ。
いぬかみっ、アニメはともかく漫画は絵柄の好みで買ってますがこれもちょっと惰性気味、この人の少女まんがが読んでみたいのぅ。ほのかはわりと面白いんですが展開がたいていとーとつな感じがするのぅ、うーんそれとも自分の読み方があってないのか、多分そっちだなorz。
メガミマガジンクリエイターズのバックナンバーの価格が高騰している件について、vol.1が欲しいんだけどなー、いや持ってる人間知ってるからそこに読みにいけばいいんですが。しっかしサムネイル画像が危険気味(何、まぁいいや。
そしてLaLaを買うのを忘れてたorz
LaLa、来月から田中メカのキスよりも早くが連載で始まる。アクション要素も不思議要素も無い話なので期待、今度こそお迎えです以上の話になれるか。津田雅美の連載が悪くない感じできてる、来月話が展開しそうなのでこっからどうなるか。
Software Design、Hyper EstraiterとGAINERの記事が面白いな、巻頭特集の日本語入力についてはいつかのUNIX USERの記事とあんま変わった印象が無いけどまぁこれはこれで。
2006-03-31の日記の続き、電車の中でやっとjavascriptのRegExpの使い方をお勉強したのでそれに基づいて作り直し。まだ対応しきれていないけど特に困らないのでこれで良しとする。とはいえこの範囲でも改善できることはあるだろうからちまちまやっていこう。
それはそうと変数定義とか適当なんで初歩的なとこからやり直しせななー。
// ==UserScript== // @name Amazon Associate ID Remover // @description removing Amazon Associate ID. // ==/UserScript== (function () { var amazon_pat = new RegExp(); amazon_pat.compile("(amazon|asin)", "i"); var rep_pat_01 = new RegExp(); rep_pat_01.compile("(asin)\/(.+)\/(.+)", "i"); var rep_pat_02 = new RegExp(); rep_pat_02.compile("(gp)\/redirect.html.*2Fdp%2F(.+)%2F.*"); var rep_pat_03 = new RegExp(); rep_pat_03.compile("(dp|gp)\/(.+)\\?(.+)"); var attrName = "href"; var links = document.getElementsByTagName("A"); var url; for (var i = 0; i < links.length; i++) { element = links[i]; if (element.hasAttribute(attrName)) { url = element.getAttribute(attrName); if (url.match(amazon_pat)) { url = url.replace(rep_pat_01, "$1\/$2"); url = url.replace(rep_pat_02, "dp\/$2"); url = url.replace(rep_pat_03, "$1\/$2"); element.setAttribute(attrName, url); } } } })();