3/9~3/15 スパゲッティ時代の到来/Haskellすき/サーバーめっちゃ攻撃されてた/休暇の予定/コロナ相場

スパゲッティ時代の到来

今週はスパゲッティをよく食べた。スパゲッティは既製品の味が豊富で飽きにくいのがよい。欠点は野菜の摂取が難しいことと、7分という長くも短くのない待ち時間だ。

沸騰したお湯に麺を投入するとき、捻ってパッと手を離すことで麺が360度きれいに分散するテクニック、あれがかなり上手くなった。きれいに分散すると麺どうしの摩擦が小さくなるので、そのまま放っておいても麺の下部の湯に浸かっている部分が柔らかくなるに従って沈み込んで麺の全体が湯の中に収まる。言葉で説明すると何を言っているのか意味不明だろうが…

Haskellすき

Haskellの本を読み始めている。記法が大胆で、なるべく値ではなく関数(関係)を組み合わせていくというスタイルが気持ちいい。一方でどんな富豪的実装なんだ…と驚くような機能もある。パフォーマンスはどうなんだろう。

サーバーめっちゃ攻撃されてた

ある理由で新しくサーバーを借りてWebサイトを公開したのだが、ログを見てみるとすごい勢いで攻撃(ご挨拶程度のものだが)されまくってて笑ってしまった。

まずnginxのログ。うっかりまずいファイルが公開されてしまっていることを狙ってアドレス決め打ちで大量のアクセスがあり、全部404NotFoundを返していた。nginxのルーティングをミスするとこういう攻撃を食らうのだろう。攻撃元は海外。

sshdのログもすごかった。ユーザー名rootでランダムなポートに向けて大量のアクセスあり。しかしパスワード認証は当然切ってるしrootログインは禁止しているうえにポートもデフォルトの22から変えているので突破はされていない。これも攻撃元は海外。IPアドレスを調べるとあちこちに攻撃を仕掛けている有名人(?)で笑ってしまった。

これらのログを毎日catしてtailして読むのは大変なのでlogwatchを導入した。crontabで1日1回、/var/log下の各種ログファイルをサマライズしてメールで送ってくれる。素晴らしい(postfixの設定が必要でそれはそれで大変だった)。

思った以上に頻繁に攻撃されてビビってるのでchao.tokyoのセキュリティも一新したい(というかサーバーの構成をなるべくAnsibleにしてしまいたい)。

そう、Ansible。とても便利で重宝しているが、Ansibleだと逆に手間になってしまうような処理(冪等にするのが難しい)もあって悩ましい。たとえばnginxをhttps化する作業は、Ansibleで書くとかなりややこしいことになるが、sudo certbot --nginxを実行すれば一瞬で終わる。

サーバーやミドルウェアをいじるのは楽しい。フロントエンド中心の仕事と変化がつくのがいいのかも。

休暇の予定

金曜日から長大な休暇を取るがいまだ予定はない。静岡に寄りつつ適当に関西をぶらつくか。遠くに行かなくても適当な温泉地でグータラするのもよい。

コロナ相場

確定拠出年金がすごい勢いで溶けてて笑ってる。

適当にパソコンをポチポチしていた

2/1(土)

していたら土曜日が終わった。

OpenToonzの1.4.0が出たのでLinuxでビルドしてみた。ドキュメント通りで特に問題なし。

動画サイトの再生エリアのスクショをワンクリックで撮れるようにしたくて調べていたんだけど、ざっくりMDNを読んだ感じセキュリティ上の理由でクライアント側だけではどうにもならないっぽい。

その他、寝たり起きたり鍋作ったりDota2したりしてたら1日が終わってた。僕は休日は無計画に浪費する方が好きだ。あまり褒められたことではないが…。

お得な情報を2つ

1/21(火)

スマホFTJ161BはBluetoothを有効にしているとwifiが断続的にしか通信できなくなる。

Ubuntu18.04+GTX1060でKrita4.2.8を動かすとき、ドライバのバージョンは440だとキャンバスのグラフィックアクセラレーションが効かず、ズームや回転がカクカクになる。435に戻すと直った。

生姜湯と化したちゃお/LinuxでDetroit: Become Humanできそう

1/5(日)

ランチに少し歩いたところの家系ラーメンに。味が濃く、魚介の風味もあった。ライスはおかわりはできないので最初に大森で頼むべきだった。銭湯はしょうが湯。早い時間に行ったので混んでいてあまりゆっくりできなかった。

今日が正月休暇の最終日だ。今年は帰省もせず、のんびりとしていた。悪くはなかったが退屈でもあったので、同じ退屈なら帰省してもよかったかもしれない。

法律上今年度中にあと2日休暇を取らねばならない。それとは別に繰り越せない休暇も2日ある。適当な祝日に合わせてどこかでまた9連休を生成することになりそうだ。

LinuxでWindows向けのゲームをやりたいときはLutrisというソフトを使う。Lutrisがなんであるかというのを説明するのは難しいのだが(公式にはgaming platformを名乗っている)、ゲームごとにどのバージョンのwineをどんな設定で使うかというのを管理できるソフトだ。

Detroit: Become HumanのPC版が12月に出ていたらしい。ぜひプレイすべきと勧められていたのと、新年で安くなっていたので購入し、Lutrisでのプレイを試みた。ダイアログに求められるまま依存パッケージをインストールし、d9vkをセットアップした。その結果起動には成功した。FPSも良好だ。しかしWASD移動ができない。キー入力が死んでいるわけではないのだが、ゲーム中に移動だけができない。不思議だ。しかしもう一歩だ。

droneで自動デプロイする

12/22(日)

masterにマージするだけでデプロイされてほしかったので。

結論

  • Docker Pipelineでビルドが通るか確認し、OKならSSH PipelineでサーバーにSSH接続してgit clone→docker build→docker runしている。
  • SSH Pipelineはデフォルトでは/tmp下に適当なディレクトリを作ってcloneしてstepを実行していくのだが、サーバーに置いている設定ファイルを使いたい都合でそのデフォルトの挙動を無効にし、cd /home/satoru/workして手動でcloneしている。
  • SSH認証関連の情報はdroneのsecretsに保存してある
    • セキュリティ上の理由で、デフォルトではPRをトリガーにPipelineが実行されるときはsecretsを読み込めないので注意

VPS上でdroneを動かした

12/21(土)

CI環境ほしいので作った。基本的にはこれを読みながら進めるだけ。

結論

  • 単純にドキュメンテーションのdocker runのオプションをdocker-compose.ymlの形式に落とし込んだだけ
  • .env.sampleを.envにコピーして中身を埋める
  • common_linkはVPS上で動かしているnginx-proxyに接続するためのものなので気にしなくていい

パソコンが壊れた(7ヶ月2回目)

11/29(金)

たぶんこのブログを始めてからは2回目で合ってる。

今度のは理由がよくわかっていない。久々にPCを再起動したら起動時にログインできなくなった。ユーザーを選択すると認証エラーと表示され、直後にフリーズする。ユーザーを選択せずにCtrl+Alt+F3でCUIからログインすることはできる。ログ見てググった感じNVIDIAのドライバが悪そうな感じがあるが、Linuxがわかりそうな同僚を召喚しても直せなかったので諦めて再インストールした。

Ubuntuのインストール時にもエラーが出て困った。これは使っていたisoイメージが壊れていたのが原因だった。割と壊れたイメージをつかまされることがあるので、ちゃんとチェックサムを確認しよう。ストレージ用HDDを外してUbuntuをインストールし、あとからマウントすることでほとんどのデータは残せた。

大したことない量の酒と肉/Ubuntuで日本語入力中に文字が出ないやつ

11/11(月)

酒を飲んで肉を食べるイベントがあった。酒は弱いので生中1本に抑えて食べていたのだが、あとから酷く調子が悪くなり帰宅はフラフラだった。理由が全然わからない。老いか?

何かのキーをゴチャゴチャに押したら日本語入力中に文字が表示されない状態になった。

理由がわからず途方にくれて「ubuntu 日本語入力 表示されない」でググったらubuntu日本語入力で入力中の文字が表示されない場合の対処法というそのものズバリなページがヒットした。答えはCtrl+Alt+Pだ。なんだこの機能?

Nコン2019中学校の部

10/14(月)

Nコン中学校の部を途中から見た。豊島岡と郡山5が銅で文の里が銀というのは波乱だが清泉の金は妥当だったろう。

自宅のネット回線の工事があってから速度は上がったけどGoogleとYouTubeで特大の(数十秒)のstallが発生するようになっていた。ISPにもっとデータが欲しいと言われたので毎分curlして所要時間をcsvにまとめるスクリプトを書いた。

久々に酒を飲んだ/酒を飲んでプログラミングをするな

※この記事は『ほろよい もも』を飲んで書かれた。

月の始めに強い意志で(ほぼ)定時退社。制度上定時はないが自分で11時から20時を勤務時間と決めている。

いろいろな事情でSlackのワークスペースが増えてきたのでLinux用のアプリケーションをインストールしたのだが、ワークスペースにログインできずにいる。ブラウザでログインした後アプリケーションに処理が移らない。

仕事でTypeScriptをやってはいるが、趣味開発で初めて裸のtscコマンドによるコンパイルをやった。コンパイルのバージョンがどうなっているのかよくわからない。前者も後者もコンパイルは通るのに前者しか動かなかったりする。

import * as Hoge from "hoge";
import Hoge from "hoge";

完全に酒に酔って意味不明ムーブ繰り出してる。間違ってaccess tokenをpushしてしまったので定石どおりリポジトリ削除→再作成→pushをやったのだが、修正をaddしないままcommit --amendしていたので無意味だった。やり直し。