アプリなら、コメントが見やすい!
トップへ戻る
なごみ系Wikipedia
tech.gunosy.io
こんにちは。Android アプリ開発担当の nagayama(@nagayan_dev)です。 今回私が担当している「auサービスToday」で Jetpack Compose を導入したので、その経緯をお話しできたらと思います。 はじめに Jetpack Compose とは Jetpack Compose の導入メリット 導入方針 導入基本指針 今回の導入方針 最速導入フローチャート (1) Compose を導入したい画面を決める (2) build.gradle に依存関係を記載する (3) Compose ファイルを作成する (4) Fragment の修正 (5) 既存の xml ファイルを参考に、Compose ファイルに実装する (6) ViewModel の LiveData の監視設定 (7) Theme の設定 (8) TopAppBar の設定 (9) xmlファ
こんにちは、広告技術部のyamaYuです。 最近は『SPY×FAMILY』にハマっています。 めちゃめちゃ面白いです。 それとヨルさんの声優さんが好きです。 さて、先日 GunosyAds の管理画面をEKSに移行したのですが、Podのロールアウト時に5xxエラーが発生するという問題に当たりました。 その際にダウンタイムなしにPodをロールアウトするための設定について調べたので、この記事ではそのことについてまとめようと思います。 前提 問題: Podのロールアウト時に5xxエラーが発生する 解決策 (1) Pod削除時の5xx (2) Pod作成時の5xx まとめ 前提 まず前提の共有のために今回扱うシステムであるGunosyAdsの管理画面の構成を簡単に説明します。 このシステムはAWS EKS上のKubernetesクラスターに展開されたサービスの一つです。 AWS Load Bala
はじめに こんにちは、DR&MLOps チームの hyamamoto です! 最近犬と一緒に生活するようになり、Slack やら Twitter やらで犬のことばかり書いています。 今回は AWS profiles のコンテキストマネージャーを作成したので、会社のブログを使って宣伝したいと思います。 github.com 端的にこのツールは $ gcloud config set project ${project_name} $ kubectl config set-context ${context_name} と同じような感覚で AWS の profile を切り替えられるようにすることを目的にしたものです。 背景 まず、このツールを作るにあたった背景や既存の AWS の認証情報周りの辛い点についてお話します。 AWS の認証情報について AWS のサービスを awscli や sd
広告技術部のUTです。 最近はカービィディスカバリーをゆっくりやってます 概要 過去の失敗 どうやったか 仕組み 結果 まとめ 概要 昨今ではデータドリブンな意思決定を重視する企業がどんどん増えており、データを活用することにより事業成長へのインパクトを出そうとしています。 データを事業へと活用するためには、蓄積されるデータを分析するために保管しておく必要があります。 弊社も創業時からデータを蓄積し事業に活用することに力を入れてきた企業の一つであり、日々大量のログが収集されています。 またAWSアカウントを複数運用していますが、一番データ量の多い広告アカウントのS3にはペタバイトレベルのデータが保管されています。 普段何気なく使っているデータレイクとしてのS3ですが、少量であれば無視できるくらい小さいので、コストを気にせず使っておられる方も多いのではないでしょうか? そのようなS3でも巨大な
こんにちは、koidです。 この記事は Gunosy Advent Calendar 2021 - Adventar の25日目の記事です。 昨日の記事は aitaさんの EKSにJupyterHubを構築した - Gunosy Tech Blog でした。 ドキュメントの更新って面倒だし忘れがち ドキュメントのメンテナンスを自動化しよう コードからドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 状態からドキュメントを自動生成する ツールの利用によるドキュメント生成 CIによるドキュメント生成の自動化 まとめ ドキュメントの更新って面倒だし忘れがち 本題です。 みなさん、Pull Requestのレビュー時に、 ドキュメント・READMEも修正お願いします! こういったコメントをした/された経験ってありませんか? コメントをする側としても
こんにちは, メディア開発部の今村です. この記事はGunosy Advent Calendar 2021の23日目の記事です. 昨日の記事は洪さんの「Swift Concurrencyの気になるところ」でした. グノシーの社内管理画面用APIはGo + GraphQLで作っており, ライブラリはgqlgenを使っています. 開発開始からある程度経って使い方も固まってきたので, この記事ではgqlgenをどのように使っているかを紹介します. (主旨は事例紹介なのですが, 記事を書いていて「あまりメジャーな使い方じゃないしもっといい方法もあるな...」という気持ちになったのでこんなタイトルになっています. 詳しくは後半に書きました.) gqlgenの紹介 プロジェクトの構成 resolverとdomain serviceの依存関係 リクエスト次第で不要な処理を飛ばす 型変換にFOPを使う そ
こんにちは。iOS開発担当の洪です。 この記事はGunosy Advent Calendar 2021の22日目の記事です。 昨日の記事は茂木さんの2021 年の SRE チームの活動についてでした。大変面白い記事ですので是非読んでみてください。 はじめに Swift Concurrencyは簡単ではない Swift Concurrencyはただではない Swift5.5のSwift Concurrencyはまだ完成版ではない iOSフレームワークの関連メソッドはまだiOS15以上のまま One more thing おわりに はじめに 2021年6月のWWDCでSwift Concurrencyの発表がありました。 その後、そのSwift ConcurrencyはiOS15以上のみで利用可能と判明されました。 そして2021年12月、Xcode13.2からiOS13以上でSwift Co
はじめに SRE 部の茂木です。 こちらの記事は Gunosy Advent Calendar 2021 - Adventar の 21 日目の記事となります。 前回の記事はサンドバーグさんの 改めてドライブレコーダーを作ってみた - Gunosy Tech Blog でした。 かなりマニアックな内容となっていましたね。 さて、2017 年頃から 「SRE」という単語が世の中に出回ってから、数多くの実践が各企業で行われてきました。ですがその業務内容を詳細に公表している企業はそう多くはありません。 私は Gunosy に来てから正式な SRE チームに所属することになりましたが、 常にSRE の定義とは、難しいものがあるなと日々感じています(各社によって責任範囲や求められることがかなり違うため) 。 そこで今回は、 2021 年の Gunosy のSRE チームがどのような活動をしてきたかを
こんにちは、ちょっと前に 3 ヶ月半の育児休業から復帰したくらさわです。 なんと今日で生まれてちょうど半年です!早い!! こちらの記事は Gunosy Advent Calendar 2021 の 16 日目の記事です。 昨日の記事は yamaYu さんの『EKS Managed Node Group でカーネルパラメータを変更する 』でした。 今回は Visual Studio Code (以下 VS Code) の拡張機能を開発した話 + α を書きたいと思います。 タイトルが全てです。 はじめに 作成した拡張機能 拡張機能作成の流れ セットアップ Yeoman と VS Code Extension Generator をインストール Yeoman を実行 プロジェクトを開く コード contributes.commands activationEvents activate 関数
21卒広告技術部のyamaYuです。 マトリックスの新作が楽しみです。 過去作を見返さなくてはと思いつつこの記事を書いています。 個人的には第一作が一番好きです。 さて、こちらの記事はGunosy Advent Calendar 2021の15日目の記事になっています。 昨日は村田さんの『AdKDD & KDD 2021 に参加しました』という記事でした。 今回は、EKS Managed Node Groupでカーネルパラメータを変更する必要があったのですが、一筋縄ではいかなかったのでその話を書こうと思います。 背景: net.core.somaxconnを増やしたい Kubernetesでsysctlを実行する EKS Managed node groupでkubeletの設定を変更する おわりに 🐾 背景: net.core.somaxconnを増やしたい ここ最近の担当業務として、
こんにちは、 Gunosy Tech Lab AdsML チームで広告のロジック改善をしている m-hamashita です。昨年 FlexiSpot E6 と ErgoDox EZ を導入してからひどかった肩こりが改善したのでおすすめです。 FlexiSpot は最近 Black Friday で安くなっていたので、購入した人も少なくないのではないでしょうか。 こちらの記事は Gunosy Advent Calendar 2021 の 8 日目の記事です。昨日の記事は 吉岡(@rikusouda) さんの『2021年にSwiftUIを部分利用しつつ新規のiOSアプリを作った 』でした。 本記事ではターミナルエミュレータを iTerm2 から kitty に移行し、Hammerspoon で Hotkey 周りをいい感じにした話を紹介します。 はじめに kitty kitty について k
こんにちは。iOSアプリ開発をしている吉岡(@rikusouda)です。リモートワークが続いたためか家を買ったり車を買ったり散財が激しいこの頃です。 業務では、2021年4月に新規リリースした「auサービスToday」というアプリの開発をしています。 概要 アプリに求められていた要件 方針ぎめ ソースコード流用か新規開発か 設計方針 利用ライブラリの選定 Alamofire Realm RxSwift auサービスTodayで利用しているライブラリ ターゲットiOSバージョンが13に決定 RxSwiftからCombineへの乗り換え SwiftUIの部分導入 画面をまるごとUIHostingControllerで作成する例 UIKitの画面の子要素としてSwiftUIの表示 SwiftUIの部分導入の感想 さいごに 概要 Gunosy社は社名と同じ名前のアプリ「グノシー」のイメージが強いか
広告技術部のUT@mocyutoです。 こちらの記事はGunosy Advent Calendar 2021の4日目の記事です。 昨日は内田さんの その設定、pyproject.tomlに全部書けます - Gunosyデータ分析ブログ でした 今回はApache Hudiを用いたユーザデータ基盤の刷新を紹介します。 背景 仕組み 課題 対応策 データの持ち方を変える Apache Hudiとは 構成 Glue + PySpark Athenaによる抽出 移行し終えて 背景 Gunosyの広告システムではユーザに対して最適な広告を届けるために、接触済みのユーザに対して何度も同じ広告を出さないようにする仕組みを提供しています。 例えば、すでにある広告Aをクリックしたユーザには広告Aは再度配信しないのような設定です。 仕組み この仕組みを実現するためには以下のようなアーキテクチャになっていました
かとうです。ついに住宅ローンを組みました。 こちらの記事はGunosy Advent Calendar 2021の1日目の記事です。 昨年最後の記事はkoidの事業部制組織とCTOでした。 今年もよろしくお願いいたします。 そんな昨年のkoidの記事で、Gunosyのエンジニアリング組織について下記のような説明がありましたが、 現在は事業部制に移行し、Product Owner / Business Owner を中心とした Product Teamを組成しています。(グノシー, ニュースパス, LUCRA, オトクル, Gunosy Ads, Network Ads, ...) 1年たつと状況や組織も変わるものでして、グノシー、ニュースパスなどのプロダクトごとに開発チームを設ける形から、メディア開発部という形に再編をいたしました(下記の図を参照)。 今回はそのような判断に至った経緯や、組
広告技術部の mocyuto です。 緊急事態宣言も解除され、オフィスがあるWeWorkで終業後無料で数種類の生ビールを飲めるのを楽しんでいます。 WeWork移転のお話は以下でも紹介されているので、ぜひご覧ください。 weworkjpn.com 今回は組織内の失敗を共有する文化を作る取り組みに関して1年ほど運用した話を紹介します。 背景 コロナ以前から社内で各チームが過去失敗したことを他チームがもう一度同じように失敗しているということが見受けられていました。 ただ出社していたときは、そのことがあまり大きな障害と感じていなかったのですが、 リモートワークが開始してから直接話す機会が少なくなり知見の共有の場が減ってしまったという実感が大きくなりました。 以前は社内飲み会やクラブ活動などがそこそこの頻度で実施されており、そういう場で話すこともできましたが、 リモートワークになりチーム外との会話
こんにちは、4月に入社しました広告技術部のyamaYuです。今回は21卒新卒ブログの第三弾ということで、私が入社して広告技術部に配属されてからどんなことをやってきたかを紹介します。第一弾、第二弾の記事は ↓ から読めますのでこちらも是非見てみてください! data.gunosy.io data.gunosy.io Gunosyに入る前は何をしていたのか 広告技術部とは これまで触ってきた技術 Go Kubernetes Terraform その他 どんな感じで仕事をしてくのか OJT コードレビュー 1on1 これから Gunosyに入る前は何をしていたのか はじめに私自身のバックグラウンドについて少し書いておきます。 CS系の学科の修士卒で、自然言語処理の研究をしていました。 深層学習を使ってニュースの見出しを自動生成する研究で、Pythonで深層学習のモデルやテキスト処理を実装したり、
メディア開発部の今村です. 最近はグノシーの社内管理画面のリプレイスをしており, Next.js / Go / GraphQL / MySQLという構成で新しい管理画面を作っています. 開発の途中で, 記事検索機能のページネーションを実装する機会がありました. GraphQLサーバーのページネーションについては, RelayというGraphQLクライアントライブラリが要求しているCursor Connectionsという仕様が有名です. 今回はこの仕様を参考にしたのですが, 読めばすぐに意義や実装方法が分かるというものでもなく, 解説記事を読みながら手探りで実装を進めることになりました. そこで, この記事では, Cursor Connectionsの仕様, メリットやGoとRDBを使う場合の実装について説明します. Cursor Connectionsとは オフセットページネーション カ
KPTのファシリテーターをやっていると、たくさんの意見が出てきて時間通りに終わらない悩みを持ったことはないでしょうか? この記事ではファシリテーターが公平にKPTを時間通り終わらせる方法を紹介します。 KPTに対する苦手意識 アライアンスメディア事業部の石田です。 以前は広告の部署に在籍していましたが、今年の6月から異動しました。 異動した部署ではスプリントのふりかえりにKPTを採用しているのですが、今回はそのファシリテーターを務めた話をしたいと思います。 異動の当初、私はKPTに対する苦手意識がありました。 それは膨大なProblemの背景や経緯の把握に非常に時間がかかって会議の時間オーバーが頻発した経験があり、KPTをあまり生産的ではないと思ったからです。 しかし、そういった苦手意識を克服するためにも新しいチームではKPTの改善を思い立ち、ファシリテーターをやってみました。 当時のKP
はじめに Baikal について Baikal を支える技術と工夫 AWS アカウント Terraform ワークフロー基盤 Athena Lake Formation アーキテクチャ Extract & Load データ生成元 AWS アカウントにある RDS からデータ抽出 データ生成元 AWS アカウントにある DynamoDB からデータ抽出 社外の API からデータ抽出 Transform workspace に配置されたデータの変換 データ生成元 AWS アカウント内の生ログ変換 ウェアハウス内での加工 Share 今後の課題 開発の一部を他チームへの委譲 データ異常検知 BI ツールの導入 はじめに DRE チームの hyamamoto です。 新卒の方々が入社されて 4 ヶ月ということで、時の流れの速さを感じています*1。なお、現在、新卒の方々でリレー方式でブログを書いて
広告技術部のUT@mocyutoです Gunosyではニュース記事を配信運用するメディア部門とアプリ上などに広告を配信運用する広告部門があります。 (本記事では「メディア」とはグノシーやニュースパスなどのサービスを指し、「広告」はそのメディアに出す広告を指します。) 今回は広告部門が運用している広告システムのスケールの仕組みについて紹介します。 課題 解決策 仕組み スパイクスケーリング スケジュールスケーリング スケールのロジックを記述 まとめ 課題 メディア側のシステムは各サービスごとにチームが分かれており、それぞれ別のシステムで稼働しています。 しかし、広告側のシステムは単一のシステムで動いており、各メディアの広告配信すべてを担っています。 そのため、サービスが増えるごとにトラフィックが増える仕様になっています。 特に速報などのプッシュ通知をメディアが送信すると一気にユーザはアプリを
こんにちは。エンジニアの石川です。 緊急事態宣言が初めて発令されてから早1年経ち、在宅勤務による在宅での仕事がすっかり当たり前のことになった方も多いのではないでしょうか。 弊社でも去年の最初の緊急事態宣言時に在宅勤務の制度が始まり、会社からも在宅勤務の補助制度があったり、各々が在宅での環境を整えてきました。 先月からオフィスもWeWorkに移転して、今後も在宅勤務が基本の業務体制になりそうです。 そんな弊社メンバーの在宅環境がどのようになっているか、またどのように変わったかを紹介したいと思います。 ちなみに、昨年にも同様の記事がありますので、在宅勤務制度の当初と現在での整い方の変化を楽しめると思います。 tech.gunosy.io 1. シンプル 椅子は良いやつを買った 在宅ワーク始まってから買ったものは椅子と机の hashimoto さん。 椅子は良いやつを頑張って買ったそうです。 机
こんにちは、グノシー事業部デザイナーのsakamotoです。 グノシーではデザインやプロトタイプの作成にFigmaを活用してますが、ここ最近でもオートレイアウト、バリアント機能などがリリースされ、使い勝手が格段にあがり、あらためて乗り換えてよかったと感じています。 もうすぐブランチ機能がつくそうで、ついにデザインにもそういった概念の管理ができるようになることに驚いています。 Join our Designer Advocates along with the designers and engineers who built branching for Office Hours tomorrow to get all of the details about Figma's newest feature. 🔥 Branching Office Hours 🗓Tuesday, May 4
Gunosyでネットワーク広告系のプロダクトを扱っているeastです。今回は、弊社アドネットワークで配信されるクリエイティブ画像の画像変換・キャッシュ配信サービスを構築した話をします。 経緯 今までは無駄に高品質な画像を配信していた 最新の画像フォーマットに対応させたい 画像変換・配信サービスを作ったよ 構成図 変換パラメーターに関して CDNでのキャッシュのされ方 何が良くなったか 画像配信の転送量削減 管理画面で画像アップロードがシンプルに 他のプロダクトでも流用できる 最後に 経緯 今までは無駄に高品質な画像を配信していた 弊社アドネットワークでは様々なクリエイティブ画像が管理画面から入稿され配信されていますが、画像のフォーマットやサイズ・品質は統一されていませんでした。 もちろん、画像容量や画像サイズの制限といった最低限の制約はあります。 しかし、無駄に画質の良い(容量の大きい)画
こんにちは。ひぐらし業を見て毎週心を痛めているふそやん@azihsoynです。 コロナ禍でIT業界ではリモートワークが増えてきて、オンボーディングもオンラインで行うことが多くなってきており、ドキュメントの重要性がさらに増している気がします。 恥ずかしながら弊チームはサーバーサイドのドキュメントが豊富にあるとは言えず、オンボーディングは手書きで構成図を書きながら口頭で説明していました。 そろそろちゃんとしないとと思い始めドキュメントを作り始めたのですが、一番重要なシステム構成図がなかなか描けずに苦労していました。 そもそもなぜシステム構成図が描けないのか? いくつか理由はあると思うのですが、自己分析した結果、 デザインセンスがない 辛い GUIのツールで書いても秘伝のタレ化してしまう 継続的に更新されなさそう → 一回だけの図を描くことになりコスパが悪い などがありそうでした。 自分に向いて
広告技術部の石田です。 RSGT2021での学びをきっかけに、私たちのチームでは一日の業務をモビングとフラクタルという方法で行うようになりました。 しかし、ひとくちにそう言われても具体的なイメージが湧かない人も多いのではないでしょうか。 この記事では、モビングとフラクタルの二つをわかりやすく解説します。 特にフラクタルはなじみの薄い用語なので、まずフラクタルについて図を使って説明した後にモビングの解説をします。 フラクタルを図で解説 それではまずこちらの図をご覧ください。 フラクタルで過ごす一日の流れ フラクタルとは元々は幾何学の概念で、全体とそれを構成する部分が自己相似(再帰)となるものをいいます。 フラクタルスプリントは一日をひとつのスプリントに見立て、その中を同じような構造を持った小さなスプリントで構成します。 私たちのチームでは30分の短いスプリントを一日中繰り返すこと、そして最初
こんにちは。GunosyでCTOをしています、koidです。こちらの記事は Gunosy Advent Calendar 2020 - Adventar の最終日の記事となります。 今回は、事業ごとに Product Owner を中心とした Product Team で組成している Gunosy において、CTOである自分は何をすべきか、この一年悶々と考えトライしてきたことを、(まだ道半ばではありますが)振り返りを兼ねて文字に起こそうと思います。 はじめに 現在のGunosyのエンジニアリング組織 感じていた課題、やりたいこと セルフマネジメントされる組織を目指して そもそも自分はどういうことをしてたんだっけ? QCDのバランスを考え、チームで改善・向上させていく Lead Engineer(ミニCTO)の設置 計測・可視化・振り返り 振り返りの習慣化 振り返りの材料(指標の定義・計測・
この記事は Gunosy Advent Calendar 2020 の 24日目の記事です。Gunosy Adsチームのリードエンジニアの会田です。Gunosy Adsチームでは昨年から配信システムのEKS移行などのシステムのインフラ改善に取り組んおり、この一年はEKSとKubernetes漬けの一年でした。 至近では、クラスタ内のトラフィックの管理のためにサービスメッシュとしてIstioを導入したので、Istioの導入における構成管理の話をしたいと思います。 Istio OperatorとTerraform Istioのインストールは公式から、istioctl による手動インストールと、Istio Operator によるインストールの2つの方法が提供されています。istioctlはIstioのユーティリティコマンドで、Istioのインストールだけでなく、コンフィグの確認などで、Isti
本記事は、Gunosy Advent Calendar 2020 23日目の記事です。 Miroで作ったKPTボード こんにちは。広告技術部の石田です。 みなさんはスプリントの振り返りでKPTをやっていますか? KPTで話が脱線して時間が長引くうちにKPTで話すこと自体がつらくなるKPT疲れを起こしていませんか? そんなKPT疲れから抜け出すために私たちはこの一年間でKPTで振り返りをすることをやめました。 この記事ではKPTをなぜやめたのか・やめてどうなったかを紹介します。 KPTがプロブレム大会になる 私たちのチームでは週に一回会議室を90分押さえてKPTとスプリント計画を行っていました。 四年前に振り返りでKPTをやり始めた頃はそれほどP(プロブレム)の数も多くなかったのですが、次第にプロブレムを話す時間が90分のうちの50分、60分、70分と長くなり、それに伴いスプリント計画に回す
本記事は、Gunosy Advent Calendar 2020 21日目の記事です。 昨日の記事はUT@mocyuto さんの「既存システムをkubernetesに移行して大きくコストカットした話」でした。 はじめに 必要なもの Fitbitのデータを取得するためのトークンを発行する LINE Notifyのアクセストークンを発行する PythonでFitbitのデータを取得する ライブラリの使用方法 実装にあたってのハマりどころ トークンの更新処理 リクエストで取得できるデータの上限 Fitbit-activity-notifier まとめ 参考 はじめに こんにちは。SRE部の板谷(@SItaya5)です。 今日の記事では業務でなく、プライベートで取り組んだことを紹介していきたいと思います! みなさん、Fitbit使ってますか?私は愛用しています! Fitbitはフィットネス用のトラ
次のページ
このページを最初にブックマークしてみませんか?
『Gunosy Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く