アルパカログ

Webエンジニア兼マネージャーがプログラミングやマネジメント、読んだ本のまとめを中心に書いてます。

GAFAより身近なスーパーエンジニアから学ぶ「Engineers in VOYAGE」まとめ

「Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち」は、VOYAGE GROUPのソフトウェアエンジニアたちが事業を成長させてきた奮闘について、テスト駆動開発の和田卓人さんがインタビューするという形で書かれています。このエントリでは、「Engin…

Elixir DateTime型での日時の大小比較に比較演算子(不等号)を使ってはいけない

いくつかの広く普及しているプログラミング言語において、日時型同士の比較に比較演算子 (==や>など) を使うことはよくあります。しかし、Elixirでは日時型の比較に比較演算子を使うと思いもよらない結果になります。

Elixir リストをマップに変換する方法(List to Map)

プログラミングにおいて、連想配列のリストをなんらかのプロパティをキーにした連想配列に変換したいということはよくあります。このエントリでは、Elixirでマップのリストをマップに変換する方法を紹介します。

GitHub コードレビューでサジェスション機能を使って差分を提案しよう

GitHubを使ったチーム開発では、コードレビューの際に「ここはこう書いた方が良いと思います」といったコミュニケーションがよく発生します。そんなときはGitHubの差分のサジェスション機能を使うと、そのままコミット可能な差分を作成できるので便利です。…

NeoVim denite.nvimで自動プレビューするための設定紹介(auto preview)

Vim

denite.nvimを使うとファイル検索やgrepの使い勝手が劇的に向上します。さらにファイル検索やgrep実行時のdenite-filter画面でプレビューを表示すると、使い勝手が良くなるのでおすすめです。このエントリでは、denite.nvimでフローティングウィンドウを使っ…

Vim 目にやさしいカラースキーム「Iceberg」をTrue Colorで使うための設定

Vim

Vimでのこだわりのひとつにカラースキームがあります。カラースキームは単に見た目がかっこいいだけでなく、typoに気付きやすくしてくれたり、ディスプレイと長時間向き合うことによる眼精疲労を抑えてくれたりします。このエントリでは、目にやさしいだけで…

NeoVim ファイル検索もgrepもサクサクdenite.nvimの設定と使い方

Vim

Vimでファイル名をあいまい検索したり、ファイルの中身をgrepしたいと思ったときに、まず候補に上がるのがdenite.nvimだと思います。denite.nvimを使えばファイルを開いたりgrepするだけでなくカスタマイズしてもっといろいろなことがVimでできるようになり…

shell よく使うコマンドを履歴から素早く入力するfzfのインストール方法と使い方

テストを走らせたり、スクリプトを実行したり、よく使うshellのコマンドは素早く入力できればできるほど開発が効率良くなります。fzfを使うと過去に使ったコマンドを履歴からインクリメンタルサーチすることができ、とても便利です。そこでこのエントリでは…

Git コミットを整理しよう!便利な git rebase -i の使い方

Gitを使って開発していると「あ、このコミットさっきのコミットにまとめたかったな…」ってことがあります。コミットを整理することは、レビュアーの負担軽減にもなるので大切です。そこでこのエントリでは、ブランチをPushする前に git rebase -i を使ってコ…

NeoVimをpyenvベースでインストールして自動補完を有効にするまでの手順(Mac OSX)

Vim

NeoVimを始めるよくある動機のひとつに、自動補完のdeoplete.nvimのような強力なプラグインを使いたいというのがあります。しかし、deoplete.nvimなど一部のプラグインはPythonが必要なことがあり、環境構築は少々大変です。そこでこのエントリでは、NeoVim…

RSpec letとcontextを使ってテストの見通しを良くする方法解説

RSpecを始めたばかりの人にとって、letやcontextは最初は少し難しく思えるかもしれません。しかし、letやcontextを使いこなすことでテストの見通しを格段に良くすることができます。このエントリでは、RSpecのletとcontextの使ってテストの見通しを良くする…

Firestore データベースの使い方とルールの設定方法(Web/React)

Firebaseでアプリケーションを作るときは、データベースとしてFirestoreを使うのが便利です。FirestoreはクラウドベースのNoSQLで、FirebaseやGCPから簡単に扱うことができます。このエントリでは、Firestoreの簡単な使い方とFirestoreルールの設定方法を紹…

本質に迫る考え方「その仕事、全部やめてみよう」まとめ

「その仕事、全部やめてみよう」は、一見すると仕事の無駄を省くためのテクニックについて書かれた本かと思ってしまいますが、そうではありません。サブタイトルにもある通り、仕事の本質に迫る考え方について明快に書かれていて何度もハッとさせられます。…

React コンポーネントのアンマウント時のエラーを修正する方法(componentWillUnmount)

Reactアプリで表示を切り替えるためにコンポーネントをアンマウントしたときに、エラーが出ることがあります。このエントリでは、Reactコンポーネントのアンマウント時のエラーを修正する方法を紹介します。

心が晴れる考え方「菜根譚」まとめ

菜根譚は「心安らかであるためには」をテーマに、儒教、道教、仏教から生き方に関する言葉をまとめた書物で、そこには仕事や人間関係の悩みが絶えない現代人にも通用する考え方がたくさんあります。このエントリでは「菜根譚」の中から、心が重たくなったと…

React URLパスを定義してページ遷移する方法(react-router-dom)

react-router-domを使うと、ReactでURLパスによるページ遷移を実装することができます。しかし、ReactやSPAに慣れていない人にとっては、react-router-domの使い方に少し戸惑うかもしれません。このエントリでは、react-router-domを使ったページ遷移の実装…

shell コマンドを任意の引数で実行するxargsの便利な使い方

bashやzshなどのシェルにおいて、xargsコマンドは知ってると便利だけど知らない人にとってはよくわからないコマンドです。このエントリでは、普段私がよく使うxargsコマンドの使い方を紹介します。

過去エントリ加筆修正のお知らせ

過去に書いた3本のエントリを大幅に加筆修正しました。

React FirebaseでGoogleログインを実装する方法(Authentication)

ReactアプリにGoogleログインを実装したいときは、Firebase AuthenticationとFirebase SDKを使うと簡単です。むしろ、Firebase AuthenticationやGCPコンソールでのOAuthクライアントの設定の方でハマりがちかもしれません。このエントリでは、ReactアプリにG…

マネジメント関連エントリ加筆修正のお知らせ

過去に書いたマネジメント関連の下記4本のエントリを大幅に加筆修正しました。

shell 重複を除外する・重複を見つける(uniq)

bashやzshなどのシェルで行の重複を除外したり、重複を見つけるにはuniqコマンド(unique)を使います。

Firebase HostingでReactアプリをデプロイする方法

Firebase Hostingを使うと、Reactアプリを簡単に公開することができます。このエントリでは、Reactアプリが作成済みであることを前提に、Firebase Hostingへのデプロイ方法を紹介します。

shell 連続する整数を作る(seq)

このエントリでは連続する整数を作るシェルのseqコマンドの使い方を紹介します。

リモートワークでも雑談したい!試した2通りの方法のメリット・デメリット

リモートワークになってから、通勤のストレスから解放され、通勤に使っていた時間が自由に使えるようになりました。一方で、リモートワークで失われたものもあります。このエントリでは、リモートワークのチームで試してみた2通りの雑談方法を、それぞれのメ…

Mac キーボードのリピート設定を最速にしよう

Macのキーボード設定では、キーを押しっぱなしにした際のリピートの感度を設定することができます。デフォルトと最速設定では速さが全然違います。最速にするとキビキビ動くので、全然違いますよ。

Google Analytics 任意のURLパラメータをカスタムディメンションに送信する

Google Analyticsにはutm_sourceなど、トラフィックを表すutm_パラメータがあります。しかし、これらを使うとURLパラメータが長くなり、見栄えが悪くなってしまいます。そこで、このエントリでは?f=tのように独自で定義した任意のURLパラメータをカスタムデ…

Git git-completionでコマンドやブランチ名を補完する方法(zsh)

Gitコマンドは普段何度もタイプするので、効率アップのために補完を使うのがおすすめです。このエントリでは、zshでGitのサブコマンドやブランチ名を補完するgit-completionの設定方法を紹介します。

「あいつらは何もわかってない」の危うさ

「あいつらは何もわかってない」こんなセリフを、誰しも一度は言ったことがあるはずだ。でもこの考えは結構危険だ。何が危険なのか、書いてみたいと思う。

AWS 2段AssumeRoleするためのTerraform設定とCLIによる確認方法(ロールの連鎖)

AWSで、例えばあるユーザーからあるロールへAssumeRoleし、さらに別のAWSアカウントのロールへクロスアカウントでAssumeRoleしたいということがあります。このようなケースでは、AssumeRoleを2段で行う必要があります。このエントリでは、2段AssumeRoleする…

Docker ポリシー変更まとめ(2020年11月)

2020年11月1日にDockerのポリシーが変更されます。ポリシーの変更点は2つで、1つは非アクティブなイメージの保持期間、もう1つはイメージのpull回数制限です。このエントリでは、2020年11月1日に変更されるDockerポリシーの要点をまとめます。