Mobile Factory Tech Blog

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

特定のディレクトリだけパーミッションを確認したい

TSの型迷宮に迷い込んだエンジニアのid:dorapon2000です。 ディレクトリのパーミッションを調べるとき、皆さんどうしていますか。例えば/etcのパーミッションを確認したいとき、以前の僕はこうです。 ❯ ls -l / total 104 drwxr-xr-x 2 root root 4096 6月 2…

DBIのcanは、関数が生えているかでなく、実装されているかどうかを判定する

次のコードの通り、DBIx::Sunnyを利用した際、$dbh->select_oneを呼び出せるにも関わらず、$dbh->can('select_one')がfalseとなります。 canの挙動が、デフォルトと異なり、一見すると困惑します。 use Test2::V0; use DBIx::Sunny; use Types::Standard qw(…

VSCode で TypeScript の交差型のプロパティを省略せずに見れるようにする

VSCode でホバーして型情報を見ようとすると、交差型はプロパティが展開されません プロパティの型を展開する Mapped Types を通すことで省略せずにプロパティを見ることができます。プロパティが交差型になっていることもあるので、再帰的にプロパティを Ma…

NFTマーケットプレイス「ユニマ」の技術スタックを紹介します

こんにちは。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 ブロックチェーンチームでは NFT を販売するためのUniqysマーケットプレイス(以下、ユニマ)と、その NFT を販売するための管理画面(以下、管理画面)を開発しています。ユ…

モバイルファクトリー Advent Calendar 2021

こんにちは!エンジニア組織開発責任者のid:kfly8です。 今年もモバイルファクトリーのAdvent Calendarをお送りします 今年のアドベントカレンダーは「今日から使える技術」をテーマにコンパクトにお届けしていきます!*1 今予定しているキーワードを見ると…

CommonJS と ESModules が混在している環境で、lodash を lodash-es に置き換え、バンドルサイズを減らす

こんにちは、21卒エンジニアの id:d-kimuson です。 先日、プロダクトで使用している lodash を lodash-es に置き換えることで、バンドルサイズの削減をしました。 lodash を lodash-es に置き換える話はよくありますが、今回のプロダクトは運用歴が長く Com…

Perlの最新動向 2021

こんにちは、エンジニアの id:mp0liiu です。 8月28日(土)の Learn Languages 2021 というイベントの Language Update というセッションで@charsbarさんと一緒に2018年以降のPerl5やPerlコミュニティの最新動向について話してきたので、そのとき話した内容に…

目的と技術に向き合う。その心は、楽しさのため|モバファクエンジニア座談会

モバイルファクトリーのエンジニアは、NFTマーケットプレイスの「ユニマ」や位置ゲームの「駅メモ!」など様々な事業の開発をしています。そんなエンジニアたちが、普段、どのようなことを考えているのか。3人のエンジニアに聞いてみました。 この記事に出て…

突撃! 在宅の開発環境 2021年夏

はじめに こんにちは。ブロックチェーンチームのエンジニア、 @nanamachi です。 tech.mobilefactory.jp 前回の記事ではたくさんの方に閲覧&コメントいただきありがとうございました。この記事から1年。モバイルファクトリーは日本のどこからでも働けるよう…

モバファクのフロントエンドランチ会の紹介

こんにちは。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 この記事では昨年の9月から社内で取り組みを続けているフロントエンドランチ会について紹介します。 フロントエンドランチ会とは 第2木曜と第4木曜のランチの時間 (13:00-…

EIP-2718: Typed Transaction Envelope が Ethereum の未来を感じる提案だったので紹介したい

こんにちは、ブロックチェーンチームでソフトウェアエンジニアをしている id:odan3240 です。 来月に予定されている Ethereum Berlin Upgrade の調査を行う中で発見した EIP-2718: Typed Transaction Envelope が、Ethereum の未来を感じさせる提案だったの…

Google Docs を用いたエクストリームリーディングのすゝめ

あけましておめでとうございます。ブロックチェーンチームのソフトウェアエンジニアの id:odan3240 です。 この記事では Google Docs を用いたエクストリームリーディング形式の社内勉強会を1年間継続できた記念に、その形式を紹介をします。 エクストリーム…

ERC721 の extension の違いによるコストの比較

この記事はモバイルファクトリー Advent Calendar 2020 25日目の記事です。長かったアドベントカレンダーもこれがラストです。今年も25日まで毎日技術記事を楽しみに過ごせました。 こんにちは、ブロックチェーンチームのソフトウェアエンジニア id:odan3240…

社内勉強会を丁寧に改善し、フルリモートでシナジーを生み出す

この記事はCTOA Advent Calendar 2020とモバイルファクトリー Advent Calendar 2020 の24日目の記事です。また先日のGaiax Technical Meetupsの登壇内容を元にした内容になります。 こんにちは。エンジニア組織開発責任者のkobaken(@kfly8)です。 明日はクリ…

Androidアプリの動作確認をAWS Device Farmで自動化してみた

この記事はモバイルファクトリー Advent Calendar 2020 23日目の記事です。 こんにちは、id:nesh です。 はじめに 今回の記事は2年前の記事と関連して、モバイルアプリのテストを自動化する話です。過去の記事 AppiumでAndroidアプリの自動テストをPerlで書…

GoでDocBaseAPIのCLIクライアントを作ってみよう

この記事はモバイルファクトリー Advent Calendar 2020 22日目の記事です。 こんにちは。エンジニアの id:Eadaeda です。普段はサーバーサイドの面倒を見ています。 DocBase 弊社ではドキュメント共有ツールとしてDocBaseを利用しています。Markdown形式で書…

2年間リアーキテクティングをして、3つのしくじり

こんにちは、エンジニアの id:i1derful です。 2020年モバイルファクトリーアドベントカレンダーの21日目の記事です。 はじめに 僕は、とあるプロダクトチームのフロントエンドユニットに所属しています。 主に何してるかですと、フロントエンド改修プロジェ…

Unity の Particle System を音声情報を元に制御してみたい

この記事は、モバイルファクトリー Advent Calendar 2020 20日目の記事です。 こんにちは、最近眠りが浅いことで悩んでいる Yunagi_N です。 一昨年に続いて私はマイペースに、今年も趣味全開のお話をします。 はじめに 今年4月くらいから某 VR SNS にはまっ…

GitのGUIクライアントの便利な点と手が届かないこと

この記事はモバイルファクトリー Advent Calendar 2020 19日目の記事です。 こんにちは!新卒エンジニアのid:dorapon2000です。開発する方にとってGitは必須だと思いますが、どのように操作しているでしょうか。コマンドラインから、エディタの拡張機能から…

自称Jenkins職人からCertified Jenkins Engineer 2020になった話

この記事はモバイルファクトリー Advent Calendar 2020 18日目の記事です。 こんにちは、エンジニアの@PikkamanVです。 先日CloudBees社が認定するCertified Jenkins Engineer 2020を取得しました。 この記事では普段の業務で得たJenkinsの知識の延長で試験…

API Gateway + WebSocketでさくっとお絵かきチャットを作る

この記事はモバイルファクトリー Advent Calendar 2020 17日目の記事です。 こんにちは、エンジニアのshioiyanです。 モバイルファクトリーには部活動制度があり、いくつもの部活動が存在しているのですが、自分はそのうちのゲームジャム部に所属しています…

PerlのList::AllUtilsの逆引き

この記事はモバイルファクトリー Advent Calendar 2020 16日目の記事です。 はじめに 動作環境 逆引き 条件を満たす最初の要素をとる 条件を満たす最後の要素をとる 条件を満たす要素より後ろの要素たちを抽出する 条件を満たす要素以降の要素たちを抽出する…

多対一リレーションの設計手法によるパフォーマンスの違いを確認した

この記事はモバイルファクトリー Advent Calendar 2020 15日目の記事です。 エンジニアの yokoi0803 です。DB設計をしていて多対一のリレーションを見たり、設計したりする機会が何度かあって、その度にどう設計するかで悩んでます。 多対一のリレーションは…

PerlのVSCodeの拡張機能を少し便利にした話

この記事はモバイルファクトリー Advent Calendar 2020 14日目の記事です。 はじめまして、20卒エンジニアのthe96です。 今回は業務中に使っているPerlのVSCodeの拡張機能のメソッド呼び出しの際の定義元ジャンプが正しく動作するように修正した話をします。…

誰でもUXを意識できるようにするための「自主トレーニングのススメ」と、それを後押しする「UX探検隊」

この記事はモバイルファクトリー Advent Calendar 2020 13日目の記事です。 はじめまして! とあるチームでUX・UI周りを担当しているデザイナーのid:yux_0_0です。 今日の記事では、職種に限らず誰でもUXを意識できるようにするための「自主トレーニングのス…

MySQLでのINSERT ON DUPLICATE構文との付き合い方

この記事はモバイルファクトリー Advent Calendar 2020 12日目の記事です。 こんにちは!新卒エンジニアのid:dorapon2000です。弊チームではDuplicate entryエラーの解消のためにMySQLのINSERT ON DUPLICATE KEY UPDATE構文を一部で用いています。しかし、使…

git gcで起きることをトレース情報から追ってみる

この記事はモバイルファクトリー Advent Calendar 2020 11日目の記事です。 エンジニアのid:toricorです。巨大なリポジトリを操作しているとgit gcで待たされることがたまにありますが、一体どんな処理をしているんでしょうか。 git gcとは git gc --help ま…

評価エラーを防ぐための「行動メモ」

この記事はモバイルファクトリー Advent Calendar 2020 10日目の記事です。 こんにちは、エンジニアの id:tsukumaru です。 最近はチームのエンジニアのまとめ役を任され、メンバーの評価にも一部関わるようになりました。 評価を考える際、具体的にいつどの…

Nuxt.jsのasyncData関数をラップしてエラーハンドリングを共通化する

この記事はモバイルファクトリー Advent Calendar 2020 9日目の記事です。 こんにちは、ブロックチェーンチームの新卒エンジニアid:charinesです。 Nuxt.jsにおけるasyncDataの役割 ブロックチェーンチームでは、Nuxt.jsのサーバーサイドレンダリング機能を…

どのようなケースでインデックスマージが利用されるのか検証する

この記事はモバイルファクトリー Advent Calendar 2020 8日目の記事です。 はじめに こんにちは、エンジニアの id:mp0liiu です。 MySQLでは基本的にクエリを実行する際インデックスは1つしか効きませんが、インデックスマージという仕組みによって複数のイ…