Browsed by
Month: 2023年3月

[Window] キーボード配列を変更する

[Window] キーボード配列を変更する

使用しているノート PC のスペースキーが壊れてしまった。

Change key というソフトウェアを使用することで、スペースキーを隣の「無変換」「変換」キーに割り当てて解決出来た。このソフトウェアはレジスタを書き換えているみたいなので、一度設定するだけで良かった。

後は指がなれるまで我慢することかな。

Reference

Change Key
https://forest.watch.impress.co.jp/library/software/changekey/

[Chromebook] C/C++ 開発環境

[Chromebook] C/C++ 開発環境

Chromebook で C/C++ 開発環境を構築する。Linux 環境を構築後に下記のコマンドで進めていく。

sudo apt update
sudo apt install build-essential
sudo apt install gdb

Visual Studio Code の拡張

C/C++ for Visual Studio Code をインストールする。

新規ファイルで、c/cpp ファイルを作成して、メニューの Run から実行することが出来た。

pthread を使用する

gcc -pthread main.c -o main
./main

-pthread を指定してリンクする必要があった。

Reference

Using C++ on Linux in VS Code
https://code.visualstudio.com/docs/cpp/config-linux

[Python] Numpy で行列演算

[Python] Numpy で行列演算

行列の掛け算

numpy.ndarray を 2つ定義して np.matmul() で計算する。

import numpy as np
data1 = np.array(
    [
        [0, 1, 2], 
        [3, 4, 5],
        [6, 7, 8],
    ]
)

data2 = np.array(
    [
        [0, 1, 2], 
        [3, 4, 5],
        [6, 7, 8],
    ]
)

result = np.matmul(data1, data2)
print(result)

実行結果

[[ 15  18  21]
 [ 42  54  66]
 [ 69  90 111]]

逆行列を求める

逆行列は np.linalg.inv() を使用する

import numpy as np

data1 = np.array([
    [0,1,3],
    [3,4,5],
    [6,7,8]]
)
                
data1_inv = np.linalg.inv(data1)

print(data1_inv)
print(np.matmul(data1,data1_inv))

実行結果

[[ 1.         -4.33333333  2.33333333]
 [-2.          6.         -3.        ]
 [ 1.         -2.          1.        ]]
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[Python] Anaconda で Numpy を使用する

[Python] Anaconda で Numpy を使用する

Numpy のインストール

新規で Python 環境を作成し Open Terminal でターミナルを立ち上げる。

conda install numpy

このコマンドで Numpy がインストールできる。

実行

Jupyter Notebook を立ち上げる。

Jupyter Notebook

Python3 の実行環境を作成して、下記コードを入力する。

import numpy as np
data = np.array(
    [
        [0, 1, 2], 
        [3, 4, 5],
        [6, 7, 8],
    ]
)

print(data)
print(type(data))

Shift + Enter で実行してエラーが無ければ成功。

[Windows] Anaconda の導入

[Windows] Anaconda の導入

インストール

公式サイトのダウンロードボタンから、インストール用の exe をダウンロードして実行する。インストール時は全てデフォルトのまま Next を押して進めていく。途中の

Register Anaconda 3 as my default Python

にチェックをが入っていると、他の Python ツールでも Anaconda の Base 環境がデフォルトとして使用される。インストール環境によっては稀に問題が起こるケースもあるのでチェックには注意。

新規環境を作成

Environments タブを選択すると下のほうに「Create」ボタンがあるのでそれを押す。「Create new environment」ウインドウが立ち上がるので、作成する環境の名前を入力して、Python にチェックを入れて Create ボタンを押す。

Jupyter notebook を起動

新規作成した環境の矢印ボタンから「Open Terminal」を選択。下記コマンドを入力する。

Jupyter notebook

明示的にインストールしなくても、Jupyter notebook が使用できる。web サーバーが起動して既定のブラウザが立ち上がる。

Python コードを記述

Python3 の実行環境を作成する。

Python コードを記述して、Shift + Enter を押せば実行できる。

[Java] Windows と VS Code で Java の開発環境を構築

[Java] Windows と VS Code で Java の開発環境を構築

JDK の導入

Java の開発には、Java Development Kit (JDK) と呼ばれる開発用のソフトウェアをインストールします。JDK は Oracle のサイトからダウンロードすることが可能です。

2023年3月現在 Java 19 が最新版になっていますが、今回は LTS 版の Java 17 を利用します。

Windows, macOS, Linux のそれぞれの OS 用に提供されていますが、今回は Windows タブを選択して「x64 MSI Installer」をダウンロードして導入します。

環境変数とパスの設定

JDK のインストールが終わったら、環境変数とパスの設定を行います。

環境変数ウインドウのシステム環境変数から「新規」を選択します。

変数名:JAVA_HOME
変数値:C:\Program Files\Java\jdk-17

を入力して OK を押します。

続いて Path を選択して下記パスを追加します。

%JAVA_HOME%\bin

バージョン確認

コマンドプロントを立ち上げて、下記コマンドを打ち込みます。

javac -version

インストールした JDK のバージョンが表示されれば完了です。

実行確認

class Hello {
	public static void main(String args[]) {
		System.out.println("Hello World!");
	}
}

このコードをテキストエディターに入力して HelloWorld.java で保存します。保存後、下記コマンドでコンパイルします。

javac HelloWorld.java

同じフォルダ内に HelloWorld.class が保存されればコンパイル成功です。実行は下記コマンドを入力します。

java HelloWorld

画面上に Hello World! と表示されれば成功です。

Visual Studio Code を開発環境として使用

Extension Pack for Java の導入

VS Code を導入後 Extensions タブで Java を検索して「Exension Pack for Java」をインストールします。

拡張機能を導入後、Java プロジェクトは下記コマンドを打ち込みます。

> Java create java project

Project Type は No build tools で構いません。保存するフォルダとプロジェクトを名を入力すれば完了です。

プロジェクトの作成が完了すると App.java が作られています。Visual Studio Code 上で F5 キーを押すとコンパイルされて TERMINAL ウインドウに、実行結果が表示されます。

新規ファイルの追加

新規ファイルを追加したい場合は、src を右クリックして New FIles… から追加を行えます。

Reference

2022年のJavaまるわかり!最新バージョンからJavaを取り巻く環境まで
https://gihyo.jp/article/2022/07/java2022-0701

[DirectX11] Visual Studio 2019 で DirectX11 Sample をビルド

[DirectX11] Visual Studio 2019 で DirectX11 Sample をビルド

LNK2019 のリンクエラー

最新の Visual Studio で DirectX 9 や DirectX 11 の一部サンプルプロジェクトをビルドしようとすると 下記のような LNK2019 のエラーが発生する。

1>dxerr.lib(dxerrw.obj) : error LNK2019: unresolved external symbol __vsnwprintf referenced in function "long __stdcall StringVPrintfWorkerW(unsigned short *,unsigned int,unsigned int *,unsigned short const *,char *)" (?StringVPrintfWorkerW@@YGJPAGIPAIPBGPAD@Z)
1>C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Samples\C++\Direct3D11\VarianceShadows11\Debug\VarianceShadows11.exe : fatal error LNK1120: 1 unresolved externals

これを解決するためには、プロジェクト設定から静的ライブラリの追加が必要。

プロジェクトの設定変更

Project を右クリックして「Properties」を選択。

Linker -> Input の Additional Dependencies に下記の lib ファイルを追加する。

legacy_stdio_definitions.lib

これでビルドが通るはず。

[Windows] 使えなくなった USB メモリーをフォーマット

[Windows] 使えなくなった USB メモリーをフォーマット

間違ったディスクを選択しないように細心の注意を払う
自己責任で実行して下さい。

diskpart.exe を管理者権限で実行。

list disk
select disk 1

select disk の数字は、list disk の結果をもとに、ディスク番号を指定。

以下コマンドでクリーンできるが、本当に正しい番号をしているか要確認

clean
create partition primary
format fs=fat32 quick

これで復活できるはず。

[Chromebook] OS リカバリーして工場出荷状態へ戻す

[Chromebook] OS リカバリーして工場出荷状態へ戻す

中古で購入した Lenovo Ideapad Duet Chromebook をアップデートしようとしたら、画面には「更新は管理者によって無効になっています。」という文字が表示されて正しくアップデートが行えなかった。(英語表記だと “Chrome Updates are Disabled by your Administrator.”)

Powerwash を行ったがこれでは解決出来なかった。代わりに OS リカバリーをすることでようやく解決したので、その手順のメモ。

Chromebook を復元する

サポートサイトの手順を参考にする。私の環境だと、リカバリーモードへの移行と、OS 再インストール用のメディア作成が必要になった。

リカバリ用メディアは、Google Chrome の Chromebook リカバリ ユーティリティ拡張を使ってブラウザ上で作成出来る。

Chromebook の識別では、手持ちの端末を指定する。
私の場合は「Lenovo Chromebook Duet / Lenovo Ideapad Duet Chromebook」を選択。

続行で進めていければ、リカバリメディアが作成できる。

USB を刺して復元

リカバリーモードで起動した Chromebook には USB を刺してくださいと表示されていたので、作成したリカバリー用の USB を挿入。後は数分待てば自動で OS の再インストールと再起動が行われた。

復元した Chromebook にログインしたところ、無事にアップデートが行えた。