タグ

ブックマーク / openlab.dino.co.jp (13)

  • Subversionのブランチ操作をgit並に簡単にする — ディノオープンラボラトリ

    svnとgit両方使うようになりました。するとgitの便利さに感嘆する一方、svnのブランチ操作の面倒臭さが際立ってきました。特に、ブランチ操作ではgitは素晴らしく例えば以下のような例をご覧いただくとその差は一目瞭然かと思います。 ブランチ一覧を得る git branch svn list http://example.com/svn/branches ブランチを作る git branch mybranch svn cp http://example.com/svn/trunk http://example.com/svn/branches/mybranch -m 'create mybranch from trunk' 以上のように、svnはブランチをブランチとして扱っていないためとても面倒なコマンドを打たなくてはなりません。これではとてもsvnのブランチなんて使ってられないのでとっと

  • rsyncの-Cオプションの指示を上書きする — ディノオープンラボラトリ

    rsyncの-Cまたは--cvs-excludeオプションって便利ですよね。これは、下記のファイル・ディレクトリを転送対象から外す設定です。 RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS .make.state .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig *.rej .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core .svn/ .git/ .bzr/ 転送すると問題になりがちなファイルを転送対象から外せるので、普段はとても便利です(よく見るとEmacsユーザーにしか影響の無いファイル*.elcも混ざってますね)。でも、「上記のうち*.soだけは転送したい」なんて時はどうすればいいんでしょうか。 解決方

    kamipo
    kamipo 2010/06/14
  • autotest で Symfony + Lime を自動テストする — ディノオープンラボラトリ

    ruby 界隈でよく使われている自動テストツール autotest の Symfony + Lime 用スタイルを書いて公開しました。 プロジェクトのローカルルールに合わせてあるのですが、軽く手を入れれば他のプロジェクトでも、また Symfony や PHP 以外でも使えると思います。 TDD で書いていないと不安が高じて動悸と息切れが始まる red-green-refactoring を唱えなさいとじっちゃに言われた growl の red を見ないとコードが先に進まない よくある話だと思います。 まずテストが無いと何も始まらない!書いたテストはがんがん自動実行して使い倒したい! となるとやはり、自動テストの出番ですね。 インストール手順 autotest コマンドをインストールします。rspec + autotest + インストール辺りでぐぐってください。 mac の人は a

  • PHPで最小の整数を得る方法 — ディノオープンラボラトリ

    PHP 4.4.0以降およびPHP 5.0.5以降では、最大の整数が定数PHP_INT_MAXとして定義されています。 $ php -r 'var_dump(PHP_INT_MAX);' int(2147483647) 64bit環境では次のような結果になります。 $ php -r 'var_dump(PHP_INT_MAX);' int(9223372036854775807) ところで、最小の整数が必要な場合はどうすればいいのでしょうか。実は最小の整数は定数定義されていないのですが、次のようにすれば取得できます。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-2147483648) 64ビット環境でも同様です。 $ php -r 'var_dump(~PHP_INT_MAX);' int(-9223372036854775808) ここで利用した~とい

    kamipo
    kamipo 2010/03/17
  • 続・$HOME/.ssh/configを活用していますか? — ディノオープンラボラトリ

    以前の記事「$HOME/.ssh/configを活用していますか?」では、設定ファイルを少し頑張って書けば普段のSSHライフが随分変わりますよ、と紹介しました。今日はその続編です。前回よりマニアックな設定を紹介します。 2段以上先のサーバにログインする Dynamic Forward機能を使う 共通設定をまとめて書く 2段以上先のサーバにログインする 目的のサーバにログインするために、踏み台的なサーバを経由しないと入れない環境があります。例えば、dmz経由でないとDBサーバにログインできない環境、というのは良くある構成でしょう。 このような場合に、ProxyCommandパラメータが利用できます。 上の設定で「ssh db1」とすると、sshでdmzに接続し、dmzから192.168.0.201へログインします。これを利用するには踏み台サーバにncコマンドが必要ですが、大抵の環境にインスト

  • cronでは「毎月第1月曜日に実行」ができない — ディノオープンラボラトリ

    社内の技術メモに「cronでは第1月曜日に実行などはできないので、実行されるスクリプト側で条件判定しないとダメ」というような記述がありました。一体どういうことでしょうか。 crontabの書式は「分 時 日 月 曜日 コマンド」です。また、数字はハイフンで範囲指定ができます。下記のように指定すれば毎月第1月曜日の午前3時にコマンドを実行できそうな気がします。 0 3 1-7 * 1 /path/to/command/execute-only-1st-monday しかし、これは期待通りには動きません。「1日から7日までの期間の唯一の月曜日」を指定したつもりが、実際には「1日から7日のすべて、または日付に関係なく月曜日」と解釈されます。マニュアルにも書いてあるのですが、「日」と「曜日」が両方指定された場合、OR条件になるのです。 ネット上を探すと、これでハマって試行錯誤した人が複数いるようで

    kamipo
    kamipo 2009/04/07
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

  • 勉強会「快適なwebアプリケーション構築のための基礎知識 増えていく負荷とサーバと機能に どう向き合うかの巻」を開催しました

    こんにちわ。arashoです。 表題の件で勉強会「快適なwebアプリケーション構築のための基礎知識 増えていく負荷とサーバと機能に どう向き合うかの巻」を開催しました。 今回はwebサーバ、DBサーバを増やして、インフラを構築・拡張していく場合、 インフラとアプリケーションは互いに強力しあわなければいけないんだよ 一つの問題の解決に対して解は複数あって、メリット・デメリットを比較して判断しないといけないんだよ と言うことを伝えたかったのですが、伝わっているといいのですが...。 とりあえず公開します。 使用したスライド

  • Subversion設定の標準化

    ディノ社内のバージョン管理は主にSubversionを利用しています。また、社内の開発環境はWindowsMacLinuxが入り乱れています。そんな環境で、一番問題が少なそうなSubversionの設定を考えてみました。現在これを社内標準として運用していますが、今のところ大きな問題は起きていません。 設定内容ですが、auto-propsとglobal-ignoresの設定です。各種ファイルについて、eol-style=nativeやkeywords=Idやsvn:mime-typeなどを設定します。 ちなみに、設定はsymfonyの公式オススメ設定「Symfony Repository Tips」から大半を流用しています。 設定内容 設定内容はsubversion-config.txtの通りです。同じ内容を以下に貼付けておきます。 [helpers] #diff-cmd = dif

  • 文字エンコーディングが仲間外れのファイルを素早く見つける方法

    プロジェクトに多人数が参加するようになると、なぜかプロジェクトの標準とは異なる文字エンコーディングのファイルがcommitされていることがあります。UTF-8で統一しているはずなのにShift_JISのファイルがある、なんて場合ですね。そこでメンバーの注意力不足を指摘したり、「だから***(自分の使っていないエディタの名前を入れてください)はダメなんだ」とかいう宗教論争に発展させたりというのでは不毛ですよね。簡単に気づく方法があればそれでいいんですよ。 方法は色々あると思いますが、今日はどこのご家庭にも必ずあるnkfを使ってみましょう。最近のnkfには--guessというオプションがあり、文字エンコーディングを推測してくれます。 $ nkf --guess hoge*.txt hoge1.txt:EUC-JP (LF) hoge2.txt:UTF-8 (LF) hoge3.txt:B

  • MacPortsのコマンド逆引き一覧

    MacPortsというのは、BSDのportsを参考に作られたMacOSX用のパッケージングシステムです。同様のパッケージングシステムとしてはFinkもありますけど、好きな方を使えばいいと思います。ちなみに、ディノ社内のMacユーザーの中ではMacPortsの独占状態になっています。私は最初Finkを使っていたんですが、話が合わないのが寂しくてMacPortsを使うようになりました。 さて、そのMacPortsですが、私が長年rpm&yumに慣れきっていたせいか、「こうしたい時どうするんだろ?rpmコマンドなら出来るの知ってるんだけど」みたいなことが良くあります。これは結構ストレスです。そこで、逆引き形式の一覧表を作ってみました。リファレンスマニュアルを見れば全部書いてあることなんですけど、意外と便利なんじゃないかと思います。少なくとも私は自分で便利でした。(さすがにもう覚えましたけどね)

  • MacユーザのためのSubversionTips

    どうも初めましてchariです。 ディノオープンラボラトリがオープンして結構経ったのにやっと初記事です。 2年前はMacユーザが自分含め3人ぐらいしかいなかったディノですが、 気がつけば11人までMacユーザが増えました!Mac大好きな自分としてはすばらしいことです。 ぼちぼち新人メンバーなどがSubversionを使い始めたのもあって 次の新人さんが来たときなどにすぐに教えられたり自分が再セットアップするときに また調べ直す手間を省くためにもmacでSubversionを利用する際の ポイントやらGUIツールなどをまとめてみようかと思います。 文字コード関連 OS X Leopardにデフォルトで入っているsvnを日語の濁点等が正しく処理出来ない問題に対応させます。(UTF-8-MAC問題) ディノの場合はクライアントとの間でエクセルのファイルなどをsvnで管理する場合に、

  • オレオレrpmパッケージの作り方(ビルド編)

    こんにちわ。arashoです。今回は前回のエントリに引き続きrpmパッケージのビルドのコツや効率よくパッケージングを行う小ネタなどを書いてみたいと思います。 パッケージのビルドオプションについて RPMのパッケージングには意外と時間がかかります。rpmbuildコマンドでソースコードの展開からパッチの適用、コンパイル、テンポラリディレクトリへのインストール、パッケージングをやっているので巨大なソフトウェアではコンパイルに時間を取られたりします。 そこで、rpmbuildにはいくつかビルドに便利なオプションが備えられています。-bp -bc -bi -bl --short-circuitです。それぞれのオプションはmanから引用すると -bp <specfile> の %prep (ソース展開と patchの適用) まで実行 -bc <specfile> の %build (%prepと

    kamipo
    kamipo 2008/07/04
  • 1