hkr_Iのブックマーク (1,958)

  • GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub

    この記事はfreee Developers Advent Calendar 2023の21日目の記事です。 こんにちは、金融開発部でEMをしている ogugu です。 今回は、Go言語において Feature Toggle の分岐を掃除するCLIを作ったので、ご紹介します。 ※ 毎年恒例の開発合宿 での成果になります。 Feature Toggle とは Feature Toggle とは、特定機能の有効・無効をフラグによって切り替える方法です。 金融開発部では、以下のように Feature Toggle を実現できるライブラリを用意しています。 if featflg.Enabled(ctx, "feature_name") { doNewLogic() } else { doOldLogic() } 一般に、フラグ設定は、設定ファイル・環境変数・ストレージなどから読み出し、それらに対する

    GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub
    hkr_I
    hkr_I 2024/06/09
  • explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ

    はじめに こんにちは、バックエンドエンジニアのSakiです!バックエンドでPHPを書いたり、PHPという言語そのもののメンテナーもしています。 この度、注文データダウンロードAppのパフォーマンスをアップさせるため、とても入念にデータベースまわりの処理を見直しました。その中でも特に速度に関わってくる「index」についての考え方をまとめたいと思います。 この記事はMySQL(InnoDB)についての記事であり、他のRDBについては当てはまらない場合もあるということにご注意ください。 indexとは何か、おさらい ご存知の方ももちろん多いと思いますが、indexについておさらいさせてください。 indexとは辞書でいうところの目次に相当するもので、目的のデータをいち早く検索するために重要なものです。もし辞書に目次が存在しなかった場合、目的の情報を探すのにとても苦労するだろうというのは想像しや

    explainだけじゃわからない!MySQLのindexの考え方 - BASEプロダクトチームブログ
    hkr_I
    hkr_I 2024/06/05
  • MySQL/Aurora/TiDBロック入門 – 第1回トランザクション分離レベル|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    MySQL/Aurora/TiDBロック入門 – 第1回トランザクション分離レベル MySQL InnoDB および AWS Aurora や PingCAP TiDB におけるロックの仕組みやトランザクションの動作を全11回のシリーズで解説します! 最初はベースとして重要な MySQL 8.0 InnoDB 前提でユーザー視点でのロックの仕組みを学び、後半第10回以降では MySQL 互換 DB として人気の高い AWS Aurora や PingCAP TiDBMySQL InnoDB との違いについて学びます。 1回目の今回はロック機構と切っても切り離せないトランザクションとその分離レベルについて、実際に挙動を確かめながら解説します。ライブ感のある説明も理解に役立ちますので、解説動画も付けてみました。合わせてご覧ください! ★ 第1回 トランザクション分離レベル ★ 第2回 ロ

    MySQL/Aurora/TiDBロック入門 – 第1回トランザクション分離レベル|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
    hkr_I
    hkr_I 2024/05/31
  • データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。

    回答 (7件中の1件目) まずはUUID及びその対案として用いられる連番(自動採番)のメリット・デメリットを整理します。 (タイムスタンプキーや複合キーなどもその効率性から設計上有用なシーンはありますが、比較から除外します。) * UUIDを使うことのメリット * * データベースにSQLを送信する前からアプリケーションレイヤーでIDを生成できる。 * * トランザクション処理を実装しやすい場合がある。 * IDを推測しにくい。リソースが列挙可能ではない。 * UUIDを使うことのデメリット * * レコード・インデックスサイズが増加する。 * * ...

    データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。
    hkr_I
    hkr_I 2024/05/16
  • 実用Rustアプリケーション開発

    実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? このでは、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ

    実用Rustアプリケーション開発
    hkr_I
    hkr_I 2024/05/13
  • GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog

    はじめに JCEXで実践しているAPIテストについて 単体テスト 負荷テスト なぜAPIの単体テストを行っているのか API単体テストで使用するパッケージ 実例によるAPI単体テストの環境構築 前提 ステップ1: テストしたいAPIの定義 ステップ2: テストの作成 ステップ3: APIの実装 ステップ4: DBを使ったテスト ステップ5: ヘルパー関数化 ステップ6: テーブル駆動テストに変える ステップ7: フィクスチャを使ったテスト まとめ おわりに はじめに こんにちは、enechainのGXデスクエンジニアをしている@ejiです。 GXデスクは、『日気候取引所 - Japan Climate Exchange』 (以下 JCEX) のサービス開発を担当しており、 私は主にBFFとバックエンドのAPIGoで開発しています。バックエンドのAPIgRPC を使用しています。

    GoでgRPCのAPIテスト環境を構築する - enechain Tech Blog
    hkr_I
    hkr_I 2024/05/01
  • MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭

    今回答えを出したい問いはこちら!! インデックスはどのような仕組みを以て、何を実現したいものなのか それを踏まえたとき、インデックスはどういう場合になぜ貼る方が良いのか。また、どういう場合になぜ貼らない方が良いのか 大体分かっているよって人はサヨナラって感じのおさらい記事だぜ!!!!それじゃいってみよー🎉 あと、おれは今回MySQLにしぼっていくぜ👶 ってわけでOracleとかに興味があるやつは引き返しな! indexの概要 公式の見解としては「where句を使ったselectクエリの実行速度を向上させるために実装されている、各行へのポインターのような振る舞いをする仕組み」って感じ👶 The best way to improve the performance of SELECT operations is to create indexes on one or more of t

    MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭
    hkr_I
    hkr_I 2024/04/29
  • 列指向、行指向データベースの特性を木構造を用いた集計クエリから理解する

    この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint" の 34 週目の記事です! 1 年間連続達成まで 残り 19 週 となりました! 株式会社ログラスの龍島(りゅうしま)です。最近はもっぱら新生姜をガリにしてクラフトビールのつまみにする毎日を送っています。今日はデータベースとデータ構造の話です。 この記事でやること データ集計の高速化のため、多くの場合、列指向データベースが選ばれます。列指向が大量のデータ操作を効率的に処理できるためです。行指向のデータベースを利用している状況で、データ集計のパフォーマンス向上のため列指向データベースへの移行をすることはよくある例です。しかし、行指向データベースで有効なデータ構造やクエリが列指向で同様に優れているとは限りません。この記事では、行指向のPostgreSQLと列指向のBigQueryを使って、それぞれに

    列指向、行指向データベースの特性を木構造を用いた集計クエリから理解する
    hkr_I
    hkr_I 2024/04/13
  • LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング

    こんにちは、メルカリの生成AIチームで ML Engineer をしている ML_Bear です。 以前の記事[1]では商品レコメンド改善のお話をさせていただきましたが、今回は、大規模言語モデル (LLM) やその周辺技術を活用して30億を超える商品のカテゴリ分類を行なった事例を紹介します。 ChatGPTの登場によりLLMブームに火がついたということもあり、LLMは会話を通じて利用するものだと認識されている方が多いと思いますが、LLMが有する高い思考能力はさまざまなタスクを解決するためのツールとしても非常に有用です。他方、その処理速度の遅さや費用は大規模なプロジェクトでの活用にあたっての障壁となり得ます。 記事では、こうしたLLMの課題を克服するためにさまざまな工夫を施し、LLM及びその周辺技術のポテンシャルを最大限に引き出して大規模商品データのカテゴリ分類問題を解決した取り組みについ

    LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング
    hkr_I
    hkr_I 2024/04/12
  • 非同期処理で45%のレイテンシ削減を実現#Nature - Nature Engineering Blog

    Natureエンジニアインターン生の後藤です。この記事では、インターン期間中に取り組んだfirequeueの改修についてお話します。 背景 NatureのバックエンドにはNature Remoからメッセージを受け取るエンドポイントがあるのですが、このエンドポイントはメッセージが来るたびに叩かれるので、NatureのAPIサービスの中で最も合計レイテンシとリクエスト数が大きいものとなっています。 エンドポイント毎のリクエスト数と累積時間 詳しくこのAPIのレイテンシの内訳を見てみると、その中でもFirehoseが占有している時間が40%と最も長くなっていました。 APIのレイテンシの内訳 また、Natureではfirehoseへの送信にfirequeueというGo言語のpackageを使用しています。firequeueは、Amazon Kinesis Data Firehoseへのアイテムの

    非同期処理で45%のレイテンシ削減を実現#Nature - Nature Engineering Blog
    hkr_I
    hkr_I 2024/04/03
  • エンジニア生存戦略2024 - Qiita

    はじめに 新社会人の皆さんもそうでない皆さんもこんにちは。 この記事を読む方々は将来に漠然とした不安を抱えている方かと思いますが、いかがでしょうか?わたしは抱えています。 このエントリーでは、そんな不安を払拭するための生存戦略を考えます。 考察に利用するデータは政府が公開している信用できるデータを利用していますが、わたしの個人的考察については必ずしも正しいとは限りませんがそのつもりで読んでいただければと思います。 まずは情報収集 戦略を考えるには現在の状況についての情報をできるだけ多く集める必要があります。情報が足りていない状況で何かを判断するのは大変危険です。例えば最近は見かけない広告で 『フルリモート週3日出社副業で80万円収入』 といったものがありましたが、情報がなければ、それがどのような性質のものかを判断することもできないかと思います。 最近ではWebでググったり、ChatGPT

    エンジニア生存戦略2024 - Qiita
    hkr_I
    hkr_I 2024/04/03
  • ログ一元管理の本質とSIEMの限界 - データ基盤への道 - LayerX エンジニアブログ

    三井物産デジタル・アセットマネジメントで、ガバナンス・コンプラエンジニアリングをしている 鈴木 (@ken5scal )です。 いきなりですが、ログ管理はどの職種どの場面でも重要です。セキュリティにおいても、古生代よりサーバー、ネットワーク機器、アプリケーションなどから出力されるログを一元的に収集し、監視や分析を行うことで、セキュリティインシデントの早期発見や対応、コンプライアンス要件の達成が可能になります。 このようなログ一元管理を実現する代表的なソリューションは、そう、皆様よくご存知のSIEM。我らが「Security Information and Event Management」であります。 私はSIEMを、新卒で入社した大手企業でSOC(Security Operation Center)として触れ、その後ユーザー企業でもOSSやAWS GuardDuty(?)などの形で利用す

    ログ一元管理の本質とSIEMの限界 - データ基盤への道 - LayerX エンジニアブログ
    hkr_I
    hkr_I 2024/03/30
  • 開発プロセスをインクリメンタルに改善する - 一休.com Developers Blog

    一休.comレストランのエンジニアのkymmtです。 2023年度の下半期、一休.comレストランの開発チームでは開発プロセス改善に取り組みました。改善は小さい単位で徐々に進め、バックログの作りかたやカンバンの運用方法を改善することで、フロー効率の向上、開発ペースの把握、チーム内外からの進捗の見える化ができるようになりました。 この記事では、このようなインクリメンタルな開発プロセス改善の取り組みについて紹介します。 従来の開発プロセス 主に2023年度前半の開発プロセスは次のような形でした1。 プロダクトのリリースに必要なタスクが長いバックログとして存在し、ひたすらタスクを消化 その状況に課題を感じ、区切りを入れるために2週間のスプリントを導入 この時点では、スプリントは2週間ごとに状況を確認するためのもので、目標に対するふりかえりや、次のスプリントの計画を作るためのものとしては活用してい

    開発プロセスをインクリメンタルに改善する - 一休.com Developers Blog
    hkr_I
    hkr_I 2024/03/14
  • マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy

    # 実装の参考資料 - https://soudai.hatenablog.com/entry/2022/11/11/110825 # 類似の登壇内容の動画 - https://www.youtube.com/watch?v=PXy6I-AeI-I

    マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
    hkr_I
    hkr_I 2024/03/14
  • 画像・PDF・TXT・メールなどの中身を読み取って検索できるようにするオープンソースのドキュメント整理ツール「Teedy」レビュー

    Teedyはさまざまな種類のファイルの中身を読み取って検索できる状態にしてくれるドキュメント整理ツールです。受信したメールを自動で取り込む設定もできるとのことなので、実際にセルフホストして使い勝手を確かめてみました。 sismics/docs: Lightweight document management system packed with all the features you can expect from big expensive solutions https://github.com/sismics/docs TeedyのインストールにDockerを利用するので、下記のリンクから自分の環境に合った方法でDockerをインストールします。 Install Docker Engine | Docker Documentation https://docs.docker.com

    画像・PDF・TXT・メールなどの中身を読み取って検索できるようにするオープンソースのドキュメント整理ツール「Teedy」レビュー
    hkr_I
    hkr_I 2024/03/10
  • MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;

    MySQLのトランザクション分離レベルについてふんわりとした理解しかないなと感じた。もう少し理解するために、とくにREPEATABLE READとREAD COMMITTEDの違いを手を動かして色々確認してみた。 以下の記事を参考にした。 [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 #SQL - Qiita MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.2.1 トランザクション分離レベル 大まかな違い 公式ドキュメントを見る限り ノンリピータブルリード、ファントムリードが発生するか 範囲に含まれるギャップへのほかのセッションによる挿入をブロックするか の違いがありそうに見える。 ノンリピータブルリード、ファントムリードが発生するかを試す 以下のテーブルを作る。 CREATE TABLE `posts` ( `title`

    MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;
    hkr_I
    hkr_I 2024/02/28
  • pdfからtextを抜き出す試行錯誤のメモ|Kan Hatakeyama

    これは二段構えの構成を持っています。この二段構えを正確に検出し、テキストを理解することが望ましいです。 Unstructuredを使うPythonのライブラリであるUnstructuredを試してみましょう。 参考記事 導入は非常に簡単です。 pip install 'unstructured[pdf]' 実装も簡単です。 解析コード: from unstructured.partition.pdf import partition_pdf pdf_elements = partition_pdf("pdf/7_71_5.pdf") 表示コード: for structure in pdf_elements: print(structure) 結果: 残念ながら、2段組のカラムを正確に検出することはできませんでした。 Grobidを使うGrobidは、peS2oというオープンアクセス論文のコ

    pdfからtextを抜き出す試行錯誤のメモ|Kan Hatakeyama
    hkr_I
    hkr_I 2024/02/24
  • SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita

    データベースとテーブルの作成 テスト用のデータベースtestdbを作成し、パフォーマンスチューニングを検証するためのcompanyおよびpersonテーブルを定義します。 CREATE DATABASE testdb; USE testdb; CREATE TABLE company ( company_id INT AUTO_INCREMENT PRIMARY KEY, company_name VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE person ( person_id INT AUTO_INCREMENT PRIMARY KEY, company_id INT, person_name VARCHAR(255) NOT NULL, email VARCH

    SQLの達人への道: MySQLでの高速・効率的クエリ作成術 - Qiita
    hkr_I
    hkr_I 2024/02/22
  • 意味的知識グラフとApache Solrを使った関連語検索の実装 - Ahogrammer

    Manningから出版予定の『AI-Powered Search』(AIを活用した情報検索の意)を冬休み中に読んでいたら、その中で意味的知識グラフ(Semantic Knowledge Graph)と呼ばれるデータ構造について説明していて、関連語の計算やクエリ拡張などに使えるということで興味深かったので紹介しようと思います。最初に意味的知識グラフについて説明したあと、日語のデータセットに対して試してみます。 AI-Powered Search(https://www.manning.com/books/ai-powered-search) 記事の構成は以下のとおりです。 意味的知識グラフとは 意味的知識グラフを用いた関連語の計算 参考資料 意味的知識グラフとは 知識グラフと聞くと、固有表現認識や関係抽出、OpenIEを使って構築するグラフを思い浮かべる方もいると思うのですが、意味的知識

    意味的知識グラフとApache Solrを使った関連語検索の実装 - Ahogrammer
    hkr_I
    hkr_I 2024/01/12
  • データベース概論Ⅰ | 筑波大学オープンコースウェア|TSUKUBA OCW | 北川博之

    データベースシステムに関する入門。データベースの基概念、データモデリング、リレーショナルデータモデル、データベース言語SQL、リレーショナルデータベース設計論、物理的データ格納法、問合せ処理等について講述する。 (2018年度) 【教科書】 「データベースシステム」(北川博之著、オーム社) 北川 博之筑波大学 計算科学研究センター教授1978年東京大学理学部物理学科卒業。1980年同大学理学系研究科修士課程修了。日電気(株)勤務の後、筑波大学電子・情報工学系講師、同助教授を経て、現在、筑波大学計算科学研究センター教授。理学博士(東京大学)。データベース、データ統合、データマイニング、ストリーム処理、情報検索、ビッグデータ等の研究に従事。著書「データベースシステム」(オーム社)等。日データベース学会会長、ACM SIGMOD日支部委員長等を歴任。情報処理学会フェロー、電子情報通信学会

    データベース概論Ⅰ | 筑波大学オープンコースウェア|TSUKUBA OCW | 北川博之
    hkr_I
    hkr_I 2024/01/01