/ 最近 .rdf 追記 設定 本棚

脳log[2009-10-22~]



2009年10月22日 (木) [Firefox] 言語ごとにフォントや文字サイズが変更できるとは知らなかった。日本語のフォントは最低12、通常15だけど、西欧は最低15、通常18で、それでもまだちょっと小さいかな、というレベル。なんでこんなにスケールが違うんだ?


2009年10月16日 (金) [SakuraEditor]「折り返ししている物理行末を、キーボードで左から右へ矩形選択しようとすると、次の物理行にカーソルが移動して意図した通りに選択できません」折り返されている行末へカーソルがたどり着いた瞬間、次の行の頭に移動していて右端の一列が選択できない。たしかに問題。折り返し込みの矩形選択とか、コピペしたときにどうなるのが正しいのか想像できないんだけど……。矩形選択は図形的な操作だから、折り返しがあろうが改行があろうが、右へ範囲を広げている最中にキャレットが左へ戻ってしまうというのが意外な感じはする。

最終更新: 2009-10-17T03:43+0900

[javascript] 空文字列にマッチした後の lastIndexの値は IEの挙動が妥当。

  var re = /\b/g;
  var match = re.exec( "012" );
  alert( match.index ); //=> 0
  alert( re.lastIndex ); //=> 0(ECMAScript仕様), 1(IE)

仕様では 何度 re.execを実行しても re.lastIndexが 0から増加しないから、re.execをループで実行するときにはマッチ結果が幅0のときに限り特別に lastIndexをインクリメントする処理が必要になる。

 lastIndexが 1ではいけないの?

マッチの範囲は "0"の直前から "0"の直前までで、lastIndexは範囲の末尾の次の位置を指すもの。マッチの幅は0。

index = 0; lastIndex = 1; であればマッチ範囲は "0"(幅1)ということになってしまい正しくない。

index = 0; lastIndex = 0; であればマッチの幅が 0だということも、その位置が "0"の手前だということも表現できていて正しい気がする。

 でも、lastIndexってパターンオブジェクトのプロパティ……

indexはマッチ結果のプロパティだけど、lastIndexはパターンオブジェクトのプロパティなのだ。match.index...re.lastIndexの範囲が正しいとか正しくないとかは考慮に値しないのではないか。

検索結果に影響があるかといえば、スクリプトエンジンが行ってくれないことを、スクリプトを書く人間が手作業で行っているだけなのだから影響はないだろう。

IEは至極まっとうな実装をしたと思う。


2009年10月15日 (木) [790FX-GD70] BIOS v1.6


2009年10月10日 (土) なんだvvvこれvvvv > THE iDOLM@STER MAD World Service


2009年10月09日 (金) [C++] プライベートメンバ関数をいっぱい宣言する代わりに friend class Hoge; とだけ書いておく、下請け関数ならぬ下請けクラス、メソッド。(ありかな?)


2009年10月08日 (木) sourceforge.netでうざいポップアップが出る。httpsのページで http://ad.doubleclick.net/...を読み込んでいるからだ。slashdot.jpの ads.osdn.jpもそうだったけど、広告がサイトの Readabilityを落としてはいけない。対象が 2hostになったので Adblock Plusを入れた。


2009年10月07日 (水) [C++] wchar_tって使いにくい。2バイトだったり 4バイトだったり。ワイド文字列リテラルのエンコーディング、とそこから決まる wchar_tのサイズ、を決められたらどうか? ……。char16_t、char32_t、u、u' '、U、U' ' というのがそれだ。早く使いたい。ところで、charより ucharの方がわかりやすくないか。char16…や char32…だとビット幅だけを規定してるみたいじゃない。……。実際にそうなんじゃないだろうか。Wikipedia(ja)には「char16_tとchar32_tであり、それぞれUTF-16とUTF-32を内部表現とする。」こうあるけど、エンコーディングを規定するのは u、U接頭辞だけ、とか。C++コンパイラにエンコーディングのバリデーションとかやってほしい人がいるとは思えないし、やらなければ内部表現云々はまるで無意味だし。……。UTF-16、UTF-32はエンコーディングではない気がしてきた(無知)。ならば Wikipedia(ja)の記述は、これらの符号化文字集合を単独で表現できる大きさ持った型だ、という意味だろうか。<< そろそろ調べどき。……。どちらも符号化方式だった。では C++0xの方を……。エンコーディングを持ってるのは文字列リテラルだけに思える。u8という接頭辞で UTF-8文字列を char配列に納められることもわかった。char16_tと char32_tについては「UTF-16とUTF-32を内部表現とする」というのは間違いで、「UTF-16、UTF-32の符号単位を格納するよう設計されている」が正しそう。「符号単位」という言葉を知らなかったのがうまく説明できなかった原因。「符号位置」(コードポイントの訳語だと思う)とは違う。


2009年10月02日 (金) [Vista] ショートカットは、そのターゲットがごみ箱に入っていることを認識して、復元するかどうか聞いてくる。気が利いてるね。


2009年09月28日 (月) 自動引き落としには承認というプロセスがない。財布のひもを他人に預ける行為だ。クレジットカードもいつまで続くんだ。赤信号みんなで渡れば怖くない、だろう、あれ。もぐらたたきにかまけてないで 21世紀でのあるべき姿を見せよ。


2009年09月27日 (日) どうやってローカル svkリポジトリの、特定のコミットをつまみ食いして pushできるかと思案中。ことが自動で進むのは好きじゃない。>svn merge -c M,N,P,... SVKURL >svn commit でどうだろう。svn mergeは必ずワーキングコピーに対する操作だというのが安心だ。


2009年09月26日 (土) [SakuraEditor] 物理行。論理行。レイアウト行。仲間はずれはどれだ? レイアウト行は折り返された分を新しい行として数える場合の呼び方で疑いようがない。論理行は雰囲気で大多数が合意に達するのではないかと。でも、物理行は考え出すと結論が出せない。ファイルやメモリ中に CRや LFという実体を持つ行を物理行と呼ぶのか、目の前のエディタ画面に疑いようもなく存在している(レイアウト)行を物理行と呼ぶのか。一応、論理行の仲間とされてるみたい。(追記:ANSI版(trunk/の下)のソースを見てたら論理位置とレイアウト位置が同じ意味で使われていた。ギャー!)


2009年09月25日 (金) [SakuraEditor] PatchUnicodeに投稿するのに SourceForge.netのアカウントがいるんだろうなあと思っていたら「Add new」という控えめすぎるテキストリンクが存在していた。タイトルより上にコマンドを置くなよ。今のデザインは SourceForgeのナビゲーションとプロジェクトのナビゲーションの区別もつけづらい。というか慣れる暇も与えずころころ変えすぎ。

最終更新: 2009-09-25T21:30+0900

[][][大型本] Robert C. Seacord【C/C++セキュアコーディング (SEI SERIES・A CERT BOOK)】 アスキー、[単行本] デイビッド・A. パターソン, ジョン・L. ヘネシー【コンピュータの構成と設計~ハードウエアとソフトウエアのインタフェース 第3版 (上)】 日経BP社

けばけばしい色づかいのカバーと紙面を埋め尽くすスクリーンショットが満載のパソコン入門書(多分に想像混じり)を置くばかりでない書店が近所にできた(ゲーデルエッシャーバッハがあった!)。というのが、1年半以上ウィッシュリストに埋もれていた本 と、パタヘネとヘネパタの違いも分からないまま、カラー印刷、紙質の良さ、遺跡の写真、JVMや GCCといったリアルな単語、教科書チックな雰囲気*を持った本 を衝動買いした理由。昨日アマゾンで Boost本とかも 2冊買ったから、食費が、が、が。

* 帯に「世界最高の教科書が全面改定。……」って書いてある。正真正銘教科書だった。


2009年09月23日 (水) Subversionの嫌なところ - 日記を書く [・w・] はやみずさん < 既に存在するリポジトリの形式はサーバープログラム(svnadminとか)をアップデートしたとしても自動ではアップグレードされないことになってる。明示的にコマンド(svnadmin upgrade)を打つか DUMP&LOADするまで。だから古いクライアントプログラム(svn)がお行儀悪く fileプロトコルでリポジトリを直接読もうとしても(他に原因がなければ)失敗はしないんじゃないかと。濡れ衣くさいので書いた。 <追記@2010-04-21>ワーキングコピーの話だったらそれはアップグレードされる。所詮ただのコピーなんだからクライアントごとにチェックアウトすればいいんですよ。</追記>

最終更新: 2013-04-29T21:18+0900

[SakuraEditor] 矩形選択を普通の選択と同じ操作感に。(Shift+○という操作を Alt+○に置き換えるだけ)

いままでは、Alt+矢印で矩形選択モードに入った後、Altを放して、それから選択範囲の拡大を(矢印で。Shiftは不要)行う必要があった。また、知らないうちに矩形選択モードに入ってしまっていて驚かされることも何度かあった。それら、Altを放す必要や知らぬ間のモード変更がなくなる。

2000年にはそのための布石というか、コメントアウトされたプレースホルダが用意されていた。そのおかげで、全くたいしたことはしてないのだけど、これまで放置されてきた理由なり原因なりを何か見落としてる?


 差分更新

easy_box_selection.rev2.txt (30.6KiB, 2010-04-13)
trunk2@1732に対する差分。
キー割り当ての初期設定の間違いを一つ修正。
折り返し行頭への移動が本当の行頭(改行文字の直後)への移動だったのを修正。

 @2013-04-27 Mocaさんによるパッチ

Sakura Editor / PatchUnicode / #449 矩形選択移動コマンドの追加

俺みたいにありもののコマンドで間に合わせるのでなく、足りないコマンドの実装までされています。

今思うと矩形選択しながらの、(折り返しでない本当の)改行単位での行頭・行末移動は不要だった気がする。プレースホルダはあったけど、使わないでしょう? 改行単位の GoLineEnd自体は、矩形選択と組み合わせては使わないにしても、なくて不便だった(20120227p01.02)ので必要だけど。

残念なのは、既存ユーザーの sakura.iniには Alt+↑、Alt+↓、Alt+←、Alt+→に対する「矩形選択開始」の割り当てが既に書き込まれていること。勝手に設定を書き換えることはできないから、プログラムをアップデートしただけでは利便性の増した矩形選択に気付けない。関連するキー割り当てがデフォルトのときだけ書き換えてしまうのはありかもしれない。アップデート後1回だけ ini書き換えを実行するために、iniにフラグのための項目を増やすことが考えられる。WSHで独立したスクリプトを書く方がオーバーヘッドは少ないが、実効性は著しく下がりそう。別に隠れ機能でもいいけどね。よく使う人ほどこれまでの操作に慣れてるだろうから。ヘルプに2通りの操作があることを書いておけば気付くでしょ。でも、慣れてるけど不便だと思ってる人に気付いてもらえないなあ。俺みたいにリリースノートを嬉々として読む人間ばかりではないだろうし。