タグ

ブックマーク / tech.mirrativ.stream (45)

  • 4ヶ月間のフロントエンドインターンで得られた学び - Mirrativ Tech Blog

    はじめまして!フロントエンドエンジニアのエンドー(@onikumaruBuu)です! 私は大学3年生で、普段は大学の友人と「学モバイルオーダーアプリ」の開発をしています。フロントエンドに興味があり、React / TypeScriptを勉強中です! 8月中旬からインターンとしてミラティブに入社し、フロントエンド開発業務を行ってきました。 記事ではフロントエンドとしてのミラティブでのインターンで身につけた知見を共有します。 目次 目次 ミラティブでのフロントエンド開発 担当したフロントエンド仕事 イベントLPのTailwind CSSへリプレイス なぜTailwind CSSに置き換える必要があるのか。 grid-templateの実用性 ちょっぴりバックエンド Goの厳格なCIテストとの戦い ミラティブのここがすごい! スゴ飯会 Unipos フルリモートでのインターン 終わりに W

    4ヶ月間のフロントエンドインターンで得られた学び - Mirrativ Tech Blog
    udzura
    udzura 2022/12/21
    onikumaruさんのフロントエンドの学びだ!
  • ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog

    皆さんこんにちは、earlgray(@earlgray329) と申します。 10月17日〜12月19日の期間で、株式会社ミラティブの就業型インターンシップに参加していました。私は基盤開発技術部のバックエンドチームに所属して様々なタスクに携わらせて頂きました。 インターンシップの中で、普段行なっている趣味開発と Mirrativ という規模の大きいアプリケーションの開発の間で様々なギャップを経験することができたので、今回はインターンの中で着手したタスクとそれによって得られた知見等を紹介します。 目次 目次 基盤開発技術部とは 着手したタスク 1. Mirrativ 管理画面のログイン画面の SPA(React) 化 背景・概要 苦労したこと・得られたこと 2. 任意のユーザとしてログインできるようなデバッグ機能の追加 背景・概要 フィードバック 3. エモカラのオススメのアーティスト一覧と

    ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog
    udzura
    udzura 2022/12/15
    ”苦労したこと・得られたこと” の学びが深い
  • Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog

    こんにちは、フロントエンドエンジニア 兼 バックエンドエンジニアの駒木です。 iOS / Android / バックエンドのライブラリ紹介に引き続き、MirrativのWebフロントエンドで使用しているライブラリをご紹介します! JSフレームワーク: React with TypeScript / Vue.js 8割以上のアプリケーションはReact + TypeScriptで実装されていますが、数年前に立ち上げた一部のイベントページはVue.js + Vanilla JSで実装されています。 ビルド・バンドルツール: Vite / Parcel / webpack 2021年5月くらいからViteを利用し始め、以後立ち上げたプロジェクトはViteベースとなっています。 Vite 8割、Parcel + webpackが2割といったところでしょうか。 webpack → Parcel →

    Mirrativ のWebフロントエンドで使っているライブラリを紹介する! - Mirrativ Tech Blog
    udzura
    udzura 2022/12/13
    フロントエンド情報、大公開です!
  • Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog

    こんにちは、バックエンドエンジニアの夏(なつ)です。今回はMirrativのバックエンドで使っているライブラリをご紹介します。 これらの記事のバックエンド版になります!(2年越し) tech.mirrativ.stream tech.mirrativ.stream ライブラリ一覧 https://pkg.go.dev/ オリジナルの The Go gopher(Gopherくん) は Renée French によるデザイン cloud.google.com/go/bigquery 分析チームが生成したユーザの特徴量などがBigQuery上に存在しているため、それらをバッチ処理でMySQL上に取得する際に利用しています。 tech.mirrativ.stream cloud.google.com/go/compute/metadata 開発環境などでしか動いてほしくない処理が番環境上で動

    Mirrativ のバックエンドで使っているGoライブラリを紹介する! - Mirrativ Tech Blog
    udzura
    udzura 2022/11/29
    シェアします
  • iOS 16のロック画面映え機能を実装したい衝動に駆られた話 - Mirrativ Tech Blog

    ピクミンのスマホゲームに歩かされ続けている福山です(現在Lv51 - 合計歩数1,415,248) iOS 16で音楽や動画を流しているときにロック画面がいい感じになりましたよね! 正式名称はわかりませんが、ここに表示される画像はアルバムアートやアートワークなどと呼ばれているようです。 Mirrativ iOSアプリの配信視聴時もいい感じになっているはず... と思ったのですが、ただの灰色の画面になっていました😨 「なんとかしたいなぁ」と思い既存のコードとリソースをほんの少しいじった結果、以下のようになりました!Mirrativアプリv9.88.0から反映されています。 大画面で画像を表示したくない or 他の通知もすぐ見たいという場合には画像部分をタップすることでコンパクトに表示されます。 コントロールセンターの右上のブロックを押すことでも画像を見ることができます。 iPhone 14

    iOS 16のロック画面映え機能を実装したい衝動に駆られた話 - Mirrativ Tech Blog
    udzura
    udzura 2022/11/14
    すごい、かっこいい。あと私もピクミンのスマホゲームで歩かされ続けてます
  • Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog

    こんにちは ハタ です。 Mirrativのインフラ内で実際に開発・運用している内製のRedisサーバについてお話したいなと思っています。 前回の記事 は、今回紹介する内製Redisサーバで起きたメモリリーク対策に関するお話しとなっておりますので、もし未読であればあわせて読んでいただければと思います。 今回はなぜ Redis サーバを内製することにしたのかの経緯や実装についての簡単な紹介が出来たらなと思っています Redis 導入の経緯 課題感: 揮発しないでほしい 課題感: 生存時間が短いデータを保持したい 課題感: 日次データをなんとかしたい 候補 Redis Cluster のヨシアシ: slot 管理 Dynomite のヨシアシ: sharding/replication radisha = Raft + Redis + HA Raft クラスタ コマンドとデータストア レプリケ

    Raft + Redis な内製Redisサーバの紹介 - Mirrativ Tech Blog
    udzura
    udzura 2022/11/01
    最近、私も開発に携わっている内製ミドルの話です!
  • ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog

    みなさまこんにちは。@n0mimonoとshirakawaです。今日はミラティブの中で行われている社内勉強について紹介させていただきます。社外に公開しながら社内にも宣伝をする一石二鳥の作戦です。 ミラティブではエンジニアが自身やメンバーのために勉強会や交流会を開くことを奨励しています。 tech.mirrativ.stream その一つとして、毎週木曜日に行われている勉強会を紹介します。 勉強会 以下、社内文書からの転載になります。 なぜやるのか 新しい知識の獲得・技術レベルの向上のため ディスカッションを通してチームビルディング やらないこと 事前資料準備等: 参加者に負担がかかるため どうやるのか を決めます 参加者で読みたかった・読んでみたかったを出す 投票によって選ぶ 週一回、45分集まる曜日・時間(カレンダーは1時間抑える)を決めます 集まった人でを順番に音読していきます

    ミラティブの社内勉強会の紹介 - Mirrativ Tech Blog
    udzura
    udzura 2022/10/17
    読んでます!
  • RubyメインでなくてもRubyKaigiから色々学べた話 - Mirrativ Tech Blog

    インフラ・ストリーミングチームの @udzura です。(一ヶ月経ってしまいましたが)9月8日から9月10日まで、三重県でRubyKaigiがありました。 rubykaigi.org 久しぶりのオンサイト会場での開催ということで、大いに盛り上がり、感想ブログなどもたくさん書かれています。 今回は、Rubyをメインで使っていない会社であるミラティブのエンジニアの立場から、RubyKaigiのトークは勉強になるという話をします。 ミラティブの技術スタックとコミュニティについて ところで、以下に、ミラティブのEngineer's Handbookから、技術スタックについての紹介ページを引用します。 エンジニアハンドブックより引用 この通り、実はRubyはアプリケーション開発のメインは使っていないのです*1。 ですが、今回は、後述する通り私がRubyKaigiのCfPに通過したため、「社内外へ積極

    RubyメインでなくてもRubyKaigiから色々学べた話 - Mirrativ Tech Blog
    udzura
    udzura 2022/10/14
    書きました。楽しかった!
  • 【変化・成長・課題】1年間のミラティブのインターンを振り返る - Mirrativ Tech Blog

    こんにちは。気づいたらミラティブに入って1年が経ってました。早いものですね。ブログを書いてて気づいたんですが、1年前の自分と大きく変わっていたことを再認識しました。プログラミング能力といった技術的なことから、仕事・仲間に対する意識といった内面的なことまで、たくさん変化がありました。そんなことをつらつら書いていきます。 目次 目次 自己紹介 ミラティブでの活動内容・働き方 生まれて初めて見たでっかいコード 毎週の勉強会 場所に囚われない働き方ができる 開発エピソード 1年前の自分と比較して We are hiring! 自己紹介 「お前誰やねん」と思われないように少し自己紹介。アプリ開発を始めたのは大学2年生の時。1年間くらい個人でスマホアプリを作ってました。どんなアプリかというと、同じ大学の友達同士で話し合えるTwitterのようなアプリです。オンライン授業で友達が作りづらい状況にあるため

    【変化・成長・課題】1年間のミラティブのインターンを振り返る - Mirrativ Tech Blog
    udzura
    udzura 2022/10/13
    1年ですごく変わる気持ちわかる(私はまだ半年経ってない?けど)
  • Mirrativ Tech Community & Activity Policy - Mirrativ Tech Blog

    はじめに 「ミラティブのエンジニアの発信の文化やポリシーってどうなってるんですか?」 ドキュメントは、多くの方に聞かれるこの問いに答えるものになります。 好きでつながり、自分の物語(ナラティブ)が生まれる居場所 ミラティブはエンジニア技術に対する強い思いによって成り立つチームです。ミラティブのエンジニアのミッションは、ミラティブというチーム・プロダクト・技術に貢献することであります。 一方、私達はナラティブが生まれるコミュニティの会社であり、わかりあおうとし続けるために、エンジニアチームのビジョンとして、ミラティブをテックな組織としてブランディングすることを掲げます。 すなわち、ミラティブのエンジニアは社外に対して積極的に発信し、イベントに参加し、OSSコミュニティに強く貢献するものであります。当然、社内においてもエンジニア同士が積極的に交流し、勉強会を開催し、互いの健やかな成長を促す

    Mirrativ Tech Community & Activity Policy - Mirrativ Tech Blog
    udzura
    udzura 2022/09/26
    アウトプットのポリシーです
  • ミラティブでインフラストリーミングチームにインターンとして参加してカルチャーショックを受けた話 - Mirrativ Tech Blog

    紳士淑女、エンジニア、あるいはそれを志す皆様おはようございます。かさいさん @streamwest1629 です。 今この記事を書き始めたのは午後3時。普段、私が個人的な趣味で書く記事だと、冒頭は 「依存関係逆転則含む諸原則に苦しめられた方々,いかがお過ごしでしょうか」 であるとか、「Gopherの皆様、いかがお過ごしでしょうか」 であるとか、ある程度対象読者層を絞った文言で始めています。しかし、この記事の読者層をどの程度絞って書いたものかと少し悩みながら上記冒頭文を選びました。 さて、タイトルにある通り私はこの夏に1ヶ月半という短い期間ではあるのですが、ミラティブのインフラストリーミングチームにてインターンをさせていただきました。 自分の技術力にはある程度自信があったので、心理的に余裕を持った状態でミラティブのインターンに参加しました。 しかし、実際にミラティブのインターンとして参加しイ

    ミラティブでインフラストリーミングチームにインターンとして参加してカルチャーショックを受けた話 - Mirrativ Tech Blog
    udzura
    udzura 2022/09/16
    僕が入社してからの似たような学びが、わかりやすく書かれている感がある。お疲れ様でした!またどこかで
  • 2022年のライブゲームはWebGL@Unityで動いているよ - Mirrativ Tech Blog

    みなさまこんにちは、よこて @n0mimonoです。段々とすごしやすい気温になってきましたがいかがお過ごしでしょうか。今日の話は ミラティブとライブゲーム ライブゲームUnityを利用したWebGLベースで動いているよ バックエンドアーキテクチャの紹介 行ってみます! ミラティブ × ライブゲーム ミラティブは、スマホで簡単にゲーム配信ができるサービス『Mirrativ』を展開していますが、今年(2022年)からゲームとライブ配信を融合させた『ライブゲーミング』に特に注力してます(次は4月次点のプレスリリース)。 prtimes.jp 「ライブゲーミング」とは、配信中のゲームに視聴者が介入できる、ゲームとライブ配信が融合した次世代のゲーム体験となります。 視聴者は従来のライブ配信のようにコメントやギフトアイテムを贈るだけでなく、実際に配信者といっしょにゲームをプレイする「参加型ライブゲー

    2022年のライブゲームはWebGL@Unityで動いているよ - Mirrativ Tech Blog
    udzura
    udzura 2022/09/07
    “私自身もUnityエンジニアなので”
  • Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog

    インフラ・ストリーミングチームの id:udzura (@udzura)です。今回は、Goミドルウェアのメモリリークを見つけて解決する際に、どのようなプロセスを踏んでいったかを解説します。 Go製のミドルウェアの概要 ミラティブでは、Webアプリケーションのみならず、ミドルウェアに相当する部分についても必要なものは内製しています。その中の一つに、社内で「Radisha」と呼んでいる各種集計とキャッシュなどを行うためのミドルウェアがあります。Radishaは以下のような特徴を備えています。 GET、SET、SETEXなど基的なRedis互換のコマンドを実装している。そのため、既存のRedisクライアントライブラリから操作が可能である。 ランキング集計、一定時間内のアクセス集計などが行えるよう、Redis にない独自のコマンドを実装している。 高い可用性を志向しており、オンメモリのデータは

    Go製ミドルウェアのメモリリークを解決した話 - Mirrativ Tech Blog
    udzura
    udzura 2022/08/03
    書いたので、お昼休みにでもぜひご覧ください :pray:
  • テスト工程の可視化や自動化に向けた取り組みのご紹介 - Mirrativ Tech Blog

    こんにちは、エンジニアの千吉良(ちぎら)@_naru_jpn です。ここ最近 QA に関して考える機会があり、Systematic Software Testing というを読んでいたところ、色々と刺激を受けるところがありました。計画書の作成やリスク管理などテストの実施以外の領域についても多く書かれていましたが、まずはミラティブの現状に基づいた改善を行うべきだろうと考えました。今回は特にメトリクスの取得などに関して、GAS(Google Apps Script)を活用してミラティブの業務に応用してみたことについてまとめてみました。 以下では細かいことにも触れているので、3行まとめをおいておきます。 手動テストの進捗を見えるようにしたよ GAS(Google Apps Script)で実装したよ ついでに関連業務を自動化したよ ミラティブにおける QA と解決できそうと感じた課題 ミラティ

    テスト工程の可視化や自動化に向けた取り組みのご紹介 - Mirrativ Tech Blog
    udzura
    udzura 2022/07/28
    作り込まれていてすごい
  • SwiftFormatを導入してコード記法を統一化 - Mirrativ Tech Blog

    ミラティブでiOS開発をしている福山(@fokotate)です。 今回はSwiftFormatをMirrativのiOSプロジェクト(約1500のSwiftファイル)へ導入したときのことを話します。 導入にあたって 私は当初、SwiftFormatについてよく知らなかったため導入にはあまり乗り気ではありませんでした。 しかし調べてみると、実行タイミングによってはチームにとってほぼストレスなくソースコードを綺麗に保てることがわかってきました。 コミット実行時にSwiftFormatがコードを変更してコミットを中断、その変更を取り入れて再度コミットするといった一手間だけです。 導入したい気持ちが高まってきたものの、いきなり新しいツールを持ち込むのはチームから反発も受けそうだったので、Slack上で様子をみたり、ドラフトPRを書いたり、勉強会を開いて徐々に受け入れられる状況を作りました (実際は

    SwiftFormatを導入してコード記法を統一化 - Mirrativ Tech Blog
    udzura
    udzura 2022/06/27
    フォーマッター便利!
  • イヤホン配信を支える音のプログラミング〜Accelerate編〜 - Mirrativ Tech Blog

    こんにちは。shogo4405です。エントリーは、iOSエンジニア向けにイヤホン配信を支える音のプログラミング入門 - Mirrativ Tech BlogのiOS実装を紹介したいとおもいます。 稿では、音声信号処理の実装手法としてAppleが提供するAccelerateフレームワークの利用方法を解説しています。音声の信号処理は、AccelerateのvDSPの関連の関数を利用します。 はじめに Accelerateを導入した背景は、for文での実装では、Mirrativで扱うライブ配信の処理速度に合わず体験的に良くありませんでした。そこで、Accelerateを導入することで処理速度の向上に寄与し満足できる体験になったため採用にいたりました。*1 サンプルデータ せっかくなので自分で音声データを作ってみましょう。sin波によるド・レ・ミ・ファ・ソ・ラ・シ・ドのラ(440hz)の音デー

    イヤホン配信を支える音のプログラミング〜Accelerate編〜 - Mirrativ Tech Blog
    udzura
    udzura 2022/06/22
    Swiftのコードで実際の音声ファイルを作って実験している、面白い
  • Cloud Buildによる内部向けGoバイナリのリリース自動化 - Mirrativ Tech Blog

    インフラ・ストリーミングチームの近藤 (id:udzura) です。 ミラティブのインフラ運用では、監視・自動化などさまざまなツールにGo言語を利用しています。ツールはコマンドラインツールとして提供して、バージョンごとにリリースを作成して各環境にデプロイしています。リリースの作成にはGitHubのRelease機能を利用しています。 今回は、GitHub Releaseの作成をGoogle Cloud Build(以下、単にCloud Build)で自動化したことについて、実装内容と効果を書いていきます。 なぜ Cloud Build を採用したか ミラティブの開発はGitHub Enterprise Cloudを利用しています。対応するCI/CDのサービスとしてはGitHub ActionsやCircleCIなど*1数多くありますが、ミラティブにおいてはGCPの利用箇所が多く、既存GCP

    Cloud Buildによる内部向けGoバイナリのリリース自動化 - Mirrativ Tech Blog
    udzura
    udzura 2022/05/24
    全体長いんですがw GitHub App経由でトークン発行してのプラレポビルドと、最後にリリース所要時間を計測している点はやや頑張りました
  • アプリ開発を支える10個のDangerレシピ - Mirrativ Tech Blog

    こんにちわ。shogo4405です。普段は、ミラティブで開発しながら、余暇にOSSのHaishinKit*1をつくっています。エントリーは普段UI開発を行なっているクライアントエンジニア向けに、ミラティブで導入しているDangerの実践レシピを公開いたします。 はじめに Dangerとは「Pull Requestの作法を形式化して指摘を自動化」するツールであり、採用している開発者の方も多いのではないでしょうか。Dangerの導入にあたってはDangerで始めるPull Requestチェック自動化 - コネヒト開発者ブログを参考にして導入いたしました。ありがとうございます。 ミラティブ社でも形式的なチェックは基的にDangerに任せるにようしています。エントリーでは、開発現場のあるある指摘内容をレシピ集という形でまとめました。 レシピ1:githubの更新があった箇所のみ指摘する 定

    アプリ開発を支える10個のDangerレシピ - Mirrativ Tech Blog
    udzura
    udzura 2022/05/20
    Danger便利
  • SwiftGenが生成する1万行越えSwiftファイルでXcodeがフリーズするのを防ぐ - Mirrativ Tech Blog

    4月にミラティブに入社したiOS開発者の福山 (@fokotate)です。ミラティブにはゲーム好きな人が多いためか、積みゲー消化が急速に進んでいます。 今回は珍しいケースかと思いますが、他社のiOSプロジェクトでも起こりえる問題に対処することができたので共有させてください。 2022/06/09 ✍️追記: Xcode 14 beta 1で確認したところ、以下の問題はほぼ解決しているようでした。AppleにFeedbackを送ったところ同様の報告が複数あり、対応していただけたようです。 Mirrativ iOS開発の問題点 Mirrativ iOS開発ではSwiftGenを使い、多言語対応ファイルLocalizable.stringsをswiftファイルに変換しています。これによって文言をコードに挿入するときに、Xcodeのコード入力の自動補完が使えるようになりタイピングミスがなくなり、コ

    SwiftGenが生成する1万行越えSwiftファイルでXcodeがフリーズするのを防ぐ - Mirrativ Tech Blog
    udzura
    udzura 2022/05/17
    生産性がめちゃ上がっててすごい
  • 【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog

    こんにちは ハタ です 今回はインフラ/基盤開発で導入している Envoy について紹介したいなと思っています 現在ミラティブでは Go移行 を進めているところで、 既存のWebアプリケーション(Perl で実装されてます)と、新たに Go で実装された Web アプリケーションをシームレスに導入/切り替えするために Envoy の導入を行いました Envoy xDSとConsul によるインスタンス管理 NGINX や HAProxy または Apache HTTP Server など使い慣れた && ノウハウもあるミドルウェアではなくなぜ Envoy を選定したかというと、 なんといっても魅力的なのが xDS と呼ばれる Discovery Service 群があることで柔軟に既存コンポーネントと連携を取りやすいことやAPI操作によるコントロールの柔軟性が高いことが決め手となっています

    【インフラ】 Envoy の導入と xDS API で Consul 連携やってみた話 - Mirrativ Tech Blog
    udzura
    udzura 2022/05/10