白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

GitHub Actionsのself-hosted runnersをDockerで作ってみる

こんばんは。 ずっと暑いですね。外に出ると溶けそうになります。さて、最近はCI/CDといえばGitHub Actionsが結構有力な選択肢ですが、そういえば自分で構築したことがなかったなと思って試してみます。 前半はポチポチ触っていますが、後半に最終的なDocker…

2024年上半期に読んだ本からおすすめを紹介

こんばんは。 気づけばもう6月も終わり、なんと1年の半分が終わってしまいました。この半年で読んだ本のうち、良かったものを簡単な感想とともに紹介します。 まとめてじゃなくて読むたびに書いた方がいいんだろうなと思ったり…せめて2か月くらいペースしよ…

Remix+Prisma+Storybookでお手軽Webアプリ

こんにちは。 まだ梅雨入りもしていないですが、そろそろ夏が来たって感じがしますね。さて、せっかくRemixのチュートリアルをやったので試しにWebアプリを作ってみます。 今回はORMとしてPrismaを、UIコンポーネントの確認ツールとしてStorybookを使います…

Remixのチュートリアルをやってみる

こんばんは。App Routerが出るくらいの頃からNext.jsをちらほら使っていたのですが、今回はRemixのチュートリアルをやります。 Next.jsがちょっと重たいなと思うのと(処理がではなくフレームワークの規模的に)、微妙に融通が効かないと思うことがあるので…

ベクトル検索に思う学びとの付き合い方

はじめに キーワード検索に替わる、もしくは補うセマンティック検索としてベクトル検索が登場してしばらく経ちますが、最近の生成AIの盛り上がり、特にRAGパターンの流行によってその知名度は一気に上がったように思います。あらゆる「モノ」「コト」が数値…

TSKaigi2024レポ

こんばんは。TSKaigi2024にオンライン参加したのでちょっとだけ感想を。 カンファレンス的なものの参加ってめちゃくちゃ久しぶりなのですが、イベント参加したら何か書けと偉い人も言ってる気がするので簡単な感想と聞きながら書いてたメモで。 変に矢印とか…

AIのビジネスアイデアを考えてもらおうぜAIに

こんばんは。 衣替えをしたんですが、そういえばスプリングコートとか一回も着ていないことに気付きました。日々生成AIの新しいモデルが公開されて群雄割拠の時代という感じですが、なんかすごいことができそうな気がする割にアイデアが思いつきません。 じ…

デフォルト引数があってもシグネチャが変わるから互換性はないよ

C#

こんばんは。 暑いです…四月なのに…。さて、すごく久しぶりにC#のネタです。 ライブラリってバージョンアップするよね C#のパッケージマネージャといえばNuGetですが、1.0.0のようにx.y.z形式でバージョニングします。 後方互換のないバージョンアップはメジ…

構造的型付けとValueObject

こんにちは。 急に春を通り越して夏なんですが、いったいどうしたんでしょうか。 桜はいつ見ればいいですか?さて、ちょっとコードを書いてて「ん?」ってなったので。 ValueObjectを作ろう オブジェクト指向ではValueObjectという概念がときどき使われます…

Facadeパターンはファサードなんだろうか

こんにちは。 ぼちぼち、新年度の足音が聞こえてきますね。さて、タイトルなんですが、前からずっともやもやしてることです。 別にFacadeパターンをやめろとか名前を変えろとかそういう話じゃないんですが、なんか自分の思うファサードとちょっと違うんだよ…

TypeScriptでLangChainを使ってみる その3 RAGパターン編

こんばんは。 最近Alexaの耳が遠くなってる気がするんですが、気のせいでしょうか。前回は検索編でしたが、今回は応用としてRAGパターン編です。 shironeko.hateblo.jp引き続きコードはGitHubにあるので良かったらご覧ください。 github.com データの収集と…

TypeScriptでLangChainを使ってみる その2 検索編

こんばんは。 無印で売り切れになってたカレンダーが復活してたので、買って帰ったら4月始まりでした。前回は基礎編でしたが、今回は検索編です。 shironeko.hateblo.jpRAGパターンもそうですが、結局どこかからデータを集めたりLLMに渡したりしないと独自デ…

未使用のラベル(unused label)と返ってこない値

こんにちは。 最近の太巻きはだんだん豪華になって太くなっていますが、切らずに無言で食べるにはもはや苦行なんじゃないかなと思います。さて、罠を踏んだので備忘録。 わかるひとはタイトル見たら「あー、あれね」ってわかりそう。 先に結論 おそらくこう…

TypeScriptでLangChainを使ってみる その1 基礎編

こんばんは。 リボンライトの接触がおかしくなって部屋の片隅が妖しく赤く光っています。私です。今回から何回かに渡ってLangChainを触っていこうかと思います。 LangChainはPython版とJavaScript(TypeScript)版があるのですが、Pythonの方が開発が先行し…

ChromaDB+Dockerでお手軽にベクトルDBを使ってみよう

こんばんは。 本が読みたいけど首が痛いです。 RAGが作りたい ChatGPTなどのLLMを利用して何かを作っているとRAG(Retrieval-Augmented Generation)という仕組みが作りたくなってきます。 RAGとは簡単に説明すると外部のデータを使ってLLMに情報を与えるパ…

GPT BuilderのプレイグラウンドでもGPT-4の利用制限にひっかかるよ

小ネタ。 タイトル以上の情報は特にないです。GPT Storeが今週中にリリースされるらしいですね。 せっかくなのでGPT Builderを使ってGPTsを作ってみようかなと思ったのですが、なかなかチューニングが難しいです。 で、プレイグラウンドで試しながら調整して…

あけました

こんばんは。新年最初の記事ということで、2023年を振り返ってみたり、2024年に思いを馳せたりしてみようかと思います。 思い付きで徒然と書いていく感じなのでまとまりはないですがご了承くださいませ。 寝ても覚めても生成AI 2023年はやはり何といってもCh…

2023年に読んだ本からおすすめを紹介

こんにちは。 メリークリスマス。 気が付けば年の瀬ですね…ほんとに?そろそろ1年が終わるので今年読んだ本からおすすめを紹介したいと思います。 あくまで私が今年読んだだけで、新しい本というわけではないのでご了承ください。 マネジメント・組織 マネジ…

ChatGPTに図を書いてもらうときにはMermaid記法が便利かなと思ったんだけど…

こんにちは。 気づけばもう12月、恐ろしい話です。さて、今回は生成AIとの付き合い方のお話。 時代はもうマルチモーダルになってきているので、直接画像出力してもらえばいいじゃないという説もなくはないと思いますが、図を書くときにMermaid記法を使ったら…

最近の本の読み方

最近っていうのは一般的なとかそういう意味じゃなくて、個人的な感じです。 「最近の若者は」とか「令和最新版」の最新じゃないです。これまで割と本は1冊ずつ読んでいたのですが、最近は3~4冊を同時に読み進めるスタイルにしています。 聖徳太子的なことで…

OpenAIのAPIで画像を生成したり、画像から文章が作れるようになったみたい

こんばんは。 最後の夏の名残を感じた気がします。11月だぞー。さて、OpenAI DevDayでいろんなことが発表されたみたいです。 DALLE-3による画像生成と、GPT-4Vによる画像の入力が気になったので試してみます。 ちなみにTypeScript(nodejs)です。今日のコー…

TypeScriptのinterfaceとtype

こんにちは。 夕食のメニューに鍋という選択肢が入ってきてちょっと楽ちんです。 今回はinterfaceとtypeの比較をします。 interfaceっぽいのはオブジェクト型 さて、前回typeについて見ていきましたが、typeに定義できる種類にオブジェクト型というものがあ…

TypeScriptのtype(型エイリアス)がややこしいけど面白い

こんにちは。 本が読みたい気持ちと首が痛い気持ちが拮抗しています。 さて、前回がinterfaceの比較だけで終わってしまったので、typeについて見ていきます。 型アノテーション(Type Annotation) とりあえず型を使ってみます。こんな感じで定数とか変数とか…

JavaとC#とTypeScriptのinterfaceの違い

こんにちは。 急に気候が変わってついていけません。 窓を開けると湿度の低さにびっくりします。さて、最近たまに記事に書いているように、ちょくちょくTypeScriptを触っています。 もともとJavaをやっていて、いまはC#をメイン言語にしているので文法的にそ…

マネジメントについて考えてみる

マネージャーという立場になって1年半が経ちました。 マネジメントというものを理解したともとても思わないし、1年、半年、いや1ヶ月後にはまた考えが変わっているかもしれないけれど、一度自分の思うマネジメントという仕事を言語化して整理してみたいと思…

吾輩は猫である。名前はマジヤバイ。

npm init -y npm install typescript @types/node kuromoji @types/kuromoji ts-nodeふむ。 import kuromoji from "kuromoji"; const sentence = "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニ…

Next.js(App Router)を試してみる3(コンポーネント)

こんばんは。 除湿機の水を捨てるたびに「そんなに水が湧いてくるのおかしくない?」って思う私です。前回はルーティング周りを確認したので、今回はレンダリング周りを確認します。 そもそもReactを触っていないので、Reactの機能なのかNext.jsの機能なのか…

Next.js(App Router)を試してみる2(ルーティング)

こんにちは。 お盆ですね。Googleで「お盆」でサジェストすると「お盆 2023」とか出てきてスポーツの祭典みを感じます。前回はとりあえずNext.jsのアプリを作ったので、今回はルーティング周りを見ていきます。 ルートのルーティング Next.jsのURLルーティン…

Next.js(App Router)を試してみる1(構築)

こんにちは。 毎日暑いですね。フロントエンドのフレームワークをあまり触ったことがなかったので、今回はNext.jsを試してみようかと思います。 Next.jsってなんだ 公式ドキュメントNext.jsはReactベースのWebアプリケーションフレームワークです。 ReactはJ…

DooDでコンテナ内からホストのDockerを操作しよう

こんばんは。 毎日暑いですね…7月ってこんなだったっけ…。今回はコンテナの中のJenkinsを利用してホストのDockerを操作してみます。 そもそもなんでそんなことがしたいか ちょっとアクロバティックなのでなんでそんなことしたいの?というお話です。 例えば…