サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
techblog.gmo-ap.jp
こんにちは。 GMOアドマーケティングのR.Sです。 今回は、IDがオートインクリメントされないテーブルを作成する方法を紹介したいと思います。 IDを指定したいときや、IDカラムを使わずに他のカラムをプライマリーキーとして使いたいとき用の手順です。 動作環境 Ruby 3.1.4 Ruby on Rails 7.0.4 テーブルを作成する 基本は通常のテーブル作成手順と同様です。今回はItemテーブルを作成してみます。 まずは下記のコマンドを実行します。 $ bundle exec rails g model Item 作成されたマイグレーションファイルを修正します。 このとき注目すべきポイントは3つです。 id: false として、オートインクリメントされるIDカラムが作られないようにする t.column というメソッドでIDカラムを追加する(任意のカラム名で良い) ‘INTEGER
GMOソリューションパートナーのA.Sです。 以前、Sony製モーションキャプチャ―のmocopiを購入したのですが、動画制作や配信などをやっていないので、いまだ活用できていない状況です。何かしらやらないと意味が無いので、普段触ることが多いWebブラウザで何かできないかを考えてみました。 mocopiのセンサー 見た目◎ 何を作るにしてもmocopiのデータをブラウザで読み取る必要があるので、今回は表示した3Dモデルを動かすところまでをやってみます。 モチベーション mocopiを使ったWebアプリを考えたい ブラウザの機能を調べてできることを増やしたい 実装方針 重要な点を先に書きますが、ブラウザ単体でmocopiデータを制御することはできませんでした。 mocopi自体はBluetooth接続なので、Web Bluetooth APIでゴニョゴニョすればどうにかなるかもと思ったのですが
こんにちは。GMOアドマーケティングのR.Mです。 はじめに 弊社が運営するコーポレートサイト・自社サービスサイトは、ユーザビリティ・SEO評価向上のためGoogleが提供するPageSpeed Insightsで定期的にサイトの評価をチェックしています。 分析レポートの「改善できる項目」のうち「次世代フォーマットでの画像の配信」の項目について、デザイナーとして改善に取り組める部分かと思いましたので、その実施プロセスを紹介します。 「次世代フォーマットでの画像の配信」をすることで何を実現するか WebPやAVIFなどの画像形式は、一般的にPNGやJPEGより圧縮率が高く、ダウンロード時間やデータ消費量を抑えられます。この画像形式での配信により、パフォーマンスの改善を実現します。 WEBページ表示速度のユーザビリティへの影響 2017年の少し古いデータにはなりますが、Googleの調査では、
こんにちは。GMOアドマーケティングのT.Mです。 はじめに スクラムガイド2020についての記事を書いてから3年、、、改めてスプリントゴールについて考え、実践を行っています。 スプリントゴールの設定や実践して感じたことを記載します。 スプリントゴールとは スプリントゴールとは、スプリント内でチームが達成しようとする目標のことです。 以下の効果があると考えています。 一貫性と集中を生み出す。一致団結した作業を促す。 スプリントゴールの立て方と運用 スプリントゴールは、スプリントプランニングのときに立てています。 いったんスプリント内で行う予定のタスクを優先度、工数を加味して列挙し、このスプリントで本当に必要なことを絞ります。 絞ったタスクで達成したいことを期間内に具体的になるように検討し、スプリントゴールと定めています。 検討する際は下記のことを意識しています。 スプリントプランニング時点
こんにちは、GMOアドマーケティング インフラ開発部のhakumaiです。前回の記事「AWS SAPを取得したら視野が広がった話」を読んでいただいた方々、ありがとうございます。今回のテーマは「AWSエンジニアから見たGCP」第2弾として、代表的なGCPのコンピューティング系サービスについてAWSと比較し感じた点についてお話いたします。 (第1弾の記事はこちら↓)IaaSCompute EngineAWSではEC2に相当するサービス。各種インスタンスタイプや提供OSイメージ、インスタンス向けのストレージ機能、オートスケール機能など、インスタンスのアーキテ... DWH BigQuery BigQueryはフルマネージドなサーバレスDWHサービスで、Googleが開発した大規模データ向けの分散システムであるDremelを基にしておりSQLクエリを使用して大規模データの分析を行うことができる。さ
GMOアドマーケティングのT.Oです。 今回は画像生成AIである、Stable Diffusionでポーズ指定を試してみます。 Stable Diffusionは、2022年にリリースされた主にテキスト入力から画像を生成する画像生成AIです。 0.前提 Stable Diffusion WebUI(AUTOMATIC1111)をローカルインストールしていること。 1.モデルのインストール Stable Diffusionでは画像を生成するためにモデルを使用します。モデルにはポーズの指定がしやすいモデルとそうでないモデルがあるようです。ここでは比較的ポーズの指定がしやすいモデルであるanything V5をインストールすることにします。 まずはcivitaiにアクセスしてアカウントを作成しログインします。 次にanything V5のページにアクセスして”AnythingV5_v5PrtR
はじめに GMOアドマーケティングの吉岡です。 前回はCloudWorkflowsを紹介しましたが、BigQueryにあるレポートをCloudSQLにインポートするWorkflowsを作成することができました。 引数に日付を指定して別にインポート過去分のレポートを実行するのに一括で実行したかったので、調査しました。 Cloud Workflowsとは? Cloud Workflowsとは、Google CloudとHTTPベースのAPIサービスをサーバーレスワークフローと統合するサービス。 詳細はこちら→ Cloud Workflows公式ページ どんなことができるかは前回の記事を参照ください。 一括実行するためには以下の4つが必要だと思います。 コマンド実行できること 引数を指定できること スクリプト作成 実行環境 コマンド実行 コマンドに関してはこちらのgcloud workflows
こんにちは。GMOアドマーケティングのH.Tと申します。 担当しているプロダクトでセキュリティチェックの一環として現在受け付けているリクエストのTLSバージョンや暗号スイートを洗い出す必要がありました。 GCPのロードバランサのカスタムヘッダという機能から確認できたのでご紹介します。 システム構成は以下のような感じです。 External HTTP(S)load balancer → サーバレスNEG → Cloud Run(Goアプリ) 以下Cloudコンソールでの手順になります。 先に公式ドキュメントを読みたい方はこちら 1. ロードバランサ一覧より対象のロードバランサ名をクリックして詳細を開く。 2. 「ロードバランサの詳細」画面から「編集」を開く。 3. 「バックエンド サービス」で対象バックエンドの鉛筆アイコンから「バックエンド サービス」の編集を開く。 4. 下の方にスクロール
こんにちはGMOアドマーケティングのy.yです。 データベース設計において正規化と非正規化はどちらも データの整合性とパフォーマンスに大きく影響を与える重要な要素です。 今回はその正規化、非正規化について書きたいと思います。 データベースの正規化とは レコードの整合性と管理をしやすくするための手法です。 正規化には、第1正規化、第2正規化、第3正規化等があり、不要な重複を排除することで整合性を確保することができます。 正規化を行うことで、整合性を高めることができますが正規化をしすぎるとテーブルの数が多くなりすぎ管理が難しくなる場合があります。 適切な正規化を行い、整合性を確保することが大切になります。 データベースの正規化はどういった時に? 重複レコードが多い場合 テーブルに同じレコードが複数登録されている場合、重複を排除するために正規化を行います。 重複レコードがあると整合性が損なわれ、
数日で終わるようなタスクは、全体の進捗感を把握するのは容易で、リリース予定日と実際のリリース日に大きな差は生まれません。しかし大きなタスクとなると、「自分が今全体の何%完了しているのか?」、「それは予定通りなのか?」などをきちんと可視化して共有することが重要です。
皆さんこんにちは。 GMOアドマーケティングのR.Aです。 この度、社内でSlackアプリとChatGPTを連携させ、Slack上から気軽に利用できるようにしてほしいと 要望があったため実装を行いました。 今回は、実装までの流れについて説明させていただきます。 完成後の動きについて まずは、完成後の動きについてイメージしていただきたいと思います。 今回作成したアプリ宛にメンションをつけ、質問を行うとスレッド内で返信が返ってきます。 続けてスレッド内で返信を行うと対話形式となります。 仕様は以下の通りです。 前提 対話が行えるBOTとしてChatGPTを使用する1問1答形式ではなく、文脈の理解が必要 仕様 BOTとの会話は必ずメンションをつけて行うメンションでBOTを呼び出し、そのメッセージのスレッドでBOTが解答する 開発の流れ 今回開発を行った流れは以下となります。 ①Slackアプリの
こんにちは。 GMOアドマーケティングのT.Cです。 今回は、VPC Peeringを利用してGCPのプロジェクト間のVM to VM, VM to MIGの通信をしてみます。 VPC Peering 2つのVPCネットワークを繋いで、各ネットワーク内のリソースが相互に通信できるようにします。 GCPの同じプロジェクト、同じ組織の異なるプロジェクト、又は異なる組織のプロジェクトで通信可能です。 VPC Peeringの利点 Low Latency: 外部アドレスではなく、内部アドレスを利用するのでより早くなります。 Security: 内部アドレスを利用するので、セキュリティ(public internetを経由しない)にもいいです。 Network Cost: public internetを経由しないため、publicへのegress料金を節約できます。通常のネットワークの料金は発生し
この記事を執筆したのは2023年の3月末ごろですが、まさにこの月は生成AIの歴史の転換点として今後語り継がれるだろうと思うくらい、毎日毎日さまざまなニュースが舞い込んできました。
こんにちは。 GMOアドマーケティングの@zakisanbaimanです。 GMOアドマーケティングのDMPサービスであるMinervaはGKEを利用しているのですが、Googleから以下のメールが届きました。 Kubernetes v1.26 以降にて GKE クラスタに引き続きアクセスするためには、gke-gcloud-auth-plugin という新しいバイナリを Kubectl(および Kubernetes カスタム クライアント)とともにインストールする必要がございます どうやら1.25以前で利用していた認証方法が利用不可になり、代わりに新しいプラグインを利用して欲しいとのことのようです。 なぜ認証方法が変わるのか? 背景を知ることは作業の精度を上げるためにも重要です。 KubernetesはOSSであり、OSSをそのまま使ったりサービスプロバイダー(GCPのGKE、AWSのEK
GMOアドマーケティングでインフラを担当するK.Aです。 クラウド環境が整ってきた近年、とはいえまだまだサーバにSSHログインする状況が多いかと思います。 そこで今回は、現在シェアNo.1と思われるVSCode(Visual Studio Code)を使いリモート開発環境を整えてみました。 尚、今回VSCodeのインストールについては、既に完了しているものとします。 また、特に注意書きがない場合はWindows 10環境での動作を記載しています。ご了承下さい。 拡張機能の追加 下記の手順でVSCodeに拡張機能を追加します。 VSCodeを起動したら、アクティビティバーより「拡張機能」を選択(ショットーカットキー:Ctrl+Shift+X)上部テキストボックスに「remote」と入力表示されたリストから「Remote Development」を選び「インストール」をクリック 以上の操作で、
はじめに こんにちは。 GMOアドマーケティングの石丸(@thomi40)です。 前回はRails 7で追加されたComparisonValidatorについて紹介しました。 この記事は GMOアドマーケティング Advent Calendar 2022 3日目の記事です。はじめにこんにちは。GMOアドマーケティングの石丸(@thomi40)です。前回の記事では Rails 7 から実装された query_log_tags について紹介しました。今回の記事では同じく Rails 7 から追加された ComparisonValidator について紹介します。※記事内の画像は筆者が作成したアプリケーションをキャプチャーしたものです。ComparisonValidatorとはComparisonValidator は任意のオブジェクトの比較を行うバリデーターです。数値の比較には Numeric
初めに こんにちは、GMOアドマーケティングのryoutakoです。 普段はRuby on Railsを使った開発やプロダクトの脆弱性診断などセキュリティ関連の仕事をしています。 今回のブログはRuby on Railsのdevise Gemについての内容です。 経緯 みなさんはRuby on RailsのGemをオーバーライドして実装したことはあるでしょうか?さまざまな理由で独自の機能を追加したくなり、オーバーライドした経験のある方も多いと思います。 私も最近開発をしていてdeviseのDevise::SessionsControllerをオーバーライドする機会がありました。そしてその際にdeviseのコード(特にnewメソッド)を読み込んだのでその内容を本ブログで共有します。 今後devise Gemのオーバーライドをする方のお役に立てれば幸いです! deviseとは deviseはR
GMOアドマーケティングのT.Kです。担当しているサービスで1回のリクエストに対するレスポンス内に複数のURLを含んでいます。URLには共通のパラメータと固有のパラメータがあり、セキュリティーの観点からそれらのパラメータを結合してから暗号化を施して1つの巨大なパラメータ値にしていました。暗号化したデータはGZIP圧縮と相性が悪く圧縮率が低かったです。 ブロック暗号のCBCモードは1ビットでも変化すると、それ以降の暗号文すべてが変化します。逆に言えば共通のパラメータを先頭に配置して結合する事で、暗号文も途中までは同じになり圧縮率を改善出来ます。 検証 前提条件 下記コマンドを使えるようにインストールしてください openssl gzip bash シェルスクリプト #! /bin/bash # 暗号化に使用するKEYとIV KEY=$(openssl rand -hex 16) IV=$(o
GMOアドマーケティングのK.Mです。 AIによる情報の探し方が変わる革命となるChatGPTは久々に衝撃を受けた方も多いと思います。 Alexa対応デバイスに対して質問しても、ちょっと良くわかりません。とサンドウィッチマンのコント風に回答が得られない事が多く殆ど使っておりませんでしたが、ChatGPTはコードまで生成してくれます。 誰の時間も奪わずに聞けるので仕事の進め方がかなり変わります。 社内の問い合わせフォームに、ChatGPTのAPIで投げて回答が得られない場合、システム窓口に問い合わせください。となる日も近そうです。現状は回答が間違いの場合もあるそうで、正確性が求められる業務では正解が判断できる問い合わせ担当の方が補助的に使う方が良さそうですが、回答の引用元リンクがあるBingなら正解を知らない人も正解かどうか判断しやすそうです。 参考:Chat GPTはもう時代遅れ?Bing
こんにちは、GMOアドマーケティング GMOSSP開発担当の@KazuakiMです。 前回の「GitHub Actionsへの移行」はいかがだったでしょうか、CircleCIも非常に優れたサービスですが、GitHubとGitHub Actionsのシナジーはやはり素晴らしいものがあるなと常々思っています。 すっかり秋になり、お鍋が恋しい季節になりました。どうもお久しぶりです、GMOアドマーケティング GMOSSP開発担当の@KazuakiMです。 GMOSSPでは最近、CircleCIからGitHub Actionsに移行した事から、その情報をお伝えできたらと思います。 GMOSSPでは配信をPHP、集計などをGo言語で実装している事から、 今回はPHPのGitHub Actionsの実装例となります。そもそもGitHub Actionsとは?継続的インテグレーション/継続的デリバリー(C
window.addEventListener('DOMContentLoaded', (event) => { // 実行したい処理 console.log(`DOMContentLoaded: ${new Date().getMilliseconds()}`) let image = new Image(); const src = "https://placehold.jp/e60613/ffffff/150x150.png?text=画像"; image.addEventListener('load', function() { document.getElementById("background-image-test-content").style.backgroundImage = 'url(' + src + ')'; console.log(`image load com
GMOインサイトのカネテックです。ゲーム開発、アプリ開発を担当しています。 今回は言語、開発環境に適した.gitignoreを一撃で生成できるコマンド、giboを紹介します。 インストール方法 Mac
この記事は GMOアドマーケティング Advent Calendar 2022 25日目の記事です。 みなさんこんにちは、GMOアドマーケティングの星野です。 今年のアドベントカレンダーも本日で最後です! GMOアドマーケティングはアドテクノロジー(アドテク)をメインにしたプロダクトを展開しています。 最終日は、アドテクでは避けては通れない話題、「プライバシーサンドボックス」について書いていきます。 Cookieが使えなくなるみたいな話はなんとなく知っているけど、どうして使えなくなるのかの背景や具体的にどういう使い方ができなくなるのかなどは曖昧な方も多いと思います。 そういった方に向けて基本的な内容について解説をしつつ、今年発表された最新情報もまとめていきます。 「Cookieが使えなくなる」とは? 「Cookieが使えなくなる」は正確ではなく、正しくは、「3rd Party Cookie
この記事は GMOアドマーケティング Advent Calendar 2022 24日目の記事です。 こんにちは。GMOアドマーケティングのH.Tと申します。 今回はBigQueryの連携クエリを試してみたのでご紹介いたします。 連携クエリとは BigQueryからCloud SpannerとCloud SQLデータにクエリを実行できる機能になります。(公式ドキュメント) 現状私の担当しているプロダクトでCloudSQLのデータをバッチ処理でBigQueryに同期し運用の分析に使用しています。 こちらの機能を使って同期処理を廃止できないかと思い試してみたのですが本当に簡単な設定だけでSQLが実行できました。 以下手順になります。 ※こちらの機能を試すにはGCPアカウントを開設する必要があり、BigQueryは有料サービスとなります。 料金についての詳細はBigQueryの公式ドキュメントを
この記事は GMOアドマーケティング Advent Calendar 2022 23日目の記事です。 こんにちは、GMOアドマーケティングの平木と申します。 今回は、非エンジニアPdMの自分が、Vertex AIで広告配信用の機械学習モデルを作成してみた体験について書いていきたいと思います。 Vertex AIとは Vertex AIとはGoogle Cloud Platform 上における機械学習プラットフォームで、データの前処理からモデル構築、予測やデプロイまでを一元的に行うことができるプラットフォームです。 Vertex AIのAutoML を使用することで、コードを書かずにGUIベースの操作のみでモデルをトレーニングすることができるため、学習を兼ねて広告配信用の機械学習モデルを作成してみました。 何を予測する機械学習モデルを作成するか 今回は、広告配信用の機械学習モデルとしてより初
はじめに この記事は GMOアドマーケティング Advent Calendar 2022 21日目の記事です。 おはようございます。こんにちは。こんばんは。 GMOアドマーケティングのY-Kです。 今回は、 「最近話題の自然言語処理の機械学習のモデルを自分でも軽く触ってみたい! でも、難しいこと書かれててわからない(号泣)」 という層に向けて、 数ある自然言語処理モデルの中でも有名なBERTモデルを使って、文同士の意味の類似度を計算するという簡単なタスクを難しいことは極力置いといてやっていきます。 準備 今回もGoogle Colab上で行います。 https://colab.research.google.com/?hl=ja BERTの学習には時間と膨大な学習データ、豊富なインターネットリソースが必要なので、 Hugging Face上で公開されている学習済みBERTモデルを利用してい
この記事は GMOアドマーケティングAdvent Calendar 2022 20日目の記事です。 みなさんこんにちは、GMOアドマーケティングのM.Hです。 今回はXAIの一つである「SHAP」というライブラリについて、自然言語処理向けの機械学習モデルの観点から書いていこうと思います。 はじめに 昨今ではもはや聞き馴染みとなった「機械学習」や「AI」ですが、そのモデルはコンピューティングシステムの計算能力の向上と共に加速度的な速さで複雑化してきています。もちろんそのようなモデルを使ってビジネスに貢献ができれば嬉しいのですが、モデルの中身に関してはブラックボックス化されていることがほとんどで、「何が要因となってこの結果がもたらされたのか?」という部分はなおざりになりがちです。 機械学習のビジネス利用が当たり前に行われるようになった今日では、こういった原因や要因に関して人間がわかる形で示そう
この記事はGMOアドマーケティング Advent Calendar 202219日目の記事です。 こんにちはGMOアドマーケティングのy.yです。 今回は2022/12/06, 07に開催されたGMO Developers Dayで発表をした 『「GMO SSP」のクラウド移行(GCP)、失敗と成功をまとめてみた!』の内容になります。 時間の関係上で発表できなかった内容も少しだけ追加しています。 SSPというのは広告をリアルタイムにWebコンテンツに配信するシステムです。 接続しているDSPやアドネットワークの広告の中で、一番単価が高く ユーザーにマッチした広告をリアルタイムに配信します。 GMOSSPというのはGMOアドマーケティングにて提供している インターネット広告を配信するSSPプロダクトです。 GMOSSPは自社運営にてコンテンツ集客に特化した 広告配信DSPの「ReeMo」と国
この記事は GMOアドマーケティング Advent Calendar 2022 18日目の記事です。 こんにちは、22新卒のGMOアドマーケティングの天河です。 みなさん、普段スケルトンスクリーンローディングはどうやって実装していますか? こういうやつ 大体の方は、ライブラリでクラスぽいっと入れ込んで、秒で実装完了!という感じですよね。 仮にそのライブラリを使用せず、生のJavaScriptとCSSのみで書けって言われたらどうでしょう。 ということでさっそく書いてみました。 完成 HTML <div class="_article _article_skelton"> <div class="_article_art_img"></div> <div class="_article_content"> <div class="_article_art_title"></div> <div
次のページ
このページを最初にブックマークしてみませんか?
『GMOアドパートナーズ TECH BLOG byGMO』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く