サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
mixi-developers.mixi.co.jp
「家族アルバム みてね」のSREチームの清水です。これは、ミクシィグループAdvent Calendar 2020、14日目の記事です。あまり時間がなく若干殴り書きとなっているので、抜け漏れ、誤りがあったらごめんなさい。 少し前にTwitterでこんなことをつぶやきました。 この内容について、もう少し掘り下げてみたいと思います。 インフラ障害への対応インフラに携わっている多くの方が何らかの障害を経験したことがあるのではないでしょうか。インフラの障害は全く起きないことが理想ではあります、絶対に起きないという保証はなかなかできません。提供するサービスの形態によってはSLAをかなり厳しくして、多少の障害点があったとしてもサービスが継続できる形をとっているケースもあるかと思いますが、すべてのサービスがそうであるわけではありません。かけられるコストとのバランスを考えて、多少のエラーレートを許容してい
家族アルバムみてね というサービスでiOSをメインに開発しているエンジニアの ロクネム(@_rockname) です みてねではiOS14の公開に伴い、目玉機能の一つである「ウィジェット」を開発してリリースしました (iOS14公開日からかなり遅れてしまいましたが…) 実装前は、かなり簡単に実装できるのでは?と考えて開発に着手したのですが、意外と面倒な部分もいくつかあり、、、 本記事ではそういった「ウィジェットを開発する前に知っておきたかったと感じたポイント」を6つほど紹介します みてねウィジェットとは?その前に、簡単にどういったウィジェットを開発したのか説明させてください そもそも家族アルバムみてねとは、家族で子どもの写真や動画を共有することができるアプリです ユーザー数もおかげさまで800万人を突破しています
こんにちは。ミクシィでスポーツやライブエンタメ関連の技術部長を担当している石井です。社内向けに書いている記事を少しづつ外部公開していきます。 大規模なサービス開発組織で働いていると、技術職スタッフにおいても、視座の高さを求められることが増えます。「視座の高さ」という単語は、曖昧で、入社していきなり「視座!視座!」と言われても、「えらい人がなんか言うとる」「わいには、まだ早い」くらいで、腹落ちしないと思います。しかし、給与体系にも紐づいていたりするので、給与が上がってくると、「視座をもうちょっとあげてもらわないとね…」と上長から言われれて「えー」となるかもしれません。私の考える「視座の高さ」と、なぜ専門職にも必要になるのかを説明しつつ、サービス開発と組織の関係について考えてもらう機会になればと思います。 私は、エンジニアリングを、単にプログラミングを書いたりすることで技術課題解決するというこ
※この記事には続きの記事もあるので、合わせてご覧ください。 前回の記事からアップデートがあったので紹介します! ※今回紹介する機材を使うと、スクリーンのキャプチャ+ワイプの配信(配信の例)が簡単にできます。ただし、配信画面をカスタマイズする場合の難易度があがるので、配信画面を大きく変更したい場合は前回の記事の構成の方が良い場合があります。 この記事の内容は『Meetup video shooting Meetup #1』で話した内容の補足と、Meetupにて得た情報を加えたものになっています。 前回の記事ではキャプチャーボード2台、ミキサー1台を使う構成を紹介しました。この構成はやりたいこと(スライドをキャプチャーしつつ、登壇者をワイプで表示する)は十分できるのですが、機材が多いため接続が大変だったり、配信ソフトの使い方を把握する必要があったりと運用コストの面で課題がありました。
家族アルバムみてね というサービスでiOSをメインに開発しているエンジニアの ロクネム(@_rockname) です。 本記事では、OOUIについてエンジニア目線で考察したことをまとめます。 この記事は、Object Oriented Conference 2020 にて発表したトーク「デザインにオブジェクト指向を適用する」を記事にしたものです。 1. まずは「わかりにくいUI」を見てみよう私が開発に携わっている「家族アルバムみてね」をテーマに、いわゆる「わかりにくいUI」を設計してみます。 その前にまずはどんなサービスなのかをざっくり説明させてください。 家族アルバムみてね子どもの写真や動画を家族で共有できる、家族アルバムアプリです。 600万ユーザーも突破しています。
こんにちわ、モンスト事業本部SREGの伊藤です。 以前 IP制限を減らす取り組み で自作のプロキシをご紹介しました。 自分の手で作ったことで色々と問題を解決することができましたがまだ解決できてない問題もありました。 今回は解決できていなかった問題の1つを解決する仕組みをご紹介します。 本プロキシは自分のメイン業務の片手間で作っているためそれほど多くの時間を割いているわけではありません。(業務時間の10%〜20%程度でしょうか) 本当はもっと作り込みたい部分もあるのですがそのような立ち位置のため効果の大きそうなものや個人的に興味があるものを優先して実装しています。 今回は個人的な興味で実装した機能のご紹介です。 内部アクセス問題皆さんはいくつのAWSアカウントを利用していますでしょうか? 自然とアカウントが増えていったりしないでしょうか? モンストも歴史的経緯などでアカウントが増えました。そ
モンスターストライク(以下、モンスト)のサーバーアプリケーションは Ruby で書かれており、そのフルテストは次のような環境で実行していました:
ミクシィグループの各社に所属するエンジニア達によるAdvent Calendarです。 過去のAdvent Calendarはこちら。 https://qiita.com/advent-calendar/2018/mixi…
こんにちは。「家族アルバム みてね」の開発チームに所属している黒川と申します。今回は、その「みてね」の機能の1つで、写真や動画をDVDにして注文できる機能を動的計画法を使って改善した話をします。 「みてね」では家族の写真や動画をアップロードし、アプリ上で月ごとに振り返ることが可能になっています。一方、たとえば自宅のテレビやパソコンでまとめて振り返りたいという要望もあり、「みてね」では最長過去1年間の写真や動画をDVDにまとめて注文することができます。 このときに問題となるのがDVDのディスク分割です。1年分の写真や動画はともすると1枚のディスクに収まりきらず、複数のディスクに分割する必要があります。いままでは、動画を月ごとに分けて各ディスクに入れていく、というシンプルなアルゴリズムで分割を行っていました。しかし、ユーザーさんからは「1枚のディスクにすこしの動画しかないがどうなっているのか」
以前、 モノレポ構成にしてビルドツールとしてBazelを利用していることを紹介しました。 そのBazelは10月10日にとうとう1.0をリリースしました。 バージョン1.0に到達したというニュースは日本語のニュースサイトでも掲載されるなど、多少注目を浴びたようです。 そこで今回はGoのプロジェクトのビルドツールとしてBazelを利用する際のTipsをご紹介します。 GoのプロジェクトではGNU makeをビルドツールとして使われていることが多いと思いますが、一度Bazelに慣れてしまうと手放せないツールになります(なっています)。 導入を検討する際のなにかの参考になりそうなTipsをいくつかご紹介します。 BazelをGoのプロジェクトで使うことのメリットBazel がすべてを用意してくれるので最悪 goコマンドが入ってなくてもビルドできる。コンテナとしてshipする際に非常に軽量なイメー
モンスト事業本部SREグループの伊藤です。 普段はモンストに関するシステムの改善・運用を様々な面から行っています。 前回は弊社のあるリポジトリでのBazelの活用について簡単に紹介しました。 今回は更に1歩、Bazelの使い方に踏み込んでみたいと思います。 我々のリポジトリに含まれている色々なツール等をビルドしてshipするにあたって分かりづらかったりした点を中心に説明したいと思います。 すべてを網羅できているわけではありませんし、あくまで自分たちのリポジトリの頻出パターンなので皆さんのリポジトリでは違った点で悩むかもしれません。 Bazelを使い始めようという時に思い出して見ていただけるとよいかもしれません。 今回もサンプルコードは前回と同じリポジトリに置いてあります。 コンテナを作るサンプルリポジトリの helloworld1 はコンテナの作成もできるようになっています。 load("
皆さんはページングについてどんな印象をお持ちでしょうか? 好き・嫌い以外にも「興味ない」「めんどくさいやつ」などいろんな感情があると思います。人間だもの。仕方ないことです。 いざページングを実装してみると、次のページ、前のページ、ページ番号のリンクといったページャ、次のページ・前のページが存在するかどうかのチェック、定められた件数ごとの情報取得など、意外と世話のかかるやつという一面が見えてきます。 ページングと出会ったのは私がまだ入社して間もない駆け出しエンジニアだった頃で、履歴の一覧画面を管理ツールに実装する案件がきっかけでした。 普段ページングに着目することはあまりないと思いますが、1ページあたりの件数は、一般的なユーザー向けのアプリよりも、管理ツールの方が多くなるでしょう。ユーザー向けアプリでは体験(UX)を重視するのに対し、管理ツールでは一画面あたりの情報量を重視するからです。 初
モンスト事業本部SREグループの伊藤です。 普段はモンストに関するシステムの改善・運用を様々な面から行っています。 これまでに IP制限を減らす取り組み と Bazelとモノレポ のサービスの周辺開発についてのお話を紹介しました。 今回はモンストでどのようにキャッシュを使ってパフォーマンスを改善しているのかご紹介します。 皆さんは “負荷対策” と聞いて何を連想するでしょうか? 適切なデータ構造?インデックス?Covering Index? もちろんそれらも大事ですが、システム全体を考えるとどこでバランスを取るかというのも大事になってきます。 ある処理をする場合、必要なリソース量の和というのはアーキテクチャによらず一定でどのようにバランスを取るかというのが重要になってくると思っています。 ここで言うリソースというのはCPU・メモリ・ネットワーク・ディスクIOなどです。 今回はメモリとネット
家族アルバムみてね というサービスのiOSをメインに開発している ロクネム@_rockname です。 WWDC2019に今年初めて参加してきたのですが、キャッチアップすべき情報が多すぎてオーバーフローしかけたので、他のエンジニアと話したりTwitterをみていて「これは押さえておきたいなぁ」と感じたセッションを10個ほどピックアップしてまとめたいと思います。
こんにちは、内定者アルバイトの浅野です。普段は、スマホアプリ「モンスターストライク」(以下モンスト)のサーバサイドの開発に携わっています。今回は、モンストの開発環境をInnoDB memcached pluginを使って改善した取り組みについてご紹介します。 開発環境におけるタイムトラベラー機能モンストでは、次のイベントで利用するデータなどを確認するために、テスト用の環境において管理ツールでタイムトラベル機能(別名 タイムトラベラー)を提供しています。 タイムトラベルの機能は、キャッシュとRubyのGemであるtimecopを利用することで提供しています。 タイムトラベラーの仕組みタイムトラベルがどのように動作するか説明します。 管理画面よりタイムトラベルしたい日時をセットすると、キャッシュにタイムトラベルする日時がセットされます。このキャッシュを使ってTimecop.travelを実行す
モンスト事業本部SREグループの伊藤です。 普段はモンストに関するシステムの改善・運用を様々な面から行っています。 今回もサービスの直接的な改善ではないですが、ツール等のIP制限を減らす取り組みについてご紹介します。 サービスの直接的な改善もいつか書ければなと思っております。 皆さんはIP制限をしているツール等はいくつくらいありますでしょうか? モンストにも歴史的経緯でIP制限されたツールや、特に制限されていないツール(!)までいくつもありました。 自作のツール以外にも開発や運用で使っているツールのフロントエンドなども合わせると30以上のツールがあります。 運用で使うツールはアラート対応などでオフィスにいない時でもどこからでもスマートに見れると嬉しいです。 特にサーバーのメトリクスは移動中に見れると対応しているメンバーにアドバイスができたり非常に助かります。 これまではオフィスのIPからの
モンスト事業本部SREグループの伊藤です。 普段はモンストに関するシステムの改善・運用を様々な面から行っています。 運用で使われる大小様々なツールを作ることもしばしばあるのですが、このリポジトリ運用が少し特徴的なので紹介をしたいと思います。 リポジトリ運用を一言で表せばモノレポで運用しています。 大小様々なツールがすべて一つのリポジトリに入っています。 ツールのソースコードに限らずKubernetesのマニフェストも同じリポジトリに入っていますしDockerfile等も入っています。(Dockerfileはそんなに多くはないです。Dockerfileを使わずに作成されているコンテナも多いので。これに関しては別の機会に) ツールを書く時に使われる頻出な処理はライブラリとして分割されているものもあります。そのライブラリも同じリポジトリに入っています。 このリポジトリは一切外のリポジトリに依存し
屋台が描かれて博多感のあるパネル2019年4月18~20日に開催されたRubyKaigi 2019にスポンサーとして参加してきたので、会場やブースの様子をご紹介します!
会場のAbema Towersは、最近できたばかりの新しいビルだからか、まだ工事中の箇所もありました。しかし綺麗なビルとお部屋は気持ちがいいですね。 それでは、各発表に関してのポイントや所感などを書いていきたいと思います。イベントのハッシュタグは #jawsug_ct です。 catabira.com における Amazon EKS 活用事例 — Kubernetes による継続的デリバリ編池内 孝啓さん(@iktakahiro) / 株式会社 catabira CEO 冒頭、発表者からの参加者へEKSやKubernetesの利用について質問。会場内にはEKS使っている方がちらほら。EKS以外のKubernetes経験者もそこそこ(GKEやAKSの経験者の方なのかも?)。 サービスは3人で開発。PostgreSQLが好きなのでAurora PostgreSQLを採用。ブロックチェーン特有(
こんにちは、初めまして。CREグループの神です。今はエンジニアチームでリーダーをやっています。 去年から少しずつチームマネジメントの役割を担うようになり、9月頃からチームメンバーとの1on1をするようになりました。 いざ自分がホストとして1on1をすることになると、「1on1って何のためにするの?どうすればいいの?」と考え過ぎて夢に出てくるくらい1on1について考えていました。 本を読んだり、人に聞いたり、記事を読んだり、半年ほど試行錯誤しながら1on1をしてみて、少しは知見を得られた気がするのでまとめてみたいと思います。 Photo by rawpixel on Unsplash何を目的に1on1をするのか1on1を始めるにあたって「何を目的に1on1をするのか」ということをゲスト・ホスト共通の認識として持っているとお互い有意義な1on1になるのではないかと考え、目的を定めることにしまし
この記事は、DroidKaigi:2019で登壇した「実践 WorkManager」という発表内容を、必要な時に参照しやすいように、また当日発表を見ることができなかった方のためにスクリプトを記事に書き起こして加筆などしたものになります。発表時の資料は以下になります。
こんにちは。以前、エンジニアからマネージャーになって変わったこと・変わらないことというエントリを投稿したCREグループの豊川です。 SNS「mixi」における取り組みとして、機械学習による不適切コンテンツ検出について岩瀬からご紹介させていただきましたが、私たちCREグループでも、お客様への素早い返信と対応品質向上のために、問い合わせの分類を目的としたカスタマーサポート(CS)AIの開発に取り組んでいます。 しかしタイトルにもあるとおり、私たちは一度失敗しました。 AIや機械学習といったワードが持て囃されるようになって久しく、成功事例は数多く見られるようになってきた一方で、失敗事例が語られることはあまり多くありません。 そこでこのエントリでは、カスタマーサポートAIの開発に至った背景と、なぜ失敗し、失敗から何を学んだのかをお話しします。 なお、下記のことには触れないのであらかじめご了承くださ
こんにちは、株式会社ミクシィで SNS「mixi」事業を担当している岩瀬です。 本記事では、「mixi」における 「健全化活動」と、近年実施した「機械学習による不適切コンテンツ(規約違反投稿)検出」の取り組みについてご紹介したいと思います。 はじめに「mixi」 は、サービス開始からまもなく 15 周年を迎えるソーシャルネットワーキングサービスです。 長く運用したサービスでは古くなった仕組みの更新が欠かせませんが、「mixi」でもそうした取り組みの一つとして、 2018 年末にかけ「健全化活動」にかかわる仕組みの更新を行いました。 今回のケースでは、「健全化活動」において懸案とされてきた課題に対して、機械学習による解決を試みました。「機械でできることは機械に任せ、より複雑さの求められる領域に人間が注力できるようにしよう」とする取り組みです。 「mixi」の「健全化活動」と課題「mixi」の
ミクシィでの仕事も気づいたら8年目を迎えていました。キャンプとクラフトビールが大好きです。普段はSREをやっている清水と申します。本記事は、ミクシィグループ Advent Calendar 2018 23日目の記事です。 私は、2018年2月から「家族アルバム みてね」というサービスでSREを担当しています。それまでは、約3年ほど「モンスターストライク」のSREを担当していましたが、みてねのSREに変わったことで本当に大きな変化がありました。SREというロール自体は変わりませんが、サービスの性質、規模、組織、インフラ、アーキテクチャ、トラフィックのパターンなどにおいて大きな違いがありました。それぞれの特性を理解、把握し、日々多くの課題解決に取り組んでいます。 9月のMeetupでは「みてねSREチームの取り組み」と、約半年間みてねのSREとしてやってきたことを発表しました。また、10月のA
美容院・美容室・ヘアサロン・ネイルサロン・マツエクサロンのスタッフ予約サービス。豊富なヘアカタログ・デザイン・口コミからあなたにぴったりのサロンスタッフ・メニューを探せます。「なりたい自分」を叶えるならminimo(ミニモ)で予約。 私は2018年4月にミクシィに新卒エンジニアとして入社し,minimoのサーバサイドエンジニアとして働いています.主にminimoのWeb版サービスの開発を担当しています. この記事で書くことミクシィの新卒研修についてPerlを書くようになるまでどのような教えを乞うてきたかどのような環境で仕事をしているかこの記事では書かないことPerlという言語の良し悪しPerlの文法に関する細かいこと※ なお,記事中に研修や配属の内容がありますが,それらはその年の新入社員の人数やレベル感,エンジニア組織の体制を鑑みて最適な方法やスケジュールを毎年検討しているため,必ずしも今
こんにちはミクシィの栗原です。 この記事は ミクシィグループ Advent Calendar 2018 の6日目の記事です。k8s導入する上で一番気をつけたことは袋小路を作らないこと。 (新卒研修でも言われた) 最悪、何かがコケても対案は出せるようにしてました。 k8sをローカルに構築するminikube等の導入は説明しないので他のサイトにあたってください。ちなみに僕は、k8sの検証をminikubeではなくGKEで行いました。
みてねデザイナーの渡辺です。 Androidのデザインについてエンジニアと話してる時にMaterial Designのチュートリアルについて教えてもらったのでやってみました。 MDC-101 Android: Material Components (MDC) Basics (Kotlin) https://codelabs.developers.google.com/codelabs/mdc-101-kotlin/ Codelabsとは?Googleが提供している様々なプロダクトに関して幅広いチュートリアルを提供しているようです。デザイン系だと Material Componentsの基礎から上級まで & 各プラットフォーム(Android, iOS, Flutter, Web)揃っていました。 新しいことをやる場合にはここで探して試してみるのが良いことがわかりました。 Google C
初めましてモンストサーバチームの松原です。 10月8日に催される技術書典5ですが、今回は弊社からも出典します!「XFLAG Tech Note」という名前で当日200冊を無料頒布します。また、何らかの形で電子版も配布したいと思います。 [追記 2018.10.23] 電子版を配布しました! 表紙はこんな感じです。かっこいいですよね、弊社のデザイナーが作ってくれました(業務の一部として作ってもらいました)。 デザイナーさんの案で知的なイメージのキャラを表紙に持ってきました内容は以下の6つです。ちなみに、僕は4つ目を書きました。 本当にあった、モンスターストライクのギミック実装事例明日から使える品質向上 Tips 集(モンストの QA チームが意識してることについて)とある Unity 開発事例(Unity でアーキテクチャの話)git challenge を支える技術(git challe
受付すぐ上にあるオシャレな弾幕『家族アルバムみてね』アプリ開発グループの岩名@_rocknameです。 iOSDCという、iOS関連技術をコアのテーマとした技術者のためのカンファレンスに登壇してきました。 CfPを採択していただいた運営の方々、また実際に足を運んで聴いてくださった方々本当にありがとうございます。
次のページ
このページを最初にブックマークしてみませんか?
『MIXI DEVELOPERS』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く