容量不足のMacbook Airをメモリーカードで128GB拡張

私の使ってるMacbook Airは右側にカードスロットがある。ここに挿せる拡張メモリーカードを使って容量を拡張できる。まじ盲点だぜ。

SSDを増設したり、新しいMacbook Airを買わずにこれでいける。デメリットとして誰でも簡単に抜き出せちゃうので、重要なデータは入れられないが (万が一のために暗号化フォーマットするといいかも)、写真とか音楽データとか頻繁に読み書きしないデータならここに入れとくと良い。

方法は説明しとくが質問は受け付けんし自己責任でしくよろ!

iTunesの移行

  1. iTunesを終了する
  2. ~/Music/iTunes を丸ごとコピーして元のフォルダは削除
  3. iTunesを起動する (altを押しながら)
  4. 新しいディレクトリを指定するウィンドウが表示されるので指示に従い新しいフォルダを指定する

iPhotoの移行

  1. ~/Picture/iPhoto Library.photolibraryを移動する
  2. optionキーを押しながらiPhotoを起動する
  3. 新しいフォルダを指定する

TimeMachineのバックアップ指定

この拡張メモリーカードはいわゆる外付けHDDと同じような扱いであるから、デフォルトではTimeMachineのバックアップに含まれていない。私がやってる今回のケースでは増設領域として常に使うのでバックアップに含めた。

Gitでコミットを修正する

Gitでコミットを修正する

git commit --amend -m 'commit message'

コミットメッセージに変更が不要な場合は以下のようにもできる

git commit --amend -C HEAD^

直前のコミットのメッセージで修正する

git stashでもっと小回りの効いた開発をする

一つの作業中に別の変更作業が発生した時、現在の作業を一旦終わらせるか、現在のブランチからブランチを切ってそちらにコミットするということをしていないか。

この前しったばかりなんだがgit stashというのがあって、これを使えば画期的な方法で変更内容を一時的に保存することができる。GitのGUI管理ツールの先頭にボタンがあったのにスルーして使ってなかったので調べて書いておく。

git stashの使い方

現在の変更を保存

git stash

変更を復元

git stash pop

git stash popは最新の退避データを復元するが、いくつも退避データを保存している場合は中から欲しいデータを取り出すこともできるようだ。そのためにはどの退避データから復元したいかをgit stash listで確認する。

$ git stash list
stash@{0}: WIP on master: e1c6d03 add .ideavimrc
stash@{1}: WIP on master: e1c6d03 add .ideavimrc

add .ideavimrcというのは作業ファイル時にチェックアウトしたところのコミットメッセージだな。重要なのは一番左のstash@{0}とかいうところ、これを使って指定したものを復元できる。

git stash pop stash@{0}

保存したデータは残るので使わずに残っているものはこのように削除

git stash drop

後ろに引数で作業ファイルを指定して削除もできる

実際の使用例

新規ファイルでaddされていないファイルにgit stashは使えない

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
testfile.txt
nothing added to commit but untracked files present (use "git add" to track)

git stashを実行してもローカルの変更は保存できませんでしたと出る

$ git stash
No local changes to save

git addで新規ファイルをaddする

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file:   testfile.txt

git statusすると変更がなくなった

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

そしてこのように保存が確認できた

$ git stash list
stash@{0}: WIP on master: e1c6d03 add .ideavimrc

UNIXでfindの条件に時間を使う

最近アクセスされたファイル一覧

ユーザーディレクトリ内の1分以内に読み込まれたファイルを一覧にできる。ファイル読み込みに付随した処理を行う時、また自分がなんのファイルを閲覧したのかを抽出したい時はこれ。

find ~/ -type f -amin 1

最近変更されたファイルの一覧

1分以内に修正されたファイルを一覧にできる。変更のあったファイルのみをアップロードしたい時とか、自分の変更の加えたファイルの一覧取得に使える。

find ~/ -type f -cmin 1

IntellijのVimを.ideavimrcでカスタマイズする

IntellijでもVimキーバインドが利用できる。Vimmerの私でもIntellijが使えるのはかなり再現度の高いVimキーバインドがあるおかげだ。

Intellijインストール時に最初にIdeaVim入れます? みたいなこと聞かれるんで、そん時に入れれば再現できるんだが、デフォルトでは検索してもハイライトされなかったりと微妙。

しかし.ideavimrcを入れればこの辺り設定できる

" 検索をファイルの先頭へ循環しない
set nowrapscan
" 小文字で検索したときに大文字小文字を無視
set smartcase
" 検索結果をハイライト
set hlsearch
" 不可視文字を表示する
set list

こんなのを作ってdotfilesあたりに.ideavimrcを入れておいてシンボリック貼るで完璧

ln -s dotfiles/.ideavimrc .ideavimrc

このファイルGithubに上げといたので使ってみて

takinoue/dotfiles · GitHub

Intellijでmonokaiなどのカラースキーマを利用する

IntellijでもVimのように好きなカラースキーマを設定できる。設定は簡単で設定ファイルをダウンロードしてきて、IntellijのFileのImport Settingsからjarファイルをインポートするだけ。

y3sh/Intellij-Colors-Sublime-Monokai · GitHub

インポート後適用されていなければEditorのColors & FontsからScheme nameでインポートしたカラースキーマを選択する。ちなみに同じMonokaiでもたくさんあるんだけど、ここで紹介しているSublimeMonokaiがおすすめ。検索した時のハイライトが黄色で見やすい。

できればMolokaiがいいのだがよくわからない。

Intellijで関数名や演算子のスペースの入れ方を設定する

例えば関数の後ろの括弧にスペースを入れたいとか、演算子の間にスペースは入れたくないとか人によってこだわりがあると思うが、Intellijではそのあたりの細かい設定もきちんと出来る。

Editor/Code Styleと入って行くと言語毎にその辺りの設定ができる

f:id:hoge:20150129212710p:plain

私はJavaScriptのスペース配置はこのように設定している

Gradleを使ってjarパッケージを作成する

コードはIntellijでGradleを使ったプロジェクトを作成する - hoge日記を使ってGradleのコマンドでjarパッケージを作成してみる

単純なコンパイル

いわゆるコンパイルはこれ

gradle compileJava

成功するとこんなメッセージが出る

BUILD SUCCESSFUL
Total time: 19.756 secs

jarパッケージを作成

このようにbulid.gradleを記述する。jarのあたりがMainClassの設定とかパッケージを内包させるかなどの設定を行っている。

apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.http-client:google-http-client:1.19.0'
}
jar {
manifest {
attributes 'Main-Class' : 'Hajimete'
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

jarファイルを作成

gradle jar

生成されたファイルはbuild/libに格納されているので実行する

java -jar hoge3-1.0.jar

example.comの結果が出力されれば成功。
Javaマルチプラットフォームで実行可能なので、ライブラリを内包すればどこの環境でもJavaさえインストールすれば動く。実行する側のハードルは非常に低いのが好き。

Thanks