Amazon Kindleで書籍が購入できなくて困る

川尻こだま(@kakeakami)さん の本が出たってことで普段あまり使わないKindleアプリを起動して読もうと思ったのですが,以下のメッセージが表示されて購入処理(無料だけど)できません.

続きを読む

cpu情報を表示するcpufetch

cpufetchというscreenfetchインスパイアな感じのcpu情報表示ツールを見かけたので試してみました.

$ git clone https://github.com/Dr-Noob/cpufetch
$ cd cpufetch
$ make
$ ./cpufetch -s retro

                               ################
                       #######                #######
                  ####                              ####
              ###                                     ####    Name:              Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
         ###                                             ###  Microarchitecture: Ivy Bridge
         ###                                             ###  Technology:        22nm
      #                    ###                ###        ###  Max Frequency:     3.300 GHz
    ##   ###   #########   ######   ######    ###        ###  Cores:             2 cores (4 threads)
   ##    ###   ###    ###  ###    ####  ####  ###        ###  AVX:               AVX
  ##     ###   ###    ###  ###    ###    ###  ###       ###   FMA:               No
 ##      ###   ###    ###  ###    ##########  ###     ####    L1i Size:          32KB (64KB Total)
 ##      ###   ###    ###  ###    ###         ###   #####     L1d Size:          32KB (64KB Total)
 ##       ##   ###    ###   #####  #########   ##  ###        L2 Size:           256KB (512KB Total)
 ###                                                          L3 Size:           3MB
  ###                                                         Peak Performance:  52.80 GFLOP/s
  ####                                        ####
    #####                               ##########
      ##########               ################
          ###############################

標準のスタイルでテキストで貼り付けると真っ白になるので retro です.通常の実行結果は以下に.

続きを読む

Rust製のCLI電子メールクライアントのHimaraya

Rust製のCLI電子メールクライアントのHimarayaというものを見かけたので少し試してみました.

Himarayaは単体ではCLIのクライアントでバッチ的に利用できます.VIm/Neovimのプラグインを使うとTUIで直感的に操作できるようになるようです.
Windows/macOS/Linux(amd64)はリリースページからバイナリが入手できます.今回はLinux amd64環境で試しました.

$ wget https://github.com/soywod/himalaya/releases/download/v0.2.2/himalaya-linux.tar.gz (1)
$ tar tvf ./himalaya-linux.tar.gz (2)
-rwxr-xr-x runner/docker 9090192 2021-04-05 00:50 himalaya.exe
$ tar xf ./himalaya-linux.tar.gz (3)
$ sudo install -m 755 ./himalaya.exe /usr/local/bin/himaraya (4)
$ rm ./himalaya.exe
$ mkdir ~/.config/himalaya (5)
$ vi ~/.config/himalaya/config.toml (6)
$ cat ~/.config/himalaya/config.toml
name = "Kenichiro Matohara"
downloads-dir = "~/.config/himalaya/gmail/"
signature = "Regards,"

[matoken_gmail]
default = true
email = "matoken@gmail.com"

imap-host = "imap.gmail.com"
imap-port = 993
imap-login = "matoken@gmail.com"
imap-passwd-cmd = "gpg2 --no-tty -q -d ~/.msmtp-password-gmail2.gpg"

smtp-host = "smtp.gmail.com"
smtp-port = 487
smtp-login = "matoken@gmail.com"
smtp-passwd-cmd = "gpg2 --no-tty -q -d ~/.msmtp-password-gmail2.gpg"
  1. Linuxリリースバイナリのダウンロード
  2. アーカイブの内容確認
  3. アーカイブの展開
  4. /usr/local/binhimaraya として導入
  5. 設定ファイルディレクトリの作成
  6. 設定ファイル作成

設定ファイルは README.md にgmailの例が書かれているので,imap4/smtpの場合はそのまま真似すると良さそうです.
設定ファイルのパスワード部分の imap-passwd-cmd , smtp-passwd-cmd は平分でも書けるようですが,コマンドが書けるのでmsmtpで使っているgpg2のものを使いました.opensslなども使えます.パスワードマネージャを使っても良さそうです.

$ himaraya list

UID    |FLAGS |SUBJECT                                           |SENDER                     |DATE
403387 |       |[oss-security] CVE-2021-29136: umoci: malicious … |Aleksa Sarai               |2021-04-06 11:13:14
403386 |       |[oss-security] Django: CVE-2021-28658: Potential… |Mariusz Felisiak           |2021-04-06 09:10:32
403385 |       |Ingress Damage Report: Entities attacked by taar… |Niantic Project Operations |2021-04-06 07:52:16
403384 |       |Ingress Damage Report: Entities attacked by taar… |Niantic Project Operations |2021-04-06 07:52:14
403383 |       |Ingress Damage Report: Entities attacked by taar… |Niantic Project Operations |2021-04-06 07:52:15
403382 |      |CPUのコアを増やせば、コア間の通信が増え処理速度が上がらないのではありませんか?         |Quoraダイ
ジェスト                |2021-04-06 06:35:23
403381 |      |In October, you had 4.8K users visit your websit… |Google Analytics           |2021-04-05 22:44:18
403380 |      |Daily activity summary for Nextcloud              |Nextcloud                  |2021-04-05 21:30:06
403379 |       |Re: [oss-security] Risk of local privilege escal… |Leo Famulari               |2021-04-05 20:20:55
403378 |       |Re: [oss-security] Risk of local privilege escal… |Leo Famulari               |2021-04-05 20:19:15

いくつかのコマンドを使いバッチ的にメールボックスを操作できます.しかし普通のMUAとして使うには面倒です.

Vim/Neovimのプラグインを使うとTUIで利用できるらしいので試してみます.

Note
※前提条件として,vim-plugが使える状態になっている必要があります.
junegunn/vim-plug: Minimalist Vim Plugin Manager
$ echo "Plug 'soywod/himalaya', {'rtp': 'vim'}" >> ~/.vimrc

Vimの設定ファイルの ~/.vimrc にHimaraya pluginを追記します.
vimを起動して, :PlugInstall を実行してHimaraya Pluginを導入します.

その後,Vimの中で :Himaraya で起動します.

Himarayaの設定ができていればそのままTUIで使えるようになります :)

今の時点ではあまり使いやすくはなくAlpineやMutt/NeoMuttのほうが良さそうです.でも開発も活発そうなのでこれからに期待したいです.

ところで名前の Himaraya は山つながりで Alpine のインスパイアなのでしょうか?

環境
$ himalaya --version
himalaya 0.2.2
$ dpkg-query -W vim gpg
gpg     2.2.27-1
vim     2:8.2.2434-3
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ arch
x86_64

dnsクエリをスパイする dnspeep

dnspeep というRust製のdnsのクエリ内容を表示するプログラムを知ったので少し試してみました.

GitHubのReleaseページにLinux x86_64とmacOS x86_64のバイナリが置いてあるのでその環境だとそれをダウンロードして会伊藤するだけで使えます.他の環境では cargo build すればいいのかな?

$ wget https://github.com/jvns/dnspeep/releases/download/v0.1.1/dnspeep-linux.tar.gz
$ tar tvf ./dnspeep-linux.tar.gz
-rwxr-xr-x runner/docker 5570536 2021-04-02 06:20 dnspeep
$ file dnspeep
dnspeep: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=a917041c223b18db709ff3c563ee1a6a3c82ba6e, for GNU/Linux 3.2.0, with debug_info, not stripped
$ ./dnspeep -h|xsel
Usage: ./dnspeep [options]

Options:
    -p, --port PORT     port number to listen on
    -f, --file FILENAME read packets from pcap file
    -h, --help          print this help menu

What the output columns mean:
   query:     DNS query type (A, CNAME, etc)
   name:      Hostname the DNS query is requesting
   server IP: IP address of the DNS server the query was made to
   response:  Responses from the Answer section of the DNS response (or "<no response>" if none was found).
              Multiple responses are separated by commas.

$ sudo ./dnspeep
query name                           server IP            response
A     tweetdeck.twitter.com.         192.168.1.102        CNAME: td.twitter.com., A: 104.244.42.132, A: 104.244.42.4, A: 104.244.42.68, A: 104.244.42.196
  :

libpcapからパケットを引っ張ってdnsのクエリを整形して出力しているようです.こんな感じでtcpdumpでもいいのですが,dnsに特化しているのでオプションとか覚えなくていいのはいいですね.

$ sudo tcpdump -i eth0 udp port 53 or tcp port 53
環境

dnspeep v0.1.1

$ dpkg-query -W libpcap0.8 tcpdump
libpcap0.8:amd64        1.10.0-2
libpcap0.8:i386 1.10.0-2
tcpdump 4.99.0-2
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ arch
x86_64

カラフルでかわいい prettyping

pingのカラフルなラッパーの prettyping というものを知りました.

少し試してみました.

$ curl -O https://raw.githubusercontent.com/denilsonsa/prettyping/master/prettyping
$ install -m 755 ./prettyping ~/bin/
$ ls -l ~/bin/prettyping
-rwxr-xr-x 1 pi pi 23396 Apr  1 22:08 /home/pi/bin/prettyping
$ ~/bin/prettyping 1.1.1.1
0 ▁ 10 ▂ 20 ▃ 30 ▄ 40 ▅ 50 ▆ 60 ▇ 70 █ 80 ▁ 90 ▂ 100 ▃ 110 ▄ 120 ▅ 130 ▆ 140 ▇ 150 █ 160 ▁ 170 ▂
180 ▃ 190 ▄ 200 ▅ 210 ▆ 220 ▇ 230 █ ∞
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
▂▅█▁▄▂█
 0/  7 ( 0%) lost;   76/ 107/ 178ms; last:   76ms
 0/  7 ( 0%) lost;   76/ 107/ 178/  27ms (last 7)

カラーで見るときれいです.

prettyping

安定した回線だと緑で面白くないので不安定な回線や遠くのアドレスを指定するといいかもしれません.今回は電波状況の悪い携帯回線で試しました.(-120dBM前後の圏外になったり戻ったりな場所)


https://www.youtube.com/watch?v=gL87DBohRaQ
環境
$ dpkg-query -W iputils-ping curl coreutils
coreutils	8.30-3
curl	7.64.0-4+deb10u1
iputils-ping	3:20180629-2+deb10u2
$ lsb_release -dr
Description:	Raspbian GNU/Linux 10 (buster)
Release:	10
$ arch
armv7l
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2