トラックボール生活 -1週目-
Bash on Windows の流行にのれてない rohki です。
試す時間が・・・
ELECOM マウス トラックボール 有線 6ボタン ブラック M-XT3URBK
- 出版社/メーカー: エレコム
- 発売日: 2015/10/17
- メディア: Personal Computers
- この商品を含むブログを見る
さて、使っていたマウスがなにやら不良になってきたので、上のトラックボールを購入してみました。
ので、使用感等々を書いてみます。
良かった点
- 肘がいたくならない
- 握りが良い感じ
- ボール転がすって結構気持ちいい
下2つについては、メリットというより感覚ですけど、こと毎日使う道具だからこの辺の直感は大事な気がします。
悪かった点
- 細かい操作に慣れるまで大変
- 戻るボタンが押しづらい
- 1週間たってボールが引っかかるようになった
細かい操作については、慣れの問題ですから良いんです。どうにかなってきました。
が、1番下がきつい・・・
さっきの感覚の話で言うなら、操作したのにカーソルが動いてくれないので、イラッとするんです。
ボールを代えるなり何なりで対策する予定。
ボールの引っかかりがどうにかなれば、おおむねよい買い物でした。
どうにかせねば。
ややこしい COM とスレッドの初期化(?)をコードにする
Windows に相も変わらずどっぷりの rohki です。
Windows には COM という便利な、便利な仕組みがあります。
この COM とスレッドが絡むと、アパートメントという仕組みが出てきます。
COM ライブラリを初期化する (Windows)
上記を参照すると、以下のように使い分けるとよい、とのこと。
- スレッドでウィンドウを作成するなら、アパートメント スレッド(COINIT_APARTMENTTHREADED)
- 持たないなら、マルチスレッド(COINIT_MULTITHREADED)
まぁ、だいたいはマルチスレッドでしょう。*1
この切り替えは、スレッドに対して CoInitializeEx
で設定します。*2
で、これ設定したら CoUninitialize
で解除しなきゃなんですが、いちいち気にしたくないです。
なんで、以下のようなクラスを作ってみるとよいかなーって考えてます。
TThread.Execute は final
でこのクラス以降で override
出来ないようにして、実質的な処理をかく関数を別に用意する形です。
こうすると利用する人はいちいち気にしなくても良いことになります。
Create
に CoInitializeEx
を書けば、って僕も一番最初思ったんですが、この設定は先ほどもあげたようにスレッドに対してする必要があるんです。
Create
処理を行うのは当然呼び出し元スレッドなので、生成されたスレッドに設定が適用されないままとなります。
だからわざわざこんなことしてます。
あー、ややこし。
プロセスごとの Disk IO がパフォーマンスカウンターの Process からじゃあとれない悲しみ
パフォーマンスカウンターでの性能計測は、テストや開発で行います…よね?
そこでタイトルの話ですよ。
GW 読書強化週間!
の予定だった
GW の間に積み本消化してやるぜ!といきごんでいたのです。
ところがどっこい、読み切れたのは2冊でした。
その紹介と感想をば。
エッセンシャル スクラム
エッセンシャル スクラム: アジャイル開発に関わるすべての人のための完全攻略ガイド (Object Oriented Selection)
- 作者: Kenneth Rubin,岡澤裕二,角征典,高木正弘,和智右桂
- 出版社/メーカー: 翔泳社
- 発売日: 2014/07/08
- メディア: 大型本
- この商品を含むブログ (7件) を見る
精神的ダメージを多分に負いました。GW 中でなければ読み切れなかった気がしますw
スクラムについてのこうあるべき、なぜなら~をざらっと知れたので読んでよかったかなーって所です。
で、やっぱり3役に求められるスキルセットは各々だいぶちがうな、ってのが明確になりました。
この辺の責任境界はしっかりした方がいいんでしょうね。
あとですね、政治のにほいがそこはかとなく…
というのも、結構なページを割いて、経営レベルでのスクラム的な方法論や組織論への言及があったからです。
この辺のレベル感は DDD でも近しいものがありました。戦術と戦略やったと思います。
スクラムで定義されているのは戦術レベルまでやけど、戦略レベルやってるところも多いし書いとくねーてかんじです。
政治は分からないです。
技術的負債という皆大好きなワードもありました。
かくいう僕もがっつり読んだんですが、考え方は良いなーってところです。
スケジュールを詰めれば、その詰めた分だけの負債をコード上で背負うわけで。
で、利子ついた負債の返済額と遅延コストを比較してどうのってやつです。
いずれにしても、僕自身開発一辺倒な輩なので視点を広げる意味ではよかったです。
闘うプログラマー
- 作者: G パスカルザカリー
- 出版社/メーカー: 日経BP社
- 発売日: 2013/11/20
- メディア: Kindle版
- この商品を含むブログ (7件) を見る
こいつはだいーぶ積んでましたな。
Windows NT なんてばかでかいもの作ればそらもう紆余曲折あるわけですが、そいつの開発記です。bash on Windows に思いをはせながら読みました。
で、すっごい人間くさい話でした。おそらく、登場人物の誰がしかに自分を重ねるでしょうし、周りの誰かも重なるでしょう。
闘うプログラマー読了
— rohki (@r_ohki) 2016年5月4日
なんかねー、想起させられた。
一番はあれやね、マグリア氏の話。
僕はこうでした。ネタバレになるので、詳細ははしょります。
読んでる途中
数学パズル
自分の劣化具合に愕然としているところ。ちょくちょく解いてます。Rustで。
マダマダイッパイ
積み本を整理した結果、いっぱいあるということがわかりました
— rohki (@r_ohki) 2016年5月7日
まる
エッセンシャル スクラムは内容的にも分量的にもきつかたです。
次のときにはうすめの本から手を出します。
ただ、祝日がとおいんだよなぁ…
Delphi 開発環境で欲しかったモノが出そろってきた
どゆこと?
以前、Rad Studio 勉強会にて以下のような発表したんですよ。
www.slideshare.net
で、導入したいなーってことで以下3つがありました。
- ソースコードの分析
- テストコード実行の簡略化
- Git との統合
で、このうち2つが揃った! って話です!!
続きを読むREST.JSON での直列化
JSON の色々を調査中で、その一環として見つかったので書きます。
こんな書き方すると各方面の方に怒られますが、手続き的に。
procedure TForm1.JSON; var PersonList: TList<TPerson>; JsonObj: TJSONObject; begin PersonList := nil; JsonObj := nil; try PersonList := TObjectList<TPerson>.Create(); PersonList.Add(TPerson.Create()); PersonList.Last.Name := 'Alice'; PersonList.Last.EMail := 'Alice@wonderland.org'; PersonList.Add(TPerson.Create()); PersonList.Last.Name := 'Bob'; PersonList.Last.EMail := 'Bob@wonderland.org'; JsonObj := TJSON.ObjectToJsonObject(PersonList); Memo1.Lines.Clear(); Memo1.Lines.Add(JsonObj.GetValue('items').ToString) finally FreeAndNil(JsonObj); FreeAndNil(PersonList); end; end;
で、実行したやつを整形した奴が、以下になります。
[ { "eMail": "Alice@wonderland.org", "name": "Alice" }, { "eMail": "Bob@wonderland.org", "name": "Bob" } ]
Memo1.Lines.Add(JsonObj.GetValue('items').ToString)
としているのは、データ以外の物もくっついてくるから。
Memo1.Lines.Add(JsonObj.ToString)
にすると、以下の通り。
{ "items": [ { "eMail": "Alice@wonderland.org", "name": "Alice" }, { "eMail": "Bob@wonderland.org", "name": "Bob" } ], "listHelper": [ 2 ], "ownsObjects": true }
総合すると、使えないことないけどやりやすいかと言われると微妙、という所。
Delphi のアプリケーションだけでやりとりするならともかく、他言語が絡んでくると items 以外は邪魔だし・・・
まぁ、REST.* のパッケージ多めなので、その辺含めて要確認ですな。
ガチガチに緊張しながら Scala Matsuri 2016 の LT で発表した
やるんだよね(ニッコリ) と再三再四背中を押していただいての発表と相成りました。
生放送で流れると当日確認してさらに死にかける罠。
内容はこんな感じ
1行もコード無し!!!
ええやん、軽めのやつがあっても…
でもやってよかったかな。
かなりガチ勢が多かったのですし、ドワンゴの方が半数ですし、ゆるい内容もあっていいでしょう。
うん、そう思おう。
本編まとめはまた別途。