/ 最近 .rdf 追記 設定 本棚

脳log[2011-04-17~]



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は必要悪だと思うようになった。ソースに入り込んだ手垢のごとき名前付きコメントは見るのも書くのも嫌(でも名前だけに消しづらい)。ライセンスだって自由を担保するための必要悪だ)。という考えが自分の根底にある。まして、自分が書くのは独立したアプリケーションでなく欠片だけだから、何をか主張できようというもの。


2011年04月06日 (水) zenback を入れてみた」一点にだけ注目していた。期待は裏切られなかった。コメントの後に ZENBACKが表示されるのがイイ。そうでないと、読もうと思ったコメントが遅延ロードされた ZENBACKに押しやられて逃げていってしまうから。追記@2011-04-07:「zenbackをツッコミ欄の後ろに表示させた一件 - kayakaya日記(2011-03-28)」 突如わいてきた(ように見えた)要望の目的は最初からそこにあったのね。スクリプトを埋め込むのに tDiary本体の修正が本当に必要?って思って、danなにがしさんの(コメントが逃げる)ブログを Firebugで覗いてみたりしてたのよ。この後者のエントリを発見したのが、前のエントリの関連リンク(powered by zenback)だってんだから有用性は疑いえないな。

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

[SakuraEditor] BugReport/70 - SakuraEditorWiki

まったく、CViewCommander::Command_REPLACE_ALL ってのは人類の理解の範囲を超えている。

  • 通常選択範囲を置換
  • 矩形選択範囲を置換
  • ファイル全体を置換
  • 対象範囲を行単位で置換
  • 対象範囲をひとつのマッチごとに置換
  • 正規表現ライブラリを使って置換
  • クリップボードのテキストに置換
  • クリップボードの矩形テキストに置換
  • 置換ではなく前に挿入する
  • 置換ではなく後ろに挿入する

これ、あえて異なる複数の分類を一括りのリストにしてるけど、実際のコードがそうなのだ。こんな処理が一つの関数の中に、変数を共有しながら―しかも型を偽って本来とは違う使い方が特定の処理ルートではなされていたりする―、一部の処理を共有しながら、インターリーブされてる。

BugReport70.patch (1.7KiB, 2011-04-07 02:50)

submit(<commit以前)はしない。怖すぎる。


「「すべて置換」は置換の繰返し」フラグが ONのときの対策がまだ。

コミットログも読まずに軽率な修正。>BugReport70.rev2.patch (2.7KiB, 2007-04-07 06:50)

これから読む。>「SourceForge.net Repository - [sakura-editor] Revision 1049」, 「SourceForge.net: Sakura Editor: Detail: 1636751 - 行置換のオプション化&問題修正

うむ。削除したコードがなぜあえて論理座標だったのかわからない。


 @2011-04-11 「// 行単位で置換するので colDifは常に 0。」

って書いて削除したコードがパッチにあるけど、一つの行が複数のレイアウト行に分割されてることがある。一行処理して次の行……と思ったらまだ折り返された同じ行にいた、とか。前にも別件で書いてるけど、折り返しと矩形選択(+文字一括挿入/+置換)は本当にひどい組み合わせ。結果を予測できるものにするためには選択範囲の末尾の行から処理をしないといけない。そうすると文字の削除や挿入による折り返し位置の変化が後の処理に影響を与えないので。でもそうはなってない。だから、結果を維持する労力を割く必要もない「未定義」の動作だと考えてしまう。


2011年04月05日 (火) Firefox4. なくなったステータスバーの代わりにリンク先を表示する左下の領域。ウィンドウに対してスペースが余ってるのにほとんど全ての URLで真ん中が省略されてしまって使えない。なんで左半分しか使わない。飾りじゃないんだよ。


2011年04月04日 (月) ショートボブの女の子って可愛いよな しまぱん」。保存したくなる画像が一枚もなくて新発見。ショートボブはそれだけで*ナシ*だということがわかった。たぶんこういった偏見に基づいてる。アクティブで自分を主張する空気を読まない。男友達のような気安さがないのはもちろん、女性に対して期待してしまう要素もない。手に負えない存在。/// 性格診断「ISTJ型:やらなければならないことはする」 たしかに義務感で動いてるし、こうと決めたこと決まったことに従うのが好きだ(納得できる理由がある限り)。ただ、スペックが低いので「おかれた立場によっては社交的に振舞う」ことはできないし、「級長やプロジェクトの責任者や地域社会のリーダーに祭り上げられること」もない。荷が重すぎる。質問の「この世には論理的なもの、科学的なものでは割り切れない物事があると信じている。」にはメタ質問の前振りなのかと勘ぐるほど違和感を覚えた。もので割り切れるものって何?すいかと棍棒?


2011年04月02日 (土) MSI Global – Mainboard - 790FX-GD70」使用中の PCの M/Bのページ。サイトのリニューアルでドライバなんかの更新が見つけにくくなった。でも深刻なのはそれよりも前。画像のギャラリーと拡大機能が jQueryを使ったスクリプトとともに埋め込まれたこと。画像以外のメインコンテンツが下に押しやられたり、PageDown, PageUp, Home, Endといったページナビゲーションキーを乗っ取られるのは不便の一言で済むが、←, →, Home, Endキーを押し続けると簡単にブラウザ(Fx3.6, Fx4)が DoS状態になる。Logicoolのマウスユーティリティ SetPointの機能 UniversalScrollを使ってると一層効果的に Firefoxをハングさせられる。リークしてるのかメモリの使用量も増加の一途。これはブラクラだよ。とっととギャラリーのキーボードインターフェイスを捨てたほうがいい。それが原因だし、どうせ不便を生んでただけなので。結局、作成者側が誰も使ってないからこの Webページとしての致命的な欠陥に気付かないんでしょ。


2011年04月01日 (金) 々。以前はできなかった気がしたが、今の ATOKだと「おどりじ」で変換できる。小学校の漢字ドリルにそう出てたからね。実際は小さい文字の入力に使う Lや Xと同じで、きぎ、ひび、ひとびと、ささき、たた、みたいに語の一部として変換するので使わないけど。


2011年03月30日 (水) Project Euler Problem 85。1999998だと思ったが incorrectだと蹴られる。9が並んでるので慎重に桁を数えたが、そういうミスではなかった。もう解らない。

最終更新: 2011-08-20T02:12+0900

[ProjectEuler] Problem 85

 Problem 85

incorrect

Target = 2_000_000
Size = Math.sqrt(Target*2).floor+1
a = (1..Size).map{|i| i*(i+1)/2 }
answer = 0
until a.empty?
	jv = a.last
	answer = [a.map{|iv| iv*jv }.min_by{|v| (v-Target).abs }, answer].min_by{|v| (v-Target).abs }
	a.pop
end
p answer

 @2011-04-14

まったく恥ずかしい。答えが合わないとなって当然問題を読み直してはいたんだけど、日を置いて改めて読んでみたら問題が何を求めてるのかが見えてきた。"nearest solution" ではなく "area" だったとさ。

Target = 2_000_000
Size = Math.sqrt(Target*2).floor+1
a = (1..Size).to_a
answer = [0,0]
until a.empty?
	j = a.last
	answer = ([answer] + a.map{|i| [i,j] }).min_by{|i,j| (i*(i+1)/2*j*(j+1)/2 - Target).abs }
	a.pop
end
puts "#{answer[0]} * #{answer[1]} = #{answer[0]*answer[1]}"

2011年03月28日 (月) 20110321に追記した。並記したかったので追記。