MX ERGO来た
╭( ・ㅂ・)و̑
Logicool ロジクール MXTB1s bluetooth ワイヤレス トラックボール MX ERGO Windows,Mac対応 筋緊張20%軽減 8ボタン 高速充電式 2年間無償保証
- 出版社/メーカー: ロジクール
- 発売日: 2017/09/22
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
充電式なの、届いてから知ったのが私です。
今のところ、ポインタ速度が M570 の頃の感覚とずれてるくらいで、ほかは特に気になる部分はないですね。さすが *1
気になる本体の傾け機構はこんな感じ
0° | 20° |
---|---|
残念ながら、この間の設定はほぼ無理でした。10°とか設定でき無さそうな感じで、カタンって変わっちゃう(´・ω・`)
ふと思い出した BodySlide Outfit Studio でメッシュを壊してた話
だいぶ前*1にこんなこと言ってました。
Skyrimでoutfit studio使うとおかしい感じになってたのが直せたので満足
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2017年1月31日
Load Referenceを後からやればよかっただけなんてな…
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2017年1月31日
なんのこっちゃって話なんですが、これは防具の一部が形状変更スライダーに対応してないから、既存体型からウェイトをコピーして対応させようとしてたやつです。
で、その時に何が起きてたかというと、保存したメッシュが盛大に崩れて死ぬ*2っていう。
結論としては、操作順間違ってただけなんですけどね。
続きを読む最近のコントローラ事情
ついこの間、Windows 10ならBluetooth接続できるという新型 Xbox One ワイヤレスコントローラを買ってました。
Xbox One ワイヤレスコントローラー (ドーンシャドウ)
- 出版社/メーカー: 日本マイクロソフト
- 発売日: 2016/10/13
- メディア: Video Game
- この商品を含むブログを見る
いやホントに、フツーに繋がってUSBポートが一個空いたのは感動モノでしたね*1
とはいえ電池式になってしまったので、電池切れ対策どうしようかなー、とりあえずはエボルタかなー?
そんな時に
(´-`).。oO(Xbox Oneのプレイ&チャージキットってあったよな…?)
(´-`).。oO(いやでもそれだと結局充電用にポートふさぐし、それだと無線じゃなくて優先扱いになってしまうしなー)
(´-`)…
( ゚д゚)!
( ゚д゚)USB充電器使えばいいんじゃね?
で、そろえたもの
- 出版社/メーカー: 日本マイクロソフト
- 発売日: 2014/10/02
- メディア: Video Game
- この商品を含むブログを見る
usb充電器 RAVPower 24W 2ポート 充電器 iPhone iPad スマホ タブレット モバイルバッテリー 等対応 ac アダプタ 急速充電 チャージャー (ブラック)
- 出版社/メーカー: RAVPower
- メディア: エレクトロニクス
- この商品を含むブログを見る
これで充電しながら無線のままでいられる環境がそろってしまった( ・´ー・`)
*1:4個中3個埋まってたのが2個に減った
Rustでプロセスの実行ファイルパスを取得するナニカを作った
Process Entry、略して pentry と名付けました。
github.com
大元の動機は結構前にGoでツール作ってた時、「あー、親プロセスの実行ファイルとれねーかなー」とか思ったたら既にあったというもの*1。
github.com
で、これと同じことをRustできないかなー、って思ったのが始まり。
つーてLinux側は特に心配してなかったんだけど、Windows側はFFIの関係でちょっと苦労した*2。
使い方
基本はプロセスIDから探すので、こうなります。ところでホントにlibc使わないと今のプロセスID取れないんですか…?
extern crate libc; extern crate pentry; let pid: i32; unsafe { pid = libc::getpid() as i32; } if let Ok(ps) = pentry::find(pid) { println!("#{} {}", ps.pid(), ps.path().unwrap()); }
で、いちいちlibc書くのめんどいだろうからヘルパー的に現在プロセスを取得する関数はあります。
extern crate pentry; if let Ok(ps) = pentry::current() { println!("{:?}", ps); }
取得できたプロセスオブジェクトには親プロセスを取得するためのメソッド parent() が生えているので、それをたどれば親プロセスを取得できます( ´∀`)b
extern crate pentry; let ps = pentry::current().unwrap(); let pps = ps.parent().unwrap(); println!("Parent: {:?}", pps);
おまけ:pentryコマンド
cargo install pentryとかすると一緒に pentry コマンドが $HOME/.cargo/bin に配置されます。これを使うと特定プロセスの実行ファイルとか見れます、たぶん*3。
ある意味参考実装的なものですね。
chiku2gonzalez@xenial:~$ pentry -h Show some process information. USAGE: pentry -h|--help pentry [-P|--parent] [PID [PID...]] Options: -h, --help Show this usage message. -P, --parent Inspect parent process entry. chiku2gonzalez@xenial:~$ .cargo/bin/pentry PID PPID PATH 5284 2379 /home/chiku2gonzalez/.cargo/bin/pentry chiku2gonzalez@xenial:~$ .cargo/bin/pentry -P PID PPID PATH 2379 2377 /bin/bash 5295 2379 ┗ /home/chiku2gonzalez/.cargo/bin/pentry chiku2gonzalez@xenial:~$
余談
とりあえず trait を Go の interface みたいにできないのがツライ(´・ω・`) *4