basyura's blog

あしたになったらほんきだす。

ruby

RubyKaigi 問題

玄人と素人(入り口層から中堅層に至らないまで)の温度差なんじゃないか。 発言の影響度は 玄人 >>>>>>>>>>>>>>>>>>>> 素人なんだけど、人数的には 玄人 <<< 素人なわけで。素人向け(面白い)セッションがフォーカスされるのは仕方ない。ruby 誕生から 17年(ぐ…

僕の rubykaigi2010

コミッター 圧巻だったなぁ。これを見てるだけで wktk した。 vim @sandinist と参戦。隣の部屋(emacs)と宗教戦争が始まるんじゃないかってぐらい人が殺到。@kana1 さん焦ってた。 椅子を隣から運んできてもらったりしてようやく着席(このとき、参加者がもっ…

rubytterなう

ruby + twitter の組み合わせで小物作りは継続している。今回は oauth を使った認証と、 oauth に対応したライブラリ 「rubytter」を使ってみる。 rubytter と oauth を使う てすてす。 # -*- coding: utf-8 -*- require 'rubytter' consumer = OAuth::Consu…

twitter4r で list のタイムラインを取得する

twitter4r にはまだ list を扱う API が無いようなので、本体に手を入れないで機能追加してみた。 require 'twitter' module Twitter class List include ModelMixin @@ATTRIBUTES = [:lists] attr_accessor *@@ATTRIBUTES class << self def attributes; @@…

bowline-twitter に勝手に機能追加

bowline による twitter クライアントの改造版(http://github.com/basyura/bowline-twitter) Ruby, HTML and JS desktop application framework. bowline css dock menu (jquery's plugin) で Dock っぽい動き If you are a big Mac fan, you will love this…

表示している Tweet を入れ替える

model で destroy_all すればメモリ上から消えるけど画面からは消えないのか。binder で入れ替えないとだめぽ。 def poll klass.poll self.items = klass.all end item は html の class="item" とマッチングしている(んだと思う)ので、そこに展開されている…

bowline-twitter をやっと動かせた

謎のエラー・・・ $ ruby script/run dlopen(/repos/bowline-twitter-org/vendor/gems/ruby/1.9.1/gems/yajl-ruby-0.7.7/ext/yajl_ext.bundle, 9): no suitable image found. Did find: /repos/bowline-twitter-org/vendor/gems/ruby/1.9.1/gems/yajl-ruby-0…

support for older version of activesupport

github では ActiveSupport::Dependencies.autoload_paths の差分が吸収されたようだ。 @@, -110,8 +110,14 @@ module Bowline 110 110 # Set the paths from which Bowline will automatically load source files, and 111 111 # the load_once paths. 112 …

callback

callback param で callback を通知することができる。 呼び出し側(index.html) var tweets = $('#tweets'); tweets.bowlineChain('TweetsBinder'); $('#tweet').click(function() { Bowline.invoke("TweetsBinder", "sing" , "aaaa" , function(res){alert(…

ようやく動いた

環境がおかしいのか起動でこけちゃう gem と ruby のバージョンをいろいろ試してもドツボにはまる一方 サンプル見て説明見てその通り書いても動かない で半ば放置してたんだけど。GoRuCo 2010 - Alex MacCaw - Bowline: Ruby Desktop Applications from Goth…

鳥取Ruby会【とっとるびー】 第1回GC本読書会

鳥取Ruby会【とっとるびー】 第1回GC本読書会 Hosted By: @suzumura_ss 〜鳥取にRubyistは何人いるんだろう その2〜 「ガベージコレクションのアルゴリズムと実装」 http://www.amazon.co.jp/gp/product/4798025623 の読書会です。 http://tweetvite.com…

ルーティングのお勉強

class UsersController < ApplicationController def show @user = User.find_by_user_id(params[:user_id]) end end Money::Application.routes.draw do |map| match 'user/:user_id' , :to => 'users#show' #=> http://localhost:3000/user/basyura match …

間違えやすい

Test#call_echo から Test.echo が呼べそうな気がするんだけど、呼ばれないんだな。 class Test def echo puts "echo" end def self.echo puts "self echo" end def call_echo echo self.echo end def self.call_echo echo self.echo end end Test.new.echo …

Rake::TestTask

ユニットテストを実行するためのタスクを作成するクラスです。 Rake::TestTask require "rake/testtask" Rake::TestTask.new do |t| t.libs << "test" t.test_files = FileList['test/test*.rb'] t.verbose = true end 特異メソッド new(name = :test) {|t| …

StringScanner

StringScanner は文字列スキャナクラスです。簡単に高速なスキャナを記述できます。 StringScanner ちょっと試してみた。 require 'strscan' s = StringScanner.new("<a>aaaa</a>bbbb<c>cccccc</c>aaa") スキャン s.scan_until(/<.*?>/) <a>aaaa</a>bbbb<c>cccccc</c>aaa s.matched <a>aaaa</a>b…

日付でバックアップしているファイルを消していく

today = (Time.now - 24 * 60 * 60 * 30).strftime("%Y%m%d") Dir.glob("file.*.tar.bz2"){|f| next unless f =~ /file\.(.*?)\.tar\.bz2/ if $1 < today puts "delete #{f} ..." `rm #{f}` end }

鳥取Ruby会【とっとるびー】 第0回Ruby勉強会

http://tweetvite.com/event/tottoruby_0参加してきました。定員 20 に対して 13 人 ・・・ちょっと少ない感じだったかな。最初は半分が学生だと思ってたけど、みんな働いてる方達だったのでちょっと驚く。んで、話を聞いていると、どうやら繋がりが全く無か…

rsense + neocomplcache

neocomplcacheと併用すると問題が発生します。私がneocomplcacheと相性が良くなるように書き換えたので、etc/rsense.vim を置き換えてください。 http://github.com/Shougo/rsense RSense をneocomplcacheで使用するには? てことで、ありがたく使わせて頂く…

リファレンス検索でメソッド補完もしてみた

http://keysnail.g.hatena.ne.jp/basyura/20100328/1269781662

Ruby API 検索

http://keysnail.g.hatena.ne.jp/basyura/20100325/1269523635存在するクラスの場合は直接リファレンスページを開き、無い場合はグーグルでサイト検索する。もっとスマートに書くにはどうしたらいいか。

vim から growl

twitvim.vim でリプライがあった場合に growl で通知できたらいいなぁという思いつきで試してみた。vim の ruby サポートを利用して、 vim → ruby → ruby-growl(gem) → growlで呼び出す。 function s:growl() ruby <

ダサいと言われようが Java の方が向いてるのかな

Rails3 β がリリースされたので久々に rails コードを書き始めてみると「あれ、この api を呼び出した結果はどういうインタフェースを持ってるんだっけ?」の連続で RDoc を見てみたり Web で検索してみたり、ソースを読んでみたりの繰り返し。趣味だから楽…

route.rb

今までの通りルーティングしたい場合は route.rb のコメントを外しとけばいいのかな。 # This is a legacy wild controller route that's not recommended for RESTful applications. # Note: This route will make all actions in every controller accessi…

rvm で切り替え

1.9.2 を使いたいとき rvm use 1.9.2システム(元)に戻したいとき rvm use systemとすればいいのか。 ついでに、 /Library/Ruby/Gems/1.8とか /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8に入ってた gem を一掃(rm)して(…

rvm

勘違いして地味にはまったけど cygwin と mac に rvm を入れた。便利になったもんだ。そろそろ 1.9 系を触り始めたい。.rvm/scripts/hook の一行目が //usr/bin/envってなってるのが気になる・・・。cygwin だとエラー出ちゃう。

Array の初期化

Array.new(3){""} でできた。それは良いとして Array.new(3,"") の使い道が分かりません (> <)

10 分でコーディング

今日の問題はかなり簡単です。 できるだけ早い時間でエレガントなコードを書きましょう。 あまりに簡単なので制限時間を10分としてやってみてください。 これ以上かかった人は 自分はかなりプログラミングができない。 プログラミングに自信があるやつこい…

lambda

ブロックをコンテキスト(ローカル変数のスコープやスタックフレーム)とともにオブジェクトにする def c_lambda c = 10 lambda {|a,b| return a * b * c} end puts c_lambda.call(3,4) #=> 120 中身が変えられると困る様なものはあらかじめ dup(または freeze…

インスタンスの生成無しに呼べるのはなぜ?

過去の日記を検索してみたら Ruby 初めて 4 年になることが分かったけど、Ruby に関しては分からない事だらけ。 class Object def hello puts "hello from Object" end end class Class def hello2 puts "hello from Class" end end class A end Object.hell…

Sequel Development を何となく訳してみる

Development Sequel is being actively developed! You can join in on the discussions, ask questions, suggest features, and discuss Sequel in general by joining our Google Group - Sequel Talk or our IRC channel. Sequel: The Database Toolkit f…