サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
sinsoku.hatenadiary.org
忘れそうなので、メモ。 web上でも編集できるけど、リソースがロックされるのでローカルで編集した方が楽。 参考ページなど Transifex - 多国語化プラットフォーム https://www.transifex.net/ Transifex Client v0.7 ― Transifex documentation http://help.transifex.com/features/client/index.html#user-client ソフトウェアの多言語対応を支援するTransifex - 偏った言語信者の垂れ流し http://d.hatena.ne.jp/nullpobug/20120313/1331645664 Transifex Client - tx - ◟(๑°ᗨ°๑)◜ http://wozozo.jp/2012/05/29/transifex/ Transif
4/20(土)にgitの勉強会をやってました。 イベントのページ Git天空闘技場 - connpass http://connpass.com/event/1958/ 資料 DVCSとGitの基礎 from sinsoku listy Git天空闘技場_ハンズオン from sinsoku listy 経緯とか 元々、Gitの内部構造を軸とした勉強会をやってみたくて、↓みたいな事を考えてた。 - 常に無名ブランチで作業(ブランチとか初心者には要らない) - リポジトリ内部を1コミットごとに調べる - ブランチ、タグの実体を知る - リモートの実体を知る - オブジェクトを理解する - 初心者向けの勉強会だけど、初心者をgitの深淵に突き落とすで、3月くらいに[twitter:@skowata]さんと話してたら「じゃあ、やろう」と。 最初は少人数でもいいかなぁと思っていたけど、意外と人が集
fossil でプロジェクトを作ってみた 参考ページ Fossil: Fossil Quick Start Guide http://www.fossil-scm.org/fossil/doc/trunk/www/quickstart.wiki コマンド簡易まとめ コマンド 説明 エイリアス fossil help コマンド一覧を表示 fossil help command コマンドのヘルプを表示 fossil command --help fossil init repository-filename リポジトリの作成 fossil new fossil open repository-filename ローカルのリポジトリから作業ディレクトリを作成 fossil set editor editor-name コミットログを書くエディタを設定 fossil add file... ファイ
fossil の特徴 分散バージョン管理ソフトだけど、チケット管理、wikiも付いてる インストールが簡単 autosyncの設定でsvnのようにも使える プロトコルがHTTPなので、portを開けたりしなくても良い リポジトリとしてsqlite3を使っている Web UIはそこそこ GUIのクライアントは無い veracity の特徴 分散バージョン管理ソフトで、チケット管理、wiki、CIが付いてる バーンダウンチャートが標準で表示される Web UIが奇麗 TortoiseのUIあり iPadのアプリあり 試した環境と各DVCSのバージョン OS: Ubuntu 12.04 64bit fossil: Linux x86 v1.25 veracity: 2.5.0.11065 [64-bit LINUX] fossil のインストール Fossil: Fossil http://ww
Git v1.8.2のDocumentationをgrepしてもそれっぽい記述はないので、正式な機能じゃないと思う。 gitの内部処理を悪用活用した方法なので、内部処理が変わると使えなくなるかも。 使用は自己責任で。 masterブランチのロック これで、masterブランチの変更(commit, resetなど)が出来なくなる。 $ touch .git/refs/heads/master.lockコミットしようとすると、下記のようなメッセージが表示される fatal: Unable to create '/home/sinsoku/Projects/sample/git-sample/.git/refs/heads/master.lock': ??????????. If no other git process is currently running, this probably
「今までのログを最初から作り直したい!」って事が時々あるので、その時に使えそうなコマンドをメモっておく。 コマンド 新しい歴史を持つブランチを作成する $ git checkout --orphan new_branch indexにaddされた変更を全て取り消す $ git rm -r --cached . 空のコミットを作る $ git commit --allow-empty -m "init project" 別のブランチのファイルをローカルに持ってくる $ git checkout old_branch -- .このコマンドの実行後、ファイルがaddされた状態になるので注意。 別のブランチのファイルをzipで持ってくる $ git archive -o old_branch.zip old_branch 何が便利なの? プロジェクトの初期で、最初に.gitignoreが無くて変な
注文していたblink(1)が届いたので、早速Jenkinsのビルド結果をチェックして、blink(1)を光らせるスクリプトを書いてみた。 スクリプト polling_jenkins.py 実行するには、thingmで配布されている"blink1-tool"が必要です。 スクリプトの説明など JenkinsのRemote access APIを使い、全てのjobの結果をチェックし、1つでもビルド失敗があれば、blink(1)を赤く光らせている。 また、include_jobsとexclued_jobsで特定のjobだけ対象にしたりも出来るようにしてある。 ちなみに、実際に光るとこんな感じです。 ちょっと明かりは弱いです。 blink(1)は簡単に使えますし、XFDに興味ある方は導入してみると良いかも。
msysgitでgit-flowを使おうとして、少しインストールにハマったので、メモ。 環境 Windows 7 64bit msysgit 1.8.0(Git-1.8.0-preview20121022.exe) 前提知識 見えないチカラ: A successful Git branching model を翻訳しました http://keijinsonyaban.blogspot.jp/2010/10/successful-git-branching-model.html 参考ページ Windows · nvie/gitflow Wiki https://github.com/nvie/gitflow/wiki/Windows bobthecow/git-flow-completion · GitHub https://github.com/bobthecow/git-flow-com
久しぶりにsvnを触ったら、logの表示やupdateがあまりに遅い。 git-svnを使っても、やっぱりupdateは遅い。 という訳で 勝手にgit svn fetchするようにbat/shを書いてみた。 バッチファイル・スクリプト 標準出力で出してる文字は下記の意味にしてる。 - : 待機中 > : git-svnのfetch 処理中 . : git-svnのfetch 終了 auto_svn_update.bat @echo off set LIMIT=600 set SLEEP_EXE="%ProgramFiles(x86)%\Git\bin\sleep.exe" set GIT_EXE="%ProgramFiles(x86)%\Git\bin\git.exe" %GIT_EXE% svn fetch :LOOP set /p x="-" < nul %SLEEP_EXE% %L
私がRSpec使ってテスト書く時はこんな感じで書いてるよ〜ってのを書いてみた。*1 テストを書く順番について TDDでコードを書く場合、先にテストを書く事になります。 そして、そのテストを書く順番ですが、私は下記のような順番で書くように意識しています。 設計する describe を書く itを書く subjectを明確にする before(context)を明確にする その他に、気をつけている点はこんな感じ 別のメソッド呼ぶ時は基本的にstubなどで潰す contextは「〜の場合」、it は「〜であること」になるようにする 一つずつ、詳細を書きます。 設計する テストを書き始める前に、まず実装しようとしてるクラス、メソッドを簡単に設計します。 少なくとも、「クラス名」「クラスメソッド or インスタンスメソッド」「メソッド名」「メソッドの戻り値」ぐらいは決めます。 describe を
active_decorator は便利なのですが、rspecでテストが上手く書けなくて、書き方を調べていた。 ただ、web上に情報が無く・・・ あ…ありのまま 今 起こった事を話すぜ! 「おれは decoratorのspecを書こうとしていたと 思ったら いつのまにかactive_decorator, rspec-rails, rails のソースコードを読んでいた」 decorator のspecを書けるように色々と設定する そのままだとspecが上手く書けないので、設定を追加しテストを書きやすくする。 application.rb でlib/のファイルを自動で読み込むようにする config/application.rb の # config.autoload_paths += %W(#{config.root}/extras) こんな感じでコメントアウトされている所を config
初めてgemを作って、RubyGems.orgで公開してみました。 ソースはGithubに置いてあります。 これは何? 1つのrailsアプリで複数データベースのマイグレーションを実行できるようにするgemです。 gem入れて、設定しておけば普段どおり rake db:create, rake db:migrate, rake db:drop が使えます。 インストール方法 gemなので、Gemfileに書いてbundle installするか、gem installで入ります。 Gemfile gem 'banana' もしくは $ gem install banana 使い方 config/database.yml にdatabaseの設定を追加し、model/migrationに接続先の情報を書きます。 接続先の情報は /#{Rails.env}$/ になるような名前にして下さい。
縛りプレイをすることで、Gitの基礎であるハッシュ(sha-1)を意識してみる。 縛りプレイ とは 1. SMプレイのうち亀甲縛りなど縄を使うプレイ(性行為)のこと。昭和から存在する言葉。 2. ゲームをプレイする際、本来ゲーム側からは設定されていない制限(縛り)を自ら科す事によって、より難易度の高いゲームをプレイする事。記事のタイトルの意味は 2. の方です。 概要 縛りの条件は下記の通り。 つまり、リモート(origin含む)、ブランチ(master含む)、タグの使用禁止です。 関連して、下記のコマンド/操作も使用禁止です。 git clone (origin が作成されるため) git checkout -b (-b オプションはブランチ作られるので禁止、それ以外はOK) git pull (動作が複雑なので) .git/ の直接編集(邪道なので) つまり、常にdetached HE
見えないチカラ: 【翻訳】Gitをボトムアップから理解する http://keijinsonyaban.blogspot.jp/2011/05/git.html 最後の方にstashの話が書かれていた。 以下、引用。 これはあなたのディレクトリの内容の全て――ワーキングツリーと、index の状態の両方を含む――を取り込み、それらのための blob を Git のリポジトリ中に作成する。tree はそれらの blob を保持し、そして stash コミットはワーキングツリーと index と、あなたが stash をした時の時刻を記録する。 これは良いプラクティスだ。なぜなら、次の日にあなたは git stash apply を使って stash から変更を戻すことになるが、毎日の終わりにはあなたが stash した全ての変更が reflog に存在するからだ。以下は、次の日の朝に作業をす
[twitter:@kyon_mm]さんの記事(僕がソフトウェア開発を勉強し始めて3年間でやったこと)を読んでいて、「今までのふりかえりかー。面白いかも」とか思ったので、ブログ書いてみた。 期間は就職(2008年4月)〜現在(2012年5月)の4年間。 1年目(2008年4月〜2009年3月) SIerな会社に入社。 会社の研修でJavaを習った後、会社の技術書棚にあった「Java言語で学ぶデザインパターン入門」を借りた。 たぶん、講義・研修・仕事に関係なく自分で読んだ技術書はコレが初めてだと思う。 ここでデザパタを覚えてから、オブジェクト指向、アジャイル開発に興味を持ち始めました。 読んでた書籍 増補改訂版Java言語で学ぶデザインパターン入門 作者: 結城浩出版社/メーカー: ソフトバンククリエイティブ発売日: 2004/06/19メディア: 大型本購入: 51人 クリック: 762回
前回の記事 で書いたdefault_scopeとunscopedの例を試すために、簡単な本棚アプリを作ってみた。 環境 rails 3.0.7 rspec 2.6.0 rspec-rails 2.6.1 rails new 本棚アプリを作る rails new bookshelf -Tテストはrspec使いたいので、-Tオプションを指定する。 git init gitリポジトリを作って、コミットしておく。 cd bookshelf git init git add . git commit -m "project init" rspecとfactory_girlの設定をする Gemfileの:development, :testのグループにgemを追加する。 railsが生成したGemfileのコメントを外して、下記の内容を追加する。 group :development, :test d
先日、msysgit v1.7.10がリリースされたので、インストールしてみました。 インストール msysgit のページの Downloads から「Git-1.7.10-preview20120409.exe」をダウンロードする。 インストールは基本的にnext押すだけですが、PATH の設定と core.autocrlf だけ少し説明を書きました。 PATH の設定 BashでGitが使えればいいので、「Use Git Bash only」を選択。 ちなみに、それぞれの設定の意味は下記の通り。 Use Git Bash only BashでGitを使う Run Git from the Windows Command Prompt GitがPATHに追加され、コマンドプロンプトでもGitが使えるようになる。 Run Git and included Unix tools from
参考にしたページ bashでgitとmercurialを使いやすくする - YAMAGUCHI::weblog 環境 Ubuntu 11.04 変更箇所 .bashrc の「PS1=....」みたいな所を下記のような感じで変更する。 .bashrc # prompt command hg_branch() { hg branch 2> /dev/null | awk '{printf "(hg:" $1 ")"}' } git_branch() { __git_ps1 '(git:%s)' } if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(git_branch)$
思い浮かんだGitのTipsを列挙してみました。 gitのコマンドをで補完する git-completion.bash を入れると、でコマンドの補完が効くようになります。 また、PS1の設定を行うと現在のブランチ名が常にbash上に表示されるようになります。 (Windowsの場合、msysgit は標準で入ってます) contrib/completion/git-completion.bash - GitHub インストール方法(引用) # To use these routines: # # 1) Copy this file to somewhere (e.g. ~/.git-completion.sh). # 2) Add the following line to your .bashrc/.zshrc: # source ~/.git-completion.sh # # 3)
DBの論理削除*1を使う場合、default_scopeを使うと便利。 論理削除ではないが、簡単な例を下記に書いておく。 default_scope default_scopeをこのように定義しておく。 class Book < ActiveRecord:Base default_scope where(:R18 => false) end すると、 Book.create(:title => "コミック快楽天 2011年 07月号", :price => 380, :R18 => true) Book.all # => [] R18な本はallで出なくなります。 unscoped 一覧を出したい場合は Book.unscoped.all #=> [#<Book id: 1, title: "コミック快楽天 2011年 07月号", price: 380, R18: true)] これでR
11月19日にオラクルでSCMBootCamp in Tokyo 2というイベントがあり、そこでgitの講師してました。 周りの方のgitの質問に答えたり、コマンドの説明をしていたり。 濃い話が聞けたり、普段触らない他DVCSの話も聞けて楽しかったです。 あと、花映塚はやっぱり面白いですね! そんな#scmbcの演習中 @1syoさんからの質問(質問だったと思う)で「gitの作業ディレクトリのrootに簡単に移動するコマンドとかないですか?」というものがありました。 具体的に書くと、こんな感じ。 例えば、下記のようなフォルダ構成だったとして。 ~/rails_proj/.git ~/rails_proj/app/controllersこういう時に $ pwd /home/sinsoku/rails_proj/app/controllers $ git cd $ pwd /home/sins
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] [--no-commit] [--squash] [-s <strategy>] [-X <strategy-option>] [--[no-]rerere-autoupdate] [-m <msg>] <commit>... git merge <msg> HEAD <commit>... git merge --abort OPTIONS --ff, --no-ff Do not gene
twitterのタイムラインがFizzBuzzの話題で盛り上がっていたので、やってみた。 普通のFizzBuzzだと面白さが足りないので、4つの実装方法で書いた。 仕様 どうしてプログラマに・・・プログラムが書けないのか? 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 実装 1 〜 シンプルなif...elif... FizzBuzz で最初に挙がる回答だと思う。 fizzbuzz.py #!/usr/bin/env python # -*- coding: utf-8 -*- class FizzBuzz(object): @classmethod def get_results(self, limit=100): resu
git-rebase を使った開発の流れが固まってきたので、ブログで晒してみます。 この呟きから日数が経っている理由は察してください。 とりあえず、マグナ・ゼロは2週して、黄金魔剣士は2回撃破しました。 まず初めに git-rebase に不慣れな方は真似しない方がいいです reflog でgit-rebase の失敗を戻せない人も真似しない方がいいです 無名ブランチに移動しても泣かないように 開発の流れ 前提 git-pull は使わず、git-fetch を使う 追跡ブランチでは作業をしない(必ずトピックブランチを作る) bashにgitのブランチ名を表示しておく(rebaseでコンフリクト起きるのが見えないと危険なので) 0. 作業準備 プロジェクトのディレクトリに移動する。 $ cd ~/Projects/FizzBuzz作業前にリモートリポジトリの変更を取得する。 $ git f
世間的に「Gitはコミットログを書き換えられてキモい」と言われ、肩身が狭いので git-rebase の説明を書いてみた。 git help から引用 まずは基本に忠実に、ヘルプを読みましょう。 git help rebase SYNOPSIS git rebase [-i | --interactive] [options] [--onto <newbase>] <upstream> [<branch>] git rebase [-i | --interactive] [options] --onto <newbase> --root [<branch>] git rebase --continue | --skip | --abort DESCRIPTION If <branch> is specified, git rebase will perform an automatic g
Vimスクリプトリファレンスを参考にしつつ、マジックコメントを挿入するスクリプトを書いてみた。 ~/.vimrc " magic comment function! MagicComment() let magic_comment = "# -*- coding: utf-8 -*-\n" let pos = getpos(".") call cursor(1, 0) execute ":normal i" . magic_comment call setpos(".", pos) endfunction map <silent> <F12> :call MagicComment()<CR> F12を押すと、1行目に # -*- coding: utf-8 -*-を挿入する。
2011/05/12のブログで.gitconfig を晒した後に増えたエイリアスを少し解説。 最新の.gitconfigはgithubのsinsoku/dotfilesに置いてある。 git ft ft = fetch -n --pruneタグは後述するfttで取得するため、-n(--no-tags)を設定している。 また、削除されたリモートブランチは自動的に削除するために、--pruneを設定している。*1 git pl pl = pull --no-tagsタグは後述するfttで取得するため、-n(--no-tags)を設定している。 普段はftを使うので、ほとんど使わない。 git ftt ftt = fetch -n --prune origin refs/heads/*:refs/remotes/origin/* refs/tags/*:refs/tags/origin/*自分が
コンフリクトしたときに便利そうなので、備忘録を残しておく Gitのコマンド コンフリクトしているファイルの一覧を表示する。 $ git ls-files -u [<path>] ファイルの状態(コンフリクト含む)を表示する。 -s でshort-format で特定のディレクトリのファイル一覧を表示できる $ git status [<path>] 手動で直す方法 修正後にaddが必要 $ vi <path> (手動でコンフリクトを直す) $ git add <path> mergetool でマージする方法 -y でデフォルトのマージツールが実行する で1つずつ指定できる $ git mergetool -y [<path>] をHEADと同じ状態にする。 修正後にaddが必要 $ git checkout --ours [<path>] $ git add <path> をマージで指定
nilや例外に関する備忘録。 下記の記載はrails consoleで確認。 ActiveRecord 関連 「例外が発生する」パターンと「IDが見つからなければnilを返す」パターンを使い分ける必要がある。 find User.find(1) # => #<User id: 1, name: "sinsoku"> User.find(999) # 存在しないid # 例外 ActiveRecord::RecordNotFound: Couldn't find User with ID=999 find_by_id User.find_by_id(1) # => #<User id: 1, name: "sinsoku"> User.find(999) # 存在しないid # => nil where User.where(:id => 1).first # => #<User id: 1
次のページ
このページを最初にブックマークしてみませんか?
『アジャイルSEを目指すブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く