Mobile Factory Tech Blog

技術好きな方へ!モバイルファクトリーのエンジニアたちが楽しい技術話をお届けします!

GitHub ActionsのワークフローをオートスケールするSelf-hosted runnerに移行した話

こんにちはエンジニアのEadaedaです。 皆さんのチームではGitHub Actionsを使っていますか?ブロックチェーンチームではテストやリンター、デプロイといったワークフローをGitHub Actionsで行っています。 今まで、デプロイ以外のワークフローはGitHub-hoste…

OSSのスポンサーを始めるときに、技術広報目線で考えたこと

こんにちは。エンジニアのid:kfly8です。 今月から、NestJSとethers.jsのスポンサーをはじめました この記事ではOSSのスポンサーをするにあたり考えたことを書きます。 モバファクは、NestJSとethers.jsの2つのOSSのスポンサーになりました NestJSとethers.j…

TOKYO BLOCKCHAIN TECH MEETUP 2022 で登壇しました

こんにちは。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 先日開催された TOKYO BLOCKCHAIN TECH MEETUP 2022 に登壇してきました。 connpass.com 登壇内容 「クラウド KMS の活用」というタイトルで、自作の OSS の cloud-crypto…

新卒エンジニアが技術研修で学んだこと・気付いたこと

はじめまして。22卒エンジニアの id:kebhr です。 モバイルファクトリーでは、現場で使用されている技術を学ぶ技術研修がおよそ1ヶ月にわたって行われます。私は学生時代から趣味やアルバイト・業務委託の仕事でコードを書いてきましたが、技術研修を通して…

Perlの技術研修

こんにちは。エンジニアのid:kfly8です。 先日、技術研修のインタビュー記事を公開し、手を動かしつつ、コミュニケーションをよく取る技術研修といった主旨の内容でした。 tech.mobilefactory.jp こちらのインタビューでは具体的な研修内容は触れていません…

社内勉強会 「Crypto 勉強会」の紹介

こんにちは。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 モバファクには「シェアナレ!」という社内勉強会制度があります。この制度の時間を利用して隔週で「Crypto 勉強会」を開催しています。 「Crypto 勉強会」は前身の「Laye…

Vue2 (nuxt2) で TypeScript の型を守る Tips

こんにちは、ブロックチェーンチームの id:d-kimsuon です Vue2 では TypeScript がサポートされており、公式の TypeScript のサポートのドキュメント に従うことで TypeScript で書いていくことができます しかし、素直に書いていくと any 型になってしまっ…

手を動かして、ちょくちょく話すモバファクの技術研修

「新しい環境に馴染んで活躍できるか?」 この不安を感じる人は少なくないと思います。そういった不安に対応できるよう、モバイルファクトリーでは、できる限り早くチームや会社に馴染んで強みを発揮できるようにオンボーディングを大切にしています。 この…

GW自由研究発表会を開催しました

こんにちは、ブロックチェーンチームの id:odan3240 です。 モバファクには「シェアナレ!」という社内勉強会制度があります。この制度の時間を使用してゴールデンウィーク(以下GW)中に個人が趣味開発で行ったことを共有する会を開催しました。 この会は以下…

!!0 eq 0 ? 'True' : 'False'の結果は?|Perlのコンテキストとスカラ値を覗く

Falseになります。 なぜか? eqは何か? eqは、文字列同士が一致しているか確かめる演算子です。より詳しく言えば、SV(Scalar Value/スカラ値)という構造体の中のPV(Pointer Value/文字列)を比較します*1。スカラ値の文字列を利用することを、Perlならではの…

nestjs/swaggerで生成したOpenAPI 3.0の定義ファイルを使ってReDocにWebhookの項目を表示させる

みなさんこんにちはエンジニアのEadaedaです。 皆さんのチームではAPIドキュメントの生成に何をお使いですか?UniqysチームではReDocを使っています。 nestjs/swaggerを使ってコントローラーから生成したOpenAPIの定義ファイルを与えるだけでリッチなドキュ…

VSCode の Multi-root Workspaces を使用して TypeScript のインポートの書式を使い分ける

こんにちは、ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 ブロックチェーンチームでは、 NFT を販売するためのUniqysマーケットプレイス(以下、ユニマ)と、NFT サービス構築支援プラットフォームのユニキス ガレージ(以下、ガレー…

「YAPC::Japan::Online 2022」に2人のエンジニアが登壇し、スポンサーと運営をしました!

こんにちは。エンジニアのid:kfly8です。 3/4(金) 3/5(土) に、Japan Perl Associationが主催するPerlに関するオンラインカンファレンス「YAPC::Japan::Online 2022」が開催されました。 yapcjapan.org モバファクでは、駅メモ!や駅奪取などのプロダクトでPer…

イベントTシャツを支える技術 ー Acme::Bleachの詳解

こんにちは。エンジニアのid:kfly8です。 技術カンファレンスのノベルティで、コードを載せたデザインってイイですよね。謎解き要素で遊び心をくすぐりつつ、デザイン的にも普段使いしやすくかっこいいんですよね。リブセンスさんから2015年にもらったトート…

TerraformでGitHub Actions OpenID ConnectのIAM IdPを管理したい

こんにちは。エンジニアのEadaedaです。 皆さんのチームではGithub Actionsでaws-actions/configure-aws-credentialsを使っていますか?GitHub ActionsでAWS SDKやAWS CLIを使うために必要なクレデンシャルなどを設定してくれるactionで、我々のチームでは最…

YAPC::Japan::Online 2022でモバイルファクトリーのエンジニアが「TypeScript へ型安全性を高めながらリプレースする」という題で登壇します

こんにちは。id:kfly8です。 2022年3月4日(金), 3月5日(土)に開催されるYAPC::Japan::Online 2022にて、モバイルファクトリーのエンジニアのkimusonが「TypeScript へ型安全性を高めながらリプレースする」と題して登壇します。 登壇は3月4日(金) 20:00から…

google-github-actions/auth を使った GitHub Actions で Firebase へのセキュアデプロイ

こんにちは、エンジニアの夕凪です。 最近、 GitHub Actions が OIDC を正式サポートし、 AWS や GCP へのセキュアなデプロイが可能になりました。 そのうちの GCP の公式実装である google-github-actions/auth を使って、 Firebase へデプロイを行ってみた…

スクラムギャザリング2022に参加しました!

はじめに こんにちは。エンジニアのまえけんです。 1月5日から3日間開催されたスクラムギャザリング2022に行ってきたので、イベントのレポートや感想をまとめようと思います。 2022.scrumgatheringtokyo.org スクラムギャザリングとは 日本のスクラム/アジャ…

YAPC::Japan::Online 2022にイベントTシャツスポンサーとして協賛します

こんにちは。エンジニアの id:kfly8 です。Japan Perl Associationの理事として、YAPCの運営もしているのですが、今回はモバイルファクトリーからのお知らせです。 モバイルファクトリーは、2022年3月4日(金), 3月5日(土)に開催されるYAPC::Japan::Online 20…

肩の力を抜いて技術アドベントカレンダーを運用する

こんにちは。エンジニアの id:kfly8 です。 少し祝うには遅いですが、技術アドベントカレンダー2021無事完走しました ありがたいことに、ホットエントリーした記事もあり、編集担当としてはホッとしています(ホットエントリーだけに) tech.mobilefactory.j…

NFTが再販売された際のクリエイターへの還元機能についての紹介

こんにちは、ブロックチェーンチームのエンジニア id:charines です。 この記事ではNFTにおける「ロイヤルティ」と呼ばれる機能について紹介します。 ロイヤルティとは? クリエイターがアート作品などをNFT化して販売された後、そのNFTが購入者によってマー…

「メリハリのある TypeScript」で運用しながら型安全性を高めやすい TypeScript リプレースを行う

こんにちは、21 卒エンジニアの id:d-kimuson です。 モバイルファクトリーでは、最近のプロダクトではフロントエンドに TypeScript を採用していますが、僕がアサインされているプロダクトは歴史が長く JavaScript で書かれていて、今回 TypeScript へのリ…

技術ブログが書ける開発をする

この記事はモバイルファクトリー Advent Calendar 2021の25日目の記事です。 メリークリスマス エンジニアのid:kfly8です。 技術ブログの「ネタがない」といったコメントや「この記事の課題がよくわからない」といった記事レビューをすることがあります。技…

Jetpack ComposeでModifierの関数はどうして使えたり使えなかったりするのか

皆さん Jetpack Compose は触っていますか? Jetpack Compose といえば Modifier ですが、Modifier の関数は場所によって使えたり使えなかったりする場合があると思います。 どうなっているのでしょうか? 例えばこの画像のようなものを実装したいとします。…

gitを少し快適に扱うためのワンライナー3選

こんにちは、20卒エンジニアのthe96です。 弊社では、リモート下においても勉強会が日頃から開催されています。 以前、勉強会で同期のワンライナーのプロからawkを授けられて以来、ワンライナーで業務を少し改善することの楽しさに目覚めました。 この記事で…

eval "$(hoge init)"するツールをたくさん入れてるシェルの起動速度をちょっと良くする

皆さんのシェルの起動速度はどうですか?シェル起動時に eval "$(hoge init)" を実行するようなツールをたくさん入れていると徐々に遅くなってきてつらいですよね そこで以下のように hoge init の出力をファイルに書き出しておいて、起動時にはそれをsource…

ワインの資格取るために進捗管理やら何やらをした話

はじめに 今年の夏に在宅環境(筋肉)の整備に成功したうっひょいです. tech.mobilefactory.jp 今年,ワインエキスパートの資格を取得しました. 勉強のために様々なツールを使って進捗管理したことについて書きます. なぜ受験したのか いろいろ理由はありま…

1周回ってのポモドーロテクニック

ポモドーロテクニックを改めて実践したら結構良い感じだったので知見を共有します。 作業に集中できない、効率よく作業したい、そんな人におすすめです。 そもそもポモドーロテクニックとは 時間管理術の1つ。 集中の時間と短い休憩を繰り返して作業を効率…

MySQLでデータベース内のGenerated Columnをリストアップする

MySQL 5.7.6 以降ではGenerated Columnが使えます。 テーブル定義に計算式を記述すると計算結果をカラムとして扱えるようになる機能です。 駅メモ!でも最近利用しているGenerated Columnですが、データベース内で増えたGenerated Columnをリストアップした…

アプリに地図を埋め込むのは簡単!

駅奪取エンジニアのid:dorapon2000です。駅奪取では11月にゲーム内の地図のリプレースを行いました。地図そのもののスタイルも変わりましたが、地図の表示に使うライブラリも変更しています。今回は、アプリに地図を埋め込むだけであれば、ほんの少しのコー…