gitで後からリモートを追加する

git initしたあとにリモートを追加してorigin masterを省略するメモ – gabuchanの日記に答えが書いてあった。

例えば、クライアントでプロジェクトをプロジェクトを新規作成、しばらく経って「githubにアップロードしておこう」と思った時に使う。以下のように実行すればよい。

$ git remote add origin git@github.com:username/gitname.git
$ git pull origin master
$ git push -u origin master

元のページと比べてgit pullを追記しているのは、githubでリポジトリを新規作成した時にREADMEを自動生成した場合、競合を防ぐためにpushの前にpullが必要だったから。

Mongooseでフィールドのデフォルト値を現在時刻にする

公式ドキュメントのdefaultsのページに書いてあった。

以下のように書けばドキュメント作成時のデフォルト値を現在時刻に指定できる。

new Schema({
	date: { type: Date, default: Date.now }
})

次のように書いていて、データベースに追加するたびに同じ時刻が書き込まれるので不思議に思っていた。

new Schema({
	date: { type: Date, default: Date.now() }
})
// あるいは
new Schema({
	date: { type: Date, default: (new Date()).getTime() }
})

上記のように書いてしまうと、スキーマを作成した時刻が毎回書き込まれてしまう。defaultには、値も渡せるし、関数も渡せるということをよく理解していなかったためにミスした。

UIColorをHTMLっぽく16進数でインスタンス生成する

simonwhitaker/UIColor+GSAdditions.hjnutting氏のコメントを元に少し追加した。

こんな風に書けます。

[UIColor colorWithRGBHex:0xff0000];    // red
[UIColor colorWithRGBAHex:0x00ff00ff]; // green
[UIColor colorWithRGBAHex:0x0000FF80]; // translucent blue

gistにアップロードしておいた。
https://gist.github.com/4593832

node.jsでMongoDBの接続に失敗する時

node.js, Express, MongoDBという組み合わせを、Ubuntu12.04のVM上で動かしていたら、Webアプリケーションを起動(npm start)した時に以下のようなエラーが出るようになってしまった。

[Error: failed to connect to [localhost:27017]]

以下2つの記事を参考にして解決。

続きを読む node.jsでMongoDBの接続に失敗する時

amazonで買えるちょっとおもしろいデザインのMacBookPro13″用インナーケース

amazonでMacBookPro用のPCバッグを買おうと思ったら、思いのほか検索すればする程色々出てくる。一発で全部は出てこなかった。意外と面白いデザインのケースがたくさんあったので、気になったデザインのインナーケースをご紹介。(たまに14インチのケースもまぎれているので買う前に要注意)

続きを読む amazonで買えるちょっとおもしろいデザインのMacBookPro13″用インナーケース

Rubyで深い階層のディレクトリを一気につくる

Rubyで深い階層のディレクトリを一気につくるには、FileUtils.mkdir_pを使う。
参考URL: http://doc.ruby-lang.org/ja/1.9.3/class/FileUtils.html

require 'fileutils'
FileUtils.mkdir_p('./public/images/')

./publicディレクトリが存在しない場合は、publicディレクトリをつくった上でimagesディレクトリを生成する。

Sinatra用のテンプレートつくった

SinatraでWebアプリケーションを作ろうとしていつも一から作るのもナンセンスなので、自分用のテンプレートを作った。とはいっても、shokaiさんの作っていたsinatra-templateをフォークしてオレオレ改造を施しただけ。

githubにあります。
https://github.com/akiroom/sinatra-template

Webアプリケーション開発に明るくないので、何か変なところがあったらご指摘いただけると嬉しいです。

続きを読む Sinatra用のテンプレートつくった

Objective-Cの@synthesizeを自分で実装する

Objective-Cで@propertyと@synthesizeを使っていると、値を取得するタイミングや値を設定するタイミングでちょっとした処理をしたいことがある。ちなみに記事タイトルは正確ではなく、本記事はどちらかというと「Objective-Cでプロパティのセッターとゲッターの書き方」ぐらいのスタンスです。すみません。

続きを読む Objective-Cの@synthesizeを自分で実装する

よく使うgit(自分用)

gitでよく使うコマンドをメモ。随時アップデートする。

ブランチを新規作成 + 切り替え

$ git checkout -b (new_branch_name)

リモートブランチを持ってくる

$ git checkout -b (local_branch_name) origin/(remote_branch_name)

ローカルで作ったブランチをリモートに新規作成してpush

(remote_branch_name)は特に変更する必要がなければローカルのブランチ名と一緒でよい。

$ git push origin (remote_branch_name)

ちなみに、以下のように–set-upstreamを付けると、次回からgit pushだけでよくなる。

git push --set-upstream origin (remote_branch_name)

ブランチ名を変更する

カレントブランチの名前を(new_branch_name)に変える。

$ git branch -m (new_branch_name)

(old_branch_name)の名前を(new_branch_name)に変える。

git branch -m (old_branch_name) (new_branch_name)

ブランチを削除する

(branch_name)はremotes/origin/development/myfeatureの、development/myfeatureの部分。
ローカルブランチを削除して、リモートブランチを削除する

$ git branch -d (branch_name)
$ git push origin :(branch_name)

全部削除

$ rm -rf ./*
$ git rm -r ./*

別のブランチの内容を取り込む

現在のブランチに取り込みます。

$ git merge (another_branch_name)

サブモジュールの内容を修正した場合

サブモジュールのディレクトリに移動して、コミットしてプッシュしてから、プロジェクトのディレクトリでコミットする。

$ cd ./submoduels/subproject/
$ git commit -a
$ git push origin (remote_branch_name)
$ cd ..
$ git commit -a