RubyConf 2010に参加しました。
Ruby界最大の国際カンファレンスです。
網羅的なレポートは書けないので、気になったトピックについてのみ漫然と記しておこうと思います。
Dave Thomas - Keynote
Dave Thomasの基調講演はRuby10年史、3つのチャレンジー自分とは違う誰かをインスパイアすること、自分達を多様化すること、レールを外れることーについてでした。
発表の中で気になったのは、オープンソースの世界の女性の少なさはコミュニティの文化に由来するところもある、という指摘。いわゆるハッカー文化/倫理の、自分たちは「メインストリーム」から外れた存在である、という自己定義の内に、女性をそのメインストリームとみなす価値観が含まれている、という指摘はもっともだと思いました。自分がコミュニティの価値観から外れる存在であった時の居心地の悪さは、恐らくこのブログを読んでいる人なら感じたことはあると思います。
そして、これは日本でも起こっている現象かと。
向こうで言うハッカー倫理にあたるものは、こちらでは「リア充」って言葉になると思います。
「リア充」って表現もハッカー倫理と同じように女性への特定の視点(もしくは視点自体の意図的な排除)を含んでいます。ハッカー倫理的なものと違って、こちらではプログラマー=「非リア」という自己定義は意図的なものではありません。でも、それを否定しない雰囲気はありますよね。そういうラベル付けを受け入れてしまっていることが、自分のコミュニティの多様性を損ねているという点は認識すべきです。
ずっと感じていた違和感をうまく形にしてくれたキーノートでした。
これを機にコミュニティの多様性について考えてくれる人が増えると良いのですが。
Showing posts with label ruby. Show all posts
Showing posts with label ruby. Show all posts
Enumerable.all?は空だと常にtrueを返す
ううむ…空集合の全てって一体何だ?
そして、安易なソリューション。
Enumerable - Rubyリファレンスマニュアル
irb(main):001:0> [].all?{false}
=> true
irb(main):002:0> [1].all?{false}
=> false
そして、安易なソリューション。
class Array
def not_empty_and_all?(&block)
return false if self.empty?
self.all? &block
end
end
Enumerable - Rubyリファレンスマニュアル
Labels:
ruby
ArrayのjQuery的な挙動をRubyで
あの勝手にmapしてくれる感じをRubyでも…。適当、かつ冗談です。
こういうことができます
module Jq
def method_missing(method_name, *args)
self.map{|a|a.send(method_name, *args)}.flatten
end
end
class Array
include Jq
end
こういうことができます
User.all.articles.comments.body
=> [コメント本文全部]
Labels:
javascript,
jQuery,
ruby
Fakerとfactory_girlで偽物大量生産
適当なデータを作るときのお供に。
factory_girlと組み合わせて便利でした。
これが
こうなります!
適当なデータが入ってくれますねー
他にもメールアドレス、名前などいろいろFakeしてくれます。
実際はこんな風に使いました。
悪くないす。
http://rubyforge.org/projects/faker
Faker: Quick “Fake Data” Generation in Ruby
factory_girlと組み合わせて便利でした。
これが
Factory.define :message do |f|
f.title Faker::Lorem.sentence
f.body Faker::Lorem.paragraph
end
こうなります!
>> y Factory.build :message
--- !ruby/object:Message
attributes:
created_at:
body: Quasi ab fuga reprehenderit quia. Nostrum laud...(以下略)
title: Alias dolor velit ut et vitae magnam aut non.
updated_at:
recipient_id:
sender_id:
適当なデータが入ってくれますねー
他にもメールアドレス、名前などいろいろFakeしてくれます。
実際はこんな風に使いました。
@a_to_b = Factory.create(:message, :sender_id => @Aさん.id, :recipient_id => @Bさん.id)
@c_to_d = Factory.create(:message, :sender_id => @Cさん.id, :recipient_id => @Dさん.id)
悪くないす。
http://rubyforge.org/projects/faker
Faker: Quick “Fake Data” Generation in Ruby
Labels:
factory_girl,
ruby,
testing
shouldaの結果を読みやすくするgemを作りました
shouldaでautotestしてると".FE"しか出ないのが嫌でした!なので、gemを作りました。
http://github.com/fujimura/speak_your_mind
実行結果が全部テストメソッド名で出るようにしました。例えば
を走らせると
と出てくれるようにしてあげました。
私はspecが全部字で出てくれないと心配になってしまうので、これで安心です。
元々自分用だったんですが、gemにしました。gemにすればどこでも使えるから。
中身はtest/unitの出力部分のラッパーです。コンソール用出力の部分でmediatorとか使われてて、コード追うのが大変でした。
http://github.com/fujimura/speak_your_mind
実行結果が全部テストメソッド名で出るようにしました。例えば
context "Test" do
should 'success' do
assert true
end
should 'fail' do
assert false
end
should 'error' do
raise
end
end
を走らせると
E Test should error.
F Test should fail.
. Test should success.
と出てくれるようにしてあげました。
私はspecが全部字で出てくれないと心配になってしまうので、これで安心です。
元々自分用だったんですが、gemにしました。gemにすればどこでも使えるから。
中身はtest/unitの出力部分のラッパーです。コンソール用出力の部分でmediatorとか使われてて、コード追うのが大変でした。
bash to rush
Rubyっぽいbash。まじですか。
確かに、BashのUI(interfaceなのは間違いないよね)はたまにヒドイ。Rubyにしたくなる気持ちはわかる。
しかし、、、これはやっぱりきもい。
ここで知りました。
Blink #1 - The first in a series of Link-Blogging posts
Rush
rush is a replacement for the unix shell (bash, zsh, etc) which uses pure Ruby syntax.
確かに、BashのUI(interfaceなのは間違いないよね)はたまにヒドイ。Rubyにしたくなる気持ちはわかる。
しかし、、、これはやっぱりきもい。
myproj.lsまさかのリモートアクセスもできます。
myproj['app/models/my_model.rb'].vi
ここで知りました。
Blink #1 - The first in a series of Link-Blogging posts
配列おまとめyield
def お徳用(商品) return if 商品.length == 0 if 商品.length >6 [商品[0..5]] + お徳用(商品[6..商品.length]) else [商品[0..5]] end end
これを読んでおいてよかった。と思った瞬間。
(とはいえ、まだ全部読んでない)
The Little Schemer, 4th Edition The MIT Press 1995-12-21 売り上げランキング : 3390 Amazonで詳しく見る by G-Tools |
できた!と思ったら、each_sliceなんてものがあるのか…
Subscribe to:
Posts (Atom)
Author
Archive
Labels
- actionmailer (2)
- ActionView (2)
- activerecord (5)
- Ajax (1)
- apache (2)
- authlogic (2)
- awk (2)
- bash (4)
- block (1)
- cache (1)
- capistrano (1)
- crontab (1)
- Debian (1)
- deployment (1)
- design (2)
- design pattern (1)
- exception_notifier (1)
- factory_girl (2)
- firefox (1)
- flash (1)
- git (2)
- haml (1)
- html (1)
- javascript (5)
- jQuery (3)
- life (2)
- linux (3)
- lisp (2)
- mail (1)
- migration (1)
- mysql (2)
- Passenger (2)
- prototype.js (1)
- Rails (26)
- Rails3 (1)
- rake (1)
- restful_authentication (2)
- Rspec (3)
- ruby (10)
- rubygems (1)
- screen (1)
- script/console (1)
- Security (1)
- shouda (1)
- shoulda (3)
- subversion (2)
- sudo (1)
- tdd (1)
- testing (4)
- thunderbird (1)
- UI (1)
- unix (1)
- vim (3)
- work (1)
- xargs (1)
- xss (1)
- zsh (1)