2011-01-01から1年間の記事一覧

あまり知られていないGitのTips

Git

思い浮かんだGitのTipsを列挙してみました。 gitのコマンドをで補完する git-completion.bash を入れると、でコマンドの補完が効くようになります。 また、PS1の設定を行うと現在のブランチ名が常にbash上に表示されるようになります。 (Windowsの場合、msy…

思いついたネタだけど、作る時間がないので公開してみた

タイトル通りですが、ネタ帳で塩漬けされてたネタを列挙してみた。もし面白いネタがあれば自由に使っても構わないです 駅情報の管理システム 確定申告の前に自分の行った駅を後から確認したり、交通費を簡単に算出できるサービス。自分の移動した駅を出来る…

gitの作業ディレクトリでの移動が捗るgit_cdを作りました

Git

11月19日にオラクルでSCMBootCamp in Tokyo 2というイベントがあり、そこでgitの講師してました。 周りの方のgitの質問に答えたり、コマンドの説明をしていたり。濃い話が聞けたり、普段触らない他DVCSの話も聞けて楽しかったです。 あと、花映塚はやっぱり…

git submodule を100倍便利にするpost-commit hook

Git

追記[2011/11/20] submodule のコミット書き換えは上手く動いていないので、該当箇所を取り消し線で削除 100倍は釣りです。 深夜にgit helpを読みながら構築した黒魔術の構築式がこちらです。 参考ページ Pro Git - Pro Git 6.6 Git のさまざまなツール サブ…

図で分かるgit-mergeの--ff, --no-ff, --squashの違い

Git

git-merge の--ff, --no-ff, --squashの違いをまとめてみた。 git helpから引用 まずは、git helpを読みましょう git merge --helpから引用(抜粋) NAME git-merge - Join two or more development histories together SYNOPSIS git merge [-n] [--stat] [-…

RSpecでArelのメソッドチェインをスタブにする

テストでメソッドチャインできるメソッドをスタブにする。 describe BlogsController do before do(:all) u = User.new User.stub_chain(:where, :limit, :order).and_return(u) end end こういう書き方も出来る describe BlogsController do before do(:all…

テスト対象のControllerの親クラスのfilterをskipする

テスト対象のControllerのActionのみをテストする時に便利。 describe BlogsController do before do superclass = controller.class.superclass super_filters = superclass._process_action_callbacks.map(&:filter) controller.class.skip_filter *super_…

RubyでFizzBuzzを書いてみた

ネタは前回の記事のデコレータ式と同じだけど、Rubyだとこんな感じになる。 余計なメソッドが多いのは、なんとなくRubyっぽいからです。特に意味はない。 仕様 前回と同じ どうしてプログラマに・・・プログラムが書けないのか? 1から100までの数をプリント…

PythonでFizzBuzz を色々と書いてみた

twitterのタイムラインがFizzBuzzの話題で盛り上がっていたので、やってみた。 普通のFizzBuzzだと面白さが足りないので、4つの実装方法で書いた。 仕様 どうしてプログラマに・・・プログラムが書けないのか? 1から100までの数をプリントするプログラムを書…

git-rebase を多用した開発の流れ

Git

git-rebase を使った開発の流れが固まってきたので、ブログで晒してみます。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); j…

bashにgitとmercurialのブランチ名を表示する

参考にしたページ bashでgitとmercurialを使いやすくする - YAMAGUCHI::weblog 環境 Ubuntu 11.04 変更箇所 .bashrc の「PS1=....」みたいな所を下記のような感じで変更する。 .bashrc # prompt command hg_branch() { hg branch 2> /dev/null | awk '{print…

図で分かるgit-rebase

Git

世間的に「Gitはコミットログを書き換えられてキモい」と言われ、肩身が狭いので git-rebase の説明を書いてみた。 git help から引用 まずは基本に忠実に、ヘルプを読みましょう。 git help rebase SYNOPSIS git rebase [-i | --interactive] [options] [--…

.gitconfig に最近追加したエイリアス

Git

2011/05/12のブログで.gitconfig を晒した後に増えたエイリアスを少し解説。 最新の.gitconfigはgithubのsinsoku/dotfilesに置いてある。 git ft ft = fetch -n --pruneタグは後述するfttで取得するため、-n(--no-tags)を設定している。 また、削除されたリ…

dotfilesをgithubで管理するようにした

今更だけどgithub でdotfilesを管理し始めてみた。https://github.com/sinsoku/dotfiles

Gitでコンフリクトした時のための備忘録

Git

コンフリクトしたときに便利そうなので、備忘録を残しておく Gitのコマンド コンフリクトしているファイルの一覧を表示する。 $ git ls-files -u [<path>] ファイルの状態(コンフリクト含む)を表示する。 -s でshort-format で特定のディレクトリのファイル一覧を</path>…

railsで作る簡単な本棚アプリ (2)

railsで作る簡単な本棚アプリ (1) の続き。 新規のユーザを作る。 rails serverを起動させた状態で、http://localhost:3000/users を開く。 "New User"のリンクをクリックして、新規ユーザを作る。 新規の本を作る。 ユーザと同じ要領で、http://localhost:3…

railsで作る簡単な本棚アプリ (1)

前回の記事 で書いたdefault_scopeとunscopedの例を試すために、簡単な本棚アプリを作ってみた。 環境 rails 3.0.7 rspec 2.6.0 rspec-rails 2.6.1 rails new 本棚アプリを作る rails new bookshelf -Tテストはrspec使いたいので、-Tオプションを指定する。 …

railsのdefault_scopeとunscoped

DBの論理削除*1を使う場合、default_scopeを使うと便利。 論理削除ではないが、簡単な例を下記に書いておく。 default_scope default_scopeをこのように定義しておく。 class Book < ActiveRecord:Base default_scope where(:R18 => false) end すると、 Boo…

Rubyのunless文で条件式が複数ある場合のメモ

unless文で、条件式が複数ある場合の動作がたまに分からなくなるので、備忘録書いておく。 先に結論を書くと、unless文は if文の条件全体にnotをつける のと同じ。 例 ball.rb #!/usr/bin/env ruby # -*- coding: utf-8 -*- class Ball def initialize(color…

RubyとRailsを使っていて、覚えたnilに関するまとめ

nilや例外に関する備忘録。 下記の記載はrails consoleで確認。 ActiveRecord 関連 「例外が発生する」パターンと「IDが見つからなければnilを返す」パターンを使い分ける必要がある。 find User.find(1) # => #<User id: 1, name: "sinsoku"> User.find(999) # 存在しないid # 例外 Activ</user>…

マジックコメントを1行目に挿入するvimスクリプト

Vimスクリプトリファレンスを参考にしつつ、マジックコメントを挿入するスクリプトを書いてみた。 ~/.vimrc " magic comment function! MagicComment() let magic_comment = "# -*- coding: utf-8 -*-\n" let pos = getpos(".") call cursor(1, 0) execute "…

.gitconfig と.gitignore について

Git

git のalias を設定し始めて、気づいたらaliasだらけになっていたので、 現在(2011/05/12)の自分の.gitconfig の設定を晒してみる。 参考にしたページ .gitconfigに設定してるaliasなどのまとめ - ゆろよろ日記 dotfiles ~/.gitconfig [user] name = sinsoku…

Rubyを使い始めた (2) - Rails3のArelの例

参考ページ Arel の概要は技術評論社のページを参照。 Ruby Freaks Lounge:第43回 Rails 3を支える名脇役たち その1 - Arel -|gihyo.jp … 技術評論社 はじめに サンプルとして、下記のようなModelとデータベースを作成してある。 $ rails g model book nam…

Rubyを使い始めた (1) - RVM

環境構築の仕方を忘れそうなので、メモしておく。 ちなみに、OSはUbuntu 10.10 を使ってます。 参考ページ RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation rvmを使う - NowTomの日記 RVMを便利に使う - ryog on rails RVMとは? RVM…

BPStudy#41で発表しました #bpstudy

Git

BPStudy#41 でGitのコミット書き換えの辺りを話しました。 プレゼン資料 git の歴史改変について https://dl.dropbox.com/u/3501492/bpstudy-41/presen.html S5の操作 S5 プレゼンで作ってあるので、操作はこんな感じ 操作 キー 次のスライド [Space bar], […