Windows10の設定画面が開けない件

Windows10 Professional on Parallelsの設定画面が開かない(というか二度目以降が開かない)件。 設定画面だけでなくEdgeも同じ状態。で、なぜか以下のAcerのページで回答があった。

[Windows10] スタートメニュー・設定画面が開かない。または、すぐに閉じてしまう

でここでstartmenu.diagcabをダウンロード。

startmenu.diagcabのダウンロード

でダウンロード後、実行したら治った。Edgeも二度目以降開かないのも治った。

hatenaブログでmarkdownをデフォルトにする設定

編集方式を変更すると次に記事を書こうとしたときにもその変更内容が反映されていると思ったら反映されていなかった。毎回変更するのが面倒なので設定方法を見ていたらありました。

[設定]の[基本設定]にある「編集モード」で「Markdownモード」を選択する。

Excelで偶数行(奇数行)の合計を求める

意外とわからなかったので備忘録として記述。

探してみたところ以下のサイトが参考になった。

enterprisezine.jp

まず、SUMPRODUCT()なる関数がよくわからないのだが、"*"は論理積らしい。 で、上記サイトだとROW()で行数を求めて、その値をMOD()使って2で割った余りが0であれば偶数、1であれば奇数としてその論理値がTRUEのもののみを採用して加算する。

別の方法としてはMOD()じゃなくダイレクトにISEVEN(), ISODD()でもいける。

f:id:kazuokohchi:20171208205750p:plain

この画像内の計算式は以下。

=SUMPRODUCT((MOD(ROW(B2:B9),2)=0)*B2:B9)
=SUMPRODUCT((MOD(ROW(B2:B9),2)=1)*B2:B9)
=SUMPRODUCT(ISEVEN(ROW(B2:B9))*B2:B9)
=SUMPRODUCT(ISODD(ROW(B2:B9))*B2:B9)

java.lang.Class.getMethod()とリフレクション

Javaのリフレクションとは変数に格納した「文字列」を使ってクラスを生成したりメソッドを呼び出したりできる機能。

リフレクション使ってメソッドをコールした場合、そのメソッドの例外はinvoke()でInvocationTargetExceptionでラッピングされて例外発生する。 以下は本家のサイトだけれども、正直なに言ってるかわからない。

クラス InvocationTargetException

なので、以下がよいかな。

http://www.ne.jp/asahi/hishidama/home/tech/java/reflection.html http://www.ne.jp/asahi/hishidama/home/tech/java/exception.html#InvocationTargetException

VMware Fusion上のWindows10をCreatorsUpdateしたらプリンタが見えなくなった件

以前、Windows7からWindows10にアップデートしたときもそうなったのだが、 VMware Fusion上のWindows10をCreatorsUpdateしたらプリンタがなくっていた。 以前にも、

(Windows8からWindows10にアップグレードしたらWSDプリンタが見えなくなって困った件)http://kohchi.hatenablog.com/entry/20160312/1457757349

で書いていた通りで、インストールしてみても同じように同じセグメントまたはUSB接続でないとだめ。 そこで再起動してみたが残念ながらダメ。

その日は諦めて色々考えてみたところ、VMWareではプリンタのパススルー(ThinPrint)というのがあるので それを試してみた。

(VMware Fusion仮想マシン内から印刷する (2079841))https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2079841

  • 設定を選ぶ

f:id:kazuokohchi:20171001092440p:plain

ここでプリンタをクリック。

  • 共有する

f:id:kazuokohchi:20171001092453p:plain

でプリンタ(WSDでないのが)見えるようになった。

その時、ふと、プリンタの電源をつけてvmのWindows10を起動すると?と思い、 パススルーの設定をやめて再度起動し直したところ、WSD設定のプリンタが復活。

大きなアップデートのあとはプリンタの電源を入れておいて起動するか プリンタの設定を変えてみる

ってことで見えるようになる???

毎度こんなんじゃ困るんだけどな。

Javaのオートボクシング

プリミティブ型とラッパークラスの変換を自動で行ってくれる仕組み

Java 5からの機能で便利なのかもしれないけどコードレビューしていると結構嫌よね。

public void foo() {
    Integer iObject = new Integer(10);
    int i = 0, j;

    iObject = i;    // オートボクシング
    // iObject = Integer.valueOf(i);

    j = iObject;    // アンボクシング、iObjectがnullだとNullPointerException
    // j = iObject.intValue();
}

ただし、Eclipseだと設定によって警告を出せるらしい

[ウィンドウ]->[設定]->[Java]->[コンパイラー]->[エラー/警告]->[潜在的なプログラミングの問題] を展開して[ボクシングおよびアンボクシング変換]を「エラー、警告、無視」から選択可能。デフォルトは「無視」。

f:id:kazuokohchi:20170903152144p:plain

javaのHashMap初期化

Java.util.HashMapの初期化方法。すぐ忘れるので備忘録。

package com.foobar.console;

import java.util.HashMap;
import java.util.Map;

public class Test01 {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>() {
            {put("fooKey", "fooVal");}
            {put("barKey", "barVal");}
        };
        if (!map.containsKey("noKey")) {
            System.out.println("There is no key.");
        }
        System.out.println(map.get("fooKey"));
        System.out.println(map.get("barKey"));
    }
}

参考は以下(作成から一年以上経過しているから試してみたけど問題なし)。

Map 初期化