hotoolong's blog

プログラムのことやエンジニアリングに関することを記事にしています。

コロナウイルスはどれくらい小さいの?

概要

技術的な話では全く無いのですが
以前から少し気になっていたコロナウイルスの大きさに関してブログにしてみました。
興味のある人は読んでいただきたいです。

大きさの比較

実際にμm(マイクロメートル)やnm(ナノメートル)という単位が出てきますが、

1mmの1/1000が1μm 1μの1/1000が1nm です。

それだけだとよくわからないので比較して見たいと思います。

米粒

縦 5mm 横 3mm 厚みは 2mm 程度だそうです。

スギ花粉

まずは春先によく悩まされる スギ花粉 です。

ja.wikipedia.org

30μmから40μm ということです。

杉から飛散してる動画をみたことがありますが、目にみえるぐらいというとかなり集まってるんでしょうね。
今年も症状が出る日もあるのでマスクを早く手に入れたいところです。

黄砂

続いては黄砂です。
こちらも春先になると飛んできますね。
東アジアの砂漠域(ゴビ砂漠タクラマカン砂漠など)や黄土地帯から強風により吹き上げられた多量の砂じんだそうです。

粒の大きさなのですが 1μm - 30μmのものが多いうです。

ja.wikipedia.org

PM2.5

続いてはPM2.5これは最近良く耳にします。 空気清浄機で除去されるようなことを謳い文句にしてるところもありますね。 微小粒子状物質で物の燃焼などによって直接排出されるものと、硫黄酸化物SOx)、窒素酸化物(NOx)、揮発性有機化合物(VOC)等のガス状大気汚染物質だそうです。

大きさは 2.5μm以下の超微粒子だそうです。

https://ja.wikipedia.org/wiki/%E7%B2%92%E5%AD%90%E7%8A%B6%E7%89%A9%E8%B3%AA#PM2.5%EF%BC%88%E5%BE%AE%E5%B0%8F%E7%B2%92%E5%AD%90%E7%8A%B6%E7%89%A9%E8%B3%AA%EF%BC%89:embed:city

インフルエンザウイルス

ウイルスといえばインフルエンザのイメージが強いです。 大きさは 1-2µm 小さいですね。

ja.wikipedia.org

細菌

代表的な細菌だとビフィズス菌、乳酸菌などの腸内細菌ですかね。 実際に目にすることはなかなかないと思いますが、 大きさは菌によってまちまちかと思いますが、

1μmということです。 こちらはインフルエンザと同じくらいということでしょうかね。

PM0.1

ダイソンの空気清浄機がPM0.1までの超微小粒子を99.95%除去できるとありますが、 0.1μmなので100nmということですね。 すごいなダイソン

コロナウイルス

コロナウイルスの大きさですが、 直径80-220nm程度だそうです。 小さいですね。

ja.wikipedia.org

仮定

コロナウイルスを100nm お米が 3mmだとすると
30000倍するとお米の大きさになります。

ここでコロナウイルスをりんごほどの大きさだと仮定すると
りんごが 10cm ほどの大きさなので、
直径3kmの大きさが米粒になってしまいます。 3kmのお米想像しただけででかいw

奇しくも
地球の大きさをりんごの大きさに例えてるケースを見かけますが、
そのときの公転円周の直径が3kmになるということなので、
如何にウイルスが小さいかがわかりますね。

まとめ

コロナウイルスは小さいんですね。 新型コロナウイルスがどれほどの大きさかはわかりませんが、 飛沫と一緒に空気中に舞っているようです。

飛沫の大きさはまちまちあるようですが、 1mmぐらいの大きのから小さな物があるようです。 小さい飛沫は5 から3マイクロメートル程度と言われているようです。

コロナウイルスは飛沫と一緒に空気中に舞ってるようなので、
十分に換気してる場所の方が安全ということですね。 また閉塞した場所での爆発的な感染が今回の新型の特徴なので十分に注意したいですね。

参考URL

病原体:ウイルスと細菌と真菌(カビ)の違い|これからの衛生管理 | 大幸薬品株式会社
不織布マスクの性能と使用時の注意
新型コロナウイルス 閉鎖空間で短時間浮遊の可能性 :日本経済新聞
www.youtube.com

Railsのescape_javascriptの脆弱性対応を適応する

概要

Railsのバージョンが6.0.2.2に上がっています。

weblog.rubyonrails.org

CVE-2020-5267 の脆弱性が含まれていました。 詳細はこちらを確認することでできます.

github.com

適応

Rails6.0.2.1を使っていたため

Gemfileを変更して 6.0.2.1を6.0.2.2に変更します。

rails ~> 6.0.2, >= 6.0.2.2

変更したらupgradeします。

bundle upgrade rails
Fetching zeitwerk 2.3.0 (was 2.2.2)
Fetching nokogiri 1.10.9 (was 1.10.8)
Installing zeitwerk 2.3.0 (was 2.2.2)
Fetching activesupport 6.0.2.2 (was 6.0.2.1)
Installing activesupport 6.0.2.2 (was 6.0.2.1)
Installing nokogiri 1.10.9 (was 1.10.8) with native extensions
Fetching actionview 6.0.2.2 (was 6.0.2.1)
Installing actionview 6.0.2.2 (was 6.0.2.1)
Fetching actionpack 6.0.2.2 (was 6.0.2.1)
Installing actionpack 6.0.2.2 (was 6.0.2.1)
Fetching actioncable 6.0.2.2 (was 6.0.2.1)
Fetching railties 6.0.2.2 (was 6.0.2.1)
Fetching activestorage 6.0.2.2 (was 6.0.2.1)
Fetching actionmailer 6.0.2.2 (was 6.0.2.1)
Installing actioncable 6.0.2.2 (was 6.0.2.1)
Installing actionmailer 6.0.2.2 (was 6.0.2.1)
Installing activestorage 6.0.2.2 (was 6.0.2.1)
Installing railties 6.0.2.2 (was 6.0.2.1)
Fetching actiontext 6.0.2.2 (was 6.0.2.1)
Fetching actionmailbox 6.0.2.2 (was 6.0.2.1)
Installing actiontext 6.0.2.2 (was 6.0.2.1)
Installing actionmailbox 6.0.2.2 (was 6.0.2.1)
Fetching rails 6.0.2.2 (was 6.0.2.1)
Installing rails 6.0.2.2 (was 6.0.2.1)
Installing rails 6.0.2.2 (was 6.0.2.1)

影響のあるgemがバージョンアップされていることを確認できます。

確認

rails consoleから適応されていることを確認します。

変更前

pry > helper.j '$`aaa`'
=> "$`aaa`"

変更後

pry > helper.j '$`aaa`'
=> "\\$\\`aaa\\`"

正しく変更されています。

テストコードがある方はテストを実行して All Green であることを確認するとよいですね。

参考URL

Rails 6/5とRubyのJSON gem向けセキュリティ修正がリリース|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

CVE-2020-10663: JSON における安全でないオブジェクトの生成の脆弱性について(追加の修正)

Comparing v6.0.2.1...v6.0.2.2 · rails/rails · GitHub

Qiitaのユーザページに読んだ記事の項目が追加されたけど取りやめられたことに関して

私のQiita

Twiiterでいろいろ炎上してますが、 私の表示も確認してみました。

f:id:hotoolong:20200326114604p:plain
読んだ記事あり

全然記事は書いてないのですが、
読んだ記事だけ見るとVim,Ruby,Railsの人みたいですね。

blog.qiita.com

Qiitaからの通知があり、読んだ記事は一旦非公開になってしまいました。

f:id:hotoolong:20200326114751p:plain
読んだ記事なし

こんな感じになりました。

私の場合は見られても問題情報かなとは思いつつ、 Twitterのアナリティクスのように個人で見れる状態だけにとどめて置くほうが良かったのではと思います。

影響

この情報が表示されデータが保持されていることに対して 退会される方が増えてきてます。

退会されるのは自由なのですが、

Qiitaが今まで培ってきたエンジニアの知識のインフラのようになってきているので 保持されている情報が無くなってしまうというのはかなり辛いですね。

オプトアウトはキャンセルできるが

まさにこのツイートの通り、ここが退会への引き金になってるんでしょうね。

退会したユーザアカウントの脆弱性

ユーザが退会した後の問題がちらほら出てきてますね。

経験則なのでなんとも言えないのですが、
退会後のユーザの扱いに関しては、優先度が著しく落ちることがあるので、
個人情報の扱いなどもそうですが、このあたりを些末に扱うと痛い目あいますよね。

記事が消えるのが心配な方へ

とあるようにマークダウンにして保持できるようです。

まとめ

  • 行動情報の扱い
  • オプトアウトは簡単にキャンセルできない

このようなことがキーワードだとおもいます。

blog.qiita.comには 本日(3月26日)17時ごろを目処に、改めてアナウンス とあるのでどのようなアナウンスになるか静観しようかと思います。

追記

increments.co.jp

Qiitaからの謝罪がありました。
今後の取り組みを静観しておきたいと思います。

fishファイルのfiletypeをneovim(vim)で認識させてコメントするのを簡単にする

こちらはvim-fishのプラグインを追加することで正しく認識できるようです。

github.com

こちらをインストールしてください。

以下は参考程度に見てください

neovimでfishファイルを開いたときにコメントしたい行があったのですが、 適応されなかったので無理やり適応してみました。

ファイルを開いてfiletypeを確認します。 以下のサイトに記載されているのを参考にして

wonderwall.hatenablog.com

set filetype?

すると空っぽだったので

~/.config/nvim/init.vim に*.fishに対してfishというfiletypeを追加します。

autocmd BufNewFile,BufRead *.fish setfiletype fish

サイドfishファイルを開いて set filetype? をすると

  filetype=fish

となったので認識されたようです。

次に tcomment.vim の 設定を追加します。 再度 init.vim に 以下を追加して

if !exists('g:tcomment_types')
  let g:tcomment_types = {}
endif
let g:tcomment_types = {
  \    'fish': '#'
  \  }

再度 fishファイルを開いてコメントしたい行にいき コメントするためのKeyをタイプします。 私はデフォルトのままつかってるので C--です。 これでコメントアウトできました。

fish shell で rbenvに対応させる

Ruby 2.7.0 がリリースされて まだインストールしてなかったので久しぶりにRubyをインストールしてみました。

rbenv install 2.7.0

rbenvでインストールしたのですが

$ rbenv local 2.7.0
$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17]

localに設定するとバージョンが変更されない。 あら?

$ rbenv rehash

してみても変更されない。

github.com

githubのページを再度確認してみると rbenv initする記述をみつけたので

$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.config/fish/config.fish:

status --is-interactive; and source (rbenv init -|psub)

とあるので configに追加しておきました。

$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin18]

無事変更されました。 fishの設定みなおしてたので、いろいろ削除してしまってました。 これで快適になりそうです。

Slackのリマインダーを設定する

Slackのリマインダーの日付設定などをよく忘れてしまします。

slack.com

こちらの記載されてはいるのですが、

/remind [#channel|@who] [message] [when]

のような構成になっていますが、 whenをどうすべきか

毎月25日の10時と設定したい場合

at 10:00 on every 25th

で設定できました。いいですね。

GitHubを操作するコマンドラインツール gh を試してみた

イントロ

mattnさんがつぶやいていたのをみて ghコマンド便利そうなので使ってみました。 github.com

hubコマンドがありますが、なんとなくしっくり来なくて、私はあまり使ってませんでした。

インストール

brew でインストールしてみました。

brew install gh

インストール時に

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

fish completions have been installed to:
  /usr/local/share/fish/vendor_completions.d

と補完にも対応してくれてます。便利です。

他にもgo get からもインストールできるようです。

使ってみた

早速つかってみたスクリーンショット

gh_command

まだできることは少ないようですが、なかなか良さそうです。

gh issue create してTitle,Bodyをコマンドライン, エディタで入力できるのがいいですね。

gh issue

コマンド
create 新しい issue の作成
status issue の status を 見る
list リポジトリのissue 一覧を見る (フィルターできる)
view ブラウザでissueを表示

gh pr

コマンド
checkout PRをチェックアウト
status PRのステータスを見る
create PRを作成する
view ブラウザでPRを表示
list リポジトリのPR一覧を見る (フィルターできる)

peco と連携

fzfのpreviewが便利そうなのですが、fzfは使ってないので、pecoで連携しました。

gh issue list --state open | peco | cut -f1 | xargs -I {} gh issue view {}

これでpecoで選択したissueをブラウザで開く事ができます。
fishのfunctionにしてしまってキーバインドすると便利そうです。

今後に期待

notificationsもコマンドでチェックできるようになると嬉しいな。
今後の機能追加に期待です。