リモートインターン | MIddleman 事始め

今回はMiddlemanを学習していきました。

Middleman とは モダンな web 開発環境のすべてのショートカットやツールを使用して静的 web サイトを作成するためのコマンドラインツールです。(コピペ) 詳しくは下記参照 http://middlemanapp.com/ http://middleman-guides.e2esound.com/

以下、手順

1.middlemanをインストール

$ gem install middleman

2.プロジェクトのスケルトンを作成

$ middleman init [project-name]

生成されるプロジェクトツリー

first-middleman
├── .bundle/
│   └── config
├── .gitignore
├── Gemfile
├── Gemfile.lock
├── config.rb
└── source/
    ├── images/
    │   ├── background.png
    │   └── middleman.png
    ├── index.html.erb
    ├── javascripts/
    │   └── all.js
    ├── layouts/
    │   └── layout.erb
    └── stylesheets/
        ├── all.css
        └── normalize.css

3.サーバーの起動

$ cd [project-name]
$ middleman server

middleman単独でもいける。

$ middleman

4.ブラウザでhttp://0.0.0.0:4567へアクセス middleman こんな感じに表示される。

5.ビルド

$ cd [project-name]
$ middleman build

ビルド後のproject-tree

first-middleman
├── .bundle/
│ └── config
├── .gitignore
├── Gemfile
├── Gemfile.lock
├── build/
│ ├── images/
│ │ ├── background.png
│ │ └── middleman.png
│ ├── index.html
│ ├── javascripts/
│ │ └── all.js
│ └── stylesheets/
│     ├── all.css
│     └── normalize.css
├── config.rb
└── source/
    ├── images/
    │ ├── background.png
    │ └── middleman.png
    ├── index.html.erb
    ├── javascripts/
    │ └── all.js
    ├── layouts/
    │ └── layout.erb
    └── stylesheets/
        ├── all.css
        └── normalize.css

一度buildしてserver起動している状態で、source内のファイルの変更は即適用されるようだ。

middlemanでブログを作る方法

1.Gemfileでgemを指定して

gem "middleman-blog", "~>3.1.1"

bundle installする。

$ bundle install

若しくは、単独でgem install

$ gem install middleman-blog

次に, config.rb で拡張を有効化する。

activate :blog do |blog|
  # ブログ機能のオプションを設定
end

2.initするときに最初っからブログテンプレートをつけてしまう。

$ middleman init [project-name] --template=blog

生成されるブログはこんな感じ。

ブログの記事について source直下に、下記のような名前でマークダウン形式のファイルが生成される。 /source/2012-01-01-example-article.html.markdown ファイルの置き場が気持ち悪い場合は、config.rbの下記の箇所のコメントアウトを外す。

# blog.prefix = "blog"

/source/blog/のようにsourceの下にblogのディレクトリを作って、先ほどのマークダウンのファイルを格納するだけでいい。

Compass & Sass について middleman initするだけでcompassもsassもインストールされる。 気をつけるのはsassファイルの置き場と拡張子だけ。 /source/stylesheets/の下にstyle.css.sassのようなファイル名で配置してあげると良い。 compass使う場合も、sassファイルの先頭で@import compassを宣言するのみなので、通常通り。

LiveReload LiveReloadは便利なやつ。css編集して保存するとブラウザで変更箇所がオートリロードしてくれるので素敵。(sassで書いた場合はbuildしないと駄目だけど。→リンクヘルパー使えばいけるか?後ほど検証します。→検証しました。) blogの時と同様に、Gemfileでgemを指定してbundle installする。

gem "middleman-livereload", "~>3.0.1"
$ bundle install

config.rbで下記を記述し有効化する。

activate :livereload

あとはブラウザにLiveReloadのextentionを入れておけばOK。 最後に、サーバーを再起動してブラウザを見ながらエディタでcssなどを編集してLiveReloadを体感する。

今日はここまで。長くなったので記事分割した方が良かった気がする。 一番よくわかってないerb周りのことは後回しにしてしまったので、次回そのあたりを学習します。

リモートインターン | 怖話コミックのバナーを作る

作業週の記録です。 今回は怖話に新しく漫画投稿の機能がつく予定なので、投稿募集のバナーを4点作りました。

以下、手順(@machidaさんに書いていただいたものコピペ…)

$ git branch XXXX でブランチを作成
$ git checkout XXXX そのブランチに移動
作業が完了したら
$ git add . 新しく作ったファイルをバージョン管理に追加
$ git commit -a -m"バナー追加" 作業をコミット
$ git push origin XXXX githubにブランチをアップ
github から Pull Request を送る

初プルリク…! 無事マージされて@komagataさんからミサワコメントをいただきました。

ミサワ

リリースが楽しみです。

 

2013.03.07追記:こんな感じになりました。

IMG_1808

リモートインターン | バージョン管理(Git & GitHub)

今回はGitやGitHubなどのバージョン管理について学習していきました。

Git

ゴール:Gitの基本を理解する。 やること:tryGitをやる。 参照:サルでもわかるgit入門Pro Git

GitHub

ゴール:Githubに自分のリポジトリを作る。clone、pushができる。remote branchが作れる。pull –rebase、 stash、stash popに挑戦する。 提出課題:HTMLの項目でマークアップしたHTMLファイルを自分のリポジトリにアップロードする。

git order

$ mkdir hoge
$ cd hoge
$ git init
$ git commit -m 'first commit'
$ git remote add origin git@github.com:username/hoge.git
$ git push origin master<

git command

git init ワーキングディレクトリをGitリポジトリにする。
git status ワーキングディレクトリのワークツリーとインデックスの状態を確認する。
git log リポジトリの変更履歴を確認する。
git add files filesをステージングする。
git add . 全てのファイルをステージングする。
git reset -- files filesのステージングを取り消す。
git reset 全てのファイルのステージングを取り消す。
git checkout -- files filesをステージからワーキングディレクトリへコピーする。
git commit -m "<コメント>" メッセージ付きでコミットする。
git diff 変更されたファイルの差分を確認する。
git remote add url/hoge.git リモートリポジトリを追加する。
git push -u origin master リモートリポジトリにファイルを追加する。-uオプションを付けておくと、今後pushする時に、origin masterと打つ必要がなくなる。
git clone <url> リモートリポジトリをローカルに複製する。
git pull<repository> <refspec> リモートリポジトリのブランチの変更内容を取り込む。
git remote -v 登録されているリモートリポジトリの名前とURLを確認する。
git remote rm<repository> 登録されているリモートリポジトリを削除する。
git branch<branchname> ブランチを作成する。
git checkout 履歴(またはステージ)から作業ディレクトリへファイルをコピーするために使う。条件によっては、ブランチを切り替える。
git merge<branchname> 他のコミットから変更を受け入れるための新しいコミットを作成する。
git cherry-pick あるコミットからメッセージとパッチをコピーし、現在のブランチに新しいコミットを作る。
git rebase merge の代替コマンド。複数のブランチを接ぎ木する。

「remote branchが作れる。pull –rebase、 stash、stash popに挑戦する。 」→このへんがまだ出来てないので、Web designer tutorialに移ってデザイン修行と並行してコードをGitHubにあげながら経験値をあげようと思ってます。 とりあえず、今回の学習でプログラマー・デザイナー共通チュートリアルでの学習が完了しました。 いざ、デザイン修行!

リモートインターン | Terminalの操作

今週は学習週で、今日はTerminalの操作について学習していきました。 FJORD,LLCの『Webデザイナーの為の「本当は怖くない」”黒い画面”入門シリーズ』の記事を見ながら実際にターミナルで手を動かしていきました。

以下、今更知らなかったこと $ (prompt) : promptは”促すもの”という意味。「ここに入力してください!」と促す為のマーク。 bin : binはbinary(バイナリー)の略。binaryには”対になった物”という意味。コンピューターのCPUが実際に実行するプログラムの中身は0と1だけになり、そこから、実行できるプログラムのことをbinaryファイルと言う。 $ : 変数。あ、そういえばsassやjsでも$付けていた。ターミナルで$を使うと別物のような恐怖を感じていた。 env : 環境変数。“黒い画面”で最初から設定されている変数のこと。変数名と中身が=(イコール)を挟んだ形で表示される。

Macのディレクトリ構造 bin/ : 最低限必要なコマンド置き場 sbin/ : システム管理者が使うコマンド置き場 usr/bin : システムの起動に必要でないコマンド置き場 usr/sbin : システムの起動に必要でない管理者用コマンド置き場

オプションについて ls -a のように、-(ハイフン)ではじまっているものをオプションという。 複数指定可。 -(ハイフン)のあとアルファベット一文字がオプション。 ハイフン一つのものをショートネームオプション(short name option)、ハイフン二つのものをロングネームオプション(long name option)と呼ぶ。 ロングネームオプションに文字を渡す場合=(イコール)を付ける。 ショートネームオプションとロングネームオプションは混在させることができる。

Homebrew : Package Manager HomebrewとXcodeはインストール済みなので概要を復習。

`(バッククォート)で文字を囲うとその文字をコマンドとして実行して、出力結果に置き換える。

touch : touchコマンドは空のファイルを作成する。本来既にあるファイルに触って(touchして)最終更新日を更新するだけのコマンド。空ファイルを作るのにも使われる。

#! : sharp bang。shebang。スクリプトを単体で実行。”黒い画面”で実行しようとしたファイルの1行目の最初の二文字が#!だったら、その後に書いてあるコマンドに2行目以降の全てを渡す。

自分独自のスクリプトはホームディレクトリにbinというディレクトリを作ってそこに置く人が多い。

export : 環境変数を設定するコマンド。

sh : shell。Bourne Shell。ターミナルに$を表示するソフト。shにスクリプトを渡して実行すればターミナルで$以降にコマンド打ったのと同じ結果となる。 bash : Bourne-Again Shell。shの強化版。 zsh : 最後のshellを目指して作られたshell。

以上。とても丁寧に書かれていたので、不明点はなかった。 基本のコマンドはいろいろやっているうちに簡単なものは使えるようになっていたけど、概要をひと通りやったおかげで今度躓いた時にすぐ起き上がれそうな気が、する。

リモートインターン | ローカルに怖話を構築

今週は作業週だったので作業の記録です。 自分のMacで怖話を立ち上げてる作業をしていきました。 github上の怖話のREADME.mdとインターンの@hrysdさん、@kumamidoriさん、@satokoさんの下記のブログ記事を参考に進めていきました。

構築前に、homebrewが入っている環境でrbenvでruby-1.9.3-p194とruby-1.9.3-p327をインストールだけしている状態からスタートしました。以下、手順です。

githubから怖話のリポジトリをローカルにcloneする ターミナルからvimで.bashrcを開く

$ vim .bashrc

.bashrcに下記コード追記

eval "$(rbenv init -)

ターミナルから.bashrc再読み込み

$ source ~/.bashrc

rbenvで指定しているrubyのバージョンを確認

$ rbenv version

怖話の構築に必要なのはruby-1.9.3-p327なのでp327に指定する

$ rbenv local 1.9.3-p327

homebrewでimagemagick/mysql/qtをインストール

$ brew install imagemagick mysql qt

mySQLでDB作成

unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

bundleインストール(bundle install コマンドを使うと、 Gemfile に書かれたgemは $GEM_HOME 以下にインストールされます)

$ bundle

ここでこけた。先にrbenvでruby-1.9.3-p327にバージョン指定していたけどエラー。

$ rbenv exec bundle

上記でやってもエラー。エラーメッセージのコピーし忘れた・・・。 rbenv versionではp327になってるがruby -vで確認するとp194の表示。 $ source ~/.bashrcで再読み込みすればruby -vでもp327になるけど、bundleが通らない。 ようわからんと思ってrvmでruby-1.9.3-p327をインストールした。

$ rvm install ruby-1.9.3-p327

再度bundlインストールして通る。 rakeする。

$ rake kowabana:setup

こけた。下記のエラーメッセージ。 rake aborted! You have already activated rake 10.0.3, but your Gemfile requires rake 0.9.2.2. Using bundle exec may solve this. rakeのバージョンが違うのでbundle execでrakeをやれと。

$ bundle exec rake kowabana:setup

今度はNokogiriでエラー。 WARNING: Nokogiri was built against LibXML version 2.7.3, but has dynamically loaded 2.7.8 というエラーメッセージが出る。 libxml2のバージョンは2.7.3だけど、nokogiriが読み込むのは2.7.8・・・。 libXMLとNokogiriを入れ直す。

$ brew install libxml2
$ gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/li

再度bundleしようとしてmySQL起動するの忘れててエラー出てしまったので起動。

$ mysql.server start

改めて$ bundle exec rake kowabana:setupを実行して、めでたくrakeされた。 最後にサーバー起動。

$ rails s

ブラウザでhttp://localhost:3000/にアクセスして、ローカルで起動しているのを確認。

kowabana_local

できた! 以上です。

この辺の記事も参考にしながらやっていきました。