takayamakiのブックマーク (691)

  • 多言語対応はキーを原文にしたら見通しが良くなった - hacomono TECH BLOG

    あけおめ一発目です. フロントエンドテックリードやってるみゅーとんです. 年末年始はひたすら UnityBlender で遊んでました. 弊プロジェクトフロントエンドではもともと vue-i18n を導入しており, 後に多言語対応をサポートできるようにしていました. これを, サポートできるように見直そうとしたところだったのですが, 課題が多く見つかり, 書き直すことになりました. その際に見通しのよい書き方に直せたので, これを共有します. TL;DR 文言を引き当てるキーには, 表示する文言を設定すること なるべく 1文まとめて文言を作ること コーディング時に, そこに何が書いてあるかわかりやすくなった 前提 vue-i18n, nuxt-i18n の使い方は解説しません. 同様の仕組みであれば真似できる話です. 背景 元々以下のように単語ごとに翻訳し, 文字列結合するようなロ

    多言語対応はキーを原文にしたら見通しが良くなった - hacomono TECH BLOG
  • 型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog

    SmartHRで届出書類という機能を担当しているプロダクトエンジニアのsato-sと申します。 今日は、以前私が調査にとても苦労したパフォーマンス上の問題の話を紹介したいと思います。 TL;DR PostgreSQLのアップグレードを実施した アップグレード後、今までは問題のなかった特定のクエリの実行に1時間超かかり、DBCPU使用率がピッタリ100%に張り付くようになった 色々調査した結果、PostgreSQL上の型キャストの場所のせいで、良くないクエリプランが選択されることが原因だった 型キャストの場所には気をつけよう PostgreSQLのアップグレードと挫折 SmartHRでは基的にWebアプリケーションのデータベースとしてGoogle CloudのCloudSQLによって提供されるPostgreSQLを利用しています。 私の担当している届出書類機能では、利用中のPostgre

    型キャストの場所のせいで、秒で終わっていたクエリに1時間超かかるようになってしまった話 - SmartHR Tech Blog
  • Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp

    Ruby 3.3リリース! 新機能解説 Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす 2023年12月25日、Ruby 3.3.0がリリースされ、様々な新機能が加えられました。連載では実際に携わった皆さんにその新しいRubyをご紹介いただきます。 RubyJust-In-Time(JIT)コンパイラという機能を備えており、これを有効化すると実行時に機械語を生成して様々な最適化が行なわれ、実行が高速になります。Ruby 3.3にはYJITとRJITという2つのJITコンパイラがあり、デフォルトでは無効になっていますが、それぞれ--yjitと--rjitで有効化できます。 この回では、Ruby 3.3でYJITの性能特性が変化した点や、YJITに新たに追加された便利な機能、またRJITはどのように使うものであるかについて解説します。 YJ

    Ruby 3.3 YJITのメモリ管理とRJIT 〜すべてが新しくなった2つのJITを使いこなす | gihyo.jp
  • HTTPが全てを飲み込む(中編)~HTTPの上にIPやイーサネットが実装されて便利になること

    Webを構成する重要な要素の1つであるHTTPは、その最新仕様で2層構造となり、バージョンに関係なく使えるSemanticsと、特徴の異なる通信仕様を定めたHTTP/1.1、2、3に分割されました。 さらに現在では、HTTPの上にあらためてUDPやIP、イーサネットなどのプロトコルを実装する提案が行われており、まさにHTTPは通信の全てを飲み込む勢いで進化しつつあります。 こうしたHTTPの最新動向の解説が、大手CDNベンダでエッジクラウドなども展開するFastlyが2023年11月8日開催したイベント「Yamagoya 2023」で同社シニアプリンシパルエンジニアの奥一穂氏が行ったセッション「HTTPが全てを飲み込む」にて行われました。 記事ではこのセッションをダイジェストで紹介していきます。記事は以下の3つに分かれています。 HTTPが全てを飲み込む(前編)~HTTPの2層構造と、H

    HTTPが全てを飲み込む(中編)~HTTPの上にIPやイーサネットが実装されて便利になること
  • houou (鳳凰):理研 ichikara-instruction データセットを用いて学習された大規模言語モデル - Money Forward Developers Blog

    Posted by Atsuhi Kojima, Researcher, Money Forward Lab. この記事では自然言語処理に興味がある、あるいは研究開発に携わっているエンジニアや学生の方に向けて、マネーフォワードの研究機関である Money Forward Lab が取り組んでいる Large Langugage Model (LLM) の研究開発についてご紹介します。 LLM の指示追従性を向上させる学習手法として Supervised Fine-Tuning (SFT) があります。SFT モデルは、prompt と completion のペアで構成されるインストラクションデータを用意し、事前学習モデルに対して fine-tuning することで学習されます。 このようなインストラクションデータの作成は、GPT-4 などの学習済みモデルからの出力を利用する方法を除くと、

    houou (鳳凰):理研 ichikara-instruction データセットを用いて学習された大規模言語モデル - Money Forward Developers Blog
  • 成長途中のサービスでモジュラモノリスを選択した2つの理由 人が増えてチームが分断されても生産性を維持するために

    「【ハイブリッド開催】Rubyで追求するモジュラモノリスの可能性」は、バックエンドにRubyを採用している株式会社タイミー、hacomono社、ワンキャリア社が、Rubyにおけるモジュラモノリスの可能性や良い点、悪い点を共有する勉強会です。ここで株式会社hacomonoの志賀氏が登壇。まずは、モジュラモノリスを導入する前の状況と、モジュラモノリスを選んだ理由について話します。 志賀氏の自己紹介 志賀誠氏(以下、志賀):みなさん、こんにちは。 会場:こんにちは。 志賀:うれしい、返事がきた(笑)。オフラインで話すのが久々すぎて声が出るかちょっと心配だったんですが、なんとかなりそうなのでやっていきたいと思います。 今日お話しする内容ですが、「hacomono TECH BLOG」で事前に書いた内容と若干かぶるところがあるので、もし読んだ方がいたら、おさらい程度だと思って目をとおしてもらえると幸

    成長途中のサービスでモジュラモノリスを選択した2つの理由 人が増えてチームが分断されても生産性を維持するために
  • PerformanceResourceTiming API で HTTP Cache のヒット率を知る - Repro Tech Blog

    はじめに こんにちは、Repro Booster という製品の開発責任者/プロダクトマネジメントを担当しているEdward Fox(edwardkenfox)です。 WebサイトやWebアプリケーションの表示速度を考える上では、キャッシュの活用はとても大事なテーマです。一口にキャッシュといっても、Webの文脈だけで見ても様々なレイヤーや用途のキャッシュが存在します。今回は昔ながらのキャッシュ、いわゆる HTTP Cache に的を絞り、HTTP Cache のヒット率について考えてみたいと思います。 さまざまなキャッシュレイヤー 前述のように、Webにおけるキャッシュには用途やレイヤーの異なる様々な種類のものが存在します。Webサイト/Webアプリケーションを開発する上で気にかけるべきものは、おおよそ次のようなものが該当するでしょう。 HTTP Cache (ブラウザキャッシュ) Cach

    PerformanceResourceTiming API で HTTP Cache のヒット率を知る - Repro Tech Blog
  • Terraformをフォークした「OpenTofu 1.6」、早くも正式版が登場

    HashiCorpのインフラ構成ツールであるTerraformをフォークしたオープンソースのプロジェクト「OpenTofu」が初めて正式版としてリリースされました。 The OpenTofu community is excited to announce the general availability of OpenTofu, the open source fork of Terraform, now a production-ready project under the Linux Foundation. Read the full announcement: https://t.co/KhJXz1Ge14#opensource #opentofu pic.twitter.com/miN1gj2ByE — The Linux Foundation (@linuxfoundatio

    Terraformをフォークした「OpenTofu 1.6」、早くも正式版が登場
  • 2024年こそ corepack を使おう

    普段の開発では nodenv を使って各プロジェクトのバージョンに合わせた Node.js をインストールしています。その後、各プロジェクトの README や package.json を頼りに npm install -g yarn や npm install -g pnpm することが多いです。 先日、同僚から「最近は corepack 使ってますよ」と教えてもらったので、「おーもう実務で使えるのかー」と一気にモチベーションが上がったので corepack 使っていきたいと思います。 まずはこちらの鉄板記事でおさらい。 corepack を使っていくということは yarn や pnpm の管理を corepack に任せるということなので、まずは global install しているそれらを削除して実験してみます。 yarn を使っているプロジェクトで検証 とある yarn を使っ

    2024年こそ corepack を使おう
  • 毎年冬コミに全日程で参戦し、寒さに震え続けた取材班が行きついた、究極の対冬コミ用装備

    毎年冬コミに全日程で参戦し、寒さに震え続けた取材班が行きついた、究極の対冬コミ用装備 江川資具 2023年12月28日 いよいよ週末に迫った「コミックマーケット103」。夏コミの際に、私のリアルな装備を紹介した記事が大変参考になったと各所で話題だった。 当日には実際に私の服装を完コピし、ミレーの網とアンダーアーマーのヒートギアを着込んで、当に快適だと述べていた人も現地で見かけた。 役に立って何よりだ。であれば、毎年の冬コミ取材の果てに行きついた防寒装備も、きっと有用だろう。 ・たぶん不要 しかし、今年は不要だと思う。というのも、2023年12月28日13時発表の気象庁の週間天気予報によると、東京の30日の最高気温は驚きの15度。 31日は雨らしいが、16度もあるらしい。春かよ。ということで一応紹介はするが、天気予報が大外れしない限り、このガチな対冬コミ装備は役に立たない。 これはあくまで

    毎年冬コミに全日程で参戦し、寒さに震え続けた取材班が行きついた、究極の対冬コミ用装備
    takayamaki
    takayamaki 2024/01/02
    “モンベルのジオライン”
  • Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog

    Ruby 3.3がリリースされた。YJITには非常に多くの改善が含まれたリリースだったが、 NEWS解説記事やリリースパーティーでは 2点しか触れられなかったので、この記事ではRuby 3.3でYJITがどう改善されたかについて解説する。 YJITは既に実用段階 YJITRuby 3.1で導入されたが、Ruby 3.2の時点でexperimentalのマークが外れ、実用段階となった。 Ruby 3.2では、以下のような企業で性能改善が報告された。 DeNA: 40% 高速化 GMOペバボ: 18% 高速化 STORES: 6.5-7.5% 高速化 Timee: 10% 高速化 メドピア: 2.8% 高速化 BOOK☆WALKER: 20-30% 高速化 Discourse: 15.8-19.6% 高速化 Lobsters: 26% 高速化 CompanyCam: 20-40% 高速化 弊

    Ruby 3.3でYJITを今すぐ有効にすべき理由 - k0kubun's blog
  • フロントエンドのテスト基盤を Jest から Vitest に移行した話

    こんにちは。ナレッジワークの torii です。 7 月にフロントエンドエンジニアとして入社してもうすぐ半年、そろそろ技術記事の一つも書きたいなと思っていたところに、ちょうどいいネタを見つけたので投稿してみます! Jest から Vitest に移行してみた 早速やったことですが、フロントエンドのテストフレームワークを Jest から Vitest に移行しました。理由としては、Jest が CJS を前提として動作しており、ESM 前提のモジュールを動かすのに一手間も二手間もかかるからです。 ナレッジワークのフロントエンドNext.js を採用しており、テストフレームワークには Next.js と相性の良い Jest を採用していました。関数単位のテストや UI コンポーネントのテストを書く分には問題なかったのですが、それより上層(ページなど)になるとたちまち ESM 互換性の問題を

    フロントエンドのテスト基盤を Jest から Vitest に移行した話
  • GitHub Copilot全社導入で得られた効果と課題 - RAKUS Developers Blog | ラクス エンジニアブログ

    はじめに こんにちは、技術広報のnobu_msです。 ラクスでは2023年6月からGitHub Copilotを全開発組織に導入し、希望者は申請により全員利用可能となっています。GitHub Copilot導入から5カ月が経過し、利用状況や導入効果のアンケート調査を行いました。 記事では、調査結果を踏まえて下記の内容をご紹介します。 全社導入前の課題とその対応 導入後の利用状況・効果測定 今後の活用に向けた課題と取り組み より詳細な目次はこちらをご覧ください。 はじめに GitHub Copilot導入の目的 全社導入前の課題とその対応 ① セキュリティの担保 当社の情報資産が学習に利用される可能性 他社のコードがサジェストされて著作権を侵害するのではないか? ② 費用対効果 導入後の利用状況・効果測定 コーディング時間短縮の効果 業務品質向上効果 学習・調査効率化効果 エンジニアの業務

    GitHub Copilot全社導入で得られた効果と課題 - RAKUS Developers Blog | ラクス エンジニアブログ
  • 日本発のReact UIコンポーネントライブラリ 『Yamada UI』

    初めまして、プログラマーを始めて3年目の山田です。今回、日発のReact UIコンポーネントライブラリYamada UIをリリースしたので、その素晴らしい機能の数々を紹介していこうと思います。 ちなみに、Yamada UIのYamadaは山田が名付けたわけではありません。気になる方は、山田に聞いてください。 Yamada UIとは 一言で言うならば、『すべてのUIコンポーネントライブラリを超えた(つもり)』のUIコンポーネントライブラリです。 現在のUIコンポーネントライブラリで代表的なものと言えば、Material UIやChakra UIであり、フロントエンドエンジニアであれば、誰でも知っている知名度だと思います。 しかし、現在主流となっているUIコンポーネントライブラリは数年前に開発されたものであり、色々な面(カラーモード・アニメーション・CSSプロパティ・型安全など)において首が

    日本発のReact UIコンポーネントライブラリ 『Yamada UI』
  • Ruby の JSON ライブラリ Oj のパフォーマンス改善を行いました - Repro Tech Blog

    Development Division/Repro Team/Feature 1 UnitWatsonです。Feature 1 Unit は Repro Tool の機能開発と保守を担っています。 弊社でも利用している Oj gem のパフォーマンス改善 PR を送った話と、その PR の内容について共有します。 ことのはじまり 以前、同僚が Ruby on Rails で JSON を返す REST API を作成した際、JSON のエンコード部分のパフォーマンス計測をしていました。JSON のエンコード方法は JSON.generate、ActiveSupport::JSON.encode、Oj gem を利用する方法など色々ありますが、私としては Oj gemの ほうがパフォーマンス的にいいだろうからそちらを利用したほうが良いのではと思っておりました。 計測結果を拝見したら確

    Ruby の JSON ライブラリ Oj のパフォーマンス改善を行いました - Repro Tech Blog
  • Ruby 3.3’s YJIT: Faster While Using Less Memory

    This year, the YJIT team has been working hard to improve and optimize YJIT. We’re proud to say that the version of YJIT to be included with Ruby 3.3 is leaps and bounds ahead of Ruby 3.2’s. It provides better performance across the board, while also warming up faster and using less memory. The 3.3 release is also more robust, including a number of bug fixes along with an improved test suite. In t

    Ruby 3.3’s YJIT: Faster While Using Less Memory
  • Railsでモジュラモノリスを実現する3つの代表的パターン 5つの基準で見たそれぞれの評価

    「【ハイブリッド開催】Rubyで追求するモジュラモノリスの可能性」は、バックエンドにRubyを採用している株式会社タイミー、hacomono社、ワンキャリア社が、Rubyにおけるモジュラモノリスの可能性や良い点、悪い点を共有する勉強会です。ここで株式会社タイミーの須貝氏が登壇。まずは、Railsでモジュラモノリスを実現する3つの代表的パターンと、各パターンの評価について話します。 須貝氏の自己紹介 須貝俊 氏:では、「RailsでModular Monolithを選択された御社に質問したいN個の疑問」というタイトルで発表をしたいと思います。 (スライドを示して)まずは自己紹介をしたいと思います。須貝と申します。タイミーには、2022年1月からジョインしています。スポットワークシステム領域というところで、チーム名がIronBank Squadという、企業さま向けの請求や、ワーカーさまへの給与

    Railsでモジュラモノリスを実現する3つの代表的パターン 5つの基準で見たそれぞれの評価
    takayamaki
    takayamaki 2023/12/18
    gem化でも同リポジトリ内同階層にディレクトリ切って、Gemfileで相対パス参照すればリポジトリ分けたりgemのバージョンをpublishしたりする必要はないですね
  • Next.js 13 の SSR Streaming を AWS Lambda Response Streaming で実装する方法 | Amazon Web Services

    Amazon Web Services ブログ Next.js 13 の SSR Streaming を AWS Lambda Response Streaming で実装する方法 AWS Lambda のレスポンスペイロードストリーミングを使用することで、サーバーサイドでレスポンスデータが利用可能になった時点で呼び出し元にデータを段階的に送信することができます。これにより、Web アプリケーションやモバイルアプリケーションのパフォーマンスを改善し、ユーザ体験を向上させることができます。AWS Lambda のレスポンスストリーミングに関して詳しくは Introducing AWS Lambda response streaming の記事を参照ください。 記事では、レスポンスストリーミングの実践的な活用例として、Next.js 13 において提供されている SSR Streaming

    Next.js 13 の SSR Streaming を AWS Lambda Response Streaming で実装する方法 | Amazon Web Services
  • GitHub Actionsとparallel_tests gemを活用してRailsアプリケーションの爆速CIを実現する - BOOK☆WALKER inside

    こんにちは。 メディアサービス開発部 Webアプリケーション開発課のフサギコ(髙﨑)です。 Ruby on Railsによるバックエンドの実装運用と、AWSによるサービスインフラの設計構築を中心とした、いわゆるバックエンド方面のテックリードとして働いています。 記事では、GitHub Actions上で実行するRailsアプリケーションの自動テストの所要時間を、parallel_tests gemGitHub Actionsのmatrix、ruby/setup-rubyアクションによるgemのキャッシュを併用して短縮し、爆速CIを実現する方法についてお話します。 CIで実行する自動テストの所要時間は短ければ短いほど良い parallel_tests gemを使って、1コンテナのなかでテストを並列実行する GitHub Actionsのmatrixを使って、複数コンテナでテストを並列実行

    GitHub Actionsとparallel_tests gemを活用してRailsアプリケーションの爆速CIを実現する - BOOK☆WALKER inside
  • PlaywrightでカスタムURLスキームへの遷移をテストする

    こんにちは。メディアサービス開発部Webアプリケーション開発課の奥川です。ニコニコ漫画のバックエンド開発を担当しています。 ニコニコ漫画ではe2eテストに Playwright を導入しており、OpenID Connectでの認証フローやAPIテストなど主にiOS/Androidアプリとの連携部分の検証に利用しています。 アプリ連携ではカスタムURLスキームを用いてアプリを起動することがあり、この際に意図通りのURLやパラメータを応答できているかを確認したいテストケースが存在します。カスタムURLスキームとは、 http:// や https:// の代わりに example:// のような独自のプレフィックスを用いて特定のアプリを直接起動できるURLパターンです。これにより、ウェブページや他のアプリから特定のアプリ内の特定のページや機能を直接呼び出すことが可能になります。 Playwri

    PlaywrightでカスタムURLスキームへの遷移をテストする