every Tech Blog

株式会社エブリーのTech Blogです。

カンファレンス運営1年目の挑戦:成功と課題を振り返る

はじめに

CTO室 Dev Enable グループの羽馬(X: @naohaba70)です。

昨年は私たちにとって、初めて「カンファレンス運営」に挑戦した年でした。

初めて協賛や運営に取り組む中で、成功の喜びや予想外の課題に直面し、多くの学びを得ることができました。この経験は、チームにとって大きな成長の一歩となり、今後の活動の土台を築くものになったと感じています。

この記事では、そんな 「カンファレンス運営1年目」 を振り返り、成功や課題、そしてこれからの展望についてお話しします。特にこの記事が参考になればと思うのは、次のような方々です:

  • 社内で技術広報を行っている方
  • これからカンファレンス運営に挑戦してみたい方

カンファレンス運営のリアルな裏側をお届けします!少しでも皆さんの挑戦のヒントになれば嬉しいです。

スポンサー活動の背景や、カンファレンスブースの取り組みについては、以下の記事で詳しく解説しています。

tech.every.tv

昨年のカンファレンス協賛

昨年は、次のカンファレンスに協賛を行いました:

それぞれのカンファレンスについての参加レポートは、以下のリンクからご覧いただけます:

その中でも、特に印象に残ったのは「Go Conference 2024」と「Vue Fes Japan 2024」です。

印象に残った2つのカンファレンス

Go Conference 2024:初めての協賛、いきなり最高位スポンサーに挑戦

Go Conference 2024は、私たちの会社にとって初めて協賛したカンファレンスでした。この協賛枠は抽選制で、実際に応募したときは「当選しなければ来年改めて挑戦しよう」と思っていたのですが、 運よく当選! しかも最高位の「プラチナGoルドスポンサー」枠でした。

正直、初めての協賛で最高位スポンサーになるのはかなりの挑戦でした。ブーススペースは広かったものの、「どうすれば来場者に楽しんでもらえるか」をゼロから考える必要がありました。試行錯誤しながら、次のような取り組みを行いました:

  • デザイナーさんに依頼し、目を引くブースデザインを作成
  • 広報や人事と連携して、発注や当日の運営をサポート
  • エンジニア有志がブース運営を担当し、直接来場者と交流

さらに、新しい挑戦としてアフターイベントも開催しました。このイベントでは、ブースに来ていただいた方々や他の参加者と技術について深いディスカッションが行われました。また、協賛企業同士の交流も深まり、今後につながる良い出会いが多くありました。

every.connpass.com

every.connpass.com

結果的に、初めての協賛ながら多くの来場者と直接対話する機会を得て、ポジティブなフィードバックを多数いただきました。「挑戦してよかった」と心から感じた瞬間です。

Vue Fes Japan 2024:経験を活かした新たな挑戦

Vue Fes Japan 2024は、会社として3回目のカンファレンス協賛でした。これまでの経験を活かし、企画から運営までスムーズに進行することができました。

今回も新しい試みとして、 他の協賛企業との「プレイベント」や「アフターイベント」 を開催しました。特にアフターイベントでは、エンジニア同士が直接つながりを深める場を提供でき、多くの参加者から「こういう交流の場がもっと増えると嬉しい」といった声をいただきました。

optim.connpass.com

studist.connpass.com

さらに、これまで蓄積してきた知見を活かし、役割分担や運営の効率化が進み、チーム全体に余裕が生まれたのも大きな収穫です。初回の頃と比べてスムーズに準備を進めることができ、各担当が自信を持って運営に取り組めたことが印象的でした。

成功と課題を振り返って

この1年間を振り返り、私たちは以下のことを実感しました:

  • 社内の連携が成功の鍵
    多くの部署やメンバーが関わることで、大きなプロジェクトも成功させることができました。

  • 経験の蓄積が次の挑戦を支える
    初回協賛で得た知見が、次の協賛をよりスムーズで効果的なものにしてくれました。

  • 新しい挑戦が成長を生む
    アフターイベントやプレイベントといった試みが、コミュニティに大きな価値を提供する結果につながりました。

これからの展望

私たちは、今年以降も技術コミュニティへの貢献を続けていきます。カンファレンス協賛だけでなく、エンジニア同士が交流し、学び合える新しい取り組みにも積極的に挑戦していきたいと考えています。

この記事が、カンファレンス運営や技術広報に挑戦してみたい方々の参考になれば幸いです。これからも学びを重ね、挑戦を続けていきます!

2024年の振り返りと2025年に向けて

この記事は every Tech Blog Advent Calendar 2024 の25日目、
締めくくりの投稿となります。
今年も無事完走できたことを大変嬉しく思います。

CTOの @imakei_ です。 本稿では、2024年における当社の技術的進化と組織的成長を振り返りつつ、2025年に向けた展望をお伝えしたいと思います。 昨年の 振り返り と併せてご覧いただくことで、この1年間の変遷をより立体的にご理解いただけるかと思います。

2024年の主要な取り組み

本年は特に以下の3つの施策を重点的に推進してまいりました。

DevEnableグループの創設と技術カンファレンスへの参画

「社内外から憧れられる開発組織の実現」 というビジョンのもと、 DevEnableグループを創設し、技術コミュニティへの積極的な貢献を開始しました。

2023年に試験的に発足した組織活性化委員会を、正式な社内組織として再構築し、DevEnableグループとして本格始動させました。 詳細はこちらの記事をご参照ください。

既存の施策である挑戦WEEK、技術勉強会、TechBlogの取り組みを継続しつつ、 新たな試みとして技術カンファレンスへのスポンサーシップを展開しました。 当社として初めての試みであり、社内でもカンファレンス運営の経験者が限られる中、 GoConference、KotlinFest、VueFes、ISUCON、PHPConferenceという 主要な技術カンファレンス5件への協賛を実現できました。 これにより、長年お世話になってきた技術コミュニティへの恩返しの第一歩を踏み出せたと考えています。

そのほか、新卒研修の実施内定者向けの研修(勉強会) の実施 などより社内の開発組織を活性化する施策も続々と実施しており、 立ち上げて1年経っていない中ですでに弊社のエンジニア組織の文化を形成する良い組織となっています。

生成AIを活用したサービスのリリース

プロダクト面では、弊社として生成AI元年とも言える年となりました。
デリッシュAIのリリースはもちろん、社内向けにも生成AIを活用したサービスをリリースしたり、 PoCやツールの活用程度にとどまっていた生成AIを活用し、プロダクトまで昇華させることができたのは大きな成果でした。
また、来年以降のロードマップでもすでに生成AIを活用したサービスの開発が控えており、
これからさらに開発を加速していきたいです。

弊社の生成AI活用の変遷としては、昨年3月にChatGPTにてGPT-4が有償でリリースされた直後に、エンジニア全員にその利用の補助を出すことを決めたところから、GithubCopilotの導入や、AWS様とのBedrock勉強会、挑戦WEEKでの活用など地道に社内に浸透させてきました。

なかなか大々的に発表できるまで行かないことに自分としてはもどかしさを感じる部分も多く、 他社のCTOの方々にいろいろ相談させてもらった部分もありましたが、
こうしてリリースまで持っていけたのはチームとして生成AIという未来に向き合ったからだと思います。

リテールハブ開発部の発足とデリッシュキッチン開発部長の交代

ブログでも書いた通り、10/1でリテールハブ開発部を新設し、そこの開発部長を私が務めることになりました。
リテールハブ開発部は、これまでデリッシュキッチン開発部で手掛けてきた小売向けのサービス開発に注力をする新しい部門となります。
一方これまで務めてきたデリッシュキッチン開発部長には、2019年新卒の村上に引き継ぐことができました。
組織としてより一層強くなれたこと、また何より新卒が成長し要職になっていただけたことは、 挑戦成長 を掲げる開発組織としてとても嬉しく思います。

RetailHub、デリッシュキッチン共に、さらに成長を加速していきたいです。

2025年に向けて

2024年は、DevEnable・生成AI・新組織など新しい一歩を踏み出した1年でした。
2025年は、それらをさらに加速すると共に、成果にこだわる1年にしたいと思います。
特に生成AIについては、今後のデファクトを自分たちから作り出していく心づもりで、
全事業部でのプロダクト導入を目指していきます。

最後に、昨年のブログで今年のテーマとしていた「採用」についても、まだまだ全然足りていません!
ちょっとでも面白そうと思ってくれた方は、
ぜひ下記からご応募いただくか、X(旧Twitter)でも気軽に声かけてください!
美味しいご飯でも食べながら弊社のプロダクトや開発組織を語りましょう!

サンタさんへ、MySQL5.7から8.4にアップグレードしてください

サンタさんへ、MySQL5.7から8.4にアップグレードしてください
サンタさんへ、MySQL5.7から8.4にアップグレードしてください

この記事は every Tech Blog Advent Calendar 2024 の 24 日目の記事です。

背景

 こんにちは、開発本部 RetailHUB開発部 NetSuperグループに所属するフルスタックエンジニアをやらせていただいています、ホーク🦅アイ👁️です。

リテールハブ事業部

 私の所属しているリテールハブ事業部の話をもう少し詳細にしてみようと思います。

 ネットスーパーシステムは事業継承したので弊社が作ったものではなく、10年以上も前に作られたものがベースになっています。CentOSサーバ内にPHP5.3とMySQL5.6,5.7のLAMP環境で構成されており、クラウドもAWSではなくFJcloud-V(旧ニフクラ)を使っているという一癖も二癖もあるインフラ環境で保守運用がしづらい状況にあります。本チームではようやく、PHPからGoへのリプレイス計画を発進させたばかりです。

 一方でGraphQL+Pythonで動くものやREST+Goで動くもの、REST+Laravelで動くものもありインフラ環境としてはそれらは全てAWSで構築されているのでモダンな部分もあります。そういった複数言語・インフラ環境をエンジニア全員でメンテナンスしていくスタイルを取っているので自ずとフルスタックスキルを発揮することになリます。アプリはクロスプラットフォーム対応したFlutterアプリで開発制作しているのですがここだけは現在専属エンジニアに頼っておりC/S面でのフルスタックは発揮できていないのですが、来年から専属ではなくなるので今からチーム内でFlutter勉強会を開催してスキル習得を目指しています。

 また、プロダクト向き合いが身近で声が通りやすいので企画段階から関わることもでき技術選定もできる用意があるので既存の開発環境に固執せず最適なアーキテクチャや新技術・ツールを使うチャンスがあります。

 私というと普段の業務は本当に幅広く、既存システムの追加開発に始まり小売様からの問い合わせ対応、障害調査&火消し作業、アラート監視、ビジネスサイドの方々とのプロダクト改善・利益増のための施策・企画会議への参加などあります。レガシーかつ機能豊富な巨大システムであるため障害も起きてしまうことがあります。地味にトラブルの迅速対応(調査・解決など)推進力というのは経験豊富なエンジニアでないと発揮しづらい能力なのかなとは思うのでこのあたりの漠然としたスキルをうまく布教できると良いなと最近は思っています。

 最近のトピックとしては、2025年4月より導入の義務化となっている3Dセキュア2.0認証にいち早く対応させました。2025年1月以降順次導入小売様よりスタート予定です。

 さて、実際にリプレイスを行うにあたりいずれ必要になるであろう作業としてMySQLのアップグレードがあります。これは単純に2024年12月現在、AWSではMySQL5.7系のRDS、AuroraがEOLを迎えているからです。なのでまずは今のインフラ構成のままでMySQL8系にアップグレードしてみたらどうなるのか、案外簡単にできるのか?!を試してみたので以降で話させていただきます。

MySQL8.4について

  • 公式MySQLが8.4をLTSに指定
  • AWS Aurora次期メジャーバージョン互換対象の可能性が高いのではないか

 こういった点から、現在AWSがサポート中のMySQL8.0系ではなくいきなり8.4にあげてみることにしました。

MySQL5.7利用中のシステムに導入してみる

 前提としていきなり本番環境に適用はできないので開発用に手元でDockerコンテナを利用したローカル開発環境があるのでそれを使ってアップグレード作業を行います。また、MySQL8.4サーバ設定ファイルは一旦デフォルトのままにします。

DBバックアップとリストア

 まず、MySQL5.7側のデータを全てダンプします*1

# on MySQL 5.7
$ mysqldump --single-transaction --skip-lock-tables -p -h127.0.0.1 -P33306 -uappuser -B app_test 
> app_test_dump20241224.sql

 次に、MySQL8.4側に先ほどのデータを全てリストアします。

# on MySQL 8.4
$ mysql -p -h127.0.0.1 -P33308 -uappuser < app_test_dump20241224.sql

問題1

 ここで、MySQL8.4にリストアすると以下のようなエラーメッセージが出てしまいました。

ERROR 1118 (42000) at line 1224: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

 ここで解決策を色々調べてみると先ず、MySQL8.0からinnodb_file_formatが廃止され内部的にBarracuda固定になったようなのでその設定変更は不要でしたのでこれは原因ではなかったようです。次に、ダンプファイルの中身を実際に見てみるとROW_FORMAT=COMPACTになっているCREATE文が32個あったのでROW_FORMAT=COMPRESSEDに全置換しました。そして再度リストアコマンド実行したところ今度はエラーが出ずに成功しました!

  • 参考)

問題2

 システムとデータが入ったMySQL8.4を接続してシステムが動作するかいざ試そうとすると、今度は以下のエラーが出て接続失敗となりました。

Client does not support authentication protocol requested by server; consider upgrading MySQL client

 どうやら、MySQL8.0からデフォルトになった認証プラグインcaching_sha2_passwordに対応できてないエラーでした。この認証プラグインは結構大きな落とし穴でMySQL8.4では設定ファイルで有効化すれば使うことができました。また、MySQL9.0以上になると完全にmysql_native_passwordプラグインが廃止となって使えなくなります。

 そこで、解決策としてデフォルト設定だったmy.cnfに以下を追加して再起動しました。

[mysqld]
mysql_native_password=on
authentication_policy=mysql_native_password,,

 再起動後に以下のSQLクエリで確認するとACTIVEに変わっており有効化に成功したのでさらに、pluginカラム値を変更します。この時、パスワード変更もしなければならないので注意です。BY以下を省略してしまうと空文字列のパスワードになってしまいます。また、FLUSH PRIVILEGESを実行しないとプラグイン変更が反映されないのでこれも注意です、このせいで私もさらに詰まっていました。

mysql> SHOW PLUGINS;
'mysql_native_password','ACTIVE','AUTHENTICATION',NULL,'GPL'

mysql> SELECT user, host, plugin FROM mysql.user WHERE user='appuser';
+---------+------+-----------------------+
| user    | host | plugin                |
+---------+------+-----------------------+
| appuser | %    | caching_sha2_password |
+---------+------+-----------------------+
1 row in set (0.00 sec)

mysql> ALTER USER 'sha2user'@'%' identified WITH mysql_native_password BY '[新しいパスワード]';
+---------+------+-----------------------+
| user    | host | plugin                |
+---------+------+-----------------------+
| appuser | %    | mysql_native_password |
+---------+------+-----------------------+
1 row in set (0.00 sec)

mysql> FLUSH PRIVILEGES;

問題3

 ここまででようやく接続までができたので今度こそクエリ発行をしてみようとネットスーパーユーザ向けTOPページにアクセスしてみたら今後は以下のエラーが出てページ表示ができませんでした。

General error: 1525 Incorrect DATETIME value: '0000-00-00 00:00:00'

 調べていくとSQLモードのデフォルト設定を変更しなければならないことがわかりました。

The default SQL mode in MySQL 8.4 includes these modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, and NO_ENGINE_SUBSTITUTION.

  • 参考)

 上の引用文から8.4ではsql_modeのデフォルト値は6つあり厳密モードが有効化されていたので起きたエラーでした。したがって、解決策として権限が一番緩い設定にしました*2

  • 参考)
  • 参考)

 解決策としてmy.cnfに以下の設定を追加して再起動するとエラーが出なくなりました。

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION

問題4

 今度こそTOPページを表示させる!という意気込みでページのリロードを試みましたが、残念またもエラーが出てしまいました。

Error Code: 1525. Incorrect DATE value: '--15'

 --15は、PHP側のバグでした。以下のコード例のように日付を年、月、日という変数から生成している箇所があり、そこで年と月の変数値が空文字列になっていたのでこのような文字列が生成されてその後date変数値が日付前提で後続処理していたのでそこでコケていたのでした。

$date = sprintf(“%s-%s-%s”, $year, $month, $day);

 具体的には、MySQL側にSELECT文発行する際のWHERE条件句右辺にこのdate変数をそのまま渡しておりそこでコケると出るエラーでした。MySQL8.0.16以降はDATE型の比較演算対象の型チェックが厳密になったらしいです。一方でそれ以前のバージョンだったMySQL5.7の既存システムではこのバグ状態の変な文字列を右辺に渡していても正常クエリのレスポンスが返ってきていた*3と思うとゾッとしますね...後は、PHPのバグを修正して正しいクエリを発行させたら解決です。

  • 参考)

 これでようやくTOPページが表示されました!

総括

 本記事では、AWSリプレイス前段階としてMySQLサーバのバージョン5.7からバージョン8.4への挑戦について話しました。弊社提供のネットスーパーシステムは多くの機能を持つのですが、現状ではTOPページを表示させることができたに過ぎず今回のようないくつかの問題はまだまだ氷山の一角に過ぎないと予測しておりこれから長い検証を行っていかなければならないと思っています。例えば、SQL_CALC_FOUND_ROWSというクエリ発行が散在しているのでこれらを全てCOUNT()関数に置換していくというコードリファクタリングが見えていたりします*4。なお、代替案のCOUNT()関数で処理速度が遅くなるバグが報告されており、バージョン8.0.37以降で改善されたそうです。

  • 参考)

 今後は、2024年11月21日に正式版がリリースされたAmazon RDS for MySQL8.4で動作検証できた時のお話ができればと思いつつ、これにて本記事の結びとさせていただきます。

最後に

エブリーでは、ともに働く仲間を募集しています。

テックブログを読んで少しでもエブリーに興味を持っていただけた方は、ぜひ一度カジュアル面談にお越しください!

corp.every.tv

Merry X'mas!🎄

六本木一丁目駅降りて直ぐの六本木グランドタワー駅前広場のイルミネーションツリー
六本木一丁目駅降りて直ぐの六本木グランドタワー駅前広場のイルミネーションツリー

*1:コードブロックにあるコマンド類は本記事用に適当な名称やポート番号などに書き換えています

*2:この点、後で気付いたのですがMySQL5.7でもデフォルトだと厳密モード有効なのでシステム利用の設定ファイルには既に無効化設定が入っていました。よって、8.4だから起きるエラーではないです

*3:もちろん無条件として解釈されます

*4:MySQL8.0.17以降非推奨となっていますが、8.4.3現在でも発行自体は可能でした

Amazon QuickSightのTips

はじめに

この記事は every Tech Blog Advent Calendar 2024 の 23 日目の記事です。

こんにちは、開発本部のデータ&AIチームの24新卒の蜜澤です。

4月に入社して以降Amazon QuickSight(以下quicksight)を社内で最も利用したので、quicksightで開発をしてきた中で身につけたTipsを紹介します!
本記事の内容はquicksightの細かな機能について触れるので、quicksightを使い慣れている方に向けた内容となっております。

使用する模擬データ

レシピ動画サービスのレシピ毎のインプレッション数とクリック数の模擬データを使用します。
模擬データなので簡略化のために4~6月の各月の1~7日のデータのみになっております。

  • date:日付(2024/04/01~2024/04/07,2024/05/01~2024/05/07,2024/06/01~2024/06/07)
  • recipe:レシピ名(ハンバーグ・からあげ・生姜焼き)
  • click:ある画面でレシピ動画のサムネイルがクリックされた回数
  • impression:レシピ動画が表示された回数

※dateに関してはquicksightにデータを入れる際にデフォルトで「Apr 1, 2024 12:00am」という形式になってしまうので、表示形式を「YYYY/MM/DD」に変更しています。

さらにこのデータを月毎に集計した以下のデータも使用します。

  • date:日付(2024/04~2024/06)
  • recipe:レシピ名(ハンバーグ・からあげ・生姜焼き)
  • click:ある画面でレシピ動画のサムネイルがクリックされた回数
  • impression:レシピ動画が表示された回数

YYYY/MM形式の日付データを絞り込む際のハマりどころとその対処法

まず、日付を絞り込むために開始日と終了日を指定するStartDateとEndDateというパラメータを作成し、dateカラムに対してStartDateとEndDateの間というフィルターを追加します。
さらに、StartDateは開始日、EndDateは終了日という名前でコントロールを作成しておきます。

パラメータやフィルターに関しての説明は本記事の範疇ではないため説明を省きます。
私が以前執筆したこちらのブログで解説しているので、パラメータやフィルターに関して詳しく知りたい方はご覧ください。

以下のようにコントロールで指定した範囲の日付のデータのみが表示されます。

日付の集計粒度が「日」の場合はこのやり方で問題ないのですが、集計粒度が「月」になると想定外の挙動になる可能性があります。

月毎集計したデータの開始日を2024/04/01、終了日を2024/05/31にすると、以下のように4月と5月のデータが表示されて問題ありません。

次に開始日を2024/04/02に変更すると、5月のデータのみしか表示されません。

なぜこのようなことが起こるのかというと、冒頭の模擬データの説明でも少し触れましたが、quicksightでは日付データ(Date型のデータ)は「Apr 1, 2024 12:00am」という形式になってしまいます。
2024/04という月のデータであっても「Apr 1, 2024 12:00am」という形式になって、2024年4月1日という判定になってしまいます。
表示形式はYYYY/MMのように変更ができますが、データ自体は「Apr 1, 2024 12:00am」の形式のままです。
そのため、フィルターの期間に1日が入っていない場合はその月のデータが表示されないという現象が起きてしまいます。

対策法はいくつかあります。
簡単なものだと、

  • そもそも期間を指定するときに1日は必ず入れるようにする
  • dateをDate型ではなくString型にする

などがあります。

しかし、1日を必ず入れないといけないというの周知させるのが大変、String型にするとコントロールで日付選択ツールを使用できなくなってしまいコントロールに日付を入力しないといけなくなるといった問題が生じます。

ということで、これらの問題を解決しながら、各月の日付が入っていたら1日が入っていなくても、その月のデータを表示できるようなフィルターを作成する方法を紹介します。

まずは以下のような「日付フィルター」という名前の計算フィールドを追加します。

やっていることとしては、
extractを使用して日付からYYYYとMMを抽出しYYYYMMという文字列を作成して、StartDateとEndDateの間にmonthがある場合のみ1を返すようにしています(それ以外の場合は0が返ってきます)。
YYYYに100をかけている理由は、1をかけない場合だと2024/01が20241になってしまい、2023/12~2024/01のような範囲を指定した場合に、202312よりも20241の方が小さくなってしまい、正しく範囲を指定できなくなってしまうのを防ぐためです。

次に、日付フィルターに対して以下のようなフィルターを設定します。

1と等しいというフィルターを設定することで、日付フィルター計算フィールドの条件を満たすデータのみが表示されるようになります。

これらの設定をすることで、開始日を2024年4月2日にしても4月のデータが表示されるようになります。

2.グラフタイトルに相対日付の◯月を入れる方法

先ほどのデータを使用して、日付をコントロールで変更するのではなく、相対日付を設定して先月や3ヶ月前などの各レシピのデータを閲覧できるビジュアルがあると想定し、そのタイトルに「◯月のデータ」のようなタイトルをつける方法を紹介します。

「先月のデータ」や「3ヶ月前のデータ」のようなタイトルにするならば、プロパティからタイトルの編集をしてタイトルを変更すれば良いですが、相対的に変わる「◯月」をタイトルに入れることはできません(毎月手動で変更するならできるがやりたくはないはず)。

そこで、かなり周りくどい方法になってしまいますが、Highcharts Visualを利用して「◯月」を擬似的なタイトルに入れる方法を紹介します。

まずは以下のような「月」と「タイトル」という2つの計算フィールドを追加します。
toStringでDate型のmonthをString型にして、substringで日付のMMの部分を抽出します。
if文でMMが10,11,12の場合は2文字抽出して、01,02のような場合には1文字のみ抽出して0を除外するようにしています。

concatを利用して、divタグと月計算フィールドと「月のデータ」という文字列を結合しています。

次に、Highcharts Visualを追加し、グループ化の条件に、先ほど作成した「タイトル」を選択します。

そして、Chart codeに以下のコードを書いて、「APPRY CODE」をクリックします。

{
  "title": {
    "useHTML": true,
    "text": ["get", ["getColumn", 0], 0],
    "style": {
            "fontSize": "18px", 
            "fontWeight": "bold",
            "color": "#000000"
    }
  }
}

そうすると、以下のようなテキストのビジュアルが作成されます。

このままでは幅が大きすぎてタイトル感がなくなってしまうので、最後にスタイルを調整します。
編集→分析設定→Sheets Settingsと進み、「フリーフォーム」を選択し、「適用」を押します。

フリーフォームにすることで、ビジュアルを重ねたり、好きな幅に調整したりとスタイルの微調整ができるようになります。
調整をするとこんな感じになります!

なんとかタイトルと呼べる見た目になると思います!

3.データポインタホバー時に出現するカードのカラム名を変更する方法

模擬データを使用して、レシピごとのクリック数を比較する折れ線グラフを作ると以下のようになります。

軸名と凡例は元のカラム名を参照するため、カラム名と同じ英語表記になっています。
これを好きな表記にするには、プロパティから対応する項目を変更します。
例えばX軸の場合は、プロパティのX軸のタイトルを編集すればX軸を好きな名前に変更できます。
Y軸や凡例もプロパティからタイトルを変更すればOKです!

ただし、ここで名称を変更してもデータポインタにカーソルを合わせたときに表示される以下の赤枠の部分の名前は変更することができません。
(凡例は「レシピ名」、Y軸は「クリック数」になっていますが、recipe、clickのままになっている。 )

データのカラム名を変更すれば良いのですが、簡単に変更できない場合もあると思います。
そんなときに、カラム名を変更せずに表示名を変更する方法を紹介します。

まず、計算フィールドに名前を変更したいフィールドを記入し、計算フィールドのタイトルに変更後の名前を記入します。

その後、グラフで指定するフィールドを今作成したものに置き換えます。
これだけで以下のように名前を変更することができます。

4.ビジュアルの枠線削除

ビジュアルをクリックすると以下のような枠線が表示されます。

これはダッシュボードを公開してもビジュアルをクリックすると枠線が表示されます。
ビジュアルをクリックしてもこの枠線が表示されないようにする方法を紹介します。

まずは、先ほども登場した「フリーフォーム」に変更します。
変更すると、プロパティのディスプレイ設定に「選択」という項目が出現するので、「選択」の目のアイコンを押して斜線がついた状態にすれば、ビジュアルをクリックしても枠線が表示されなくなります。

枠線削除後は以下のようになります。
分析ではクリック時に白い四角が表示されますが、ダッシュボード上では見えなくなります。

さいごに

本記事ではquicksightのかなり細かなTipsを紹介させていただきました。
使用頻度はかなり低いと思いますが、いつか誰かの役に立てれば嬉しいです!
最後まで読んでいただきありがとうございました!

PHPカンファレンス2024 最速参加レポート

title

エブリーは2024年12月22日(日)に大田区産業プラザPiOで開催されたPHPカンファレンス2024に参加させていただきました。

今回は参加レポートとして、会場の様子やセッションの感想についてお届けします!

エントランス
スポンサー
セッションホール
スポンサーブース

イベント概要

PHPカンファレンスは、PHP関連の技術を主とした日本最大級の技術者カンファレンスです。2000年に日本のユーザ会によって初めて開催され、今年で25回目という記念すべき開催となりました。

イベントには約1,000名以上の参加者が集まり、エンジニア同士の交流や最新技術の発表で熱気に包まれていました。会場は技術愛好家の熱量と笑顔にあふれ、PHPの魅力を共有する空間となっていました。

今回のイベントは、これからPHPをはじめる方から、さらにPHPを極めていきたい方まで、幅広い層のエンジニアが楽しめる内容となっており、まさに「PHPの今と未来」を体感する1日でした。

phpcon.php.gr.jp

セッションの感想

PHPの今とこれから2024

今年のPHPカンファレンスで特に印象に残ったのは、PHP 8.4に関するセッションでした。2024年は、日本のエンジニアコミュニティがPHPのコア開発に大きく貢献した年であり、その裏話も興味深く聞けました。

今回発表された新機能の中で特に注目したいのは以下の3つです:

  • JITの大幅な進化:IRフレームワークが導入され、実行速度が18.5%向上。PHP 8.0から始まったJITがさらに強化され、パフォーマンス改善が期待されています。
  • プロパティアクセスフック:オブジェクトのプロパティアクセスを柔軟に制御できる新機能。実際のコード管理が大きく改善されそうです。
  • 遅延オブジェクト:オブジェクトを必要になるまで初期化しない仕組みで、メモリ効率を向上。特に大規模プロジェクトでの恩恵が大きい機能です。

その他、まだまだ新機能があり、PHP 8.4のリリース内容を読み込まないといけないと感じました。

www.php.net

そーだいさんに聞く!コミュニティとともに在るエンジニアの良いキャリアの歩み方

キャリア形成に関するセッションも大きな学びがありました。そーだいさんの講演では、特に「今日から始められること」の重要性が強調されており、キャリアを前進させるための具体的なアクションが提案されていました。

今日からできること

  • コミュニティ活動への参加:勉強会での発表、懇親会での交流を通じて、自分の存在を周りに知ってもらう。
  • ライフステージに合わせたキャリア設計:「カレイドスコープ(万華鏡)キャリア」の考え方を紹介。キャリアは一直線でなく、多様な経験を活かすことが大切だと話されました。
  • アウトプットの実践:ブログ執筆やOSSへの貢献が、自分自身の「名刺」になるとのこと。

技術だけでなく、人的な繋がりを築くことの重要性を改めて感じたセッションでした。

fortee.jp

スポンサーブース紹介

エブリーでは、 DELISH KITCHEN などのサービスに加え、小売業者向けのデータ連携サービス retail HUB の開発・運用にPHPを活用しています。
retail HUBは、小売業のDXを推進するサービスです。詳細はこちらをご覧ください!

PHPを活用する中で多くの恩恵を受けている私たちも、コミュニティのさらなる盛り上がりに貢献するため、スポンサーとして協賛させていただき、ブースを出展しました。

「なぜエブリーが協賛しているのか?」については、こちらのブログもご覧ください! → PHPカンファレンス2024協賛の理由

ブース

エブリーでは、今回も弊社が提供するDELISH KITCHENのサービスをイメージしたブースの雰囲気を作りました。多くの方からDELISH KITCHENをを使っていますとの声をかけていただき、とても嬉しかったです。

ブース

ノベルティ

今回もDELISH KITCHENにちなんだノベルティを用意させていただきました。

  • ステッカー
  • DELISH KITCHENグッズ
  • CTOブレンドのコーヒーバッグ

ノベルティ

DELISH KITCHENグッズに関してはXフォローでの抽選プレゼントキャンペーンを行いました。DELISH KITCHENグッズに関してはたくさんの商品があるのですが、その中でも人気のある商品を中心に5つ準備させていただきました。参加者の方々にも好評で多くの方に参加していただけました!

アンケート

今回、アンケートでは『PHPの好きなところ』と題して回答をしてもらいました。付箋に内容を記述して貼っていただく形式を取ることで様々な意見をいただくことができ、コミュニケーションのきっかけとなり会話が活発になりました。回答いただいた多くの皆様、ありがとうございました!

アンケートボード
アンケート結果

各社スポンサーブースの様子

スポンサーブースでは、各社趣向を凝らしたブースが展開されました。

クイズやアンケートボード、コードレビューなど様々な企画が用意されていて、会場全体が賑わっていました。

また、スポンサーブースでは、各社のエンジニアと直接話すことができる機会もあり、普段なかなか話すことができないような話もできてとても楽しかったです。

転職DRAFTさんのブースでは「あなたが会社を選ぶ時の軸を教えてください」と題して特色別の仮想3社からどの会社を選ぶかというアンケート企画を行なっていました。参加者からの様々な観点が書かれており、その中でも一緒に働く人を大事に考えられている方が多いように見受けられとても興味深かったです。

PR TIMESさんのブースでは PHP8.4 にちなんで ストップウォッチを8.4秒で止めると景品がもらえるという企画を行っていました。PHPの最新バージョンに絡めたとても面白い企画だと思いました。

スタンプラリー企画

各ブースを巡るスタンプラリー企画も実施され、多くの参加者が積極的に各ブースを訪れていました。

スタンプラリー

まとめ

PHPカンファレンス2024 運営の皆様、参加者の皆様、本当にありがとうございました!

PHPカンファレンス2024は、25年の歴史を感じさせる充実した内容のイベントでした。最新技術や実践的なセッションだけでなく、エンジニア同士の交流やコミュニティの大切さも改めて実感できました。

今回学んだことを基に、まずはPHP 8.4の新機能を活用したプロジェクトを始める予定です。また、PHPコミュニティのイベントや勉強会に積極的に参加して、さらに知識を深めていきたいと思います。

次回のカンファレンスにもぜひ参加し、引き続きPHPの進化を追いかけたいと感じました!