Emacsで行末の^Mを除去

Windowsで作ったテキストファイルの改行コードCR(^M)をEmacsで除去したのでメモ
replace-stringコマンドで「C-q C-m」を除去すればいい。

M-x replace-string ⏎
C-q C-m ⏎
⏎

たまに忘れる。
 

EmacsからPostgreSQLに接続

EmacsからPostgreSQLに接続したら楽だったのでメモ

Emacsを起動後、sql-postgresコマンドでサーバーに接続

M-x sql-postgres

ユーザー名・データベース名・サーバーを入力して接続。
.pgpassファイルを作っておけばパスワード入力しなくて済む。
.pgpassのパーミッションは600にしておく。

#~/.pgpass
localhost:5432:データベース:ユーザー:パスワード

別バッファで.sqlファイルをsql-modeで開く。
構文ハイライトがデフォルトでansiなので、これをsql-set-productコマンドを使ってpostgresに変える

M-x sql-set-product ⏎
postgres

そしてバッファとSQLコネクションをsql-set-sqli-bufferコマンドで関連付ける。

M-x sql-set-sqli-buffer

「*SQL*」というバッファがあるのでそれを選ぶ。
つながったら「C-c C-r」でリージョン内のクエリを実行出来る。

バッファ内ののクエリをまるごと実行するなら「C-c C-b」でOK.

 

Ubuntu 20.04: iwlwifiの802.11nをオフにする

Ubuntu 20.04 の iwlwifi で802.11n(5GHz)が途切れるので2.4GHzに繋いで応急処置したのでメモ。

iwlwifiのバグなのか。
2.4GHzのアクセスポイントに繋いだら異常なし。

しばらく 802.11nはオフにしておく。
下記オプションを /etc/modprobe.d/iwlwifi.conf に追記して再起動。

options iwlwifi 11n_disable=1

参考URL:
networking – Ubuntu 20.04 LTS Intel 7260 Wireless – won’t connect to Wifi network – Ask Ubuntu

 

jqコマンドでJSONを操作

コマンドラインでJSONを操作するjqコマンドが便利なのでメモ。

まずは俺のUbuntuにインストール。

sudo apt install jq -y

 

1.必要な要素だけ取り出す

例えばAWSのIPアドレス一覧から 東京リージョンのEC2のIPレンジだけ抜き取りたい場合はこうする。

curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes[]|select(.region=="ap-northeast-1")|select(.service=="EC2")|.ip_prefix'|sort -n > ip.txt

出力されたip.txtの中身はこうなる。

3.112.0.0/14
13.112.0.0/14
13.230.0.0/15
15.177.79.0/24
15.193.1.0/24
#以下略

何をやってるかというと、ip-ranges.jsonのprefixes要素の中にあるip_prefix要素にIPレンジが入ってる。

これをjqコマンドで取り出して、さらにjqのフィルタ機能を使う。
条件はregionがap-northeast-1で、serviceがEC2というもの。
さらに数値ソートしたものをip.txtに保存する。
 

2.CSVに変換する

CSV変換機能も便利だ。
これまた先のip-ranges.jsonを ip_prefix, region, service, network_border_group の順番ですべてCSV化するならこうだ。

curl https://ip-ranges.amazonaws.com/ip-ranges.json |jq -r '.prefixes[]|[.ip_prefix, .region, .service, .network_border_group]|@csv' > ip.csv

出力されたip.csvの中身はこうなる。

"35.180.0.0/16","eu-west-3","AMAZON","eu-west-3"
"52.94.76.0/22","us-west-2","AMAZON","us-west-2"
"52.95.36.0/22","ap-southeast-2","AMAZON","ap-southeast-2"
"120.52.22.96/27","GLOBAL","AMAZON","GLOBAL"
"150.222.81.0/24","eu-west-1","AMAZON","eu-west-1"

prefixes要素の中身を取り出して、
ip_prefix, region, service, network_border_group の順に配列したものを @csv コマンドでCSVにしている。
jq便利。

 

Hyper-V用の仮想ディスクイメージをKVMにインポート

Microsoftが無料で公開しているWindows10仮想マシンをKVMで動かしたのでメモ。

まずはMicrosoftのサイトからHyper-V用のイメージファイルをzipでダウンロード。

Virtual Machines – Microsoft Edge Developer
 

Hyper-V用のイメージを使う

 
zip内のVirtual Hard Disksというディレクトリの中にMSEdge – Win10.vhdxというvhdxファイルがあるので、これをqcow2に変換して使う。
他のファイルは不要。

ファイル名にスペースが入ってるのが気に入らないので適当にリネーム。
その後、qemu-imgコマンドでvhdxファイルをqcow2にコンバート。

$ qemu-img convert -O qcow2 win10.vhdx win10.qcow2

qcow2ファイルが出来上がったら、virt-manager(仮想マシンマネージャー)を起動して新しいVMを作成する。

[新しい仮想マシンの作成] > [既存のディスクイメージをインポート] を選んで進む。

既存のディスクイメージをインポート

そして、先程作成したqcow2ファイルをソースとして指定。
OSの種類はWindows10を選ぶ。
プルダウンが出て来ない、と思ったら「win」って入力したら出てきた。

qcow2ファイルの場所とOSの種類を指定

メモリとCPUの数を任意で変更して進めてインポート完了。

そして起動。

KVMでWin10を起動

パスワードは Passw0rd! で入れる。

KVM軽くて良い。

 

Ubuntu20.04にKVM環境を構築

Ubuntu20.04上にKVMを構築したのでメモ。

以前CentOS7上にKVMを構築した時のメモはこちら
 

1.KVMをインストール

まずは必要ツールをインストール。
今回はGUIのvirt-managerを使うのでインストールしておく。

sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager libosinfo-bin libguestfs-tools virt-top

続いてKVMを実行するユーザーをlibvirt関連グループに追加する。
orenomemo のところは実際のユーザー名に変える。

sudo adduser orenomemo libvirt
sudo adduser orenomemo libvirt-qemu

ここまで来たら一度OSを再起動する。
次はVMのインストールへ。
 

2.VMのインストール

今回はCentOS8をVMとしてインストール。
インストーラisoをダウンロードしておく。

そして仮想マシンマネージャー(virt-manager)を起動。

virt-manager

起動したら「新しい仮想マシンの作成」を実行。

新しい仮想マシンの作成

あとはインストールで使うisoファイルをローカルから指定して進めて行く。

インストールソースを指定

CentOSインストーラが起動したら、あとは普通にインストールすればOK.

CentOS8 installer

とても簡単。
VirtualBoxより軽くて快適。

 

FireHD8タブレットにゲームコントローラーを接続

暇なので手持ちのAmazon FireHDタブレットでゲームをする事にした。
せっかくなのでゲームコントローラーも購入。

買ったのはBlitzlのこれ↓

XBOX360 コントローラー Blitzl PC コントローラー 有線 ゲームパッド ケーブル Windows PC Win7/8/10 人体工学 二重振動

FireHDタブレットで使えるゲームコントローラー

このコントローラーをUSB OTGでつなぐために、microUSB変換アダプタも同時に購入。

買ったのはエレコムのこれ↓

ELECOM OTGケーブル microB-Aメス-USB2.0 ブラック 0.1m TB-MAEMCBN010BK

つなぐとこんな感じ。

OTGコネクタは別売です

そしてファイナル・ファンタジー13をプレイ。
超快適。

タブレット画面に表示される仮想コントローラーだとどうしても操作しづらいけど、これならストレスフリーでゲーム出来る。
 

Ubuntu 20.04 で背景を単色にする

Ubuntu 20.04 LTS (Focal Fossa) のデスクトップ背景をただの単色にしたのでメモ。

19.10の時もそうだったけど20.04もGnome設定の背景を画像から「色」にできない。

というわけで下記のコマンドで設定。
色は16進数のHTMLカラーコードで指定すればOK

gsettings set org.gnome.desktop.background picture-uri ''
gsettings set org.gnome.desktop.background color-shading-type 'solid'
gsettings set org.gnome.desktop.background primary-color '#6B818E'

Ubuntu 20.04 の日本語入力をfcitx-mozcにする

Ubuntu 20.04 LTS の日本語入力をfcitx-mozcに変えたのでメモ。

19.10の時と同じ方法で出来た。
Ubuntu 19.10の日本語入力をfcitx-mozcにする

しかし画面右上のメニューから「Mozcツール」が起動しない。

mozcツールが開かない

という訳でアプリケーションランチャーの中からMozcツールを起動。

ランチャーから起動

キーバインドを「ことえり」にして、いつもの使い勝手になった。