/ 最近 .rdf 追記 設定 本棚

脳log[2013-04-14~]



2013年04月14日 (日)

最終更新: 2013-04-15T03:23+0900

[SakuraEditor][Ruby] サクラエディタBBS[7601]

  • Editor定数の参照で落ちる。他の名前なら問題なし。
  • $Editorとすることで Editorオブジェクトが得られる。
  • マクロコマンドは先頭を小文字にしないと呼べない。(TraceOut→traceOutなど)
  • Editorオブジェクトに SCRIPTITEM_GLOBALMEMBERSフラグが付いてると、Rubyマクロのばあい ITypeLibが必要になる。(ITypeInfo->GetContainingTypeLibを実装する必要がある)
  • ITypeInfo->GetFuncDescがマクロコマンドの数(271)×3回、マクロを実行する前に呼ばれる。
  • 3回目に取得された ITypeInfoがリリースされない。
  • Editorオブジェクトもリリースが足りない。
  • 実行の成否にかかわらず一回につき 100KBぐらいメモリ使用量が増える。
  • リソースリークをなくしたければ参照カウントを捨てて、マクロ実行の前後ですべてのオブジェクトの作成・破棄を行うのが確実。
  • 12回目のマクロ呼び出しが必ず失敗する。例外が発生しているもよう。
  • TYPEATTR.cFuncsの数を減らしてマクロコマンドの数をごまかすと 11回を超えて成功するようになったり。リリースモードにしても回数は変化する。
  • 失敗しても繰り返しマクロを実行してるとときどき成功する。
  • マクロ実行に失敗するとき、IActiveScriptParse->ParseScriptText直前の IActiveScript->SetScriptState(SCRIPTSTATE_STARTED)呼び出しから足取りがつかめなくなる。
  • SetScriptStateを飛ばして ParseScriptTextを実行するようにすると例外はなく、正常にエラーメッセージ("実行に失敗しました")が表示される。なんにせよ失敗。
  • スクリプトエンジンをマクロ実行ごとにきれいに片付けられていれば、○回目から失敗みたいなことは起こらないと思うんだけど。なにが継続しているのか、あるいはこちらの何が破壊されていってるのか。

どうせ Rubyマクロはコマンドの先頭を小文字にする必要があって他のマクロと同じように書けないのだし、使われてないからこれまでに書かれたマクロ資産との互換性を図る必要もないし、例外とリークの元になり実行前の負荷も発生させる SCRIPTITEM_GLOBALMEMBERSフラグを落とすのがいいと思う。ScriptEngine名が "RubyScript." で始まるときとかに限って。

SCRIPTITEM_GLOBALMEMBERSフラグを落とすと $Editor.insTextだけのマクロは何十回でも問題なく実行できてるけど、それだけで安心してよいものか。Editorと書いたときのように(数字で始まるマクロコマンドを呼んだときも?)初回で確実に落ちるというだけならいいけど、何回も実行してるうちに運が悪ければ落ちるというのがあれば(たち)が悪い。


2013年04月12日 (金) うちの母は USBメモリの中身を PCにコピーするのもおっかなびっくりなのにスマホに興味津々。俺の意見は「あんなのはオモチャです」。目の前に iPhoneを持ってる人がいるんだからいっぺん触らしてもらえ(そして絶望しろ)って言ってるんだけど、まだみたい。■スマホなんてお客様気分でいてなんか知らんけど悪いようにはならへん(ようになってるのが当然)でしょうなんて甘い期待をしてたら痛い目にあう(知人にも迷惑をかける)ものだと思ってるんだけど、考えすぎなんだろうか。シュレッダーとか買うぐらい神経質な面があるのに(だって住所は公開情報だよ?精々ひと束集まって幾らのものではないの?俺にはその刃物の方が大きいリスクに見える。せめて手動にしようや)、薬局で Tポイントカードを作るのをためらったりはしないんだよ。アプリの作者の悪意を見抜くことはおろか存在を疑うこともできないと思うね。■■■学校に上がる前の子供が iPhoneでフリックして写真を送ってたりする。負けた。ダブルクリックのときもそうだったんだけど、あれは、こうするとこうなるっていう確信がないとできない操作。俺はまだタッチ操作に確信が持てないでいる。


2013年04月11日 (木) 【訃報】ヤマグチノボル先生」■グリーングリーンとゼロの使い魔の人(という認識)。サービス精神が旺盛でしかもそれが奏功するもんだからルイズコピペみたいなのが一人歩きするけど、読まず嫌いはもったいない。


2013年04月09日 (火) マニュアルが置いてあったのでひと通り読んでみた。重複やどうでもいいこともわりと書いてあるので見た目ほど大変ではない。■最近の車って難しい(昔の車を知ってるわけではないけど)。ヘッドライトのウォッシャー液を出す方法がわかりますか?点灯中に長押しと覚えれば無理なく使えるのかもしれないが、余計な些事に煩わされるよりぬれぞうきんで拭くだけで済ませたい。■寒冷地で駐車するときエンジンを冷やしすぎないようにボンネット(とは書かれてなかったけどエアインテークのこと)を風下に向けるとか、+極どうしをつないだあと元気なバッテリーのマイナスから伸びるブースターケーブルを死んだバッテリーのマイナスにつないぐのではない(プラスにつなぐのでもない)とか、スペアタイヤを駆動輪に付けないとか、スペアタイヤで走るときはヒューズをつないで AWDから 2WD(前輪駆動)に切り替えるとか(必然的に、前輪がパンクしたときでもスペアタイヤは後輪に付ける)、冷却液を補充するときターボ車は補助タンクの方に足すとか、ハンドル切りっぱなしでもぞもぞを長く続けてはいけない(パワステが何かを消費している?)とか、ホイールナットを緩める/固く締めるときジャッキは下りているべきであるとか、自車より重い車を牽引するのはやめようとか、オーバーヒートしているが液漏れはしていない(=白煙があがっていない?)ときはエンジンを切らずに(ファンや循環を止めないために?)温度低下を待つだとか、姿勢制御(トラクションコントロールを含む)を切るのはぬかるみから抜け出すようなとき(そのときだけに限るべき)だとか、HIDは発熱が少ないので……(忘れた)とかいうのが、へーと思って半日たってもまだ覚えてること。■アクセルペダルを踏むのを面倒くさがる装置なんて付いてるだけで怖いんだけど。ブレーキに足を置いてそれだけに集中できるともいえるだろうけど、同意はしない。意識のない時が問題。デフォルトが停止状態か、デフォルトが走行状態か。■慣れない左足でブレーキを踏むのはやめようと書いてあった。慣れないというのが唯一の理由なんであれば(それしか書かれていなかったのだが)、(A/T車で)左足ブレーキを忌避する理由はないも同然だと思う。ただまあ、とっさの状況でどういう反応の違いが見られ何が起こるかで選ぶべきだろうね。a.右足でアクセルをちから一杯踏む。b.両足でアクセルとブレーキをちから一杯踏む。c.アクセルから足をはなして同じ足でブレーキを踏む。d.左足でブレーキを踏んで右足をアクセルからはなす。■■■オプションやグレードで違うだろうけど、唯一見つけたスペックは総重量(液体込みってこと?)1.7トンというものだった。1.3トンでも十分重い(これが許容上限。GTOとかスープラとかありえないよ)と思うのになー(お前の車じゃないけどなー)。■■■俺はね、ミニをおすすめしたんだよ。パリジェンヌにお似合い(テキトー)のミニを(最近のは衝突安全性能のためか全然小さくないけどなー)。6MTのクーパーSとか気に入ると思ったんだよー。■軽に乗る女は DQN認定されやすいし、小さい車では煽られたり割り込まれたり不快な思いをすることも多いかもしれない。車の好みが全然違うというのははっきりしてるが、仮にそういうのが多少なりとも影響したとしたら残念だ(周りのドライバーが)。


2013年04月08日 (月) [SakuraEditor]「PatchUnicode#377 t_min/t_max関数のinline化」■ windows.hが定義する悪名高い(らしい) min/maxマクロを回避する NOMINMAXも知らなかったぐらいなので純粋な疑問なんだけど、std::min/std::maxを t_min/t_maxに置き換えるこの変更の目的はなんだろう。windows.hに固有の NOMINMAXを付けたい/外したいわけではないみたい。コンパイラが信頼できない・コンパイラの差異を吸収したいということだろうか。標準の語彙を使用しつつダメなコンパイラを正す手段を講じる方が、読みやすいし未来に渡って使い分けが不明な std::min/std::max/t_min/t_maxが入り交じるおそれがなくていいと思うんだけど。■関数が作成されたときのコメントがあった。「2007.10.18 kobake テンプレート式 min とか max とか。どっかの標準ヘッダに、同じようなものがあった気がするけど、NOMINMAX を定義するにしても、なんだか min とか max とかいう名前だと、テンプレートを呼んでるんだかマクロを呼んでるんだか訳分かんないので、明示的に「t_~」という名前を持つ関数を用意。」t_min/t_maxという名前は、マクロでなくテンプレートの min/maxですよという意味だった。std::プレフィックスでは代わりになりませんか?■t_min/t_maxが作成された目的を否定しちゃうけど、明示的に(テンプレート)関数バージョンを使おうという人は t_min/t_maxがあろうとなかろうとマクロ引数の多重評価の罠には引っかからないと思う。そういうポカをやらかす人こそ t_min/t_maxの存在や目的に気付かず素直に min/max(マクロかもしれない!)を呼ぶだろう。


2013年04月07日 (日) ヤマトよ。ポストにつっこんでさえおけば文句ないんだろ、という身内に向けた言い訳の結果でしかない運用をやめろ。ひどい状態だった。俺は敷地にはいってきてドアにぶら下げておく佐川(※時々に限る)とヤマトのやり方を評価してたんだ。品物は安全でポストは塞がらず再配達もないのを。


2013年04月06日 (土) 下駄の歯とか鼻緒って消耗品なんね。一年で使い捨てることはできないから、補修の手当て(自分でやってもいい)がないと通販では買いにくい。


2013年04月05日 (金) (どこへとなく) insane... 強調すると発音に合わせてスペルが変化するとか、自分の知らない単語であるとか、そういう可能性もあるか……ないか。■■■(どこへとなく)(日本の学校英語しか知らないが)自分だったら while posting a commentって書くかな。duringを使うことって言われたら、during the wait for comment postingとかなんとか。


2013年04月04日 (木) Firefox20がリリースされましたが、日本語句読点のありえない折り返しは抑止されているでしょうか。目的があって word-break:break-all しているけれど、だからといって行頭の「、。」と、「。」のみの行というのはありえない。欲を言えば開きかっこ直後の折り返しや、閉じかっこ直前の折り返しも。■リリースノートから。「新機能 ファイルダウンロードのユーザインターフェイスが新しくなります。」 UIを新しくするのが目的だったんだろうか。これはそういう書き方。何を改善する意図をもって UIを誰にとってもなじみのないものに改変したのかを書くべし。(書いてもらわないとデメリットしかわからないと言っている)■■■「~を開く」ダイアログでやっと Enterキーが期待通り働くようになった。そこから開く「プログラムの選択」ダイアログでは相変わらずキャンセルボタンがデフォルトで、プログラムを選んで Enterという意図の明確な操作が無視されるがね。


2013年04月03日 (水) 耳障りと耳触りの書き分けについて。『代表的日本人』に「耳触りがよくても」という一節を見つけた。


2013年04月02日 (火) 不在で持ち帰った「57 定形外・ゆうメール」の保管期限が迫ってますよーと、通信事務郵便(依頼信)なるハガキ大の紙がポストに入っていた。肝心の物はメール便なんだからその手間で投函していきなさいよ。■メール便で時間帯を指定した再配達依頼ができるをしなければいけないのは求められてるサービスではないよ。とっとと持ってくりゃあいいんだ。こんなのにヤマトの仕事を奪ってほしくない。競争が成り立ってるのがおかしい。■(あわせて読みたい)「ヤマト運輸の正社員(59)、メール便2119通と宅急便19個を自宅に放置 「体力的にきつくなった」 : ニュー投」■■■とどいた物はメール便ではあるものの、10も集まれば赤いバイクの箱がいっぱいになってしまうような、うちのポストには絶対に入らないような、そういうものだった。だからといって言うことは変わらない。■できもしないことをダンピング価格で請け負うようなまねは(根拠があって言うのではなく単なる一般論ですが)お互いに不幸なのでやめてください。


2013年04月01日 (月) 世のエディターはなぜ、それがまるでルールであるかのように 「上を検索」「下を検索」ばかりなのか、不思議でしかたがありません。 素直に考えれば「先頭からの検索」がデフォルトで、 「上を」や「下を」こそオプションであるべきだと思うのですが」■すごく、わかる。検索を干し草の中から針を探す作業だとすればキャレットのある位置などなんの手がかりでもないのだし、キャレットによって検索範囲が二つに分けられることで検索漏れが生じうるデメリットの方が大きい。Ctrl+Fで始める検索は文書の先頭からの検索でよい。二番目以降の検索結果は F3で手に入るし、目の前の文字の次の登場位置は選択して Ctrl+F3と使い分けがある。ダイアログを出して行う改まった検索はいつでも先頭からで何ら困らないし、キャレットの位置という隠れたパラメータが何よりわかりにくい(これが検索漏れを招く)。■というわけで「先頭(末尾)から再検索する」オプションにチェック。■検索位置が巻き戻ったときはメッセージだけでなく音も出すとなお良い。メッセージの出る場所と注目領域は必ず違ってるから。Firefoxでスクロールバーの位置をにらみながら何度 Ctrl+Gと Ctrl+Shift+Gでいったりきたり無駄に検索を繰り返すことか。


2013年03月31日 (日) 歩行者信号は赤を点滅させるべきべし!■点滅というのは時間変化を観察しなければ点灯や消灯と区別できない劣った伝達手段である。■誤認は避けられず、誤って点灯と認識しても安全であるよう配慮が必要。■車用の信号には黄色がある(点滅を使用しない)し、交通量の少ない場所・時間帯で用いられる点滅信号も、青と黄の点滅でなく黄と赤の点滅である(許可してから注意を促すのでなく、制止してから許可を出している)。■歩行者信号は青を点滅させるのでなく、赤を点滅させるべきである。■■■自転車に乗っていて、青だな、と前方の信号を最初に確認したなら交差点に着いたとき信号は赤になっているものだ、というのが経験からくる認識。それなのに、まさに自転車横断帯に乗り出そうとした瞬間に信号が赤だと気がついてくるりと進路を左にとる(そして転回して戻って信号待ち。後ろを確認しない方向転換はしたくないが緊急なので)ということがしばしば起こる。最後に青だと確認してからありえない早さで赤に変わったように感じるのだが、可能性からいえば明らかに点滅を点灯と取り違えている。■最近は LED信号機に切り替わるついでに設置位置が高くなったりして信号が視界から消えがちなのもよろしくない。MTBフレームでバーハンドルのクロスバイクだから全然前傾姿勢ではないにもかかわらず。最近になって警視庁がやってるように自転車横断帯を取っ払うなら、歩行者信号を使うのが歩行者だけならどちらも問題ではないけどね。■■■ガソリンの値段を点滅させるのはなんでだろうね。値段が表示されるまでの時間でもうほとんど通り過ぎてんだけど。(80円台は遠い昔。今や150円台。さらに円安傾向。EVと原子力発電が日本の未来だと思ってたのに東電は何やってくれちゃってんだろ。最初が関電でなかったことに感謝すべきなのか)