Python
Git
MySQL
docker
MacBook

ソシャゲエンジニアの自分が開発MacBookにインストールしているアプリやら設定やら

開発速度を上げたいんです

いかにして仕事を速く終わらせるか」を追求するのが大好きです。
なぜかと言うと、早くタスクを終わらせてゲームをしたいから:relaxed:

開発速度を上げるには、スキルを高めることも当然重要ですが

頻繁に行っている作業を、アプリや設定で高速化・自動化しつつ、いかにミスを減らすように工夫するか?

これが、チリツモでかなり重要だと思っています。

そのために、僕が開発機である Mac book の設定やら、インストールしているアプリやらをメモしたいと思います。
(随時更新していきます)

ちなみに、対象プロジェクトは以下をイメージしています。

  • 業界
    • ソーシャルゲーム
  • プログラム言語
    • Python
  • フレームワーク
    • Django
  • DB
    • MySQL
  • KVS
    • Redis
  • バージョン管理
    • Git

MacBookの設定

トラックパッドの速さ

必須レベル :heart: :heart: :heart:

MacBookの設定で、トラックパッドのカーソルを速くしておきます。
カーソルを移動させる時間は無駄でしかないので、少ないスライドで目的地まで到達させたいためです。

MacBookの「システム環境設定」→「トラックパッド」の中の「軌跡の速さ」を最速にしています。(できればもっと速くしたい!!)

トラックパッド_2.jpg

インストールしているアプリ

Chrome

必須レベル :heart: :heart: :heart:

説明不要ですね。メインで使用する Webブラウザとしてインストールしています。

JavaScript や HTML を書く時に便利な デベロッパーツール の使いやすさが突出しているので、管理画面などの CSS や js の解析速度が上がります。

また、検索速度が向上する好みのエクステンションがあるところが選択ポイントです。

インストールはこちらから。
Chrome公式サイト

Chrome にインストールしているエクステンション3選

ato ichinen

Google の検索結果を、1年以内のサイトに絞りこむ Chromeエクステンションです。

エンジニアの情報は刻一刻と新しくなっていき、1年以上前の情報は参考にならなくなってしまっている場合が多いです。

このエクステンションを使うと、Google 検索結果にfilter設定が表示され、簡単に最終更新が1年以内のサイトに絞ることが可能になります。
サイトを開いて頑張って英語を読んだ後に「あぁ...この情報は古すぎて使えない...orz」といったタイムロスを軽減できます。

当然、劣化しない情報は、絞り込んでしまうと件数が減ってしまいますので気をつけないといけませんが。

ato ichinen

使い方は、ここが分かりやすそうです。
ここ1年以内の情報のみをGoogle検索したい時は「ato-ichinen」が便利!

インストールはこちらから。
Chromeウェブストア - ato ichinen

Evernote Web Clipper

Evernote と連携するための Chrome エクステンションです。

サイトの情報を直接 Evernote に取り込めるのが主目的ですが、選りすぐっている(はずの)自分の Evernote の記事を関連表示してくれるので非常に便利です。
僕は、過去にまとめたこともすぐ忘れるメモリが少ない脳の為、1から調べ直してしまうことも多いのでタイムロスを軽減できます。

aws_-_Google_検索.jpg

使い方は、ここが分かりやすそうです。
ブックマークはもう不要!? 『Evernote Webクリッパー』を使ってみよう

インストールはこちらから。
Chromeウェブストア - Evernote Web Clipper

Restlet Client - REST API Testing

リクエストヘッダやパラメータをカスタマイズしたAPIを登録しておき、実行することができる Chrome エクステンションです。

Restlet Client

ソーシャルゲームアプリ開発を行う関係上、APIの実行テストを行うことが多いので重宝します。
pytestで APIテストを実行することも多いのですが、こちらだと柔軟に試せて助かります。

また、URLに環境変数を設定しておけば、ローカルサーバと開発サーバの切り替えも簡単に行えるので素晴らしく便利です。

例)
http://${server_url}/api/gacha/top

使い方は、ここが分かりやすそうです。
Qiita - Restlet Clientで始めるREST APIテストの自動化

インストールはこちらから。
Chromeウェブストア - Restlet Client - REST API Testing

docker

必須レベル :heart: :heart: :heart:

こちらも言わずと知れた仮想コンテナです。
複数プロジェクトの開発に携わることが多く、異なるバージョンの開発環境をローカルで構築するにあたって使っています。
バージョンが重要な MySQL や nginx、 uwsgi、 supervisord などは docker で構築しています。

docker.jpg

使い方やインストールはこちらから。
Docker for Mac

ちなみに、複数のコンテナに分けて構築するので、Docker Compose も必須です。
GitHub - Docker Compose

Pycharm

必須レベル :heart: :heart: :heart:

Python の統合開発環境 (IDE)です。

よく vim でコードを書く達人を見かけますが、僕はその域に達していないので(...というか永遠に不可能なので)、IDE を使うことで圧倒的な速度アップになります。

関数の参照ジャンプやコマンド補完、pep8 の規約違反表示なども魅力ですが、git との連携機能も優れています。
例えば git blame を表示でき、そこからコードの修正履歴をすぐ追えるので、運用時の「どうしてこうなった!?」という調査時に、かなり時短できます。

ファイル単位の log や diff もヴィジュアル的に確認できて、とても分かりやすいです。

Pycharm

インストールはこちらから。ちなみに、僕は Community版(無料版) をインストールしています。
Pycharm公式サイト

Evernote

必須レベル :heart: :heart: :heart:

学んだことや作業内容など、(すぐ忘れてしまうので)後で確認できるようにメモするのに使っています。
先に書いた通り、Chrome の検索キーワードと連携もできるので、同じことを調べなおしてしまうロスも防げます。

Evernote

インストールはこちらから。
Evernote公式サイト

Evernote用に行う設定

シングルクォーテーション変換をオフにする

デフォルトだと、入力したシングルクォーテーションやダブルクォーテーションが変換されてしまい、大変不便です。
例) '' と入力したのに ‘’ になる。

これを回避するために、MacBook の「システム環境設定」→「キーボード」→「ユーザー辞書」タブの中の、「スマート引用符とスマートダッシュを使用」のチェックを外します。

キーボード

スペルの自動修正をオフにする

Evernote のメニュー「編集」→「スペルと文法」→「スペルを自動修正」のチェックを外してスペルチェックをオフにします。
この設定を行っておくと、Evernote がよかれと思って自動修正を行ってくれた結果、思いもよらない変換をされてしまうのを阻止できます。

Alfred

必須レベル :heart: :heart: :heart:

アプリランチャーです。
ショートカットキーで Alfred の入力バーを表示させ、そのまま起動させたいアプリの名前を入力することで、そのアプリを起動できます。
ブラインドタッチ状態から手を動かすことなくアプリが起動できてステキです。

Alfred.jpg

例えば、意外と起動する 電卓 は、calc と入力してenterを押せば起動可能です。

インストールはこちらから。
Alfred公式サイト

Sequel Pro

必須レベル :heart: :heart: :heart:

MySQLのGUIツールです。
ssh経由での接続も可能なので、踏み台経由でしか接続できない MySQL サーバにも接続可能です。

SequelPro.jpg

使い方は、ここが分かりやすそうです。
Qiita - Sequel PRO:データベースに接続する方法

インストールはこちらから。
Sequel Pro公式サイト

iTerm2

必須レベル :heart: :heart: :heart:

ターミナルアプリです。
標準のターミナルに較べて、細やかな設定が出来るので自分好みにカスタマイズ可能です。

iTerm2

特に便利な機能が、作業中のデスクトップにターミナルを被せる設定です。開発中は、ターミナルと IDE を頻繁に行き来しますので、この設定を行っておくと、かなりの時短になります。

Qiita - iTerm2のおすすめ設定〜ターミナル作業を効率化する〜

iTerm2設定

それと、サーバコマンド実行ログは非常に(行が)長いこともあり、再実行できないコマンドでは、切れてしまうと困るので表示を無限にしています。

iTerm2設定

インストールはこちらから。
iTerm2公式サイト

憶えておくべき便利なショートカットキー

iTerm2のショートカットキー
・ タブ系
  ・ command + t   
      ... 新規タブを開く
  ・ command + ←   
      ... 左のタブに移動する
  ・ command + →   
      ... 右のタブに移動する
・ 画面分割系
  ・ command + d   
      ... 垂直画面分割
  ・ command + shift + d   
      ... 水平画面分割   
  ・ option + command + (↑ or ↓ or ← or →)   
      ... 矢印の位置の分割画面に移動する
・ 便利系
  * optionボタンを押しながらクリックする  
      ... カーソル移動

Skitch

必須レベル :heart: :heart: :heart:

チャット上で、仕様を確認したり、発生した問題などを伝えたい時に便利なアプリです。

キャプチャした画面に対して、説明用に線を引いたり、矢印を付けたり、文字を書いたりできます。
skitch を起動しっぱなしにしていなくても、command + shift + 5 を押すと skitch が起動して範囲キャプチャからの加工を行えるのでとても便利です。

Skitch

インストールはこちらから。
Skitch公式サイト

Atom

必須レベル :heart: :heart: :heart:

テキストエディタです。
パッケージをインストールすることでカスタマイズ可能で、好みのパッケージが多いので使っています。

Atom

インストールはこちらから。
Atom公式サイト

Atomにインストールしているパッケージ8選

僕が Atom にインストールしている、8つのパッケージです。
パッケージのインストール方法はこちら。
Atomでパッケージをインストールする方法とメニューの日本語化

vim-mode-plus

Atom が vim 入力になるパッケージです。
vim 入力の方が速いから・・・
というのもありますが、一番の理由は「vim をサーバにログインした時にしか使わないので、細かいコマンドを忘れないように普段から使いたいから」です。

file-icons

Atom の「Project tree view」に、ファイル形式に該当するアイコンが表示されるようになるパッケージです。
パッと見でファイル形式が分かるので、とても便利です。

file-icons

markdown-scroll-sync

markdown-preview は同期してスクロールしてくれるパッケージです。
デフォルトだと同期してくれないので、編集しながら確認する時にかなり不便です。

markdown-preview

show-ideographic-space

全角スペースと半角スペースにマークを付けることにより、入力ミスをなくすパッケージです。

show-ideographic-space

highlight-selected

選択したキーワードが同じファイル内にあったらハイライトしてくれるパッケージです。

file-icons

minimap

ファイルの全体をイメージできるミニマップを表示してくれるパッケージです。
正直、単体では必要ないのですが、これ以降に記述する、minimap 関連のパッケージがとても便利なのでインストールしています。

minimap

minimap-highlight-selected

選択したキーワードを、minimap 上でもハイライト表示してくれるパッケージです。

minimap

minimap-bookmarks

ブックマークしている行を minimap 上で表示してくれるパッケージです。

minimap-git-bookmarks

SourceTree

必須レベル :heart: :heart: :heart:

git のGUIツールです。
git コマンドを使用した方が柔軟に操作出来ていいのですが、ロググラフと diff の確認のみ SourceTree を見た方が分かりやすく早いので使っています。

SourceTree

インストールはこちらから。
SourceTree公式サイト

Clipy

必須レベル :heart: :heart:

コピーした履歴を一覧表示して、選択することによりペーストできるアプリです。

Clipy

更に、このアプリが便利なのは、「スニペット」という、よく使うキーワードを定型文として登録・貼り付けできるところです。
僕は、よく使う長ったらしい shell コマンド(各サーバへのsshコマンドとか)を登録しています。
ローカルだったら .bashrcalias を登録しておけるのですが、サーバ上だと登録できないので便利です。

使い方は、ここが分かりやすそうです。
Macのクリップボード履歴の決定版「Clipy」の詳しい使い方。

インストールはこちらから。
Clipy公式サイト

Redis Desktop Manager

必須レベル :heart: :heart:

Redisサーバにアクセスして、データを確認できるアプリです。

Redis_Desktop_Manager.jpg

インストールはこちらから。
Redis Desktop Manager公式サイト

Gifted

必須レベル :heart: :heart:

動画ファイルを、gif画像にコンバートできるアプリです。
Mac の画面で操作した内容を、チャットや Qiita などに貼り付ける時に便利です。

Gifted

画面録画の行い方から、gif の作成まで、ここが分かりやすそうです。
Qiita - 【Mac】自分の画面を録画して、即gif動画化する方法

インストールはこちらから。
Mac App Store - Gifted

Cyberduck

必須レベル :heart:

FTPクライアントソフトです。
SFTPも使えます。
サーバからログをダンロードしたり、素材などをアップロードする場合、基本的には scpコマンドで行いますが、頻度が高い場合は面倒くさいのでこのツールを使っています。

Cyberduck.jpg

インストールはこちらから。
Cyberduck公式サイト

Charles

必須レベル :heart:

プロキシツールです。
携帯から API や HTML へのアクセスした時のリクエスト・レスポンスを、Charles を通して確認することができます。

Gifted.jpg

使い方は、ここが分かりやすそうです。
Qiita - CharlesでiOS Simulatorの通信をキャプチャする方法

インストールはこちらから。
Charles公式サイト

shellに設定・インストールしているコマンド

git-completion

必須レベル :heart: :heart: :heart:

git コマンドの入力補完を行ってくれます。
shell コマンドと同様に、TABキーを押すと、git コマンドとブランチ名を補完してくれます。

git-completion

設定方法はここが分かりやすそうです。
Qiita - bash で git コマンドのブランチ名などを補完するには

git-prompt

必須レベル :heart: :heart: :heart:

現在作業を行っている git のローカルブランチの状況を表示できます。

一番便利なのは、ブランチ名が表示されることです。
モリモリ作業してコミットを行った後、別ブランチだったことが何度もありますので...

test__bash_.jpg

設定方法はここが分かりやすそうです。(git-completionも入っちゃってますが)
Qiita - 「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】

aws-cli

必須レベル :heart: :heart: :heart:

AWS系の操作コマンドを実行できるようになります。
例えば S3 のファイルを別バケットにコピーしたり...など、AWSコンソールよりも簡単に実行できて便利です。

インストール・設定方法やS3に関するコマンドはここが分かりやすそうです。
Qiita - AWS CLI で S3 にファイルをアップロード

jqコマンド

必須レベル :heart: :heart: :heart:

json文字列をフォーマット、かつ整形表示してくれるコマンドです。

例えば、実行結果のjson出力がこんな文字列だったとした場合、パッと見では構造が理解できません。

json例
{"action":"start","os":{"name":"linux"},"sys":{"name":"atomic","level":"INFO","info":{"type":"normal"},"time": 1443057867}}

でも、jqコマンドを通すと、分かりやすくなります。
(コマンドが長くなってしまうので、上記文字列をクリップボードにコピーしている前提で例を書きます)

単純な整形例
$ pbpaste | jq
{
  "action": "start",
  "os": {
    "name": "linux"
  },
  "sys": {
    "name": "atomic",
    "level": "INFO",
    "info": {
      "type": "normal"
    },
    "time": 1443057867
  }
}

更に、"sys" 内の "info" 要素のみ抽出したい場合は、.sys.info をパラメータとして渡すとできます。

要素の切り出し例
$ pbpaste | jq .sys.info
{
  "type": "normal"
}

更に詳細な使い方はここが分かりやすそうです。
Qiita - jq コマンドを使う日常のご紹介

インストールは HomeBrewで行えます。

jqのインストール方法
$ brew install jq

favdir

必須レベル :heart: :heart:

ディレクトリをお気に入り登録できるコマンドです。

favdir例
# お気に入り登録
~$ cd ~/docker
~/docker$ reg docker

# お気に入り一覧表示
~/docker$ show
docker         ~/docker
test1          ~/test1
test2          ~/test2

# お気に入りディレクトリ test1 に移動
~/docker$ gg test1
~/test1$ 

# お気に入りディレクトリ docker に移動
~/test1$ gg docker
~/docker$ 

インストール方法・使い方はここが分かりやすそうです。(というか作者のページでした)
Qiita - お気に入りディレクトリをブックマーク的に管理する

colordiff

必須レベル :heart: :heart:

diff の結果に色を付けて分かりやすくするコマンドです。

4992C72F-26CB-4C4D-8FEB-C2A380CB6725.png

インストールは HomeBrewで行えます。

colordiffのインストール方法
$ brew install colordiff

pwgen

必須レベル :heart:

ランダム文字列パスワードを生成してくれるコマンドです。
サーバなどでパスワードを設定する時に使用しています。

pwgen例
$ pwgen -B 10
ip4ong4Eeb maiyae7aej xeikah4ahT aukiev3ahX Neb3aghaiV aeth3oree3 Ua9jai3aaC
haeza4iegi tohy9cohbi Noovaeja9C vee3dahsi9 uph3eiV9Ph shuabah4Ee nai4heir9E
goo4axeMo3 Ee9Eiphaid eethahMee7 ooX4ooV7sa kahTiHoh7b aeh7pheisa chaegh4jie
AhfeiP4ahb fahx4Ahchu nos9Nuquoh iph7phohro faiy4oobai AoTei7iesh eef3wu4Aec
jiL3FeC9Ei coi3yee3Ho eeCeiyah3u pi4AhW4uga Aesh3yohx7 phiavo9chi thoh7ahwox
oob3bep3Ei zohm4Per3a ohkahNgah9 eiPhoo3aiw eefoo7nioj zohNgei7ci fiuMif9ei4
teetoh4Vee ahquoh7Wae Perekeis4t Eezuxayai3 yauL9eetah doosaizoh9 Thoowuch3g
up4fe3Ac4d aeghae9oob ejoohae4ae xixah9gaiw geir4om9ej eNu9rie7sh ohbaiPuo4W
eipohTae7e yaef9Uhaif Xi3ThaiXeP cei3ikebiw aid7iephoz zee4Eibo9L eejifeey7V
mei9sam3fa hah4Wecher Pox9ui9eec Eew9ootah7 gooz9uXied chahT4Thai rohC7emair
quoh7Koove ahx4aighi4 wahn4KeiPi aa4ii9ieb3 rooPh4ha9e Eif9oe7tu4 Jiveich3vu
Theishina7 eequoo3ieH meiNgae4aH aefi4jaise aeh3ohghuK aeCi4Eez4x Ye3hiuh3di
eiw9ahng3W afe9haexai aemahdei3U Lae7Piec9v ood4aiHoo4 uot3ohteir raefooJ4Ja
giirae9eeM ze3Cengaht ohPiej4ooy que9aodaiy aequ7Eigoo quahfaev3u eeweihai4e
bah4aekuFi aechoo9Uup ahnofoo4Ah oKee3vie4v ier7Eiyum3 ahsh3ta3co ood9ohx3uo
Aexaejie4i ooNgeK9wie Lemeequoh7 ita9boweer eepeud9Coo va4Nukong9 ohnoPhe3vu
zaeTh4veik ahka7ahVae Chah9shu7w eiJoi9ahgh iuquahV3ie vie3duk3To shoo4Pe3ii
ahwiyoo9Ai ue3arohVah jesheitu3p Caetha9obu iem4Aishex eeNa4vaeno ohhoNg3Ahw
Mobei7faev aoth7eeThe ec3XuareeY foiVai9eim taichie9Yu jeiNae9wo3 thof3ieTai
aetoa7aeph ooM3ahjied EThoh7ooxu oat7ash4th NaeH9oo7oo eiKe3eet7E ohph4Eex7w

インストールは HomeBrewで行えます。

pwgenのインストール方法
$ brew install pwgen

tree

必須レベル :heart:

Windowsでは標準で使える、ディレクトリ構造を表示するコマンドです。
README.md でアプリの説明を書く時に使用しています。

tree例
$ tree ~/
/Users/hoge/
├── cron.d
│   ├── batch.crontab
│   ├── develop.crontab
│   ├── feature1.crontab
│   └── production.crontab
├── newrelic
│   ├── develop.ini
│   └── feature2.ini
└── supervisord.d
    ├── develop.conf
    └── feature1.conf

インストールは HomeBrewで行えます。

treeのインストール方法
$ brew install tree