TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

476

はじめに PoCで使用したスクリプトのサンプル 小さなPythonスクリプト evaluate.py 共通の工夫:入出力の扱い 入力の扱いの工夫 出力の扱いの工夫 jsonl_to_csv.py つなげるシェルスクリプト ポータビリティの高いPythonパッケージ管理方法 PEP 723 – Inline script metadata inline script metadataとは pipxはinline script metadataのdependenciesをサポート まとめ We are hiring!!! はじめに こんにちは! 株式会社ユーザベース SaaS Product Te…
アバター
こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 Search Engineering Tech Talk 2024 Springに登壇し、「検索失敗率のモニタリングから改善まで」というテーマで発表しました。 search-tech.connpass.com Search Engineering Tech Talk(検索技術勉強会)は、検索エンジンそのものよりも検索自体や検索システムにまつわる技術や手法を共有する勉強会です。 発表 「検索失敗率モニタリング」は、2021年末頃から本格的に始めた施策で、今も続いています。 NewsPicks…
アバター
はじめに 「私…全ての手動作成AWSリソースを生まれる前に消し去りたい。全ての宇宙、過去と未来の全ての手動作成AWSリソースを…この手で!」 そんなことを思われた経験はないでしょうか?私は常に思っています。 こんにちは。ソーシャル経済メディア「NewsPicks」のSREチームの安藤です。 先日の JAWS-UG CDK支部 #14 にて、テーマが「IaC Generator祭り」だったこともあり、以下のタイトルでLT発表させていただきました。 www.docswell.com 上記の発表はAWS CDKのコミュニティのライトニングトークということもあり簡単なTIPS紹介が中心だったので、本記…
アバター
UB Researchの高山です。 先日開催された人工知能学会JSAI2024に株式会社ユーザベースとして参加してきました。 UB Researchは「あらゆるデータを”活きた経済情報”として利用可能にするAI研究所」として去年から活動しており、人工知能学会は去年に引き続き2回目のスポンサー&参加となります。企業研究所としての研究アウトプットを継続的に出すことは目標の一つとして掲げていますので、スポンサーブースだけではなく発表もできたことを光栄に思っています。 UZABASEスポンサーブース 弊社のリサーチャーである田村と野中がポスターセッションをおこないました。 それぞれ以下のページで公開さ…
アバター
はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日は Playwright を使ったE2Eテストの導入について、紹介させていただきました。 今回は作成したテストをAWS 基盤上で動かす方法を紹介させていただきます。 前回の記事 tech.uzabase.com E2Eテスト実行のタイミング NewsPicksでは 下記のタイミングで E2Eテストを実行させています。 ①リリース時のカナリーデプロイ後 NewsPicks ではカナリーリリースを採用していてカナリーへのデプロイが完了した後、カナリーに向けてE2Eテストが動きます。 ②開発…
アバター
はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の NewsPicks Stage. チームの三嶋です。 普段は、NewsPicks Stage. という経済情報に特化したオンライン番組配信プラットフォームの開発をしています。 NewsPicks Stage. チームでは、昨年末からフロントエンドのアプリケーションで Next.js の App Router を使い始めています。 今回は、Next.js の Parallel Routes を使った際の気づきを共有させてください。 Parallel Routes とは 詳細は公式を参照ください。 端的には、複数のページを1つの…
アバター
はじめに こんにちは!株式会社ユーザベース SaaS事業 Product Team の沖です。 この記事では、私がプロダクト開発中に遭遇した問題とその解決方法について共有します。具体的には、Flexbox 内の要素にカードのタイトルが「…」で省略される仕様を追加した際の課題に焦点を当てます。解決までの道のりを、レイアウト例を用いて説明していきます。この記事が、同様の問題に直面している方の参考になれば幸いです。 仕様を追加する前の画面の説明 仕様を追加する前の画面は、以下のようなレイアウトになっています。 ページ全体はヘッダー、サイドバー、コンテンツ領域で構成されています サイドバーとコンテンツ…
アバター
はじめに こんにちは!NewsPicksのVP Of Mobile Engineeringの石井です。 約1年前にPharmaXさん主催の「事例で学ぶ!エンジニア組織文化を作る採用・評価の仕組み」というイベントでPharmaX 取締役・エンジニアリング責任者の上野さん、カオナビCTOの松下さんと私の3人で事例発表やパネルディスカッションをしました。(そのときの記事は、PharmaXさんのこちらの記事にあります) このときに私が話したエンゲージメントに関することは、「採用とオンボーディングを頑張った結果、エンゲージメントもよくなりました」的な話もしました。 ただ、それ以外にも多くのことをしていま…
アバター
はじめに こんにちは!Product Teamの渡邉臣(@Sicut_study)です。 今回はProduct Teamで特徴的な取り組みの1つである「1人プロジェクト」について実際に体験したので紹介します。 1人プロジェクトを通して、この1年間での成長を実感できたのでぜひ多くの方に知ってほしいです。 1人プロジェクトとは? Product Teamには色々ユニークな取り組みがあるのですが、その1つが「1人プロジェクト」です。 エンジニアである以上、技術力が大事です。 日々の業務の中でも成長する環境は整っていますが、例えばパイプラインを1人で構築できる機会が訪れなかったなど特定の技術に触れられ…
アバター
はじめに 初めまして!ソーシャル経済メディア「NewsPicks」SREチーム・新卒エンジニアの樋渡です。今回は「AWS Security Hub」と「Slack」を用いて、弊社で利用しているAWSリソースの監視運用を効率化したお話です。 お話の内容 年々増加するサイバー攻撃に対抗するため、セキュリティ対策は日々重要度が増してきています。 そこで弊社で利用しているAWSのリソースに対して、各種セキュリティイベントの収集ができるAWS Security Hubを利用することで、セキュリティ状態の可視化と迅速な対応がしやすい運用を行い、セキュリティ状態の現状把握から始めることにしました。特にNIS…
アバター
はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレ…
アバター
Product Team の竹原です。 みなさん、ドメインのモデリングしてますか? 最近私たちのチームでは以下のプレスリリースにある機能の開発に勤しんでいます。 FORCAS、生成AIを活用した新機能「AIセールストーク自動生成」の実証実験を開始 | FORCAS(フォーカス)|営業DXソリューション|企業データベースと顧客分析 その開発において、ドメインの理解をしっかり深めないまま開発を続けたためにちょっとつまづいてしまったので、反省も兼ねて記事にまとめてみることにしました。 ドメインの概要 上記のAIセールストーク自動生成機能には以下の図のように、 課題に悩む企業 自社のプロダクトをおすす…
アバター
ソーシャル経済メディア「NewsPicks」でエンジニアをしております小林です。 弊社の「Kaigi Pass」というカンファレンス参加費用をサポートしてもらえる制度が今年から始まりました! せっかくなのでそちらの制度を利用して、2024年4月16、17日に開催された国際カンファレンスの DevOpsDays Tokyo 2024 に参加してきました!(スポンサー関係者含めた総参加者は324名の規模感) 実はテックカンファレンス初参加です!本記事では参加レポートをお届けします。 #DevOpsDaysTokyo 2024、遂に明日から開催です!Day1のキーノートはDevOpsDaysの発起人…
アバター
はじめに 皆さんこんにちは、株式会社ユーザベース SaaS事業の本谷です。今回はタイトルにある通り、Spring Security を使った独自の認可処理の実装方法について概要を紹介しようと思います。 Spring Security は認可に関する標準の実装が提供されており、一般的な認可処理を実現することは簡単です。例えばユーザごとに権限を持たせ、情報へのアクセスを許可または拒否することは多くのコードを書くことなく実現できます。一方、独自の実装をConfigクラスを使って設定することで、自由度の高い認可処理を実現することができ、より複雑な要件に対応できます。 今回、アプリケーションの要件は権限…
アバター
UB Researchチームで2週間の短期インターンをしている梶川です。 現在、UB ResearchではRAGシステム構築に向けた研究を行っており、社内のさまざまなデータを正確に拾い上げるための検索エンジンの開発と評価を行っています。 今回、その検索エンジンに代わるモデルを用いて、実際の検索テキストで検索を実施した結果を報告します。 概要 近年、LLMを用いた文書生成が流行しており、その中でも外部情報を検索し、LLMに追加して生成させるRAGという技術が活用されています。RAGによって、LLMが知らない情報に対して正確な応答を返すことができ、UB Researchでもニュース記事や有価証券報…
アバター
はじめに 皆様こんにちは、ソーシャル経済メディア「NewsPicks」(Media Infrastructureチーム)エンジニアの北見です。 現在、私は弊社サービスの一部のインフラ刷新を行なっている最中で、ここ数ヶ月 AWS CDKを触っておりました。 前職では Infrastructure as Code として Terraform を使ったことがあるのですが、少なくともAWS を使うという条件においては CDKを使うべき という結論に辿り着きました。 今回はそのように考えるようになった理由について説明していこうと思います。 前提 Terraform はパブリッククラウドにおける Infr…
アバター
こんにちは。ソーシャル経済メディア「NewsPicks」で検索システムを開発しております崔(ちぇ)です。 弊社の検索システムはAWS EC2(Elastic Compute Cloud、以下、EC2)で動いていました。それを昨年、Amazon ECS(Elastic Container Service、以下、ECS)に移行しました。前回のブログでは、移行のために調べた「アプリケーションをコンテナ化するベストプラクティス」をまとめましたので、ご興味ある方は読んでいただけると嬉しいです。 tech.uzabase.com 今日は、ECS on Fargateのタスク起動に手こずった話をしてみようと…
アバター
ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 世界中のiOSエンジニアが集う国際カンファレンス try! Swift Tokyo 2024 に参加してきました! tryswift.jp 弊社のNewsPicksアプリで採用しているTCA(The Composable Architecture)の作者であるPoint-Freeのお二人が来日されるということもあり、これは行かない理由がない!と社内で手を上げて、行かせていただきました。 本記事ではtry! Swift Tokyo 2024参加レポートをお届けします。 Kaigi Pass 一日中楽しめる Swi…
アバター
こんにちは。ソーシャル経済メディア「NewsPicks」NewsPicks Stage.事業のエンジニアをしています、林です。 業務では Next.js / Rust / Go などを用いて、経済・ビジネス情報に特化した動画配信サービスであるNewsPicks Stage.の開発・運用を行っています。 はじめに 突然ですが、皆さんは自身のソフトウェアのライブラリアップデートは行えていますか? 皆さんはどのようにライブラリアップデートを行なっていますか? 新機能を試したくて? npm iで失敗してから頑張る? Renovate / dependabot が自動Mergeされる環境? もしくは対応…
アバター
ソーシャル経済メディア「NewsPicks」でiOSエンジニアをしている金子です。 先日、弊社ユーザベース主催でTCA(The Composable Architecture)の勉強会を開催しました。 本記事では勉強会の開催レポートをお届けいたします! uzabase-tech.connpass.com 総勢約140名の参加者 入門から最新バージョン情報、開発ノウハウまで!バラエティに富んだ10名の登壇者によるLT TCA入門したてなので、自分が馴染みのある実装と比較しながらキャッチアップしてみる(fumiyasacさん) TCA魔法学入門(dazyさん) 個人開発をTCAで運用していくとい…
アバター