株式会社モバイルファクトリー の技術ブログ

VS Code + Code Runner でPerlテストをボタン一つでprove実行

普段Perlのテストはターミナル上で prove t/hoge.t で実行しています。 これを楽するために、VS Codeの拡張機能 Code Runner - Visual Studio Marketplace を使い、編集中のファイルを開いたまま、ボタン一つで実行できます。 拡張機能 Code Runner をインストールします settings.json を開いて以下の設定を追記します { " code-runner.executorMapByGlob ": { " *.t ": " prove " } , VS Codeウ

miroをもっと使いたい!miroアプリ 3分クッキング

miro アプリ 弊社は モバワーク を導入していて、チームメンバーも普段はフルリモートワークをしています。 チームでは オンラインホワイトボード として miro を導入していて、例えばこんな事に使ってます。 ボード上でタスクチケットの管理 残りタスクと進捗の可視化 タスクの見積もりと作業可能時間の集計と比較 特に最後はmiro SDKを使ったmiroアプリを開発して実現

hyperfineを使ったCLIツールのベンチマーク

CLIツールのパフォーマンス気になりますね 皆さん普段様々なCLIツールをご利用かとは思いますが、そのCLIツールのパフォーマンスが気になったことはありませんか?私はまれによくあります。今回はそういうときに役に立つ hyperfine をご紹介です。 github.com 基本的な使い方は以下のとおりです。 $ hyperfine ' ここに測定したいコマンドを書く ' sleep 0.3 を測定すると以下のよ

MySQL 5.7 でクエリだけでランキングを実現する方法

ここ半年、競プロをこつこつ頑張っているエンジニアの id:dorapon2000 です。好きなアルゴリズムは累積和です。 解決したい課題 「MySQL 5.7 内で完結できるように、クエリだけでランキングを取得したい」 データベースのデータを使って調査をする際、ランキングを出したいこと、あるいはランキングを基にした処理をしたいことがあります 1 。アプリケーション側で集計・

外からやってくる値から TypeScript の型を守るライブラリ・ツールまとめ

こんにちは、新卒エンジニアの id:d-kimuson です 先日 type-predicates-generator という型定義からユーザー定義型ガード・アサーション関数を自動生成するツールをリリースして 紹介記事 を書いたのですが、感想とかを眺めていたら同じく外部から来た値に安全な型付けをするためのライブラリやツールの情報をいくつも観測しました この辺りのランタイムチェックライブラリ

プロダクトバックログが複雑すぎる!

はじめに はじめましての方ははじめまして、ブロックチェーンチームの id:Nanamachi です。夏頃まではエンジニアとして関わっていましたが、故あって現在はプロダクトマネージャとしての道を進んでいます。今日はそんな新米プロダクトマネージャが、膨れ上がるプロダクトバックログ、特にその中で発生するチケットの依存関係を可視化するために、ホワイトボードツ

Vue.jsでoffsetWidth, offsetHeightが取得できない時は

はじめに offsetWidth や offsetHeight などの幅や高さを取得する関数たちは、 display: none になっている場合、0を返します。 Vue.jsで要素の表示非表示に v-show を用いている場合、 v-show はその要素に display: none を付与して制御を行うので、非表示中の offsetWidth は0として返ってくることになります。 < template > < div > < p v-show= "false" > ここのoffsetWidthは0pxです! &lt

行動を妨げる指標の罠

チーム開発で、指標をうまく使えると便利ですが、この「うまく使う」というのはなかなか難しく、罠はあると思っています。 今回は、この罠を、信号機に例えて、説明してみたいと思います。他にも、罠があればぜひ教えてください! 壊れた信号 壊れた信号 データが壊れていて、信用できない そのまま放置されている 信号無視 信号無視 人によって、良し悪しの判断

コミットメッセージにブランチ名を自動挿入する

こんにちは、新卒エンジニアの id:kaoru-k_0106 です 何をしたか 私のチームでは、コミットメッセージの先頭にチケット番号を入れるルールがあります。 例えば、 PROJECTNAME-123 〇〇の処理を変更した だと、 PROJECTNAME-123 の部分がチケット番号です。 最初はこれを手動で入力していたのですが、時々入力を忘れることがあり自動挿入しようと思いました。 ちょうど、トピック
Git

Perlのコンテキストクイズにツールで答えてみた

はてなさんのコンテキストクイズに拙作の Contextual-Diag で答えてみました。これでコンテキストマスターですね!? github.com use Test2::V0; use CDD; like( warnings { length ( cdd ) }, [ qr/wanted SCALAR context/ , qr/evaluated as STR/ ], 'length <ここ> ... STR in SCALAR' ); like( warnings { if ( cdd ) {} }, [ qr/wanted SCALAR context/ , qr/evaluated as BOOL/ ], 'if (<ここ>) ... BOOL in SCALAR' ); like( warnings { for my $i ( cdd ) {} }, [

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

TSの型迷宮に迷い込んだエンジニアの id:dorapon2000 です。 ディレクトリのパーミッションを調べるとき、皆さんどうしていますか。例えば /etc のパーミッションを確認したいとき、以前の僕はこうです。 ❯ ls -l / total 104 drwxr-xr-x 2 root root 4096 6 月 28 18:34 bin drwxr-xr-x 3 root root 4096 6 月 28 18:35 boot drwxr-xr-x 15 root root 3640 11 月 16 10:02 dev drwxr-xr-x 128 root root 12288 11 月 2 10:55 etc drwxr-xr-x 4

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

 次のコードの通り、 DBIx::Sunny を利用した際、 $dbh->select_one を呼び出せるにも関わらず、 $dbh->can('select_one') が false となります。   can の挙動が、デフォルトと異なり、一見すると困惑します。 use Test2::V0; use DBIx::Sunny; use Types::Standard qw(HasMethods) ; my $dsn = "dbi:SQLite:dbname=test.db" ; my $dbh = DBIx::Sunny-> connect ( $dsn , 'root' , '' ); ok ! $dbh->can ( 'select_one' ), '不思議な挙

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

VSCode でホバーして型情報を見ようとすると、交差型はプロパティが展開されません プロパティの型を展開する Mapped Types を通すことで省略せずにプロパティを見ることができます。プロパティが交差型になっていることもあるので、再帰的にプロパティを Mapped Types に通すような型を定義しておいて、通すことでプロパティを全て確認できます type Expand < T > = T extends o

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

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

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

こんにちは!エンジニア組織開発責任者の id:kfly8 です。 今年もモバイルファクトリーのAdvent Calendarをお送りします🎉 今年のアドベントカレンダーは「 今日から使える技術 」をテーマにコンパクトにお届けしていきます! *1 今予定しているキーワードを見ると・・「TypeScript」「Vue.js」「Perl」「CLI」「MySQL」「AWS」「地図」「プロダクトマネジメント」などがあります。