• 2025-05-23の日報

    2025年5月23日

    今日やったこと

    神田メシ

    しーぴーさんと🧶さんと一緒にカツ丼を食べに行った。

    TSkaigiの会場が神田である事に託けて誰かとご飯食べたいな〜と思ったので、昼頃募集をかけてみた。

    誰も反応しないかなと思ってたけど、ありがたいことに数人手を挙げてくださったので無事開催できた。

    お店とかも急遽調べてたのだけど、神田はビジネス街だけあって飲み屋が多いから良い感じの食事処を見つけるのがちょっと難しいと思ったりした。 中華とか色々探してたのだけど、とんかつがハズレなさそうで良いのではないか?との結論に至ったのでとんかつ縛りで場所を見繕っていた。

    結果美味しいお店で食べれたので良かったなと。

    後々思ったけど、別に居酒屋でお酒を飲まなくちゃいけない理由もないので行っても良いかなと思うので、次からは美味そうな居酒屋も探していきたい。

    ヨドバシ

    照明と腕時計が壊れたので買いに行っていた。

    照明は元々あるシーリングが赤外線じゃなくてNature Remoで使えなかったので、今度はちゃんと使えるやつにしようと思って選んでいた。 結果6畳向け人感センサー付きのシーリングが良さそうだったのでそれを買う事にした。 ただ、照明のプラグが対応しているか分からなかったので一旦保留にしてまた明日行く事にした。

    腕時計はG-SHOCKかSuicaが使えるスマートウォッチにしようとしたけど、めちゃくちゃ高かったのでとりあえず安い電波時計を買ってお金が貯まったらまた考えようと思っている。 少なくとも14万円する電子機器を腕に付けて生活する度胸が今の自分にはない...

    Nix

    kuuさんがDenoをパッケージングできるNix式を書いてくださったので手元で動かしていた。 これでlspxもhome-managerで動かせるようになって嬉しい。大感謝。

    {
      description = "A basic flake to with flake-parts";
    
      inputs = {
        nixpkgs.url = "github:nixos/nixpkgs?ref=nixpkgs-unstable";
        flake-parts.url = "github:hercules-ci/flake-parts";
        systems.url = "github:nix-systems/default";
      };
    
      outputs =
        inputs@{
          self,
          systems,
          nixpkgs,
          flake-parts,
          ...
        }:
        flake-parts.lib.mkFlake { inherit inputs; } {
          imports = [ ];
          systems = import inputs.systems;
    
          perSystem =
            {
              config,
              pkgs,
              system,
              ...
            }:
            let
              src = pkgs.fetchFromGitHub {
                owner = "thefrontside";
                repo = "lspx";
                rev = "bb04e79400b6dcca10613646cf1c4a910c35e128";
                hash = "sha256-NEwcNE5RxN/rl75bRxUQgANtqp26Y88HV/WKMtytt8k=";
    
              };
    
              deps =
                pkgs.runCommand "lspx-deps"
                  {
                    inherit src;
                    nativeBuildInputs = [
                      pkgs.deno
                    ];
    
                    outputHash = "sha256-cUhCMm0563JNaDQM8NZ1W4oDCy3UjzMp6hP2C0CYncs=";
                    outputHashAlgo = "sha256";
                    outputHashMode = "recursive";
                  }
    
                  ''
                    unpackPhase
                    cd source
                    HOME="$(mktemp -d)"
                    deno cache --frozen=true --vendor=true main.ts
                    # 一意じゃないと思われるデータの削除
                    for path in vendor/jsr.io/*/*/meta.json; do
                      echo '{"versions":{}}' > $path
                    done
    
                    rm -f node_modules/.deno/.deno.lock.poll
                    mkdir -p $out
                    cp -a node_modules $out/
                    cp -a vendor $out/
                  '';
    
              vendored = pkgs.symlinkJoin {
                name = "lspx-vendored";
                paths = [
                  src
                  deps
                ];
              };
    
              lspx = pkgs.writeShellScript "lspx" ''
                deno run --allow-env --allow-run --vendor=true --cached-only --node-modules-dir=manual "${vendored}/main.ts" "$@"
              '';
            in
            {
              packages.default = lspx;
            };
        };
    }
    

    明日以降やりたいこと

    そろそろスライドを書かないとなので明日は照明買ったりスライド書いたりしたい。

    Gleam

    今日はGleamの事とか色々調べてたのだけど、知らないうちにLustreがWeb Componentsに対応してたので沸き立っていた。 Lustreの全てを解説しようとすると一冊本が書けてしまうので、いっその事本当に本を書いていけたら良いなと思った。

    こういう話をしたら記事が読みたいと反応を貰ったので内容を考えていきたい。


    ko-fi ☕GitHub Sponsors 🐙