Nushellでコマンドのパスをクリップボードに格納する

題名の通りで、NushellをWindows Terminalに設定する時などコマンドのパスを取得する方法がわからなかった。

コマンドプロンプトとかであれば、下記でできる。

which nu | clip

Nushellの場合は、データがテーブル形式になっているのでできなかった。 Nushellの場合は下記でいけた。

which nu | get path.0 | clip

Go言語でChunk処理

大量のデータをBulk InsertするときにChunk処理を書く必要があったのと、はじめてGenericを使ったのでメモ。
C#Javaを使うことの方が多いので、なかなか書き方が慣れない。

func Chunk[T any](items []T, chunkSize int) (chunks [][]T) {
	for chunkSize < len(items) {
		items, chunks = items[chunkSize:], append(chunks, items[0:chunkSize:chunkSize])
	}
	return append(chunks, items)
}

github.com

SnakeCaseとCamelCaseを変換する

Vimを利用する場合

下記のライブラリを利用させてもらいました。

github.com

Plug "nicwest/vim-camelsnek"

:Snek     " converts to snake_case               ('foo bar' -> 'foo_bar')
:Camel    " converts to CamelCase                ('foo bar' -> 'FooBar')
:CamelB   " converts to camelbackCase            ('foo bar' -> 'fooBar')
:Kebab    " converts to kebab-case               ('foo bar' -> 'foo-bar')
:Screm    " converts to SCREAMING_SNAKE_CASE     ('foo bar' -> 'FOO_BAR')

Jetbrain系IDEを利用する場合

下記の記事を参考に、CamelCase というライブラリを利用することでできました。 mokky14.hatenablog.com

Shift+Alt+u で切り替えができるようになります。

EC2のAmazon Linux上のMySQLパスワードをリセットしたときのメモ

EC2のAmazon Linux2では、mysqld_safeコマンドはないようなので、--skip-grant-tables オプションで起動する必要がある。

--skip-grant-tables オプションを有効化

sudo systemctl set-environment MYSQLD_OPTS="--skip-grand-tables"
sudo systemctl restart mysqld

--skip-grant-tables オプションのおかげでMySQLにパスワードなしでログインできる

mysql -u root

--skip-grant-tables オプションが有効だとALTER USER でパスワード変更できないので、一度パスワードを空にする

mysql > UPDATE mysql.user SET authentication_string=null WHERE User='root';
mysql > exit;

--skip-grant-tables オプションを無効にする

sudo systemctl set-environment MYSQLD_OPTS=""
sudo systemctl restart mysqld

ALTER USER でrootユーザのパスワードを変更する

USE mysql;
ALTER USER 'root'@'localhost' identified BY 'new password';

Google Maps APIを利用して車での移動時間を調べる

Google Mapを使えばできるのですが、大量の地点をまとめて調べる必要があったので利用できるAPIを調べました。

ググった結果、こちらのサイトにたどり着きました。

qiita.com

Directions APIを利用すれば目的はほぼ達成のようです。

さらにDirections APIのドキュメントを探していると、クライアントライブラリも提供されているようです。

developers.google.com

Java/Python/Go/Node.js用のライブラリが提供されていますが、今回はPythonを選択しました。

作成したコードのサンプルはこちらになります。今回は車での移動時間を知りたいのでmode="driving"を指定しています。

gistdd3162012734421eec71b4841f62783a

何回もAPIを呼び出さなくてよいようにJSONをそのまま保存する方針をとったのですが、ensure_ascii=Falseを指定しないと日本語がエスケープされて保存されてしまうので注意が必要です。

キングジムのカクミルを購入しました

キングジムのカクミルを購入しました。

www.kingjim.co.jp

購入理由

普段予定はGoogle Calendarなどで管理しているのですが、スマホやPCからスケジュールを開いて見るということが煩わしく感じていました。 そこで、デスクにおいておける電子ペーパー的なものをさがしていたところ、サイズ感などがちょうど良さそうであったのでこちらを購入しました。

残念な点

カレンダーや時計を表示する機能があるのですが、今日の予定をカレンダーや時計と合わせて表示できるといいなと思っていたのですが、そういった使い方はできないようです。

注意

単三電池4本で動作するのですが、付属されません。

アップデートにはMicroSDカードが必要になります。
届いたバージョンは1.0ですが、2021年1月時点では既にVersion1.3のアップデートがあるので、アップデート作業が必要になります。