自己紹介
目次
1. 趣味開発
趣味で書いたプログラムは https://git.tojo.tokyo で公開している。 規模が大きくなりそうなプロジェクトは Projects ページで管理している。
2. 職歴
- インフラエンジニア、クラウドエンジニア: 3年
- 主に AWS のマネージドサービスを使用したクラウドインフラを担当
- Web 開発(サーバーサイド、フロントエンド): 1年
- Rails など
3. 趣味インフラ
趣味でサーバーを建てて運用している。
外形監視には UptimeRobot を使ってる。
- ウェブサーバー
- このサイト等を動かしている
- このサイトは静的なのでよりサーバーレスに移行しようと何度か考えたが、他のサーバーにリバースプロキシする仕事もしているので消せない
- Nginx が動いてる
- Let's Encrypt を利用して https 対応している
- OS は GNU Guix System
- Nginx や certbot の設定などは全部 Guix の DSL で書かれている
- つまりS式で設定が書かれている
- Nginx や certbot の設定などは全部 Guix の DSL で書かれている
- このサイト等を動かしている
- Git/CI サーバー
- https://git.tojo.tokyo と https://ci.tojo.tokyo を運用している
- OS は GNU Guix System
- 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
- メールサーバー
- 用途は個人的なメールの受信と送信
- OpenSMTPD と Dovecot が動いていた
- OS は GNU Guix System
- Fastmail に移行した
4. プログラミング言語
4.1. 好きなプログラミング言語
趣味では下記のいずれかを使っている。
- Scheme
- GNU Guile
- Racket, Typed Racket
- Common Lisp
- ACL2
- 自動定理証明器(自動で証明できるとは言ってない)
趣味で強い型システムをもつプログラミング言語(Haskell, OCaml)を使っていた経験があるため、 動的型付き言語である Lisp の弱みと強みを理解している人口少なめの Lisper な気がする。
4.2. 実用的なプログラミング言語
- shell, awk, sed
- (対話的なシェルで) 気づいたときには魔術を唱えている
- 業務でシェルスクリプトを書いた経験あり
4.3. 勉強したことのあるプログラミング言語
- Ruby
- 業務で Ruby on Rails の開発経験あり
- 本格的に Web 開発にかかわったのは1年程度
- インフラエンジニア として基盤部分に多少変更を加える程度のかかわりを3年程度
- Rails の設定値やインフラ的に必要な部分の開発をすることは普通にあった
- Java
- Web 開発で業務経験があるが実際に開発したのは半年未満
- インフラエンジニアとして3年程度 Java のコードを書くことは少ないが読むことは多かった
- Python
- 学部生のころに趣味で学習した
- 当時は C, Perl しか知らなかったので Generator の機能に感動した
- 院生(修士)のころに研究で利用していた
- いまでも稀に使っている
- 直近の利用例はグラフの生成(しかし、gnuplot に置き換えた)
- 学部生のころに趣味で学習した
- C言語
- malloc を扱える程度まで学習した
- 趣味で GObject を使ったプログラミングの経験あり
- チュートリアルとして簡単な GUI アプリを作った程度
- GObject を使うともうC言語を使っている感じはしない
- Perl 5
- 学部時代に趣味で勉強していた
- リファレンス/デリファレンスと Perl のオブジェクト指向までなら扱える
- Haskell
- 一時期はまっていた
- モナドトランスフォーマーあたりの勉強までした
- 実際にモナドトランスフォーマーを活用して何かを開発した経験はない
- OCaml
- 趣味でオレオレ画像処理ライブラリを書いた経験がある
- 画像の畳み込みとか実装していた
- モジュールのファンクターを使える程度
- mli で型を隠蔽する機能がお気に入り
- int 型とかで実装されたものをレコードでつつまずに抽象化できるのは格好いい
- 構文は割と好み
- 趣味でオレオレ画像処理ライブラリを書いた経験がある
5. 好きなエディタ
GNU Emacs、このサイトも Emacs から生成されている。
6. 自由ソフトウェア
7. 行動分析学
専門的に勉強しているわけではないがとても関心がある。 中学生のときに出会った。
集団の平均値だけ見てはずれ値を無視したり人の特性ばかりに注目して状況を無視したりする他の分野と異なり個人にフォーカスして行動の制御に取り組むことができているところに魅力を感じている。