最終更新: 2009-09-05T04:50+0900
そりゃあそうでしょ、PS/2なんだもの、と思ったんだけど
この問題を解決するためのモジュールは、Windows 2000 日本語版サービスパック 3 以降に含まれております。
ええー。
最終更新: 2009-09-04T06:13+0900
5日遅れて衝動買いした Excellioに遅れること 3日、Majestouch(黒軸=Linear) が到着。
20090830p01で書いたように、Excellioを USB->PS/2変換コネクタ経由で繋いでみてから M/Bがおかしくなって PS/2ポート(マウス用=緑色)に繋いだトラックボールが使えなくなっていた。そしてこのキーボードも……。ところが、BIOSセットアップでのことをふまえてマウスとキーボードを入れ替えて繋いでみたら、どちらも使えた。色の組み合わせが違っていて気持ち悪いけど、それだけなので使えて幸い。問題が起こったついでだからと BIOSをアップデートしてたんだけど、それでは解決しなかった。
出尽くしていて目新しい感想もないので箇条書きで
Excellioと甲乙付けがたいけど、コストパフォーマンスは Excellioの方が 3倍良い。パンタグラフに違和感がなければ、箱つぶれ Excellioおすすめ。
資料 > スイッチ・キートップガイド構造
最終更新: 2010-06-22T11:46+0900
初歩の初歩ですよ。
vector<int> v(99); for(int i = 0; i != (int)v.size(); ++i) { }
みたいなのがあって(俺が書いたんじゃないよ)、ひょっとしたらキャストがなくても問題ないのかもしれないし、それがないと警告(符号付きと符号なしの比較がうんたらかんたら)が出るのかもしれないけど、(int)って書きたくないよね。static_cast<int>()にしろっていう問題でもなくて。iの型を unsignedにするのも若干のアドホック感がある(なんのための typedef)。かといって v.size()の戻り値の型(vector<int>::size_type?)をコピってくるのも嫌だね。たとえば(そんなキーワードはないけど) varを使って
vector<int> v(99); for(var end = v.size(), i = 0; i != end; ++i) { }
みたいに書きたいし、コンテナの型を何度も書く代わりにそこにある、型付けされた変数を使ってこう書きたい
list<int> l(99); for(type(l)::iterator it = l.begin(); it != l.end(); ++it) { }
C++のことだし方法はあるはずだけど……。(typedef list<int> hoge; はコンテナの型(hoge)を見つけてこないといけないのは同じだし、俺俺タイプをいちいち命名したくもないし)
■_ をち
2chにはせいぜいautoマンセーと0b論争がお似合い
type(l)::iterator
の方も……N2971: Core issue 743: decltype(...) name qualifiers delctypeをnested-name-specifierで使えるようにする変更。簡単に言うと、delctype(T)::typeということができるようになる。 これは、日本から送った意見だ。だからどうということはないのだが。何を隠そう、信仰と勇気で有名なあの人が発見した問題だったはずだ。
「信仰と勇気で有名なあの人」って、すぐ上で auto
に関してリンクしたとこの中の人でしょう。decltypeが、varに対する autoのように自分の希望をかなえてくれる本物のキーワードだってことは C++0xに関する記述を断片的に目にするにつれ知っていたけど、最初から名前を修飾する目的に使用できたわけではないとは知らなかった。行動を起こした人がいるのだ。これはもう足を向けて寝られない。
最終更新: 2009-09-02T23:44+0900
キーワードファイルなんかはみんなでいじくって改善するのにちょうどいいものだと思ったら、やはり、CodeReposにあった。ただし PHPのみ。
キーワードの羅列には興味がないけど(php-mkkwd.phpは別)、正規表現キーワードは共有して他人のも見てみたいなあ(楽ができるから)。javascript_re_keywords.rkw。Ruby_re_keywords.rkw。
最終更新: 2009-08-31T09:35+0900
今のバージョンは 0.61。とりあえず気付いた点。
こんなエラーも出た。
Just-In-Time (JIT) デバッグを呼び出すための詳細については、 ダイアログ ボックスではなく、このメッセージの最後を参照してください。 ************** 例外テキスト ************** System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 場所 AeroSnap.Application.SnapManager.SnapController.SnapTimer_Tick(Object sender, EventArgs e) 場所 System.Windows.Forms.Timer.OnTick(EventArgs e) 場所 System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) 場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 読み込まれたアセンブリ ************** mscorlib アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll ---------------------------------------- AeroSnapApp アセンブリ バージョン: 0.6.1.0 Win32 バージョン: 0.6.1.0 コードベース: file:///C:/Program%20Files%20(x86)/AeroSnap/AeroSnap.exe ---------------------------------------- System.Windows.Forms アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Configuration アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- mscorlib.resources アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll ---------------------------------------- AeroSnap.Application アセンブリ バージョン: 0.6.1.0 Win32 バージョン: 0.6.1.0 コードベース: file:///C:/Program%20Files%20(x86)/AeroSnap/AeroSnap.Application.DLL ---------------------------------------- System.Windows.Forms.resources アセンブリ バージョン: 2.0.0.0 Win32 バージョン: 2.0.50727.4016 (NetFxQFE.050727-4000) コードベース: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll ---------------------------------------- ************** JIT デバッグ ************** Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、 またはコンピュータ (machine.config) の構成ファイルの jitDebugging 値を system.windows.forms セクションで設定しなければなりません。 アプリケーションはまた、デバッグを有効にしてコンパイルされなければ なりません。 例: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、 ハンドルされていない例外はすべてコンピュータに登録された JIT デバッガに設定されなければなりません。
最終更新: 2009-11-15T05:11+0900
188 :不明なデバイスさん:2009/08/03(月) 17:58:15 ID:Q6o7dXxt 好みがあるだろうからハッキリ書いておくと。 往年のThinkPadやDynabookのキーボードが好きだったという人。 こういう人はエクセリオ買ったら幸せになれる。 192 :不明なデバイスさん:2009/08/03(月) 18:45:23 ID:Q6o7dXxt 逆に言うと。 往年のThinkPadやDynabookのキーボードが嫌いだったという人。 こういう人がエクセリオ買うと不幸せになる。 193 :不明なデバイスさん:2009/08/03(月) 21:26:29 ID:0MB6rQRJ ThinkPadって一緒くたで言ってるけどどのThinkPadだよ。 TP600か?iシリーズの1200か?X32か?S30か?全部違うのわかってるか? 往年のとかひとくくりにしてるからネタ臭が消えないんだよ。 194 :不明なデバイスさん:2009/08/03(月) 22:27:36 ID:Q6o7dXxt そんな細かい型番まで憶えてないから「往年の」としか言えんのよ… そうね、日本IBM社製といおうか。「90年代の」といえばいい? 俺が知ってる(使ってた)のは90年代後半~2000年代初頭の頃。 DynaBookの方は2000年代初頭。まだスティック・ポイント(だっけ?)の頃。 どっちもWinの95~98辺りだなあ。XPの入ったThinkPadやDynaBookは 使った覚えがない。
はっはっはー。今日のタイトルに書いた「うっかり指乗せミスタイプ(ノートPCでよくある)」のノートPCってのは Windows98で、スティック・ポイントアキュポイントで、どっちが右(左)ボタン?ってなマウスボタン配置の DynaBookのことだ。不幸せになんかならないよね?逆ではなくて裏だし、いずれにしても元の命題の真偽とは関連しないから大丈夫<うるさい
楽天の FILCOキーボードショップは 3000以上で送料無料だったんだけど、箱つぶれ Excellioは 2980円で 20円足りない。キートップリムーバー(315円)をセットにした。箱も説明書もなくビニール袋に入ってるだけだったので使い方に困ったが、針金部分が同じように見えて微妙に長さが違うので、長い方をキートップに引っかけて左右に広げてからキーの奥にもぐり込ませるみたい。パンタグラフ式の Excellioには使えないので Majestouch用です。
箱つぶれ特価品なのに箱をつぶす手間もかけていない。NTT-Xストアの箱汚れ品と同じあからさまな建前商法。全然悪くはないけど。
評判通りキーは重い。ストロークは普通のパンタグラフ並に浅いが、もう少し深い方がいい。深くすると押し下げ時の左右のずれが大きくなるらしいが。深ければキータッチは軽くてもミスタイプの原因にならないと思う(これは Realforceルート?)。裏を返せば、ストロークが浅いのだから今の重さはちょうどいい。
ぺちぺちにちゃにちゃ音がするものの、そこはパンタグラフ。Microsoft Wired Desktop 500(RT2300, SN25Pのために買った間に合わせ)よりずっと静か。指がキートップを叩く音が支配的。Tab、左Ctrl、左Alt、変換キーだけはキートップからチャラチャラした音が目立つ。
左Alt手前のフレームが浮いている。手前でなければ気付かなかったのに、手のひらを置いたときに気付いてしまった。残念。
前のキーボードの慣れがあるので、Home, Endの配置はこうなった。
Home | End | PageUp |
Delete | Delete | PageDown |
右Windowsキーは右Altになった。
以下にレジストリの設定。
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,05,00,00,00,47,e0,52,e0,4f,e0,47,e0,\ 53,e0,4f,e0,38,e0,5c,e0,00,00,00,00
バイナリの意味は以下の通り。
00 00 00 00 # バージョン。0固定。 00 00 00 00 # フラグ。0固定。 05 00 00 00 # ターミネータ込みで 00000005個のマップエントリが続く。 47 e0 52 e0 # Insert(e0 52) → Home(e0 47) 4f e0 47 e0 # Home(e0 47) → End(e0 4f) 53 e0 4f e0 # End(e0 4f) → Delete(e0 53) 38 e0 5c e0 # 右Win(e0 5c) → 右Alt(e0 38) 00 00 00 00 # 終了。ターミネータがあるのに個数を入力させたのは何故?
(使えるかもしれない)スキャンコード一覧 > Keyboard scancodes: Keyboard scancodes
明日は 25日に注文した FKBN108ML/NBが来るんだけど、二枚もどうすんだ。
PS/2キーボードじゃないから S3からホットキーでのレジュームができなくなった。「Resume from S3 by USB Device (Enable/Disable)」みたいな設定が BIOSにあるけど、キーに触っただけで復帰するのは勘弁してほしい―だからマウスによるレジュームも無効にしてる―からやはり PS/2キーボードだな。
箱の裏面の白い部分がものすごく黄ばんでる(ような色をしてる)。角のほうにわずかに白い部分があるから、もとは全部真っ白だったのかも。(このへんが「箱つぶれ」?)
Excellioをマウス用の USB->PS/2変換コネクタを通して接続してみたけど、やっぱり使えず、USB専用キーボードだった。ところで、確認を終えて元の通りに繋ぎ直しても、PS/2に接続していたトラックボールが使えなくなっていた。BIOSセットアップに入ってトラックボールをいじると、右移動=F5、右ボタン=F6みたいにキーボード扱い。くまった。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout にも設定してみて改善するか様子を見る。
CapsLockの位置に左Ctrlがあると、左Ctrlと組み合わせられるキーが増えるね。これは良い。
最終更新: 2013-09-14T00:17+0900
使えないのを知っていて以前から HikiDocフォーマットでタイトルを書いていた。>>20090823 >>20090403
これを HTML化するのは意外と簡単。プラグインでできる。
add_title_proc {|date, title| if title.index('<') title.sub(/<span class="title">([^<>]+)<\/span>/){ %/<div class="title">#{WikiSection.new(CGI.unescapeHTML $1).body_to_html}<\/div>/ } else WikiSection.new(CGI.unescapeHTML title).body_to_html end }
今日のタイトルに含まれる「==日記==ブログ」という部分があまりにわかりにくかったので、HTML化してみた次第。URL自動リンクも有効になって、うまうま。
勘違い発覚。Headingがブロック要素を包含できる気がしていたが、Heading自身がブロック要素だということの記憶違い。<div>を含めちゃだめだ。
修正。
add_title_proc {|date, title| inline_or_nil = lambda{|src| lines = src.split(/\r?\n/) return nil if 1 < lines.length html = WikiSection.new(lines.first).body_to_html return nil if html[0,3] != '<p>' or html[-4,4] != '</p>' return html } if title.index('<') title.sub(/<span class="title">([^<>]+)<\/span>/){|_0| html = inline_or_nil.call(CGI.unescapeHTML $1) html ? %/<span class="title">#{html}<\/span>/ : _0 } else inline_or_nil.call(CGI.unescapeHTML title) or title end rescue title }
それなりにチェックはしてるけど、ブロック要素を返すプラグインを呼んだりしたら(HTMLの文法的に)即アウト。
最終更新: 2010-02-02T01:32+0900
3台目は CATEYE CC-RD300W。無線。現在/平均/最高速度計測。ケイデンス非対応。
リセットを繰り返していた CC-MC100W が、とうとう電池を替えても画面が映らなくなったので買い換え。
平均・最高ケイデンスを記録できる CC-TR200DW V2C が第一候補だったが、ラップ機能が不要なのと、測定結果を 14まで保存できるがその記録の中に積算距離(オド)が含まれていないせいで役に立たない(オドだけがログのプライマリキーになれる)のと、5分で節電モードに入ったあとの計測再開が手動なのが不満。
CC-RD300Wより新しい CC-RD400DW というのもあるが、付加機能のケイデンス機能が現在ケイデンスの表示にしか対応していない。センサー部の電池寿命が他機種の多くの半分にあたる半年間しかない。より高機能な V2Cとの実勢価格差が¥2000というのも躊躇させる。ちなみに付加機能はケイデンスだけでなく無線の ID対応というのもある。
結局、壊れた CC-MC100Wより機能が絞られてるわりにお高い CC-RD300W にした。最低限必要な機能は揃ってるし、ちょくちょく落っことすので高級機はもったいない。走行中のモードの切り替えはやりやすくなっているが、ブラケットから外した状態ではむしろやりにくい。俺の使い方では、外してからの操作の方が実は多かったり。ブラケットからの取り外しも固くてやりにくい。ツメが削れて外しやすくなってきたときは、走行中に落っこちやすくなったとき。センサーは CC-MC100Wのが流用できた(どちらも無線 ID非対応だから)。
ダメ。ボタン長押しでリセットというのが、本体自体がボタンになってることと相まって、誤爆しまくり。HL-EL400 のバンドが走行中に開かないように(すぐに固定がゆるむへなちょこ)、CC-MC100Wでやっていたように、CC-RD300Wをバンドの上に重ねて取り付けたらシーソーみたいにボタンが押し下げ状態になってリセット。本体をブラケットから取り外すときも、もたもたしないでガッと外さないとリセット。リセットボタンを新設して、ブラケットとの脱着方法を考えなければ次はない。
最終更新: 2010-05-19T17:19+0900
確かに変ですが、ここの部分をきっちりやろうとするとレイアウト処理性能にシビアに影響するみたいです。 ざっと試したところでは、ファイル読み込みで1.5~3倍くらいの処理時間がかかるようになってしまいました。 右端で折り返す設定で画面幅を変化させるときの応答にも同様に効いてきます。
さらりと、できなくはないと書かれているが、どうやるんだろう?
sakura_core\view\colors\CColorStrategy.cpp の後半(「色開始」部分)をこう書きかえてみても中途半端な結果。ファイルの内容は同じでも、文字の追加や削除、アンドゥなどの操作によって、意図通りの結果になったり現行通りだったり。処理速度に関しては、5MBのファイルを開いてファイルタイプをいろいろ切り替えてみたら、変更前よりプログレスバーの進みが明らかに遅い。1.5から 2倍というのは体感に一致している。
bool CColorStrategyPool::CheckColorMODE( CColorStrategy** ppcColorStrategy, //!< [in/out] int nPos, const CStringRef& cLineStr ) { //色終了 if(*ppcColorStrategy){ if((*ppcColorStrategy)->EndColor(cLineStr,nPos)){ *ppcColorStrategy = NULL; return true; } } //色開始 if(!*ppcColorStrategy){ for(int i = 0; i < (int)m_vStrategies.size(); ++i) { if(m_vStrategies[i]->BeginColor(cLineStr, nPos)) { *ppcColorStrategy = m_vStrategies[i]; break; } } } return false; }
違う。CheckColorMODE()のときに正規表現キーワードは働いてない。そもそも CheckColorMODE()の目的って? CLayoutMgr::Match_Quote()がとりあえず行末を返す( return cLineStr.GetLength(); )のって? それでどうやって行をまたげているんだろう。
白々しさ爆発だけど書く。下は sakura/trunk2/sakura_core/doc/CLayoutMgr_DoLayout.cpp から削除されたコード(の一部)。この部分が修正を加えられたうえで sakura_core/view/colors/CColorStrategy.cppに移動している。return falseを使わずに breakしているあたりがさらに嘘くささを増してるけど、別に、このときの変更をロールバックしたかったわけじゃない。知らなかったし、参考にしたのは SColorStrategyInfo::DoChangeColor()の方。
if(!*ppcColorStrategy){ CColorStrategyPool* pool = CColorStrategyPool::Instance(); for(int i=0;i<pool->GetStrategyCount();i++){ CColorStrategy* pcSample = pool->GetStrategy(i); if(pcSample->BeginColor(cLineStr,nPos)){ *ppcColorStrategy = pcSample; //bRet = true; break; } } }
俺が感じたプログレスバーの進みの遅さはたぶん基底クラスからの仮想関数の呼び出しに伴うものだったんだろう。一歩戻って進んで、ふりだしに戻る。
CheckColorMODE()がないとクォーテーション文字列が行をまたげない。
レイアウト(禁則処理とか折り返しとか)とクォーテーション文字列(+コメント)の関係がわからない。癒着してるなら、ボトルネックにもなってるらしい CheckColorMODE()をなくして、正規表現キーワードが行をまたぐことでカバーしたい。
http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=dev&v=4079#4083
サクラエディタの色分け解析ルーチンは、全部で3つあって、
- 行データの変更に、各レイアウト行の先頭色を決めるもの(CLayoutMgr)
- 実際の作画時に各文字の色を決定しつつ作画するもの(CEditView::OnPaint)
- 対括弧の色を戻すときに各文字の色を決定するもの(CEditView::GetColorIndex)
最終更新: 2009-09-24T04:29+0900
方法は sakura/trunk2/sakura_core/sakura_rc.rcから CBS_SORTを一か所削除するだけでした。CRecentImp.AppendItem()が名前に反してあえて「アイテムを先頭に追加」しているけど、俺もそれが自然だと思う。「開く...(ドロップダウン)」ツールバーボタンから出るポップアップメニューには CBS_SORTみたいなフラグがないのだろう。ソートはされていない。望み通り。でも Windowsはスタートメニューの最近使った項目をファイル名でソートしてる。そういう考え方もあるんだろう。好きにやります。
ダイアログつながりで、拡張子補完も完全に切った。お節介は不要。拡張子補完って主にエクスプローラで拡張子を隠したままにしてる人のためにあると思う。