みなさんこんにちはエンジニアのEadaedaです。 皆さんのチームではAPIドキュメントの生成に何をお使いですか?UniqysチームではReDocを使っています。 nestjs/swaggerを使ってコントローラーから生成したOpenAPIの定義ファイルを与えるだけでリッチなドキュ…
こんにちは、ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 ブロックチェーンチームでは、 NFT を販売するためのUniqysマーケットプレイス(以下、ユニマ)と、NFT サービス構築支援プラットフォームのユニキス ガレージ(以下、ガレー…
こんにちは。エンジニアのid:kfly8です。 3/4(金) 3/5(土) に、Japan Perl Associationが主催するPerlに関するオンラインカンファレンス「YAPC::Japan::Online 2022」が開催されました。 yapcjapan.org モバファクでは、駅メモ!や駅奪取などのプロダクトでPer…
こんにちは。エンジニアのid:kfly8です。 技術カンファレンスのノベルティで、コードを載せたデザインってイイですよね。謎解き要素で遊び心をくすぐりつつ、デザイン的にも普段使いしやすくかっこいいんですよね。リブセンスさんから2015年にもらったトート…
こんにちは。エンジニアのEadaedaです。 皆さんのチームではGithub Actionsでaws-actions/configure-aws-credentialsを使っていますか?GitHub ActionsでAWS SDKやAWS CLIを使うために必要なクレデンシャルなどを設定してくれるactionで、我々のチームでは最…
こんにちは。id:kfly8です。 2022年3月4日(金), 3月5日(土)に開催されるYAPC::Japan::Online 2022にて、モバイルファクトリーのエンジニアのkimusonが「TypeScript へ型安全性を高めながらリプレースする」と題して登壇します。 登壇は3月4日(金) 20:00から…
こんにちは、エンジニアの夕凪です。 最近、 GitHub Actions が OIDC を正式サポートし、 AWS や GCP へのセキュアなデプロイが可能になりました。 そのうちの GCP の公式実装である google-github-actions/auth を使って、 Firebase へデプロイを行ってみた…
はじめに こんにちは。エンジニアのまえけんです。 1月5日から3日間開催されたスクラムギャザリング2022に行ってきたので、イベントのレポートや感想をまとめようと思います。 2022.scrumgatheringtokyo.org スクラムギャザリングとは 日本のスクラム/アジャ…
こんにちは。エンジニアの id:kfly8 です。Japan Perl Associationの理事として、YAPCの運営もしているのですが、今回はモバイルファクトリーからのお知らせです。 モバイルファクトリーは、2022年3月4日(金), 3月5日(土)に開催されるYAPC::Japan::Online 20…
こんにちは。エンジニアの id:kfly8 です。 少し祝うには遅いですが、技術アドベントカレンダー2021無事完走しました ありがたいことに、ホットエントリーした記事もあり、編集担当としてはホッとしています(ホットエントリーだけに) tech.mobilefactory.j…
こんにちは、ブロックチェーンチームのエンジニア id:charines です。 この記事ではNFTにおける「ロイヤルティ」と呼ばれる機能について紹介します。 ロイヤルティとは? クリエイターがアート作品などをNFT化して販売された後、そのNFTが購入者によってマー…
こんにちは、21 卒エンジニアの id:d-kimuson です。 モバイルファクトリーでは、最近のプロダクトではフロントエンドに TypeScript を採用していますが、僕がアサインされているプロダクトは歴史が長く JavaScript で書かれていて、今回 TypeScript へのリ…
この記事はモバイルファクトリー Advent Calendar 2021の25日目の記事です。 メリークリスマス エンジニアのid:kfly8です。 技術ブログの「ネタがない」といったコメントや「この記事の課題がよくわからない」といった記事レビューをすることがあります。技…
皆さん Jetpack Compose は触っていますか? Jetpack Compose といえば Modifier ですが、Modifier の関数は場所によって使えたり使えなかったりする場合があると思います。 どうなっているのでしょうか? 例えばこの画像のようなものを実装したいとします。…
こんにちは、20卒エンジニアのthe96です。 弊社では、リモート下においても勉強会が日頃から開催されています。 以前、勉強会で同期のワンライナーのプロからawkを授けられて以来、ワンライナーで業務を少し改善することの楽しさに目覚めました。 この記事で…
皆さんのシェルの起動速度はどうですか?シェル起動時に eval "$(hoge init)" を実行するようなツールをたくさん入れていると徐々に遅くなってきてつらいですよね そこで以下のように hoge init の出力をファイルに書き出しておいて、起動時にはそれをsource…
はじめに 今年の夏に在宅環境(筋肉)の整備に成功したうっひょいです. tech.mobilefactory.jp 今年,ワインエキスパートの資格を取得しました. 勉強のために様々なツールを使って進捗管理したことについて書きます. なぜ受験したのか いろいろ理由はありま…
ポモドーロテクニックを改めて実践したら結構良い感じだったので知見を共有します。 作業に集中できない、効率よく作業したい、そんな人におすすめです。 そもそもポモドーロテクニックとは 時間管理術の1つ。 集中の時間と短い休憩を繰り返して作業を効率…
MySQL 5.7.6 以降ではGenerated Columnが使えます。 テーブル定義に計算式を記述すると計算結果をカラムとして扱えるようになる機能です。 駅メモ!でも最近利用しているGenerated Columnですが、データベース内で増えたGenerated Columnをリストアップした…
駅奪取エンジニアのid:dorapon2000です。駅奪取では11月にゲーム内の地図のリプレースを行いました。地図そのもののスタイルも変わりましたが、地図の表示に使うライブラリも変更しています。今回は、アプリに地図を埋め込むだけであれば、ほんの少しのコー…
NestJS は Node.js 向けのウェブフレームワークです。その特徴として Decorator を用いてクラスやメソッドにアノテーションをする仕組みを提供しています。 例えば API のエンドポイントを定義する場合は次のようなコードを実装します。 import { Controller…
はじめに CloudFrontからオリジンへのリクエスト時に特定のHTTPヘッダーを含めるには、オリジンリクエストポリシーの設定が必要です。 docs.aws.amazon.com CloudFrontを使用すると一部HTTPヘッダーが書き換えられ、特にUser-AgentヘッダーはAmazon CloudFro…
はじめに 駅メモ!チームでエンジニアをしている id:wgg00sh です. 駅メモ!では2021年11月に「未取得の駅を地図で確認できる機能」をリリースしました. 今回はこの機能を実現するにあたって発生した問題の一例と,その問題をどのように解決したかについて…
普段Perlのテストはターミナル上で prove t/hoge.t で実行しています。 これを楽するために、VS Codeの拡張機能 Code Runner - Visual Studio Marketplace を使い、編集中のファイルを開いたまま、ボタン一つで実行できます。 拡張機能 Code Runner をインス…
miro アプリ 弊社はモバワークを導入していて、チームメンバーも普段はフルリモートワークをしています。 チームではオンラインホワイトボードとしてmiroを導入していて、例えばこんな事に使ってます。 ボード上でタスクチケットの管理 残りタスクと進捗の可…
CLIツールのパフォーマンス気になりますね 皆さん普段様々なCLIツールをご利用かとは思いますが、そのCLIツールのパフォーマンスが気になったことはありませんか?私はまれによくあります。今回はそういうときに役に立つ hyperfine をご紹介です。 github.co…
ここ半年、競プロをこつこつ頑張っているエンジニアの id:dorapon2000 です。好きなアルゴリズムは累積和です。 解決したい課題 「MySQL 5.7 内で完結できるように、クエリだけでランキングを取得したい」 データベースのデータを使って調査をする際、ランキ…
こんにちは、新卒エンジニアの id:d-kimuson です 先日 type-predicates-generator という型定義からユーザー定義型ガード・アサーション関数を自動生成するツールをリリースして紹介記事を書いたのですが、感想とかを眺めていたら同じく外部から来た値に安…
はじめに はじめましての方ははじめまして、ブロックチェーンチームの id:Nanamachi です。夏頃まではエンジニアとして関わっていましたが、故あって現在はプロダクトマネージャとしての道を進んでいます。今日はそんな新米プロダクトマネージャが、膨れ上が…
はじめに offsetWidthやoffsetHeightなどの幅や高さを取得する関数たちは、display: noneになっている場合、0を返します。 Vue.jsで要素の表示非表示にv-showを用いている場合、v-showはその要素にdisplay: noneを付与して制御を行うので、非表示中のoffsetW…