うなすけ

帰って寝たい

うなすけ

帰って寝たい

最近の記事

なぜ我々はクラウドゲーミング基盤をKubernetesに移行したのか #CNDT2021

はじめにこれは、2021年11月4日から5日にかけて開催された、CloudNative Days Tokyo 2021 においての私の発表資料となります。 発表 こんにちは。今日は、OOParts というクラウドゲーミングプラットフォームを Kubernetes 基盤に移行した話をします。よろしくお願いします。 私は、うなすけといいます。フリーランスとして、Webアプリケーションを開発する仕事をしています。2019年から、Black で OOParts のクラウドインフ

    • Agones移行物語 - Kubernetes Meetup Tokyo 42 #k8sjp

      前提この発表では、2021年6月1日から提供していたBlack Game Streaming Engine v2についての内容になります。残念ながら発表の前日である23日をもって期間限定無料テストが終了しています。なので現時点では実際に触ってもらうことができません。 この資料は、当日の発表資料から不要なものを削り、時間の都合上話しきれなかった点を加筆して文字起こしをしたものです。おおまかな流れは当日と同じです。 発表 それでは、Agones移行物語という発表をさせていた

      • OOParts -Stateless Cloud Gaming Architecture- #CNDT2020

        それではこれより、「OOParts - stateless cloud gaming architecture-」というタイトルで発表させていただきます。よろしくお願いします。 こんにちは。株式会社ブラックから来ました、中村勇介と申します。普段は「うなすけ」という名前で色々やっているので、そちらのほうがわかりやすいという方もいらっしゃると思います。 本日は、ブラックの運営するクラウドゲーミングサービス、「OOParts」のインフラについて、皆さんにご紹介できたらなと思

        • 2019年にOSSに送ったpatchを振り返る

          mergeされたものも、されていないものも含みます。瑣末なものは取り上げません。 リポジトリごとに時系列順です。 k0kubun/rack-user_agent これは rack-user_agent gem を業務で使おうとしたときに最新のRubyでCIが実行されていなかったので送ったpatchだったはずです。 rubocop-hq/rubocop これは、Railsの belongs_to において class_name にはClassではなく文字列を渡すようにする

        なぜ我々はクラウドゲーミング基盤をKubernetesに移行したのか #CNDT2021

          2019年に作ったGitHubリポジトリを振り返る

          fratterhornこれは、Frontmatterをparseするために作ったgemです。元々の目的は、次に紹介するkibela2esaを作成するときに、Markdownに含まれるFrontmatterを処理するためでした。ただ、 front_matter_parser gem があるのでこれは不要ということで途中で開発をやめたため、期待するような動作はしません。 killncel/kibela2esaこれは正確には僕の作ったリポジトリではないのですが、fratterho

          2019年に作ったGitHubリポジトリを振り返る

          RuboCopに出したPull Request #7272 について

          きっかけある日、有効にしたはずのないRuboCopのCopで違反が検知されていることに気づきました。原因は、以下スクショのように、EnabledにfalseではなくStringを渡していたためです。 自然言語的には正しいのですが(ん、本当にそうか?)、ここには true/false 以外を渡すべきではありません。 どこで検知するかこれは、そもそも Enabled という YAMLのkeyに対して true/false 以外の値を渡すべきではないので、どうにかそれを検知すれ

          RuboCopに出したPull Request #7272 について

          「秒」で投稿チェックを行うために、管理画面のないオペレーションを構築しました

          秒.work では、管理画面のない、Slackで完結するオペレーションフローが構築されています。なので、スマートフォンしかない時でも、すばやく投稿の確認を行うことができます。 この記事では、どのようにしてSlack上で完結するオペレーションを実現したのかを軽く紹介したいと思います。 Block Kitによるインタラクティブなメッセージの投稿Slack上で、ボタンなどによって反応することができる投稿を行うには、Block Kitを使用します。 このBlock Kitによっ

          「秒」で投稿チェックを行うために、管理画面のないオペレーションを構築しました

          秒.workのシェア画像を生成する仕組みとは……?

          こんにちは、うなすけです。先日解散が発表された株式会社バンクにて、業務委託として働いています。 匿名で仕事探しができる秒.work ですが、これは元バンクの同僚であるillyが開発したものです。 実は僕も少し手伝った部分があるので、この記事ではその中から「シェア画像生成」について書きます。 シェア画像を「何で」生成するか さて、「画像に文字を重ねる」ということをしたいときに皆さんがまず思いつく方法はなんでしょうか。僕は ImageMagick でした。 単純に文字を

          秒.workのシェア画像を生成する仕組みとは……?

          ItamaeがサポートするRubyのversionについて

          先日開催されたOSSパッチ会で気づいたのですが、現在、ItamaeではサポートするRubyのversionをgemspecにおいて明確には定めていません。 "REQUIRED RUBY VERSION: >= 0" という表記が気になるなぁと思い、 @sue445 さんに相談したのですが、Infrastructureに関連するツールであることから、公式でEOLになったからといってサポートを切るのはどうなのだろう、という意見を頂きました。確かに、そうですね。 例えばRed

          ItamaeがサポートするRubyのversionについて

          aws-sdk-ruby のスタブ機能がgoogle-cloud-rubyにあったら嬉しい

          タイトルが全部。 皆さんご存知、AWSの公式API client libraryである aws-sdk-ruby ですが、API callに対するstub機能が組込まれているので、テストを書くとき非常に助かります。 documentから引用するのですが、このようにresponseをstubすることができます。 # stub data in the constructorclient = Aws::S3::Client.new(stub_responses: { list

          aws-sdk-ruby のスタブ機能がgoogle-cloud-rubyにあったら嬉しい

          CRIについて、Interfaceの定義はどこにあるのか

          こんにちは、うなすけです。 自分のブログ ( https://blog.unasuke.com/ )も持っているのですが、そこに書くまでの分量でもない、けどMastodonやTwitterには書ききれない、そんなような記事を書いていこうと思っています。 さてCRIについてですが。CRIについての詳しい説明は次の記事に譲るとして、ではそのInterface definitionはどこにあるんだという話です。 CRIランタイムやハイレベルランタイムとも呼ばれます。kubel

          CRIについて、Interfaceの定義はどこにあるのか