/ 最近 .rdf 追記 設定 本棚

脳log[2012-07-15~]



2012年07月15日 (日) あっちーと口にしながら自転車をこいでると、スピキューールと脳内でエコーが返ってくる。


2012年07月11日 (水) ミンサガをやってる場合ではなかった。(絵本を読んだだけの)ナイツをリッピングしてプレイしてみなければ。「セガ『ナイツ』を移植したセガ上海の開発秘話が胸熱すぎると話題に - ゴールデンタイムズ


2012年07月09日 (月) 毎日使ってますよー。もはやたまに読む紙本のページを押さえるのが面倒ですよ-。

最終更新: 2012-07-23T01:04+0900

[SonyReader] スクリーンショット。PRS-650のページ履歴(cacheExt.xml)を削除するの図。

PRS-650のページ履歴(cacheExt.xml)を削除するの図 cacheExt.xmlの(historyタグを除いた、肥大化する前の)サイズは 155KiB(SD32GB)と 129KiB(MS16GB)と 18KiB(本体)。これが簡単に2倍3倍のサイズになる。少し前には一冊たりともスムーズに読めなくなったのだが、本体に保存した定期購読をほとんど削除したのが功を奏して、今は少なくとも3冊までは支障なく読める。

 本を何冊か追加したときに行う儀式。

  1. マイコンピュータの READER MSと READER SDを右クリックして取り出しを選ぶ。
  2. メモリーカードを抜く。
  3. トレイアイコンから Reader(USBマスストレージ4個)の接続を切る(切ろうとする)。
  4. OKだとメッセージが出たら USBケーブルを抜く。
  5. 未読コレクションと定期購読を開いて本体に保存された新規書籍(新規ニュース)のサムネイルを作成させる。
  6. メモリーカードを片方だけ挿して5と同じことをする。
  7. メモリーカードを抜いて、Readerの画面更新が終わるのを待って、もう片方のカードを挿して同じことをする。
  8. 電源を切って、両方のカードを挿して、祈りながら起動する。

この通りにやらないと再起動のループに突入してせっかく満充電にした電池の目盛りが減ってしまうし、この通りやっても一度か二度は勝手に再起動してしまうものだ。


2012年07月08日 (日) iTMSその他の売り方がどうであるかはともかく、俺の持ってる iPodのシャッフル再生といえばアルバムシャッフルだ。複数のアルバムをランダムな順番で再生するがアルバム内のトラックの再生順は1番から。そういう再生のしかたがあるのかと大いに感心して気に入ってる。■その iPodは残念な Apple製品の例に洩れずへなちょこリポ電池の道連れでほとんどガラクタだが。■ VGF-WA1のリモコンには次の(前の)フォルダボタンがある。フォルダってのはだいたいアルバムのことで、隣のフォルダは同じ人の別のアルバムなのが普通。フォルダリピートと合わせるとなかなか使えるボタン。


2012年07月07日 (土) [SakuraEditor] DirectWriteの続き。文字の描画結果をビットマップとして保存することで DirectWriteのハイレベルな APIをスタンプにすることができた。まともな速度で。■「BugReport/101 - SakuraEditorWiki」同じフォント(Consolas)を指定しても範囲内の一部の文字が表示されたりされなかったりするのよね。表示されるのは DirectWriteを使った方。■ビットマップでなく D2Dサーフィス(っていうの?)に書き込む方がハードウェアアクセラレーションが期待できてスケーリングも容易そうで正道なんだろうけど、改行マークとかスペースの代替表示とか選択表示とか諸々すべての移植が面倒なのであった。■こういうときは「諸々すべて」を具体的に列挙してみるのがとっかかりとしてよさそうだ。

最終更新: 2013-05-26T23:26+0900

Re:読めないとはこういうこと→勉強できない子をあぶりだす5つの質問 読書猿Classic: between / beyond readers

この5つの文章は難しい。この文章を読んで思うのは、自分にとって国語(日本語)と論理性がまったく結びついていない*ということ。母国語であるがゆえに考える間もなく言っていることの表層は解る。背後の論理まで理解できなくてもわかったつもりで読み流してしまう。あるいは興味が字面に集中していてその意味や意図を読み取る意思に欠けるという個人的事情もあるか。算数の文章題を解くつもりで頭を切り換えて、立ち止まりながら振り返りながら「ねずみ>犬」と頭にメモを残しながら読まないと理解できない。これが口頭だったらどうか。俺はバカだ。

* そのせいで国語のテスト(センター試験を含む)では余計な苦労をした気がする。だれも問題文中に根拠を探して論理的に妥当な解答を用意するものだとは教えてくれなかった。ルールを知らずにゲームをプレイしていたようなもので、そんなアンサガをよく放り投げなかったものだ。


2012年07月05日 (木) そろそろ PCと PS3の起動がはばかられる暑さになってきた。寝苦しい。PRS-650にますます活躍してもらうとしよう。今はすぐそばで両前足を投げ出して伸びてるにゃんこも涼しい部屋へ出て行くだろう。現金なやつだからな。


2012年07月04日 (水) (7月3日の日記) Amazonの Wishlistの購入・未購入フィルタが壊れてる。以前に購入しましたと表示されるにも関わらずいくつかの商品が未購入の方に現れる。


2012年07月03日 (火) プログラミングは名詞と動詞を定義して文章を書く行為だ。その観点では C++は言語が強要するノイズが多すぎて読むのに適さない。げんなりする。■複雑さを前にして自壊しないために構造が必要だといっても。ライブラリを書くための言語だといっても。


2012年07月02日 (月) これは何に対して文句をつけたらいいのだろう。Firefox13?RadeonHD6850?スムーズスクロールで画面の真ん中近くに亀裂が走る。読もうとしてるのに……。


2012年07月01日 (日)

最終更新: 2012-07-01T14:27+0900

[SakuraEditor] CEditView::IsSearchStringという無茶な関数。

  • 検索条件を thisで与え、検索対象を引数で与える。(なぜ検索対象が可変?そのせいで対象となる文字列(連続したバッファ)が必要で、将来的に複数行検索に対応できない)
  • 仕様(出力)が検索オプションで変わる。
  • 検索コードを呼ぶのでなく自分でマッチ判定をしてる。(コピペコード)
  • 検索語ハイライトを行う CColor_Foundからしか呼ばれていない。
  • (関数の目的から)一文字一文字呼ばれることを想定しているが、検索情報を蓄えたりせず(できず)、その場その場で判断している(無駄が多い)。CColor_Foundの方が、行が変わるごとに通知があり行末に向かって順次実行されることがわかっているぶん戦略的に動ける。

というわけで、CEditView::IsSearchStringからコピペコードを廃すると CColor_Foundが知りたがっている何番目の単語がマッチしたのかを知るためにさらなる検索が必要になるにもかかわらず、CEditView::IsSearchStringという変態のために仕様を決める必要は全然ない気がしてきた。仕様ってのはこれの→「sakura-unicode:1830」「複数単語検索のブックマーク・Grep対応 - ID: 3539115」。CEditView::IsSearchStringには消えてもらって CColor_Foundと CSearchAgent::SearchWordの組み合わせで何とかすべき問題ではないかと。SearchWordだと検索結果が改行をまたぐようになってもそのままで適応する利点もある(CColor_Foundと CColorStrategyの方には対処が必要だが)。


2012年06月30日 (土) ミンサガ3週目終了。実機を含めたら6週目。おかしいな GT5をやってるはずだったのに。


2012年06月23日 (土) [GT5] IAライセンス取得。全銀。全金は精神がささくれだつのでまだまだ取りかからない。■ G27は GTFPみたいにモーターを逆回転させる音がしないらしくてすごくすごくうらやましい。


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

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