サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
developer.feedforce.jp
以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"
こんにちは!アジャイル推進室のえーちゃんです。 社内でアジャイルプラクティスのワークショップやってみたり、導入のサポートを行っています。 今回は社内でレゴスクラムをやってみたのでそのレポートです! 実施経緯 レゴスクラムとは? タイムスケジュール 全体スケジュール 街のコンセプト作り スプリント 準備物 アンケート感想 内容の難易度 今後の活動に活かせそうか? その他頂いた感想 ファシリテーションをやってみての感想 レゴの自由度 ロール設定 タイムテーブル その他当日の様子 実施経緯 2 月に、社内に新しい中途のエンジニアとデザイナーの方を 1 名ずつ迎えることになりました。 スクラム経験があまりない方だったので、ざっくりでもスクラムの知識を学べると良さそうという話になりました。 座学の研修でも良かったんですが、せっかくなら新しく入った方のコミュニケーション面も含めてワークショップ形式で学
Webアプリケーションは変化してゆくもの。時間と共に適切な設計は変わってゆきます。 RDB のスキーマも変化を免れることはできません。 当然、Webアプリケーションを稼働しながらのスキーマ変更になりますから、 サービスを止めない データ欠損を起こさない そんなスキーマ変更が求められます。 スキーマ変更時に発生し得る問題 問題へのアプローチ スキーマ変更時に発生し得る問題 例えばカラム名を変更したいとしましょう。 A というカラム名を B という名前に変更します。 alter table tablename rename column A to B; ただリネームするだけであれば、こんな SQL で事足ります。けれど、その実行タイミングについて考えてみましょう。 カラム名を変更するためには、Webアプリケーションを古いカラム A を参照しているコードから、新しいカラム B を参照するコードに
年の瀬の風物詩といえば、Rubyのリリースです。先日Ruby 3.3がリリースされましたが、このほどEC Boosterでは、Rubyのバージョンを3.0から3.2へとアップデートしました。一つずつ上げろよという話もありますが、ともあれアップデートできたのはよいことです。 今回は、そのRubyアップデートの途上で出会ったトラブルをご紹介します。事象としては、特定のサーバからのファイルダウンロードができなくなった、というものでした。 EC Boosterにおけるファイルダウンロードの重要性 EC BoosterはECカートシステムからECサイトの商品データを取得し、Google ショッピング広告などの運用を行うサービスです。 ecbooster.jp ECカートシステムとの商品データの連携方法には、大きく分けて「APIにより取得するもの」と「ファイルで受け渡しを行うもの」があります。後者の具
この記事は、Feedforce Group Advent Calendar 2023の1日目です。初日から縁起でもない題材を選んでしまった感はありますが、どうかお付き合いください。 フィードフォースでは、サービス運営上のトラブルがあったときに、「障害レポート」と題して報告書を作成します。きっと他社でもインシデントレポートとか事故報告書とか、名前を変えて同じような取り組みがあるかと思いますが、今日はその障害レポートを作成する上で、わたしが気をつけていることをご紹介します。 この記事で特に伝えたいポイントは、次の3つです。 読者の視点で情報を再構成する パラグラフ・ライティングで書く 事実と意見を書き分ける 障害レポートの目的 フィードフォースにおける障害レポートの作成と活用の目的は、障害に関する情報を整理し、正しい意思決定をすることです。障害レポートの作成が始められるのは、障害発生を把握した
この記事は、Feedforce Group Advent Calendar 2022 の16日目の記事です。 昨日は、アナグラム田中さんによる「クラス制のキャラ育成ができるRPGってキャリア形成のそれと似ているな...って思っただけの話」でした! note.com 私はつい最近、フロントエンドエンジニアからスクラムマスターに社内で「転職(ドラクエ的表現)」したところでして、学生時代のアルバイトで貯めていた経験なんかが意外なところで活きたなぁと感じていたところがあったため、とてもしっくりくる内容でした! また、運用型広告というジョブのアビリティの豊富さ・プレイスタイルの幅広さが視覚的に表現されており、運用型広告というジョブの魅力がガッツリ伝わってきました。 余談ですが、自分も赤魔道士大好きです。 何の話なんだろう?と思った未読の方、是非本文を楽しんでください! まえがき 本記事では、この 1
こんにちは。自称 Looker エバンジェリストの id:masutaka26 です。 この記事は Looker Advent Calendar 2022 の 5 日目の記事です。 qiita.com 昨日と一昨日は記事がなくて、その前は BASE 永野さん (@glassmonekey) の「アジリティを保ってデータ基盤を作る取り組み」でした。使用した技術そのものよりも、どのように合意形成してこのような体制に出来たのかが気になりました。👀 今回は奇しくも去年の Advent Calendar その後の話になります。全然狙っていませんでした。たまたまです。 developer.feedforce.jp LookML のレイヤー化とは 導入戦略 実際の導入方法 /_base.layer.lkml /_basic.layer.lkml /layers/*.layer.lkml /*.mode
こんにちは。自称 Looker エバンジェリストの id:masutaka26 です。 フィードフォースで Looker を使っているサービスで最近 BigQuery の料金が上がってきました。 本当に使われているのならとても良いことですが、Looker のキャッシュが有効に使われずに BigQuery 料金が増えていたら嫌だなと思い、キャッシュの仕組みを思い出しつつ実装を整理してみました。 Looker のキャッシュおさらい 今回のサービスでのキャッシュ設定 変更後のキャッシュ設定 さらなる足掻きからの失敗 もっと足掻いてからの困惑 まとめ さらなるキャッシュへの理解 Looker のキャッシュおさらい Looker にはキャッシュの仕組みがあり、LookML 開発者が適切に設定することで、データベースのクエリ実行を減らすことができます。 全く同じ SQL の実行結果がキャッシュされてい
こんにちは id:masutaka26 です。 本日、週次の社内勉強会 FFTT で『引っ越ししたら家賃が3分の1になったかも』というタイトルで、実際は Amazon CloudFront + Heroku で動いていた自分のブログを GCP の Cloud Run に移行した話をしました。 モチベーションはスライドにつらつら書きつつも、実際はこの FFTT の発表当番だったからではあります。結果的に満足行く結果にはなったので、これからコード管理などもう少し作り込んでいきます。今後ネタに困ったらまた引っ越せばよいし。 Cloud Run もそうですが、Google Domains や Cloud Monitoring の外形監視(稼働時間チェック)など、便利でライトに使える GCP を知ることが出来たことも収穫でした。 それでは良い週末を!(^^)/ 2022-11-04 追記: 個人ブロ
こんにちは。自称 Looker エバンジェリストの id:masutaka26 です。 今日は Spectacles というツールを導入して、Looker インスタンスの健全性を高められた話を紹介します。 Spectacles とは 4 種類のテスト 基本的な振る舞い どのテストを採用し、どのような課題を解決したのか SQL validation Assert validation Content validation LookML validation どのような GitHub Actions にしたのか CI workflow Schedule workflow 落ち穂拾い 作業ブランチのゴミが残ることがある マシンユーザーを作るか作らないか まとめ Spectacles とは Spectacles は Looker のサードパーティ CI ツールです。継続的に各種テストを実行し、Lo
こんばんは id:masutaka26 です。 本日、Looker User Meetup Online #8 で『BigQuery経由で使うGoogleスプレッドシートのスキーマ管理』の話をしてきました。Looker User Meetup は 5 回目の参加、発表は初めてです。 いくつかネタはあったのですが、今回のテーマは「Lookerまでのデータデリバリー、みんなどうしてる?」ということもあり、この 2 年で確立した方法を紹介することとなりました。 bq CLI ではなく、terraform で管理している方もいらっしゃいました。terraform の更新に追随するのはそれなりに大変だと思いますが、これならスキーマ定義と、実際のスキーマの差異検知は出来そうですね。 「dbt seed」を使っている方もいらっしゃるようでした。今回 2 つの発表があった dbt ですが、全く触ったことが
こんにちは id:hano_tea です。 真・Google Ads API 徹底入門の第三弾、 Mutate 編です。 前回の真・Google Ads API 徹底入門第一弾、第二弾は以下からどうぞ。 developer.feedforce.jp developer.feedforce.jp 今回は Google Ads API で Google 広告に変更を加えるための仕組み Mutate について解説します。 今回もこれまで同様、 Ruby クライアントライブラリを使用している前提での解説になります。ご了承ください。 目次 目次 Mutate とは オブジェクトを作る Operation とは Operation オブジェクトを作る もうちょっと複雑な Operation 複数のオブジェクトをまとめて変更する 実際にオブジェクトを作ってみる Operation に関する Tips プ
こんにちは、id:masutaka26 です。先週に引き続いてのブログ更新です。 Ruby や JavaScript などのプログラミング言語では、依存関係を管理することでコードの再利用性を高めるとともに、バグの少ないコードを書くことが出来ます。ただ、LookML はプログラミング言語ではないため、同じ方法が使えません。 今回は LAMS という LookML Linter を導入することで、LookML の再利用性を高める糸口を見つけました。LAMS を紹介しつつ、その知見を共有します。 LAMS とは 導入方法 ルールの免除 LookML の再利用性を高められた F1 ルール 注意事項 まとめ LAMS とは LAMS (Look At Me Sideways) は LookML のスタイルガイドと Linter がセットになったツールです。準公式のツールなのかな? github.co
こんにちは、id:masutaka26 です。 今回は少し前に社内に共有した記事を、このブログでも共有します。Looker は Ruby や Python 等のプログラミング言語よりはユーザーが少ないはずで、質問相手がいないと本当に困ります。この記事がその一助になれば幸いです。 ググる チャット 問い合わせフォーム Looker Community (en) Looker Community (ja) Slack Looker User Group - Japan 番外編: 製品についてのアイディアがありますか? まとめ ググる さすがにこれは基本ですね。💦 公式ドキュメント に誘導されることもしばしばです。これが結構よく出来ています。looker table calculation などと英語でググると、解決にたどり着きやすいかもしれません。 マニアックなテクニックとして、ググった U
ソーシャルPLUS の id:mashabow です。今回は、個人で開発している Slack アプリ Rota を OAuth に対応させたときに、へーっと思った話の紹介です。 ちなみにこの Rota は、指定した曜日・時間が来るたびに、ローテーションを順次お知らせしてくれる Slack アプリです。 github.com 経緯 この Slack アプリ Rota は、Slack 公式が出している Bolt というフレームワークを使っています。 slack.dev Slack アプリを任意のワークスペースにインストールしてもらうためには、OAuth に対応させる必要があります。今回は Bolt のおかげで比較的簡単に対応できたのですが、その中で出てきた stateSecret というオプションがどう使われるのか、いまいちわかりません。Bolt のリファレンスには CSRF 攻撃を防ぐために
こんにちは、id:masutaka26 です。 Looker を使い始めて 3 年目に突入しました。変わらず Feedmatic という広告運用コンサルティングのデータ整備をする毎日です。 今回はここ 1 年の懸案だった LookML Validation の堪え難い遅さを改善出来たので、共有します。 2 年間でコード量が肥大化した LookML Validation が堪え難いほど遅くなった My LookML Validator is slow! TL;DR Quick wins Long answer Bonus note include を最適化したら半分弱の時間になった まとめ 余談 追記: LAMS を使って wildcard include を禁止する 2 年間でコード量が肥大化した 2 年前と比べて Feedmatic プロジェクトの .lkml ファイルがものすごく増え、
こんにちは データサイエンティストの八百俊哉です。 今回は画像上に存在する文字を自動的に削除し、背景を補完する仕組みを作成しました。ただ、弊社のプロダクトに実装される可能性が極めて低いので、自由研究の結果としてここに残そうと思います。 弊社のサービスはインターネット広告と深く関わりがあり、インターネット広告に関する分析を実施することが多いです。今回はインターネット広告の画像に関する調査を実施したので、その結果を共有します。 背景 インターネット広告では、商品画像上にプロモーションのロゴや行動を促すフレーズが入っている場合、不承認とされ広告表示されなくなる可能性があります。 プロモーションが入った商品画像の例 support.ecbooster.jp 商品数が少ない場合や再度商品の写真を用意できる場合は、商品画像の差し替えが可能ですが、そうではない場合はプロモーションが入っていない画像をい
こんにちは データサイエンティストの八百俊哉です。 最近は花粉が飛んでいることを感じています。目がかゆい。 今回はdfplus.ioの操作ログを用いてクライアントの行動パターン変化を検知する仕組みを作成し、社内で有効活用された事例がありますので、その手法と成果を紹介します。 弊社のサービスdfplus.ioはマーケティング・広告運用チームのためのデータフィード管理ツールになります。様々な商品・商材データをマーケティングでフル活用できるようになるサービスです。 分析背景 dfplus.ioでの解約理由の一つに「クライアントの担当者が変更する際に引き継ぎがうまくできず、dfplus.ioの使い方がわからなくなってしまう」というケースがありました。 dfplus.ioカスタマーサクセスチーム(※以下CSチーム)では、クライアント側から事前に担当者の変更のご連絡を頂いた場合は新しいご担当者様にdf
こんにちは id:masutaka26 です。 本日、週次の社内勉強会 FFTT で『ボッチLookML開発者兼データ整備人を連れてきたよ!』というひどいタイトルの発表をしました。 2020 年 4 月から Looker に関わって得たことをまとめた内容であるとともに、1 年半近く前からのアップデートになります。 developer.feedforce.jp 世に出ている Looker の情報はキラキラしているものが多く、ツラい話をそれほど目にしません。絶対にあるはずなのに!😭 それならば!とツラい話や解決が困難な話を散りばめさせてもらいました。課題が共有されて初めて知見が役に立つと思いますからね。解決した課題もあるよ(小声)。 それでは良い週末を!(^^)/
こんにちは、id:masutaka26 です。 この記事は Looker Advent Calendar 2021 の 13 日目の記事です。 qiita.com 昨日は Yappli 阿部さんの「Lookerの目標値やストップワードを、Googleスプレッドシート連携でお手軽管理【Sexy Tech for You #9】」でした。Looker を使うとこのような LookML を書くだけで、ビジネスユーザーが SQL を書くことなく、本業に集中できるのはとても良いですよね。 個人的には、SQL ベースの派生テーブルの中で join するよりも、explore で join したほうが Looker らしく、メンテナンス性が良い気がしました。symmetric 集計が働くため、ファンアウトも避けられます。wikipedia テーブルに関しては、永続的な派生テーブル(PDT)を使って Bi
こんにちは、 id:kogainotdan です。 現在私は新規事業開発のチームで、飲食店支援のサービスの可能性を探索しています。 飲食店、ひいてはローカルビジネスの運営において、集客施策として重要とされるのがGoogleマイビジネスの活用です。 ナレッジパネルやローカル検索において表示されている情報は、ユーザーとしても見たことがある方が多いと思います。 喫緊の話題としては、緊急事態宣言の前後における営業時間や営業形態の変更の正確な反映が、見込み顧客の取りこぼしを防ぐと共に店舗自体への信頼感の醸成にも役立つものと考えられます。 そんなGoogleマイビジネスですが、Googleの他のサービス同様にAPIが存在します。 ただし、まだGeneral Availableではない様子で、フォームによる利用申請が必要となるのですが、 Googleマイビジネスの管理画面で出来る操作の多くをサポートして
こんにちは、ソーシャルPLUS チームの id:mashabow です。 社内勉強会 FFTT のネタとして、ESP8266 で Wi-Fi 温湿度センサーを作り、グラフ化してみました。普段はフロントエンドの開発をしているんですが、ちょっと別のことをやってみようかと思いまして。電子工作に入門して、AWS IoT Core とか AWS Amplify を使ってみた記録です。 グラフ:https://main.dt7p4lkfvt2c8.amplifyapp.com/ リポジトリ:https://github.com/mashabow/uchino-sensors 詳しくはスライドをご覧ください。 Q&A 勉強会で出た質問です。 Q. Wi-Fi のパスワードってどうしてるんですか? A. ESP8266 へ書き込むプログラムの中に、そのまま埋め込んでいます。 Q. どれくらいのサイズのプロ
こんにちは、id:daido1976 です。 先日 GitHub Packages を使ってプライベート gem を社内限定で公開したので、その方法をご紹介します。 GitHub Packages とは 既存のプライベート gem と GitHub Packages との違い GitHub Packages を使ってプライベート gem を社内限定で公開する gem をリリース(Publish)する方法 ローカルからリリースする CI からリリースする 各環境へのインストール方法 ローカルや本番環境でのインストール Dependabot でのインストール 関連記事 GitHub Packages とは github.co.jp GitHub Packages はライブラリ(パッケージ)のホスティングサービスです。 Ruby の場合 https://rubygems.org の代わりに ht
こんにちは、id:mashabow です。この記事は、Shopify開発を盛り上げる Advent Calendar 2020 の 8 日目にあたります。昨日は minozo さんの「ShopifyでARを実装する方法(2020/12版)」でした。 現在弊社では、ソーシャルPLUS の Shopify アプリ版を開発しており、わたしは埋め込みアプリ(Embedded App)のフロントエンド担当です。わかりやすく言えば、マーチャントの方に触っていただく設定画面を作っているわけです。 そんな設定画面に必要不可欠で、かつ意外と厄介なのがフォームの実装です。今回は、フォームの状態管理に @shopify/react-form というライブラリを使ってみました。この記事では、その @shopify/react-form の使い方を紹介したいと思います。 フォーム管理ライブラリを選ぶ 前提として、フ
ソーシャルPLUS の開発チームでインフラエンジニア をやっています id:mayuki123 です。今月からフィードフォースから分社化をした株式会社ソーシャルPLUS の所属となりましたが、仕事内容は変わらずにサービスのインフラ改善を進めていく事になるかと思います。 2019年11月に技術スタックを整理してみたという記事から2年弱経過していますが、ソーシャルPLUSのインフラ環境は、一部アプリケーションについてはコンテナ環境を Amazon EKS にホスティングして本番運用するようになりました。あと数ヶ月ほどで全ての環境がEC2からコンテナに置き換えられると良いなと思っています(願望)。 developer.feedforce.jp そして、既に利用されている機能の一部を Amazon EKS に移行して、しばらく経過した時にアプリケーションでネットワークエラーが稀に発生していました。
こんにちは、id:masutaka26 です。 先週はまるっと夏休みにしてました。今日からまた Looker と戯れる日々が始まります。 丸1年 Looker と戯れてきて最近ようやく、Join 先の view でも primary_key が壊れてないことを保証するテストの書き方が分かったので、今回紹介します。 Looker における primary_key の役割 primary_key の実装例 LookML 開発におけるテスト Join 先の view は primary_key をテスト出来ないことがある Join 先の view の primary_key をいい感じにテストする まとめと所感 おまけ Looker における primary_key の役割 Looker には Symmetric Aggregates という、合計を重複させない素晴らしい仕組みがあります。以前こ
こんばんは、徳川家y id:masutaka26 です。 以前紹介したように、去年から Looker を使ったウェブ広告数値の可視化や BI *1 に取り組んでいます。 LookML 開発者として LookML を書き始めて困ったのが、Looker の情報が少ないように見えたことです。 LookML を含む Looker のドキュメントは充実しているのですが、それらを組み合わせた応用的なフロー情報が少なく感じました。ビジネスユーザー向けの情報も同様です。 現在は網羅的、かつ集約した情報を取得できているので、その方法をご紹介します。 「情報源」をリストアップする 少し脱線... 「情報源」の取得方法への課題 今はどうなったか? 「Looker Community」のフィードが存在した件 「Looker の記事一覧 | DevelopersIO」のフィードを作った件 まとめ 追記 「情報源」を
こんにちは、インフラエンジニアの id:tsub511 です。実は去年の 1 月から 1 年間育休を取っており、今年の 1 月から復帰していました。 復帰してから記事を書くのが遅くなってしまいましたが、社内勉強会で話したスライドや育休から復帰してみてどうだったかをまとめてみました。 社内勉強会で話した 今年の 3 月頃に社内の技術勉強会 FFTT で発表しました。 (技術勉強会という立て付けですが、技術に限らず本人が話したいことを話して良い場です) なぜ一年間の育休を取得したのか、育児の知見などがスライド内に書いてありますので気になる方はご覧ください! ちなみに当時のスライド内ではねんねトレーニング (ネントレ) をやっていると書いてありますが、実は現在はやってません。 理由はネントレの効果が見られなくなったためです。 今年の 4 月くらいから寝付きが悪くなり、胸や背中をトントンしないと寝
こんにちは id:masutaka26 です。いよいよ明後日は RIZIN.28 ですね!東京ドームで MMA(総合格闘技)のイベントが行われるのは、約 17 年半ぶりだそうです(Wikipedia 調べ)。ドキが胸胸します。 本日、週次の社内勉強会 FFTT で『ここがつらいよ普段使いのLinux』という発表をしました。タイトルは違いますが、気にしないで下さい。 Mac が重い時に IME 切り替えが一瞬遅れて、例えば「feedforce」とタイプする時に「ふぇえ...」になる現象に悩まされていました。 そこで約 10 年ぶりに Windows PC を購入して、同じく約 10 年ぶりに Linux を普段使いし始めました。 数々の諸問題が発生しましたが、無事全部解決(?)したお話です。 キーボードショートカットがつらい タッチパッドがつらい 指紋認証出来なくてつらい たまにスリープから
次のページ
このページを最初にブックマークしてみませんか?
『Feedforce Developer Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く