投稿日: 2022-03-03 Thu 00:00

自己紹介

目次

1. 日記

https://diary.tojo.tokyo で日記を書いている。 こちらの方が気楽に投稿できるのでこのサイトよりも更新頻度が高い。

2. 趣味開発

趣味で書いたプログラムは https://git.tojo.tokyo で公開している。 規模が大きくなりそうなプロジェクトは Projects ページで管理している。

3. 趣味インフラ

趣味でサーバーを建てている。仕事と違って楽しい。

Vultr という VPS を利用している。 外形監視には UptimeRobot を使ってる。

  • ウェブサーバー
    • このサイト等を動かしている
      • このサイトは静的なのでよりサーバーレスに移行しようと何度か考えたが、他のサーバーにリバースプロキシする仕事もしているので消せない
    • Nginx が動いてる
    • Let's Encrypt を利用して https 対応している
    • OS は GNU Guix System
      • Nginx や certbot の設定などは全部 Guix の DSL で書かれている
        • つまりS式で設定が書かれている
  • メールサーバー
    • メールを送信するサーバー
    • Vultr の信頼を得ている?ので外向き 25 番ポートが開いている
    • OpenSMTPD と Dovecot が動いている
    • OS は GNU Guix System
  • Git/CI サーバー
  • VPN サーバー
    • OpenVPN で自前の VPN を運用している
    • これで IP の固定ができるので、IP 制御が実現できてとてもうれしい
      • わずらわしい SSH ポートフォワーディングとかしなくていい
    • プライベート用の Git サーバーと CI サーバーも中に入っている
      • VPN 経由でないとアクセスできないようになってる
    • OS は GNU Guix System
  • Mastodon サーバー
    • 意外とメンテナンスコストはそれほど高くない
    • OS は Ubuntu
  • Zabbix サーバー
    • 最悪、それぞれのサーバーが攻撃されたときに気づけるように監視を始めた
      • 友人にサーバーの構築・運用について説明する機会があり、そのときに趣味インフラを見直したのがきっかけ
    • OS は GNU Guix System

過去に趣味で運用していたサーバー

  • Nextcloud サーバー (2年)
    • 個人的な生活における Nextcloud への依存が減ってきたので閉鎖した
    • OS は Ubuntu

4. 業務での Web インフラ経験

業務でのインフラの経験は3年。

  • Ansible による構成管理
  • Terraform による AWS インフラの構成管理
  • Docker コンテナの作成経験
  • 業務で構築・変更・運用経験のある AWS のマネージドサービス
    • 利用したサービス
      • AWS ALB, AWS ELB
      • AWS ECS
        • ECS
        • Fargate
      • AWS RDS
        • MySQL
      • Amazon ElastiCache for Redis
      • AWS Labmda
      • AWS S3
      • AWS EC2
      • AWS Pipeline, AWS CodeBulid
      • etc……
    • 新規サービスの AWS インフラ構築経験あり
    • AWS のマルチアカウント運用の経験あり
  • 自前メールサーバーからの SendGrid への移行
  • Datadog
  • Nagios
  • Redash
  • オンコール対応
    • 気づいたベースでの対応を3年ほど

5. プログラミング言語

5.1. 日常的に使っている好きなプログラミング言語

趣味では下記のいずれかを使っている。

  • Scheme
    • GNU Guile
    • Racket, Typed Racket
  • Common Lisp
  • ACL2
    • 自動定理証明器(自動で証明できるとは言ってない)

後述するが趣味で強い型システムをもつプログラミング言語(Haskell, OCaml)を使っていた経験があるため、 動的型付き言語である Lisp の弱みと強みを理解している人口少なめの Lisper な気がする。

5.2. 実用的なので日常的に使っているが別に好きではないプログラミング言語

  • shell, awk, sed
    • (対話的なシェルで) 気づいたときには魔術を唱えている
    • 業務でシェルスクリプトを書いた経験あり

5.3. 日常的には使ってないけど使えるプログラミング言語

日常的に書いているわけではないけど利用経験のあるプログラミング言語は下記の通り。

  • Ruby
    • 業務で Ruby on Rails の開発経験あり
    • 本格的に Web 開発にかかわったのは半年程度
    • インフラエンジニア として基盤部分に多少変更を加える程度のかかわりを3年程度
      • Rails の設定値やインフラ的に必要な部分の開発をすることは普通にあった
  • Java
    • Web 開発で業務経験があるが実際に開発したのは半年未満
    • インフラエンジニアとして3年程度 Java のコードを書くことは少ないが読むことは多かった
  • Python
    • 学部生のころに趣味で学習した
      • 当時は C, Perl しか知らなかったので Generator の機能に感動した
    • 院生(修士)のころに研究で利用していた
    • いまでも稀に使っている
      • 直近の利用例はグラフの生成(しかし、gnuplot に置き換えた)
  • C言語
    • malloc を扱える程度まで学習した
    • 趣味で GObject を使ったプログラミングの経験あり
      • チュートリアルとして簡単な GUI アプリを作った程度
      • GObject を使うともうC言語を使っている感じはしない
  • Perl 5
    • 学部時代に趣味で勉強していた
    • リファレンス/デリファレンスと Perl のオブジェクト指向までなら扱える
  • Haskell
    • 一時期はまっていた
    • モナドトランスフォーマーあたりの勉強までした
      • 実際にモナドトランスフォーマーを活用して何かを開発した経験はない
  • OCaml
    • 趣味でオレオレ画像処理ライブラリを書いた経験がある
      • 画像の畳み込みとか実装していた
    • モジュールのファンクターを使える程度
    • mli で型を隠蔽する機能がお気に入り
      • int 型とかで実装されたものをレコードでつつまずに抽象化できるのは格好いい
    • 構文は割と好み

6. 好きなエディタ

GNU Emacs、このサイトも Emacs から生成されている。

7. 自由ソフトウェア

ユーザーが自分の計算機を自由にコントロールできるのが当然の時代が訪れるように貢献したい。

2020年の7月に Free Software Foundation の Associate Member になった。

5002583.png

8. 行動分析学

専門的に勉強しているわけではないがとても関心がある。 中学生のときに出会った。

集団の平均値だけ見てはずれ値を無視したり人の特性ばかりに注目して状況を無視したりする他の分野と異なり個人にフォーカスして行動の制御に取り組むことができているところに魅力を感じている。

著者: TojoQK (tojoqk@tojo.tokyo)

Twitter: @tojoqk

Mastodon: @tojoqk, English: @tojo

RSS を購読する

トップページに戻る