動かざることバグの如し

近づきたいよ 君の理想に

Twitterクライアント「feather」で縦長ツイートをミュートする

結論

featherの設定を開き、正規表現キーワードミュートで以下で新規作成

(.{1,3}\n){4,}

以下のようになっていればOK

f:id:thr3a:20191008234757p:plain

経緯

featherというiOSの超便利なTwitterクライアントがいる。

feather for Twitter

有料版と無料版があって自分は有料版しか使ったことがないので差を知らないのだが、公式クライアントよりも1000倍使いやすくて見やすい。

で、ちょいちょい流れてくる無駄な長い改行ツイートを消し去りたい。

featherでは公式クライアントよりも便利な機能の1つとして「正規表現ミュート」がある。仮にもエンジニアで飯を食っている以上使わない手はない。

正規表現の解説

自分の手に負えない正規表現は使うなってマックのJKが言ってた

今回のミュートする正規表現は以下

(.{1,3}\n){4,}

これで「4文字未満の行が4回以上出現したらミュート」できる

  • . なんらかの1文字
  • {1,3} 直前の文字列が1〜3回連続で続く。今回は.で何でもよいので半角スペースとか全角スペースがくる。当然「あ」のような文字列も対象
  • \n 改行
  • (.{1,3}\n) 上記をグルーピング
  • {4,} 直前の文字列が4回以上続く。今回はグルーピングしたのを1文字とみなすので以下略

ここでポイントなのがそもそもツイッターの仕様的に「連続した改行をツイートすると1つに省略されてしまう」点。よって連続して改行したい場合は

# 見やすいように_を半角スペースとする
_
__
_

___

のようにスペースを不規則に挟むしかない。よってこの正規表現で1行が4文字未満の行が連続したら〜で判定できる。

余談だが、一時期流行った?TLでウーしようと思います! の診断メーカーも同じ手法で疑似連続改行しているので同様にカットできる。(てか本家消されてる?

f:id:thr3a:20191009000249p:plain

懸念点

わからん 短冊メーカーとか誤判定されそうだけど、いる?

UbuntuでNokogiriをインストールエラーになったときの対処法

環境

発端

わりと頻出ライブラリのNokogiriだが、 bundle install nokogiri ができない。

以下のような長いエラーが出る。結局のところ「You have to install development tools first.」と言われているが、build-essential入れてるんだよな〜〜〜

Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.

current directory: /var/lib/gems/2.3.0/gems/ffi-1.9.18/ext/ffi_c
/usr/bin/ruby2.3 -r ./siteconf20171120-16712-g2o2td.rb extconf.rb
checking for ffi.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.

Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/bin/$(RUBY_BASE_NAME)2.3
--with-ffi_c-dir
--without-ffi_c-dir
--with-ffi_c-include
--without-ffi_c-include=${ffi_c-dir}/include
--with-ffi_c-lib
--without-ffi_c-lib=${ffi_c-dir}/lib
--with-libffi-config
--without-libffi-config
--with-pkg-config
--without-pkg-config
/usr/lib/ruby/2.3.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /usr/lib/ruby/2.3.0/mkmf.rb:587:in `try_cpp'
from /usr/lib/ruby/2.3.0/mkmf.rb:1091:in `block in have_header'
from /usr/lib/ruby/2.3.0/mkmf.rb:942:in `block in checking_for'
from /usr/lib/ruby/2.3.0/mkmf.rb:350:in `block (2 levels) in postpone'
from /usr/lib/ruby/2.3.0/mkmf.rb:320:in `open'
from /usr/lib/ruby/2.3.0/mkmf.rb:350:in `block in postpone'
from /usr/lib/ruby/2.3.0/mkmf.rb:320:in `open'
from /usr/lib/ruby/2.3.0/mkmf.rb:346:in `postpone'
from /usr/lib/ruby/2.3.0/mkmf.rb:941:in `checking_for'
from /usr/lib/ruby/2.3.0/mkmf.rb:1090:in `have_header'
from extconf.rb:16:in `'

extconf failed, exit code 1

原因

悲しいことに他にもインストールしなきゃいけないライブラリがあった

ちゃんとそれは古事記、ではなく、Nokogiriの公式ドキュメントに書いてある。

Ubuntu/Debian では

apt-get install build-essential patch ruby-dev zlib1g-dev liblzma-dev libxslt1-dev libxml2-dev

が必要とのこと。実際に zlib1g-dev が不足していた。。。

今回の環境ではrbenvでRubyの環境を構築していたので、ruby-devを抜いた

apt-get install build-essential patch zlib1g-dev liblzma-dev libxslt1-dev libxml2-dev

をインストールした

尾西食品のわかめごはん非常食を買った話

動機

この前千葉で最大2週間に及ぶ大規模停電があった。

TLの現地の状況見て、今回は台風だが他にも地震とかあったら自分もこうなるかもなぁとか考えてようやく非常食を買った。恥ずかしい話、家にはそのたぐいのが一切なかったので初非常食である。

買ったもの

いくつかあるが、ここでは実際に食べたわかめご飯を紹介する。尾西食品聞いたことなかったが、亀田製菓のグループ会社らしい。

ヨドバシ.com - 尾西食品 アルファ米 尾西のわかめごはん 1食分 通販【全品無料配達】

f:id:thr3a:20191006143620j:plain

特徴は水だけでもご飯が作れる点でガスとか電気がない状況でも米が食べられるというのは非常に安心感がある。

試しに食べてみたいと思ったので1つ買ってみた。

開けた様子 今回は最悪のケースを想定して、水で作ってみる。

f:id:thr3a:20191006131618j:plain

作り方は簡単で、スプーンと乾燥剤と取り出して水を線まで入れ、よくかき混ぜたあとにチャックを閉め、1時間待つだけ。かき混ぜないと味が偏って悲しいことになる。今回はちょっとかき混ぜが足りなかったのか若干偏ってしまった。やはり練習は大事である。

1時間後に開封した様子。画像だと分かりづらいが、袋がめっちゃ膨らんでくる。

f:id:thr3a:20191006143607j:plain

もともと100gだが、水を入れると260gでご飯2杯分相当になるとのこと。実際結構量あった。

肝心の味だが、非常食とは思えないほど美味しかった。最近の非常食は進化してきている。。とは随分前から聞いていたがこれなら大丈夫そう。ってことでたくさんポチった。

わかめご飯の他にもドライカレーやエビピラフなど尾西食品はたくさんバリエーションを出してくれている。

いつもはAmazonなのに今回ヨドバシのリンクを貼っているのはAmazonで頼むと非常食にも関わらず期限が短いのが来るケースがあるらしい。発送業者にもよるんだろうけどレビュー見てたら散見されたし、中には1年切ったブチギレ案件もあって笑った(笑えない

他に買った非常食

食てか水 いわゆる保存水 2Lより500mlのほうが小回りきくかなと思ってこれにした。

[Amazonブランド]Happy Belly 長期保存水 500ml×24本

[Amazonブランド]Happy Belly 長期保存水 500ml×24本

これはAmazon発送だがちゃんと5年保つのが来た。飲んでないので味は知らないが

ビスケット

昭和脳なので、未だに非常食=カンパンのイメージが強い。米以外のご飯も欲しいと思って買った。

ヨドバシ.com - ヤマザキビスケット ルヴァン保存缶S 6枚×6パック 通販【全品無料配達】

ビスケット系の非常食はたくさん種類があるが、「非常食の点検のたびに1缶開けけてしまって困る」というレビューを見て、これなら美味しいに違いないと確信してこれにした。

さかなの缶詰

これは普段コンビニで買って食べてるやつ。なるべく普段食しているのと同じ味の非常食のほうがいいという知見を得たのであえて新しいのは買ってない。

余談

このまえ実際に被害に遭われた方と話す機会があったが、水を入れられるポリタンクを勧められた。なるほど

他にも買っておいたほうがいいやつがあれば

あと気になってるやつ

吉野家 缶飯6種6缶セット【常温保存食】│吉野家公式通販ショップ

Raspberry Piがたまに重くなるのはapt-daily.timerのせいかも

結論

もしRaspberry Pi/var/log/syslog に以下のようなログがあったら重くなってるかも

Oct  5 19:03:10 raspi13 systemd[1]: apt-daily-upgrade.timer: Adding 23min 12.345204s random time.
Oct  5 19:03:10 raspi13 systemd[1]: apt-daily.timer: Adding 5h 56min 48.280035s random time.

ケースバイケースだが止めても問題ない

発端

raspiが時々重くなる ってかハングアップしてしまった

で、ログを調査してたら冒頭のような apt-daily-upgrade.timer ログが大量に出てきた。

おかしい、Raspberry Piはデフォルトではパッケージの自動アップデートはしないはずでは。。?と思って調べてたら自動アップデートとは別にパッケージリストの自動更新というのがあるらしい。

要するにバックグラウンドで「apt update」をしてくれる。で、Raspberry Piはデフォルトで有効になっている。

Raspberry Piはスペックが雑魚なので apt updateも結構負荷になってるし、それが原因かもしれない、と止めることにした。そもそもパッケージ更新しないから正直にいうと不要だし

止め方

以下はrootで操作

apt-daily.timerapt-daily.service を止める

systemctl stop apt-daily.timer
systemctl disable apt-daily.timer
systemctl stop apt-daily.service
systemctl disable apt-daily.service

が、これだけでは実はだめで、設定ファイルにも記述しなければならない。

/etc/apt/apt.conf.d/02periodicに以下追記(新規作成かも

APT::Periodic::Enable "0";

でおk

参考リンク