近況 2019-01-30

今月の活動のまとめ

LSP学習記の連載を書いた

  • 自作言語 curage-lang の LSP サーバーを実装していくシリーズ
  • LSP (Language Server Protocol) は、いわゆるインテリセンス (ソースコードに警告を出したり入力補完をしたりするやつ) の実装をテキストエディターから分離するのに使える通信プロトコル
  • エディターの実装 (特に GUI) に全く触らなくてもインテリセンスが作れて最高
    • JSON を送受信するだけだから、ユニットテストも書きやすい
  • curage-lang はとてもミニで、let 文で変数を定義する、以外の機能はない
  • それでも LSP サーバーの実装の雰囲気は十分につかめた

LSP学習記: 現時点での記事一覧

競技プログラミングの成績がよかった

1年以上前から「そろそろ青」の水色だったが、ついに になった。

競プロ用言語を作り始めた

picomet-lang https://github.com/vain0x/languages/tree/e6708e8f6525ee29a199b8cbcce784ed9763a29a/picomet-lang

  • 精選10問こと AtCoder Beginners Selection を自作言語で解くプロジェクト
  • コンパイラにソースコードを埋め込んで提出、実行中にコンパイル→評価、という流れにする……つもりだった
    • でもコンパイラをジャッジ側で実行する必要はない
    • 手元で中間言語を生成してランタイムに埋め込めば十分
  • 9ccMinCaml を参考にアセンブリ風の中間言語へのコンパイルを試みている
    • C言語をターゲットにしている milone-lang ではやらなかった分野
    • 関数の呼び出しがなかなか難しい

ポートフォリオサイトを作った

vain0x’s Page https://vain0x.github.io

  • このドメインのルート、長いこと Hello! しか書かれてなかったページ
  • イチから作り直した
  • CSS は慣れてきたので手書きにした
  • 背景に濃色のグラデーションと透過を使って手軽にそれっぽさを出した
  • HTML はテンプレートエンジンではなく、JSX 記法 + hyperapp-render で静的生成した
  • いまのところプロジェクト (knowbug や milone-lang) や連載記事の紹介を載せている

ブログにコメント欄を追加した

  • utterances
  • コメント欄を表示して、送信されたデータは GitHub issues に追加される、という仕組み
  • サーバーを用意しなくていいという利点
  • GitHub にサインインしないとコメントできないという欠点

ミローネ言語: 詰まり中

milone-lang https://github.com/vain0x/milone-lang

  • 多相関数の実装が難しくて困ってる

ガルパ (リズムゲーム)

  • 人差し指2本でプレイしていたが、右手の中指を含めて3本にした
    • 指の負担の分散、高難度の精度向上、という効果を期待
    • ノーツに叩く指をアサインする組み合わせが増加し、脳の処理負荷が重くなるので難しい
    • いまは慣れてきた
  • 左手の中指も使った4本打鍵も練習中
  • 2nd Season 悪くない

関連記事