Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2007-08-31)
[go: Go Back, main page]

«前の日記(2007-08-30) 最新 次の日記(2007-09-01)» 編集

Matzにっき

<< 2007/08/ 1 1. 連載:C# 2.0入門 第3回 新しい繰り返しのスタイル − yield return文とForEachメソッド − @IT
2. Shoes, a Tiny Toolkit for Making Browser-like Things
2 1. Download Hadoop at OSCON (Yahoo! Developer Network blog)
2. ウェブキャリアでWebエンジニアとしてのキャリアを磨こう 株式会社ウェブキャリア
3. 先達の業界に学ぶプロジェクトマネジメント 第1回 20年は遅れているITプロマネ:ITpro
4. 横浜
3 1. 特別講演:「オープンソース・ソフトウェア開発思想とリアルな地域ネットワークの連
2. トークセッション-5:「世界に広がるオブジェクト指向スクリプト言語 Rubyの可能性」
3. 夕食: 中華街
4. Rubyの浮動小数点数リテラルの扱いは正しいのか
5. 今こそ問われるプログラミング雑誌の価値:ITpro
4 1. LL魂 〜 LL Spirit
2. The Ruby VM: Episode V
5 1. 第一日曜日
6 1. uehajの日記 - Groovyの奇妙な演算子(その1)
2. Tenjin
3. HAL - CNRS
4. Dr. Dobb's | Lock-free Interprocess Communication
5. Parallel Python
6. Googleは人材を飲み込むブラックホールか − @IT
7 1. Lazy Collectionへの第一歩
2. 蛙男商会からの報告・連絡・相談 祝・開星高校甲子園出場!
3. CSS、YAML、XML、JSONのいいとこ取り? 新データフォーマット「RSD」提案 | マイコミジャーナル
4. LL魂レポート
5. 仙石浩明CTO の日記: 面接FAQ: Tech総研「転職体験談」の取材を受けました
6. InfoQ: Gemstone OODB to support JRuby, Rubinius
7. Static Typers vs Dynamic Typers
8. asahi.com:ゲゲゲの「ぬりかべ」、こんな姿? 江戸期の絵巻に登場 - 文化・芸能
8 1. 上京・取材
2. 楽天ミーティング
3. ユメのチカラ: LL魂
4. livedoorの開発体制 - livedoor ディレクター Blog
9 1. MySQLカンファレンス
2. symfonyで開発日記 : symfonyのソースコードの値段
3. [動画]オープンな開発プロセスとオープンな開発言語 − @IT情報マネジメント
4. davidflanagan.com: Changes between Ruby 1.8 and Ruby 1.9
5. 開発合宿のススメ Web Service:@nifty
10 1. The Origin of XEmacs
2. コミュニティ活動以上に面白い会社にしたい − @IT自分戦略研究所
3. Tor Norbye's Weblog: Ruby Screenshot of the Week #15: More Hints and Quick Fixes!
4. Opening Python Classes | Ian Bicking: a blog
5. PHP and ActiveRecord
6. Martin Fowler's Bliki in Japanese - ひとつの言語
7. 【コラム】気ままにスイートフォト (4) ピンホールカメラを作ってみる | 家電 | マイコミジャーナル
11 1. 帰省・山口へ
12 1. 山口
2. ユダの福音書を追え
13 1. 買い物・従姉妹
14 1. 帰宅
2. masuidrive on rails >> Blog Archive >> PHPユーザの為のRuby/Rails入門
15 1. Rubyist Magazine - Rubyist Magazine 0020 号
2. Object Arts | Future development of Dolphin discontinued.
3. syx - Google Code
4. SScript: enhancing JavaScript's expressive power << Noumena
5. Nu?
6. NYC LOCAL: Tuesday 14 August 2007 Lisp NYC: Perry Metzger on Otter, the new salty slick whiskered snow-bellying programming system - comp.lang.lisp
7. Making Rails Better - Fixing Architecture Flaws in Active Record
8. Erlang Message Passing - Ruby point of view
16 1. Rubyの技術者認定試験が10月開始,2008年には世界に向け英語版も:ITpro
2. ITmedia エンタープライズ:矛盾を抱えつつ進化する“Java”−−黒船となったRuby on Rails
3. Headius: NetBeans Ruby Support is the BOMB
4. Nine Javascript Gotchas
17 1. Hash functions.
2. Being John…uhm…Bader >> Blog Archive >> Ruby faster than Python and Perl!
3. Software Progress
18 1. IPA未踏ソフトウェア創造事業2006年度下期千葉PM採択プロジェクト最終成果報告会
2. The rantings of Clinton Forbes: The D Programming Language versus a Datsun 240Z
3. The Multicore Kerfuffle and a Dose of Reality at Mark Nelson
19 1. ビショップ不在
20 1. アンカテ(Uncategorizable Blog) - 日本が世界に誇るまつもとゆきひろ氏の大きな穴
2. Karsten Wagner's Blog: Better exception handling
3. A lack of productivity is killing Smalltalk.
4. The Most Excellent and Lamentable Tragedy of Richard Stallman − Edward O’Connor
21 1. 車故障
2. Introduction to Perl6
3. 5 Things a Ruby developer needs to know about Scala - CircleShare Blog
4. InfoQ: Erlang's Mnesia - a distributed DBMS for highly scalable apps
5. Tilera、デュアルコアXeonより10倍高速な64コアCPU「TILE64」
22 1. Sony講演会
2. Microsoft vs. Google - the open source shame | Reg Developer
3. New Python Bugtracker
4. Interoperability with Java is not a good thing.
23 1. U-20 プロコン
2. Ruby Business Commons設立総会レポート
24 1. 山陰中央新報 - 「ルビー」活用の産業振興検討
2. 一方、鳥取・米子では
25 1. bbum’s weblog-o-mat >> Blog Archive >> Python: di
2. Performance benchmarks << evan.musing
3. InfoQ: Ruby 1.9 adds Fibers for lightweight concurrency
4. The Better String Library
5. Can open source be giving comfort to the enemy? - DIY Drones
26 1. 聖霊の賜物
27 1. ねたミシュラン 千葉県マジで?!
2. Useless Factor: The R5.97RS Unicode library is broken
3. Pupeno’s web site >> Blog Archive >> The problem with Lisp
4. Slashdot | Court Ruling Clouds Open Source Licensing
28 2. カンファレンスコール
3. NHK取材
4. sumim’s smalltalking-tos - なぜかくも人は Smalltalk を殺したがるのか?
5. 初歩の「Perl」「Python」「Ruby」 − @IT情報マネジメント
29 1. 東京出張
2. 「まわりが“天才だらけ”の中で、どう生き延びる?」 (“アンチ天才”のボトムズ流仕事術):NBonline(日経ビジネス オンライン)
3. google-sparsehash - Google Code
4. [r6rs-discuss] Unicode issues
5. 楽天ミーティングで学んだこと
6. ソフトウェア開発者は製造業のことを知った方がよい
30 1. M17Nミーティング
2. Rebel Science News: The Seven Deadly Sins of Erlang
3. lucille development blog >> Blog Archive >> Xorshift RNGs
31 1. 有機化学美術館・分館:ナノチューブを溶かす意外なもの - livedoor Blog(ブログ)
2. 思っているよりもずっとずっと人生は短い。- Rubyバブル
3. Superators Add New Operators to Ruby
4. err.the_blog.find_by_title('Full of Ambition')
5. ITmedia エンタープライズ:EMEA地域でRuby on RailsとC#の利用が拡大
>>
Dr.Web 予測するアンチウイルス 持ち込み PC 対策でお悩みの方にオススメです。
ウイルス・スパイウェア検査・駆除 用ツール Dr.WEB CureIt! を無償配布中!

2007-08-31 [長年日記]

NEW!_ 有機化学美術館・分館:ナノチューブを溶かす意外なもの - livedoor Blog(ブログ)

ナノチューブと言うのは丈夫な素材で、強いうえに溶剤にも溶けない。 が、意外なものに溶ける、という話。

あらゆる溶媒を受け付けないナノチューブを溶かしてしまう「魔法の液体」は、実はコンビニで150円も出せば容易に入手できます。その液体の名はなんとサントリーの緑茶「伊右衛門 濃いめ」です。

どうやら学生が溶けないことを実証するため、いろいろやっているうちに 意外にも溶けたということのようだ。 世の中、分からないことの方が多いということを実感させる。

NEW!_ [Ruby] 思っているよりもずっとずっと人生は短い。- Rubyバブル

Seasarのひがさんのエントリから派生した会長のお言葉。

まあ、多少は仕方ないんじゃないでしょうか。そもそも「たのしさ」なんて訳の分からない物差しを持ち出して喜んでいながら冷静な評価を期待するのは虫がよすぎるでしょうし。

幸せになるユーザが増えるのを歓迎し、不幸になるユーザが増えるのを防ぎつつ、ハードランディングに備えて。

ていうか、Ruby自体はバブルにはならなさそうな。良くも悪くも。

そうかなあ。Railsほど前面に立ってないけれども、 バブルは確実にあると思う。バブルの大きさは小さいのかもしれないけど。

でなきゃ、私のところにこんなに講演の依頼が来たり、 NaClに分不相応な仕事が舞い込んだりしないと思うし。

で、現状が中身のない(あるいは薄い)風船であることを自覚した上で 中身を詰める努力を継続していった方がよいと考えている。 それを思ってのRubyアソシエーションだったり、 NaClといろんな会社との提携だったりするわけだし。

たぶん、バブルが崩壊しても、私にはあまりダメージはなさそうなんだけど。 もともと「お金」とは距離を置いてるし。

でも、最近上向いてきた収入が下がることは避けられないかなぁ。

NEW!_ [Ruby] Superators Add New Operators to Ruby

「<---」とか「++-」とか、元々Rubyには存在しない演算子を作り出すライブラリ。

「パーザーを書き換えるのか、しかし、Yaccのパーザーは簡単じゃないよな」と思ったのだが、 実際には演算子の組み合わせで実現するようだ。

つまり、

foo ++- bar

は、もともと

foo.+(bar.-@().+@())

と解釈されるので、この組み合わせで指定したメソッドが起動するように それぞれの演算子を再定義してやるということ。

なるほど。思いつきもしなかった。脱帽。

NEW!_ [Ruby] err.the_blog.find_by_title('Full of Ambition')

ブロックからSQLを生成するライブラリAmbitionについて。

User.detect { |u| u.name == 'Jericho' && u.age == 22 }

のようなコードからSQLを生成できる。

Mockオブジェクトを使って、式からSQLを生成するようなライブラリは Squirrelのような ものが以前からあったが、どうしても以下のような制限があった。

  • 「&&」や「!」のような再定義できない演算子が使えない
  • Mockオブジェクトを含む式の評価順序に気を使わなければならない
  • 結果として「Ruby文法を使ってSQLっぽい表現をするDSL」になってしまう

一方、AmbitionはRubyを使って条件指定すると、それがそのままSQLになる というもの。たとえば、

User.first
"SELECT * FROM users LIMIT 1" 

User.select { |m| m.name != 'macgyver' }
"SELECT * FROM users WHERE users.`name` <> 'macgyver'" 

User.select { |u| u.email =~ /chris/ }.first
"SELECT * FROM users WHERE (users.`email` REGEXP 'chris') LIMIT 1" 

User.select { |u| u.karma > 20 }.sort_by(&:karma).first(5)
"SELECT * FROM users WHERE (users.`karma` > 20) 
 ORDER BY users.karma LIMIT 5" 

User.select { |u| u.email =~ 'ch%' }.size
"SELECT count(*) AS count_all FROM users 
 WHERE (users.`email` LIKE 'ch%')" 

User.sort_by { |u| [ u.email, -u.created_at ] }
"SELECT * FROM users ORDER BY users.email, users.created_at DESC" 

User.detect { |u| u.email =~ 'chris%' && u.profile.blog == 'Err' }
"SELECT users.`id` AS t0_r0 ... FROM users 
 LEFT OUTER JOIN profiles ON profiles.user_id = users.id 
 WHERE ((users.`email` LIKE 'chris%' AND profiles.blog = 'Err')) 
 LIMIT 1" 

これはすごいぞ。で、これをどうやって実現しているかというと ParseTreeを使って 構文木を解析して、そこからSQLクエリを生成しているのだった。

頭いい。

でも、YARVで構文木って手に入るんだっけか。

NEW!_ [Ruby] ITmedia エンタープライズ:EMEA地域でRuby on RailsとC#の利用が拡大

EMMAって初めて聞いたけど「Europe」、「Middle East」、「Africa」の略らしい。 なんか広すぎて(世界の半分はカバーしてる)共通項がありそうな気がしないんだけど。

ま、いずれにせよ、Ruby on RailsとC#(ってフレームワークと言語を並べるのは不適切なような)が 人気が出ているという調査結果には、素直に喜んでおこう。

本日のツッコミ(全3件) [ツッコミを入れる]
_ ささだ (2007-09-12 22:17)

Ripper があれば,結構簡単にできそうな気がしますが.

_ まつもと (2007-09-12 22:39)

文字列から、ならね。
Ambitionはブロックから構文木を取り出してますから。

_ xax (2007-09-13 15:02)

EMMAはヨーロッパとその旧植民地、てことじゃないですか。
結局今でもつながりはありますよね。
インドとか、もっと東にもあるんですけど、つながりは弱くなってるかも。独自にがんばってると。
てかアメリカの勢力があまり及んでない地域か(ホント?)

お名前:
E-mail:
コメント:
本日のリンク元
検索

«前の日記(2007-08-30) 最新 次の日記(2007-09-01)» 編集

RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.