さんざん待ったけれども、はてなブログが https 化したので、応援の意味もこめ少しだけだけど、はてなスターを購入しました。
これから毎月読んだ本を記録することにしました。
この本の基本的なテーマは、自分の考え方とも一致するし、他の書籍でも言及されていて今更という感じもするけれども、いろいろ実践的な Tips が詰まっていて参考になりました。
詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~
GoogleAppsScript の日本語の本は珍しいので応援したのですが、正直言って前半の JavaScript の文法等の解説は他の本や Web の情報でも十分賄えるので不要だと思いました。 それよりももうすこしパーミッションに関連についての解説を充実させて欲しかったです。 API や Web アプリとして公開する場合の情報もほとんど書かれていないので、少し肩透かしを食らった感じです。
アルスラーン戦記もやっと完結したので最後の3冊をまとめて読みました。終盤になって大量にキャラクターが死ぬのは構わないのだけれども、ちょっと敵がショボすぎる感じがしていまいち盛り上がりに欠けるような気がしました。
残念ながら グレッグ・イーガン の理論パートは僕にはちょっとちょっと難しすぎるけれども、ストーリー的にも十分面白いので頑張って読んでみました。一応アロウズオブタイムも読むつもりです。
しばらくぶりに自宅の Linux サーバーにハードディスクを増設したので記録しておきます。
自宅サーバーでそれほど重要なデータでもないので、普通のPC用のハードディスクを増設しました。
Seagate BarraCuda 2TB【 2年保証 】正規代理店 3.5インチ HDD 内蔵 ハードディスク SATA 6Gb/s 64GB 7200rpm
ハードディスクの増設は何回もやったことがあるのですが、 最近はGUIで設定してばかりだったので、コマンドラインでやるのは久しぶりです。
増設前の /etc/fstab
は以下のようなものでした。
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda1 during installation UUID=9a65b311-ec87-47ae-9a45-5d1c0636d912 / ext4 errors=remount-ro 0 1 # /tmp was on /dev/sdb2 during installation UUID=5550e624-abfb-49eb-8708-06c7b0df64e6 /tmp ext4 defaults 0 2 # swap was on /dev/sdb1 during installation UUID=95b623db-53b0-4bd4-bce3-de3dc817bceb none swap sw 0 0
今度増設するドライブは /dev/sdc
になります。
GPT ディスクなので フォーマットには gdisk
コマンドを使いました。
$ sudo gdisk /dev/sdc GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): o 「新しい空の GUID partition table (GPT) を作成」 This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): Y Command (? for help): n「新しいパーティションを作成」 Partition number (1-128, default 1): First sector (34-3907029134, default = 2048) or {+-}size{KMGTP}: Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): w 「パーテーションテーブルを書き込んで終了」 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdc. hiroshi@hp1:~$ sudo mkfs.ext4 /dev/sdc1 mke2fs 1.42.13 (17-May-2015) Creating filesystem with 488378385 4k blocks and 122101760 inodes Filesystem UUID: 3627b957-fd37-4147-84e4-62ff8400d177 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done $
次にファイルシステムを指定してフォーマットします
$ sudo mkfs.ext4 /dev/sdc1 mke2fs 1.42.13 (17-May-2015) Creating filesystem with 488378385 4k blocks and 122101760 inodes Filesystem UUID: 3627b957-fd37-4147-84e4-62ff8400d177 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done $
lsblk で UUID を確認します
$ lsblk -o NAME,UUID NAME UUID sda └─sda1 9a65b311-ec87-47ae-9a45-5d1c0636d912 sdb ├─sdb1 95b623db-53b0-4bd4-bce3-de3dc817bceb └─sdb2 5550e624-abfb-49eb-8708-06c7b0df64e6 sdc └─sdc1 3627b957-fd37-4147-84e4-62ff8400d177
/etc/fstab に次の行を追記します。
UUID=3627b957-fd37-4147-84e4-62ff8400d177 /srv ext4 defaults 0 2
$ sudo mount -a
でマウントします。
以上でした。
昔に比べて、クライアントサイドの JavaScript だけで、かなり色んな事ができるようになったので、手抜きの人(自分とか)用の favicon ジェネレータを作ってみました。
文字を入れるだけでとりあえず favicon ができるので、デザインがあまり必要ではい (でもブラウザのタブを沢山開いた時でも区別したいので、最低限の favicon はつけたい) 時には便利ではないでしょうか。
なお、同様のサイトとして Favicon Generator とうのがあります。もう少しこった物が欲しい人はこちらを使った方がよいかもしれません。 (僕はもう歳なので、複数文字だと見づらいのですが)
NISAで外国株を買って持っているのですが。5年目の配当の課税について気になったので、SBI証券に問い合わせてみたら以下のような回答をもらいました。
NISA口座で保有する外国株式・海外ETFの配当金・分配金は、権利取得時にNISA預りで保有していて、効力発生日(支払開始日)が5年間の非課税期間内であることが条件になります。
例えば、2016年にNISA口座で買付した株式を最終年(2020年の5年目)の12月に権利を獲得し、翌年の3月に受取る配当金は課税されるかと存じます。
つまり5年目の終わりギリギリに売却してその時、配当金を受け取る権利が発生していると、あとで申告しないといけないという事です。(外国税額控除の適用申請) NISA以外の株取引は特定口座でやっているので、株については申告手続きを省略できていたですが、NISAを使っていると (5年以内に売っても) 場合によっては申告の処理をしなくてはいけなくなるというのは意外でした。
プログラムを実行して結果を返す mastodon bot を作ってみました。 - Okada Hiroshi の blog
を改良して、ソース−コードを公開しました。
HiroshiOkada/hello-bot: A Mastodn bot that run short programs
画像を出力する部分で日本語が上手く表示できなくて修正に時間がかかってしまいましたが、なんとか公開できる状態になったと思います。
対応プログラミング言語も少し増やして 29言語ほどにしました。
拡張子 | 処理系&言語 |
---|---|
.asm | NASM |
.bc | bc |
.bf | beef(Brainfuck) |
.cpp | clang++(c++) |
.cs | mcs/mono(C#) |
.c | gcc(C) |
.dot | dot/Graphviz |
.f .f90 .f95 | gfortran |
.go | go |
.hs | ghc |
.html | phantomjs |
java | openjdk-9 |
.js | nodejs |
.lsp .lisp | clisp |
.lua | lua5.3 |
.ml | ocaml |
.php | php7 |
.plt .gnuplot .gpi | gnuplot |
.py2 | python2 |
.py3 .py | python3 |
.pl | perl |
.rb | ruby |
.scm | guile(scheme) |
.sh .bash | bash |
.sql | sqlite3 |
.svg | inkscape |
.ts | tsc(TypeScript) |
.vim | vim |
.zsh | zsh |
せっかく mastodon サーバーを立てたのだから bot を作ってみようと、プログラムを実行して結果を返す mastodon bot を作ってみました。
自分で立てたサーバーなので、負荷を気にせずに実験できるのはメリットの一つです。
今回作ったのは、プログラムを送ると docker コンテナ上で実行して出力を返すという bot です。
例えば、 @hello@mastodon.toycode.com 宛に
@hello@mastodon.toycode.com hello.cpp #include <iostream> int main() { std::cout << "Hello, World!\n"; }
のようなメンションを toot すると、 Hello, World と帰ってきます。
@hello@mastodon.toycode.com
の次の行にあるファイル名の拡張子で、どのプログラム言語かを判定しています。
又、ファイル名を書かずに shebang で始めることもできます。
#!/bin/bash echo "今日は世界"
頑張って 20言語以上に対応したので、遊んでみて下さい。