タグ

ブックマーク / aligach.net (16)

  • rsync -C で除外されるバージョン管理関連のファイル

    rsync の -C オプションは CVS と似たアルゴリズムで同期対象からファイルを除外してくれる。 $HOME/.cvsignoreCVSIGNORE 環境変数各 SRC ディレクトリの .cvsignoreを参照してくれるが、それ以外にもデフォルトで除外してくれるパターンもある。 少なくとも rsync 3.0.7 では -C, --cvs-exclude This is a useful shorthand for excluding a broad range of files that you often don't want to transfer between systems. It uses a similar algorithm to CVS to determine if a file should be ignored. The exclude list is i

  • vagrant + chef-solo provisioningが初めて動くまで

    あるいは Kanazawa.rb meetup #9 は「意識高いもくもく会」です。 はい、まぁ最近じゃ今さらの話ですね。 VagrantChef | OpscodeChef って興味あったんですよというか正確には Puppet に興味があって、でも大げさだなと思ってたんですよね。あと当時は Puppet は外部DSLだったので、「Rubyの文法でもなんでもない設定って、どうやってエディタでハイライトするの?」というのが最大の心理的ハードルでした。 で、時は流れて Software Design の Chef 特集を読んでやる気になったけど、家のリファレンスと格闘しているうちに仕組みの大掛かり感が増長されて挫折。その後ビッグウェーブに乗って達人出版会で買った『入門Chef Solo』を読み、そこでようやく 「サーバの状態を管理し収束させるためのフレームワーク」 という表現がグサッと刺さっ

  • kanazawa.rb meetup #1 に参加してきた

    参加してきたっつーか、まぁやるって決めたの自分なんだけど。 Meetup #1 - Kanazawarbkanazawa.rb meetup #1 : ATNDkanazawa.rb beerup #1 : ATNDIntrointroを英語プレゼンにしたら会場のボルテージが上がるのではないか? meetup ってなんか英語っぽくね? 「ぽかーん」「ぷーくすくす」「ア…ア…」 大失敗orz 全体的な準備正直ものすごく手間が掛かった。始まってみたら想像以上の人数で余計なこと考える必要ない状態だったので、まぁ結果オーライなんだけど。さすがにatndの管理、お店の予約、施設の予約、あれこれissue起こして自分の発表2つ分のスライド作って…、ってのはもう二度とやりません。これは絶対に持続できない。 あとあえて出欠確認表を現地で印刷しようと思ってPDFだけ作ってノートPCに入れたままの状態で持って

  • Linux で sh スクリプトを書くときは Debian がいいのか?

    Linux の /bin/sh て基的に bash ですな。で、これで sh スクリプトを書いてあると、あるときこれを *BSD とかでも使おうと思ったときにハマります。*BSD の /bin/sh は bash じゃないから1。 というようなことは 横着プログラミング 第11回: 小粒なツールたち でも触れられていて、ここで高林さんは 私はちょっと複雑なシェルスクリプトを書く場合には /bin/zsh を使うようにしている。 これは zsh の拡張機能を使いたいためということもあるが、「bashism」なシェルスクリプトを書くのを避けるためという意味も大きい。bashism なシェルスクリプトとは、#! /bin/sh で始まっているにも関わらず、 bash の拡張機能を使っているもののことである。 という豪快な解決法に辿り付いているんだけど、自分は逆に「Linux でもストイックに

  • github pagesとjekyllを今さら練習, 夏だ

    という名前でアクセスできるようになる。 両方作ったらどうなるの?2種類あると気づいた段階でピンときてたんだけど、どうもこの2種類の github pages は最終的に一つのディレクトリツリー上に展開されているようだ。 試しにやってみたところ github.com/wtnabe/wtnabe.github.com 内に /ical2gcal/index.html を作成 作った /ical2gcal/index.html が wtnabe.github.com/ical2gcal/ に表示されるgithub.com/wtnabe/ical2gcal に gh-pages branch を作る 作った gh-pages が wtnabe.github.com/ical2gcal/ に表示されるgithub.com/wtnabe/wtnabe.github.com/ical2gcal/inde

  • ノーフレームワークのレガシーPHPがCIに乗るまで

    ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHPHTMLSQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p

  • CI始めました

    Welcome to Jenkins CI! | Jenkins CI なんとなく Java はメンドイという思い込みで避けていたんだけど、先週末にちょっと思い立って Jenkins のインストールを試してみた。Debian で試したところものすごく簡単だったので職場にも起こしてみることにした。 DebianにJenkinsをインストールDebian 6 にJenkinsをインストール - cactusman日誌 を参考に。 まずインストールはとても簡単。各種パッケージシステム用にパッケージが用意されてるから。 自分は Debian を使ったんだけど、上のエントリと java のパッケージが違う以外は するだけ。ここら辺とてもよく Debianize されてる印象。 Debian + Jenkins の考え方jenkins ユーザーでプロセスが動いてjenkins ユーザーのホームディレク

  • JavaScript Url DispatcherとかRouterについて調べた

    あるいは kanazawa.js v1.0.1 勉強会 : ATND に参加してきた。(前回と同じパターンの使い回し) なぜdispatcher(あるいは router)か実はピンときてなかったけど、なんかこういう手法があるっぽいということだけ知ってた。 pixiv Tech MeetingでpixivのJSの話をしました から辿れるスライドを見てなるほどなと思った。自分がいちばんなるほどと思ったのは WAFの不自由さ というか layout ファイルの <script> を可変にできるように仕組み用意していちいちそこに何か文字送ったりするのってめんどくさいよねというか、要するに script loading も DRY に ってことじゃないかな。もっかい整理すると layout ファイルで JavaScript のライブラリの読み込みは共通にできるでも layout ファイルの中に手を出

  • ようやく Rails3 アプリを一つリリースした。

    リリースしたものよりもそこに至る過程や理由が自分にとって大事なのでそれを残しておこうと思う。 ※ なんかこれしか書いてないとリリースしたものがどうでもいいように聞こえるけど、そんなことないよ! 付き合い続ける気があるからこその Rails だもの。 Rails の採用に関してオレフレームワークとの決別と人材採用のコストダウンこれまで、PHP 4.2 以降で使えるオレライブラリ、オレフレームワークで小規模なものを作ったり、PHP 3 時代からのレガシーというか遺跡級のシステムの漸進的リプレイスなどを行っていたが、どうも限界を感じていた。なんか仕事が後ろ向きな感じもしていた。このままだとずっと時代に追いつけずに終わりそうという危機感もあった。 また、Google App Engine の登場以降感じていた「うちに必要な技術はこれだよ」と具体的にはっきり言えること、それによって生み出すことのでき

  • 今さらRails3メモ - 番外編その2: gitに入れてないファイルの洗い出し -

    以下の内容を Rails.root/lib/tasks/git.rake に置くRails.root/.gitignore に cache, tmp など除外したいファイルのパターンを追加以上。 もっといい方があるような気もするけど、今のところ満足。

  • 今さら始めるRails 3

    Ruby との付き合いはそれなりに長いのですが実は Rails で何かを作ったことは一度もありません。1scaffold や migration は一通り試してみたことがあったけれども、何か拭えない不安感や縁のなさから今までは周辺技術の一つとして以上には触ったことがありませんでした。 興味今回、出遅れはしたけれども 全面的に Merb & Rack ベースArel 登場i18n の機構が組み込み済みすでに実績が増えてきている辺りで強く興味が湧いてきたのでまずは一通りの準備をしてみました。 消極的な理由消極的な理由も実はあって、それは PHP のレガシーコードと戦うのに疲れた負債のある PHP で最新バージョンに追いつくのは大変最新バージョンでないと PHPPHP のフレームワークの旨味は味わえないRuby なら最新でなくたって遊べるRails の過去の作法をほとんど知らないので混乱し

  • 複数バージョンの LL を入れる話を集めてみた

    意外なことに Perl, Python は複数バージョン入れるツール自身が元の言語で書かれています。Perl はシステム標準に入っているディストリビューションが多いからまだ分かるけど、Python でこの戦略を採用するのはちょっと大胆な気がします。 ※ Python は virtualenv だけでも複数バージョンを切り替えて使うことができます。ただし、インストールや動的な切り替えまでは面倒みてくれません。そんなときに pythonbrew が便利なようです。 rvmrvm の記事はもう書いてあります。 rvmを使ってREEへの移行を考える - あーありがち(2010-07-17) BundlerBundler の記事ももう書いてあります。 Bundler 0.9.26 を触ってみた - あーありがち(2010-07-19) perlbrewgugod's App-perlbrew at

  • マッチしなかった要素を探す

    ちょっと表現が微妙なんだけど 正規表現マッチを使いマッチしない要素(行など)を探す方法が急に気になったのでまとめてみた。 grep -vGNU grep, BSD grep の場合は -v オプションが使える。–invert-match で、まさに「マッチしなかった行を探す」目的に使う。 awk '!/RE/'awk の場合は基的な動作を

  • CGI を rackup してみた

    Ruby は自分の大好きな言語だが、実は長く運用する Web アプリを Ruby で書いたことはない。cgi.rb の評判はずいぶん前から芳しくないし、決定打となるフレームワークの不在が長く続いたこと、すでに PHP を使っていたことが大きな理由だった。 Rails が登場した。勉強した。「うーん、なんか DBMS とか要らないんだけど、どうしたらいいのよ?」と思っているうちに世間ではすっかり定着、代わりに自分の中では興味は薄れていった。そうこうしているうちに Rails の問題点もちょこちょこ指摘されるようになり、prototype.js とともに先駆者ゆえの苦難を味わっているなぁと感じている今日この頃。 Merb だなんだと言われていた中、Rack が登場した。これだ!と思った。こういうシンプルなやつが欲しかったんだよ! しかしそれから特に何の理由もないまま一年半の月日が流れた。なんか

  • Godで初めてのプロセス監視

    Ruby 製のプロセス監視ツール、God を試してみた。(書いてる時点より5ヶ月前…。) モダンに監視したいなぜなら TIG が落ちるから(笑) 実は Un*x 系の OS なら素朴な監視は割と簡単にできる。 psgrep/etc/rc.d/* とか /etc/init.d/* とかsendmail辺りで事足りる。要するに 定期的に ps を叩いて、この文字列のパターンがない場合はこのプロセスが落ちてるから mail 投げて起動スクリプトを呼ぼう ってだけ1。これだけでプロセスが落ちてたらまた起動し直すということが可能なので、知らん間にサーバ落ちててオレ涙目っていう状態を減らすことはできる。少なくともすでに上の道具が使えているなら新しいことを覚える手間はないので、どうしてもすぐ監視を始めたい場合にはこれだけでも十分有効だと思う。 でも効率が良くない。ちょっと複雑なことを考え始めると for

  • gem メソッドで gem ライブラリのバージョンを指定

    のかな 22:23:11 ma2> @wtnabe gemを使わないとダメなんじゃないでしょうか。 22:25:20 wtnabe< @ma2 えっと、require_gem でできるってことですか? 22:30:49 wtnabe< あー Kernel#gem か。なるほど。 23:15:35 wtnabe< @ma2 gem 'GEM_NAME', 'version'; require 'GEM_NAME' で すね。ありがとうございます。 $ ri Kernel#gem ------------------------------------------------------------- Kernel#gem gem(gem_name, *version_requirements) -------------------------------------------------

    Naruhodius
    Naruhodius 2009/07/09
    ∑(。・д・。)b ナルホディウス!
  • 1