ブックマーク / zenn.dev/ryo_kawamata (6)

  • The Super Tiny Compiler ではじめるコンパイラ入門

    The Super Tiny Compiler とは? The Super Tiny Compiler は、わずか 200 行の JavaScript で書かれたコンパイラです。 Super Tiny の言葉どおり機能はとても限定されていて、LISP ぽい関数呼び出しを C 言語のような関数呼び出しに変換するだけです。

    The Super Tiny Compiler ではじめるコンパイラ入門
    zu2
    zu2 2024/08/10
  • BlueskyのAT Protocolでリンクカード付きのpostを投稿する方法

    Blueskyのbotを作る際につまったのでまとめます。 Blueskyのリンクカードとは? TwitterTwitterカード的なOG Image、title、descriptionがまとめて表示されるカード型のリンクUIのことです。 Twitterの場合は、URLを文に含めればよしなに展開してTwitterカードを作ってくれるのですが、BlueskyのAT Protocolの場合はそんな単純にはいきませんでした😅 リンクカード付きのpostを投稿する方法 BlueskyはAT Protocolの上で動いているので、リンクカードもAT Protocolの仕様に則って投稿する必要があります。 当初その仕様でどのようにリクエストするのかわからず詰まったのですが、自分がBlueskyのアプリ経由でリンクカードを投稿したpostのjsonを確認することで理解しました。 以下の形式でbsky

    BlueskyのAT Protocolでリンクカード付きのpostを投稿する方法
    zu2
    zu2 2023/12/23
  • 腰痛エンジニアを支える技術

    ぎっくり腰(椎間板ヘルニア)からの坐骨神経痛により、ほぼベッドから動けない状況になってしまったので、そのような中でも何とかコードを書くための技術をまとめました。 💻 道具編 最初にベッドの上で快適に PC を使えるようにするための道具を紹介します。 ごろ寝デスク 2 知る人ぞ知る腰痛エンジニアの必須アイテム。 これを使えば、腰を極力刺激せずベッドの上から PC を操作できるようになります。 しかし、一見完璧にみえるこの製品にも問題が。。 使うとわかるのですが、手を上げながらのタイピングは地味にきついです。モデルの方のようなフォームで使うと、腰の代わりに肩・手首・肘を壊すのも時間の問題です 🥲 そこで次のアイテムが必要になります。 ワイヤレスキーボード ごろ寝デスクを使いながら肩・手首・肘を守るためには、ワイヤレスキーボードが必須です。ワイヤレスキーボードがあれば、手をおろした状態でタイ

    腰痛エンジニアを支える技術
    zu2
    zu2 2023/02/04
  • @ts-expect-errorを自動追加!suppress-ts-errorsの紹介

    TypeScript の型チェックを厳格化したいが既存の型エラーが多すぎて、やむなく緩い型チェックにしている方へ改善の助けになりそうなツールを作ったので紹介です。 🔧 作ったもの プロジェクトのコードベースを走査して、型エラーがあるコードすべてに@ts-expect-error or @ts-ignoreのコメントを追加する suppress-ts-errors という CLI ツールを作りました。 以下の GIF のように npx 経由で簡単に利用できます。 さらに、ts、tsx だけでなくVue SFC のスクリプト部分へのコメント追加にも対応しています。 コードはこちらです。⭐ を貰えると泣いて喜びます。 なぜ作った? 現職のプロジェクトにて型チェックを厳格化できていない(strict: trueにできていない)という状況を改善したいと思ったからです。 型チェックのルールを修正する

    @ts-expect-errorを自動追加!suppress-ts-errorsの紹介
    zu2
    zu2 2022/07/24
  • chezmoi で dotfiles を手軽に柔軟にセキュアに管理する

    dotfiles マネージャの chezmoi についてまとめました。 個人的にかなり便利だと思います。 chezmoiとは? chezmoi は、.vimrc や、.zshrc などの dotfiles の管理を効率的に実現するためのツールです。 シンボリックリンク不要でコマンド 1 つで環境を再現出来る template 構文で変数の展開や処理の分岐を書くことで各環境の差分を 1 ファイルで管理できる 1password などのパスワードマネージャとの併用でセキュアにファイル管理ができる という特徴があります。 特に 2 と 3 は通常のシンボリックリンクでの dotfiles 管理だと Shell Scriptをかなり頑張らないと出来ない部分ですが、chezmoi なら手軽に実現できます。 基操作 イントール Homebrew でインストール出来ます。 chezmoiプロジェクト

    chezmoi で dotfiles を手軽に柔軟にセキュアに管理する
    zu2
    zu2 2022/07/15
  • Cloud Functions for Firebaseの利用で、異様にGCPのStorageが消費されると思ったら..

    知っている人には当たり前の知識かもですが、地味に不安だったことなのでメモ。 起こったこと Firebase でアプリを作っていたら、なぜか Storage のリソースが異様に消費されてることに気がつきました。 このプロジェクト自体は Cloud Functions for Firebase をメインに使っていて、Storage 自体にはほぼファイルはありませんでした。 しかし、上記画像の通り異様にアクセスされています。 さらに GCP で Storage をみると見覚えのないファイルが大量に! なぜ...🤔 原因 原因は Cloud Functions for Firebase のデプロイ時に自動保存されるソースコードでした。 Cloud Functions for Firebase のデプロイは以下手順で行われるようです。 関数のソースコードを含むアーカイブを Cloud Storag

    Cloud Functions for Firebaseの利用で、異様にGCPのStorageが消費されると思ったら..
    zu2
    zu2 2021/09/17
  • 1