タグ

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

  • cancan でモテカワ♥愛され権限管理 « blog.udzura.jp

    cancan gem (!= CanCam) は、ウェブアプリケーションの「認可」をつかさどるライブラリ。 おもしろWEBサービス開発日記のrailsメモ – 2009-12-15 Rails3.0 で Devise と CanCan を動かす rails cancanを試してみた Rails3でログイン認証(最終回) ロールはcancan 重要なのは、「認証」ではなく「認可」のみを受け持っているということで、要するに権限管理だけを「関心事」として持つライブラリであるということ。したがって、認証側は、 devise でも、 warden + omniauth でも、 Railscast のように authlogic でも、自力実装でも大丈夫だということ。キレイ目でもカジュアルダウンしたときにもコーデに使える万能アイテムのようなものですかね。 認証と認可の違い 当ブログにしては珍しく Rai

  • WEB+DB PRESS vol.74 に RubyGems について書きました。 « blog.udzura.jp

    ということで、連載一年目の締めとなる記事は RubyGems でした。一度誌で取り上げたテーマですが、今流行のバッジの貼り方など、より今どきな感じの作り方を紹介しているつもりです。 WEB+DB PRESS Vol.74 著者/訳者:井上 誠一郎 奥野 幹也 田中 慎司 西嶋 悠貴 伊藤 直也 登尾 徳誠 天野 祐介 後藤 秀宣 ヒノケン 近藤 宇智朗 近藤 嘉雪 渡邊 恵太 堤 智代 中島 聡 A-Listers はまちや2 川添 貴生 出版社:技術評論社( 2013-04-24 ) 大型 ( 184 ページ ) 今回の号から伊藤直也さんと言う有名なエンジニアの方の連載が始まっており、第一回はRubyMotionに関する記事を掲載されています。特集以外の連載記事にRubyに関する話題が二つ載っていると言うわけです。ウェブアプリケーションや開発におけるRubyの存在感がこう、じわじわ

    a2ikm
    a2ikm 2013/04/24
  • みんなも、ルビ〜の面白記法を見つけよう! « blog.udzura.jp

    This entry was posted on 2012年6月20日, 4:33 PM and is filed under Ruby. You can follow any responses to this entry through RSS 2.0. You can leave a response, or trackback from your own site.

  • WEB+DB PRESS で連載します « blog.udzura.jp

    WEB+DB PRESS Vol.69 著者/訳者:大塚 弘記 渡辺 修司 堤 智代 森田 創 中島 聡 A-Listers はまちや2 川添 貴生 井上 誠一郎 近藤 宇智朗 ヒノケン 後藤 秀宣 佐藤 鉄平 mala 奥野 幹也 伊藤 智章 出版社:技術評論社( 2012-06-23 ) 大型 ( 192 ページ ) WEB+DB PRESS Vol.69 に Ruby に関する連載をします。一回目は、 Padrino と言うウェブアプリケーションフレームワークについての記事となります。 査読に当たって、 @tyabe さんと @ainame さんからそれぞれ素晴らしい指摘をいただきました。ありがとうございました。記事に間違いがあればぼくのミスで、分かりやすかったり読みやすくなった箇所があればそれは査読者の皆さんのおかげです(これは今後の連載でも同じですけどね……)。 連載なので次

    a2ikm
    a2ikm 2012/06/14
  • ヤッター Ruby 1.9.3p0 + rvm でも ruby-debug が動いたよー « blog.udzura.jp

    割と情報が整理されておらず、調べ回って苦労した。 適当に Ruby1.9.3 ruby-debug とかで検索すると以下のアレが見つかる。 ruby-debug with Ruby 1.9.3? いろいろうさんくさい gist が貼られまくっていて錯綜している。順番に入れていく。 まず、 RubyForge から以下のファイルをダウンロードする。 linecache19-0.5.13.gem ruby-debug-base19-0.11.26.gem ruby-debug19-0.11.6.gem ruby_core_source-0.1.5.gem それぞれエントリを書いた現在での最新版。 gem install では入ってこないバージョンなので世の不条理を感じる。なんとかしてよ……。 落としてきたら、 Ruby 1.9.3 のソースパスを便利のために export する。 export

  • 退職のご挨拶 « blog.udzura.jp

    このたび、株式会社富士山マガジンサービス(fujisan.co.jp)を退社いたしますのでご報告します。2月3日(日)が最終出社となります。 Fujisan.co.jp では、大変に貴重な経験をたくさん積むことができ、1年と11ヶ月の短さとは思えないぐらい成長ができたと思います。特にエンジニアの皆様においては、ぼくは割とめちゃくちゃな人間だったと思うのですが、見捨てることなく多くのことを教えていただきました。感謝してもし切れません。 多くの方に迷惑を掛けたように思いますし、「良い“ものづくり”」のサイクルを思ったとおりに実現できなかった面があったと思っています。が、ひとえに自分の未熟さに依るもので、今後の課題としたいと思っています。 もう少しだけ違ったことをしたいと思い、より冷たい海に出ていこうと思います。 で、来週からさっそく新しい環境に入ります。そちらについても追ってご報告いたします

    a2ikm
    a2ikm 2012/02/03
    お疲れ様でしたー!
  • Ruby Advent Calendar 2011 / 2日目 – almost-sinatra.rb の深淵を覗く « blog.udzura.jp

    初めましての方は初めまして。近藤うちお(@udzura)です。 Sinatra ベースのフレームワークである Padrino framework の日語サイトを管理したりしています。 Ruby Advent Calendar jp: 2011 2日目である今日は、 Sinatra 主要コミッタである rkh が、わずか 8 行で実装した Sinatra クローン、「almost-sinatra.rb」を読み解いたりして、2日目にして一気に読者を置いてけぼりにしたいと思います(1日目はこちら – “Coffeescripting with Ruby”)。 RedBull(できれば複数)の用意を推奨します…… まずは、全コードを下にコピーして置いておきます。先日、 このパッチ が accept されたので、それが適用された最新バージョンです。 %w.rack tilt backports

    a2ikm
    a2ikm 2011/12/07
    4行目で挫けた
  • shibuya.rb(仮名)、第一回簡易報告+ ActiveSupport の便利 tips « blog.udzura.jp

    11月25日、有志にておこなった、渋谷近辺の Rubyist とそうでもない Rubyist による勉強会。今回は、 ActiveSupport のソースを読んでみた。 会場は最近「株式会社 VOYAGE GROUP に行ってきた!」で話題にもなった VOYAGE GROUP さん提供でした。 見たファイルとそのメモ 公式 github repo から落としてきた。下記、抜けがあるかもしれません。 “lib/active_support” “lib/active_support/inflector/methods” 読めば分かる “lib/active_support/dependencies/autoload” autoload の第二引数を省略可能になる “lib/active_support/lazy_load_hooks” #on_load “lib/active_support/

  • (たとえば、) Lokka に Rack Middleware を適用する « blog.udzura.jp

    先日のポストの続き、と言うより一例として、 Lokka に対しての Rack Middleware の使い方を見てみたい。 Lokka は軽量でステキな、 Sinatra ベースの CMS で、オープンソースの権化みたいなクールな会社フィヨルドさんで開発、メンテナンスをされている。個人的にも使わせていただいているソフトウェアなのだけれど、今回の利用にあたって例えば以下のカスタマイズ要件が必要になったとする。 身内向け告知用 CMS のため、 heroku にデプロイする以上、一応 Basic 認証をかけたい さらに、 http でのアクセスは、全部強制的に https にリダイレクトしたい 全部 Rack Middleware でできます。 まず、 Basic 認証ミドルウェアは、 Rack に標準添付されています。 config.ru を編集。 Encoding.default_exte

    a2ikm
    a2ikm 2011/11/22
    rack便利
  • SinatraとCoffeeScriptでわかる、Sprocketsの使い方 « blog.udzura.jp

    アセットパイプラインなどで使えるとして話題の Sprockets gem 、自分向けまとめ。確認しないで書いているところもあります。 アセットパイプラインを支える技術 – sprockets Sprockets: Rack-based asset packaging Web assets 、具体的には主に CSSJavaScript の圧縮/依存性の解決/各種ソースからの変換をサポートするための Rubygem 。 asset とは資産、財産の意。 執筆時点現在のバージョンは 2.0.3 。なお、 rack-sprockets gem は、 sprockets( 具体的には、 require 'sprockets' map '/assets' do environment = Sprockets::Environment.new environment.append_path 'ap

  • “API design for humans” をざっくり日本語にしてみた « blog.udzura.jp

    37signals Signal vs. Noise で投稿されたブログ記事、面白そうなので日語にしてみた。特に許可をとってたりとかしてないし、そんな厳密に原文をなぞってないですけど、まあ緩く。原文を必ずあわせて読みましょう。 37signals でデータを取り扱う仕事の終着点のひとつとして、たくさんのバラバラの API を取り扱うことがある – 私は少なくともこの数か月間で、10以上のサードーパーティ API を利用し、それと同時に我々の持っているすべてのパブリック API と、さらに多様な内向けインターフェースを取り扱ってきた。いくつもの違った言語で書かれたラッパーを利用し、いくつかは自分自身で書いた。こんな私が API の設計 – デザインとドキュメントに関して、利用者として強い意見を持っていたとしてもおかしくはないだろう。 私の経験上、 API のユーザビリティに真に関係する要素

  • OmniAuth、Warden、Sinatraを連携しよう « blog.udzura.jp

    セットアップ 今回は最終成果物がSinatraの1-filerなので、bundlerを使わずにRubyGemsを管理する。なので、素直にインストール。今回使うものを全部入れておく(というか、OmnuAuthの依存関係で色々入ってくる)。

    a2ikm
    a2ikm 2011/11/08
    omniauth 1.0からストラテジが外部gem化されたのでちょっとやり方が変わった
  • Sinatra 1.3.0 & Padrino 0.10.3 がリリースされました。ざっくり紹介(1)。 « blog.udzura.jp

    スィナトゥラとパデュリ~ノの最新バージョンがめでたく リリースされました。 1.3.0 は大変難産だったようなので、おめでとうございます。 ブログ、CHANGELOG等を見て、まずはざっくり Sinatra 1.3.0 を紹介させていただきます。で、こっそりとリリースされ続けてきた Padrino 0.10.0~0.10.3 での主な変更点は明日紹介させていただきます……。 ということで。 stream API の追加 一番の目玉はこれです。きっと。 get '/' do stream do |out| out << "It's gonna be legen -\n" sleep 0.5 out << " (wait for it) \n" sleep 1 out << "- dary!\n" end end 要するに、「レスポンスボディをちょっとずつ返す」ことが出来るようになりました、た

  • Sinatra でネームスペースを実現する « blog.udzura.jp

    なんか twitter でそういう声があったのでざっくり試したよ。 Rack::URLMap を使う なんと! Rack::URLMap は、 env["PATH_INFO"] をよしなにしてはくれません。/sub サブディレクトリにマウントしたアプリケ~ションにも、 /sub が付いたまま渡ります。なので、自分で削除する Rack Middleware 書いたった。 app1.rb: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 require 'rubygems' require 'bundler/setup' Bundler.require class SubApp < Sinatra::Base

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

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

    a2ikm
    a2ikm 2011/08/14
    社内の謎なperlスクリプトをcapistranoで置き換えたい…
  • PHP のテストを Ruby で書く « blog.udzura.jp

    皆さん、楽しくテスト書いてますか~~~ 今日は、 rack-legacy を使うことで、 PHP のアプリケーションなのになぜか Ruby のコードでテストできて(受け入れテストのあたりですけど)、そうすると物の RSpec とかが使えて楽ですよ、と言う話をします。 rack-legacy とは。 まず、 Rack とは、 Ruby 製のウェブアプリケーション(Ruby on Rails、Sinatraなどをご存知かもしれません)とサーバ(Apache/Passenger、NginX、Lighttpdなどなど…)をつなぐ一種の規格です。 PerlPython にも似たような仕組みがあります。 ここで、 Rack::Legacy というミドルウェアを使うと、他の言語の CGI や、 PHP のアプリケーションが Rack の上で動かせます。 そして、 Rack の上で動くということは

    a2ikm
    a2ikm 2011/08/09
    「rack-legacy 自体は IO.popen でファイルを開いて実行して 、その出力を利用しています。」だからCGI限定なのか
  • なぜ、個人のサービスなのにテストを書くのか。 « blog.udzura.jp

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

    a2ikm
    a2ikm 2011/07/29
    一度テストを書くとレガシーコード怖くなる。それでも突き進んでる(ダメなんだけど)。rspec書きたい
  • 東京varnish勉強会(Tokyo.vcl)まとめ « blog.udzura.jp

    ざっくり、雰囲気と僕が興味を持った部分だけまとめています…。 see also togetter: http://togetter.com/li/151585 @xcir さん varnish 2.1 -> 3.0 の機能変更などがメインの話題 専門用語連発で出端挫かれ気味… varnish は、 ESI をサポートする ESI とは http://www.akamai.com/html/support/esi.html ウノウラボさんによるサンプル http://labs.unoh.net/2011/02/varnishesi.html @phji さん ピクシブ もともと Squid でキャッシュ、 NginX でディスパッチャを分けていたのだが、 varnish なら両方を兼ねられてうれしいのではないか? と まずは Squid を一機 varnish にして試してみた -> よくわ

  • Nginx+Passengerで、WordPressを「本当に」動かす « blog.udzura.jp

    結論を最初に 一部機能を除いて動きました。 今のところ、画像アップロードが動きません。。 経緯 なぜ? I hate Apache2 – メモリに余裕が無いよ メモリに余裕が無いくせにRuby on Railsアプリばかりデプロイする予定なので、なるべくフットプリントを少なくしたいよ でもWordPressはクールなので使いたいよ mod_php ->論外 ;-( php-cgi(FastCGI) -> 悪くないし軽いんだけど、php-cgiプロセスを別途たちあげるのは、プロセスいきなり落ちてたりしたら気づきにくいっぽい=監視の面で不安 ちなみに、php-cgiでの導入手順はこちら:WordPress on nginx with FastCGIに移行してみた RackでPHP動かせるらしい -> マジで!? じゃあ全部Nginx+Passenger管理下に入れられるじゃん! Phuby!

  • Padrino+MongoDB+Herokuを使って、5分でWikiアプリ作成する « Coding Suicidal

    ここ数か月、PadrinoというRuby製フレームワークにはまり込んでいるわけですが。 軽量 テスト、i18n、各種ヘルパーなど一通りの機能が入っている ベースはSinatraなので、面倒くさいroutes.rbを書かなくてよい なによりザクザク作れて楽しい そんなPadrinoを草の根でも広げていきたいな~と思い、「Padrino+MongoDBHeroku」なシンプルなWiki風ウェブアプリケーションの作り方を、入門記事風に書いてみます。 環境はMac OS XやデスクトップLinuxを想定しています。前提として、まず、RubyRubyGems、Gitは入っていますか? 入っていないならばとりあえず入れておいてください。 Windowsの場合、Getting Started with Heroku on Windows(http://devcenter.heroku.com/art