タグ

tipsとrubyに関するkei-sのブックマーク (21)

  • sinatra_slash_redirect.rb

  • 汝の隣人のブログを愛せよ | LOVELOG

  • ruby 1.9 を日常的に使うぼくが 1.9 の新機能を寸評する - まめめも

    なんか偉そうな見出しですが、ruby 1.9 を主に使うようになって 1 年ちょっと経ったので、1.9 の新機能に思うところや注意点などを書き残そうと思うのです。さらに 1 年後に見たとき、「あのころはあんなふうに考えてたなあ」などと感慨にひたる予定です。 あらかじめ断っておくと、ぼくの ruby 1.9 経験はすべて趣味範囲なので、エンタープライズとかシステム運用の問題とかは知りません。あとぼくは ruby のコミッタなので、色眼鏡もあると思います。あしからず。 YARV VM 実行になったという話。一般的には「速い」という文脈で語られます。1.8 と比べると確かに速いです。でも、1.9 ばかり使い出すとなんとも思わなくなるはずです。速さなんて相対的な価値ですから、当然ですけどね。好意的に考えれば、「なんとも思わない程度に、遅くて困ることが減った」のかもしれない。 コンパイルフェーズを挟

    ruby 1.9 を日常的に使うぼくが 1.9 の新機能を寸評する - まめめも
  • はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記

    はじめに 「新はてなブックマーク」になったということで、とっても便利になったのですが、ブックマーク一覧ページ*1が若干 JavaScript に時間が掛かっているみたいです。 というわけで 調査してみたいと思います。調査して、改善できそうなところは後で纏めて「はてなアイデア」にでも登録しようと思います。 この日記は調査しながら、過程を書いていくつもりです。 準備 まずは、人のサイトの JavaScript を書き換えて試してみるための環境を作ります。 作業用ディレクトリを作る とりあえず、ホームに HatenaJS というディレクトリを作ります。 $ mkdir HatenaJS $ cd HatenaJS CocProxy をダウンロードしてくる 以下から CocProxy というツールをダウンロードしてきます。 http://coderepos.org/share/wiki/CocPr

    はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記
  • Ruby4Skype

    これはとてもとても適当な説明です。SkypeのDocumentと共に見てください。 そして未完成なリファレンス。リファレンスではなくて、ただのリストです。 インストールと仕様 現在はWindowsしか対応できてません。Linuxは気が向いたら。Macはとりあえずハードが欲しい。 インストールはgemでいけます。コマンドラインにて gem install Ruby4Skype と打つだけ。あと、vrubyのswin.soに依存してますが、Gemsにあったのでは微妙にバージョンが古かったので自動的にインストールはしないようになってます。 OneClickInstallerでは最初から入ってますが、ない場合は自前で入れてください。 基 require 'skypeapi' SkypeAPI.init SkypeAPI.attachWait loop do Skype

  • Ruby で PaSoRi 使ってみる

    Ruby にはダイナミックリンカへのインターフェースが用意されているのでこれを利用してみます。 DL::Importable を利用しヘッダファイルを参考にしながらライブラリ関数に対してラッパーメソッドを定義していきます。 pasori.rb require 'dl/import' module Pasori extend DL::Importable dlload '/usr/local/lib/libpasori.dylib' typealias 'uint8', 'unsigned char' typealias 'uint16', 'unsigned int' #typealias 'uint16', 'unsigned short int' # libpasori.h extern 'pasori* pasori_open(char*)' extern 'void pasori_

  • Ruby で Suica を覗いてみる

    以下を参考に Suica のデータを具体的に解析してみましょう。 最初の1バイトが 0x1B だとクレジット入金、0x07 or 0x08だと入金、0x46だとサンクスチャージの入金で、0x16が自動改札乗降、0xC7が購買のようです。5バイト目から2バイトが日付で、先頭から7ビットが年、4ビットが月、残り5ビットが日のようです。(ここが面倒でしたね。パズルみたい)7バイト目からの2バイトが入った駅、続く2バイトが出た駅がコードで入っています。駅のコードは、路線コード/駅コードの組合わせで、有志によるデータベースが公開されています。IC SFCard Fan DB Srevice このソフトではコードからの変換はしていません。12バイト目から2バイトが残金(リトルエンディアン)です。 160100020e98e376e37d2e2200008000 を例として詳しく見ていくと以下のようにな

  • ヽ( ・∀・)ノくまくまー(2005-06-29)

    ● pagination (簡単なページ管理) Webコンテンツで一覧表示時に「前のページ」「次のページ」といったリンクを作るのは結構面倒であるが、Rails には pagination というページ管理機能がある。ロジック(コントローラ)側では、テーブルのモデルを表すシンボル(必須)と表示条件等を引数に取りpaginate を呼び出すだけ。 # controller def list @pages, @items = paginate(:item, :per_page => 20, :order_by => 'itemcode') end 戻り値はページ管理オブジェクトと検索結果のモデルのインスタンスの配列。後者はAR::find_allと同じものであり、前者のページ管理オブジェクトがページに関する各種情報を持っているので、ビュー側ではそれを以下のように利用する。 # view <%=

  • has_many :through - Self-referential has_many :through associations

    Update: This article is now superceded by a new version that is updated for Rails 2.0 changes. Here we go. Rick Olson helped me figure out how to do bi-directional, self-referential associations using has_many :through. It's not obvious (until you know the trick), so here's how it's done. This example is for modeling digraphs. create_table "nodes" do |t| t.column "name", :string t.column "capacity

  • MailParser

    MailParser メールメッセージを解析する。 作者 とみたまさひろ <tommy@tmtm.org> ライセンス Ruby ライセンス http://www.ruby-lang.org/ja/LICENSE.txt と同等。 機能 メールファイルをパースした結果を返す。 メール構造による例外は発生しない(例外を発生させることも可能)。 不正な構造のメッセージがあった場合は適当に処理する。 0.4 でイチから作りなおしたので、0.3 とは互換がない。 require "mailparser/obsolete" すれば 0.3 と同じ機能が使用可能。 ダウンロード http://github.com/tmtm/mailparser インストール インストールには racc が必要。 $ make $ make test # make install 使用例 require "mailpa

  • 「設定より規約」でWebサーバ設定の自動化 - masuidrive.jp

    Posted by masuidrive Thu, 20 Jul 2006 10:33:00 GMT Ruby on Railsが簡単にアプリケーションを構築できる一つの特徴に「convention over configuration」=「設定より規約」があります。 Railsはアプリを作るのは簡単ですが、それを公開するのがちょっと面倒です。そこで、Railsに限らずWebサーバも「設定より規約」に則って、設定なしでサイトやアプリケーションを公開できるようにしてみましょう。 設定項目を洗い出す まず、Webサーバでアプリケーションを公開する場合に必要な設定項目を洗い出します。バーチャルドメインを使う場合は、 ドメイン名 DocumentRoot ログファイル名 CGIを使うならScriptAlias の4つが基になると思います。規約を決める これらの設定を自動化するための規約を決めます

  • masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門

    [追記] if構文の変数スコープの説明に間違えがあります。新しいスコープは作られません。 お盆のまっただ中8/11(土)に、社内勉強会を開いて、PHPユーザ向けにRuby/Rails入門をやりました。 じつはお盆の土曜日に4時間も勉強会って事で、そんなに人も集まらないだろうと思っていたのですが、ふたを開けてみたら28名も参加があり、びっくりしました。それだけ興味を持ってもらったのは嬉しいけど、これだけ集まるなら資料はちゃんと作らないと・・・・。ということで、作った資料を公開します。なんとRuby編100ページオーバー、Rails編200ページオーバーと、かなり大作です。 RubyKaigiで、発表者のスライドの横でIRCが表示されていたのが面白かったので、勉強会の参加者には、Lingrのチャットルームに全員入ってもらって、質問やパートごとの「終わった!」という書き込みをしてもらいました。今

    masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門
  • Kazuhiro's Weblog: Rubyで「Flickr API」を利用する

    金曜の夜に出発して、日曜の夜まで、スキーにいってきました。 今年の初すべりです。 安宿でしたので、ネット環境などなく更新はお休みでした。 もし、宿にネット環境があったとしても、たぶん更新できなかったと思います(^^; 今回のスキー旅行は、非常にハードでした。基礎体力なさすぎです(><)。 さて、まだまだ疲れの残る体に鞭をうって、更新開始です。 今日は、rubyから「Flickr API」を利用して画像を検索する方法(コード)を紹介します。 「Flickr API」には、REST形式で利用する方法とxml-rpcで利用する方法の2通りの利用方法が提供されています。 今回は、RESTを利用する方法をつかって画像検索に挑戦です。 「Flickr API」を利用するためには、Flickrのアカウントが必要です。お持ちでない方は、こちらからアカウントを取得してください。 アカウントを取得したら、「S

  • String#scrape - ヽ( ・∀・)ノくまくまー(2007-01-15)

    ● String#scrape どうせお前らはあれだろ、scrAPI は強力だし、これこそ自分がまさに待望してた道具、使いこなすぜ!と意気込んでるんだけど、どれだけ決意してもあの複雑な引数に毎回挫折しちゃって、挫折つーかちょっと使いたいだけなのにパーザ(Scrape)用のクラスを定義するのが面倒なんだよね、みたいな言い訳を毎回自分にしつつ、結局使いこなせてない脳内ゆとり世代のお前らなんだけど、まぁ実際引数に無駄に色んな機能を詰め込み過ぎてる感は否めないし、というかextractorのsrcとdstはどう見ても直感的に逆だろ、grepみたいに使わせろよ使えない1だな、みたいな愚痴をこぼしてたら、むしろCSS3なgrepとして使えるだけでいい事に気付いて、You、Stringクラスに入れちゃいなYO! String#scrape の定義 require 'scrapi' class Strin

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life

    http://blog.labnotes.org/category/scrapi/ rubyスクレイピングして web の情報を取得するのには、今まで正規表現か xpath でやってたので、わりと面倒でした。で、ふと scrAPI というスクレイピングツールキットを知ったのですが、これがかなり便利そう。 このツールキットを使うと、CSS3 なセレクタを記述することで、要素を取得することができます。たとえばとあるサイトのリンクを全部取得したければ、 require 'rubygems' require 'scrapi' require 'open-uri' require 'nkf' require 'pp' $KCODE = 'u' links = Scraper.define do process "a[href]", "urls[]"=>"@href" result :urls e

    ruby のスクレイピングツールキット scrAPI - 川o・-・)<2nd life
  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • 逆引きRuby - 逆引きRuby

    逆引きRubyRubyを使ってやりたい事から、その方法を調べられる逆引きのリファレンスです。 逆引きRubyはもともとWikiで運用していました。このため、サイトのコンテンツは私以外の多くの方によって作成・編集されたものです。 2017年に静的HTML(jekyll)の管理へ移行しましたが、2018年10月からScrapboxへ移行しました。どなたでも編集いただけますので、ご協力いただける方はよろしくお願いします。 逆引きRuby (https://scrapbox.io/rubytips/逆引きRuby)

  • Rubyリファレンスマニュアル - Rubyリファレンスマニュアル

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

  • Associations | 優しいRailsの育て方 | ヽ( ・∀・)ノくまくまー

    class Member < ActiveRecord::Base has_one :favorite end class Favorite < ActiveRecord::Base belongs_to :member end has_one で関連を定義すると、以下のメソッドが自動的に定義されます。(belongs_to 側にも同様のメソッドが定義されます)。 (関連名)(force_reload = false) : 関連するオブジェクトを取得します。 (関連名)= : 関連するオブジェクトを代入します。(自動的にDBへ保存されます) (関連名).nil? : 関連するオブジェクトが存在しないことを確認します。(なければ true を返す) build_(関連名)(attributes = {}) : 関連するオブジェクトを作成して返します。(DBへの保存はされません) create