git configファイルの設定

gitのconfig設定


$ git config --global user.name "my name"
$ git config --global user.email myemailaddress@example.com
$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto
$ git config --global color.interactive auto
$ git config --global --list
user.name=my name
user.email=myemailaddress@example.com
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=auto

広告

Sinatra Framework in Ruby

Sinatra
Sinatra source code

gemでインストール


$ sudo gem install sinatra
Password:
Successfully installed rack-0.9.1
Successfully installed sinatra-0.9.1.1
2 gems installed
Installing ri documentation for rack-0.9.1...
Installing ri documentation for sinatra-0.9.1.1...
Installing RDoc documentation for rack-0.9.1...
Installing RDoc documentation for sinatra-0.9.1.1...

$ mkdir test
$ cd test/
$ touch test.rb

test.rbを編集


$ emacs test.rb 
require 'rubygems'                                                                                                      
require 'sinatra'                                                                                                       
                                                                                                                        
get '/' do                                                                                                              
  'Hello world'                                                                                                         
end                                                                                                                     
                                                                                                                        
get '/hello/:name' do |n|                                                                                               
  "Hello #{params[:name]}"                                                                                              
end                                                                                                                     

サーバを立ち上げて実行


$ ruby test.rb
== Sinatra/0.9.1.1 has taken the stage on 4567 for development with backup from Thin
>> Thin web server (v1.0.0 codename That's What She Said)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop

http://0.0.0.0:4567/にアクセス

Create a New Repository at Github

githubにリポジトリを作成する

「create a new one」をクリック

github new Repositories - GitHub

リポジトリ情報を埋める

fill repository info - GitHub

リポジトリが作成されるので、自分の開発環境でセッティング。

tutorial first commit - GitHub

表示された通りにやれば問題ない。
以下は実際の記録。


$ mkdir dotfiles
$ cd dotfiles/
matsuda:dotfiles matsuda$ git init
Initialized empty Git repository in /Users/matsuda/dev/dotfiles/.git/
$ touch README
$ git add README 
$ git commit -m 'first commit'
[master (root-commit) 933f10d] first commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README
$ git remote add origin git@github.com:matsuda/dotfiles.git
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 210 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:matsuda/dotfiles.git
 * [new branch]      master -> master

ただし、公開鍵設定をしていないとpushで失敗する。
公開鍵の設定は
Guides: Providing your SSH Key
を参考に。



# $ ssh-keygen -t rsa
$ ssh-keygen
# ひたすらEnter
# Macコマンドでクリップボードにコピー
$ cat id_dsa.pub | pbcopy

githubの[account]→[SSH Public Keys]にコピペ


最後に「Continue」をクリックしたら、完了。

dotfiles at master - GitHub

mobile test

Image scaling is not supported on Mac OS X versions prior to 10.5

ヒレガス本のサンプルを作成していたら、
Image scaling is not supported on Mac OS X versions prior to 10.5
というコンパイルエラー(正確にはwarning)が発生。

ググってみたところ、

というのが見つかった。

Scaling属性がProportionally Downになっているのが原因らしい。
どうも10.5からNSButtonに追加された属性のようで、10.4以下をデプロイ環境として含めるとエラーになる。
しかも、そんな属性値がデフォルト値として設定されているのが問題。

ただ、ヒレガス本のサンプルをダウンロードしてソースを見ても、ボタンのScaling属性がProportionally Downになっていて、試しにコンパイルしてもエラーが発生しない。
不思議に思ってよくよく見てみるとボタンの種類がヒレガス本のサンプルはRounded Textured Buttonで、自分のはGradient Buttonだった。
つまりボタンの種類で影響が出たり出なかったりするらしく、Gradient Buttonの場合にエラーが発生した。

ということで、ボタンの種類はGradient ButtonのままでScaring属性をNoneにしたらアラートは出なくなりました。

Today’s memo

p.154

Archiveing involves two steps.
First, you need to teach your objects how to archive themselves.
Second, you need to cause the archiving to occur.

A protocol is a list of method declarations.
One protocol is NSCoding.
An NSCorder is an abstraction of a stream of bytes.

p.158

NSData is essentially a buffer of bytes.

Today’s memo

p.119

Attribute of a property

the declaration of a property

@property (attributes) type name;

The attributes can include readwrite(the default) or readonly. A property marked readonly gets no setter method.

To describe how the setter method should work, the attributes can also include one of the following: assign, retain, copy.

– assign(the default) makes a simple assignment happen. assign does not retain the new value. If you are dealing with an object type and you are not using the garbege collector, you probably don’t want assign.
– retain releases the old value and retains the new value. This attribute is used only for Objective-C object types. If you are using the garbage collector, assign and retain are equivalent.
– copy makes a copy of the new value and assigns the variable to the copy. This attribute is often used for properties that are strings.

The attributes can also include nonatomic.

p.142

When designing a class, I tend to think of my instance variables as having one of four possible purposes:

1. Simple attributes.
– Simple attributes are typically numbers or instances of NSString, NSDate, or NSData.
2. To-one relationships.
– To-one relationships are implemented using pointers: An instance of Student has a pointer to an instance of School.
3. Ordered to-many relationships.
– Relationships of this kind are typically implemented using an NSMutableArray.
4. Unordered to-many relationships.
– This order is typically implemented using an NSMutableSet.

p.145

– Key-value cording is a way to read and change a variable’s value by using its name.
– Key-value observing allow you to be informed when these sorts of changes occur.