Archive for the ‘programming’ Category

gitとDropboxでお手軽・無料のSource Hostingを実現する

Saturday, January 16th, 2010

以前から興味があった、バージョン管理システムの一つである git を導入しました。

目的としては、もちろん開発しているソースのバージョンを管理する、というのもありますが、それ以上にHostingサービスを使って、複数台のPCから最新のコードにアクセスできるようにしたい、というものがあります。

ただ、調べてみたところ、有名な github を含め、基本的に Hostingサービスではプライベート用途で使う場合はお金がかかる模様 (ソースコードを公開するOSSの場合は基本的に無料です)。

それでは、ということで、複数PC間のデータをバックグラウンドで意識せずに同期してくれる無料ストレージサービス Dropbox とgitを組み合わせて、手軽にプライベート用のSource Hostingを実現することにしました。要は、リモートgitサーバを使う方法で、その宛先をDropbox内のローカルファイルにするだけです。

ここではプログラミングのソースを例に上げていますが、同じやり方でバージョン管理をしたい書類なども管理できると思いますので、お試し下さい。
なお、Dropbox自体の機能として、 30日以内であればファイルを以前のバージョンに戻す機能もあります

  1. Dropbox をインストールします。
  2. gitをインストールします (Macの場合は MacPorts からインストールできます)。
  3. Dropbox フォルダにgitのリポジトリを入れるフォルダを作成します。

    cd ~/Dropbox
    mkdir repo

  4. 上で作成したフォルダに {プロジェクトのフォルダ名}.git というフォルダを作成し、”–bare”オプションを付けてinitします。

    cd repo
    mkdir test.git
    cd test.git
    git --bare init

  5. プロジェクトが新規の場合、上で作成したDropbox上の {プロジェクトのフォルダ名}.git をcloneします。

    cd ~/dev
    git clone ~/Dropbox/repo/test.git

  6. 既存のソースなどを追加する場合は、一度そのプロジェクト上でadd、commitした後、Dropbox上の {プロジェクトのフォルダ名}.git にpushします。その後のpush、pullを楽にするためにremoteでoriginを追加しておきます。

    cd ~/dev/old_prj
    git init
    git add .
    git commit
    git push ~/Dropbox/repo/test.git master
    git remote add origin ~/Dropbox/repo/test.git

  7. あとはgithub等リモートサーバを利用するときと同様です。変更を加えてpushすればDropbox内のリポジトリが更新され、その内容が他のPCにも自動的に同期されて、リポジトリが最新の状態に保たれます。

    git pull
    ...
    git push

ちなみに、Dropboxが使えるのであれば、最初からそのフォルダ内で開発するのが最も楽で確実だと思いますが、その場合、開発時に自動的に作られるファイルや一時ファイル等も同期されてしまうことになります。
それを気にするかは好みの問題ですが、もし気になるような方は上記の方法で必要なファイルのリポジトリだけを同期するというやり方を試していただければと思います。

(参考)

MacでTwitterのタイムラインを読み上げさせる

Tuesday, December 22nd, 2009

Twitterは便利で楽しいものですが、タイムライン(TL)を追うのはなかなか大変です。
TLはすべて追えなくても気にするべきではない、とはよく言われるものの、他の作業をしていてもTLが気になったり…

そこで、他の作業をしながらTLも追いかけられるように、Macで自分のTLを読み上げる仕組みを作ってみました。


こんな感じで読み上げられます。
動画では写していませんがGrowlを準備しておけばつぶやきも表示されます。

以下、今回作成した仕組みの詳細です。
Perlやコマンドラインは使いますが、おそらく1時間-2時間で構築できると思いますので、よろしければ試してみてください。
質問、コメント等は @naokisatoname まで。

(more…)

PerlからTwitterを簡単に利用するNet::Twitter

Thursday, December 17th, 2009

TwitterはAPIが公開されているので容易にそのデータを利用することができるが、PerlからTwitterにログインしてTL等の情報を利用するにはNet::Twitterモジュールを活用すると良い。

インストールはCPANから可能。

sudo perl -MCPAN -e shell
install Net::Twitter

Snow Leopardの環境では、比較的時間はかかったものの、正常にインストールすることができた。

実際にPerlで利用するには、以下の様にコーディングする。

my $twitter = Net::Twitter->new (
username => "username", #ユーザ名
password => "password" #パスワード
)

my $ref = $twitter->friends_timeline();

この様にすると、$refに自分のTLの情報が格納される。
格納されたTLの情報から、以下の様にしてユーザの名前やつぶやきの内容を取得できる。

$ref->{'user'}{'name'}; #ユーザの名前
$ref->{'text'}; #つぶやきの内容