2014年1月26日日曜日

SourceTreeにgithubを設定する / リポジトリをローカルにクローンする

さて、ようやく開発の「か」の字に辿り着けるだろうか、ね。
まずは、SourceTreeでgitを使ってみるために、githubの設定をする。
参考URL: Mac で Git するなら SourceTree がオススメ

SourceTreeにgithubアカウントを追加

起動時の右上にあるアイコン「ホスティングプロジェクト」をクリック(カーソルをしばらく重ねておくと出てくる)。

次に右上の「アカウントを編集」をクリック。
左下の「アカウントを追加...」をクリック。

「ホスティングサービス」に「github」を選択し、「ユーザ名」に自分のgithubユーザ名(at4k)を入れパスワードを設定する。
githubにあるリポジトリが表示される。

ここでは既存のリポジトリから開発を進めるので、以下のようにリポジトリをローカルにクローンする。

リポジトリをローカルにクローン

メニューの「ファイル」ー「新規/クローンを作成する」を選択。

「ソースパス / URL」の右端にある地球アイコンの「Hosted Repositories」をクリック。
先ほどのリポジトリのリストが出てくるので、開発したいリポジトリを選択して「OK」ボタンを押す。
「ソースパス / URL」が埋まるので、「保存先のパス」と「ブックマーク名」を適宜変えて「クローン」ボタンを押す。
という感じで「ブックマーク」画面にリストされる。
準備完了!

githubへの接続をsshで行うようにする

また一週間が経ちました。がんばってブログ更新してこ。

今日はgithubへの接続をsshで行えるように設定します。
webからはhttpsで接続していますが、ターミナルからは素でつなぐことになるのでssh経由がよかろう、と。

参考:
github help: Generating SSH Keys

では、さっそく始めよう。

新しいsshキーを作成

ssh-keygenでsshキーを作成
$ ssh-keygen -t rsa -C "at4k@users.noreply.github.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): /Users/xxxx/.ssh/id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xxxx/.ssh/id_rsa_github.
Your public key has been saved in /Users/xxxx/.ssh/id_rsa_github.pub.
The key fingerprint is:
(omitted below)

sshキーをgithubに登録

  1. github.comのトップページ右上にある「Account settings」ボタンをクリック
  2. 左側のメニューにある「SSH Keys」をクリック
  3. 右上の「Add SSH key」をクリック
  4. 「Title」を入力、「Key」にsshキーを貼付ける
  5. 「Add key」ボタンを押す
  6. githubのパスワード確認のためパスワード入力

sshキーが正しく登録されたかの確認

$ ssh -T -i ~/.ssh/id_rsa_github git@github.com
★注:メールアドレスは変更しないこと!
最初はfingerprintの確認メッセージが出るので「yes」と入力

以下のメッセージが返ってきたら正常に動作
Hi at4k! You've successfully authenticated, but GitHub does not provide shell access.

上記の途中でキーチェインに登録するか?と聞かれるので、それに保存しておけばパスフレーズは聞かれずにすむようになると思う

sshに渡す引数を初期設定として保存

毎回引数に長々と書くのは面倒なので初期設定に入れておく。
$ vi ~/.ssh/config
  HostName       github.com
  IdentityFile   ~/.ssh/id_rsa_github
  User           git
これで以下のように引数をいっぱい書かずに接続できるようになる
$ ssh github.com

Mac OS Xでアプリ内のウィンドウを切り替えるには

どうしても忘れる(笑)だから忘れたらまた書く。繰り返しが大事。

Mac OS Xでアプリ内のウィンドウを切り替えるには、以下のキーボード・ショートカットを押す。

command (⌘) + F1

  1. ただ、これだと押しづらいので、以下のようにして変更
  2. 「システム環境設定」ー「キーボード」の「ショートカット」タブを選択
  3. 左側のリストから「キーボード」を選択
  4. 右側のリストから「次のウインドウを捜査対象にする」を選択
  5. 右の方のショートカットキーが書いてあるところをクリックして、変更したいショートカットを押す

新しく変更したショートカットは以下。

control (^) + command (⌘) + Tab

2014年1月19日日曜日

github をsetup / レポジトリを作る

github 事始めから日が過ぎてしまったので、そろそろ次のステップへ進もう。
まずは管理したいレポジトリの作成、、とその前に。

セットアップをしておいた方がよいみたい。
一番左に「Set up Git」を見てみよう。

Set up Git

まず目についたのは「ターミナルを止めて独自アプリはいかが?」と書いてある。
ただ、すでにMac OSXにはgitが入っているので次の「Set Up Git」へ。

最初にユーザ名とメールアドレスの設定。
$ git config --global user.name "Atsushi K"
$ git config --global user.email "at4k@users.noreply.github.com"

今後のキャリアを考えて本名で行こうかと思ったけど、もう少し自信がついてからにしよう。こういうところ、外国人の人たちってさらっと本名載せるよね。同じ名前になる場合がおおいからだろうか?

て話がそれた。

あとソースの差分を見るコマンドをvimdiffにしておく。
$ git config --global merge.tool vimdiff
これらの設定を確認する方法は、例えばユーザ名は以下。
$ git config user.name

最後に、リモートサーバに接続する際、毎度ユーザ名とパスワードを打つのは面倒!てことでキャッシュ機能がある。
すでにその機能が使えるかどうかをチェック。
$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>

上記の表示が出る場合は、すでにインストール済。てことで「Create repositories」の作業へ。

Create repositories

いよいよリポジトリの作成。作ろうと考えてるソフトウェアはいくつかあるけどまだ考え中なので、ここではテスト用にいっぱい書く小さいコードを登録するリポジトリを作る。
会社でもいっぱい書いてるんだけど、持ち出しできないのでもったいない、よなぁ。

まずはトップページの「New repository」(緑色のボタン)を押す。
必要な箇所を埋めていく。
  • Repository name
  • Description (optional)
そして、このリポジトリを公開(public)するか非公開(private)にするかを決める。
ここでは公開とする。

最後に、ライセンスの選択。これはいままで利用する側だったのであまり勉強していないですが、以下のURLを参考に概略を知りました。このリポジトリはテストコードばかりなのでMITライセンスにしておきます。

て、ことで「Create repository」(緑色ボタン)を押して作成終了!


P.S.

わ、リポジトリ名、まちがえた!!!
てことで、早速削除する方法を学びました。。。

リポジトリのページの右側にある「Settings」をクリックすると、ページの下の方に「Danger Zone」という赤い領域が!
その一番下に「Delete this repository」ボタンがあるのでそれを押して、リポジトリ名を確認のため入力してボタンを押せばあっさり消えました。よかった。



2014年1月12日日曜日

「リーダブルコード」を読んで


2014年 最初のブログ。やっと書き出した。
年末年始で読んだ本「リーダブルコード」についてまとめておく。

今年はいろいろチャレンジする年にしたいので、まずは Amazon アフィリエイトに挑戦。
参考:クリボウの Blogger 入門



学んだこと

  1. 書いたコードを積極的に他人に見てもらう
  2. 条件分岐ではなるべく単純な条件から書く
  3. 条件分岐やループのネストを浅くする
わかりやすさという意味でどちらかな?と悩んでいた部分もあったので、明快にしめしてもらったのはよかった。具体的に少し以下で述べてみる。

「第 I 部 表面上の改善」

基本的には心がけていたことだけど、どうしても日本語を英語にしてわかりやすく、、となると誤解を招く名前をつけてしまうときがある。
だから、再度見直すとか他の人の意見を聞く、というのは、改めてやろうかな、と思った。

「第 II 部 ループとロジックの単純化」

今までどっちかな?と思いながら気分で選んでいたコーディングスタイルがあった。for や while の中での条件分岐についてである。同じことをするのに何通りもの書き方ができる、という時点で、こちらとしてはどっちでもいいじゃんと思ってしまう訳だが、この本を読んでみてなるほど、と思ったので、今後はそういう風に書こうと思う。
つまり人がコードを読むとき、プログラムの動作として現在取りうる状態を考えながら読む。これまでは、それを考慮することが抜けていたのだと思う。

とりあえず、この辺で。
薄い本だったけど久々に完読出来てうれしいね。少しずつ勉強を続けていこう。