/ 最近 .rdf 追記 設定 本棚

脳log[2011-04-27~]



2011年04月27日 (水) OUがウだったり Iがアだったりするとフランス語(あるいはそれに由来する)かなと思う。ジュルナリステン、カムフラージュ、ランデブー、ブルボン、シルエット、ブティック、ブーケ、グルメ、リュパン、ショパン、フォション、ショコラ、シャトー、ロシニョール、カンパニョーロ、……

最終更新: 2011-04-28T00:00+0900

[BAD BOY] チェーンを交換した。

チェーンは CN-HG73。

標準のチェーンは 110リンク。アウター×トップの組み合わせでガイドプーリーとテンションプーリーが垂直線上に並んだので CN-HG73も 110リンクにカット。アウター×ローでリアディレイラーがかわいそうなほど引っぱられてるがローは使わないので良しとする。

接続部(チェーンカッターでコネクトピンを押し込んだところ)の動きが渋すぎる。山を作ったらテンショナーのバネの力では戻らない。そのせいだと思うが、リアの 3-8速(径の小さいギア)でカタン、カタンとチェーンが滑るような現象が起きる。後輪に動力が伝わらないよ。いつになったら全力でこげる。

最終更新: 2011-04-28T01:14+0900

よくない書き方。

5. COM オブジェクトのインスタンス作成

COM の初期化が済んだので、次には COM オブジェクトのインスタンスを作成する方法について確認しましょう。既に触れたように、今回のサンプルでは [6] の CoCreateInstance 関数を呼び出すことで、COM ベースのオブジェクトである Shell Link オブジェクトのインスタンスを作成しています。この [6] の Shell Link オブジェクトの作成の様子を、あえて C++ プログラミング スタイルで表現すると次のようになります (実際にはこのように書けません)。仮にクラス名を CShellLink とします。

例 1.5 インスタンスを作成し、特定のポインターで参照する

  IShellLink* pShellLink = (IShellLink*) new CShellLink();

間違ったコードを書いて拡散させてはいけない。正しいコードを書いて導くこと。どうしても間違いを紹介する必要があるときは、コードそれ自体に間違っていることを主張させる。たとえばこの場合は

IShellLink* pShellLink = (IShellLink*) new CShellLink(); // 間違い!

とでもする。記憶も不確かな受け売りだけどね。

参考までにこのコード片を読んだ俺の反応。

  1. えっ、COMオブジェクトって newで作成できんの。聞いたことないで。えっ?ええっ?
  2. さっきのサンプルコードにこんな部分あったっけ。あったならできるかもしれんな。
  3. ない。どう考えてもおかしい。……とここですぐ上に「実際にはこのように書けません」という一文があることに気付く。

頭から順に読んできたけど、問題のコードのすぐ上のパラグラフはまだ読んでなかった。サンプルコードは目をひくし、図や表と同じように何が書いてあるかをざっと掴む手がかりにもなる。ところがとんだトラップだ。


今月号のクーリエジャポンは福島の放射能汚染に関して風評被害がどうのといって白雪姫の風刺画を紹介してた。存在は知ってたがどういうものかをそこで初めて見た。文脈がどうであれ自分が拡散に荷担してる自覚はある? Webなんかでも消えて欲しいと思うものに対して、引用して欠点をあげつらったり批判を加えたり、あげくご丁寧にリンクまではるのは逆効果。無視して埋もれて消えるに任せるのが一番。


2011年04月26日 (火) 鬼畜。キティさんお仕事は選んで><


2011年04月25日 (月)

最終更新: 2011-04-26T02:32+0900

[BAD BOY] チェーンが限界。

 症状

フロント・アウター✕リア・ロー(セカンド)の組み合わせで、チェーンが内側のチェーンリングに落ちる。もともと、チェーンが斜めに走るやや無理がある組み合わせなので仕方ない、メンテと調整不足のせいなんだと思ったが、Fディレイラーを外側に移動させたり、Rディレイラーを分解清掃してみたりしても直らない。変速自体は快調なのに、こぎ出しで力を加えるとチェーンが外れる。ペダルに負荷をかけてるときにチェーンが外れると足場を失ってバランスを崩すので危険。ふくらはぎをペダルに噛みつかれた。

 診断

タイヤを浮かせてペダルを手で回すとチェーンがチェーンリングから浮いてる!手で押さえたり負荷をかけて張らないと歯と歯の間にチェーンが収まらない。伸びすぎでしょ。

チェーンリングの前側でチェーンをつまみ上げると歯の先っちょが完全に見える。ふた山ぐらい見えるんじゃない?

 寿命

一年に一回とか数千キロで交換するとかいうレベルらしい。こぎ方やメンテ具合によりけりとはいっても。新車から数えて丸4年、15000kmだから時期的にも遅いぐらい。スプロケにダメージを与えてたおそれだってある。

 替えのチェーン

グレードの高いの(CN-HG91)はピカピカしてるので一つ下の黒っぽいの(CN-HG70)にしようと思ってる。9-speedの方(CN-HG73)が 6,7,8速対応品より 1割ほど軽いんだけど使えないものなんだろうか。そんなに幅が違う? 6速よりも 9速の方が近いのに。できるだけ楽がしたいのに。


豆知識: 7,8速はプレートを増やした分だけ横幅が増えた。9,10速は 8速と同じ横幅により多くのプレートを詰め込んだ、という経緯があるらし。8と 9、9と 10の間には(チェーン(やシフター)にとっては)断絶があるみたい。

そうはいっても、若干細くなったところでさしたる支障はないとも。変速時、チェーンが隣の歯の上に乗っかるときのキャパがコンマ数ミリ減るが、調整さえできてたら気にならないだろう。だったら 9-speed用の黒いのを。


コマ数はどうやって決めるのだろう。今のを数える? アウター✕ローやインナー✕トップでリアディレイラーがどういう状態だったら OK?


2011年04月24日 (日) [Vista] ごみ箱しかない Vistaの標準デスクトップ。唯一のアイコンはスタートメニューの中へ(リンク(≠ショートカット)みたいなのが作成される)。でもデスクトップが片付いてる時間は短かった。一区切り付いたら新しいフォルダにひとまとめにして片付けるけど。


2011年04月23日 (土) いまどき等幅フォントを前提にして全角/半角のマス目にスタンプを押すように文字を置いていくような処理もないだろうと思う。それもハイレベルな APIをスタンプ代わりにして。同じ ExtTextOutWを使うにしても ETO_GLYPH_INDEXを渡せば軽くなるんじゃないかと最初思ったが、単純にそうすると化ける。このフラグに関係する GetCharacterPlacementを調べたら「この関数は下位互換性のためにだけ存在し、Uniscribe モジュールの機能で置き換えることができます。」だもんな。今から手を付けるようなもんじゃない。かといって、Unicodeテキストを解析してフォントファイルから直に適切なグリフを選んで適切に配置して、というのもできる気がしない。DirectWriteの枠組みの中で表示をカスタムするのが自分の手を出せる範囲。あるいは最初に踏み出すべきは DirectWriteを効率的なスタンプにする方向かも。


2011年04月20日 (水)

最終更新: 2011-04-21T03:20+0900

[SakuraEditor] Regarding: Request/359(CSV編集モード) - SakuraEditorWiki

TSVだったら、タブ幅が可変になればよさそう。列ごとにフィールドの最大幅より1文字分だけ右側にタブストップがくるようにすると表形式に整列される。ファイルを最後の行まで読んで調べないとレイアウトを決定できなくなるのがデメリット。レイアウト↔論理座標変換も工夫しないと遅くなる。この変換は検索などでやたら無駄に呼び出されるから速度低下は増幅される。CSVなら、カンマの幅を半角文字○個分扱いするのかな。一文字編集するたびに画面全体の再描画が発生するケースもあるけど気にならない程度? 列を指定してソートできる秀丸さんかっこいい。タブストップを自由に設定できるというから、タブストップの位置を配列で持ってんのかな。タブ幅だけを覚えておいてその倍数がタブストップ、という現状にくらべると記憶領域も検索コストも必要になるけど、せいぜい人間が管理できる程度の数にしかならないだろうし。桁位置(64bits)×タブストップの数(10000)=80KBで十分過ぎるくらいか。


2011年04月19日 (火)

最終更新: 2011-07-30T13:35+0900

[] 言葉の選び方が合わない

難癖をつけようとてぐすねを引いてるわけじゃないのに、1ページ目、2ページ目、3ページ目と下のようにつまずいてばかりでさっぱり話が進まない。

百人の町がありました。

町の人は、十人が大悪人で、三十人が善人のふりをした極悪人で、五十七人が自分のことを善人だと思い込んだ悪人で、三人が善人です。

善人の一人は、(省略)

もう一人の善人は、(省略)

最後の一人の善人は、最初から何もしませんでした。前の二人が失敗したのを見ていて、何をしても駄目なのだと思いました。彼は家の中に閉じこもって、人の声を聞かず、人の目から逃れて、ただただ町の未来を儚みました。

(省略)

悪行や善行はあっても、「悪人」や「善人」はどうだろう。悪行ばかりを行う人を悪人と呼んでみても、「善人のふりをした極悪人」や「自分のことを善人だと思い込んだ悪人」は何をもって悪人とされているのだろう。「最初から何もしませんでした」という「善人」を善人たらしめているものは何?ここで区別されているような種類の人間が存在しうる?ただの言葉遊びでなくディテールをもって。

1

エレベーターを出ると床がなかった。

遙か八百メートル足下の遠い区街は、しかし一立方センチメートル辺り指の数ほどの煤煙もカビ胞子もない大気を透してシャープネスを施され、異様なリアルさで陽平の眼底に不躾に飛び込んでくる。そこに住み暮らす六万五千の人間男性と八万超の人間以外の人いきれが服に髪に染みついてくるようにすら思えた。

「シャープネスを施」す。何が言いたいのかはわかる。「シャープネス」は画像のエッヂを強調してノイズを増すフィルタのことなんだろう。でも sharpnessは特定の価値方向性を持たない中立の単語だと思ってるので、結果がどちらに倒れるのか推測はできても理解したくない。

「リアル」。微粒子をほとんど含まず、建物の輪郭が強調されたようにはっきり見える澄んだ空気。この描写は「住み暮らす六万五千の人間男性と八万超の人間以外の人いきれが服に髪に染みついてくる」ようなリアルとは対立するように感じる。大気の存在を感じさせない景色は CGのような作り物臭さを喚起しそうだ。

口の端から頬にかけて指でなぞるような仕草をしてみせると、後輩は青ざめた顔を押さえていた手でようやく防臭マスクを顔にかけた。臭いだけでこの様では、もし遺体が収容済みでなかったら、この若者は入室早々に床を汚していただろう。

特定の場所を指示せず、たんに収容するというとき、自分は内へ取り込む動作をイメージする。だもんで、遺体が収容されている「から」悪臭+グロ映像のコンボを避けられて吐かずに済んだ、という部分で接続が順逆ひっくりかえってるような混乱を覚えた(その場所に収容されているからこそコンボを食らうんじゃないの?)。「収容」という一語のみを手がかりに何を言ってるんだと思われるかもしれないが、ここは話の冒頭なので二人のいる場所がモルグだという可能性だって残しながら状況の把握につとめていたわけだ。


2011年04月17日 (日) 渋皮栗 おしらせ「画集を出版していただくことになりました。まんだらけ出版より7~8月頃発行です。待ってました


2011年04月16日 (土)

最終更新: 2011-04-16T18:41+0900

 

Firefox4. browser.overlink-delay を 70から 0へ。階層化されポップアップするサイトナビゲーションなどディレイを入れるべきところもあるがこれは違う。表示場所が決まってて邪魔にならないし、リンクに気付かないまま通り過ぎてしまわないように遅延なし。こういう設定があるはずであり、実際にあって、すぐに見つけて変更できるのが Firefoxのいいところ。

 

なんで左半分しか使わない」の答え。「If your mouse cursor is on the left and the new line of text with URL would be covered with the cursor, then the URL is displayed on the right side of the content instead on the default left side.」右半分は URL表示の避難先として予約されていました。そういうレアケースのために長めの URLがいつでも省略されます。何が気に入らないって、省略されてることが一目でわからないのが良くない。右側にスペースが余ってみえるんだから。いっそ最下段のリンクの飛び先は表示されなくていいよ。見たければスクロールしたり貼り付けたりするから。その代わり下手な省略をやめて。

 

省略に関連して。googleに裏切られてはてブが応えてくれることに、省略されていないタイトルが title属性に設定されていることがある。...の先が非常にもやもやするの。ページ移動するかどうかはタイトルの全体を見て決めたい。でも googleでは見えない。見映えのために切り詰めて横幅をそろえるのはいいけど、その制約は title属性にはないから。実装上の制約があったとしても、そんなのは考慮しないから。


2011年04月13日 (水) 「機能比較: サクラエディタ, Binary Editor BZ, K2Editor - Softonic / ソフトニック」 << 笑っちゃうな。「日本語に対応: いいえ、、いいえ」だって。日本人(たぶん)が作ってるエディタだし、サクラエディタに至っては「日本語テキストエディタ」を名乗ってるのに。そんなんで大丈夫か? そして Unicode版推進派としては 1.6.6.0を掲載されるのはありがたくない。が、インストーラ付きが必要なんだろうな。2.0.2.0にはない。


2011年04月12日 (火) Firefox4の、保存期間の設定がなくなった閲覧履歴(20110327)。places.sqliteが固定サイズになったとのことで、趨勢を考えればまあ十分なサイズがあるとは期待できないな。履歴を長いこと残してると訪問済みリンクというのが役に立つ。(一週間なり三か月なり記憶も新しい)一定の期間に訪れたことがある、というのではない、これまでに訪れたことがあるかどうかということを自分の記憶力を超えて知らせてくれるようになる。「と思いながらそのサイトをうろうろしていたら、未訪問のはずのリンクが何カ所も閲覧済みの色になっていることに気付いた」ということが実際にあった。異なるルートから二度も行き着いた、という発見がブックマークボタンに手を伸ばさしめたのだ。不意に再訪問の必要に迫られて、漠然とした記憶から履歴を検索することが何度かあったが、保存期間が仮に一週間では見つかる可能性は薄いし、あるとわかってなければ手を尽くして探しだそうという気も起こらない。実のところ五年という履歴の保存期間は一年、三年と延長してきた結果の数字だ。全て保存されているという確信が本質的に重要。


2011年04月11日 (月)

最終更新: 2011-04-16T21:35+0900

[Ruby] 「HsbtDiary(2011-04-11) rubygems の taint と LOAD_PATH と $SAFE について

前にこうならんかな?って書いたのをもう一度。

require 'hoge'

したときに hoge.rbなり hoge.soなりが taintedな $LOAD_PATH要素に基づいて発見されたときは SecurityError。見つからなければ taintedな要素はスルー。という動作を Rubyに期待したい。今は taintedな $LOAD_PATH要素を無造作に File.expand_pathして SecurityErrorが起こるに任せているんではなかったか。


 @2011-04-16 Ruby 1.9.2p136と 1.8.7p330で挙動が違うのが SecurityErrorへの疑問を増す。

1.9.2では(確かめたわけではないけど)汚染されたパスの展開がセキュリティエラーにつながってるから、汚染されたパスが $LOAD_PATHの末尾にあった場合は $SAFE=1の状況下で require 'cgi'が成功する。require '存在しないファイル'はセキュリティエラー。汚染されたパスを基に展開を試行したかどうかが分かれ目。

1.8.7では $SAFE=1の状況下で汚染された文字列を引数にした File.expand_pathは 1.9.2と違い成功するものの、上のような場合でも require 'cgi'に失敗する。これは requireが内部的に File.expand_pathを呼び出し――これは 1.9.2とは違いセキュリティエラーを起こさないけれど 1.9.2同様汚染された文字列を返す――、その汚染された戻り値を使った require_internal(仮名)が 1.9.2とは違い $SAFE=1のときにセキュリティエラーを起こしてるのだと思う。挙動からの推測。

一貫性が欲しかったね。できれば実用的なものが。特定のディレクトリ(汚染された$LOAD_PATH要素)に特定の .rb, .soファイル(requireされたファイル)があるかないか判った(SecurityError or not)ところでどうだというの。


2011年04月07日 (木) この日記に書くコード片や各所へのパッチに対するスタンス。>NYSL Version 0.9982。面倒くさい義務や管理はナシ。プログラムやソースコードは自由で、個人や組織に独占されるのは面白くない(冒頭の copyrightは必要悪だと思うようになった。ソースに入り込んだ手垢のごとき名前付きコメントは見るのも書くのも嫌(でも名前だけに消しづらい)。ライセンスだって自由を担保するための必要悪だ)。という考えが自分の根底にある。まして、自分が書くのは独立したアプリケーションでなく欠片だけだから、何をか主張できようというもの。