algoNoteスマートフォン用の表示で見るalgoNoteプログラミング関連の記録2019-11-09ターミナルエミュレータを自作してみた記録Rust以前からターミナルエミュレータを作ってみたいなと思っていたのですが、ついに手を着けました。実際に作ってみると、それっぽく動く段階までの実装はそこまで大変ではないことが分かりました。「ターミナルエミュレータを作ってみたい」という興味は満たすことができました。最新エンジン実装と論理的背景」という本を読みました。説明が分かりやすくとても良い本でした。自分の知らないことがたくさん書かれている本は読んでいて楽しいです。正規表現を高度に使いこなすテクニックの本というより、正規表現エンジンの仕組みに興味がある人向けの本だと思います。僕も正規表現エンジンの仕組みが知りたくてこの本を読みました。正規表現を使う上での注意といったことが書かれています。実際に正規表現エンジンの仕組みを知ってしまうと、(最適化などを無視すれば)基本的な動作原理はとてもシンプルなんだなと感じました。逆に、実用的な正規表現エンジンは最適化をとんでもなく頑張っているということなんですよね。あとマルチバイト文字の対応もかなり大変そうという気持になりました。monoidの話がとても興味深かったです。monoidを構成することができ、これによって正規言語の性質を判定したり、正規表現の最適化問題を代数的な問題として扱うことが出来るようになるらしいです。monoid上のいくつかの等式が成り立つことを確認するだけで判定出来るらしい)実装してみたこの本で2種類目のエンジンとして紹介されていたVM型のエンジンを実装してみました。github.comparser.rsでは再帰降下パーサによって正規表現を構文解析し、compiler.rsで構文木からVMの命令列に変換し、matcher.rsで文字列のマッチを実行するという形です。書いてみたという感じで、おそらくバグがありますし最適化は一切行っていません。まとめかなりオススメの本です。正規表現に入門しましょう。00:28正規表現に入門したTweet広告を非表示にするもっと読むコメントを書く2019-08-14ウィンドウシステム・ウィンドウマネージャを作った話シスプロ例によって大学の課題で作りました。なんとか目標だったウィンドウマネージャの作成(とはいっても簡単なものですが)まで達成できました。Rust大学の課題でシェルを作ってみるというものがあり、言語は何でもよいということだったのでRustで実装しました。そのときの感想やら何やらを残しておこうと思います。19:18Rustでシェルを作ったTweet広告を非表示にするもっと読むコメントを書く2019-04-06ブログに競プロのレーティングを表示するようにした(その2)以前の記事でプログのサイドバーに競プロのレーティング(と色)を表示するjavascriptを紹介しました。意外にも多くの方に使って頂けているようで嬉しいです。残念ながらYQLは2019年1月でサービス終了してしまいました。それに伴って、AtCoderのレーティング取得ができなくなっていました。この問題に対応するために、簡易的なAPIサーバー的なもの(Kyopro-Ratingsと命名)を作成し、Heroku上で動かすことにしました。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。