弊社は、deployツールとしてcapistranoを使っています。 しかし、Capistranoのメンテナンスが終了するという話("Jamis Buck氏, CapistranoやSQLite/rubyの開発を終了"参照)を聞いても、 特に困らないという事に気がついて、あらためて驚きを感じました。

なぜだろうと考えてみると、それはGitとGitHubの存在による所が大きい。 GitHubにソースがある限り、メンテナが不在でも勝手にforkして 野良patchを書いたり、それを集めてきてちょっとした stable release的なものを作ったりする事ができてしまう。

もちろんそれは、今までだって頑張れば出来た事だけれど、 Git/GitHubは、それを全く違う次元で簡単にしてしまった。

かつてはメンテナやコミッタが専権的にソフトウェア開発の決定権を握っていた構造が、Git/GitHubの登場によって、気がつかないうちに崩れ去っている。 これはソフトウェア開発史上、非常に大きな出来事なんだろう。

See Also

posted by Png genki on Thu 5 Mar 2009 at 03:58

Xcodeで開発しているiPhoneアプリをgitで管理する場合には、 以下のような .gitignore ファイルを使っています。

   1  *.xcodeproj/*.mode1v3
   2  *.xcodeproj/*.pbxuser
   3  build
   4  .DS_Store

posted by Png genki on Wed 4 Mar 2009 at 18:36

ちょっと必要だったので作りました。

ss

CoreGraphicsを使って、指定したCGRectの中に、指定した太さの×印(Cross Sign)を描画するためのPathを生成します。

   1  void PDPathAddCrossSign(CGMutablePathRef path, CGRect rect, CGFloat thickness)
   2  {
   3    CGFloat diff = rect.size.width - rect.size.height;
   4    rect = CGRectDeflateRect(rect, MAX(0, diff/2), MAX(0, -diff/2));
   5    CGFloat radius = rect.size.width/2;
   6    CGFloat d = sqrt(2)*thickness/2;
   7    CGFloat cx = CGRectGetMidX(rect), cy = CGRectGetMidY(rect);
   8    CGAffineTransform transform = CGAffineTransformMakeTranslation(cx, cy);
   9    CGPathMoveToPoint(path, &transform, d, 0);
  10    for(int i = 0; i < 4; ++i){
  11      CGPathAddLineToPoint(path, &transform, radius, radius - d);
  12      CGPathAddLineToPoint(path, &transform, radius - d, radius);
  13      CGPathAddLineToPoint(path, &transform, 0, d);
  14      transform = CGAffineTransformRotate(transform, M_PI/2.0f);
  15    }
  16    CGPathCloseSubpath(path);
  17  }

中で呼び出してるCGRectDeflateRectは以下のようなものです。

   1  CGRect CGRectInflateRect(CGRect rect, CGFloat width, CGFloat height)
   2  {
   3    rect.origin.x -= width;
   4    rect.origin.y -= height;
   5    rect.size.width += width*2;
   6    rect.size.height += height*2;
   7    return rect;
   8  }
   9  
  10  CGRect CGRectDeflateRect(CGRect rect, CGFloat width, CGFloat height)
  11  {
  12    return CGRectInflateRect(rect, -width, -height);
  13  }

これを使う事で、任意の大きさ、太さ、色で×印を描画できます。

posted by Png genki on Wed 4 Mar 2009 at 00:12
Contents
GitHubの登場はコミッタを特権階級から追い落とす革命だった
iPhoneアプリをgitで管理する場合の.gitignore
CoreGraphicsで指定したRectの中に×印のPathを生成する
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ