タグ

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

  • 子要素を再帰的に取ってくるストアドプロシージャ « Coding Suicidal

    なぜ MySQLは、WITH RECURSIVE文をサポートしていないため、たとえば以下のような自己参照テーブル “comments” +------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | parent_id | int(11) | YES | | NULL | | | body | varchar(255) | YES | | NULL | | | created_

  • RSpec のメタ情報が知りたい « blog.udzura.jp

    RSpec の DSL には、 example と言うメソッドがあり、そこを経由して現在実行中の example の情報を得ることができる。 def add(*args) args.inject(:+) end describe "add" do before do p example.class #=> RSpec::Core::Example end subject { add(*args) } context "when 1 + 1" do let(:args) { [1, 1] } it { should == 2 } end end 具体的には、 example は RSpec::Core::Example のインスタンスらしい。 Class: RSpec::Core::Example 以下のような属性、メソッドがある: #exception 実行中の example で最初に起

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

    一部の方への見誌等はすでに届いているものと思いますが、標題の通り、連載の記事としてRuby 2.0について書きました。 WEB+DB PRESS Vol.73 著者/訳者:設樂 洋爾 白土 慧 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 出版社:技術評論社( 2013-02-23 ) 大型 ( 192 ページ ) まつもとさんも取り上げていた、 キーワード引数 Enumerator::Lazy Module#prepend Refinement の4点を中心に取り上げています。サンプルコードはなるべくオリジナルを目指して頑張りました(特にprependのやつは編集さんに褒めてもらえた)。若干の「移行の手引き」的な内

  • shibuya.rb[:20121017] でgerritについて話した « blog.udzura.jp

    発表 ↑ です。ヒカリエ相変わらず奇麗で良いですね。なんか来週も行くかと思いきや会場変更ですが(急でスミマセン……)……。 会場で割と、「githubのほうが〜〜という点で有利ではないか」みたいな意見をもらった気もしますが、言われたことはぼくもほぼ大筋同意しています。 基githubにすでに慣れていて、レビューの勘所もつかんでいるのならgithubを便利に使えば良いと思います。 ぼくはまあ、みんながギッハブギッハブ言っていてもつまんないよな〜と思ったので、gerritを使っていて一定以上の程度でちゃんと回せているというのを伝えたかったのと、あと前の会社での経験がありまして、前の会社でもgithubにリポジトリをクローンしていたんですが、あんまり有効に使えていなかったよな〜と言う思い出があります(ぼくのいたチーム、まあ途中で空中分解したんですが、は少なくとも誰も有効な使い方を分かっていな

  • Web+DB Press vol.70 に書きました « blog.udzura.jp

    WEB+DB PRESS Vol.70 著者/訳者:成田 一生 高津戸 壮 佐藤 祐介 久森 達郎 大窪 聡 田 謙 和田 英一 天野 祐介 藤 吾郎(gfx) 奥野 幹也 Dr.Kein 近藤 宇智朗 後藤 秀宣 mala 中島 聡 森田 創 堤 智代 A-Listers はまちや2 出版社:技術評論社( 2012-08-24 ) 大型 ( 200 ページ ) WEB+DB PRESS Vol.70 に、前号に引き続き Ruby に関するコラムを連載しています。 今回のテーマはActiveSupportです。広い範囲をカバーしているライブラリなので、記事ではあまり認識されていないような気がする機能にフィーチャーして書いてみました(自分でも調べていて勉強になりました……)。 表題は、最初は「君の知らないActiveSupport」にしようと思ったのですが、ひどいな、と思ったので自重し

  • 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 さんからそれぞれ素晴らしい指摘をいただきました。ありがとうございました。記事に間違いがあればぼくのミスで、分かりやすかったり読みやすくなった箇所があればそれは査読者の皆さんのおかげです(これは今後の連載でも同じですけどね……)。 連載なので次

  • Classic Sinatra が定義するトップレベルメソッドの話 « blog.udzura.jp

    $ ruby get-string.rb [2012-05-06 16:46:35] INFO WEBrick 1.3.1 [2012-05-06 16:46:35] INFO ruby 1.9.3 (2012-02-16) [x86_64-darwin11.3.0] == Sinatra/1.3.2 has taken the stage on 4567 for development with backup from WEBrick [2012-05-06 16:46:35] INFO WEBrick::HTTPServer#start: pid=24113 port=4567

  • Shinjuku.ex #02 でした « blog.udzura.jp

    elixir-lang.org 地味に第二回を開催しました。第一回については、 @mizchi(敬称略)のブログ記事 に詳しいです。 今回は、最新の Elixir についての素晴らしい記事を書いていらっしゃる id:k-1 さんなどに参加していただき、おもに Common Lisp やその他マニア言語の話題をみんなでしました。会場提供は 株式会社 Aiming さんでした。というか結局某 A 社から 4 人も参加(8人中)だったので、 Elixir 光の軍団が結成される日も近そうです。エリクサーをアンデッド系や闇属性のモンスターに投げると一発で倒せそうですが、効果や如何。 個人的な知見メモ Erlang は OTP(Opem Telecom Platform) とセットでリリースされる R15B01 とかはOTPのバージョンでもある。ちなみに Erlang の実行ファイルやドキュメントにも

  • rack-block という Rack Middleware をリリースしました « blog.udzura.jp

    ついさっきリリースしました。検索ボットなどのアクセス避けに使えたりします。 udzura / rack-block on Github rack-block by udzura 使い方はREADME.md、もしくはspecを。あとでちゃんとドキュメントすると思います。 内部は(まだ)いろいろ凄いので、あんま突っ込まないでください…… では、メリークリスマス!!

  • 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

  • 渋谷で勉強会してきました。(邪悪な顔で)発表もしました。 « blog.udzura.jp

    ウェッブでオリジナルTシャツをつくれるtmux等のサービス有名な spicelife さんでビアバッシュ的に、Ruby初心者向け勉強会をしました。お誘いいただいた @HolyGrail さんありがとうございました! 最近は PREZZY などのサービスを開発中とのこと。 認証とか認可 on Rails あまり資料としては内容が無いのですが、ポインタとして公開します。あと、最近では sorcery も有名でしたね。キャストもある。 ほかの方の発表内容は uzulla さんに委譲します(そういえばこの会合でついにうづらとうずらさんが遭遇しました)。。。邪悪な表情もuzullaさんのブログで見られます。というか凄い顔。。。 またこんな感じのノリでやれるといいな〜と思います。 This entry was posted on 2012年2月21日, 9:47 AM and is filed un

  • ヤッター 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

  • shinjuku.rb #1 で発表しました « blog.udzura.jp

    西新宿某所で行われた shinjuku.rb #1 に行ってきました。幸運にも滑り込めたのでLTさせていただくなどしました。 Introduction to the Sinatra Book スライドは Samurai と言いたいだけなんですけれど、 Sinatra: up and running 、良いです。 Sinatra: Up and Running 著者/訳者:Alan Harris Konstantin Haase 出版社:Oreilly & Associates Inc( 2011-12-06 ) ペーパーバック ( 103 ページ ) スライドの通り電子版(オライリーコムから買えます)もいい感じです。ぼくはおじさんなので紙の方が読みやすいけど。。。 結構発表自体にも反応がいただけて、おもしろそう! と思っていただけたんですが(not ステマ)、でもやっぱり英語の壁がち

  • Gemnasium が地味に便利そう « blog.udzura.jp

    Gemnasium Gemnasium keeps you up to date on the gems that matter to you. あなたが github 上に Rubygems やその他プロジェクトのリポジトリを持っていたとして、その Gemfile や gemspec を読み込んで、依存関係を把握し、記述がまずい等で最新の Rubygems にキャッチアップできないようなら教えてくれるサービス。 こんな感じ。 要するに、 bundler はすでに 1.1.rc7 が出ていて、遠からず 1.1 がリリースされるだろうから、よってこの ~> 1.0.0 という記述のままではじきに最新のものが使えなくなるよ、ということ(黄信号)、さらに、 rspec はとっくに 2.8.0 が出ているので、いまの ~> 2.3.0 という記述では最新のものが入らないよ(赤信号!)、などの情報が

  • Webistrano はもっと評価されてもいいと思うので、紹介します « blog.udzura.jp

    業務でも便利に使わせていただいております、 Webistrano 、言ってみれば capistrano の web UI なんですけれど、大変有用なので、ちょこっと紹介します。 What’s good Webistrano は、リモートサーバーへのデプロイを大変簡単にしてくれる capistrano と言うコマンドラインツールを、ウェブアプリケーションでラップしたものです。 やれることは素の capistrano と同じなんですが、ブラウザベースアプリケーションになることで以下のようなメリットが生まれます。 ブラウザベースなので、 CUI に抵抗がある人でも簡単にデプロイできる (CUIをいつまで経っても覚えてくれない人っていますよね~…) テスト、ステージング、番、などで別々の設定を保存できる (Highline などを使ってインタラクティブに尋ねる必要なし) プロジェクトをまたい

  • 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

  • Ubuntu ではじめる「7つの言語 7つの世界」 « blog.udzura.jp

    最近、微妙に身内な感じで、プログラマ風の人たちで集まり『7つの言語 7つの世界』の読書会などをやっている。 で、僕はとりあえず一通り読み終わって、今後は読書会の場などで手を動かしながら、サンプルコードを写経などしながら、課題を解いていったりする段階だと思ったので、先日 Ubuntu Natty マシンを用意してセットアップを行った。その際の作業メモ。某勉強会界隈はどうせみんな Mac でしかも Book Air なので、 Lion / homebrew 版の手順書を誰か作っていただけると幸甚です。 処理系を入れる Io 以外は一気に入れることができる。 apt 最高!!!!

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

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

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

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

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

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