タグ

rubyに関するagxのブックマーク (178)

  • 知って得する!55のRubyのトリビアな記法

    Rubyはたのしい言語です。Rubyを触っているとマニュアルにも書いていない「小さな発見」に遭遇することがよくあります。このような「発見」は、プログラムの質や効率の改善には直結しないかもしれません。いや、むしろチームプログラミングでは妨げになる可能性すらあります。しかしその一方で、言語自体が自分の知らない領域を持ち続けていることが、その対象に対する興味を失わせないための大きな要因である、というのもまた疑いのない事実なのです。つまり「発見」はたのしさに直結しているのです。 このブログにおいて「知って得するRubyのトリビアな記法」というタイトルで、今まで3回記事を書きました。 “知って得する21のRubyのトリビアな記法” “第2弾!知って得する12のRubyのトリビアな記法” “第3弾!知って得する12のRubyのトリビアな記法” これらのトリビアには、ネット検索で見つけたもの、Twitt

    agx
    agx 2013/03/07
  • 実行せずに文法チェック - I CAN ’CAUSE I THINK I CAN!

    当然のことだけど、コンパイルを要する言語では当然それが文法チェックの役割を果たしてくれて、結果として文法上の間違いを含んだプログラムを実行するといったことは発生しえない。 これがスクリプト言語だと、文法に問題のある部分こそ実行できないものの(実行できるならそこには問題があるとはいえない)、問題に突き当たるまでは実行を進めてしまう。 これが厄介で、例えば: DBにファイルのパスを書き込む そのパスに実際にファイルを作成する といったような記述をした(設計の良し悪しは別のはなしとして)とき、2の実行時に失敗してファイルが書き込めなかったりすると、実際には存在しないファイルがフロントエンドからは存在するように見えてしまう。よくあるバグだ。 そういうわけで文法チェッカーみたいなのがないかなーと思っていたら、今日ふと見つけた。 $ ruby -cw script とすると、実行することなしに文法のチ

    実行せずに文法チェック - I CAN ’CAUSE I THINK I CAN!
    agx
    agx 2009/09/05
  • ヽ( ・∀・)ノくまくまー(2009-04-15)

    ● [エッグ][Merb][DB] CouchDBを用いた2009新人公演4月におけるあっすーの干され問題の検証 4/4〜5 に開催された「2009新人公演4月」は、セットリストの充実ぶりと、それに負けないメンバーの熱演によって成功を納めた。もちろん全ての観客が公演に満足したのであるが、各々の帰路において、皆が何か納得がいかない胸の支えをおぼえた事も確かであろう。その漠然とした違和感の正体は、ずばり 我らがあっすーの出番が少ない という点だ。この問題は以前から指摘されていたものの、絶対に認めたくないというヲタ心理や、真面目に調査しようとすると涙するために、多くのあっすーヲタは思考停止し、気付かぬフリをしてきた。しかしながら、今回は正直レベルで「1回ぐらいしか出てきてね?」という気がしてならず、いよいよ我慢の限界を越えたので正しく検証を行うこととする。 また、前述の精神的問題以外にも、この

    agx
    agx 2009/06/22
    css_parserの使い方
  • rubyで3D物理シミュレーション - urekatのスカンク日記3

    rubyからODEを使えるようになったのでとりあえずうp。 http://ssktkr.com/ode-ruby5.tgz こんなソースで3Dシミュレーションできます! require "ode" require "draw_stuff" require "pp" require "dl" $world = Ode::World.new $world.gravity = [0.0, 0.0, -0.2] # 重力設定 $space = Ode_lib.dHashSpaceCreate(nil); # 衝突用空間の創造 $contactgroup = Ode_lib.dJointGroupCreate(0); # ジョイントグループの生成 $ground = Ode_lib.dCreatePlane($space, 0,0, 1.0, 0.0); # 平面ジオメトリの生成 def rand_

    rubyで3D物理シミュレーション - urekatのスカンク日記3
    agx
    agx 2009/02/22
  • Rubyで作るProlog処理系

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Rubyで作るProlog処理系
  • バーコードを読み取るrubyモジュール - koyachiの日記

    バーコードが写った画像ファイルからバーコードを読み取るモジュールを書いた。実装はlibzebraのラッパになってるだけ。640x480以上あって水平に写ってればEAN値を取得できる。 http://github.com/koyachi/ruby-barcodescanner/tree/master flashのカメラで入力した画像をサーバに送って解析すれば棚.orgやブクログみたいなサービスの簡単入力フロントエンドとして使えるかと思ってとりあえず動いて見せられるものも作ってたけどeeepc+ubuntu+flash10の環境で640x480キャプチャできなかった。webcamからキャプチャするlinuxデスクトップアプリでは同じカメラ使って640x480で撮影できるしthinkpad+windows+flashは640x480キャプチャ成功してるのでflashに与えるパラメータが何か足

    バーコードを読み取るrubyモジュール - koyachiの日記
  • Amazon.co.jp: Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~: 原悠: 本

    Amazon.co.jp: Rubyで作る奇妙なプログラミング言語 ~Esoteric Language~: 原悠: 本
    agx
    agx 2008/12/09
  • プログラミング言語 Ruby リファレンスマニュアル

    注: Rubyは2.1.0からSemantic Versioningを採用しています。 Ruby 2.1.1, 2.1.2等はバグ修正やセキュリティfixのみを含むため、リファレンスとしては2.1に統一しています。

    agx
    agx 2008/11/29
    複数の Enumerable オブジェクトを並行して yield するためのクラス
  • NeverBlock

    What is it all about? NeverBlock is a Ruby library that allows developers to write non-blocking, concurrent code in a transparent manner. Meaning that you will keep coding in your traditional ways while you get the benefit of non-blocking IO operations. Traditionally, a Ruby application would block whenever it requests an IO operation. This can be solved by running code in multiple threads but t

    agx
    agx 2008/11/20
    Ruby の IO をノンブロッキングにすることで、負荷を軽くする
  • RubyのWWW::Mechanizeの例外処理

    こんな感じに書いて動かしているところです. agent = WWW::Mechanize.new {|a| a.log=Logger.new(‘access.log’)} while # どんどんデータを集める! begin page = agent.get(url) rescue Timeout::Error puts “ caught Timeout::Error !” retry # タイムアウトしちゃってもあきらめない! rescue WWW::Mechanize::ResponseCodeError => e case e.response_code when “404” puts “ caught Net::HTTPNotFound !” next # ページが見付からないときは次へ when “502” puts “ caught Net::HTTPBadGateway !”

    RubyのWWW::Mechanizeの例外処理
  • Time.nowのテスト? それMochaでできるよ - http://rubikitch.com/に移転しました

    [ruby][rails]テストの時にTime.nowで好きな時間を使えるようにするMock - よしだメモ Time.nowは偽装しないとテストは書けない。 だったらこんなまわりくどいことしないでMocha使おうよ。stubで簡単に偽装できるから。 Mochaの偽装のスコープはテストメソッドが終わるまで。テストメソッドが終わったら勝手に偽装の後片付けをしてくれる。 テストするならばモックとスタブは是非身に付けたいところ。 ちなみに1993/2/24はRubyの誕生日だ。 def current_date Time.now.strftime "%Y/%m/%d" end require 'test/unit' require 'rubygems' require 'mocha' class TestTimeNow < Test::Unit::TestCase def test_curren

    Time.nowのテスト? それMochaでできるよ - http://rubikitch.com/に移転しました
    agx
    agx 2008/06/04
  • 21 Ruby Tricks You Should Be Using In Your Own Code

    Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news. Writing for Ruby Inside, I get to see a lot of Ruby code. Most is good, but sometimes we forget some of Ruby's shortcuts and tricks and reinvent the wheel instead. In this post I present 21 different Ruby "tricks," from those that most experienced developers use every day to the more obscure. Whatever your level, a refresh

    agx
    agx 2008/06/01
  • Ruby 1.9 の末尾呼び出し最適化 - odz buffer

    ref:http://cappuccino.jp/keisuken/logbook/20080517.html#p03 以前にさらっと書いたけど VM::InstructionSequence で変更できる。 VM::InstructionSequence.compile_option = { :taillcall_optimization => true }とかそんなの。 まぁ、undocumented なのでどう変わるか分からないけど。

    Ruby 1.9 の末尾呼び出し最適化 - odz buffer
    agx
    agx 2008/05/22
    末尾呼び出し最適化の設定。
  • Ruby 1.9でのメソッドチェーンのタッピング

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Ruby 1.9でのメソッドチェーンのタッピング
    agx
    agx 2008/05/06
    tap について
  • Tanablog: 編集中の Ruby スクリプトをその場で実行する

    Vim で編集中の Ruby スクリプトを、即時実行できるように設定した。 VimRuby スクリプトの実行と結果のプレビュー表示 Tip #1244: preview interpreter's output 上記サイトを参考に、.vimrc に追記。 function! Ruby_eval_vsplit() range let src = tempname() let dst = "RubyOutput" " put current buffer's content in a temp file silent execute ": " . a:firstline . "," . a:lastline . "w " . src " open the preview window silent execute ":pedit! " . dst " change to preview

    agx
    agx 2008/05/01
  • Mini reviews of 19 Ruby template engines

    I've seen lots of template systems in Ruby, but haven't been really been happy with any of them. Over the last few months or so I've kept notes of the ones I looked at. This is the list I came up with, and some comments on each. But first a disclaimer: I have NOT spent a lot of time looking at these - there are far too many for me to have time to go into a lot of detail for each of them. Some I kn

  • Emacs で Ruby 開発環境 - どんならんな

    RubyRails の開発環境として Aptana Studio や NetBeans を試してみたんですが,やはりキーボードですべての操作を行うことができる Emacs を使うことにしました。僕が設定した内容をご紹介します。 設定 今回,僕が Emacs に設定したのは ruby-mode.el と,マイナーモードの ruby-electric.el(対応する括弧やendを自動補完してくれる), rails.el, ruby-block.el(end に対応する行をハイライトする),それから Ruby のデバッガを起動できる rubydb とソースコードのディレクトリやファイル,メソッドを表示してくれる ECB です。 まず,Ruby のソースをダウンロードして展開し,misc ディレクトリに入っているすべての *.el ファイルを load-path の通ったところに置きます。(

    Emacs で Ruby 開発環境 - どんならんな
  • NetBeans: Ruby開発者の新しい親友

    NetBeansは人気が高く、高機能なJava IDEとして知られています。2000年に、Sun Microsystemsによってオープンソース化されました。ユーザコミュニティは着々と成長し、現在では、IDEの分野ではメジャーなものの一つだと考えられます。2007年NetBeansは、Rubyを含むJava以外の言語をサポートする機能の追加に着手しました。 このシリーズでは、NetBeansがRuby開発者の人生を楽にする様々な方法、そして他のIDEでは利用できないいくつかの機能を目にすることができるでしょう。また、Ruby tooling プロジェクトの背景もお話し、細かいけど気の利いた機能の利用法、IDEの設定方法、そしてプロジェクトへの貢献を行うにはどうしたらよいか、と言った情報を提供します。 なぜSunはRuby投資するのか? Sun MicrosystemsがRubyのツールに

    NetBeans: Ruby開発者の新しい親友
    agx
    agx 2008/03/20
    ruby の統合開発環境としての NetBeans
  • each ってこんな使い方もできたんだ…知らなかった - gan2 の Ruby 勉強日記

    [ [1, 11, 111], [2, 22, 222], [3, 33, 333], ].each{|a, b, c| puts "#{a} #{b} #{c}"} これを実行すると 1 11 111 2 22 222 3 33 333こうなる。 基ですか? そうかもしれません…(´・ω・`) ちなみに今までの僕だったらこうしていたと思う。 [ [1, 11, 111], [2, 22, 222], [3, 33, 333], ].each{|a| puts "#{a[0]} #{a[1]} #{a[2]}"} んー。この配列だと a[0] とか使った方が読みやすいな。 だから実際には、zip した後とか意味のある名前をつけたいときに使うのがよさそう。 names = ["taro", "hanako", "monta"] ages = [19, 20, 18] genders = [

    each ってこんな使い方もできたんだ…知らなかった - gan2 の Ruby 勉強日記
    agx
    agx 2008/03/13
    多重代入のルール.
  • Rubyの構文でシェルを実現する「rush」 | エンタープライズ | マイコミジャーナル

    Webブラウザ上でRuby on Railsアプリケーションの開発を可能にするサービス「Heroku」の開発者Adam Wiggins氏のブログで、「rush」と呼ばれるRuby言語を用いたシェルが紹介されている。 rushは同氏が開発を行っているシェル。シェルとして現在もっとも一般的に利用されているのはbashであるが、同氏はbashにはさまざまな問題があるとしている。 たとえば、少し複雑なことを行おうとすると、シングルクォートやダブルクォート、バッククォートが入れ子になり、記述するのも理解するのも困難になってしまう。また、シェルでパイプを用いて複数のコマンドを組み合わせた場合、値の受け渡しはすべて空白と改行区切りを基としたテキストデータで行われるため、値として空白文字が含まれいる場合には問題が発生することもある。そのほか、シェルから呼び出されるcpやmv、grep、sedといったコマ

    agx
    agx 2008/02/23
    SSHでつながった先をオブジェクトとして管理できるところが便利そう。計算鯖を利用したりすることは良くあるし。