/ 最近 .rdf 追記 設定 本棚

脳log[2012-06-22~]



2012年06月22日 (金)

最終更新: 2012-12-05T05:04+0900

[SakuraEditor] InsTextマクロでドキュメントを変更しても(変更)フラグが表示されない。 (BugReport/99) - SakuraEditorWiki

前に自分が引っかかったのと同根。「タブやタイトルバーに変更フラグが表示されるように修正した。フラグ自体は立ってたけど描画が行われていなかったというミス。(20100620p01)

変更フラグを管理してるのは CDocEditor。ドキュメントを変更した関数が SetModified(bool modified, bool redraw)メソッドでこれに通知するが、更新フラグが立ったとき(落ちたとき)に描画が抑制されていると、以後ドキュメントの変更をトリガにしたキャプションの変更機会を失う。キャプションの内容は変数展開、条件分岐を利用して高度にカスタマイズが可能で、キャプションの更新を必要最低限にケチるのは理に適ってる。ではどうするか。描画の抑制を描画の遅延ととらえて、抑制中に加えられた描画に影響する変更を記録して、後でまとめて描画する? Webブラウザが JavaScriptに対して行ってるように? それは大変。マクロ由来のコマンドを描画を抑制して実行してるのは CMacro。かといって CMacroがコマンド呼び出しの前後で描画を適切に維持するのは出過ぎた行為。さっき「キャプションの更新を必要最低限にケチるのは理に適ってる」と書いたけど、描画の抑制をやめるのが一番簡単。だって Charマクロで InsTextのような問題が起きないのは、Charマクロの実体関数が redrawフラグを受け取らないで常に描画を行ってるせいだから。

 余談: InsTextで何をしていたのか。

<2012-06-25> ReDrawマクロの存在を教えてもらったのでちょっと修正。なんでこんな(描画に問題があるときに実行して下さい)コマンドがあるんだか。

現在の編集ウィンドウを再描画します。何らかの原因で画面表示を最新状態に更新したい場合に使います。

【例】 ステータスバーを非表示にしたとき、メニューバーの左側にステータス情報が表示されますが、ファイル名のチップ等で消されてしまうことがあります。そういう場合に使います。

なんで手動でやらそうとしたんだ……。 </2012-06-25> <2012-07-04> ……って、その、メニューバーの左側右端に表示されるステータス情報は、もう消えなくなってるアレだ。「SourceForge.net Repository - [sakura-editor] Revision 1594</2012-07-04>

/** OneTouchIndent.js
 * サクラエディタのマクロ。
 * Tabキーに割り付けて使う。
 * 前の行にならって同じインデント(Tab,Spaceなど空白文字全般)を挿入する。
 * Enterをトリガーにしたオートインデントってイマイチじゃない?
   一段深すぎたり、空行を挿入したかったりするときに削除の手間が必要で。
   このマクロは、Tabキーを押す手間は必要だが、望まないインデントは行わない。
*/

if (OneTouchIndent()) {
	Editor.ReDraw();
} else {
	Editor.IndentTab();
}

function OneTouchIndent() // returns true(done) or false(undone)
{
	// 文字列選択中はインデント文字の挿入ではなく、インデントを行いたい。
	if (Editor.IsTextSelected) {
		return false;
	}

	var caret = eval(Editor.ExpandParameter("({y:$y-1, x:$x-1})"));

	// 前の行にならってインデントの文字と量を決定するので、先頭行では(デフォルトの)インデントを行いたい。
	if (caret.y < 1) {
		return false;
	}

	var thisline = Editor.GetLineStr(caret.y+1);
	var prevline = Editor.GetLineStr(caret.y);
	var previdnt = prevline.match(/^(?:(?![\r\n])\s)*/)[0]; // 行頭の、改行を除く空白文字

	// prevline[0...previdnt.length]
	// thisline[0...caret.x]
	if (previdnt.length <= caret.x) {
		return false;
	}
	if (previdnt.substring(0, caret.x) !== thisline.substring(0, caret.x)) {
		return false;
	}

	Editor.InsText(previdnt.substr(caret.x));
	return true;
}

 @2012-12-05

気付くのが遅すぎるけど、インデントを深くしたいときには意識的にタブキーとスペースキーを使い分けないといけなかった。そういうのを気にせずワンボタンで済ませられたらなお良かった。


2012年06月19日 (火) USBメモリ(TB-BH2/2G/R)を落とした。なくしてからけっこう気に入ってたことに気がついた。がっくり。■どんなんでも役目を果たせるからこそ選ぶ理由が欲しい。代わりがすぐには見つからない。


2012年06月17日 (日) [W53S] 今朝開いたら砂嵐だった。閉じて開き直すと一瞬だけ正常に表示するがすぐに崩れる。パカパカしてるうちに直ったが今度は周辺部の広範囲に白い斑点のようなものが浮き出てきた。昨日の雨がいけなかったのだろうか。バッテリーのは赤い水玉のままだったけど本体の方は真っ赤っかだった。スマホはいらないし、俺は auにとって客ではないようなので、auに今以上の金を落とすのも癪だ。幸いなことにいつの間にか正常に戻っていたのでまだ使える。■ W53Sのパネルとか電池とか電池蓋とかまだ買えるんだね。これは auを評価せざるを得ない。Sony Ericssonは製品ページすら残していない。


2012年06月14日 (木) [ruby-dev:45735] [ruby-trunk - Feature #6587][Open] proposal: adding new methods File.rootname and Pathname#rootname

最終更新: 2014-10-23T14:06+0900

Windows怖いよ。

 X:file.extというファイルと XX:alt.strmというファイル。

Y:\My\Desktop>echo aaa > C:a.txt

C:\a.txtを作成しようとしてアクセス拒否される。(C:a.txtは C:\a.txtと同じ?)

Y:\My\Desktop>cd /d C:
C:\>echo aaa > Y:a.txt

Y:\My\Desktop\a.txtが作成される。(Y:a.txtは必ずしも Y:\a.txtではない!)

C:\>cd /d Y:\My\Documents
Y:\My\Documents>cd /d C:
C:\>echo aaa > Y:a.txt

Y:\My\Documents\a.txtが作成される。(Y:a.txtがさっきの Y:\My\Desktop\a.txtと違う!)

C:\>echo aaa > T:a.txt

T:\a.txtが作成される。(初登場の Tドライブに関しては T:a.txtと T:\a.txtは同じ)

C:\>echo aaa > Z:a.txt

「指定されたパスが見つかりません。」(Zドライブが存在しなくても、Zがファイル名だという扱いは受けません)

X:a.txtは必ずしも Xドライブのルート直下の a.txtにアクセスするわけではなく、ワーキングディレクトリの履歴が影響してる雰囲気。コマンドプロンプトだけでなく irbでも同じ場所に作成された。ドライブごとにワーキングディレクトリがあるとか?カレントドライブという概念。X:foo\barはカレントドライブを上書きする相対パス?

ちなみに、Cや Tや Yが CCや TTや YYだったりすると、それは(ドライブレターではありえないため)カレントディレクトリの CC(TT,YY)というファイルの a.txtという代替ストリームへの書き込みになるみたい。(代替ストリームの内容を確認する簡単な方法は moreコマンドだって)

 / というパスと \ というパス。

大体どちらもカレントドライブの直下を指すみたい。直接 Windows APIを叩いてみてはいないけど。

 @2014-10-23 本当にあった。

=C: =D: など    ドライブ毎のカレントディレクトリを保持(移動したことのあるドライブのみ)


2012年06月13日 (水) Fx13.「ライブブックマークを読み込んでいます…」このメッセージを何度読んだだろうね。ブックマークツールバーの上でポインタを左右に動かすと*必ず*リストの先頭に表示され、コンマ1、2秒で消える。チラチラガタガタする表示がうっとうしい。それは見せる価値のある情報か?常に最新なのであればフィードにアクセスできないときだけ知らせたらいいだろう。■(無題)タブはなくなってしまったん?内容を表示するしないの設定に関わらず「新しいタブ」というページがタブの履歴の先頭にエントリしてる。白紙のページの履歴なんていらんのだけど。あってもそんなに邪魔じゃないと言われればそうなんだけど、ローギアに入ってるのにまだシフトペダルを下に踏めるような気持ち悪さ(※DR250Rは違ったよ)。


2012年06月10日 (日) 感想。「以下のJavaScriptのコード断片は、とある公共機関のWebサイトで利用されていた ものです。これを見て気付いた点について、自由に書いてください。」なんで URLのハッシュマーク以降から切り出したものが urlという名前の変数に格納されて same originチェックを受けるんだ、location.pathnameの間違いじゃないのかと疑問が渦巻いていたのだけど、フラグメントでフィードの URLを指定するというのがサイトの仕様らしい。気持ち悪い。(結果的にサーバーで無視されてクライアントで処理されるにしても)パラメータで指定すべきだと思うし、(ドメインより下とはいえ)あらゆる URLを指定できるべきではないし、パラメータでページの一部の内容を切り替えられるという汎用性が嫌いだ。ページの目的が曖昧になって。フィードが正常に読み込まれるときと読み込めないとメッセージが(なぜか打ち消し線を伴って)表示されるときではない、第3の状態が残されてるのも気になる。潰したい。3つ目。url.match( /^\/[^\/]+/ )を /^\/[^/]/.test(url)にケチりたい。■(一日たって)セキュリティ的にはどうか。パラメータがなければページの内容が不完全だとか、URLをいじくることでページを改変できるとかは気に入らないが、寄せ集めるコンテンツがすくなくとも同一ドメイン下にあることが担保されてるなら、ページの内容を制作者の管理下に置くことが(難しくとも)不可能ではないだろうし、問題があるとはいえないのではないか。


2012年06月09日 (土) お前そんなとこでなにぼそぼそひとりごとつぶやいてんだよってなもんだが……。「fixed error on empty subtitle. · 1d9cc8a · tdiary/tdiary-core · GitHub」section.stripped_subtitle_to_htmlが nilを返しうるというのが果たしてありなのかどうか。たとえば、toStringメソッドは空であれ何であれ必ず文字列が返ってくることを期待されてると思うが、それと同種のメソッドだと思うので。


2012年06月06日 (水) Windows 8は好きとか嫌いとかではなく、いらない。タブレットOSとしてならありだとしても PCには入れたくない。Linuxのどれかが Vistaからの受け皿になってくれると嬉しいのだけど……(数年後に)。■なんだよもう。「Visual Studio Express 2012では一般的なWindowsアプリ開発ができない | スラッシュドット・ジャパン デベロッパー」→「Visual Studio 2012 Express、デスクトップアプリの開発に対応する予定 | スラッシュドット・ジャパン デベロッパー


2012年06月01日 (金) こういうこと?20120318<<「しかしこの宇宙にはもう三つ力があるのだ。電磁気力、強い力、そして弱い力。」■同じページからこの文。「その着想を理論にまで昇華したのが特殊相対論。いや、これ名前悪いよなあ。光速絶対論の方がいいよなあ…」よくぞ言ってくれました。


2012年05月31日 (木) [SakuraEditor] セッション復元機能。ファイルパスに加えてグループ番号とタブオーダーを MRUに記録するとして、順番に閉じたとき(→最後の1ファイルだけを再開)と一度に全エディタウィンドウを閉じたときをどう区別するか。アクティブなウィンドウの一番左のタブを[グループID,タブオーダー]=[1,1]として、これを最初に保存して、再開するときはリストの最後から[1,1]までを開く、とか? MRUにセパレータを入れようか? MRUの最後からいくつまでがひとまとまりかを記憶するキーをひとつ追加しようか?■グループごとにウィンドウの位置とサイズと Z-オーダーとアクティブなタブを復元してほしいだろうな。設定で決まった位置・決まったサイズにエディタが開くようにしてるけど、複数のウィンドウが同じ位置に重なって表示されても困るし。■カーソル位置を常に復元してほしいかな。設定に従うべきかな?■ファイル引数付きで起動されたときはどうかな?復元した上で、設定に従って新しいウィンドウで開くべきかな。■レナが「~かな。~かな。」っていうのは「ひぐらし~」だからだったんだね。

本日のツッコミ(全1件) ツッコミを入れる

名無しさん無題ドキュメントや未保存のGrep結果等も保持したままセッション保存されるとありがたいです。 具体的にはEmEdit..


2012年05月30日 (水) 「REMOTE_ADDR=182.48.43.79;REMOTE_HOST=www10285u.sakura.ne.jp」からスパムが来たぞー。


2012年05月29日 (火) どうしてスペースがあるからってすべての靴を飾ろうとするんだろう。履いて出ることを考えないんだろう。俺は帰ってきたときに次に履く靴を出して脱いだ靴をしまってるっていうのに。■石でも置いておこうかな。■こういうスペースを、不必要に埋めるんでなくもっと拡大して靴箱をひとつ片付ければいいのに。


2012年05月28日 (月)

最終更新: 2012-06-07T01:42+0900

まだ10ページほど読んだところだけど、なかなかに読み進めるのがつらい。

 1.「犯行声明を行う」(10ページ)

声明は予告(する)や宣言(する)と違って動詞になってるとは思わないのでどうにもイメージが漠然としすぎる。俺は今も認めていないが、大学あたりでは俺が中高生の頃にはもう私語が動詞化(私語する)してたらしい。新聞の寄稿欄でそう読んだ。自分が少数派かもしれないとは思う。「お名前よろしいですか?」と言われて真剣にフリーズしたこともあるし。(尋ねられてるからには判断を下さねばなるまい。しかし……名前が良い?悪い?どういうこと? もちろん目の前の名簿に名前を書けということだったんだけど、一言一句に拘りすぎて応用がきかない理解が遅れる)。

 2.「僕」って誰?

浜村渚を「浜村」と指示し、瀬島直樹を「瀬島」「彼」と呼称する第三者視点の話だと思っていたら、11ページで突然「僕は、脇に置いてあった箱から二つのルービックキューブを取り出し、首をかしげている彼女の前に置く。」と、事前の描写もなく第三の人物「僕」が現れ、僕の一人称視点だということが明らかになった。誰ですか?

 3.読者としてのスタンスに迷う

少年犯罪が急増する昨今、政府は義務教育の内容を一新した。他人を尊重し弱者をいつくしむ心を育成するため、芸術科目の比重を多くしていったのだ。必然的に他の科目の内容が次々と削られることになり、「物事を数値化し、数理現象・物理現象など事実だけを重んじる科目は、心を尊重し他人をいつくしむ人間性を否定しうる」という理由から、理数系科目の授業は大幅に削減されてしまった。

という設定を、「トンデモである。数学はもはや欠くべからざる社会の基盤であり、あらゆる分野の基礎としてその重要性は増す一方だ」という風に自分は見ていた。 つまり、数学テロ組織・黒い三角定規の「私は、義務教育における数学の地位を向上させることを要求する」(7ページ)という大義に共感を持っていた、ということ。 ところが、「高木源一郎(通称、ドクター・ピタゴラス)という元数学者が主導する「黒い三角定規」。彼らの活動により、「数学はテロを育成する学問」という考え方が蔓延し、義務教育から数学は姿を消してしまった」(14ページ)という。組織の目的に反して事態は悪化している。 また、15ページ目で早々に人が死に、犯行声明が黒い三角定規の幹部候補から出される。「弁護士が二人、姿を消したのだ。そのうちの一人、佐々木弁護士は、行方不明になった次の日の早朝、遺体となって帰ってきた。弁護団の本部事務所に棺桶に納められて届いているのが発見されたのである。死因は、首を圧迫されたことによる窒息死だった。」(15ページ)。「最近、ボクたちの神聖なる活動が、心ない弁護団によって、邪魔されてる。よくないよね。だって、弁護士の仕事は本来、悪を挫くことだろう? ボクたちの活動は、究極の善。世界で一番美しい、数学の国を作り上げようとしているんだから」(16ページ)。 犯行声明は一切の共感を拒絶する内容で、これは、冒頭のトンデモ設定(だと読者である自分が考えていた)を作中人物自らが行動によって肯定している。手段が絶対的に誤っている(※人が死んでる)ために大義が成就する筋道も想像できない。著者は読者の数学への興味をかき立てておきながら物語の設定を肯定し数学教育が不要だと結論したいのだろうか。

シリーズ2冊目の、最初の10ページしか読んでないので早とちりなのかもしれないが、そうだったとしても不親切だとはいえると思う。