SKKでかな入力時に全角記号が打てない▼問題

全角英数モード使え

終わりです。
とはいえなんかカスタマイズする方法が見つかったので、適当にリンクをならべてお茶を濁しておきます。
+ 設定方法

blog.onodera.asia

  • コピペした文字

https://www.1101.com/dictionary/hobojisyo/kigou_yomikata.html

incompleteness-theorems.at.webry.info

▼感想

https://pbs.twimg.com/media/DYlFv51VwAUdqWr.jpg

釣りをはじめました

♪ BGM: Devine Moments Of Truth/ Shpongle

まえがき

この記事はmstdn.maud.io Advent Calendar 2019 - Adventarの11日目の記事です。
昨日はtana3nさんの[]でした。

わたしはだぁれ?

北九州を住処にしている一般男性(2X歳)です。 末代でのアカウントは

mstdn.maud.io

ですが、ステータスの通り、いわゆるお一人丼を建てて、そっちに引っ越してグダグダ管を巻いています。

スーパーで買った方が早いのでは?

スーパーで買ったら金銭でしか承認されないけど、釣りなら仕掛けにかける金銭で承認され、魚から承認され、大きいのや珍しいのが釣れれば周りの釣り人から承認されて気持ちが良いんですよ!!!!!!!!!!!!!!!!!

今何が釣れてる?

そろそろ難しくなってきましたがアジを頑張って釣ろうとしてます。いわゆるアジング。
実際に釣れているのはこの時期の魚であるメバルとかタチウオとかです。
「正直アジは春まで待った方が良い気がしてきた」とか弱気になったりもしますが、釣果情報とか見てると年内まではアジを諦めずに狙おうと思います。

f:id:j1nsuke:20191206014122j:plain
適当にタダ巻きしてたら釣れたタチウオ

使ってるパーツとか

最初は20年くらい前?のトライフォースZってやつを使ってましたが、ライントラブルが頻発してつらかったので近所の釣具屋で買った1800円の”いわゆる”釣り竿(スピニングタックル)を使っています。

あとがき

最近釣りにハマってたくさん気付いた事があり、できるだけ気付いた事をシェアーしたかったんですけど、一つの記事にまとめるのは難しかったです。あと常に何かが欠乏しているので助けてください。

f:id:j1nsuke:20191210230052p:plain
またの名を:thinking_face:

明日はGirAFFE Beerさんの番です。グラッツェ!!!!!!!!

Mastodonを再起動したらコケた話(解決済み)

僕が建てているMastodonではサーバーOSにArch Linuxを使っているんですが、ちょっとアップデートしたらボロカスになったので修正しました。
問題は2つあり、

1. sudo pacman -Syuしたらローカルに突っ込んでるNative Extensionsと合わなくなった

2. PostgreSQLのバージョンアップの作業をサボっていた

これでした。アップグレードを雑にやると良くないなとしみじみ感じました。以後気を付けます。
それぞれ解決して無事に復活したのでメモ程度に残しておきます。

打ったコマンドまとめ

$ sudo pacman -Syu
$ cd ~/live
$ git fetch --tags
$ git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
$ sudo reboot
ここでmastodon-web.serviceが無限に落ちまくる
$ sudo systemctl status mastodon-web.service
$ sudo journalctl -b | less
$ gem install bundler -v 1.17.3
$ RAILS_ENV=production bundle install
$ yarn install
$ RAILS_ENV=production bundle exec rails db:migrate
ここでmigrate失敗、charlock_holmesというgemが見つからないというエラーが出る
$ bundle pristine <- 1番が解決
$ RAILS_ENV=production bundle exec rails db:migrate
ここでPostgreSQLが動いてないよーみたいなエラーが出たのでデータベースのアップグレード
$ sudo systemctl status postgresql.service
$ sudo pacman -S postgresql-old-upgrade
$ sudo systemctl stop postgresql.service
$ sudo mv /var/lib/postgres/data /var/lib/postgres/olddata
$ mkdir /var/lib/postgres/data /var/lib/postgres/tmp
$ sudo chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp
$ sudo su postgres
[postgres]$ initdb --locale ja_JP.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
[postgres]$ cd /var/lib/postgres/tmp
[postgres]$ pg_upgrade -b /opt/pgsql-11/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data
[postgres]$ exit
$ sudo reboot <- 2番が解決
$ cd ~/live
$ RAILS_ENV=production bin/tootctl cache clear
$ sudo rm -rf /var/lib/postgres/olddata /var/lib/postgres/tmp

参考にしたサイトリスト

Unable to start sidekiq, cannot open charlock_holmes - Troubleshooting - Mastodon Meta Discussion Board

Running a Mastodon instance using Arch Linux · Lond's Stuff

doc/howto/troubleshooting.md · d9b71cd97e736a8b87c94686c309f343ebf36d9f · GitLab.org / GitLab Development Kit · GitLab

PostgreSQL - ArchWiki

Arch LinuxでBrother製のプリンターを使ように設定する(debパッケージ編)

!!注意(Attention)!!

もし同じような事(debパッケージをバラして使う)をする場合は自己責任でお願いします

TL; DR

Arch LinuxでBrotherのプリンター(MFC-J5720CDW)を使いたいけど、AURにもGuteprintにもドライバーが無いので困っていた。
幸い公式サイトでdebパッケージは入っていたので、それらをバラして適切な場所に配置すると印刷できるようになった。

前提

  • GNOMEを使っている
  • GNOMEのプリンタ周りのインストールが済んでいる

やったこと

  1. yay -S brother-mfc-j5910dwで近いバージョンのプリンターを入れて、32bit用の依存関係とかを解決する
  2. sudo mkdir /var/spool/lpdsudo mkdir /usr/lib/cups/filterで必要なディレクトリを掘る
  3. 公式サイトからLPRドライバーとCUPS wrapperのdebパッケージを落としてくる
  4. LPRドライバー編
    4.1. 適当なディレクトリを掘って、ar xv mfcj5720cdwlpr-[バージョン].i386.debdebパッケージをバラす
    4.2. tar xf data.tar.gzでバイナリとかその他を取り出す
    4.3. optとusrが吐き出されるので、sudo cp -r opt/brother/Printers/* /opt/brother/Printers, sudo cp -r usr/bin/* /usr/binでLPRドライバーをコピーする
  5. CUPS Wrapper編
    5.1. LPRドライバーと同じ手順でdebをバラして、data.tar.gzを取り出し、data.tar.gzからoptを取り出す
    5.2. LPRドライバーと同じようにコピーする
  6. sudo /opt/brother/Printers/mfcj5720cdw/cupswrapper/cupswrappermfcj5720cdwでppdファイルをインストール
  7. sudo systemctl start org.cups.cupsd.service, sudo systemctl enable org.cups.cupsd.serviceでサービスの起動、有効化
  8. このままだとUSB接続の設定なので、http://localhost:631 にアクセスしてプリンターをipp://[プリンターのIP]/ipp/port1に変更
  9. 印刷のテスト

Arch LinuxのPCからUSBメモリにArch Linuxをインストールして良しなにするメモ

最近人と話す機会がなく、余裕がなくなっているのをひしひしと感じています。
普段使ってるArch Linuxでなんかあった用にUSBにArch Linuxをインストールしているのですが、容量を増やしたり、面倒になったりで何回もインストールを繰り返しているので忘れないうちにメモにしておきます。
基本的にはこの記事1(Qiitaで多分いちばん読まれてるArch インストールガイド)とArch Wikiのインストールガイド2に沿っています。
ただし、USBにインストール3となると少しカスタマイズが必要です(どうもURL中にアンダーバーが含まれてるとリンクが外れるみたいで、こいつだけbit.lyを通しています)。

前提

  • x86_64(amd64)版Arch LinuxをインストールしたPCがある。
  • 上記のPCはインターネットに接続されている。
  • 上記のPCには1つ以上のUSBポートがある。
  • 上記のPCはx86_64 UEFI(セキュアブートをオフにした状態)でのみ起動する(Legacy BIOSi386 UEFIでの起動は考慮していません)。
  • 上記のPCでインストールに利用するアカウントはroot権限またはsudoが利用できる権限を持っている。

やったこと

mkfs.btrfs /dev/sdXしてfstabにnoatime,discard,ssd,compress=lzoを追記
Waylandの対応はGNOMEが一歩先を行っているのでgdmを入れる
gdmからSwayに渡したりすると尚良
GNOMEでもいいんだけど、WaylandだとCaps LcokとCtrlをスワップさせるのが効いていない現象がGNOMEでもKDEでもあるのでどうにかならんかな〜という気持ち
今日本語入力はfcxitx-mozcを使ってるけど、mozc自体が更新1年以上止まってるし(Googleなので当然のようにPython2が必須)、国際化の観点で言えばibusだけどCJKV言語だとfcitxが圧倒的で、GNOMEibusしか対応したくなさそうだし、七面倒くさいことこの上ない。
node-gypもMayaもpython2の対応がアレだし、noto-emojiとかのビルドにもpython2が影が忍び寄るし、2020年にpython2の移行はできないんじゃないか?と不安になってくる。

参考文献

RaspberryPi 3B+ にArch Linux(aarch64版)をインストールするメモ

Raspberry Pi 4 model Bが発売されました! パチパチパチパチ〜!
USB3.0もサポート!給電はType-C!デュアルモニタにも対応!選べるRAMが3種類!とっても楽しみですね!なぜ半年前に3B+を買ってしまったんだ...
公式的にも「デスクトップコンピュータとして!」って言ってオススメしてるのでそういう使い方も想定しているのでしょう。RAMが4GBもあれば、XfceとかをVNCとかするにも十分機能するんじゃないかなと思います。いやまぁOpenbox使えば、というかRaspbianを使えば3B+でもVNC with X window出来るじゃんというのはそうなんですが、やっぱり私がローリング・リリースのディストリビューションを使いたいというのが正直なところ

私としても「もう待ちきれないよ!早く出してくれ!」と言った気分なのですが、手元にあるのは3B+。おもちゃとして使うにも、如何せん普段電子工作をしないのでイマイチ使いこなせてないのです。じゃあなんで買ったんだ

という訳で、RaspberryPi 3B+ にArch Linux(aarch64版)をインストールしていこうと思うんですが〜(Youtuber風に)、やっぱりRapberry Pi - ArchWikiにだいたいの事は載っていますので、そっちを最初に参照したほうが良いと思います。

インストールの準備

まず、適当にSDカードが挿せるLinuxマシンを手元に用意します。
端末を開きます。$ sudo su -と打ってrootユーザーになっておくのが吉。
SDカードを挿します。
大抵の統合デスクトップ環境だと自動マウントをせず「マウントしてどんな操作を行いますか?」みたいなポップアップが出てきますが、無視して端末に向き合いましょう。
あとは適当に以下のコマンドを打っておきましょう。

パーティションを作る。

パーティションは大事です。僕はパーティションをミスって貴重な夜の時間を無駄にしました。

# fdisk /dev/mmcblk0  
Command : o  
Command : n  
Command : p  
Command : Enter  
Command : +300M  
Command : t  
Command : c  
Command : n  
Command : p  
Command : Enter  
Command : Enter  
Command : w  

ディスクの初期化とインストール作業

# mkfs.vfat -F32 /dev/mmcblk0p1  
# mkfs.ext4 -O "^has_journal" /dev/mmcblk0p2 
# mkdir root  
# mkdir boot  
# mount /dev/mmcblkop2 root  
# mount /dev/mmcblkop1 boot  
# wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz  
# bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz -C root  
# sync  
# mv root/boot/* boot/  
# umount root boot  

ここまで首尾良く行ったらSDカードを外し、ラズパイにSDカードを挿して、電源を投入します。

起動してから

Login: root
Password: root
# wifi-menu  
# nano /etc/resolvconf.conf  
name_servers=1.1.1.1  
name_servers_append=1.0.0.1  
# systemctl restart systemd-resolved.service  
# pacman-key --init
# pacman-key --populate archlinuxarm
# pacman -Syu

VPS(Arch Linux)でNon DockerなMastodonを立てたときのメモ(アップデート方法、証明書自動化を追記)

自分でいじれる丼が欲しかったので雑にやりました。 なにか問題が起きたときに追跡しづらいみたいなことを聞いたのと、RAMが小さいVPSなので、Docker化はしていません。

下準備

  1. Linodeでも何でも良いので、VPSにArch Linuxのイメージをバッとインストールする。前回Misskeyを立てたときに契約してたやつを使うのでRAM2GB, SSD50GBのやつを使う。
  2. Webコンソールでrootにログインしたあと、# pacman -Syuしてパッケージの更新をする。
  3. useradd -m -G wheelmastodonユーザーを作成する。
  4. visudoしてwheelにsudoつかうのを許可する(ローカルユーザー visudoとかで検索してね!)。
  5. 手元のPCのターミナルでssh-keygen -t ed25519 -C "hogehoge"した後、公開鍵とかsshの設定をよしなにする(公開鍵をサーバーのauthorized_keysに貼り付けたり、パーミッションとかを確認する)(Authorized_keysとかポート番号とか気をつけてね)。
  6. VPSを再起動する。

    ここからsshをつかってやります。

    基本はjoinmastodonを見ながらやります。

  7. 手元のPCからssh XXXX(サーバーの宛先)した後、$ sudo pacman -S fail2banでfail2banをインストールする。
[DEFAULT]
destemail = your@email.here
sendername = Fail2Ban

[sshd]
enabled = true
port = 22

[sshd-ddos]
enabled = true
port = 22
  1. 上の内容を/etc/fail2ban/jail.localに保存する。
  2. fail2banを再起動する。
  3. $ sudo pacman -S iptablesiptablesを入れて
*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#  The -dport number should be the same port number you set in sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

と書いて設定したあと、$ sudo iptables-restore < /etc/iptables/rules.v4で有効化する。
11. $ sudo pacman -S nodejs-lts-dubnium make imagemagick ffmpeg file git libpqxx libxml2 libxslt protobuf pkg-config gcc autoconf bison libyaml readline zlib nginx redis postgresql postgresql-docs postgresql-libs certbot certbot-nginx yarn libidn11 jemalloc libidnで依存ライブラリをねじ込む。
12. rbenvの設定をよしなにして2.6.1に合わせたあと(2019年6月現在)、gem install bundler --no-documentでbundlerをインストールする。

PostgreSQLの設定

  1. $ sudo su - postgresでユーザーを切り替え、$ initdb --locale jp_JP.UTF-8 -E UTF-8 -D /var/lib/postgres/dataでデータベースの初期化を行う。
    2019年6月26日追記 : 初期化を行ったあと、$ sudo systemctl (start|enable) postgresql.serviceで起動・有効化してください。
  2. $ psqlと打ってPostgreSQLに接続したあと
> CREATE USER mastodon CREATEDB;
> \q

と打ってデータベースを作成。
15. $ exitmastodonユーザーに戻る。

Redisの設定

  1. これを参考にしながらredisの設定をして動かす(enableもしておくと吉?)。

Mastodonの設定

  1. $ git clone https://github.com/tootsuite/mastodon ~/liveMastodonの引っ張ってくるその後$ cd ~/liveMastodon直下に移動する。
  2. $ git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)で最新版のMastodonに切り替える。
bundle install \
  -j$(getconf _NPROCESSORS_ONLN) \
  --deployment --without development test

20.yarn global add node-gypした後、yarn install --pure-lockfileRubyJavascriptの依存ライブラリをプロジェクトに突っ込む。
21. RAILS_ENV=production bundle exec rake mastodon:setupで設定をする。
22. PostgreSQLとかRedisは特にいじってないので # Enter連打でオッケー
23. メールに関してはsmtpサーバーとメールアドレス、パスワードが分かってればなんかできた(お一人丼ならあまり必要性がない)。
24. そのままDBのセットアップとかプリコンパイルをするか聞かれるのでYesを選択。
25. 管理者アカウントの作成。なんでも良いけど吐き出されるパスワードは控えておこう。
26. 設定の出力が終わったらrootになり、/etc/nginx/conf.dディレクトリを作る。
27. cp /home/mastodon/live/dist/nginx.conf /etc/nginx/conf/mstdn.confでコピーしたあと、自分のドメイン用に書き換える。
適当に暗号スイートをいじったりして楽しむ。
28. nginx -tで設定ファイルのテストをする(SSLの認証を取るときのために、443番ポートのsslの記述を外しておく)。
29. certbot --nginx -d mstdn.jnsk.info -w /home/mastodon/liveSSL証明書を発行する。
32. 証明書を発行出来たらconfのsslの設定を直す。
30. /home/mastodon/live/dist/以下にあるserviceファイルを/etc/systemd/system/にコピーする。
31. 3つあるうち全部enableする。
$ sudo systemctl enable mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service
33. /home/mastodon以下に$ chmod +x -R ~/で実行権限を付ける(ここはちょっと危ないかもしれない)。
34. $ sudo systemctl start nginxでnginxをスタートさせた後、各サービスもstartさせる。
$ sudo systemctl start mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

## 完走した感想
死ぬほど面倒くさい。
証明書はLet's Encryptを使っているので自動更新の設定をしないと行けないんですが、これまた面倒で後回しになってる → 追記でやりました。

※追記 アップデート方法

参考1, 参考2

$ sudo pacman -Syu or $ yay (yayの入れ方はググったら5番目以内に出てくるやつを参考にしてほしい)  
$ cd ~/live  
$ git fetch && git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)※なんかmodifiedが大量に出てきたので$ git stashしたりした  
$ bundle install  
$ yarn install  
$ RAILS_ENV=production bundle exec rails db:migrate  
$ RAILS_ENV=production bundle exec rails assets:precompile  
$ sudo systemctl restart mastodon-*.service  
$ RAILS_ENV=production bin/tootctl cache clear  

追記の追記 証明書更新の自動化

Arch Wikiを信じよ ということでArchWikiを参考にしています。
Arch LinuxなのでSytemd Timerを使います。SysVinit?知らない子ですね...
基本は/etc/systemd/system/に更新手順を書いた設定ファイルを2つ作成(serviceとtimer)する→それを有効化・起動
するで自動化の設定は終わりです。
1. root権限で/etc/systemd/system/certbot.serviceを開いて以下の内容を書いて保存。

[Unit]
Description=Let's Encrypt renewal

[Service]
Type=oneshot
ExecStart=/usr/bin/certbot renew --quiet --agree-tos --deploy-hook "systemctl reload nginx.service"
  1. 同様に、root権限で/etc/systemd/system/certbot.timerを以下のように書いて保存(参考記事ではデイリーだけどウィークリーでも問題ないかなって思って、参考記事から少し改変してます)。
[Unit]  
Description=Weekly renewal of Let's Encrypt's certificates  
  
[Timer]  
OnCalendar=weekly  
RandomizedDelaySec=1h  
Persistent=true  
  
[Install]  
WantedBy=timers.target  
  1. root権限でcertbot.timerを有効化・起動する。
# systemctl enable certbot.timer  
# systemctl start certbot.timer