2013年10月8日火曜日

Doodle (Google ロゴ) を全部見る

Google の検索画面で、何も入力せずに "I'm Feeling Lucky" ボタンを押すと、これまでの Doodle の一覧画面が出た!

一日違いで見逃したときは、ここで見ればいいのか。



2013年10月4日金曜日

MacBookAir 購入後の設定メモ

この秋、新しい OS (OS X Mavericks) が登場という、まさにこの時に新しい MacBookAir(まだ古いOS) を買いました。 13 インチです。

これまで、メモリ不足で煩わしい思いをしてきたので、今回は奮発して 8G の最大容量までアップグレードしました。 勢い余って CPU もアップグレードしました。

購入後に、最初にやったことの自分用メモです。


  1. ユーザー ID

    ターミナルでユーザー ID をプロンプトに表示するのであまり長くしない。


  2. OS アップデート

    App Store ーアップデート


  3. Xcode

    次の Homebrew でのパッケージインストール時に必要になるのでインストールしておく。
    また、ライセンス認証をしておかないと、Homebrew でのパッケージインストール時に警告がでるので一度起動しておく。(警告が出てもインストール自体は問題ないようですが。)


  4. Homebrew

    以前は MacPorts を使用していて特に不便を感じていた訳ではないのですが、 Homebrew が良い良いと見かけるので Homebrew をインストールする。

    Homebrew のページのシンプルな説明のおかげか、すごく分かりやすい印象です。
    とにかくパッケージは /usr/local にインストールされると言うのが分かるだけでも安心。

    Mac に元々入っているアプリケーションのバージョン違いなどをインストールした場合、このままだと元々入っている方が呼ばれてしまうので、パスの順番を変更しておく。

    パスの順番を変更するには /etc/paths ファイルを編集して、/usr/local/bin を先頭にする。


  5. iTerm2

    ターミナルは iTerm2 を使っています。

    iTerm2 をインストール後、表示色をマイルドにする SOLERRIZED をダウンロードしてきて、色のプロファイル設定でインポートする。

    あと、Emacs で現在行をハイライトする設定にすると、その行の文字が読めなくなるので、同じく色のプロファイル設定で "Minimum contrast" の設定を少し high 寄りにする。


  6. Emacs

    今まで使っていた MacBookAir の .emacs と .emacs.d をコピーして持ってくる。

    メタキーを "Command" キーの位置にしたいので、システム環境設定のキーボード設定で Command と Option を入れ替える。
    また、iTerm2 でもメタキーが効くように、iTerm2 のキーのプロファイル設定で "Left option key acts as" を "+Esc" にする。


  7. Zsh

    Homebrew で zsh をインストールし、シェルを zsh に変更する。今まで使っていた MacBookAir の .zshrc をコピーして持ってくる。

    [ シェルの変更 ]

    1. /etc/shells/usr/local/bin/zsh を追加する。(←これが homebrew でインストールした zsh)
    2. chsh -s /usr/local/bin/zsh でシェル変更。


  8. Google 日本語入力

    変換候補の精度が圧倒的に良いので、Google 日本語入力 をインストールする。

    インストール後、システム環境設定ー言語とテキストー入力ソースで「ことえり」のチェックを外す。


  9. 外部モニター & キーボードの接続、Magic TrackPad の設定

    家では外部モニターとキーボードを接続して、クラムシェルモードで使用しています。

    1. キーボードのドライバーインストール
    2. KeyRemap4Macbook のインストール。右シフトキーの横の "_" でバックスラッシュが入力できるようにする。
    3. 音がモニターから鳴るようにする。
      システム環境設定ーサウンドー出力、で出力する装置をモニタにする。
    4. (外付け)Magic TrackPad の設定
      これまで使っていた MacBookAir での Bluetooth ペアリングの解除をし、新たに新しい MacBookAir で設定し直す。


  10. その他

    マウスのポインターを大きくする。
    システム環境設定ーアクセシビリティーディスプレイ、でカーソルのサイズを設定。


<リンク>


2013年9月25日水曜日

Emacs バッファを読み込み専用にする

Emacs で現在編集中のファイルと同じ名前のファイルを開いたときに、どちらが元のファイルか分からなくなってしまうことがある。

ファイルのパスを表示するコマンドを見つけたが (C-x C-v)、同じ趣旨で、参照用として開いたファイルは読み込み専用にしておくと言う手もある。

コマンドは、C-x C-q

バッファを開いた状態で C-x C-q とタイプすれば読み込み専用になります。もう一度タイプすると解除されます。

読み込み専用時には、左下に "%%" が表示されるので、編集中のファイルか参照用のファイルかの区別がつきます。参照用ファイルを間違って編集することもなくなるので余計な気を使わなくて済むのもいい。

***

同じバッファ名だと区別がつかない時、バッファ名を変更するというのが王道なのかもしれませんが、M-x rename-buffer でバッファ名をタイプするのは少々面倒くさい。


<参考>

入門 GNU Emacs 第3版

<リンク> Emacs 現在のバッファのファイルパスを表示する


2013年9月23日月曜日

Emacs 現在のバッファのファイルパスを表示する

index.html とか manifest.json など、名前が決まっているようなファイルがあります。

そのようなファイルを編集している時に、過去はどうだったかと2つめの manifest.json を開くと、 もうどっちが編集中のものだったか分からなくなってしまいます。 やむなく、一回両方のファイルを閉じてもう一回開き直したりして・・・。

ファイルのパスが簡単に分ればいいのに。


ファイルのパスを表示するコマンド

Emacs で現在のバッファのファイルパスを知る方法が無いかと調べたら、こんなコマンドが有りました。

C-x C-v (find-alternate-file)

C-x C-v とタイプするとミニバッファに現在のファイルパスが表示されます。 確認できたら C-gで終了します。


C-g で終了?

実はこのコマンドは本来はファイルを間違えて開いてしまった時などに別の正しいファイルを開き直すコマンドです。
C-x C-f との違いは現在のバッファを閉じて新しいファイルを開くところです。

C-x C-v とタイプしてミニバッファに表示されたパスを編集して、目的のファイルを開く、というのが本来の使い方のようです。

今回はパスを知りたいだけなので、C-g で終了します。

<参考>

入門 GNU Emacs 第3版

<リンク> Emacs バッファを読み込み専用にする






2013年9月7日土曜日

git の見える化コマンド

git add や git commit はするけど過去を振り返ったり、状態を確認する時には戸惑ってしまうので、見える化コマンドをまとめておきます。 全面的に、"開発ツール徹底攻略 (WEB+DB PRESS plus)"の "はじめての Git" の記事を参考にしています。


1. git diff コマンド

  • インデックス(最後に 'git add' した状態)と現在の状態との差分を表示する
    $ git diff
    

  • コミット(最後に 'git commit' した状態)と現在の状態との差分を表示する
    $ git diff HEAD
    

  • コミットとインデックスの差分を表示する
    $ git diff --cashed
    



2. git log コマンド

  • 最新のコミットから順にログを表示する
    $ git log
    

  • ファイルの変更内容をパッチ形式出力する
    $ git log -p
    

  • 出力コミットの数を制限する
    $ git log -2        # 最新と一つ前の2つのコミットログを表示
    

  • ログメッセージの最初の一段落(要約部分)だけを出力する
    $ git log --pretty=short
    
  • ※ git commit する時にログメッセージは以下の形式で書くと良い。

    • 1行目:コミットする変更内容の要約
    • 2行目:空行
    • 3行目:変更詳細
    上記のような形式で書いておくと "git log --pretty=short" した時に要約部分だけが表示される。




3. その他

  • 今の状態では、どのファイルがコミットされるのかを確認する
    $ git status
    
  • 最新のコミット内容の表示
    $ git show       # git log -p -1 と同じかな?
    

<参考>

開発ツール徹底攻略 (WEB+DB PRESS plus)


2013年6月23日日曜日

Google Reader から Feedspot へ

Google Reader がついに今月いっぱいで終了してしまいます。
つくづく残念です。

「 Feedspot 」に乗り換えました。
フィードの登録とか編集は Google Reader に比べて手間がかかるのですが、閲覧はほぼ同じ感覚で出来ます。
これが Feedspot にした決め手です。

Google Reader から乗り換えるときは、登録データを Feedspot に移行出来ます。
Google Reader のデータをダウンロードするといくつかのファイルがダウンロードされますが、その中の xml ファイルが登録データです。
このファイルを Feedspot でインポートすると移行出来ます。

リンク:Google リーダーのデータをダウンロードする方法


2013年6月1日土曜日

JavaScript をコマンドラインで品質チェック( JSHint )

JavaScript の品質チェックツールである JSLint をコマンドラインから使えるようにしようと重い重い腰を上げました。

やり方を調べていると、"JSHint" なるものがあることを知った。
JSHint は『JSLint を元に、「より柔軟な設定ができる JSLint 」として』開発されたそうです。(JavaScript テクニックバイブルより)
確かに、JSLint はちょっと厳しすぎるように思う(JSLint の作者も言っているように)。
それに引き換え "Hint" とは、いかにも優しそうな感じする。
これはいい考えだ。



インストール


1) Node.js のインストール

JSHint は Node.js のプログラムとしてインストールできるのでまずは、Node.js をインストールします。 Mac の場合は Node.js の公式 HP からインストーラをダウンロードしてインストールします。


2) JSHint のインストール

Node.js をインストールした後で、Node.js のパッケージ管理システムを使って JSHint をインストールします。

$ sudo npm install -g jshint


JSHint を使ってみる

$ jshint test.js

実行してみると、あれっ? これだけ?
思った以上に警告が少なくてちょっと物足りない。



もうちょっと厳しく設定

JSLint と同様に JSHint でも警告の具合を調整出来ます。
設定ファイル .jshintrc に書きます。
.jshintrc はカレントワーキングディレクトリに置いてもいいし、ディレクトリツリーを上にたどっていった、どこに置いてもいいようです。
置き場所によって、プロジェクト毎の設定にもできるし、一括設定にもできる仕組みです。
とりあえず僕は home に置いておきました。

手始めに Enforcing Options の項目を全部 true に設定しました。(オプションは JSHint のページを参照)
jshint を実行。
大量に警告が出ました! これこれ!
あっ!

... line 12, col 17, Expected 'start' to have an indentation at 14 instead at 17.

そうそう、これこれ。
これが出ないと始まりません。やっと納得感。
インデントの位置がダメと言う警告で、"JSLint" で必ず見た警告です。

その後、ちょっと調節して下の様な設定になりました。
使いながらまた調節していきます。
JSHint は多分デフォルトで良い感じに警告をしてくれるんでしょうけど、結局、JSLint と同じような設定にしてました。

// file .jshintrc
{
        "bitwise": true,
        "camelcase": true,
        "curly": true,
        "eqeqeq": true,
        "es3": true,
        "forin": true,
        "immed": true,
        "indent": false,
        "latedef": true,
        "newcap": true,
        "noarg": true,
        "noempty": true,
        "nonew": true,
        "plusplus": false,
        "quotmark": false,
        "undef": true,
        "unused": true,
        "strict": true,
        "trailing": true,
        "maxparams": 3,
        "maxdepth": 3,
        "maxstatements": false,
        "maxcomplexity": 3,
        "maxlen": 80,
        "browser": true
}


参考: JS Hint (公式ページ)

JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技

リンク: JSLint で自分のコードをチェックしてみた