サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
techblog.kayac.com
🎄この記事は【カヤック】面白法人グループ Advent Calendar 2024の18日目の記事です 🎄 こんにちは!ハイパーカジュアルゲームチーム・エンジニアの深澤です。 WebGPU の Compute Shader で Curl Noise を計算し、パーティクルの位置を更新してみました。 スクショは、MacBookPro M1で100万個のパーティクルを動かしたものです。 画像をクリックするとデモに飛びます。 WebGPU で実装しているため、Chromeのみの動作となります。 デモURL: https://takumifukasawa.github.io/webgpu-particle-compute-shader-curl-noise-demo/ リポジトリ github.com 目次 動機 Curl Noise 概要 特徴 計算 本記事で触れること / 触れないこと 全
この記事はMackerel Advent Calendar 2024 の17日目です。 こんにちは、SREチーム所属の@mashiikeです。 今年のMackerel Advent Calendarは、OpenTelemetry関連の記事が多くて私も流行りに乗ろうかと思いましたが、ネタが間に合いませんでした! この記事では、Mackerelの機能の中でも個人的に一押しのグラフアノテーションについて、弊社内での使い方の事例を紹介します。 グラフアノテーションとは グラフアノテーションは2017年1月にリリースされた機能で、サービスやロールに関連する注釈をグラフ中に記述することができる機能です。 mackerel.io 上記の画像では、私が作成しているOSS prepalertを使って、グラフ中に関連するMackerelアラートを注釈として記入しています。 前年の今の時期に、アップデートでカス
本記事は面白法人グループアドベントカレンダー2024の17日目の記事です。 こんにちは!意匠部のおばらです。 普段の業務では、受託案件のアートディレクション&フロントエンドのテクニカルディレクションなどを担当しています。 さて、カヤックでは日々様々な社内向け勉強会やワークショップが自主的に開催されています。 本記事ではこれまでに開催されてきたエンジニア・デザイナー向けのおもしろ勉強会&ワークショップを一挙にご紹介します! エンジニアリング WebGL 勉強会 JavaScript コードゴルフ勉強会 デザイナー向けJavaScript 勉強会 デザイン デザイナー向け Photoshop & Illustrator タイムアタック勉強会 色彩検定勉強会 Blender モデリング勉強会 ものづくり レーザーカッター勉強会 板金加工ワークショップ 食品サンプルワークショップ 町工場巡りワーク
はじめに 🎄この記事は【カヤック】面白法人グループ Advent Calendar 2024の16日目の記事です🎄 こんにちは。カヤックアキバスタジオのp_chinと申します。 今回はニッチな気がしますが表題の仕組みをOpenUPMで公開したので紹介します。 openupm.com 使い方 使い方 作った経緯 元々10年以上前から仕事で所属した案件にもっと簡易的な実装で導入して(多分自分だけは)便利に使用してまして、今回ブログを書く機会にこれの実装を整えて公開する事にしました。 また ちょうどUnityのcustom packageを公開する経験もしておきたかった 毎回プロジェクトにコピペするよりはpackageとしてinstall出来た方が便利 の様な利点も多かったのでやってみました。 類似製品がすでにあるんじゃない? もしかしたらガッツリUnity Editor上でgitコマンドの
技術部 フロントエンドエンジニアの村上です。 面白法人グループアドベントカレンダー2025 15日目の記事になります。 今回は、2024年4月にカヤックに入社したフロントエンドエンジニア5名に向けた勉強会を、新卒自身で進めるという取り組みについて書きたいと思います。 背景 入社して半年した頃、エンジニアが2人ずつ自由なテーマで発表する社内勉強会が始まりました。 新卒の自分にとっては知らない技術やテクニックを知る良い機会になっている一方で、ReactやNext.jsなど業務で馴染みのある技術については「基礎的な知識があればもっと発表内容を吸収できるのではないか」と思いました。 また自分の順番が回ってくると発表テーマに悩むことがあり、新卒にとっての発表ハードルは少し高いかもしれないと感じました。 「新しい技術をキャッチアップする時間を作る」「仕事での知見を共有する」など、勉強会を実施する目的は
はじめに この記事は【カヤック】面白法人グループ Advent Calendar 2024の12日目の記事です。 こんにちは、カヤックボンド所属のサーバーサイドエンジニアの朝倉と申します。 本記事のテーマはLaravel filamentを用いた管理画面作成です。 管理画面を簡単に作れるFilamentの基本的な使い方と要件をちゃんと決めずに見切り発車したらぶつかってしまうFilamentならではの問題を書いていきたいと思います。 Laravel Filamentとは filamentphp.com まずPHPのフレームワークとしてLaravelがあり、その拡張パッケージがFilamentです。 管理画面を作るための機能を豊富に持っています。 また、今回は触れませんがサーバーサイドの記述のみでフロントの動的な制御をする機能も用意されています。 環境構築 環境構築についてはこちらを参考にさせ
カヤック 技術部でフロントエンジニア・プランナーをしてますゆうもやです。 面白法人グループアドベントカレンダー2024 11日目記事です。 皆様「Web Share API」をご存知でしょうか?Webページからアプリに直接画像やテキストをシェアできる非常に便利な機能です。 カヤックでは診断やジェネレーター系コンテンツを多く制作しているため、このAPIを頻繁に活用してきました。 www.kayac.com しかし、最近一部のスマホで期待通りに動作しないケースが増えているのをご存知でしょうか? Web Share APIとは Web Share APIは、Webページから直接画像やテキストをシェアできるAPIです。 主にスマートフォンで使用し、診断コンテンツ等で診断結果の画像をX等に直接シェアするのに役立ちます。 developer.mozilla.org ブラウザで画像を生成することで、OG
技術部の長田です。 このエントリは面白法人グループ Advent Calendar 2024の6日目の記事です。 みなさん、ふだん技術系の最新情報ってどこから手に入れているでしょうか? 私は家事育児の忙しさにかまけて自力での情報収集をサボり、もっぱら社内Slackの情報を頼りにしています。 コンテキストが近い人達がわざわざ共有してくれる情報ということで、精度は間違いありません。 が、そろそろ自分も共有する側に回れるようにならないとなということで、 まずは社内のエンジニアにどうやって情報を得ているのかを聞いてみることにしました。 アンケートを取ってみた と、いうことで社内のエンジニア向けに以下のようなアンケートを取ってみました。 期間: 11/25〜12/1の1週間 アンケート内容: 職能(フロントエンドorバックエンド) 情報源名 情報源のURL その情報源を参照する目的 コメント 結果、
この記事はdbt Advent Calendar 2024および、Kayac Group Advent Calender 2024の4日目の記事になります。 こんにちは、その他事業部SREチーム所属の@mashiikeです。 背景 2024/10/30にAWS からAmazon Redshiftの素晴らしいUpdateが発表されました。 aws.amazon.com 自動コピーを使用して Amazon S3 から Amazon Redshift へのデータ取り込みです。 Redshift では、COPY コマンドを使用してデータを Amazon S3 から 効率的にデータをロードできますが、 このUpdateが来るまでは継続的な取り込みは Amazon Data Firehose を使用する方法が一般的でした。 しかし、カヤックでは「Firehoseの取り込みはメンテナンス時に一時停止でき
こんにちは、カヤック技術部の竹田です。 【カヤック】面白法人グループ Advent Calendar 2024 3日目の記事になります。 本稿は首相官邸ホームページのドメイン:kantei.go.jpの調査記事になります。 首相官邸のホームページ 首相官邸をdigる ドメイン情報を調べる方法は幾つかありますが、digを使って調べます、「digる」=「掘る」という言い回しもあるコマンドです。 ホームページhttps://www.kantei.go.jpはhttps://kantei.go.jpからリダイレクトされているので、各ドメイン情報を調べてみましょう。 $ dig www.kantei.go.jp : www.kantei.go.jp. 60 IN A 18.65.207.120 www.kantei.go.jp. 60 IN A 18.65.207.11 www.kantei.go.
面白法人グループアドベントカレンダー2024 2日目の記事です。SREの藤原です。 2024年も暮れようとしていますね。ところで今から5年前のこと、builderscon tokyo 2019 というイベントで「レガシーサーバーを現代の技術で再構築する」というタイトルで発表しました。 speakerdeck.com この発表は、当時 Amazon EC2 のシングル構成で動作していたサーバー(SVN, Redmineほか、社内の開発支援ためのサービスが動作していました)を、Amazon ECS をはじめとしたコンテナや AWS のマネージドサービスを用いてリプレイスした、という内容です。 2019年末にはこの発表で予定していた移行作業は全て完了し、以下の画像のように EC2 が空っぽになりました。 あれから5年 さて、早いもので2019年から5年が経過しました。このシステムで動いていたサー
今年も師走ということでアドベントカレンダー2024が始まりました。カヤックSREの市川です。 初回は、Google Cloud における分散トレースの話です。前半は関連知識のおさらいになるので、「オブザーバビリティだいたい分かるよ〜」という方は本題まで飛ばしてください。 ちなみに本記事の内容は、SDK で直接送信する前提です。Collector を立てている場合についても最後で少し触れますが、記事が役立つユースケースとしては App Engine Standard 環境を利用している場合が多いのかなと思います。 分散トレースのおさらい 免責:以下、おさらいの内容はある程度ラフな説明になりますので、詳しくはそれらを主題として扱っている資料をご参照ください。 分散トレースとは 分散トレースとは、言ってしまえばログです。ただし「開始と終了」の概念を持ち、「親子関係」で整理されています。 ログにお
SREチームの長田です。 今回はAWSのVPC(Virtual Private Network)内で作業する時の話です。 VPC内で作業したい VPC内で作業したいこと、ありますよね。 環境構築中の動作確認とか、不具合・障害調査のための定形外作業とか、メンテナンスためのイレギュラーな作業とか。 定常的に行うほどではないですが、AWSでVPCに絡んだサービスを使用しているなら、VPC内での作業は少なからずあると思います。 VPC内に閉じたリソースにアクセスする場合は、当然ですがVPC内からアクセスする必要があります。 VPC外からアクセスするための経路を用意すればそれも可能ですが、アプリケーションが使っている経路とは異なる経路を使うことになるため、 不具合調査時の再現確認などでは余計な要素となることがあります。 VPC内からの操作は、AWSであればCloudShellで VPC環境を作るのが
こんにちは!カヤックの市川です。早くも年の瀬が近づいてきましたね。 12月と言えば......そうです!毎年恒例の「技術部ブログ Advent Calendar」を今年も開催します! 最近もりもり増えているグループ会社も参加するようになって、早くも3回目です。 例年どおり、毎日こちらの はてなブログ に投稿していくので、バラエティ豊富な記事に是非ご期待ください! 以下の Qiita カレンダーにも、公開次第逐一リンクを登録する形になる予定です! qiita.com 去年のブックマーク上位3記事 おまけとして、去年の反響が大きかった記事をいくつか紹介いたします。一覧はこちら。 3位「Rails+PostgreSQL+Apartmentでたった1行の変更がレスポンスタイムを3倍速にした話」 techblog.kayac.com 2位「俺の管理画面 2023年冬」 techblog.kayac.
SRE チームの市川恭佑です。 今回はコンテナに関連するDevOpsツールを作った話です。ecresolve と書いて「イーシーリゾルブ」と読みます*1。 github.com ecresolve は、ざっくり言うとコンテナイメージのタグが上書きされる前提で、複数タグを指定すると一番先頭で見つかったものを出力するツールです。 基本的な使い方としては、たとえば dog と cat のタグのみが存在する ECR リポジトリ animal があるとき、以下のコマンドを実行すると標準出力に dog が出力されます*2。 ecresolve monkey bird dog human cat --repository-name=animal --format=tag-only # dog なお、本記事の大前提として、もちろん本番環境において、特にお客様のデータを取り扱うようなコンポーネントについては
お久しぶりです。SRE の市川恭佑です。 今回は Go で CLI ツールを作成する際の小ネタを紹介します。 そもそも CLI パーサの選定 Go でコマンドを解析する手法は多岐に渡ります。そもそも標準 flag パッケージだけで実装することも可能ですし、spf13/cobra や urfave/cli をフラグパーサに採用することも多いかと思います。 好きなものを使っていただくのが一番ですが、今回の話題で取り上げる alecthomas/kong は、サブコマンドのサポートのみならず簡単な制約チェックも提供されているのが魅力的です。個人的には、不正なフラグが与えられたときに適切なエラーメッセージを返すことの面倒臭さを考えると、ここら辺もパーサ側にお願いしたいなって気持ちになることが多いです。 ちなみに kong は、alecthomas/kingpin と同じ作者によるツールで、みなさん
SREチームの長田です。 皆さんは操作するAWSアカウントを取り違えたことはありますか? 私はあります。 カヤックのSREは複数のプロダクトを担当することも多く、 ひとつのプロダクトでも環境(本番、ステージング、開発、etc.)ごとにAWSアカウントを分ける場合があり、 扱わなければならないAWSアカウントが多くなる傾向にあります *1。 今回はうっかり別のアカウントのリソースを削除してしまったーといったオペレーションミスを減らすために個人的に行っている、 「気をつける」以外の対策を紹介します。 間違いに気づくための対策 対象のアカウントが操作の対象として正しいかどうかは、結局は操作している本人にしか分かりません *2。 そのため、「アカウント取り違え自体をなくす」のではなく、 「アカウントを取り違えていることに気づきやすくする」ための対策をしています。 AWSコンソール用の対策 AWSコ
こんにちは! 技術部の谷脇です。 去る10/5にYAPC::Hakodate 2024が開催されました。いかがでしたか? yapcjapan.org 以前に告知したように今回のYAPCもコードゴルフコンテストPerlbatrossを開催しました。 techblog.kayac.com このエントリでは結果発表と、事前解答チームの川添(@acidlemon)より社内最短解の紹介と解説をお届けします。 Perlbatrossは現在コードの投稿や検証はできるものの、ランキングに載らないモードになっております。あと1週間程度はこのようにしておきますので、やりそびれた方や、ちょっと試してみたいなという方は是非コードゴルフに挑戦してみてください。 ここで宣伝 JavaScript版コードゴルフコンテスト JS体操はまだまだやっております! hubspot.kayac.com こちらも是非ご参加ください
技術部の長田です。 YAPC::Hakodate まで1週間を切りましたね。 今回は当日登壇するカヤックメンバーの紹介と、当日実施予定のイベントについてご案内です。 前夜祭: 「AWS Lambda FunctionURLで実現するスケーラブルで低コストなWebサービス構築」 by fujiwara 前夜祭ではSREチームの藤原が登壇します! トーク概要より: AWS Lambda FunctionURLを活用し、従来の開発モデルで作られたWebアプリケーションを最小限の変更でサーバーレス化する手法を紹介します。 カヤックが運用するeスポーツ大会支援サービスTonamelでは、Goで実装されたマイクロサービスをECSからLambdaへ移行し、急激な負荷増加への対応とコスト削減を実現しました。 今回のYAPC::Hakodateスポンサー連動企画Perlbatrossでは、Perlで実装した
SREチームの長田です。 SREsとしての業務がメインではあるのですが、実はSREチームの人事リソース管理を担当していたりします。 今回はそんな立場から「SRE活動用のリソース」について紹介してみようと思います。 SREなのに「SRE活動用」リソース? カヤックのSREは、担当プロダクトチームのメンバーとして動く、いわゆるEmbedded SREです。 社内の予算計画の話になってしまうのですが、プロダクトを持つ事業部がSREメンバーのリソース配分を期ごとに確保する形式となっています。 例えばあるメンバーのリソース(100%)のうち、50%分をTonamel(ゲームコミュニティ事業部)に、 30%分をまちのコイン(ちいき資本主義事業部)に割り振った場合、 各割合分のリソースを各プロダクトが属する事業部が負担する形です *1。 Embedded SREの活動とは別に、プロダクトとは直接関係のな
SREチームの長田です。 今回は、カヤックのメンバーが業務で使うために開発・公開しているOSSなプロダクトをまとめて紹介しようという企画です。 KAYAC organization以下にあるものだけでなく、在籍中のメンバーが作ったものもひっくるめて、実際に業務で使用しているものを中心に 紹介しています。 以下の3つのカテゴリに分けて記載しています。 各カテゴリ内はアルファベット順です。 ツール編 人間が手動で実行するもの アプリケーション編 どこかに常駐して、イベントを受け取ると動作するもの ライブラリ編 ツールやアプリケーションから参照されるもの 集めてみたらそこそこの量になったので、本記事では詳細な説明は省いています。 GitHubリポジトリのURLや関連記事のリンクを併記していますので、より詳しく知りたい場合はそちらを参照ください。 (...) 内はそのプロダクトで使用している主なプ
こんにちは!面白プロデュース事業部のおばらです。 『JS体操』第3問 「Zalgo Text の生成」、今回もたくさんの方が挑戦してくださいました。ありがとうございます!本記事はその解説記事の第1弾。挑戦してくださったみなさまの回答、JS体操 QA チームが事前に検証・想定していた回答を一挙にご紹介します。 もし第3問まだ挑戦できていなかった!というひとは以下よりぜひ。 hubspot.kayac.com 今回の第3問では事前にヒント記事を4件書いてみました。ぜひ併せてご覧ください。 techblog.kayac.com techblog.kayac.com techblog.kayac.com techblog.kayac.com 目次 本戦上位3名の回答 🥇 114文字 by halwhite さん 🥈 117文字 by ほーく さん 🥉 119文字 by すぎゃーん さん 社内
SREチームの藤原です。 今回は CEL(Common Expression Language) を使って、AWSのIAMポリシーを検索するツールを作ったので紹介します。 github.com 3行でまとめ CEL (Common Expression Language)の式を指定してAWS IAMポリシーを検索するツールをOSSとして作りました。GetAccountAuthorizationDetails APIで取得したIAMポリシーをCELで評価して、マッチするものを出力します 例えば「lambda:GetFunctionがあるがlambda:ListTagsがないポリシーを探す」などができます AWSからたびたびやってくる、IAMポリシーに関するお知らせに対応するのに便利です 突然の「Action Required」 ある日、AWSからこんなメールが届きました。 Lambda Ge
技術部の小池です。 2024年7月19日に 北欧、暮らしの道具店 を運営している株式会社クラシコムさんと合同勉強会を開催しました。 クラシコムさんとは SRE と データ基盤 領域の協業によるご縁があり、2019年にも勉強会を開催しています。 クラシコムさんの新オフィス 今回の勉強会は2024年3月に移転したクラシコムさんの新オフィスで開催しました。 白を基調とした開放的で広々とした空間でとても居心地がよかったです。 勉強会の様子 はじめに乾杯をして軽くピザを食べ、穏やかな雰囲気で発表が始まりました。 OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた クラシコム冨田さんの発表です。 speakerdeck.com EPUB のデータ構造や OpenAI API
こんにちは!面白プロデュース事業部のおばらです。 本記事はJS体操第3問「Zalgo Text の生成」の問題のヒントにもなるかもしれないシリーズ第2弾。 第1弾は 「Zalgo Text のできるまで」でした。 今回は「コードポイント」、そして「コードポイント」と似ているけれどちょっと違う概念の「コードユニット」についてざっくりおさらいしてみます。 techblog.kayac.com hubspot.kayac.com 目次 「Unicode」とは 「コードポイント」とは 「文字」を「コードポイント」に変換する 「コードポイント」を「文字」に変換する 「コードユニット」とは 「UTF-8」「UTF-16」「UTF-32」 「コードユニット」とは 「文字」を「コードユニット」に変換する 「コードユニット」を「文字」に変換する 「コードポイント」と「コードユニット」の違い 文字数とは? ま
こんにちは。技術部平山です。 たぶん15年ぶりくらいに研修の類の講師をやったので、そのことについて書きます。 概要 2D用(github)、 3D用(github) の2つのUnityプロジェクトをテンプレートとして用意して、 そこに「コードだけで」ゲームを作る研修をしました。 どちらも、Hierarchyに何かを足すことは禁止、 足して良いアセットはC#ファイルのみで、 そのC#ファイル内ではUnityEngineの機能を使用禁止、 というレギュレーションです。 いずれも、IMachineなるインターフェイスが存在し、 これを通してゲームを作ります。 例えば2D用のIMachineの主要部分はこんな感じです。 public interface IMachine { public int Width { get; } // スクリーン横解像度 public int Height { get
こんにちは!面白プロデュース事業部のおばらです。 今回は、先日スタートしたJS体操第3問のテーマでもある「Zalgo Text(ザルゴ・テキスト)」の作り方を JavaScript のサンプルコードと併せて簡単にご紹介します。 hubspot.kayac.com 目次 Zalgo とは Zalgo Text とは Zalgo Text を作ってみる 「結合文字」 「ダイアクリティカルマーク」 「Unicode エスケープシーケンス」と「コードポイント」 「A」という文字に「ダイアクリティカルマーク」を加えてみる 「ダイアクリティカルマーク」の数を増やしてみる 「基底文字」も増やしてみる まとめ Zalgo とは まず、Zalgo ってなんでしょう? Zalgo(ザルゴ)とは、Flash アニメータ Dave Kally によって生み出された架空の生物。インターネット上の人々を狂気に陥れ破滅
こんにちは! カヤック面白プロデュース事業部のおばらです。 普段は受託案件のデザイン・フロントエンド開発などを担当しています。 さて、『JS体操』第2問 いかがでしたか? 今回初めての方々 第1問に引き続きの方々 複数のアプローチで何通りも回答してくださった方々 普段業務で JavaScript をバリバリ書いているであろう方々 JavaScript を学んでいる学生の方々 などたくさんの方々が挑戦してくださいました。 とても嬉しいです。ありがとうございます! 『JS体操』とは? 『JS体操』とはカヤックが主催する JavaScript のコードゴルフ大会です。 もともとは社内の勉強会として始めた施策です。 その詳細は以下のブログ記事を御覧ください! techblog.kayac.com 第2問の詳細はこちら https://hubspot.kayac.com/js-taiso-002 も
SREチームの長田です。 今回はssmwrapという拙作CLIツールのはなしです。 ssmwrapとは ssmwrapは、AWS Systems Manager Parameter Store(以下SSM Params)から値を取得し、 環境変数またはファイルに出力した上でコマンドを実行するツールです。 secret類をSSM Paramsに保存している場合、アプリケーション実行時にSSM Paramsから必要な値を取得することになります。 AWSのサービスにアクセスするという操作は、それなりに手間がかかるものですが、 ssmwrapを使えば環境変数とファイルというより簡便な入出力インターフェイスを通してSSM Paramsの値を参照できます。 実装が簡潔になるだけでなく、アプリケーションからのAWS APIへの依存を排除することにもなります。 # SSM Paramsにこんな値が保存され
次のページ
このページを最初にブックマークしてみませんか?
『KAYAC Engineers' Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く