2013/11/01

インセプションデッキ テンプレート

インセプションデッキとは?

アジャイルなプロジェクトで方向付けを行うためのツールです。
アジャイルについて学ぶ際にSCRUM BOOT CAMP THE BOOKアジャイルサムライ-達人開発者への道で存在を知りました。

詳細はこれらの書籍で確認していただくよろしいかと。また、アジャイルサムライの著者であるジョナサン氏のブログでもインセプションデッキに関する記事を読むことができます。


10個の質問


10個の質問とは、インセプションデッキ主要な構成物です。
これら10個の質問に答えていく過程でプロジェクトの方向付けを進めていくという仕掛けです。

  1. 我われはなぜここにいるのか(Why1)
  2. エレベーターピッチを作る(Why2)
  3. パッケージデザインを作る(Why3)
  4. やらないことリストを作る(Why4)
  5. 「ご近所さん」を探せ(Why5)
  6. 解決案を描く(How1)
  7. 夜も眠れなくなるような問題は何だろう(How2)
  8. 期間を見極める(How3)
  9. 何を諦めるのかをはっきりさせる(How4)
  10. 何がどれだけ必要なのか(How5)

テンプレート

インセプションデッキのアウトプットはプロジェクトのライフサイクルにおいて最も重要な事柄を示します。従ってプロジェクトが終結するまでチームメンバーの全員がこれを常に念頭において活動する必要があります。

そこでアウトプットを形として残すため一般的には10個の質問と質問への回答をPPTにし壁やホワイトボードに張り付けるなんてことをやります。PPTは当然自分で1から作る必要なんてなくテンプレートなるものが以下で公開されてるのでこれらを使ってインセプションデッキをやればよいわけです。

これらのテンプレートは初期の導入を少したすけてくれるツールです。また、インセプションデッキ自体もツールです。ツールである以上パーソナライズ、あるいは、カスタマイズし自分なりにうまく利用する方法を見つける必要があります。

2013/07/18

EC2インスタンス生成

無料アカウントで可能な範囲でAWSの各種サービスを検証中です。

ここではEC2のインスタンスをAWS Management Consoleを利用して構成する方法について説明します。

まず、Managment ConsoleにログインしてEC2 Dashboadを開き画面中央にある「Launch Instance」ボタンをクリックします。


インスタンスの構成に利用するウィザードの選択画面が表示されます。
選択可能なウィザードは以下の通りです。
  • Classic Wizard
    • 基本となるウィザード
  • Quick Launch Wizard
    • デフォルトのコンフィグレーションを利用し可能な限り素早くインスタンスを立ち上げる。
  • AWS Marketplace
    • オンライン・ストアであるAWS Marketplace上で公開されているAMIを購入して、AWS上で動作させる。
「Classic Wizard」以外はAMIにある種制約を導入し素早く目的にあったインスタンスを構成するためのものなので検証目的で基本的に自分で構成をしたいので「Classic Wizard」を選択します。


ベースとなるAMIを選択します。
最近追加(?)されたRedHatのAMIを利用します。
(なお、無料で利用可能なAMIはスターがついているもののみです。)


インスタンスのタイプを選択します。
無料枠では「T1 Micro」のみ選択可能です。
「Launch Instances」の「Launch into」では利用するサブネットを選択します。
VPCを利用しているとVPCのサブネットを利用するか選択できるみたいです。


インスタンスの詳細な設定を行います。
各項目の内容を下記の通りです。
  • Kernel ID:要確認!
  • RAM Disk ID:
  • Monitoring:サーバ監視オプションであるCloudWatchを利用する際はチェックを付けます。
  • User Data:要確認!
  • Termination Protection:終了を抑止するオプションです。
  • Shutdown Behavior:[重要]OSを停止した際のインスタンスの振る舞いを設定します。
    • Stop:インスタンスを停止する。ただし、再起動可能です。
    • Terminate:インスタンス停止後に削除されます。
  • IAM Role:要確認!
  • Tenancy:要確認!
  • Number of Network Interfaces:ネットワークインタフェースの数を指定します。



ディスクを構成します。
ここでは「Root」「EBS」「Instance Store」の各Volumeの構成を行えますが、とりあえずデフォルトのままで。



作成するインスタンスに対してタグを設定します。タグはインスタンスを識別するための文字通りタグです。1つのインスタンスに対して10個まで設定できるようです。複数のインスタンスに対して同じタグをつけることでグルーピングすることもできるようです。

どう使っていいかまだよくわかっていないのでとりあえず適当に。


※上記タグの件、デフォルトで表示されている「Name」というタグですが、必須として設定した方がよさそうです。設定しておかないとEC2 DashboardのINSTANCESでリスト表示される該当インスタンスのNameがemptyになってしまうようです。




SSHでインスタンスにアクセスするのに利用する秘密鍵を作成します。
タブで「Create a new Key Pair」を選択して、名前を適当に設定して
「Create & Download your Key Pair」をクリックし鍵をダウンロードします。
(なお、作成されるインスタンスへの公開鍵の設定は自動で行われるようです。)

画面キャプチャ取り忘れた(> <)

セキュリティの設定です。
とりあえずSSHがつながればいいのでデフォルトのままで。


最後です。
構成を確認して完了です。


エラーが出ていないか確認し、クローズします。


2013/07/15

JenkinsをApache経由でアクセス可能にする

Jenkinsを単独サービスでインストール後にApache経由でアクセス可能に設定を変更する手順について説明します。
インストール時に単独サービスとして起動する設定にすると、URLのプレフィックスの設定を変更する手段が管理コンソール上でみつからなかったので、設定ファイルを直接変更する必要があるようです。
ちょっといまいちですね。

前提条件

環境とかインストールの条件は以下の通りです。
  • OS:CentOS release 6.3 (Final)
  • Jenkins:1.522
  • インストール形式:RPM
条件が異なると設定ファイルの方法などことなる可能性があるのでご注意ください。

手順

手順の流れは以下の通りです。

  • Jenkinsの設定ファイルにURLのプレフィックスを設定
  • Jenkinsの再起動
  • Apacheの設定変更

Jenkinsの設定ファイルにURLのプレフィックスを設定

ここではURLを「http://Jenkinsサーバアドレス:8080/」形式から「http://Jenkinsサーバアドレス:8080/jenkins」形式に変更するという前提で説明します。
Jenkinsの設定ファイル/etc/sysconfig/jenkinsにURLのプレフィックスの設定を追加します。ファイルの最下段に以下の設定とおり設定を行います。

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""
## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS="--prefix=/jenkins"

Jenkinsの再起動

Jenkinsの管理画面にある設定の再読み込みを行っても上記で変更したURLのプレフィックスは起動パラメータなので反映されないので再起動を行います。

# /etc/init.d/jenkins restart
設定が反映されているか確認します。
# ps -ef | grep jenkins
jenkins  25090     1 99 05:41 ?        00:00:32 /usr/bin/java ~略~ --handlerCountMaxIdle=20 --prefix=/jenkins
ブラウザから「http://Jenkinsサーバアドレス:8080/jenkins」形式でアクセスし正常に動作することを確認して下さい。

Apacheの設定変更

Apacheに以下のリバースプロキシの設定を行い再起動します。
<ifmodule mod_proxy.c>
ProxyPass /jenkins http://127.0.0.1:8080/jenkins
ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins
ProxyRequests Off


<proxy "http://127.0.0.1:8080/jenkins/*">
    Order deny,allow
    Allow from all
</proxy>
</ifmodule>

ブラウザから「http://Jenkinsサーバアドレス/jenkins」形式でアクセスし正常に動作することを確認して問題なければ設定完了です。

2013/07/14

MavenのProxy設定

Proxy環境下でMavenを利用する場合、Proxyの設定が必要になります。ここではProxyの設定方法を紹介します。
Proxyの設定は2種類あります。
1つ目はシステム全体に対して設定する場合です。サーバなどはこちらの設定方法を取るべきでしょう。2つ目はユーザ個々に設定する場合です。こちらは開発者ごとにMavenを利用する開発環境で利用する方法になります。

システム全体に対して設定する場合

Mavenをインストールしたディレクトリ(M2_HOME環境変数に設定したディレクトリのことです。以下では${M2_HOME}と記載します。)の配下のconfディレクトリ直下にあるsettings.xmlに以下の内容でProxyの設定を追加します。


  ...
  
   
      true
      http
      プロキシサーバのアドレス
      プロキシサーバのポート番号
      ユーザID
      パスワード
      192.168.0.*|*.xxxx.com
    
  
  ...


ユーザ個別に設定する場合

ユーザ個別に設定する場合は、ユーザのホームディレクトリ(HOME環境変数がさしているディレクトリのことです。以下では${HOME}と記載します。)の配下にsettings.xmlファイルを作成し以下の内容を記載します。


  
   
      true
      http
      プロキシサーバのアドレス
      プロキシサーバのポート番号
      ユーザID
      パスワード
      192.168.0.*|*.xxxx.com
    
  

内容的には、システム全体に追加設定するときと全く同じ内容になります。システム全体に対する設定はsettings.xmlが既存のため、追加する形になりますが、ユーザ個別に設定する場合は既知の設定はないため、プロキシ関連の設定のみをファイルに記載する形になります。

2013/07/13

Jenkins インストール

Jenkins をLinuxにインストール手順について説明します。

環境

対象となる環境は以下の通りです。
  • CentOS release 6.4 (Final)

Jenkins バージョン

今回インストールするバージョンは以下の通りです。

  • 1.522

インストール手順

JenkinsはRPM形式で提供されているので今回はRPM版をインストールする手順について記載します。
まず最新のRPMをダウンロードします。
# wget http://pkg.jenkins-ci.org/redhat/jenkins-1.522-1.1.noarch.rpm
続いてrpmコマンドを使ってインストールを行います。
# rpm -ivh jenkins-1.522-1.1.noarch.rpm
サービスを起動して動作確認を行います。
# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]
ブラウザからアクセス以下の画面が表示されていることを確認します。なお、デフォルトではポート8080でサービスが起動しています。


Ruby インストール

Ruby をLinuxにソースコードからインストール手順について説明します。

環境

対象となる環境は以下の通りです。

  • CentOS release 6.4 (Final)

Ruby バージョン

インストールするRubyのバージョンは1.9.3系です。

インストール手順

大体の流れは次の通りです。
  1. ビルドに必要なツールの導入
  2. 依存するライブラリの導入
  3. Rubyのビルド

ビルドに必要なツール

ビルドに必要なツールはEPEL(エンタープライズ Linux 用の拡張パッケージ)で提供されているDevelopment Toolsパッケージを導入してさくっと終わらせてしまいます。
以下のURLからepel-release-6-8.noarch.rpmをダウンロードします。

  • http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# wget http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
警告: epel-release-6-8.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中...                ########################################### [100%]
   1:epel-release           ########################################### [100%]
EPELからDevelopment Toolsパッケージを導入します。
yum groupinstall "Development Tools"

依存するライブラリの導入

依存するライブラリは利用するgemなんかでも変わってくると思うので必要なものを導入するという感じになります。
私はいつも以下のようなものをあらかじめ導入してます。
  • openssl
  • openssl-devel
  • readline
  • readline-devel
  • zlib
  • zlib-devel
  • curl
  • curl-devel
  • libyaml
  • libyaml-devel
  • ImageMagick
  • ImageMagick-devel

Rubyのビルド

以下のURLからRubyのソースコードをダウンロードし、ビルド、インストールを行います。
ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
# cd /usr/local/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz
# tar zxvf ./ruby-1.9.3-p448.tar.gz
# cd ./ruby-1.9.3-p448
# ./configure | tee configure.log
# make | tee make.log
# make install | tee install.log

2013/06/25

複数バージョンのNode.jsを管理

ChangeLog を見ると分かりますが Node.js はバージョン・アップが頻繁に行われるため、これに対応して自身の環境の Node.js をバージョン・アップしていくのは非常に大変な作業です。また、昔作ったアプリを動かしたいので古いバージョンに戻したいといったシーンもあるかもしれません。
そこで複数バージョンのNode.jsを管理したいということになるわけですが、Ruby でそういった仕組ができてたのに端を発し Node.js でも同じようなことが可能になっています。

今回はWindows環境で利用可能な nodist についてインストールから使い方までを纏めようと思います。(なお、この手のツールは他にもあるようなので、調査したらまた記事を書きたいと思います。)

インストール

nodist は GitHub上のこちらのリポジトリで公開されていますので git clone でツールを取得します。
> git clone https://github.com/marcelklehr/nodist.git
次にnodistのルート配下のbinにパスをとおします。 最後にnodistのupdateコマンドを実行し依存するnodistが依存するNPMのライブラリを取得します。
> nodist update
ここまででインストールは完了です。 以下を実行し最新のバージョンが表示されることを確認します。
> nodist -v
0.3.7

Node.jsの管理

インストーラが完了したら Node.js を管理していきます。
まずは、利用可能なバージョンを確認します。
> nodist dist
  0.5.1
  0.5.2
  ~
  0.11.1
  0.11.2
非常にたくさんのバージョンが表示されます。 ここからもリリースが頻繁に行われている様相がうかがえます。 なお、コマンドの省略系でしょうか?以下でも同様の動作をします。
> nodist ds
  0.5.1
  0.5.2
  ~
  0.11.1
  0.11.2
確認できた最新バージョンの Node.js をインストールしてみます。 インストールはaddコマンド、あるいは、+コマンドを利用します。
> nodist add 0.11.2
0.11.2
インストールが完了したので、インストールされている Node.js のバージョンを確認してみましょう。 コマンドはlist、または、lsを利用します。なお、コマンドの指定が無い場合、インストール済みのバージョンが表示されるのでこれも合わせて確認してみましょう。
> nodist list
  0.11.2
> nodist ls
  0.11.2
> nodist
  0.11.2
今度は古いバージョン 0.10.12 をインストールしてみます。
> nodist add 0.10.12
  0.10.12
> nodist
  0.10.12
  0.11.2
ローカル環境に2つのバージョンをインストールできたので、利用するバージョンの切り替えをやってみます。 まず、0.10.12 をアクティベートしてみます。
 > nodist 0.10.12
  0.10.12
たったこれだけです。切り替わっているかを確認するには以下を実行します。
 > node -v
v0.10.12
ちゃんと指定した 0.10.12 が有効になっているのが確認できると思います。 では、今度は 0.11.2 に切り替えてみたいと思います。
 > nodist 0.11.2
  0.11.2
 > node -v
v0.11.2
0.11.2に切り替わっているのが確認できると思います。 

このように簡単にバージョンを切り替えられるのは非常に便利ですね。サーバサイドJavaScriptだけでなく、Node.js 上で動作するgrantやbowerといったJavaScriptの各種ツールが流行っているのでこういったツールは重宝するのではないでしょうか。

2013/06/22

msysGit

msysGitとはWindows環境で利用可能な分散型バージョン管理ツールのGit環境です。
GitHubの盛り上がりによってすっかり定着した感のあるGitですが、Windows環境でも十分な環境が整ってきています。

msysGitは、インストーラが提供されていて導入が簡単で最初にGitを試すにはよい環境だと思います。ただし、Linux環境等で利用されている周辺ツールなどが対応していないなど制約もあります。また、同時にインストールされるCUI環境のGit Bashでは日本語がまともに扱えないのでCUI環境をメインで使いたい方には注意が必要です。
Git自体の日本語の扱いは(主に日本語ファイル名ですが)、以前はとても使えない状態でしたが徐々に改善され、msysgit 1.7.10からUTF-8対応されてWindows環境で日本語ファイル名を使っても問題ない状態になりました。

今回はこのmsysGitのインストールから基本的な利用方法までを紹介したいと思います。

インストール手順

まずはインストーラをダウンロードします。
msysGitは、公式サイトの「Download」リンクをクリックし表示されたダウンロードページからインストーラを入手します。

公式サイト
ダウンロードページが表示されたらとりあえず、一番上に表示されている「Git-1.8.3-preview20130601.exe」をダウンロードすれば問題ないと思います。

Google Code ダウンロードページ


なお、Google Code上で配布されているので直接ダウンロードページにアクセスしても構いません。

ダウンロードが完了したらインストーラを起動します。
以下のウェルカム画面が表示された「Next」ボタンをクリックします。

インストールウィザード ウェルカム画面
ライセンス規約が表示されます。同意する場合は「Next」ボタンをクリックします。

インストールウィザード ライセンス規約
インストール先を指定します。Windows7環境では、「C:\Program Files (x86)\Git」がデフォルトです。基本的に特に変更する必要はないと思いますので、デフォルトのまま「Next」ボタンをクリックします。

インストールウィザード インストール先の選択

インストールするコンポーネントの選択画面です。内容は以下の通りです。
  • Additional icons : アイコンの配置に関する設定
    • In the Quick Launch : クイックランチにアイコンを配置
    • On the Desktop : デスクトップにアイコンを配置
  • Windows Explore integration : エクスプローラのコンテキストメニューとの統合に関する設定
    • Simple context menu (Registry based)
      • Git Bash Here
      • Git GUI Here 
    • Advanced context menu (git-cheetah plugin)
  • Associate .git* configuration files with the dfault text editor : Gitのコンフィグレーションファイルの関連付けに関する設定
  • Associate .sh files to be run with Bash : シェルスクリプトの関連付けに関する設定
  • Use a TrueType font in all console windows (not only for Gi Bash) : フォント設定 -> コマンドプロンプトで使用するフォントが英語フォントに変更されてしまうのでチェックを外す
個人的には必要性を感じないので、すべてチェックを外し「Next」ボタンをクリックします。

インストールウィザード コンポーネント選択
スタートメニューフォルダを選択します。
お好みのフォルダを指定して「Next」ボタンをクリックします。

インストールウィザード スタートメニューフォルダの選択
PATH環境変数の設定を行います。
内容は以下の通りです。
  • Use Git Bash only : Git Bash内でのみGitコマンドへのパスを設定する
  • Run Git from the Windows Command Promp : Git Bashに加えてコマンドプロンプト内でもGitコマンドへのパスを設定する
  • Run Git and included Unix tools from the Windows Command Prompt : Git Bash、コマンドプロンプト内の両方でGitとユニックスツール(コマンド)へのパスを設定する
上から順にWindows環境への影響が大きくなります。最下段の構成だとWindowsの純正コマンドとかぶるコマンド等については直接的に影響するのでお勧めしません。上2つのどちらかを選択しましょう。
私はデフォルトの状態で「Next」ボタンをクリックします。

インストールウィザード PATH環境変数の設定
Gitの改行コードに関連するオプションの指定です。
内容は以下の通りです。
  • Checkout Windows-style, commit Unix-style line endlings : チェックアウト時はWindowsスタイル、コミット時はUnixスタイルに改行コードの変換を行う設定
  • Checkout as-is, commit Unix-style line endings : チェックアウト時はないもしない、コミット時はUnixスタイルに改行コードの変換を行う設定
  • Checkout as-is, commit as-is : チェックアウト時、コミット時ともに変換しない設定
どういう環境で利用するかによって適切な設定は変わります。
私は自分でコントロールしたいので最下段を選択し、「Next」ボタンをクリックします。

インストールウィザード 改行コード設定
インストールが開始されます。

インストールウィザード インストール画面
インストール完了画面が表示されたら「Finish」ボタンをクリックし、インストール完了です。

インストールウィザード インストール完了画面

初期設定

インストール直後にやっておきたい設定に関する説明です。

Git Bash

msysGitのCUI環境を実行するためのシェル環境です。
Linxu系のコマンドが使えて便利なのですが、日本語がうまく扱えないのであまり利用しないかもしれませんが、とりあえずご紹介します。

HOME環境変数に格納されているホームディレクトリ配下にbash設定ファイル「.bashrc」を配置設定することができます。私はとりあえずプンプとの設定ぐらいは行います。

Git

Gitの設定です。
なお、Gitの設定の詳細は別のエントリで書きたいと思います。

UTF-8で日本語ファイル名のファイルをaddやcommitした際にファイル名がコードで表示されてしまうので以下の設定を行います。
git config --global core.quotepath false

前述の通りCUI環境で日本語がまともに扱えないのでGit Bash利用時にvimが開かないようにエディタを指定します。
git config --global core.editor "sakura.exe -CODE=4 -GROUP=9"


Gitではコミット時に名前とメールアドレスが記録されるので設定を行っておきます。
git config --global user.email hoge.piyo@example.jp
git config --global user.name "hoge piyo"


PUSH時にターゲットを指定しない場合のストラテジを設定しておきます。デフォルトでは同名のブランチを全てプッシュしてしまい思いもよらないブランチの変更をPUSHしてしまう可能性があります。(2.0ではsimpleがデフォルトになっています。)

git config --global push.default upstream

なお、push.default として設定可能な値は以下の4種類あります。

  • matching : 現在の(2.0より前のバージョンの)デフォルト値です。カレントでないブランチでも同名のブランチがリモートに存在すればプッシュしてしまう。
  • upstream : カレントに対してupstreamとして指定したブランチに対して名前が違ってもプッシュする。
  • simple : カレントに対して同名のブランチに対してプッシュする。
  • current : カレントに対してupstreamに指定されていなくても同名のブランチがあればプッシュする。
コマンドのエイリアスを設定します。git checkout を git co と短く書けるようになります。

好みで適当に設定してください。大概の操作は TortoiseGit で行うので、そんなに拘る必要はありません。git config --global alias.co checkout git config --global alias.br branch git config --global alias.st status


プロキシ環境下では、次のようにプロキシの設定も行なっておいてください。git config --global http.proxy http://example.jp:8080

とりあえず必要そうな設定はこんなところです。

PATH環境変数

インストールウィザードで設定を行った方は必要ありません。
私は自分でPATH環境変数を構成したいので、別途設定を行います。

gitコマンドが使えればとりあえずいいので、「C:\Program Files (x86)\Git\cmd」をPATH環境変数に加えます。

フロントエンド

msysGitに付属するCUI環境、GUI環境ともに使い易いものではないのでフロントエンドとして別のツールを導入します。

利用するツールはTortoiseGitです。
WindowsのExplore拡張として動作し基本的にすべてGUIで操作します。

まずはインストールです。
google code の TortoiseGit のダウンロードページからインストーラと言語パックをダウンロードします。
上の方に表示されているのがTortoiseGitのバイナリです。使っているPCのCPUアーキテクチャにあったものをダウンロードして下さい。下の方に表示されているのが言語パックです。Japaneseの行のものをダウンロードして下さい。


ダウンロードが完了したらTortoiseGit本体、言語パックの順でインストールを行います。
インストールウィザードが起動したら「Next」ボタンをクリックします。


ライセンス規約が表示されます。同意する場合は、「Next」ボタンをクリックします。


SSHクライアントの選択画面が表示されます。
TortoisePlink を利用しますので、そのまま「Next」ボタンをクリックします。


カスタムセットアップ画面が表示されます。
デフォルトの状態で問題はないと思いますので、「Next」ボタンをクリックします。


インストール確認画面が表示されたら「Install」ボタンをクリックします。


インストールが開始されます。


完了画面が表示されたら「Finish」ボタンをクリックしインストール完了です。


続いて言語パックをインストールします。
ウェルカム画面が表示されたら「Next」ボタンをクリックします。


すぐにインストールが開始されます。


完了画面が表示されたら「Finish」ボタンをクリックしインストールを完了します。


ここまで完了したらエクスプローラを起動します。
コンテキストメニューを表示し下図のようにTortoiseGitのメニューが表示されているのを確認して下さい。


コンテキストメニュー「TortoiseGit」→「Settings」を選択し設定画面を開きます。


メニュー「General」のLanguageで「日本語(日本)」を選択し日本語化します。
ここでいったん「OK」ボタンをクリックし設定を終了します。


サイドコンテキスメニューを表示すると日本語されてのが確認できます。
それでは設定の続きを行うのでサイド設定画面を開きます。



メニュー「一般」→「コンテキストメニュー」を選択します。
エクスプローラのコンテキスメニューのトップに表示するメニューを選択します。
なお、選択しないものはサブメニューとして表示されます。好みに合わせて選択を行ってください。

メニュー「一般」→「拡張メニュー」を選択します。
コンテキストメニューのサブメニューにも表示したくないメニューを選択します。好みに合わせて選択を行ってください。選択してないメニューをShiftを押しながら操作することで表示さることできるので、必要なさそうなものはとりあえずチェックを付けてしまってよいと思います。

メニュー「一般」→「代替エディタ」を選択します。
自分が使い慣れたテキストエディタを登録しておくとよいと思います。

メニュー「差分ビューア」を選択します。
WinMergeなどを利用されている場合は、「異なるリビジョンの比較に使用するプログラムの設定」に登録しておくと便利です。

とりあえずこれぐらい設定しておけば特に不自由はないと思います。

その他の環境

他のWindows上で利用可能なGit環境も紹介しておきます。
  • Cygwin:CUI環境が好みという方はCygwinを利用されるとよいと思います。
  • JGit (フロントはEGit)

2013/06/18

リモートデスクトップを有効にする

「コントロールパネル」→「システムとセキュリティ」→「システム」を選択し以下の画面を表示する。なお、ショートカット「Win + P」でも開くことができます。


画面が表示されたら「リモートの設定」し「システムのプロパティ」画面が表示されます。(リモートタブが表示された状態になっているはずです。)



リモートデスクトップのフィールドセットの「リモート デスクトップを実行しているコンピュータからの接続を許可する(セキュリティのレベルは低くなります)」を選択します。

「Administrator」権限を所有しているユーザを利用している場合は、ここまでのオペレーションでリモートデスクトップによる接続が許可された状態になります。「Administrator」権限を所有していないユーザに対してリモートデスクトップによる接続を許可したい場合は「ユーザの選択」ボタンをクリックします。


「追加」ボタンをクリックします。


「選択するオブジェクト名を入力してください」の入力欄に、リモートデスクトップ接続を許可するユーザーア名を入力し「OK」をクリックします。

2013/06/17

Chromeのメモリ消費

Chromeのメモリ消費状況はアドレスバーに『chrome://memory-redirect/』を入力すると専用の画面が表示され確認することができる。

2013/06/12

Ruby on Rails 新規アプリケーションの作成

今更ながらRuby on Rails 新規アプリケーションの作成方法についての説明です。
Ruby on Rails で新規アプリケーションを作成するには、rails newコマンドを利用します。
書式は以下の通りです。

 rails new APP_PATH [options]

APP_PATHはrailsアプリケーションのルートディレクトリのパス(相対パスでの可)です。
optionsには、以下のオプションが指定可能です。
カテゴリ オプション 説明
基本オプション -r, [--ruby=PATH] Rubyバイナリのパスを指定する。
-b, [--builder=BUILDER] アプリケーションビルダーのパスを指定する。(ファイルシステムのパスまたはURL)
-m, [--template=TEMPLATE] アプリケーションテンプレートのパスを指定する。(ファイルシステムのパスまたはURL)
[--skip-gemfile] Gemfileの作成をスキップします。
[--skip-bundle] bundle installをスキップします。gemを追加定義するのでよく使います。
-G, [--skip-git] .gitignoreファイルの作成をスキップします。
-O, [--skip-active-record] Active Record ファイルの作成をスキップします。
-S, [--skip-sprockets] Skip Sprockets files
-d, [--database=DATABASE] デフォルトのsqlite3以外のデータベースを利用する場合に指定します。指定したデータベースの設定がコンフィグに反映されます。(指定可能なデータgベース:mysql/oracle/postgresql/sqlite3/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc)
-j, [--javascript=JAVASCRIPT] デフォルトのjQuery以外のJavaScriptライブラリを利用する場合に指定します。指定可能なライブラリは要調査。
-J, [--skip-javascript] JavaScriptライブラリの設定をスキップします。
[--dev] Setup the application with Gemfile pointing to your Rails checkout
[--edge] Gemfile に設定するRailsのリポジトリを指定します。
-T, [--skip-test-unit] Skip Test::Unit files
[--old-style-hash] Force using old style hash (:foo => 'bar') on Ruby >= 1.9
ランタイムオプション -f, [--force] すでにファイルが存在する場合に上書きする。
-p, [--pretend] Run but do not make any changes
-q, [--quiet] Suppress status output
-s, [--skip] ファイルが既に存在する場合は作成をスキップする。

2013/06/05

Spring 3 組込みデータベースサポート

概要

組込みデータベースサポート機能はSpring 3で追加された機能で、アプリケーションと同一VM上で動作するオン・メモリなデータベースサポート機能です。DBの実装についてはSpringが持っているわけではなく外部ライブラリを利用します。サポートしているDBは以下の3つです。

  • HSQLDB
  • H2
  • Apache Derby
なお、この機能はorg.springframework.jdbc.datasource.embeddedパッケージにより提供されます。

ユースケース

想定されるユースケースとしては以下の通りです。他に何かアイデアがあれば是非教えて下さい。

  • サンプル
  • 教育
  • プロタイプ(なにを検証するかにもよります)
  • テンポラリデータ(トランザクションの中間データなど)
  • データ・キャッシュ(今はもっといい方法があるのでキャッシュとしては最適ではないかもしれません)

利用方法

Bean定義XMLに設定する方法

  
    
    
  
組込みデータベースの設定はjdbc名前空間のembedded-database要素として定義します。この要素によって定義されたBeanはデータソースとして振る舞います。従ってトランザクションマネージャなどからデータソースとして参照することになります。type属性にはデータベースのタイプを指定します。ここで指定する文字列は列挙方EmbeddedDatabaseTypeの属性の文字列表現になります。

初期化に関するデフォルトの振る舞いは、embedded-database要素として内に定義されたSQLスクリプトを無条件に実行します。なお、実行順は上から優先的に実行されます。

プログラムで制御する方法

初期化は以下の通りです。
  EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
  builder.setType(EmbeddedDatabaseType.H2);
  builder.addScript("schema.sql");
  builder.addScript("test-data.sql");
  db = builder.build();
シャットダウン処理は以下の通りです。
  db.shutdown();

参考情報


2013/05/26

UbuntuにOracle JDKをインストール

Oracle のJDKをインストールする手順について説明します。

リポジトリを追加します。

$ sudo add-apt-repository ppa:webupd8team/java
[sudo] password for shin:
以下のPPAをシステムに追加しようとしています:
 Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK6 / JDK7 / JDK8). There are no actual Java files in this PPA. More info: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
 詳しい情報: https://launchpad.net/~webupd8team/+archive/java
[ENTER] を押すと続行します。ctrl-c で追加をキャンセルできます
gpg: 鍵輪「/tmp/tmp50epnt/secring.gpg」ができました
gpg: 鍵輪「/tmp/tmp50epnt/pubring.gpg」ができました
gpg: 鍵EEA14886をhkpからサーバーkeyserver.ubuntu.comに要求
gpg: /tmp/tmp50epnt/trustdb.gpg: 信用データベースができました
gpg: 鍵EEA14886: 公開鍵“Launchpad VLC”を読み込みました
gpg: 処理数の合計: 1
gpg:               読込み: 1  (RSA: 1)
OK
$ sudo apt-get update
$ sudo apt-get install oracle-java6-installer
$ sudo apt-get install oracle-java7-installer
$ sudo update-alternatives --config java

2013/05/14

みなとみらい

今日はいい天気でしたので「みなとみらい」に行ってきました。

グランドセントラルテラスの1Fにあるモスカフェで昼食をとりランドマーク方面にぶらぶらっと。

美術館前を抜ける道は天気がいい日は気持ちいいです。(夏は噴水も涼しげですしまた格別ですね。)






もうかなり前から工事してた美術館前の土地にはすっかり建物ができあがってました。どうやら大型のショッピングモールみたいですね。6月にオープン予定みたいです。



横浜ワールドポーターズとか赤煉瓦方面へいかない人が増えそうな気がします。オープンしたら行ってみようと思います。

2013/05/12

Android向け無音カメラアプリ

HTC Jに無音カメラを入れようと思い探していたらいいの見つけました。

かなり前に無音カメラをいくつか試してみましたが、画質が落ちるのと動きがもっさりしていたのが気になって結局使わなくなりそのまま放置していました。Android 4 の標準カメラアプリがすばらしくよいものだった(特にリレーズタイムラグが速い)ので、無音に執着することもないかと。
携帯カメラの使い方は人によって違うと思いますが、私は日常生活の中で思い立ったときにつかうって感じなのでやっぱり音が気になる。イベントなんかいかにもみんな写真撮りますって雰囲気じゃないので。

思い立ち改めて探してみたところ見つけたのがCamera ICSです。特徴はなんといってもAndroid標準のカメラアプリに拡張機能を組み込む方式をとっているって点です。無音化する機能は、この拡張機能の1つとして内包されています。つまり、満足している標準カメラアプリの良さはそのまま残り、ほしかった無音化機能を取り入れられるということでさっそくインストールしました。

使ってみたところ画質やリレーズタイムラグなど劣化するといった印象はありません。機能は標準カメラアプリのものを継承しているのでまったく問題はないですが、コントロールの配置がいろいろ変っています。これは慣れの問題なのでそれほど気にしていませんが、1つ問題があります。広告が表示される位置です。操作部の端などではなく写真のエリアに表示されておりかなりウザイ感じです。これも慣れれば気にならなくなる(?)ことを期待してしばらく使ってみようと思います。
Camera ICS
Camera ICS - Google Play
なお、広告が気になるという方は有料版のCamera ICS+をどうぞ。

2013/05/05

Shuttle製ベアボーン比較 Part 1

2013/05/05時点で発売されているShuttle製ベアボーンの比較です。Shuttle製ベアボーンに関してはShuttle XS35GT V2をベースにすでに1台持っているのですが、結構気に入っているしコストも低いことから2台目を検討しようと思い立ちました。

現時点でShuttleのサイトで掲載されているプロダクトは以下の通りです。
スペックの概要を比較してみます。
製品名 CPU チップセット 対応メモリ サイズ 64bit対応 価格
XS35GSV3L Intel Atom D2550(2.13GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 38.5(幅) x 252(奥行) x 162(高さ) 21,580
XS35V3L Intel Atom D2550(1.86GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 38.5(幅) x 252(奥行) x 162(高さ) × 16,640
XS36VL Intel Atom D2550(1.86GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 36(幅) x 220(奥行) x 160(高さ) × 16,640
XS35GS V2 Intel Atom D525(1.8GHz) Intel NM10チップセット DDR3-1333 SO-DIMM×1 38.5(幅) x 252(奥行) x 162(高さ) 21,405
XS36V Intel Atom D2700(2.13GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 36(幅) x 220(奥行) x 160(高さ) × -
XS35GS V3 Intel Atom D2700(2.13GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 38.5(幅) x 252(奥行) x 162(高さ) 21,580
XS35 V3 Intel Atom D2700(2.13GHz) Intel NM10チップセット DDR3-1066 SO-DIMM ×2 38.5(幅) x 252(奥行) x 162(高さ) × -
XS35 V2 Intel Atom D525(1.8GHz) Intel NM10チップセット DDR3-1333 SO-DIMM×1 38.5(幅) x 252(奥行) x 162(高さ) 16,647
価格は2013/05/05時点のAmazon上の最安値です。

Blueprint

Blueprintとは

BlueprintとはCSS FrameworkにカテゴライズされるOSSです。メタ言語環境やアセット管理といったのものとは異なり、デザインにかかわる作業を支援するものです。

参考情報


2013/05/03

シェルで乱数を扱う

私はシェル上で乱数をあまり使うことはないのですが、そもそもUNIX機を中心に使っていた時代には簡単に扱えませんでした。シェル上で乱数を扱うには実は2つの方法があります。1つはLinuxでbashを前提とした環境依存の方法です。もう1つの方法はシェルに依存しない方法です。

シェル変数RANDOM

まずはbash上でのみ利用できる方法です。前段にてLinuxという条件を記載しましたが、シェルスクリプトを実装する際は、/bin/shで動くことを前提に通常は実装すると思いますのでLinuxを前提という条件を加えています。ご存知の方も多いと思いますが、Linxuでは/bin/shはbashのシンボリックリンクになっている点に基づいています。
bashでは、シェル変数としてRANDOMが容易されています。このRANDOM変数には0~32767までの整数がランダムに格納されます。実行例は以下の通りです。

 $ echo $RANDOM
 31129
 foo=$RANDOM
 ech $foo
 25999
シェル変数を利用するだけなので、非常に簡単に乱数を扱えるのがお分かり頂けたかと思います。

乱数疑似デバイスファイル

続いてはシェルに依存しない方法を紹介します。
疑似デバイスファイル(/dev/nullなどのことです。)の中に/dev/randomがあります。これを利用して乱数を生成します。この疑似デバイスファイルを使って乱数を生成するには、odコマンドを利用します。od(Octal Dump)コマンドはファイルや標準入力のデータを 8進数・10進数・16進数で表示するコマンドです。デフォルトは 8進数ダンプでダンプを行います。実行例は以下の通りです。

 $ od -An -N4 -tu$ 
odコマンドのオプションをいくつか指定しています。まず桁数についてですが、「-N」オプションが入力のバイト数、「-t」が出力のバイト数をそれぞれ指定しています。これらオプションに続く数値は合わせておく必要があります。なお、-N4以上を指定しても残念ながら桁数をふやすことはできないので注意して下さい。また「-t」オプションに続く「u」はunsigned decimalです。
「-A」オプションは表示するオフセットの基数を指定するオプションです。dが10進数、oが8進数、xが16進数、nがオフセット非表示を表します。乱数を取得したいのでオフセットを表示する必要はないため「n」を指定しています。

2013/05/02

コマンドラインでの移動制御

CUI環境でシェルが提供する移動制御機能を扱います。前提とするシェルは、Linux標準のbashです。
移動制御ですが、これはカーソルの移動制御のことです。bashでは初期状態でキー・バインディングが設定されていて、キー操作によるカーソルの移動制御を行うことができます。今では十字キーでカーソル動かしている方を多々見かけますが、キー操作で制御した方が早くて楽です。
主なキー操作は下表の通りです。

キー操作 移動制御動作
Ctrl+f カーソルを右に移動します。
Ctrl+b カーソルを左に移動します。
Ctrl+d カーソル位置の文字を削除します。
Ctrl+a カーソルを行の先頭に移動します。
Ctrl+b カーソルを行の末尾に移動します。
Ctrl+k カーソル位置から行の末尾までの文字を削除します。
Ctrl+u カーソル位置から行の先頭までの文字を削除します。
Ctrl+w カーソル行の直前のワードを削除します。
Ctrl+l カーソル行より上をクリアします。
Esc+f カーソルを直後のワードに移動します。
Esc+b カーソルを直前のワードに移動します。
Esc+d カーソル位置からワードの末尾までを削除します。

2013/05/01

Linuxの/bin/sh

概要

Linuxの/bin/shはBourneシェルかと思いきや、実はBashへのシンボリックリンクになっています。Bashはshの上位互換のシェルなので基本的には問題ないらしいです。ちなみにshとして起動した場合は、sh互換モードというモードで起動するようです。

 $ ls -l `which sh`

 lrwxrwxrwx. 1 root root 4 10月  8 12:04 2012 /bin/sh -> bash

sh互換モード

bashのsh互換モードについての説明です。

シェルオプションの違い

bashで起動した場合とshで起動した場合のシェルオプションを比較してみます。

$ sh
$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           on
privileged      off
verbose         off
vi              off
xtrace          off

$ bash
$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off

上記の結果を見ると分かると思いますが、shで起動した場合シェルオプションの25行目の「posix」が有効になっているのが分かります。このオプションの有効/無効の違いによってbashがBourneシェルに近い動作をするように切り替えています。

2013/04/27

HerokuでSSL接続

ただのメモです。SSL接続環境の利用についての詳細はこちらで確認して下さい。
独自のドメインや証明書を利用する場合は有償みたいですが、私は以下のドメインを利用させていただいているので(Piggyback SSLなので)特に設定等の必要もなくhttpsでの接続が可能です。
  • myapp.heroku.com/ 
  • myapp.herokuapp.com/

2013/04/25

FulcrumをHerokuへ設置

 $ git clone git://github.com/malclocke/fulcrum.git
 $ cd fulcrum
 $ bundle install --without development test
 ~
 Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
 $ heroku login
 Enter your Heroku credentials.
 Email: <-- メールアドレスを入力
 Password (typing will be hidden): <-- パスワードを入力
 Authentication successful.
 $ heroku create アプリケーション名
  !    Name is already taken
 $ vi config/initializers/gramil.rb <-- Gmailを使う設定を実施
 $ git init
 $ git add .
 $ git commit -m 'initial'
 $ git push heroku master
 $ heroku rake db:setup
 $ heroku open

Shell変数

基礎

シェル変数の特徴的な部分は、定義と参照で表記が変わる点です。
定義の際は、「変数=値」といったスタイルで記載しますが、参照の際は、「${変数}」という形で変数を表記します。
もう一つ定義する際は、「=」と変数、値の間は連続している必要があります。スペースなどを間に入れてしまうとエラーになるので注意が必要です。

位置パラメータ

シェルスクリプトで引数を利用するときに必要な概念です。
スクリプト実行時に渡された引数は、位置パラメータという特殊な変数を通して参照します。
位置パラメータは、ドル記号「$」とそれに続く数字1文字で構成されます。$1 $2 $3 ・・・といったスタイルで、数字の部分が引数の位置を表します。
数字1文字と書きましたが、これでは9個までしか引数を受け取れないということになってしまいます。9個以上の引数を扱いたい場合は、「shift」コマンドを利用します。shiftコマンドを実行すると位置パラメータが参照する引数がずれる、つまり$1が第2引数、$2が第3引数を参照するといった具合です。
例えば、以下の内容でtest.shを作成し、実行してみると動きがわかります。

#!/bin/sh

while [ 0 -le $# ]
do
  echo $1
  shift
done
実行すると10個以上の引数をshiftコマンドを使って参照をずらし$1で順番に参照できているのが分かります。
$ sh test.sh a b c d e f g h i j k l m
a
b
c
d
e
f
g
h
i
j
k
l
なお、「$#」は引数の数が可能される特殊変数の一種です。 では、test.shを以下の通り変更するとどうなるか見てみましょう。
#!/bin/sh

while [ 0 -le $# ]
do
  echo $1
  shift 2
done
実行例は以下の通りです。
$ sh test.sh a b c d e f
a
c
e
上記の実行例を見ると分かると思いますが、参照が2個づつスライドしています。このようにshiftコマンドにスライドさせたい数をしていることで指定した数だけ参照をずらすことが可能です。 もう1とつ忘れていけないのが「$0」は何を参照しているかということです。
#!/bin/sh

echo $0
実行例は以下の通りです。
$ sh test.sh
test.sh

$0は上記の通りスクリプト名を参照しています。

特殊変数

$-(ダラー・ハイフン)

シェル起動時のフラグを保持しています。
シェル起動時のフラグとはシェルオプションと言われるもので、$-は有効になっているシェルオプションを表現するフラグの文字列として表現したものです。
この変数の内容を出力していみると以下のように表示されます。このhimBHという文字列がシェル起動時のフラグです。

 $ echo $-
 himBH

ではシェルオプションにはどういったものがあるか見てみます。シェルオプションの一覧を表示するにはsetコマンドを使います。出力例は以下の通りです。
$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
igncr           off
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off

各シェルオプションとフラグの関係は下表の通りです。

シェルオプション フラグ 説明
allexport a 変数代入時に自動的にexportを実行する。
braceeexpand B プレース展開を有効にする。
emacs - emacs入力モードを有効にする。
errexit e コマンドが異常終了ステータスで終了するした場合にシェルを終了する。
errtrace E
functrace T
hashall h コマンドの位置を記憶し、検索時間を短縮する。
histexpand H !(exclamation point:エクスクラメーション・ポイント)によるヒストリの置換を有効にする。
igncr -
ignoreeof -
interactive-comments -
keyword k ?
monitor m ジョブコントロールを有効にする。
noclobber C すでに存在するファイルへのリダイレクトを禁止する。
noexec n
noglob f ワイルドカード(*、?)の展開を禁止する。
nolog -
notify b バックグラウンドジョブが終了した際の通知を有効にする。
nounset u 未設定パラメータへの参照をエラーにする。
onecmd t ?
physical P cd/cwdで-Pオプション(シンボリックによるパスではなく実際のパスを表示)を常に有効にする。
pipefail -
posix -
plivileged p 特権モードを有効にする。
verbose v コマンド入力時にエコー表示する。
vi - vi入力モードを有効にする。
xtrace x コマンド実行時に、展開後のコマンド行表示を有効にする。
対話モードの場合はiフラグが立ちます。以下のように対話モードであるか検出する例を見かけたりします。
[[ "$-" != *i* ]] && return

ブレース展開

{}(ブレース)で囲まれた短縮表現を展開することです。
呼んでもサッパリ分からないと思いますので、とりあえず以下の例を見てください。

 $ echo {a..z}
 a b c d e f g h i j k l m n o p q r s t u v w x y z
{}(ブレース)で囲まれた短縮表現の「a..z」が展開されて出力されているのが分かると思います。
また、固定の文字列と組み合わせてこんな使い方もできます。
 $ for v in test_{01..09}.log; do
 > echo ${v};
 > done
 test_01.log
 test_02.log
 test_03.log
 test_04.log
 test_05.log
 test_06.log
 test_07.log
 test_08.log
 test_09.log
可変部分を短縮表記でなくても動作します。
 $ for v in test_{a,b,c}.log; do
 > echo $v
 > done
 test_a.log
 test_b.log
 test_c.log
空文字的なものも含めることができます。
 $ for v in test{,.log}; do
 > echo ${v}
 > done
test
test.log
*(アスタリスク)も利用できます。アスタリスクは該当するファイル名に展開されるようです。
 $ echo {.vimrc,.*}
 .vimrc . .. .bash_history .bash_profile .bashrc .gem .gitconfig .inputrc .profile .screenrc .ssh .vim .viminfo .vimrc

2013/04/18

VimライクなキーバインドでChromeを操作

好みの問題かもしれませんが、私はプログラミングしている最中などはキーボードのみですべての操作したくなります。もちろブラウザの操作も例外ではありません。ショートカットキーなるものがあるので、これを覚えればキーボードのみでそれなりに操作することは可能ですが、覚えるのって結構めんどくさいです。
メインのブラウザはChromeなのでなにか便利な拡張機能はないかと探してみたところVimiumなるものを見つけました。Vimのキーバインドを利用してChromeを操作できるということなので、結構きにいって利用してます。
サイトによってはうまく動作しないケースもあります(例えばBloggerで記事を書いているときとか)がそれなりに使てますのでよろしかったら使ってみてください。

機能


柔軟にカスタマイズ可能なショートカット機能を提供しています。
また、ショートカットの中でもいくつか面白い機能があるので後ほど紹介します。

ショートカットを調べる

ショートカットですが、詳細を紹介するようなことは、ここではしません。
?」でヘルプ画面が表示されるので、慣れるまで(忘れたりしたとき)はこれで確認してください。

find mode

Vimiumには「find mode」というモードがあります。Vimで文字列検索するのと同じ感覚で「/」でfind modeに切り替えると検索窓が右下に表示されます。



キーワードを入力してEnterってやると検索を実行してくれます。「n」で次を検索、「N」で戻るって感じでvimライクな操作が可能です。ただ、残念なのがシングルバイトのキーワードしか扱え無い点です。日本語での検索ができないので英語のサイトを見ない人にはいまいちですかね。。。

リンクのショートカット表示

便利な機能をもう1つご紹介します。「a-f」とキー操作して下さい。


画面に表示されているリンクにショートカットを動的に割り当ててくれます。リンクの横に黄色で表示されているやつです。表示されているショートカットキーを入力すると該当するリンクをたどってくれます。find modeでは日本語入力ができないので、日本語のサイトではあまり使う機会がありませんが、こちらは日本語でも対応できるので結構つかえると思います。ちなみに英大文字でショートカットは表示されていますが、小文字で反応してくれるので手軽に利用できます。
忘れそうになりましたが、ショートカットをクリアする場合は「Esc」です。

2013/04/17

SourceTreeのインストール

仕事でGitHubを利用することになったのですが、Git関連の知識・スキルが習熟していないメンバーが多い中、NetBeansのGitサポートも弱いことが分かり、GUIで分かりやすく安定したクライアントでいいものはないかということで、アトラシアン社製のGitクライアントを利用することにしました。

今後、少しづつ情報を整理していこうと思いまずはインストール編です。

対象のバージョン

今回対象とするSourceTreeのバージョンは、1.0.8 です。

SourceTreeインストール条件

対応している分散バージョン管理システム(DVCS)はGitMercurialです。
Windowsは7以降がインストール条件となっています。
また、Mac OS も10.6以降であれば対応していています。

なお、今回はGitのみの利用を想定した手順となります。

料金

トライアル期間がついておりまずは無償で利用できます。トライアル期間以降はユーザ登録をすることで無償での利用を継続することができます。

インストール

アトラシアンのダウンロードページからバイナリをダウンロードします。
ダウンロードした「SourceTreeSetup_1.0.8.exe」をクリックしインストーラを起動します。

インストーラが起動します。インストールするには[Next >]ボタンをクリックします。



インストールフォルダの選択画面が表示されます。インストール先をデフォルトから変更する場合は[Browse...]ボタンをクリックし変更します。インストール先が決まったら[Next >]ボタンをクリックします。


[Install]ボタンをクリックしてインストールを開始します。


インストールが開始されます。


インストールが終了したら[Finish]ボタンをクリックします。


SourceTreeの初回起動時にMercurialがインストールされていない場合、以下のダイアログが表示されます。Mercurialは利用しないので[I don't want to use Mercurial]をクリックします。


初期設定画面が表示されます。

コミット時に利用するユーザ名とメールアドレスを設定します。
デフォルト値を変更する場合は、[Full Name]と[Email address]欄に入力します。

[Allow SourceTree to modify your global Git and Mercurial config files]は、SourceTreeに対してグローバル設定ファイルに対する変更を許可するかどうかを指定します。コマンドラインから実行する場合も同じ設定で利用したい場合はデフォルト(チェックがついたままの)状態にします。

[Configure automatic line ending handling by default (recommended)]は、ファイルの改行コードに関する処理を自動にするかどうかを指定します。これを有効にするとコミット時などに改行コードをLFに自動で変換します。個人的にはOFFにするがお勧めです。

[I agree to the SourceTree license agreement]は、ライセンス規約に同意するかの確認です。同意する場合はチェックし[Next]ボタンをクリックします。



SSHクライアントの設定を行います。
Windows環境の場合は、[Use PuTTY/Plink (recommended)]を利用するのがお勧めです。
クライアントを選択したら[Next]ボタンをクリックします。


SSHキーの設定を行うかの確認です。
HTTPSで接続するので[No]をクリックします。
なお、SSHで接続する場合は[Yes]ボタンをクリックしてキーをロードして下さい。


[Finish]ボタンをクリックし初期設定を完了します。


SourceTreeが起動すればインストールと初期設定の完了です。