タグ

superblueplanetのブックマーク (11,063)

  • 【React】並び替えられるTodoアプリを作ってみた

    この記事は GMOアドマーケティング Advent Calendar 2023 12日目の記事です。 はじめに はじめまして。GMOアドパートナーズの樋笠です。 最近Reactを使い始めたので、練習のために簡単なTodoアプリを作りました。 せっかくなら、ドラッグ&ドロップでタスクを並び替えられるようにしようと思いました。 dnd kit というライブラリを使うと簡単に実装できたので、ご紹介します。 Todoアプリの概要 今回は、 Mantine というUIライブラリを使用して作成しました。 MantineはボタンなどのUIコンポーネントだけでなく、便利なhooksを提供しています。 TodoListコンポーネント まずは、アプリの大枠部分↑です。 useListState というhookを使って、タスクの追加・編集・削除などを行えるようにしています。 今回はイベントハンドラなどの細かい実

    【React】並び替えられるTodoアプリを作ってみた
  • 複数サービス間でのデータの整合性維持に向けたSagaの実装 - NTT Communications Engineers' Blog

    マイクロサービスアーキテクチャにおいては、個々が独立に選定したデータベースを持つ複数のサービスにまたがって、データの整合性を維持する必要があります。 そのための方法として、Sagaパターンと呼ばれる設計方法がありますが、Sagaでは分離性が欠如しておりLost Update等の異常が発生しかねません。 そこで記事では、Sagaの分離性を高めるための実装におけるTipsを解説します。 目次 目次 はじめに 複数サービス間での整合性維持における課題 Sagaパターン Sagaを構成するトランザクション Sagaによって実現される安全性 原子性(Atomicity) 整合性(Consistency) 分離性(Isolation) 永続性(Durability) 異常を防止/軽減する実装 分離性の欠如が引き起こす異常 分離性の欠如への対策 Semantic Lock Commutative Up

    複数サービス間でのデータの整合性維持に向けたSagaの実装 - NTT Communications Engineers' Blog
  • 理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ

    こんにちは。カミナシにて業務委託としてフロントエンドを担当している田村(@junkboy0315)です。皆さんはフロントエンドのテスト、どのように取り組んでいますか?フロントのテストはなかなか難しいですよね。 バックエンドのテストには、「入力、出力、永続化されたデータ」の3つを検証するという基セオリーがあります。しかし、フロントエンドのテストは、その粒度や手法が多様で、とっつきにくいと感じる方も多いのではないでしょうか。 カミナシでもフロントエンドのテストは以前は十分とは言えない状態でしたが、これまで継続的に改善を重ねてきました。今回は、その変遷についてお話ししようと思います。 夜明け前 カミナシのコードベースでは、元々ユニットテストがある程度整備されていました。これらは主に複雑な計算処理を行い結果を返す関数などに対して実施されていました。 しかし、画面全体の機能を網羅する包括的なテスト

    理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ
  • 「このバンドが好きなら、これらのバンドも好きかも」をAIが提案する音楽マップが話題に - amass

    「このバンドやミュージシャンが好きなら、これらのバンドやミュージシャンも好きかもしれない」というのをAI人工知能)が提案する音楽マップ「Music-Map」が話題に。マップ上、2つの名前が近ければ近いほど、両方のアーティストが好きである確率が高くなるという。これは、人工知能と新しいユーザーインターフェースの実験Gnod(Global Network of Discovery)の一環として作られたものです。 ■音楽マップ「Music-Map」 https://www.music-map.com/

    「このバンドが好きなら、これらのバンドも好きかも」をAIが提案する音楽マップが話題に - amass
  • 【入門】事例で学ぶ要件定義 - Qiita

    はじめに 最近プロジェクトマネジメント関連の仕事をする機会が増え、要件定義や設計関連の業務もするようになったので、私の経験を基に要件定義の具体的なプロセスや考え方について、まとめていきます。 記事について Findy様の「要件定義 先達に学ぶ今日から使える実践テクニック Lunch LT」で登壇した内容を元に作成しています。 この記事の対象者 要件定義の基や思考プロセスを学びたい人 エンジニアからプロジェクトマネジメントをやりたい人 ビジネスサイドとエンジニアサイドのコミニュケーション能力を向上させたい人 具体的な事例を通して要件定義を学びたい人 前提 紹介する内容はあくまで一例であり、プロジェクトやチームの状況に応じて調整が必要 あくまで自分(駆け出しPM)の経験に基づいた内容を言語化しています プロジェクト規模は10名〜20名のWebアプリ開発を想定しています システム開発の全体像

    【入門】事例で学ぶ要件定義 - Qiita
  • Gmailの新スパム規制対応全部書く

    [2024年1月10日、19日追記] GmailとYahoo!側のアップデートに合わせていくつか細かい説明を追加しています(大筋は変わっていません)。変更点だけ知りたい方は「追記」でページ内検索してください。 2023年10月3日、Googleはスパム対策強化のため、Gmailへ送るメールが満たすべき条件を2024年2月から厳しくすると発表しました。また米国Yahoo!も、2024年2月 第一四半期[1] から同様の対策を行うと発表しています。端的に言えば、この条件を満たさないと宛先にメールが届かなくなるという影響の大きな変更です。 この記事では、Gmailや米国Yahoo!の規制強化への対応方法を解説します。ただし米国Yahoo!にメールを送る人は多くないと思うので、フォーカスはGmail寄りです。また、メール配信サービス(海外だとSendGridやAmazon SES、国産だとblas

    Gmailの新スパム規制対応全部書く
  • 本当にわかりやすいAI入門

    2023年12月7日に開催されたStudyCoの勉強会で、AIについてお話した際の資料です。 スライドではお伝えしきれない部分もあるので、同じ内容を記事にしてます。こちらもぜひ! https://qiita.com/segavvy/items/9e7e4ab4b253599ac58a 動画(スライド画面+音声)はこちらです。 https://youtu.be/fI-UnWA6ANs?feature=shared

    本当にわかりやすいAI入門
  • credentialをSlackに書くな高校校歌 - freee Developers Hub

    youtu.be こんにちは。freee 基盤チーム Advent Calendar 2023 12/6の記事は、PSIRTのWaTTsonがお届けします。セキュリティ仕事をやっている新卒2年目です。 freeeでは会計や人事労務といった領域のプロダクトを提供していて、顧客となる企業の財務情報や給与情報のような、非常に機微な情報を扱うことがあります。このため、情報セキュリティには特に気をつけて対策をとる必要があります。 freeeセキュリティに関する施策方針については、セキュリティホワイトペーパーにまとめて公開しています。この中で、データの取り扱いについては「セキュリティレベル」を定めてそれに応じた保護策をとる旨が記載されています。 データの取り扱いとセキュリティレベル プロダクトを作る際、機微な情報は適当に定めた信頼境界から外に出さないように運用して、情報漏洩などの被害が起きないよう

    credentialをSlackに書くな高校校歌 - freee Developers Hub
  • Re: なんで今さら帳票エンジンを新規開発しているのか

    pdfmeとは Website: https://pdfme.com/ TypeScriptで書かれたオープンソースの無料の帳票エンジン。 テンプレートを使って宣言的にPDFを作成でき、サーバー、ブラウザどちらでも動作する。 2022年2月にbeta版としてリリースしてから現在 Version3で GitHubではStartが1500、npmではバラツキはあるが週間1万件くらいのダウンロードがある。 自分が把握しているだけで、世界中で採用事例があり、電子カルテ作成、工場の手順書作成、ECのカスタムパッケージ制作ソフトなど、すでにいろんなサービスに組み込まれている。 この記事ではどのようなモチベーションでpdfmeを開発しているのかということを説明したいと思います。 なんで帳票エンジンを新規開発するのか PDFファイルを作成・編集するという観点ではpdfkitという素晴らしいライブラリが20

    Re: なんで今さら帳票エンジンを新規開発しているのか
  • RAG(Retrieval Augmented Generation)を用いたPostgreSQLアシスタントAIの試作 - Qiita

    この記事はNTTコムウェア Advent Calendar 2023の4日目の記事です。 こんにちは、NTTコムウェアの平塚です。今月は2023冬 Chill Seasonで手に馴染むブキを探しているところです。 大規模言語モデルが持っていない最新情報や企業内情報を補うためのRAG(Retrieval Augmented Generation、検索拡張生成)というアーキテクチャーがあります。ごく簡単に説明すると、外部データベースを用意してそこで検索した結果を大規模言語モデルに説明させるというものです。以下はRAGのイメージ図です。 現在多くの企業さまがRAGの検証に取り組んでいるところかと思います。今回RAGを用いてPostgreSQLに詳しいアシスタントAIを試作したので、気づいたところをいくつ か共有いたします。 まとめ PostgreSQLアシスタントAIはある程度使えるものになりそ

    RAG(Retrieval Augmented Generation)を用いたPostgreSQLアシスタントAIの試作 - Qiita
  • フロントエンドのディレクトリ設計思想

    はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 記事の趣旨 記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

    フロントエンドのディレクトリ設計思想
  • 中途入社や部署異動で来た新メンバーを活躍しづらくするアンチパターン - Qiita

    1. はじめに ソフトウェア開発のチームに、新しいメンバーが入ってくることはよくあります。 以前に新卒社員がチーム入ってきた場合の育成方法を紹介しました(こちら)。 今回は、新卒社員ではなく、他の会社から中途入社か同じ会社の部署異動で来る新メンバーの話です。 (エンジニアが数百人などで規模が大きい会社の場合、部署が違うと仕事のやり方が全く変わる場合があるので、今回は中途入社と他の部署からの異動を同じように「新メンバー」として扱います) 会社や部署が変わると仕事のやり方が大きく変わるため、仕事のやり方に戸惑うことが多いと思います。 稿では、そのような「新メンバー」を活躍しづらくしてしまうアンチパターンとその対策を紹介します。 2. 中途入社や部署異動で来た新メンバーが適応することの困難さを理解する 中途入社や部署異動で来た新メンバーが組織に適応することは、新卒社員のそれとは別の難しさがあり

    中途入社や部署異動で来た新メンバーを活躍しづらくするアンチパターン - Qiita
  • いろんなやり方の読書会をやってみたら当日音読その場でまとめ方式が最高だった話 - Gunosy Tech Blog

    こんにちは、SRE チーム マネージャーの TksYamaguchi です。 こちらの記事はGunosy Advent Calendar 2023の3日目の記事です。 前回の記事は森田さんの LLM 論文の探し方でした。 概要 SRE チームは、シニアエンジニアとジュニアエンジニアで構成されているチームで、チーム内の技術的な知識の偏りの解消や、知識のタコツボ化の解消を目的として読書会をしてきました。 その過程でいろいろな読書会のパターンを行ってきましたので、その結果を共有します。 概要 読書会開始前の SRE チームの課題感 読書会 のやり方の整理と評価の観点 やり方 評価の観点 当日音読・Slack に投下する方式 実際のまとめ 方式詳細 評価 メリット デメリット 事前に読んで Miro*1 に付箋・当日議論する方式 実際のまとめ 方式詳細 評価 メリット デメリット 当日黙読・その場

    いろんなやり方の読書会をやってみたら当日音読その場でまとめ方式が最高だった話 - Gunosy Tech Blog
  • 認可のベストプラクティスとDDDでの実装パターン

    最近、少々複雑な権限機能の開発を担当している中で、対応方針を悩んでいたことがありました。 権限機能というものは取り扱いが難しく、影響範囲が広いにも関わらず、対応漏れや考慮不足があると情報漏洩に繋がってしまいます。 また、機能拡張をしてく中でも対応漏れを起こさないようにする必要があるなど、考えることも多く頭を悩ませておりました。 そこで、認可処理の設計のベストプラクティスやDDDの実装パターンに認可処理を組み込む方法など、色々と調べていたのですが、その中でいくつか知見を得られたのでまとめようと思います! 権限と認可 権限と切っては切れない関係にあるのが認可です。 権限はある操作を実行できる権利を指します。 それに対して、認可は操作を実行する許可を出すため仕組みのことを指します。 例えば、ブログ投稿サービスで考えてみると、以下のような感じです。 権限: 投稿者はポストを編集できる。 認可: ユ

    認可のベストプラクティスとDDDでの実装パターン
  • Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita

    メールの世界にGmailさんが新たな闇を投入 (インターネットの)メール受信・送信は闇あふれる世界だと思うのですが(*1)、そこに 2023年10月7日、新たな闇要素をGmailさんが投げ込んでくれました。(正しくは2023/12月頭現在、闇がモリモリ増えてる。補足①②参照) (*2 最下部キャプチャあり) えーと、「1日あたり 5,000 件を超えるメールを送信する送信者」はこの事項を守ってね……とあります。要件と書いてあり、2024/2/1から実施と急なうえに、項目が SPFとDKIMの設定 逆引き 迷惑メール率 メール形式 Gmail の From: ヘッダーのなりすまし ARC DMARC ダイレクトメールの場合(……なんとかかんとか) 登録解除 と9個もある。 何これ……?と様々な人を戸惑わせています。 インターネットにつながっているそこそこの規模の組織は、1日あたり 5,000

    Gmailが2024年2月から(大量)送信者に求めてることが分からない闇への防衛術(前編) - Qiita
  • OpenAI Embeddings APIとベクトル検索エンジンValdを使って類似文章検索をしてみよう

    ベクトルの準備 次にタイトル文章をベクトル化していきます。 OpenAIのアカウントを作成し、こちらからAPIキーを取得し、それを環境変数OPENAI_API_KEYに設定した後、次のコードを実行するだけで、入力文章のベクトルを取得できます。 import os import openai openai.api_key = os.environ["OPENAI_API_KEY"] client = openai.OpenAI() def get_embedding(text, model="text-embedding-ada-002"): text = text.replace("\n", " ") return client.embeddings.create(input=[text], model=model).data[0].embedding get_embedding("入力し

    OpenAI Embeddings APIとベクトル検索エンジンValdを使って類似文章検索をしてみよう
  • 見積りとは何か?

    見積りとは何か?2023年12月2日この記事は 10X アドベントカレンダー2023 という企画の2日目(12/2)の記事です。 1日目(12/1)の昨日は岡野さん(@operandoOS)による「CIを高速化する技術⚡️」でした。 はじめに この記事の内容は以下のの第一章とほぼ同じ内容となります。この記事の読んで見積りについて興味が湧いたらぜひ以下の書籍に目を通してみてください。 出典 ソフトウェア見積り 人月の暗黙知を解き明かす 早速ですが見積りしてますか?おそらくソフトウェアエンジニアの方であれば、こんな感じで会話して見積りした経験が1度はあるんじゃないでしょうか? プロダクトマネージャー「機能xyzの件だけど、開発期間はどのくらいだと見積もってる?」 ソフトウェアエンジニア「1ヶ月ですね。」 プロダクトマネージャー「長すぎる。1週間で何とかならないか。」 ソフトウェアエンジニア

    見積りとは何か?
  • LangChain の新記法「LangChain Expression Language (LCEL)」入門

    LangChain Advent Calendar 2023 の 2 日目の記事です。 LangChain Expression Language (LCEL) とは LangChain Expression Language (LCEL) は、LangChain でのコードの新しい記述方法です。 公式ドキュメント: https://python.langchain.com/docs/expression_language/ LCEL ではプロンプトや LLM を | で繋げて書き、処理の連鎖 (Chain) を実装します。 2023 年 10 月後半頃から、LangChain では LCEL を使う実装が標準的となっています。 この記事では LCEL の基的な使い方を紹介していきます。

    LangChain の新記法「LangChain Expression Language (LCEL)」入門
  • 「ChatGPT/LangChainによるチャットシステム構築 」という書籍が素晴らしかったのでNode.jsでも書いてみた - selmertsxの素振り日記

    はじめに 「ChatGPT/LangChainによるチャットシステム構築」 というが素晴らしかったので、ちゃんと身につけるために Python だけじゃなくて Node.js でも動かしてみました。同じことをやろうとした人のために、ここにそのときの記録を残します。特に callbacksやmemoryについて、詳細に記載しようと思います。 書籍の説明につながるようなことはできる限り書きません!めっちゃ良書なので、ご興味持っていただけた方は購入してもらえますと 🙏 5章まではPython固有のToolを利用しており、6章の中身は7章とかなり近いところがあるので、7章のプログラムだけここに記載します。LangChainの学習に注力したいので、Serverelss Frameworkに関連するコードは省略しました。また、Momentoや @slack/bolt に関する説明はしません。 プロ

    「ChatGPT/LangChainによるチャットシステム構築 」という書籍が素晴らしかったのでNode.jsでも書いてみた - selmertsxの素振り日記
  • 9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ

    私は日付時刻の処理が大好きです。 タイムゾーンの問題でデータ抽出が9時間分漏れていたとか、朝9時の始業前のログが昨日付けになってしまっていたなんていう問題が起こると喜んじゃうタイプ。 そんな私にとって、各プログラミング言語が標準で持っている日付時刻型クラスにはそれぞれ思うところがあり、今日はちょっとその品評会をしてみたいと思います。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@yuba@reax.work) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の2日目です。 至高の日付時刻型を持つ言語、BigQuery SQL 不足はないが蛇足、Java 8 日付時刻で画竜点睛を欠いたC# C#よりややまし、Python 型は良い構成、なのに命名と処理関数で損しているPostgreSQL まとめ We ar

    9時間足すんだっけ引くんだっけ問題~あるいは、諸プログラミング言語はいかにタイムゾーンと向き合っているか - エムスリーテックブログ