basyura's blog

あしたになったらほんきだす。

Windows10 on VMware Fusion

VMware Fusion 5

VMware Fusion 5

MacBook Pro 上に VMware Fusion で Windows10 環境を再構築して Visual Sutdio 2017 を入れてみた。CPU 使用率とディスクIO が若干気になるけど、当初よりは設定を見直して許容範囲に。ブラウザを起動してるとホスト (Mac) 側の CPU 使用率が上がるのが若干気になるけど・・・。Visual Studio を動かしてるだけならそうでもないので良しとする。

Windows 側の設定

  • 仮想メモリを使わない設定
  • 視覚効果をフォントだけにする
  • 使わないサービスをいろいろオフ
  • いろいろ通知をオフ

VMware Fusion の設定で試してみたやつ

【Mac】YosemiteにアップグレードしたiMac(mid2011)でVMware FusionやParallelsの動作が重くなる場合の対処方法【仮想環境】 - HWD Blog

どうやらMacのNVRAMをデバッグモードに変更することで動作が遅くなることを防げるらしいです。

sudo nvram boot-args="debug=0x10"

VMware Player 上の仮想OSを高速化させ軽快に作動させるチューニング - ぼくんちのTV 別館

主に Disk IO を減らす事を目的としたチューニング (仮想 PC のメモリ設定分を実機のメモリから常時確保する)

*.vmx に定義を追加する。

MemTrimRate = "0"
mainMem.useNamedFile= "FALSE"
sched.mem.pshare.enable = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
MemAllowAutoScaleDown = "FALSE"

パーティション構成の変更

当初 50G で作っていたものの、Visual Studio でもろもろを入れると 40 G ぐらい使ってしまうので拡張。勝手に Windows の C ドライブが拡張されるのかと思ってたけど、未割り当て領域が増えるだけでパーティションサイズの変更は自分でしないといけないのね。そりゃそうか。回復パーティションが間に挟まっていたのでイメージの作り直しかと思ったが、ググると diskpart で簡単に削除できたので、C ドライブと拡張子た領域を無事に結合。

Windows 側でも Command + Tab でウインドウ切り替えしたい

デフォルトだと Command は Windows ボタンに当てられていて option + Tab を使うのだけど、間違えて Command + Tab で Mac 側に戻っちゃうことがあるので困る。

VMware Fusion 側の設定

  • キーボードとマウスの Mac OS ホストキーボードショートカットを有効化のチェックを外す

Keyhack を入れる

Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware

前から気になっていたのだけど、Windows7 から Windows10 にメインマシンが移行したことに伴って、xkeymacs + AutoHotkey から乗り換え。キー設定を python で書くのだけど分かりやすいしかなり便利。 Windows10 に Keyhack を入れてキー入れ替え設定を記述して終わり。ついでに google ime 用に on/off 切り替え用のキー定義も書き換え。

def configure(keymap):
    # Command と option を入れ替え
    keymap.replaceKey( "LWin", "LAlt" )
    keymap.replaceKey( "LAlt", "LWin" )
    # かな → 変換
    keymap.replaceKey( 255, 28 )
    # 英数 → 無変換
    keymap.replaceKey( 240, 29 )

Visual Studio 2017

とりあえず ViEmu を入れたけどフォント、文字色、背景色、キー設定がだるいので、メインマシンの設定を取ってくるか・・・2012 だけど。既存の設定をエクスポートして新規に入れた2012 にインポートしたらエラーでて激しく萎えたので期待半分。特に色はどこが変わるのかどっかに説明が欲しいわ。毎回適当に変えてみてココかぁと発見していくのだけど激しくだるい。

とりあえず UWP のサンプルが起動したので満足した。 ライブビジュアルツリーとかレイアウトガイド表示とかめっちゃ便利じゃん。Xaml は辛すぎるけど。

まとめ

ようやく開発できる環境が整ったので今更ながら Prism とか UWP とか手を付けてみたいと思うけど、2012 用に作ってたオレオレ拡張をまずは移植したい。問題は時間が取れるかだけど。

スナップショットは取ってるけど、過去何回も Windows が上がらなくなったことがあるので色々不安はあるが、新しい端末を買うよりはいいか・・・。

改めて、MacBook Pro でコアが 2 個って少ないなぁ・・・って思う今日このごろ。もうちょっとマシンパワー欲しい。けど、もうちょっと軽くなって欲しい (わがまま) 。

vivaldi - アドレスバーのドメイン展開を無効にする設定が欲しい

アドレスバーのドメイン展開を無効にする設定が欲しい | Vivaldi Forum

アドレスバーにて Ctrl+Enter.com のようなドメインが展開されます。 日本語入力の変換確定 (厳密には Google IME での予測変換の確定) にキーを設定しているため、日本語入力の確定のつもりで Ctrl+Enter した際に意図しないページに遷移してしまいます。

検索バーを使えばいいのかもしれませんが、アドレスバーで検索できるので表示していません。アドレスのコンプリート機能もありますし、ピンポイントに .com 等で補完したいケースはほぼ無いのですが英語圏だと嬉しかったりするのでしょうか・・・?

ご検討よろしくお願いします。

前から気になっていたのだけど特に変更されないので要望を上げてみた。 既に要望が上がっているけどアドレスバーから開くときは常に別タブオプションも欲しいんだよなぁ。別タブになるプロセスが起動してといろいろ読み込みが走って重く感じてしまうのは有るとは思うけど、そのつど Shift を押しながら Enter するのもアレだし。慣れてきたのはあるけど開きっぱなしにするつもりのページから移動しちゃうことがまぁまぁあってめんどくさい。

いろいろ気になる所はあるけど vivaldi のキビキビ感が気持ちよくて firefox のもっさり感に戻れなくなってしまった。mac 版の firefox だと使ってなくてタブを全部閉じてる時でも妙に cpu 食ってるのも嫌だったんだよなぁ。エネルギー消費が著しいアプリケーションにいつも表示されてたし。

孔明のヨメ

面白いので一気読みしてしまった。年に 1 冊ペースっぽいので待ち遠しいところ。また吉川英治の三国志を読み直してもいいなぁと思うが何回目なのかも思い出せない (その割に内容を覚えているような覚えていないような)。

孔明のヨメ。 1巻 (まんがタイムコミックス)

孔明のヨメ。 1巻 (まんがタイムコミックス)

孔明のヨメ。 2巻 (まんがタイムコミックス)

孔明のヨメ。 2巻 (まんがタイムコミックス)

孔明のヨメ。 3巻 (まんがタイムコミックス)

孔明のヨメ。 3巻 (まんがタイムコミックス)

孔明のヨメ。 4巻 (まんがタイムコミックス)

孔明のヨメ。 4巻 (まんがタイムコミックス)

孔明のヨメ。 5巻 (まんがタイムコミックス)

孔明のヨメ。 5巻 (まんがタイムコミックス)

孔明のヨメ。 6巻 (まんがタイムコミックス)

孔明のヨメ。 6巻 (まんがタイムコミックス)

孔明のヨメ。 7巻 (まんがタイムコミックス)

孔明のヨメ。 7巻 (まんがタイムコミックス)

cVim を fork

cVim はまだ痒いところに手が届かない感があるけど便利・・・なのだけど気になる挙動がまぁまぁある。
自分で直せばいいのだけど、

  • 拡張機能がバージョンアップされるたびに強制的に戻ってしまうのでオレオレパッチを毎回あてるのがめんどくさい
  • Pull Request を送るにしても採用される程度に作り込むのがめんどくさい

である。

今までそれでもいいかと思っていたのだけど、コマンドバーで Enter すると日本語入力の確定でも実行されてしまうのが新たに?発動したのもあって (mac だけかなぁ)、さすがにだるくなったので fork した。

やり方

  • https://github.com/1995eaton/chromium-vim をどこかのディレクトリに clone
  • 必要に応じてソースを修正
  • 拡張機能の管理画面を開く
  • デベロッパーモードにチェックを入れる
  • パッケージ化されていない拡張機能を読み込むで clone したディレクトリを指定する

細かい所で気になるところはまぁまぁあるけど、いまのところ満足。これで様子を見る。

人工知能の本

人工知能の核心 (NHK出版新書)

人工知能の核心 (NHK出版新書)

AI がー、AI で解決できないのかーっていつも通り流行乗って言うだけのお偉いさんの相手するのはだるいのだけど、正直人工知能の定義が分からん。Web サーバで動いてればクラウドになっちゃったように、ソフトウェアで処理させて何かしらの結果が出たら過程はどうであれ AI でやりましたって言っても通じそう感ある。

実践的な本をチラ見してみると数式がどうのこうので心が折れたので概要から入ってみる。

C# - インデックス付き Select

Enumerable.Select(TSource, TResult) メソッド (IEnumerable(TSource), Func(TSource, Int32, TResult)) (System.Linq)

public static IEnumerable<TResult> Select<TSource, TResult>(
    this IEnumerable<TSource> source,
    Func<TSource, int, TResult> selector
)

要素が 1 個でも 1000 個でも変わるのは 1 ms 程度だったという驚き。

var list = Enumerable.Range(0, 1).Select(v => v.ToString()).ToList();

var watch = Stopwatch.StartNew();
var i = 0;
foreach (var v in list)
{
    i ++;
}
watch.Stop();
Console.WriteLine(watch.Elapsed);

watch = Stopwatch.StartNew();
foreach (var v in list.Select((value, index) => new { value, index }))
{
    Console.WriteLine(v.value);
    Console.WriteLine(v.index);
}
watch.Stop();
Console.WriteLine(watch.Elapsed);

わざわざカウンターを別に設けなくても良かったのね。記述が冗長になる気はするけど・・・どっちがいいのかなぁ。思い切って for 使ってもいい気がしないでもない。

for (int i = 0 ; i < list.Count; i++)
{
    var value = list[i];
}

ループの先頭で変数に入れてしまえば添字の書き間違いなんてそうそう起こらないだろうし。 てなことを今更ながら考えてたりする今日このごろ。

blog 等では列数確保のために var を使うけど、仕事で書くときは型をきっちり書く派。この変数、メソッドの戻り値がどういう型なのか気になるし、調べるためにマウスカーソルを当てるのもだるいので最初から見えてたほうがいいじゃん派。var を使ったほうがきれいに見えるのだけど・・・考える上ではあまり便利とは思えないのであった。