atoka-techのブックマーク (533)

  • ジャイアントパンダに注意 - Next.js のビルド改善 (株式会社GiXo様)

    最近になって Frontend Ops の傭兵として活動を始めました。 Frontend Ops 実践のモデルケースとして、 株式会社GiXo様で Next.js 仕事に取り組ませいただきました。今回、その内容を公開する許可を頂けたので、事例として公開させていただきます。 依頼主 株式会社GiXo様 以下、敬称略 相談内容 フロントエンド関連のリポジトリで、Next.js のビルドが遅くなってしまった。 重いことに起因して Vercel CI で OOM で確率的に落ちるようになった。CIが信用できなくなり、とりあえず再ビルドするクセがついてしまって、生産性が落ちている。 モノレポ内にとくに重いアプリケーションが一つあり、これを調査・解決してほしい。 仮ゴール: VercelCI 上のビルド時間を半分OOM が発生しないようにしたい 調査フェーズ リポジトリの閲覧権を頂き、プロジェクト構成

    ジャイアントパンダに注意 - Next.js のビルド改善 (株式会社GiXo様)
  • Next.jsの考え方

    Next.js App Routerにおける設計やベストプラクティスを、筆者なりにまとめました。

    Next.jsの考え方
  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 新たに書きました。 MySQLを使っても会社は潰れない 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。あ

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
  • ゼロからRAGを作るならこんなふうに

    どんな人向けの記事? これからRAGを作ってみたい DifyやLangChainにこだわらず、自分で開発をハンドリングしたい ベクトルDBや埋め込みモデルの選定の勘所をサッと知りたい ここではRAGとは何かのような話題は扱いません。 RAGが、ほぼAI活用の現実的な最適解になりつつある LLMは高度な知的タスクを実行可能である。 そんな理解が世界に広まっていく中で、企業は自らが蓄えたデータをLLMに組み合わせてどう活用するか躍起になっています。これからはビッグデータだ!という時代を経ているため、情報インフラに投資した企業も多く、AIでデータを活用する流れはもはや確定路線と言えます。 この問題を解決する手法として一番最初に思いつくのは、モデル自体を改変するファインチューニングです。しかし、ファインチューニングにはいくつかの実用上の問題があります。ファインチューニング自体に専門知識が必要である

    ゼロからRAGを作るならこんなふうに
  • 英語圏 YouTube に人生を溶かしすぎたのでみなさんの人生も溶かします - はちみつ漬けショートケーキ

    これは 東京大学きらら同好会 Advent Calendar 2022 の14日目の記事です。1日遅れてごめんなさい...... adventar.org きららじゃないものって、あんまりない!!(詠唱) 現状 時事・ドキュメンタリー系 ・Vox ・Wendover Productions ・B1M ・Mustard ・neo ・Calum ・Peter Dibble ・Kraut ・欧州新参連合(と私が呼んでいるもの) ・Ryan Chapman 科学・エデュテインメント系 ・Tom Scott ・Vsauce ・Veritasium ・StandUpMaths ・3Blue1Brown ・Steve Mould ・CGP Grey ・jan Misali ・Jay Foreman ・exurb1a ・Junferno ・Practical Engineering 私の趣味 ・ミリタリー

    英語圏 YouTube に人生を溶かしすぎたのでみなさんの人生も溶かします - はちみつ漬けショートケーキ
  • 【React】リッチテキストエディタ(Quill、Tiptap、Slate...)の考え方や前提知識

    概要 4年ほどProductionで使っていたリッチテキストエディタ(Quill on Nuxt.js v2)をTiptap on Next.jsに移行しました。 既存のQuillエディタの使い勝手をTiptapで再現しつつ、改善できるところは改善しつつ、既存の4年分のリッチテキストデータが正しく編集できるようにしなければいけませんでした。 記事では移行の具体的なプロセスを解説しようと思っていたのですが、リッチテキストエディタは前提知識があまりに多いため、前提となる知識や考え方を解説しているだけでそこそこのボリュームになりました。そこで、一旦考え方や前提知識をまとめた、という体で公開します。 記事を読んでから各ライブラリのDocsを読んだりカスタマイズを始めたら、少しハードルが下がっていることかと思います。 対象読者の例 リッチテキストエディタに興味がある リッチテキストエディタの開発

    【React】リッチテキストエディタ(Quill、Tiptap、Slate...)の考え方や前提知識
  • 王道か邪道か? タイムスタンプによるステート管理

    Reactによるステート管理では、ある状態が変化したら付随して他の状態も変化してほしい場合があります。例えば、次のような場合を考えます。 チェックボックスが1つある。 チェックボックスの初期状態は、HTTP APIから取得したデータによって決まる。 ユーザーはチェックボックスを操作できる。 APIからデータを再取得する場合があり、その場合はチェックボックスの状態が再取得されたデータに従ってリセットされる。 皆さんは、このような要件をどのように実装するでしょうか。 やりがちな実装 まず、やりがちな実装を見てみましょう。 const apiData = useApiData(); const [isChecked, setIsChecked] = useState(false); useEffect(() => { setIsChecked(apiData.isChecked); }, [ap

    王道か邪道か? タイムスタンプによるステート管理
  • この2年でFirebase Authentication はどう変わった?セキュリティ観点の仕様差分まとめ - Flatt Security Blog

    はじめに こんにちは、@okazu_dm です。 今回自分がぴざきゃっとさんが2022年4月に書いた以下の記事を更新したため、記事ではその差分について簡単にまとめました。 Firebase Authentication利用上の注意点に関して生じた差分とは、すなわち「この2年強の間にどのような仕様変更があったか」と同義だと言えます。IDaaSに限らず認証のセキュリティに興味のある方には参考になるコンテンツだと思います。 更新した記事につきましては、以下をご覧ください。 差分について Firebase Authenticationの落とし穴と、その対策を7種類紹介する、というのがオリジナルの記事の概要でしたが、2年ほどの時間の中で対策については大きく進歩したものが4点ありました(残念ながら落とし穴が無くなった、とまでは言えませんが)。 今回記事の中で更新したのは以下4点です。 落とし穴 1.

    この2年でFirebase Authentication はどう変わった?セキュリティ観点の仕様差分まとめ - Flatt Security Blog
  • tsconfig.jsonの設定を見直そう!�フロントエンド向け 2024夏

    2024-08-06 TSKaigi サブイベント #1 フロントエンド

    tsconfig.jsonの設定を見直そう!�フロントエンド向け 2024夏
  • 実務において回帰分析を行うに当たっての注意点を改めて挙げてみる - 渋谷駅前で働くデータサイエンティストのブログ

    先日のことですが、以下のニュースが統計的学習モデル界隈で話題になっていました。 肝心の箇所が会員限定コンテンツなので簡潔にまとめると、従来モデルよりも説明変数に入れる海域の数を増やした上で、Lasso(L1正則化)回帰で多重共線性を抑えつつ汎化性能を高めるというアプローチを取った、というお話です*1。これは回帰分析という基に立ち返った、昨今の「も杓子も生成AI」という流れからは一線を画した試みで、いかにも玄人好みという感があるなと僕も感じた次第です。 一方で、僕が身を置く広告・マーケティング業界でもMMM (Media/Marketing Mix Models)を初めとして様々なタイプの回帰分析が広く行われていますが、個人的に見聞する範囲では冗談でなく当にピンキリで、中には「そんなデタラメな回帰分析で当に役員会の意思決定に使っているんですか???」みたいなケースも珍しくありません。

    実務において回帰分析を行うに当たっての注意点を改めて挙げてみる - 渋谷駅前で働くデータサイエンティストのブログ
  • デジタル庁お墨付き! 即戦力のプロンプト集で「ChatGPT」をフル活用/デジタル庁がLLMに使うプロンプトテンプレート集を公開中【やじうまの杜】

    デジタル庁お墨付き! 即戦力のプロンプト集で「ChatGPT」をフル活用/デジタル庁がLLMに使うプロンプトテンプレート集を公開中【やじうまの杜】
  • Webサービス公開前のチェックリスト

    個人的に「Webサービスの公開前チェックリスト」を作っていたのですが、けっこう育ってきたので公開します。このリストは、過去に自分がミスしたときや、情報収集する中で「明日は我が身…」と思ったときなどに個人的にメモしてきたものをまとめた内容になります。 セキュリティ 認証に関わるCookieの属性 HttpOnly属性が設定されていること XSSの緩和策 SameSite属性がLaxもしくはStrictになっていること 主にCSRF対策のため。Laxの場合、GETリクエストで更新処理を行っているエンドポイントがないか合わせて確認 Secure属性が設定されていること HTTPS通信でのみCookieが送られるように Domain属性が適切に設定されていること サブドメインにもCookieが送られる設定の場合、他のサブドメインのサイトに脆弱性があるとそこからインシデントに繋がるリスクを理解してお

    Webサービス公開前のチェックリスト
  • エンジニアにも知って欲しいChatGPT基本テクニック - Qiita

    はじめに ChatGPTブームがひと段落した感がありますが、周りのエンジニアChatGPTを活用している姿をあまり見みません。 基的なテクニックを理解すれば、エンジニアこそChatGPTを活用できると思うので、普段使用しているテクニックをいくつかピックアップして紹介します。 プロンプトの記載方法 Markdown記法で指示する 色々なところで紹介されていますが、回答や処理の精度を上げる方法としてChatGPTへの指示にMarkdown記法を使用することがオススメされています。 例えば下記のような文章による指示を行おうとした場合

    エンジニアにも知って欲しいChatGPT基本テクニック - Qiita
  • 関東のおすすめの美術館(神奈川県編)

    はい。学芸員資格持ちがまずは神奈川県のおすすめ美術館を書くよ。 なお増田の観点により近現代が多くなっています。 ~神奈川県立近代美術館(通称かまきん)~昔は鶴岡八幡宮の境内にあった(建築が坂倉準三で有名)けど、今は葉山の海沿いにある美術館。(鶴岡八幡宮のそばの鎌倉別館は今もあるはず)近代美術館としては国近美に次ぐ歴史のある美術館で、長いだけあって渋めも多いが、確かな企画、作品が多い。葉山の雰囲気も良いね。ここにいた学芸員のかたがいろいろな美術館の館長として活躍していたりするよ。 ~江之浦観測所~現代美術家、杉博司氏が設計した施設。 個人的には彼の作品では「シアター」シリーズが素晴らしいと思う。その後の歴史や宗教に接続する作品群も戦略的とは思うけどね。ちなみにこの施設、中学生未満は入場不可。 ~横浜美術館~改修工事が終わり、トリエンナーレから再開。建築は丹下健三。ロビーが印象的。作品として

    関東のおすすめの美術館(神奈川県編)
  • Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える

    はじめに Next.jsCloudflare にホスティングしようとすると、必然的に Edge Runtime 環境になります。しかし、Edge Runtime 環境では、Node.js Runtime と異なり、Prisma がそのまま使えません。 最初に思い浮かぶ解決策は Prisma Accelerate です。Prisma Accelerate は公式のサービスで、接続プールイングやグローバルキャッシュ機能を備えており、Edge Runtime でも Prisma を使えるようにします。 しかし、無料プランだと月に 6 万クエリの制限があり、番運用には不安が残ります。 そこで、今回は Prisma Accelerate を自前で Cloudflare Workers 上に構築し、番運用に耐えうるサービスを無料で開発する方法を紹介します。この方法なら、無料プランでも 月に

    Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える
  • 誰でもわかる全文検索入門

    全文検索エンジンも、事前に検索対象のデータを調べてこのような索引を作っておくことで、高速な検索を実現しています。 インターネット検索の例 たとえばインターネット検索の場合、まず各サイトからデータを収集して、その中から索引に載せる単語を選んで索引を作ります。索引のデータは下の図の右側のような表になっています。各単語と、それがどのサイトのどこにあったのかを記録しておく形です。 検索の時は、この索引データを調べます。例えば利用者が「理解」という言葉で検索したら、索引の「理解」のところを調べます。そうすると「サイトAの8文字目と18文字目、サイトGの……」と出現場所がわかるので、すぐに結果を返せます。 なお、この図では索引の単語の並び方が適当ですが、実際にはと同じように「あいうえお順」などに並べておいて、すぐに単語を見つけられるようにしてあります。 索引にない単語 この仕組みの場合、索引にある単

    誰でもわかる全文検索入門
  • ブラウザキャッシュの仕組みについてまとめた

    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

    ブラウザキャッシュの仕組みについてまとめた
  • 商用でも完全に無料ですごい! デザインやイラストでかなり使える有料レベルの高品質なテクスチャ素材 -ResourceBoy

    個人でも商用でも完全に無料で利用できる、高品質でさまざまな種類が揃った高解像度8K, 4Kのテクスチャ素材を紹介します。 ゴールド、大理石、煉瓦塀、スモーク、花火、蜘蛛の巣、シャドウ、クラフトペーパー、ブラックペーパー、チョークボード、段ボール、デニム地、水彩、グラデーションなどがそれぞれカテゴリごとにまとめてダウンロードできるので、非常に便利です。 難点があるとすれば、ファイルサイズが大きいので、ダウンロードに時間がかかるくらいでしょうか。 ResourceBoy ResourceBoyはテクスチャ素材をはじめ、ブラシ素材、グラデーション素材、モックアップ素材など、商用利用無料の数多くのリソースをダウンロードできます。以前にも紹介しましたが、その時からさらにテクスチャ素材の種類が増え、パワーアップしています。 ResourceBoy ライセンスは独自で、個人でも商用でも無料、ロイヤリティ

    商用でも完全に無料ですごい! デザインやイラストでかなり使える有料レベルの高品質なテクスチャ素材 -ResourceBoy
  • RAGを複雑な質問に強くする手法「CoA」について

    記事では、「Chain-of-Abstraction (CoA) Reasoning」についてざっくり理解します。軽めの記事です。 株式会社ナレッジセンスでは普段の業務で、生成AIやRAGシステムを活用したサービスを開発しています。 この記事は何 この記事は、最近聞くようになった「Chain-of-Abstraction (CoA) Reasoning」の論文[1]について、日語で簡単にまとめたものです。 今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合は以下の記事もご参考下さい。 題 ざっくりサマリー LLMが外部ツールを使って回答を生成するときの、回答精度を高める手法についての論文です。Metaの研究者らによって2024年1月に提案されました。「Chain-of-Abstraction (CoA)」という手法を使うメリットは、RAGに応用することで

    RAGを複雑な質問に強くする手法「CoA」について
  • GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator.