タグ

ブックマーク / blog.udzura.jp (8)

  • Rack Middleware たちがどのように呼ばれるかを見てみよう(e.g. Sinatra) « blog.udzura.jp

    Sinatra::Base.middleware そもそも、 Sinatra::Base を継承したクラスには、クラスメソッドとして Sinatra::Base.middleware が用意されており、明示的に Sinatra::Base.use で利用を宣言したミドルウェアはそこから一覧を取得できる。 + (Object) middleware ところが、 Sinatra アプリケーションが実際に Rack でホストされ、アクセスされる際には、 use で宣言していないミドルウェアもたくさん呼ばれるわけで。その全貌が知りたい場合。むろん、 Rails、Ramaze、Camping といった Rack に対応したフレームワークならば同じような方法で「中を覗く」ことが可能なはず。 set_trace_func を使ってみる Kernel#set_trace_func は profile.rb

  • Capistrano力を上げよう « ディスコ探偵冬景色

    標記の力を高められるかもしれないいくつかのTipsを。 なお、あまりRailsと関係ないデプロイでも使えるTips多めです。CapstranoはRailsとの連携以外でも強力なデプロイツール。もっともっと評価されてもいいですね。 Capistrano::CLI.ui.ask でデフォルト値を設定する

  • byobu をはじめよう « blog.udzura.jp

    ずっと GNU screen を使ってギ~クを気取りたかったんですが、複雑怪奇な .screenrc などに関するバッドノウハウが怖くて(この辺 zsh 移行とかでも同じようなことが言えそう)何度か挑戦しては挫折していたんです。 でも、ここ数か月ぐらい byobu を導入していて、普通に長いこと使えているし大変快適なので、今回ざっくり紹介してみようかな~とか思います。 byobu とは Ubuntu Manpage: byobu byobu in Launchpad Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers. As an open source project, Byobu is an elegant enhancement of the

    ToQoz
    ToQoz 2011/08/13
  • PHP しか書けなかった僕が Ruby を始めたころに思ったこと10点 « blog.udzura.jp

    RubyKaigi とか色々あって、ふと、僕がプログラミングを始めたころのことを何となく思い出したので走り書きしておきます。特に PHP に関しては記憶が曖昧なところがおおいので、 PHPer モヒカン族によるツッコミを歓迎します。 配列とハッシュが違う PHP においては、配列も連想配列もすべて array() と言う関数で生成する。むしろ、配列というものがキーを数字にしているだけの連想配列と言う位置づけだと思う。 Ruby ではもちろん、主たるコレクションには Array と Hash の二種類が存在し、区別される。最初はこの区別に若干戸惑いを覚えた。 ちなみに Python だとリスト・タプル・辞書ともっと増えるわけで、Javaのコレクションクラスに至ってはさらに多いし、この辺はどの実装が正しいとか適切とかではなく慣習なのかなあ、と思ったりする。 型(クラス)がより厳格 PHP では

    ToQoz
    ToQoz 2011/07/31
  • なぜ、個人のサービスなのにテストを書くのか。 « blog.udzura.jp

    以下のエントリは、自分内ブレインストーミングの結果を書き起こしただけのモノなので、数年後どころか数ヶ月後でも意見が変わっているかもしれない。と言う前提で。 三つ、考えられる。 「未来の自分」が楽になる 自動テストコードは、その状態でのそのソフトウェアの挙動、仕様のスナップショットを撮る、と言う側面があり、それはドキュメントを各行為にも通じるが、「今書いている」自分以外の誰かがそのソフトウェアを変更したり、メンテナンスしたり、理解する際に役に立つ。人間はモノを忘れていく以上、「今書いている」自分以外、とは、当然未来の自分も含まれる。 実際、経験的にも、変更したらまずは rake spec を走らせて、エンバグしていないことを確認できるのは気持ちがすごく楽……。そのサービスを変えつづけていくつもりなら、是非テストを書こう。必ずいいことがある。 で、以下二つは、コードをgithubなどのソーシャ

    ToQoz
    ToQoz 2011/07/30
  • RubyKaigi2011に行った+Sinatra/Padrinoについてしゃべった « blog.udzura.jp

    表題のとおり、日 RubyKaigi 2011 にいってまいりました。いくつか発表をさせていただいたりしたので、今回はそのメモ+感想です。 Yami RubyKaigi – RailsダークサイドとSinatra/Padrino 闇で発表した内容です。5分尺で作っていた元々のバージョンです…… こちらの Togetter に若干反応が残っています。内容は、まあ、書いてあるとおりでコメントもなく、詳細は下記「!SinatraKaigi」ともかぶります。 「Railsいけ好かない」とか口走った記録がありますがそれは闇に操られてのことで、僕はRailsだいすきです! !日Sinatra会議 僭越ながら、大ホール・小ホールともに盛り上がる発表の中、やらせていただきました。参加していただいた皆様に感謝。 発表のアジェンダとしては、主に以下の3つの話をした記憶があります。 (1)Web開発には、事

  • Gyazo の upload.cgi を Sinatra で実装したりした(Heroku にデプロイもできるよ!) « blog.udzura.jp

    皆さんご存知の便利画像アップロードサービス、 Gyazo 、そのサーバ側実装 upload.cgi を、クローンして再実装してみた。 udzura / upload.cgi プロジェクト名は冗談で、中身は Sinatra で実装されています。さらに、画像保存にファイルではなく MongoDB(Mongoid gem) を利用しているので、 heroku その他クラウド上にデプロイできるというおまけ付きです。 デプロイメント、使い方 Heroku に登録し、アカウントを verify したあとならば、 git clone git://github.com/udzura/upload.cgi.git cd upload.cgi heroku create your-gyazo-app # setup heroku heroku addons:add mongohq:free heroku ad

  • etckeeperのつかいかた(インストール、サブコマンド追加) « Coding Suicidal

    Time to Read 2分 etckeeperと言うものがあり、要するに /etc 以下をリポジトリにして変更履歴を管理してくれる、大変大雑把と言えば大雑把なソフトウェアがあります。大雑把ですが、結構便利です。 インストール 1 sudo aptitude install git-core etckeeper そしたら、 /etc/etckeeper/etckeeper.conf と言う若干くどい名前の設定ファイルを編集。 1 2 3 4 5 # The VCS to use. #VCS="hg" VCS="git" #VCS="bzr" #VCS="darcs" Gitの他、MercurialやBazaarなんかが使えます。ただし、Subversionなどのような、中央リポジトリが必要なバージョン管理システムは使えませんね(ローカルにコミットしていくため)。 VCSを決めたら: 1

  • 1