TypeScript
こんばんは。 雑多に本を買いすぎて積み本が増えてきました。 今回はConditional Typesを見ていきます。名前の通り条件分岐ができる型です。 なんでそんなことがしたいのかとか、どういうときに役に立つのかという話を先にしたいのですが、そもそも文法を知…
こんばんは。 ブラックフライデーで何を買うか決めましたか? 今回はUtility Typesを一気に確認していきます。 前回の記事で解説した通り、Utility Typesは型から別の型に変換するための型です。型レベルの関数みたいなイメージですかね。今回紹介する型はす…
こんばんは。 布団から出たくないです。今回はインデックス型、インデックスアクセス型、Mapped Typesについて見ていきます。 インデックス型(index signature) インデックス型はオブジェクトのプロパティ名とその型を動的に指定する方法です。 イメージと…
こんばんは。 急に寒くなってきましたね。体が寒いのに慣れていないっぽくて体調がイマイチです。 なんか型関連の見慣れない記法あるよね TypeScriptはJavaScriptに型の概念を追加した言語です。 なので静的型付け言語に分類されるのですが、強力な型推論や…
こんばんは。 まだまだ暑いですが、果物などの旬の食べ物を見ると秋を感じますね。さて、RemixがReact Router v7に合流してからしばらく経ちました。 そういえば改めて比較をしていなかったので、代表的な差異を見てみます。 移行は割と簡単らしい まず大前…
続きです。 前編の記事はこちら。 shironeko.hateblo.jp そしてコードはこちら。 github.com 今回は自分でエージェントを作っていきます。 ツールを作る まずはツールを作りましょう。 ツールはエージェントやワークフローで利用できる機能(関数?ツール?…
こんばんは。 夏が来た感じがしますね。実はまだ梅雨も来ていませんが。 さて、Claude CodeやらCursorやら最近はひたすらにAIエージェントブームですね。 特にMCPが流行りだして、その勢いはどんどん加速しているように思います。 ただ、バックグラウンド実…
こんばんは。 急に寒くなりすぎて体がついていけていない気がします。 Feature Flag RemixにはFeature Flagという近い将来採用される機能を明示的にONにする機能があります。 これは設定でONにするだけで新しい機能が使えるとても便利な機能です。remix.run…
こんばんは。 ようやく秋の気配がしてきましたね。 自分でチューニングしてほしい LLMを使っているとやはりプロンプトの書き方によって求める結果が得られるかどうかが大きく変わってくることがわかります。 もちろん自分で試行錯誤しながらチューニングする…
こんばんは。 天気がすぐ変わるので、いつも傘を持っている気がします。 雨傘って風の方向に向ければ雨も風も防げますが、日傘は風の方向と日の方向が連動しないのでひっくり返しがちです。今回はyieldについて見ていこうと思います。 (いつも綴りが「yield…
こんにちは。 まだ梅雨入りもしていないですが、そろそろ夏が来たって感じがしますね。さて、せっかくRemixのチュートリアルをやったので試しにWebアプリを作ってみます。 今回はORMとしてPrismaを、UIコンポーネントの確認ツールとしてStorybookを使います…
こんばんは。App Routerが出るくらいの頃からNext.jsをちらほら使っていたのですが、今回はRemixのチュートリアルをやります。 Next.jsがちょっと重たいなと思うのと(処理がではなくフレームワークの規模的に)、微妙に融通が効かないと思うことがあるので…
こんばんは。 衣替えをしたんですが、そういえばスプリングコートとか一回も着ていないことに気付きました。日々生成AIの新しいモデルが公開されて群雄割拠の時代という感じですが、なんかすごいことができそうな気がする割にアイデアが思いつきません。 じ…
こんにちは。 急に春を通り越して夏なんですが、いったいどうしたんでしょうか。 桜はいつ見ればいいですか?さて、ちょっとコードを書いてて「ん?」ってなったので。 ValueObjectを作ろう オブジェクト指向ではValueObjectという概念がときどき使われます…
こんばんは。 最近Alexaの耳が遠くなってる気がするんですが、気のせいでしょうか。前回は検索編でしたが、今回は応用としてRAGパターン編です。 shironeko.hateblo.jp引き続きコードはGitHubにあるので良かったらご覧ください。 github.com データの収集と…
こんばんは。 無印で売り切れになってたカレンダーが復活してたので、買って帰ったら4月始まりでした。前回は基礎編でしたが、今回は検索編です。 shironeko.hateblo.jpRAGパターンもそうですが、結局どこかからデータを集めたりLLMに渡したりしないと独自デ…
こんにちは。 最近の太巻きはだんだん豪華になって太くなっていますが、切らずに無言で食べるにはもはや苦行なんじゃないかなと思います。さて、罠を踏んだので備忘録。 わかるひとはタイトル見たら「あー、あれね」ってわかりそう。 先に結論 おそらくこう…
こんばんは。 リボンライトの接触がおかしくなって部屋の片隅が妖しく赤く光っています。私です。今回から何回かに渡ってLangChainを触っていこうかと思います。 LangChainはPython版とJavaScript(TypeScript)版があるのですが、Pythonの方が開発が先行し…
こんばんは。 本が読みたいけど首が痛いです。 RAGが作りたい ChatGPTなどのLLMを利用して何かを作っているとRAG(Retrieval-Augmented Generation)という仕組みが作りたくなってきます。 RAGとは簡単に説明すると外部のデータを使ってLLMに情報を与えるパ…
こんばんは。 最後の夏の名残を感じた気がします。11月だぞー。さて、OpenAI DevDayでいろんなことが発表されたみたいです。 DALLE-3による画像生成と、GPT-4Vによる画像の入力が気になったので試してみます。 ちなみにTypeScript(nodejs)です。今日のコー…
こんにちは。 夕食のメニューに鍋という選択肢が入ってきてちょっと楽ちんです。 今回はinterfaceとtypeの比較をします。 interfaceっぽいのはオブジェクト型 さて、前回typeについて見ていきましたが、typeに定義できる種類にオブジェクト型というものがあ…
こんにちは。 本が読みたい気持ちと首が痛い気持ちが拮抗しています。 さて、前回がinterfaceの比較だけで終わってしまったので、typeについて見ていきます。 型アノテーション(Type Annotation) とりあえず型を使ってみます。こんな感じで定数とか変数とか…
こんにちは。 急に気候が変わってついていけません。 窓を開けると湿度の低さにびっくりします。さて、最近たまに記事に書いているように、ちょくちょくTypeScriptを触っています。 もともとJavaをやっていて、いまはC#をメイン言語にしているので文法的にそ…
こんばんは。 除湿機の水を捨てるたびに「そんなに水が湧いてくるのおかしくない?」って思う私です。前回はルーティング周りを確認したので、今回はレンダリング周りを確認します。 そもそもReactを触っていないので、Reactの機能なのかNext.jsの機能なのか…
こんにちは。 お盆ですね。Googleで「お盆」でサジェストすると「お盆 2023」とか出てきてスポーツの祭典みを感じます。前回はとりあえずNext.jsのアプリを作ったので、今回はルーティング周りを見ていきます。 ルートのルーティング Next.jsのURLルーティン…
こんにちは。 毎日暑いですね。フロントエンドのフレームワークをあまり触ったことがなかったので、今回はNext.jsを試してみようかと思います。 Next.jsってなんだ 公式ドキュメントNext.jsはReactベースのWebアプリケーションフレームワークです。 ReactはJ…
こんばんは。ChatGPTのAPI使ってますか? Function callingという機能がしれっと追加されたみたいなのでちょっと遊んでみます。 何をしてくれるか一見すると謎いですが、プラグインを自分の環境で動かせるみたいな感じです。今回はNode.js(TypeScript)にし…