サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
techblog.lycorp.co.jp
こんにちは。CISO管掌の脅威情報分析対応チームでセキュリティエンジニアとして活動している首浦です。 本記事ではランサムウェアについての解説に加え、8Baseの解析結果を紹介します。 ランサムウェアとは まず初めにランサムウェアとは、感染端末から内部システムのデータを暗号化・窃取することでそのデータやコンピュータを「人質」として、身代金などを要求するマルウェアの一種です。 暗号化前のファイルは完全に端末から削除され、感染端末外部(USBメモリやクラウドストレージ等)にバックアップが存在しない場合、ファイルを復元するためには、暗号化されたファイルを復号する必要があります。 ランサムウェアを用いる攻撃者はこの復号に必要な鍵と引き換えに金銭などを要求します。ただし、身代金を支払った場合においても復号鍵の引き渡しを拒否する場合や、復号鍵での復号が失敗する場合があり、必ずしも身代金を支払えば解決する
Webアクセシビリティチーム中野です。 プロダクトとウェブサイトにおける、アクセシビリティの向上と啓発を行っています。 今年の10月に社内イベントのTech Week 2024でアクセシビリティチームとしてブースを出展し、画面の情報を合成音声で読み上げる支援技術であるスクリーンリーダーのチートシートを作成して配布しました。 社内イベントで視覚障害を体験してもらいました(スクリーンリーダーのチートシート配布中) 主にディスプレイで表示したり、印刷したりすることを想定して作ったPDFですが、スクリーンリーダーなどの支援技術でも閲覧できるようにしています。この記事ではPDFをアクセシブルにするための課題と理由について解説します。なお、今日から障害者週間(12/3-9)が始まりますので、この記事が障害者福祉の一環として考えるきっかけになればと思います。 そもそもPDFとは 「Portable Do
こんにちは。フロントエンドエンジニアの花谷(@potato4d)です。LINEヤフーでは、11月23日(土)に開催されたJSConf JP 2024へ参加・協賛を行いました。 今回私自身もスポンサースタッフとして、そしていち開発者としてイベントに参加してきたため、本記事にて現地の様子をご紹介します。 JSConf JP とは Japan Node.js Association が運営する JavaScript をテーマとしたカンファレンスとなります。グローバルのイベントブランドであるJSConfの日本ローカルコミュニティとして2019年より開催されていますが、前身となる東京Node学園祭を出自とするイベントであり、イベント全体としては10年以上の歴史を有しています。 特定の技術によらない点が一番の特徴であり、 React をはじめとしたフロントエンド領域はもちろんのこと、 Node.js
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 51 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 確信的な質問 ある開発者が、以下の関数 getOnlineUserStates のコードレビューの依頼を受けた状況を想定しましょう。 fun getOnlineUserStates(userIds: Set<UserId>): Map<UserId, UserState> { if (userI
はじめに こんにちは、コミュニケーションアプリ「LINE」のiOSクライアントアプリ開発を担当している、モバイル・ディベロッパーエクスペリエンスチーム(以下MDX)所属のfreddiです。 この記事では、2024年にLINEアプリをXcode 16に対応させるために、チームとして取り組んだことを紹介します。まず、Xcode 16対応を集中的に行うための取り組みやWWDCでの活動について紹介します。そして、β版のXcodeを利用した際に遭遇した問題とどうやって克服したかについて、AppleへのFeedbackやGitHub Issue、オープンソースへの貢献の例をもとに書いています。これらの取り組みを通じて、AppleプラットフォームやSwift関連の開発コミュニティで問題を解決するために、どのような行動をしたかについても触れています。 WWDCとβ期間におけるチームとしての取り組み 毎年6
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 48 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) ワイルドすぎる引数 「図形」というデータが、スペースで区切られた文字列として表現されているとします。以下は、その文字列の例です。スペース区切りの最初の値は、図形の種類を示す「タグ」と呼ばれるもので、2 つ目以降は図形ごとの属性 (座標など) だとします。 circle 10 20 30 rect
課題解決のアプローチ 中間テーブルの設計 すべてのソーステーブルをまとめて処理しようとするので、ソーステーブルが一部でも欠落してしまうと、データマート全体の更新が止まってしまうという状況が発生しています。そこで今回は一度、中間テーブルを作成し、集計処理をソーステーブルごとに分割することにします。事業部へ提供するテーブルはその中間テーブルをさらに処理して作成される構成にしました。 中間テーブルの設計案について、2つの案が検討しました。1つ目は、複数あるソーステーブルから、機能ごとにいくつかの集計項目をまとめた中間テーブルを複数用意するという、OAの機能ごとにデータの保存を物理的に分離する案です。この場合、異なる機能であるクーポンとメッセージに関する集計値は、それぞれ異なる中間テーブルとして保存されます。2つ目は、OAの機能ごとにパーティションを用意し、ひとつの中間テーブルに格納することで、デ
これを見ると、Rec Sys 1、Rec Sys 2などでは、評価指標に関する研究からモバイル端末内で行われる推薦、Cold-start問題への対処に関するものなど幅広い推薦システムに関する研究が発表されていました。 多くの研究は既存の手法の問題点を発見、その問題を解決する手法を提案するような研究でしたが、On (Normalised) Discounted Cumulative Gain as an Off-Policy Evaluation Metric for Top-nnn Recommendationでは推薦問題で一般的に使用されているnDCGがどの程度オンライン実験の結果を近似できるのかを調査し、DCG指標がオフライン実験/オンライン実験に対して不偏となる状況でもnDCGは手法の相対順位が変動する可能性があることを示していました。 DIET: Customized Slimmi
はじめに こんにちは。プライベートクラウドの開発運用、およびOSPOを兼任している早川です。 KubeDay JapanはCloud Native Computing Foundation(以下、CNCF)主催の、Kubernetesを中心としたクラウドネイティブ技術に関するカンファレンスです。 KubeDay Japan 2024(外部サイト) ご存じのとおり、LINEヤフーは旧LINE、旧ヤフーの方向性を引き継ぎ、オープンソースのテクノロジーとコミュニティに積極的に投資しています。そして、それはクラウドネイティブの分野においても同様です。去る8月27日に開催されたKubeDay Japanにおいては、スポンサーシップの提供とブース出展、社員からの2件の登壇と、イベントの盛り上がりをお手伝いさせていただきました。 この記事では、そんなLINEヤフーによるKubeDay Japan参加の様
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 45 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 終わり null ならすべてよし? Java や Kotlin の Iterator で next を呼ぶときは、「次」の要素が存在することを確認しなければなりません (通常は hasNext で確認します)。以下のコードのように、「次」の要素がない状態で next を呼び出すと、NoSuchE
こんにちは、LINEヤフー株式会社でRedisチームに所属している加藤です。現在はLINEヤフーの社内向けのDatabase as a ServiceとしてRedis DBaaSの開発と運用を行っています。 Redis DBaaSは、ヤフー株式会社(現LINEヤフー株式会社)で提供開始し7年がたちます。運用しているRedisは10,000台を超え、合算で毎秒1,000万以上のリクエストを処理する大規模なRedis基盤となりました。この記事では、まずRedis DBaaSで作成できるRedisのHA(High Availability)構成を説明し、次にRedisプラットフォームの成長とともに増加した社内のユーザーへのサポートの中で、ユーザーに安心してRedisを利用してもらうために行っている取り組みについて紹介します。 Redis DBaaSのHA構成 Redisはインメモリ(in-mem
LINEヤフー株式会社の開発組織では、開発文化を改善するためにさまざまな試みを行っています。今回は、LINEのクライアントアプリの開発プロセスを改善を担うMobile Developer Experience Devチームでの「コードの可読性」向上の取り組みについて、Munetoshi IshikawaさんとGiuk Jungさんのインタビューを通じて紹介します。 左からGiuk Jung、Munetoshi Ishikawa Giuk Jung:LINEのiOSアプリ開発を担当しています。特にiOSのビルド環境の改善や、ビルドに使われるツールの開発などに取り組んでいます。簡単に言うと、「開発者をサポートする開発」をしています。iPhone3GSが発売された2009年から日本で働き始め、今年で15年目になります。 Munetoshi Ishikawa: LINEのAndroidアプリの開発
こんにちは。エンジニアの中野です。前回は、私たちが開発している FractalDB: LINEヤフーのオンプレミス・マルチテナンシー型データベースシステムの紹介という記事を公開しました。 今回は続いて、開発に至った背景とそれからどのようなサービス設計を行ったのか、少し具体的な話をさせていただきます。 課題(FractalDB開発の背景) 社内クラウドDBが欲しい 比較的昔から「パブリッククラウドの"クラウドDB"、例えばAWS DynamoDB(以下DynamoDB)やGCP Cloud Spanner、Microsoft Azure CosmosDBのようなデータベースが社内にも欲しいよね」という漠然とした話はありました。 例えば、DynamoDBを使ったアプリケーション作成は、通常のRDBMSを使ったアプリケーション開発と以下のような違いがあります。 普通のRDBMSを使ったアプリDy
こんにちは。LINEヤフー株式会社でデータベースエンジニアをしている、松浦、中園、大塚、曽根、笠井です。 データベースはLINEヤフーのさまざまなサービスを支える重要なソフトウエアですが、その安定的な運用やトラブルシューティングには、データベースに関する専門的な知識が必要です。 一方で、データベース部門に配属される新卒のエンジニアは、全員が学生時代にデータベースを専門的に勉強しているわけではありません。このような新卒エンジニアは、データベース部門へ配属後、OJTや実際のデータベースの運用業務に携わりながら、データベースに関する専門知識を深めていきます。 今回のブログ記事では、データベースエンジニアとしての専門性を高めるために、部門内で実施している専門書の輪読会、そして、MySQLを題材としたデータベースカーネルのモブプログラミング(以下、モブプロ)の取り組みについてご紹介します。 1. 輪
こんにちは。私はLINEアプリのiOSエンジニア、Zang Zhihaoです。私たちのチームはLINEアプリの公式アカウント機能やLINE公式アカウントアプリを担当しています。今日は、iOS/Androidプラットフォーム間でのコード共有についてお話しします。 プラットフォーム間でのコード共有は、ソフトウェア開発コミュニティで長い間ホットな話題となっています。しかし最近では、モバイル開発の分野でさらに注目を集めています。古い技術であるXamarinは最近のニュースにはあまり登場しませんが、Kotlin Multiplatformについての話がiOSDCやDroidKaigiでは、少なくとも最近3年間は常に取り上げられています。FlutterやReact Nativeの技術についてもよく話題になります。しかし、今日は別の、Rustの話をしたいと思います。 Rustはモバイル開発のための明白な
This post is also available in the following languages. English, Korean はじめに 最近、業界に生成AIが導入され、ソフトウェアの開発において開発品質を維持しながら生産性を向上させる新たな方法が提供されています。それに対して、QAの品質管理の生産性を向上させる方法はあまり取り上げられていないようです。一般的にQAの品質管理をテストに限定して自動化テストやレポートの作成に生成AIを導入しようとする取り組みが主流であり、全体的な品質管理の生産性を向上させる方向では取り上げられていません。この記事では、生成AIを活用してQAの品質管理の生産性を向上させる方法について紹介します。 LINEヤフーにおける品質管理 QA(quality assurance)の定義は、プロジェクトやサービスの性質によってその役割と範囲が異なる定義がで
こんにちは。メディアカンパニーに所属する鴻巣和司 (@kazushikonosu) です。普段はLINEスキマニのフロントエンドの開発をしています。業務をきっかけに、TypeScriptの不要なデッドコードを自動で削除するツール ts-remove-unused を開発し、GitHub上でOSSとして公開しました。本稿では、ts-remove-unusedが解決しようとしている問題や直近で行った大規模な変更について紹介します。 exportしていることで気づきにくい不要なコード TypeScriptを使っている場合、tsconfig.json の compilerOptions.noUnusedLocals を有効にすることで、ファイル内で参照がない不要な変数などの定義をTypeScriptコンパイラの実行時に検知することが可能です。また、ESLintなどの静的解析ツールを使い適切にルール
こんにちは。AndroidアプリでLINE公式アカウントの開発を担当している高島です。今回は、私たちのチームで試しているモブプログラミングの取り組みと、実際に取り組んで感じたことについてご紹介します。 モブプログラミングについて モブプログラミングは、複数の開発者が1つのコンピュータを共有し、協力して問題を解決する開発手法です。モブである人たち(ナビゲーター)が解決方法を提示してガイドし、キーボードの前に座る1人(ドライバー)がコーディングします。ドライバーは一定時間ごとに交代します。 私たちのチームは、後ほど紹介する本を参考にして、合わないところは変更しながら、現在は次のような形で週に1度90分間行っています。 準備(5分) 新しいテーマに取り組む場合、問題を皆に共有し、どう進めるか方向性を話し合って決めます。前回から引き続き同じテーマで行っている場合、前回やったことと、前回の振り返りで
こんにちは。LINEヤフーで画像処理エンジニアをしている植田です。先日2024年8月6日から9日まで熊本にて国内最大級の画像分野の学会、第27回 画像の認識・理解シンポジウム MIRU2024が開催されました。 LINEヤフーもスポンサーとして協賛し、企業ブースの運営や研究発表・聴講のために参加しました。昨年はLINE・ヤフー個別で参加 (MIRU2023参加ブログ)していましたが、合併を経てLINEヤフーとして初めてMIRUへ参加させていただきました。 本記事では会場の様子やLINEヤフーの研究発表内容を紹介します。 MIRUとは? 国内の画像分野では言わずと知れた学会でもあるMIRUは画像処理や、人工知能(AI)の視覚機能を研究する分野「コンピュータビジョン」など、情報学における画像分野の一大学会です。開催地は年によって異なり日本全国各地で開催されています。今年は熊本県熊本市の熊本城ホ
こんにちは。生成AI関連の開発をしている図左です。社内でRAGを使った生成AIサービスを開発していますが、ロジック変更のたびに毎回人手でテストするのは現実的ではありません。今回は、この品質評価を自動化したフローや手法を紹介します。 SeekAIとは LINEヤフー株式会社では、社内の情報を効率的に検索するために、生成AIを活用したサービス SeekAI を内製展開しています。SeekAIではRAGという技術を使って一般的な知識だけでなく、社内規程・ルール・問い合わせ先、コーディング時の技術スタック、顧客や取引先とのコミュニケーション履歴などを効率的に把握できるため、社内の情報検索ツールとして活用されています。 SeekAIのプレスリリース RAGとは 生成AIに『学習済みではない知識』に関する回答を出力させるために、別途構築したデータベースから取得した情報と組み合わせて回答させる手法です。
こんにちは。AndroidアプリエンジニアのChigitaとFukunoです。 先日開催されたKotlin Fest 2024のLINEヤフー企業ブースでは、「Pocket Code Battle」を...
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 34 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 三十六計分けるに如かず メッセージを送受信するサービスの UI レイアウトを実装しているとします。このレイアウト内では、様々な「ボタン」を実装する必要があります (例: メッセージ送信ボタン、プロフィール編集ボタン、...)。以下のコードは、メッセージ送信ボタン SendMessageButto
こんにちは、LINEスキマニのフロントエンド開発担当や、フロントエンド開発に関するイベントの運営をしている板井(@itatchi3_)です。 LINEヤフーでは、社員が海外のカンファレンスや学会に参加することを支援する制度があります。これを通じて、最先端技術の情報収集や現地の温度感の調査を行い、得た知見を会社に持ち帰ることで、全社的な技術力向上に努めています。 この制度を活用し、2024年5月13日と14日にアメリカ・サンフランシスコ州マウンテンビューで実施された「Google I/O 2024」に現地参加してきました。 現地のエンジニアと実際に触れ合った中で、その熱意の高さからも重要であると感じ、さらにLINEヤフーでも導入の検討が進められているフロントエンド技術について解説します。 Built-in AI 兎にも角にもAI一色の「Google I/O 2024」でした。AI関連の発表が
質問内容に対して、手動で実行しその結果をドキュメントに残していれば0.5、CIなどに組み込まれ自動実行されている場合には1.0、どちらにも該当しない場合には0といった形で回答し、各領域においてスコアを合算し、そのスコアの最小値が最終的なMLOpsScoreです。 前回報告した際の、合併前のヤフー株式会社のプロダクトにおける MLOpsScoreの結果は以下の通りでした。 元論文の判定基準に当てはめると、現行のスコアは「基礎的なプロジェクトの要求事項は通過した。しかし、信頼性向上のためのさらなる投資が必要とされる」という判定です。当初はこのスコアが2を超える、「適切なテストがされているが、さらに自動化の余地が残っている」を達成することをいったんの目標としていました。 また、各カテゴリごとに分解して見てみると、特にモニタリングの領域について課題がありそうなことがわかります。 取り組んできたこと
This post is also available in the following languages. English, Korean 弊社では3年前、従来のヘッドレスCMSの構造とパフォーマンスを改善した新しいヘッドレスCMS、LandPress Contentを社内向けに公開しました。その後、従来のCMSを使用していた多くのLINEサービスがLandPress Contentとして再開発されはじめました。今回の記事では、従来のCMSからヘッドレスCMSに移行する際の注意点や移行後の改善点について紹介します。 ヘッドレスCMS登場の背景 まず、ヘッドレスCMSが登場した背景を見てみましょう。 従来のCMSの問題点 従来のCMSは、下図のようにフロントエンドとバックエンドの組み合わせで一体化されたように動作します。その代表例としてWordPressとMovable Typeがありま
こんにちは、Dev Contentチームのmochikoです。LINEヤフー株式会社でテクニカルライターとして働いています。 今日は、テクニカルライティングの専門チームで、私たちテクニカルライターが「チームの目標」をどう決めたかについてお話しします。 ※本文中に記載されている会社名、製品名、キャラクター名などは各社の商標、または登録商標です。 テクニカルライターってなに? 目標の話に入る前に、そもそも「テクニカルライターってなに?」という方もいらっしゃると思いますので、テクニカルライターについて簡単に説明します。 LINEヤフー株式会社の技術組織には、技術ドキュメントやAPIリファレンスなどを書く専門職として「テクニカルライター」というポジションがあります。日々、テクニカルライターがどんなふうに働いているかについては、合併前のLINE Engineering Blogに書いた『LINEの社
こんにちは。Yahoo!フリマのAndroid開発を担当している菅野です。 私の開発チームではGitHub Copilotを導入し、開発の生産性を高めています。今回は私たちの開発チームがどのようにGitHub Copilotを活用しているのか、その具体的な事例を紹介します。この記事を通じて、GitHub Copilotの導入方法や活用のポイントを学び、皆さんの開発プロセスの効率化に役立てていただければと思います。 GitHub Copilotとは GitHub CopilotはAIを活用したコーディングアシスタントで、コードの記述を助けるためにリアルタイムでコードの提案を行います。コード補完として入力中のコードに対してコーディングの補完提案をしてくれたり、チャット機能を利用してコードに関する質問をCopilotに投げかけることができます。 Android StudioにGitHub Cop
以下のように、できるだけ簡潔に単一ページですべてを解決できるように構成し、ユーザーだけでなく私たちも使用量を追跡・管理するために、管理者ダッシュボードも構成しました。 ユーザーダッシュボード 管理者ダッシュボード 今回のキャンペーンは大規模なRedisが対象で、リリース時期や開発関連の特定イベントを避けるなど、開発者のスケジュールも考慮しながら実施したため、長期間にわたって展開しました。深く考えて準備したためか、多くの開発者がキャンペーンに参加し、おかげさまで成功裏に終えることができました。以下は、2023年の1年間、Redisが使用していたリソースの変化を示したグラフです(サービス数ではありません!)。 ここで重要なのは、サービス数にはほとんど変化がなかったということです。むしろ、終了するサービス数が開始するサービス数に追いつくことができませんでした。それでも、上のグラフのようにリソース
こんにちは。LINEヤフー株式会社で、出前館というプロダクトのサーバーサイドエンジニアをしている古田大志です。 株式会社出前館はLINEヤフーのグループ会社です。資本業務提携を結んでいて、LINEヤフーが開発などをサポートしています。 詳しくはこちらをご参照ください。(https://corporate.demae-can.co.jp/pr/news/demaecan/line.html)(外部サイト) 今回の記事では、その出前館における開発の内容を紹介させていただきます。 出前館はデリバリーサービス事業のプロダクトで、開発においてはマイクロサービスアーキテクチャを採用しています。出前館のマイクロサービスの1つに、クーポンに関するドメインの責務を持ったコンポーネントであるクーポンサービスがあります。 クーポンサービスでは、ビジネスエンハンスに伴う「非機能要件の増大」や「仕様の複雑さの肥大化
次のページ
このページを最初にブックマークしてみませんか?
『LINEヤフー Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く