2013/08/17

デザインの参考サイトメモ

デザイン会社のページ

特に、それぞれの会社の制作した作品も面白いので眺める価値あり。

株式会社ラナデザインアソシエイツ 

動きや、全体的な雰囲気が可愛らしい感じで、制作物ともマッチしている。

JWT 

壁掛け風のデザイン。クリックした時の挙動も面白い。

IN VOGUE 

全体的に、白黒のデザインなのに、見やすい。
サイズなども考えられている雰囲気。

FORM::PROCESS

DONGURI

クラフト感がある。落ち着いた色使い。

その他 

多摩美術大学の2013年卒業制作展示の宣伝ページ  

コンセプトが良くあらわれているデザイン。
スクロールしていると、ヘッダー部分が透過しているのも気になる感じ。

Art Project

Google が美術館の絵集めているやつ。
いろんな作品が見れる。

2013/07/13

perl 勉強メモ

参考

  1. http://d.hatena.ne.jp/perlcodesample/20091226/1264257759
  2. ミニマル perl

スクリプトを書く時

  • プラグマ
    このサイトが詳しい
    http://perldoc.jp/func/use
  • デバッグ用にも便利
    次の2行を先頭に書くことが強く推奨されているっぽい。
    これらはプラグマと呼ばれるものたち。
    use strict;
    use warnings;
    
  • 1文字でも減らしたい
    print のデフォルト引数は、 $_ なので、print $_; したいだけなら書く必要ない。

用語

レコード

  • 1つのまとまりとして読み書きされる文字の集合
  • 入出力の際、ファイルはレコードの集まりと見ることができる。
    この時、デフォルトでは、1行がレコード。

入力レコードセパレータ

  • 入力レコードの終端区切りを表す文字、または文字シーケンス(文字の並び)。
  • Linuxとかでは、デフォルトではラインフィード。
  • Perl ではOS固有の入力レコードセパレータを \n として、参照できる。

ニューライン

  • \n のこと。
  • OS固有の入力レコードセパレータ。

スイッチ引数

  • -s オプションを利用することで、良い感じの引数を取ることができる。
  • 引数の与え方で2つの方法がある。
    -foo='test' #=> $foo == 'test'
    -foo #=> $foo == true : -debugで、デバッグ用、みたい使う。
    
  • スイッチ引数を任意にしているスクリプトでは、冒頭にour関数を使うのが良い。
    our(foo);
    our(foo, $bar, ...);
    

真偽値

偽になるのは、次の3パターンある。
  1. 数値 : 0 と同等な値
  2. 文字列 :
    • null文字列
    • 0 を保持する文字列 ( '0' みたいな)
  3. 変数 : 値を持たない変数
    • まだ設定されていない変数とか。定義されているかは、 defined を使うとわかる。

特別な文字列

 $/,$\ 

  • 入力,出力レコードセパレータを指定する。

 $.

  • 今読んでいる入力レコードが何番目かを表す。 
  • 通常は行数。
  • コマンドラインオプションや $/ で入力レコードセパレータを指定したときは行数じゃなくなる。

$_

  • 最後に読み込んだ入力レコード。

@ARGV

<>

\n 

  • OS 固有のレコードセパレータ

変数

$var : 変数

  • 宣言と代入
    my $var = 'aaa';
  • '' と ""
    シングルクォートとダブルクォートの違いは、変数が展開されるかどうか。
  • join (.), split, length, substr, index

@array : 配列

  • 宣言と代入
    my @array;
    @array = (1,2,3)
    
  • $array[0] などとして、各値を得る
  • pop, push, shift, unshift も使える
  • 配列の大きさを得るのは、
    $array_size = @array
    

%hash : ハッシュ

  • 宣言と代入
    my %hash; %hash = (a => 1, b => 2);
    
  • $hash{a} などとして、各値を得る
  • keys, values, exists, delete

制御構文

if { ~ }

if { ~ } else { ~ }

if { ~ } elsif { ~ }

while ( 条件 ) { ~ }

for ( my i = 0; i < 5 ; $i++ ) { ~ }

foreach my $field (@fields) { ~ }

  • 配列の各要素に対して何かを行う
  • foreach は for のエイリアスらしい。

比較演算子

文字列比較

  • $s eq $t
  • $s ne $t
  • $s lt $t
  • $s gt $t
  • $s le $t
  • $s ge $t

サブルーチン

関数のようなもの。
他の言語との違いとして、引数を関数宣言に書かない。
そのかわり、 @_ を使って引数にアクセスする。
sub subtract {
  my ($num1, $num2) = @_;
  my $result = $num1 - $num2;

  return $result;
}

perl のコマンドラインオプション

参考ページ

[[http://debugitos.main.jp/index.php?Perl/コマンドライン]]

基本的なオプション

-e

  • ワンライナーを書くために必須。
  • 複数並べられるので、それなりに色々書ける
  • 直後にperlプログラムを書ける。

    perl -e 'print 11/2'

-l[8進数]

  • 行末に指定された8進数に変える。-l のみの場合、改行になる。

    perl -e 'print 22' #=> 22 perl -l -e 'print 22' #=> 22perl -l101 -e 'print 22' #=> 22A

-0[digits]

  • -l の入力セパレータバージョン
  • -00 とすれば、空行を区切り
  • -777 とすればファイルごとの区切りになる。

使い勝手の良いオプション

-n

  • while (<>) { ...} の中にスクリプトを入れたと思って実行

-p

  • -n みたいなもの。ただし、行($_)を出力する。
  • sed に似たやつ。

-a

  • -n, -p と一緒に使用
  • $_ を自動的に改行で分割し、配列 @F に入れる

    perl -ane 'print $F[0], ""' /etc/passwd

-F/pattern/

  • -a の分割のデリミタを指定する
  • パターンは複数文字でも良い。そのときは、' ' または / / で囲む

    perl -F':' -ane 'print $F[0],":",$F[2] ,""' /etc/passwd

-i[拡張子]

  • 拡張子がないとき、<>のファイルを直接編集する
  • 拡張子があるとき、<>の元ファイルは、拡張子をつけたファイルにバックアップされる。

    perl -i".back" -pe `s/foo/bar/g' sample.txt

デバッグに使えるオプション

-c

  • スクリプトのシンタックスチェックのみ行う

-d[:debugger]

  • debugger の下で走らせる

-w

  • より多くの Warning を出す

-W (-X)

  • すべての Warning を出す(出さない)

git の勉強

グラフィカルだし、コミットの様子もわかりやすい

http://k.swd.cc/learnGitBranching-ja/

  • HEAD
    • もっとも直近にチェックアウトされたもの?
  • コミットの指定
    • タグ名 master, bugFix,..
    • 相対指定
      • ~ : HEAD~2 == HEAD の2つ前
      • ^ : HEAD^^ == HEAD の2つ前
      • 例) HEAD3^^^1^2 (^ + 数字 : 複数の親を持つ場合に使う)
  • merge などで、複数の親を持つコミットの ^
    • デフォルトは、最初の親
    • foo^2 など、 ^ + number で挙動を変更
  • コミットにブランチ名を割り当てる
    • git branch -f (ブランチ名) (コミット)
  • コミットの取り消し
    • reset
      • ブランチのポインタを戻す
      • リモートのブランチには関係ない
      • git reset HEAD~1
    • revert
      • 変更を巻き戻して、履歴を上書きする
      • 他人と共有しているプロジェクトで、リモートのブランチを書き換える必要があるときに使う。
      • git revert HEAD
      • 実質的には、直前のコミットの逆のコミットを行う処理
  • コミットの取り込み
    • merge
    • rebase [-i]
    • cherry-pick
  • 一連のコミットを取り込むが、微妙に修正する
    • git rebase -i (もしくは git cherry-pick) をして、順番を修正。変更したいコミットを先頭に。
    • commit --amend して変更
    • git rebase -i を使って、先頭に持ってきたコミットを元の場所にする。(もしくは git cherry-pickを使って順番どおりに行う)

Preseed のメモ


参考サイト

Vagrant の使い方を知ろうと思ったので、参考ページのメモ


参考 

参考サイト

  1. Vagrant
  2. Vagrantのソース
  3. VagrantBoxes
  4. Vagrantで簡単仮想マシン構築 - ryuzee.com
  5. Vagrant & chef - naoyaのはてなダイアリー 

 参考書籍

  1. 入門Chef Solo

メモ

  1. gem から入れるのは古いバージョン(1.0.x) 
  2. 現状(2013/06/08)の最新バージョンは 1.2.2。Gemから入れる方法はなくなったらしい。ダウンロードは次のページから。Download Page