WEB Engineer Architect Tips

WEBサービス開発における、技術やアーキテクチャ、ツールにテクニックなど……困ったときに思わずちょい見したくなるようなTips集です。

☆初心者のためのGitHub講座☆ に行ってきました。

2週間ぶりですね、こんばんは。@tsuyoringです。
前々回の記事で記載した通り、☆初心者のためのGitHub講座☆ - ☆初心者のためのGitHub講座☆ | Doorkeeperに行ってきました。

技術的な話をモリモリ書くのも難しいので、感想など。
社外の勉強会とか初めてだったのでとても緊張。加えて1人で行ったのでAWAY感満載でした。
参加されている方は幅広かったですが、メイン層は20代前半〜中盤くらいでしょうか。若い力に溢れていました。笑

まずmixiの方が最初軽くmixiでのGitの利用例について紹介され、続いてGitの方々が登場。
仲間内で小さく教え合おうぜ!というよりは、GitのEvangelist的な方々が売り込みも兼ねて説明するような会でした。
とは言うものの、BusinessLikeな雰囲気ではなく、IT企業らしいアットホームな雰囲気でした。
#一番最初にGitの方が「英語の翻訳必要な方は手を挙げてください」とか言い出したのにはビックリしましたが。
#ITエンジニアにとって英語は必須スキルを通り越して標準スキルですか、そうですか、そうですね……。

以降、説明会について。
まずATOMについての細かな使い方についての説明、次にGitについて使い方を説明やメリットを説明されていました。
ATOMの説明の最中に何度か「SublimeTextでもこの機能はありますが」といった話が展開されておりました。
当Blogの記事で紹介をしている私は思わずニヤリ。
SublimeTextをこれから使い倒すつもりなので余り真面目に聞いてませんでした(本題はGitですし)が、
もしGitをゴリゴリ使い倒していくつもりの人であれば、純正ならではの便利な連携がいくつもあったので、検討されると良いかもしれません。
#タブ上でそのファイルがリポジトリ上に反映されているかどうかが一目で分かる機能などは便利かなと。

Gitの説明は、実際にコマンドラインを使ってATOMの設定ファイルをGitHub上にUploadする実習をしました。
#話の展開が早く、実際に作業をおこなっている人はほぼいませんでしたが……。
コミットの仕方やブランチの切り方、ブランチの切替の仕方など、基本的なことを一通り教えていただきました。
私は会社でSubVersionを使用しているのですが、ブランチの切替が瞬間的に終わる点は比較してとても良いですね。

興味深かったのは、ソースの競合がGitHub上で発生したときにコメントをお互いに入力できる仕組み。
質問コーナーである参加者が「競合した際に上手いこと解決してくれるんですか?(意訳)」と聞かれていました。
対するGitの方の回答が、以下でした。

「競合は(システムが自動的に判別するのではなく)コメントを記入し合って解決していきます。それもGitHubの醍醐味だと思います」

実際の業務などで楽しんで使えるのは、新興のIT企業やベンチャーくらいかなぁ、と。
ITに対するのどかな風土がなきゃ、実業務で使って行くのは少し難しいのかもしれません。。
#古くからあるSIerや金融系/お国系の基幹情報システムでは、とてもじゃないけど受け入れられないのではと感じました。



最後、ピザパーティではビールとピザが振舞われました。
何人かお話しましたが、若手社員の方10年選手のベテランIT屋、まさかの大学生などバラエティ豊かに。
みなさん技術に対する熱い気持ちを持っていて、話していて楽しかったですね。
#1人で参加したので、大きな人の輪に入ることは出来ませんでした(=_=;
Evangelistの方とも話しました!英語で質問して英語で回答いただいた内容がちんぷんかんぷんで(略)。
熱心に伝えようとしてくれていたので、とても申し訳ない気持ちになりました……これからのIT屋にとって英語は必須スキルですね。

そんなこんなで、ビール2杯いただき気分良くなったところで撤収。
様々な刺激を受け、やる気成分を満タンに注入されました。

この記事を読んだ皆さまも、たまには普段の生活エリアから離れて、刺激を受けに色々な会合に出てみるのも面白いのではないでしょうか(^_^)

SublimeText3 導入 with homebrew / Git Part.4(完)

前回までHomebrew/Git/GitHubの準備をおこなって来ましたが、
いよいよSublimeText3の環境整備をおこないます。

大まかな流れは以下の通りです。
 1)brew-caskのインストール
 2)SublimeText3インストール
 3)PackageControlの導入
 4)UI周りの設定
  ・テーマ/カラーのインストール
  ・テーマの設定
  ・フォントの設定
  ・番外:アイコンを変えよう

1)brew-caskのインストール
Homebrewから直接SublimeText3をインストールすることはできません。
とは言うものの、インストールを好き放題GUI上からおこなっていると管理が煩雑になってしまい、
あとで何がどうなっているのか分からなくなってしまいます。
そこで使えるのが、今回インストールに使用するbrew-caskです。

brew-caskの詳細はSupershipに記載されていますが、
ざっくり言うとHomebrewを、より沢山のアプリケーションをインストール出来るようにする拡張機能です。
コレを使えば、通常はHomebrewからインストール出来ないGoogle chromeやAlfred等もインストールできます。
もちろん、今回インストールしようとしているSublimeText3もインストール可能です。
#もっと細かいことを言うと、自分で設定さえ作ってしまえばどんなアプリケーションでも対応可能です。

それでは、実際にインストールしましょう。以下のコマンドを実行します。
 brew tap phinze/homebrew-cask
 brew install brew-cask
無事完了すると、以下の様に表示されます。

拍子抜けするくらい簡単ですね。

2)SublimeText3インストール
sublime text3の環境を整えた - ぱいぱいにっきを参考にしながら、以下のコマンドを入力します。
brew cask install sublime-text3
すると、以下の様に表示されます。

エラーが発生……?
どうやら、sublime-text3はbeta-version扱いになっており、その場合少しお作法が異なるようです。
参考:2013年度 MacbookAirクリーンインストール祭 - パルカワ2
と言うわけで、再度以下のコマンドを実行します。
brew tap caskroom/homebrew-versions
brew cask install sublime-text3


無事インストールできました!

Launchpadにもあります!

ダブルクリックすると、無事起動しました!

※お作法とざっくりした書き方をしましたが、ちょっと詳しく説明します。
#参考:これは便利!Homebrewに追加されたtapコマンドはリポジトリを追加して簡単にフォーミュラを増やせる | Macとかの雑記帳
今回、最初にtapを行っていたのと違うリポジトリをtapしています。
SublimeText3に関する情報が、phinze/homebrew-caskではなく、caskroom/homebrew-versionsにあったようです。

3)PackageControlの導入
さて、次はPackageControlの導入をおこないましょう。
画面のViewタブからShow Consoleを開きます。そして、表示されるエリアに下記サイトに記載のコマンドを入力します。
サイト:Installation - Package Control
コマンド:

import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

※注意ですが、上記コマンドは現時点のものですので、サイトに飛んできちんとコピーしてください。
 (はてなダイアリーが自動的に改行入れたり、などもありえないとは言えませんので。。)

以下の様に特にエラーなく終了すれば成功です。ダメだった場合はコピペミスなどしていないか、確認しましょう。

4)UI周りの設定
 ・テーマ/カラーのインストール
  では、次にテーマのインストールをおこないます。
  デフォルトで入っているテーマでも良いですし、
  より見やすく、使いやすくなるsublime textテーマ8つ | 株式会社LIGなどで紹介されている中で気に入ったものがあれば自分でインストールすることも出来ます。
  私はTheme Piattoを気に入ったので、この子をインストールする方針で進めていきます。

  まず、Ctrl + Shift + PでPackageControlを開きましょう。
  次に、「Package Control: Install Package」と入力します。
  すると、入力画面が引き続き表示される(インストールの対象選択をしています)ので、
  「Theme - Piatto」と入力してEnterを押しましょう。
  環境によってはSSLエラーが出るかも知れませんが、
  「SublimeText -> Preferences -> Color Scheme ->Theme - Piatto -> Piatto Light」
  を選択してみてください。カラーが変われば設定成功です。

 ・テーマの設定
  「SublimeText -> Preferences -> Setting - User」を選択しましょう。

  そして、設定ファイルが開きますので、その中に
  「"theme": "Piatto Light 3.sublime-theme",」
  と追記して保存しましょう。

  あれ、反映されていない……?

  再起動したら無事反映されました!
  上手くいって無さそうに見えるときは、一度SublimeTextを再起動することをお勧めします。

 ・フォントの設定
  SublimeTextでプロジェクトごとに適用されるテーマを変更する - Qiitaを参考にしながら、先ほどの設定ファイルに記載を行います。
  調べてみたのですが、SublimeText3ではASCIIとNON-ASCIIでフォントを分けることが出来ないようです。
  iTerm2と同じ設定に使用と思っていたのですが、分けることが出来ないのであれば、Rictyで統一しましょう。
  Mac OSXに超カッコイイプログラミング用フォント「Ricty」をセットアップする - blog@sotm.jpを参考にしながら進めます。
  まずはRictyをインストールするために以下のコマンドを入力します。
  ※上記サイトの五月女さんが作成されているshellです。有り難く使わせていただきましょう。

curl -L 'https://gist.github.com/ysaotome/7286145/raw/installing_ricty_on_MacOSX.sh' | bash

  次に、設定ファイルへ以下の文言を書き込みます。

"font_face": "Ricty",

  これでフォントが変更されました!

  本項までで、実はUser設定ファイルが完成しています。
  完成したら、今後のために、今回編集した設定ファイルをGitHubに上げておきましょう。
  dotfiles/Preferences.sublime-settings at master · tsuyoring/dotfiles · GitHub
  ※筆者は上記の他にも色々と設定を追加し、以下の様になりました。調べてみると便利な設定があるかもしれないですね。
  

{
"color_scheme": "Packages/Theme - Piatto/Piatto Light.tmTheme",
"theme": "Piatto Light 3.sublime-theme",
"font_face": "Ricty",
"font_size": 13,
"piatto_folder_icons": true,
"overlay_scroll_bars": "enabled",
"bold_folder_labels": true,
"ignored_packages":
[
"Vintage"
]
}

 ※番外:アイコンを変えよう
  SublimeTextはソフト自体はお洒落なのに、アイコンがお洒落じゃない!という人も居るかと思います。
  そんな人のためのTipsです。
  SublimeText3のアプリケーションの中身を開きます。
  そして、「Contents -> Resources -> Sublime Text.icns」コレがアイコンの実体になりますので、
  別途ダウンロードしてきたアイコンファイルと置き換えをしましょう。
  筆者はhttp://www.designkode.com/sublime-text-icon/にしました。
  夏も近いですし、このアイコンを見て少しでも気分が涼しくなれば良いなと。笑

いかがだったでしょうか。
ここまででSublimeText3のインストールは完了となります。
新しい綺麗な環境で心機一転、ガシガシとコードを書いていきましょう!

SublimeText3 導入 with homebrew / Git Part.3

前回に続きましてGit関連の環境整備、今回はGitHub編です。

GitHubはGitとは違ってコマンドラインではなく、GUIで動くソフトウェアのようです。
http://kuroigamen.com/48にも

黒い画面なしでいけます。

というTwitterの呟きの紹介があります。
#個人的には黒い画面を使う修練を積みたいので微妙ですが。

さて、インストールを進めていきましょう。
さきほどの解説ページを参考にしながら、How people build software · GitHubのページにアクセスをし、
Mac用のファイルのダウンロードのページに行きます。

上記のようなページに飛ぶので、そのままDownload GitHub for Macをクリックしてダウンロードします。
ZIPファイルなので解凍をおこない、あらわれたappファイルを実行すると……

親切にアプリケーションフォルダに移動しますか?って聞かれるので、移動して貰います。
#オクトネコ?っていうんですか?すごくかわいいですね。

さて、Setupウィザードが始まるので、順番に入力していきます。
まずはGitHubのアカウントの設定ですね。アカウントの登録がまだの人は、Webサイト上から登録しておきましょう。



設定ができました。

次に、Configure Git画面です。
上のエリアは、Git上に共有した各種ファイルを誰が作ったかを判別する識別名?のようなもののようです。とりあえずそのままにしておきます。
下のCommand Lineの部分は、コマンドラインでのGitツールをインストールするか?聞かれているようです。
今回はHomebrewを使って事前にインストールをしているので、Installは実行せずにContinueしましょう。

最後に、既に存在しているリポジトリを共有するか?を選択します。

今回は特にそのようなものもなく、ゴミデータなので、SkipしてDoneを選択します。

すると、以下の様な画面が表示されて、セットアップは完了となります。

これで、自分の作ったプログラムを世の中に出していくことができる環境が整いました!

手始めに、以前作成した.zshrcファイルをアップロードしてみましょう。
まず、先ほど画面の下部の「+」をクリックして、「Create New Repository…」を選択しましょう。
新しいリポジトリを作る画面になりますので、「dotfiles」というリポジトリにします。
#余談ですが、WEB系Programmer界隈では、最近どんな場所や端末でも普段の環境と同じように作業ができるように、
#各種設定ファイル:通称ドットファイルズをGitHub上に格納しておく、ということが流行っているようです。
#本記事でも、その流行に乗って執筆をおこなっています。



無事作成されました。何も入ってない、まっさらな状態ですね。
ここに、以前作成した.zshrcを入れていきます。
前回作成したファイルを、設定したローカルリポジトリ内にコピーします。

コピーしました。すると、GitHubの方の画面に変化が現れます。
「Changes」タブに色が付き、開いてみるとコピーした内容が反映されていることが分かります。

 Summaryに、今回の更新内容の要約
 Descriptionに、今回の更新内容の詳細
を入力して、Commitを押してみましょう。
すると、Unsynced Commitsに今回のCommitが表示されることが分かります。

つまり、自分のMacの中の管理上Commitされているけれど、Web上(GitHub)にはCommitされていない状態です。

それでは、GitHub上にPublishしてみましょう。(アップロードのことをGitの世界ではPublishと言うようです。)
サイドバーから「Branches」を選択してください。
今回反映させた変更が表示されているかと思います。ここで、該当の更新(branch)を選択してPublishを押します。


オクトネコのインジゲータが表示されて待つこと数秒……

無事、Publishされました!

それでは、GitHubのサイト上から本当に登録されているか確認してみましょう。

されています!これで、GitHub上への登録をできるようになりましたね。


ざっくりとした”GitHubことはじめ”は以上となります。
本記事以上の詳細なGitHubの使い方についてはまた別の機会に書いてみようと思います。
#☆初心者のためのGitHub講座☆ | Doorkeeperの様なコミュニティ・イベントに参加して、
#手に入れた情報なども、今後はFeedBackしていきたいと野望をいだいております。笑

次回はいよいよSublimeText3のインストールを進めて行きます。

SublimeText3 導入 with Homebrew / Git Part.0

昨年はコンソールの話ばかりでしたら、少し趣を変えましてエディタのお話です。
今までSublime Text2を愛用していたのですが、いつの間にか終了しておりました。
起動するとexpireなどと表示され……常時インターネットに繋がっている世の中も考え物ですね。笑

というわけで、今回から暫くはSublimeText3のインストールを進めようと思います。
さっくりWebサイトを巡回した感じ、大まかに以下の様な順番で作業をおこなっていく必要がありそうです。
 ・Homebrewのインストール ※Homebrewは既にインストール済みのため、割愛します。
 ・Gitのインストール ※Gitも既にインストール済みのため、割愛します。
 ・SublimeText3のインストール
 ・UI最適化
  ・アイコン置き換え
  ・テーマの設定
  ・フォント修正

※上記項目を一連の投稿についての目次として使いたいところです。完成したらリンクを追加します。

SublimeText3 導入 with Homebrew / Git Part.2

前回の記事では、Homebrewの最新化を実施しました。
その際に
 ・.zshrcファイル
を作成したこともあり、今回は
 ・Gitの最新化/最適化
 ・GitHubの導入 ※登録は事前に実施していたため、それを使い物になるようにする。
をおこなっていこうと思います。

まずはGitの状況の確認を、
を参考にしながらbrew info getコマンドを使って確認していきます。

Curiosity% brew info git
git: stable 1.9.3 (bottled), devel 2.0.0.rc3, HEAD
http://git-scm.com
/usr/local/Cellar/git/1.8.0.2 (1252 files, 24M)
/usr/local/Cellar/git/1.9.3 (1325 files, 32M) *
Poured from bottle
From: https://github.com/Homebrew/homebrew/commits/master/Library/Formula/git.rb
==> Dependencies
Optional: pcre ✔, gettext
==> Options

Compile with the block-optimized SHA1 implementation

Use Homebrew's version of cURL library

    • with-brewed-openssl

Build with Homebrew OpenSSL instead of the system version

Build with gettext support

    • with-pcre

Build with pcre support

Build git-remote-persistent-https from "contrib" directory

    • without-completions

Disable bash/zsh completions from "contrib" directory

    • devel

install development version 2.0.0.rc3

    • HEAD

install HEAD version
==> Caveats
The OS X keychain credential helper has been installed to:
/usr/local/bin/git-credential-osxkeychain

The 'contrib' directory has been installed to:
/usr/local/share/git-core/contrib

Bash completion has been installed to:
/usr/local/etc/bash_completion.d

zsh completion has been installed to:
/usr/local/share/zsh/site-functions

気になるポイントは1.8.0.2 と1.9.3の2つのVersionがインストールされていること。
これってもしかして、ある特定のパッケージから実行するときに古い方動いちゃったりするのでは……
と思ってもろもろ調べてみましたが、大丈夫なようでした。

node.jsの話ではあるのですが、Homebrewでインストールしたパッケージの旧バージョンを削除する方法 - cybaronの日記曰く、
Versionが上がっていけばどんどんと古いVerisonがどんどん溜まっていく仕様でした。
そして、今回の件で言えば前記事にてbrew upgrade / brew updateをおこなっているので、
そのタイミングでVersionUpをしてくれたのかもしれないと思い、Finderで作成日付を確認。

すると、やはり前記事で実行したタイミングの日時でフォルダが作成されていました。
よって、Gitの最新化/最適化については出来ていたようです。

今回はここまで。
GitHubについては、次回の記事にて導入をおこなっていきます。

SublimeText3 導入 with Homebrew / Git Part.1

そもそもHomebrewって何だっけ?という浦島太郎状態でしたので、もろもろ環境の最新化からおこなっていきます。

まず、Homebrewを最新化しようとbrew updateコマンドを実行したところ、Warningが発生しました。

Curiosity% brew update
Checking out files: 100% (3209/3209), done.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your diff.renameLimit variable to at least 957 and retry the command.
Error: undefined method `to_sym' for nil:NilClass
Please report this bug:
https://github.com/mxcl/homebrew/wiki/troubleshooting
/usr/local/Library/Homebrew/cmd/update.rb:99:in `report'
/usr/local/Library/Homebrew/cmd/update.rb:97:in `each_line'
/usr/local/Library/Homebrew/cmd/update.rb:97:in `report'
/usr/local/Library/Homebrew/cmd/update.rb:18:in `update'
/usr/local/bin/brew:94:in `send'
/usr/local/bin/brew:94

brew update で to_sym エラーが出た時の対処方法 - Qiitahomebrewアップデート/アンインストール - CROSS HOPEを参考にしながら
brew doctorにて原因の調査を行ったところ、Warningがいくつか起きています。

Warning: A newer Command Line Tools release is available.
The standalone package can be obtained from
https://developer.apple.com/downloads
or it can be installed via Xcode's preferences.

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

c_rehash
git
git-cvsserver
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
gitk
openssl

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

早速、brew upgradeを実行。すると、特にエラーも無く無事完了
再度brew updateを実行すると、無事終了したようです。

Updated Homebrew from afda72f5 to 74305bf5.
==> Updated Formulae
monetdb

ですが、引き続きbrew doctorは同様のwarningを吐き続けています……汗

Warning: A newer Command Line Tools release is available.
The standalone package can be obtained from
https://developer.apple.com/downloads
or it can be installed via Xcode's preferences.

Warning: /usr/bin occurs before /usr/local/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

git
git-cvsserver
git-receive-pack
git-shell
git-upload-archive
git-upload-pack
gitk

Consider setting your PATH so that /usr/local/bin
occurs before /usr/bin. Here is a one-liner:
echo export PATH='/usr/local/bin:$PATH' >> ~/.bash_profile

次に、http://blog.pinkpinkpink.net/2012/07/homebrew.htmlを参考に、すべてのWarningを消しにいきます。
まずは、1つめのCommand Line Toolsに関するWarning。こちらはXCodeにて新しいVersionを使えるよ、ってことみたいです。

解決法 #1
Xcodeを起動し、Preference > Downloads を開く。
Command Line Tools をインストールする。(約5分くらいかかる)


画像のようにチェックマークになり、再度Homebrewを実行すると該当のWarningがなくなりました。

次に、/usr/bin occurs before /usr/local/bin のWarning。
こちらは以下の対応が必要なようです。

問題 #5
Warning: /usr/bin occurs before /usr/local/bin

解決法 #5
Consider amending your PATH so that /usr/local/bin
occurs before /usr/bin in your PATH.

このメッセージの通り、".bash_profile"のPATHを設定。

$ vi ~/.bash_profile
export PATH=/usr/local/bin:$PATH # 1行目に追加。

bashのProfileにて、上記のようにパスを通してあげる必要があるようです。
ですが、現在の環境で使用しているのはzsh。。
homebrew - brew installation for zsh? - Stack Overflowを読むに、

Try setting this line in your .zshrc
export PATH=/usr/local/bin:$PATH

$HOME/.zshrcに「export PATH=/usr/local/bin:$PATH」を追加すれば良いようです。
そもそも/.zshrcファイルがないのでとりあえず作ってみます。
ただ、現状echo $PATHをすると、
 「/usr/bin /bin /usr/sbin /sbin /usr/local/bin」と記載があります。
既に/usr/local/binが最後尾にあるため、最初に移動します↓
 「/usr/local/bin /usr/bin /bin /usr/sbin /sbin」
なので、
 export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

#PATH
#2014/05/28
#Homebrewのbrew doctor warning対応として順番を入替
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

としましょう。すると……

無事、brewの最新化が完了しました!(:P
本当はGitHubに共有したいところですが、まだGitHubのセットアップもしていないので、それは次回に。