ブックマーク / zenn.dev/ryoppippi (15)

  • TypeScriptの型システムに命を吹き込む: Typia と unplugin-typia

    TL;DR この度、unplugin-typia という Library を作りました unplugin-typia を使うと今までめんどくさかった Typia の導入が簡単になります Vite、esbuildwebpackなどフロントエンドで主流の様々なbundlerに対応しています Next.jsでも簡単に使えます Bunにも対応しています はじめに 皆さんはTypeScriptでのValidationにはどのような Library を使っていますか? zodはエコシステムが硬いし、最近だとvalibotが流行りつつありますね。 またarktypeも注目に値するLibraryです。 typeboxも耳にする機会が増えてきました。 また個人的には(厳密にはValidatorではないですが)、unknownutilも手に馴染んでよく使っています。 既存のValidation Librar

    TypeScriptの型システムに命を吹き込む: Typia と unplugin-typia
  • karabiner.tsがとてもいいぞ

    TL;DR karabiner.tsがとてもいいぞ はじめに macOSユーザーの皆様におかれましては、キーボードのカスタマイズツールとして有名なKarabiner-Elementsをご存知かと思います。 Karabiner-Elementsは、macOSのキーボードイベントをフックして、キーの入力をカスタマイズすることができるツールです。 中でも Complex Rules という機能を使うと、かなり自由度の高いカスタマイズが可能です。 例えば、 CapsLockをCtrlに変更する Commandを空打ちで英/かなを切り替える アプリを起動するショートカットを追加する など、様々なカスタマイズが可能です。 自分も初めてMacを手にした時からKarabiner-Elementsを使っていて、結構カスタマイズしています。 しかし、Karabiner-Elementsの設定ファイルはJSON

    karabiner.tsがとてもいいぞ
  • Slackを旧UIで使い続ける with Arc Browser

    localStorage.setItem("localConfig_v2", localStorage.getItem("localConfig_v2").replace(/\"is_unified_user_client_enabled\":true/g, '\"is_unified_user_client_enabled\":false'))

    Slackを旧UIで使い続ける with Arc Browser
  • Fish Shellの設定ファイルを見直して起動時間を 470ms -> 14.7ms に短縮した話

    はじめに 数日前にこのような記事を見かけました。 この記事ではZshの起動時間を大幅に短縮する方法が紹介されています。 さて、自分はここ数年(というかコードを書き始めてからずっと)、 Fish Shell を使っています。 Fish Scriptがとても書きやすく、補完がとても優秀なのでずっと気に入って使ってます。 しかし、起動時間が遅いなとなんとなく感じていたので、この機会に設定を見直してみました。 自分自身のマシン環境 ➜ neofetch 'c. ryoppippi ,xNMM. ------------------------------------ .OMMMMo OS: macOS 13.5.1 22G90 arm64 OMMM0, Host: Macmini9,1 .;loddo:' loolloddol;. Kernel: 22.6.0 cKMMMMMMMMMMNWMMMM

    Fish Shellの設定ファイルを見直して起動時間を 470ms -> 14.7ms に短縮した話
  • とあるコーディング初心者勢のエディタ遍歴

    追記 初出では記事のタイトルを「とあるコーディングチョットワカル勢のエディタ遍歴」としていました。 「チョットワカル」の意味を全く理解せずにタイトルに用いてしまい、不快に思われた方にお詫び申し上げます。 「チョットワカル」とはすなわち、Linus Torvalds レベルの超上級者のことをさす言葉ということを先ほど知りました。 もちろん自分は到底上級者とは程遠い存在であると自負をしております(記事を読んでいただければわかると思います)。 今年でコードを格的に書き始めて 8 年目になる。 これまでに メインのエディタを 3 回変えているので遍歴を書いてみる。 (記事では IDE は除く) Atom (2015 ~ 2017) 2015 年に大学に入学して、初めて自分のコンピュータ(MacBook Pro 13)を手に入れることができた。 小学生の頃からコードを書くことには興味があった

    とあるコーディング初心者勢のエディタ遍歴
    ryoppippi
    ryoppippi 2023/06/30
    おもひで (追記: チョットワカルの意味を全くわかってなくて申し訳ございませんでした。自分、「完全に理解した勢」です。要は何もわかってないです)
  • Hono RPCとSvelteKitの併用について

    SvelteKit の Endpoint における型安全をめぐる考察 SvelteKit で Endpoint を書く場合、現行の実装ではそれを呼び出すためには fetch 関数を用いることになる。 fetch 関数を用いるということはつまり、Endpoint の URL や request 時の引数を渡す部分は型安全が担保されない。 そのため、個人的には「標準の方法で Endpoint を設計+fetch」はなるだけ使いたくないなと思っている。 この問題を解決するライブラリの候補は以下の通り tRPC Hono RPC Garph + GQty どれを使うべきかは以下のスレッドを読んでいただきたい。 で、JS/TS で完結する場合は tRPC が筋がいいのだが、他の言語から叩くとなると Garph(GraphQL)もしくは Hono(Rest)が候補に上がる。 Garph に関しては試し

    Hono RPCとSvelteKitの併用について
    ryoppippi
    ryoppippi 2023/06/16
    書いた
  • TurborepoのCacheをGithub Actionsで使う、無料で

    TL;DR dtinth/setup-github-actions-caching-for-turboを使おう はじめに Turborepo は Vercel が開発したモノレポ環境用のビルドツールです。 Turborepo には、モノレポ環境でのビルドを高速化するための機能、Remote Caching というものがあります。 これを用いることでキャッシュが効くようになり、CI が爆速で実行されるようになります。 しかし、この機能を使おうとすると Vercel のアカウントが必要になります。 個人利用(Hobby)では無料ですが、会社(Pro)で使うとすると $20 per user / month という価格になります キャッシュするだけならまあまあ高いですね。 Self-hosted Cache Server 解決策としては、Cache Server を自前で建てる方法があります。

    TurborepoのCacheをGithub Actionsで使う、無料で
    ryoppippi
    ryoppippi 2023/05/18
    書いたわよ
  • SvelteKit, Progressive Enhancement, Form, Type Safety, そしてSuperforms

    SvelteKit で最近さまざまな案件ができていて嬉しい限りである。 さて、SvelteKit のドキュメントにしばしば登場する Progressive Enhancement という概念がある。 この概念に自分は全く明るくなかったので調べてみた。 この記事ではまず、Progressive Enhancement とは何かを説明する。 次に、Sveltekit においてこの概念がよく表れている Form の扱いについて触れる。 最後に、SvelteKit における型安全について触れ、この型安全を強化する Superforms というライブラリを紹介する。 この記事は Rich Harris 氏の先日の講演の影響を多分に受けている。 Progressive Enhancement これらの記事が詳しいが、簡単に解説する。 Progressive Enhancement とは、任意の環境で全

    SvelteKit, Progressive Enhancement, Form, Type Safety, そしてSuperforms
    ryoppippi
    ryoppippi 2023/05/10
    書いた
  • Neovim 0.8以降のビルトインLSPについて

    実は Neovim 0.8 以降でいろいろと進化した LSP on Neovim についての記事がなかったので、書いてみます。 長らく Neovim で LSP を導入するには nvim-lspconfig を使うことが推奨されてきました。 というか、nvim-lspconfig を使う前提の解説がほとんどでした。 これを使うと LSP の設定を簡単に行うことができます。 例えば、lua のサーバーであるlua_lsを使う場合は以下のように設定します。 local lspconfig = require("lspconfig") lspconfig.lua_ls.setup({}) この設定を行うことで、lua のファイルを起動すれば自動的にサーバーが立ち上がり、lua ファイルのバッファに対して補完や Diagnostic などの処理を行ってくれます。 またバッファを閉じればサーバーも自

    Neovim 0.8以降のビルトインLSPについて
    ryoppippi
    ryoppippi 2023/04/26
    これも書いた
  • 🌶️ IMHO 🌶️ - Rich Harris on frameworks, the web, and the edge.

    この記事はSvelte/Sveltekitの作者であるRich Harris氏による講演「🌶️ IMHO 🌶️」を翻訳したものです。 この記事の作成には、Whisperによる書き起こし、DeepLおよびChatGPTによる翻訳を補助的に使用しています。 また、文中には適宜訳注を入れています。 この場を借りて、翻訳を許可していただいたRich氏、 またこの翻訳をきめ細かくレビューしていただいたtomoam氏、英文解釈の相談に乗っていただいたshamokit氏へ感謝を表明したいと思います。 So, I'm going to be giving a talk tonight called In My Humble Opinion, and it's a collection of loosely connected thoughts about recent trends in front

    🌶️ IMHO 🌶️ - Rich Harris on frameworks, the web, and the edge.
    ryoppippi
    ryoppippi 2023/04/26
    翻訳しました!長かった。。。。
  • faster-whisperを使ってYoutubeを高速に文字起こしする方法

    はじめに みなさんは、Whisper を使って文字起こしをしているでしょうか? WhisperOpenAI がリリースした text2speech のモデルです。 このモデルは実装を含めて公開されているので、モデルを軽くしたり、あらゆる環境で動かしたり、といった試みが随所で行われています。 今回は、つい先月にリリースされた、faster-whisper のモデルを使って、実際に文字起こしをしてみましょう。 faster-whisper とは OpenAI 公式のモデルを軽量化、独自の最適化により、最大 4 倍の高速化を実現 軽いと評判の Whisper.cpp よりも高速に動作(ただしメモリは若干多め) Whisper.cpp と違って、GPU による高速化の恩恵が受けられる とまあかなり良さそうです。試してみましょう。 Colab で実行 といっても、Colab で動かすだけです。

    faster-whisperを使ってYoutubeを高速に文字起こしする方法
    ryoppippi
    ryoppippi 2023/04/21
    かいたー
  • Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)

    はじめに 最近Raspberry Pi Picoを買いました。 そこで、ZigでLチカする手順を書いておきます。 PCとラズパイを接続する ラズパイ上にBOOTSELがついているので、これを押しながらUSB接続します。 すると、ストレージとして認識されます。 ここにuf2ファイルをコピーすることで、プログラムを実行することができます。 MicroZigを使う MicroZigは組み込みにZigを使用するための仕組みを提供しています。 このプロジェクトZigEmbeddedGroupというコミュニティによってメンテ、開発が行われています。 今回はこのコミュニティが提供している以下の二つのレポジトリを使います。 ZigEmbeddedGroup/rp2040 - ラズパイPicoに最適化されたMicroZig ZigEmbeddedGroup/uf2 - elfからUF2ファイルを生成してく

    Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)
    ryoppippi
    ryoppippi 2022/11/06
    書きました
  • Zig の TensorFlow Lite ライブラリでMNISTした

    はじめに Zig機械学習やりたいなと考えていたところ、@mattn様がまた面白いものを作ってくださったので、早速遊んでみた。 とりあえずMNIST というわけでMNISTをやってみることにした。 レポジトリはこちらにある。 READMEに従って、上のレポジトリをCloneし、TensorFlow Liteのインストールを済ませ、kaggleからDatasetを落としてきたらあとはビルドするのみ! 一応今回推論に使用するモデルもCommitしてあるが、自分で学習することももちろんできる。 学習に用いたNotebookはこちら↓ 画像の読み込みについて mattn氏の記事でも触れられていた通り、Zigで画像を扱うためのライブラリが当に少ない。 使えるもののうち、開発が進んでいるものも発展途上だったりする。 しかし、C言語とZigの相性が抜群なことは皆様ご存知だろう。 今回はヘッダーオンリー

    Zig の TensorFlow Lite ライブラリでMNISTした
    ryoppippi
    ryoppippi 2022/08/19
    書いた
  • ZigはCMakeの代替となるか

    既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

    ZigはCMakeの代替となるか
    ryoppippi
    ryoppippi 2022/08/09
    書いた!
  • ZigでRay Tracing in One Weekendをやってみた

    はじめに ここ数週間でホットな言語、Zigを触っている。 何か作りたいなと思っていたが、以前からやってみたかったRay Tracing in One Weekend (週末レイトレーシング)をやってみることにした。 最終的に生成される画像。うっとりする 所感 文はC++で書かれているが、クラス、継承、演算子オーバーロード等の概念はZigにはないため適宜工夫する必要があった。 また、筆者が普段(型の緩めな)PythonやJSを主に使っているため、終始コンパイラに叱られっぱなしだった[1]。 面白い/気になった点 RustGo、TS等の近代静的型付言語では常識なのかもしれないが、個人的に新鮮だった機能や気になった点をここに列挙していく。 コンパイル時にのみ実行されるコード zigではcomptimeというマーカを付けることでコンパイル時に評価されるコードを書くことができる。 型情報や定数な

    ZigでRay Tracing in One Weekendをやってみた
    ryoppippi
    ryoppippi 2022/07/21
    書きました!
  • 1