番組改編期ですね。アニメの本数が多すぎて一般番組のチェックが全くできていませんでした。そんな中、IRCで指摘されて見たらなんとこんどは短期じゃなくて毎週のシリーズとしてサラリーマンNEOが来た。ちょっとびびった、ネタ持つのか?とはいえ大期待。
今までやってた番組のDVD-BOXがついに出ますよ。あんまりこの番組に興味が無い人でも、Googleの社食をを見るためだけに買ってもいいぐらいだ!(何
去年買った、CREATIVEのMuvoが壊れた。電源ボタン押してもうんともすんとも言わない。電池変えてもダメ。PCに指したら通電する。というわけで電源ボタンが壊れたのかしら...
しばらくPSPで音楽聞く生活へー
一つ目は、プロファイラー一般の話題から入ってえらい細かい話まで進んでる。二つ目は、GCに頼らないで明示的にリソースの解放を行う話題について扱っている。
以前、筆圧感知を制御できないか夢想してて、ちまちまとlinuxwacomやgtk周りを見てました。そしたらlinuxwacomのwcmFilter.cというファイル内で、xf86WcmSetPressureCurveという関数があった。で辿ってみたらxsetwacomから呼ばれてて、このコマンドから筆圧の反映方法を調節できる機能だそうだ。っていうかまぁ上のリンクに書いてあるんですが...orz
%xsetwacom set stylus PressCurve 0 15 80 100
というわけで、パラメータの値の決め方を確認しないと。
久しぶりに、ECBインストールしなおし。参考にしたのは以下のサイト。
CEDETとECBをダウンロードして、適当なところに展開して、以下の通りビルドする。(...の部分は任意のディレクトリへのパスに置き換える)
cedet% make EMACS=emacs ecb% make EMACS=emacs CEDET=/.../cedet-1.0pre3
.emacs.elへ追加した設定は以下の通り。上のサイトから参照したまんま。
;; CEDETの読み込み (load-file "/.../cedet-1.0pre3/common/cedet.el") (setq semantic-load-turn-useful-things-on t) ;; ECB (require 'ecb) (setq ecb-tip-of-the-day nil) ;; 起動時の tip-of-the-day を表示しない (setq ecb-windows-width 0.25) ;; ecb メソッド等のウィンドウ幅の割合 ;(setq ecb-windows-height 0.33) ;; ECBの切り替え (defun ecb-toggle () (interactive) (if ecb-minor-mode (ecb-deactivate) (ecb-activate))) (global-set-key [f2] 'ecb-toggle) ;f2 ECBモード切替
VineSeedでGNOME周りをアップデートしようとして、必要なモンまで削ってちょっと慌てた。最近のVineは色々アップデートが早くてすごいなぁ、とか思いつつ作業してたらVineにcompizとかXglのrpmが準備されているのに初めて気がついた。というわけで、インストールして、XGL と Compiz 導入のメモの通りにやってみる。fglrxドライバで3Dアクセラレーションを効かせていなかったので、とりあえずradeonドライバで起動。
やばい、すげぇおもしろい。3Dアクセラレーションがないと厳しいけど、これなら使えるビデオカードを買いにいってもいいぐらいに使ってて楽しい。
そんな中、カーネルアップグレードやったらイメージ作りに失敗したらしく起動しねー(泣
現在リカバリ中〜、そしたらDVDドライブがあかねー(ぇ
dmeg: [fglrx:firegl_unlock] *ERROR* Process 2456 using kernel context 0 /var/log/Xorg.0.log: (WW) fglrx(0): Kernel Module version does *not* match driver.
webにあったパッチは既に当てる必要がなくなってて。agpgartを別モジュールにしたりしてみたけど意味なく。はてさて、もういいや、おとなしくビデオカードを買い替えるか。一日潰した気分。
verify_areaなんてシンボルねーよていうんで、ここのモジュール突っ込んだりもしてみた。エラーは無くなったけど、他はかわらず。
先日、Vineのカーネルぶっこわして起動しなくなったとき、ブートイメージを書き換えるのにwindowsからlinux領域へファイルを置こうとして使ったのが、上のソフト。windowsのドライブにext2/3のパーティションを割り当てることができ、読み込みだけでなく、書き込みもちゃんとサポートしているソフト。まぁlinux側再起動するときにfsckは行う必要はありますが。
以前の日記で言及した、xsetwacomコマンドによる筆圧感知調整についての続き。xsetwacomコマンドを使うとき、パラメータとして4つの値を一緒に渡すけど、これについてのメモ。
linuxwacomではベジェ曲線を使って筆圧調整を行っており、ここで必要となるベジェ曲線は4個の制御点を使って表現しています。xsetwacomコマンドでパラメータとして渡す4つの値は、制御点2点分の座標を表しています。では残りふたつの制御点はどこかというと、原点(0,0)と最大値(100,100)がデフォルトの制御点として決められています。
%xsetwacom set stylus PressCurve 60 10 40 90
最初の二つの値(60と10)が一つめの制御点の座標で、ここではC1(60,10)とします。後ろ二つの値(40と90)が二つめの制御点の座標で、C2(40,90)とします。
このC1、C2に原点(0,0)と最大値(100,100)の座標の計4つの制御点を使ってベジェ曲線を描き、定義域(x軸の範囲)を元の値として、値域(y軸の範囲)が調整後の値となるようになります。4つの制御点は図のような関係になります(図はそのうち真面目に描きます(泣...)。
なお、C1、C2がとれる座標の範囲は0から100の間の整数です。また、linuxwacomのDocumentでは4つのパラメータ(順にi1, i2, i3, i4とする)の各合計が100になるようにしろと書かれていますが(i1 + i3 = 100, i2 + i4 = 100)、特に文句を言われるわけではありません、例では偶然そうなってますが。
ベジェ曲線の解説は以下を参照しています。始点から、または終点から制御点の間の線分を分割する割合(t)は0.5で、線分をつねに二等分して求めています。
というわけで、念願かなって筆圧調整をしてためし書き。パラメータいじりながらしばし試してみると、どうもgimpの方でもいじるべきところがありそうだということがわかった...、さて次はgimpの補完処理部分を見てみるかorz
筆圧調整に必要なベジェ曲線の算出は、linuxwacom/src/wcmFilter.c:filterCurveToLine()関数で行われており、この関数を再帰的に処理することで近似的にベジェ曲線を求めています。
じつはベジェ曲線算出部分は完全には読みきれてません。っていうかどういう計算してるか把握しきれなくて、その部分だけ切り出して処理をさせて確認したりとかしています。とりあえず、これ以上時間かけてもしょうがないしーみたになノリでやってます。再帰からぬける部分でやってることはわかるけども、計算してる過程がよくわからんorz(wcmFilter.c:filterNearestPoint())
なんかこういうコンピュータサイエンスの初級くさいことにまごついてると、お前は6年間何を勉強してきたんだという気分になって凹む。
夏コミ向けにオブジェクト指向のおさらい、どのへんを追求したものやら。
Life Hacksは初めと最後の特集は良いんだけど、途中のgoogleのサービス一覧とかいらなすぎ。値段相応の価値があるかどうかは微妙なところ、どちらかといえば無かった方。
継続という概念をWebアプリ開発で利用して、自然に遷移を実装しようとする記事。最近議論の多い、CSRF(Cross Site Request Forgeries)攻撃についても、継続を使うことで自然に対策が行えるのではないかと思う。
Webアプリ開発で継続を利用するという話はwikipediaの継続の記事でも言及されているように、ステートレスである通信環境でステートフルなやりとりを実現することができる。
っていうことがいえるんかね。
ここんとこ日記の量が少ないのは、ちまちまとオブジェクト指向の勉強をしてるからです。まぁ勉強つっても今までやってきたこととかを人に説明するために再構築しているみたいな感じかもしれない。
んじゃ全然新しい情報を入れてないといえばそうではなくて、未だにオブジェクト指向って言葉がしっくりしないまま、「まぁそんなもんなんだな」的な納得ですませてきたので、webやら本を見てまわって理解のやりなおしをしてる最中です。
で、今日は仕事先でメッセージパッシングとメタクラスとSmalltalkの継承について聞いてきた。おかげで理解はできたかもしれん。
うーん、こんなんで夏コミに本出せるんかなぁ(ぇ。まぁ寄り道しすぎてる気もしないでもないので調査の切りどころもちゃんと覚えなね。
それはそうと、Smalltalkの変数というページのメタクラスの解釈、「メタクラスとはいわばクラスの幽波紋(スタンド)」というのは思わずあぁなるほどと思った。
昨日、今日と家の電気全部つけたまま寝落ち。しかも昨日は目覚しかけわすれてorz。
規則正しいサイクルを取り戻すために再度、プライベート作業報告を開始、やっぱりある程度の目標と明確な〆切が無いといかんのぅ。
というわけでしばらく悶々と色々やるのーよー。
オブジェクト指向言語、開発について調べると、結局最後は人と他人との係わりかたがシステム完成と品質に大きな影響を与えるし、手法に則ったようにするのでは意味が無く、その手法の示す物をきちんと吟味できなければ誤ったシステム開発になってしまう。
まぁ当然といえば当然なんですが、あまりに短絡的にこういう視点へ帰結させるのは指向停止になってしまうので、気を付けないと、と思った。
昨日つっこんだrsshを使ってみるべく、外部から100MB強のファイル転送を試してみた。最大で2.0MB/sなんですが、50MB毎ぐらいに転送速度がごすっと下がっていって、100kB/sまで下がる。で、そっから戻ってまた1.5MB〜2.0MB/sに達する。で、それを繰り返してファイル転送終了。あ、合計時間計ってないorz
rsshには問題なさげだったんですが、ローカル環境でopensshのsftpを試しても外部と同じ程度の転送速度しか出ないという問題が発生。なんでローカルで転送速度が(最大で)2.0MB/sしかでないのかと...。しかも外部から試してもらったとき、350MBのファイル転送に残り5時間半とか表示されるみたいだし。うーん、前途多難。とはいえ転送速度の制限なんてしてそうにないのになぁ。
上記サイトに書いてある通りにやって作業終了。なんだか結構ややこしそうな感じだけど、ちゃんと読めばできるかと思われ。
まぁ結局sftpの設定は転送速度の関係で没ったんですが。
Debianのaptでftpサーバ探してたらなんか一杯あるのね、FTPサーバ。で、pro ftpdは試したことがあるので、今回はvsftpdを試してみた。
上のリストのサイトを参考にしながらtcp_wrapperの設定まで行い、サーバ起動。
途中、tcp wrapperの設定をenableにすると使えなくなるという問題があったけど、ビルド時にtcp_wrapperを有効にしない場合、設定項目に記述してはいけないらしく、tcp_wrapperに関する設定項目を削除し、LISTEN=NOにした状態で、inetdを再起動すると無事継るようになった。後、ftpサーバで有効にするユーザのshellをrsshにしたままで使えなくてつまづいた、これは適切なshellにpasswdファイルで指定する必要有り、当然といえば当然だけど、忘れててハマった。
オブジェクト指向について調べるようになって、「JavaScriptはプロトタイプベースのオブジェクト指向言語」という記述を見て自分がjavascriptを理解できない理由がやっとわかった。自分が慣れ親しんだJavaはクラスベースのオブジェクト指向なので、JavaとJavaScriptではクラスに対するアプローチが言語レベルで違うじゃないか。そらprototypeとか理解できないよ。
プロトタイプベースのオブジェクト指向であるならば、javascriptはlispとかschemeの亜流と言われた方が確かに(自分は)わかりやすい、lispのオブジェクト指向システムCLOSはプロトタイプベースだしなぁ。
言葉の定義ズレはまぁしょうがないだろうけど、プロパティはDOMのプロパティを被るんできっつい...とか。集中的にJavaScriptについて勉強すればなんとかなるかも。
こう考えると、オブジェクト指向ってパラダイムは厄介だなぁ、違う言語でオブジェクト指向だから大丈夫だろうと思うと絶対躓く、ほんと頭真っ白にしてから臨まないと無駄に時間がかかるだけだ。
しかしJavascriptを使ってる人はprototypeについて躓いたりしなかったんだろうか...orz。あーあ頑張って勉強しよ
衝動的にPSPのwebブラウザを使ってスケジューラみたいなの作りたいなぁと思って色々調べる。問題は、ほとんどがオフラインになるので編集内容を保存しないといけない、けどwebブラウザからローカルファイルへ手を出すのはどうもできなさげ(IEはActiveXを使えばできるらしいけど)。というわけで、Cookie使って値を保持させるのが無難かなぁと思われ、できるかどうか調べてないけど。ていうかセッション持てないのにCookieって発行できるのかしら(そしてそれを保持)。
で、webブラウザの仕様を確認しようと思ったけど、NetFrontの細かいバージョンまではわからなかった、時期的には3.0?。ちなみにUser-Agentの出力結果はこんなん。
"Mozilla/4.0 (PSP (PlayStation Portable); 2.00)"
ファームウェア2.0の時から同じ出力なのでにんともかんとも。まぁ色々書いて確認すればええ話ではあるけども、それが面倒なんよねぇ。
FireGL8800が3Dアクセラレーション効かせられないので、適当なグラフィックボードを探しに秋葉へ。nVidiaだったらどれでもXGLなんとかなるだろうとか考えながら中古で736を買ったけど、帰ってきてGentoo wikiを確認したらものの見事にGeForce5700Ultraだけ無いorz。案の定ダメでした...、あーあー。とはいえ画面のチラツキが無くなったのでよしとしよう。
Javascriptの本をとりあえず一つはと思って購入。「Javaのオブジェクト指向がゼッタイにわかる本」は語り口の参考にと思って購入。微妙な記述が無いわけではないが概ねやりたい方向に向いてると思う。
nvidiaのlinux driverをインストールしようとしたら、nvidiafbモジュールがロードされてるせいでmkmodできないというエラーが起きる。で、削ろうと思ったらVineのコンソールはデフォルトがフレームバッファを使ってるので削れない、でフレームバッファを使わないように再起動仕様としたけど、grubで「vga=normal」を渡しても効かない。しょうがないので、nVIDIA ドライバ 8178に書かれているように、nvidiafb.koとrivafb.koを名前変更して終了。そのうちちゃんと調べるか。