pismo 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +32 -0
- data/README.rdoc +68 -0
- data/Rakefile +95 -0
- data/VERSION +1 -0
- data/bin/pismo +36 -0
- data/lib/pismo/document.rb +50 -0
- data/lib/pismo/external_attributes.rb +14 -0
- data/lib/pismo/internal_attributes.rb +202 -0
- data/lib/pismo/readability.rb +316 -0
- data/lib/pismo/stopwords.txt +893 -0
- data/lib/pismo.rb +44 -0
- data/pismo.gemspec +92 -0
- data/test/corpus/bbcnews.html +2131 -0
- data/test/corpus/briancray.html +269 -0
- data/test/corpus/cant_read.html +426 -0
- data/test/corpus/factor.html +1362 -0
- data/test/corpus/huffington.html +2932 -0
- data/test/corpus/metadata_expected.yaml +81 -0
- data/test/corpus/rubyinside.html +318 -0
- data/test/corpus/rww.html +1351 -0
- data/test/corpus/spolsky.html +298 -0
- data/test/corpus/techcrunch.html +1285 -0
- data/test/corpus/youtube.html +2348 -0
- data/test/helper.rb +15 -0
- data/test/test_corpus.rb +33 -0
- data/test/test_pismo_document.rb +34 -0
- data/test/test_readability.rb +152 -0
- metadata +146 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
---
|
2
|
+
:rubyinside:
|
3
|
+
:title: "CoffeeScript: A New Language With A Pure Ruby Compiler"
|
4
|
+
:author: Peter Cooper
|
5
|
+
:lede: CoffeeScript (GitHub repo) is a new programming language with a pure Ruby compiler. Creator Jeremy Ashkenas calls it "JavaScript's less ostentatious kid brother" - mostly because it compiles into JavaScript and shares most of the same constructs, but with a different, tighter syntax.
|
6
|
+
:body: "CoffeeScript (GitHub repo) is a new programming language with a pure Ruby compiler. Creator Jeremy Ashkenas calls it \"JavaScript's less ostentatious kid brother\" - mostly because it compiles into JavaScript and shares most of the same constructs, but with a different, tighter syntax.\nTo get a feel for the language, check out this example code (CoffeeScript on the left, resulting JavaScript on the right):\nAs a Ruby project, you can get the CoffeeScript compiler installed with a simple gem install coffee-script or check out the code from/on GitHub. The code is worth a look as it's notably quite vanilla with hand crafted Ruby covering the lexer and code generation and Racc built code for the parser.\n"
|
7
|
+
:feed: http://www.rubyinside.com/feed/
|
8
|
+
:rww:
|
9
|
+
:title: "Cartoon: Apple Tablet: Now With Barometer and Bird Call Generator"
|
10
|
+
:feed: http://www.readwriteweb.com/rss.xml
|
11
|
+
:briancray:
|
12
|
+
:title: 5 great examples of popular blog posts that you should know
|
13
|
+
:feed: http://feeds.feedburner.com/briancray/blog
|
14
|
+
:lede: "This is a mock post. While there is a place for all of these posts, I'm trying to make a point that original blogs are being shut out by formulaic blogs."
|
15
|
+
:huffington:
|
16
|
+
:title: Afghans Losing Hope After 8 Years Of War
|
17
|
+
:author: TODD PITMAN
|
18
|
+
:feed: http://feeds.huffingtonpost.com/huffingtonpost/raw_feed
|
19
|
+
:lede: "KABUL - The man on the motorcycle was going the wrong way down a one-way street, gesturing indignantly for the phalanx of traffic-clogged cars in front of him to move."
|
20
|
+
:bbcnews:
|
21
|
+
:title: Gay Muslims made homeless by family violence
|
22
|
+
:author: Poonam Taneja
|
23
|
+
:description: A charity is dealing with more gay Muslims made homeless after fleeing forced marriages and so-called "honour" violence.
|
24
|
+
:lede: A UK charity is dealing with an increasing number of young gay Muslims becoming homeless after fleeing forced marriages and so-called honour violence.
|
25
|
+
:feed: http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/england/rss.xml
|
26
|
+
:factor:
|
27
|
+
:title: Factor's bootstrap process explained
|
28
|
+
:lede: "Separation of concerns between Factor VM and library codeThe Factor VM implements an abstract machine consisting of a data heap of objects, a code heap of machine code blocks, and a set of stacks. The VM loads an image file on startup, which becomes the data and code heap. "
|
29
|
+
:youtube:
|
30
|
+
:title: YMO - Rydeen (Official Video)
|
31
|
+
:author: ymo1965
|
32
|
+
:spolsky:
|
33
|
+
:title: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
|
34
|
+
:description: Haven't mastered the basics of Unicode and character sets? Please don't write another line of code until you've read this article.
|
35
|
+
:author: Joel Spolsky
|
36
|
+
:favicon: /favicon.ico
|
37
|
+
:feed: http://www.joelonsoftware.com/rss.xml
|
38
|
+
:techcrunch:
|
39
|
+
:title: Googlle Gets A Sexy New Logo; Remains Sketchy
|
40
|
+
:author: MG Siegler
|
41
|
+
:keywords:
|
42
|
+
- - googlle
|
43
|
+
- 7
|
44
|
+
- - google
|
45
|
+
- 6
|
46
|
+
- - site
|
47
|
+
- 3
|
48
|
+
- - logo
|
49
|
+
- 2
|
50
|
+
- - font
|
51
|
+
- 2
|
52
|
+
- - india
|
53
|
+
- 2
|
54
|
+
- - surprised
|
55
|
+
- 1
|
56
|
+
- - week
|
57
|
+
- 1
|
58
|
+
- - switched
|
59
|
+
- 1
|
60
|
+
- - school
|
61
|
+
- 1
|
62
|
+
- - things
|
63
|
+
- 1
|
64
|
+
- - removing
|
65
|
+
- 1
|
66
|
+
- - steve
|
67
|
+
- 1
|
68
|
+
- - decided
|
69
|
+
- 1
|
70
|
+
- - advantage
|
71
|
+
- 1
|
72
|
+
- - wasn
|
73
|
+
- 1
|
74
|
+
- - accepting
|
75
|
+
- 1
|
76
|
+
- - red
|
77
|
+
- 1
|
78
|
+
- - copy
|
79
|
+
- 1
|
80
|
+
- - wouldn
|
81
|
+
- 1
|
@@ -0,0 +1,318 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<title>CoffeeScript: A New Language With A Pure Ruby Compiler</title>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="http://www.rubyinside.com/wp-content/themes/rubyinside2009/style.css" type="text/css" />
|
8
|
+
<link rel="alternate" type="application/rss+xml" title="Ruby Inside" href="http://www.rubyinside.com/feed/" />
|
9
|
+
<link rel="icon" href="/favicon.png" type="image/x-icon" />
|
10
|
+
<link rel="shortcut icon" href="/favicon.png" type="image/x-icon" />
|
11
|
+
<meta name="viewport" content="initial-scale=0.8" />
|
12
|
+
<script type="text/javascript">try { window.scrollTo(0, 1); } catch(err) { };</script>
|
13
|
+
<!--[if !IE]>--><link media="only screen and (max-device-width: 480px)" rel="stylesheet" type="text/css" href="http://www.rubyinside.com/wp-content/themes/rubyinside2009/iphone.css" /><!--<![endif]-->
|
14
|
+
</head>
|
15
|
+
<body class="front">
|
16
|
+
|
17
|
+
<div id="page">
|
18
|
+
|
19
|
+
<div id="header">
|
20
|
+
<div id="header-core">
|
21
|
+
<a href="/"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/logo2.png" id="logo" alt="Ruby Inside Logo" /></a>
|
22
|
+
<a href="http://www.rubyinside.com/feed/"><img src="http://feeds2.feedburner.com/~fc/RubyInside?bg=99CCFF&fg=444444&anim=0" align="top" alt="Feed Icon" style="clip:rect(0px, 88px, 20px, 0px); position:absolute; top: 1px; right: 0px" /></a>
|
23
|
+
|
24
|
+
<div id="topbyline">The #1 Ruby Programming Blog</div>
|
25
|
+
|
26
|
+
<div id="sections">
|
27
|
+
<ul>
|
28
|
+
<li><a href="/">Home</a></li>
|
29
|
+
<li><a href="/about">About Us</a></li>
|
30
|
+
<li><a href="http://ruby.jobamatic.com/" title="Ruby Jobs">Jobs</a></li>
|
31
|
+
<li><a href="/archives">Archive</a></li>
|
32
|
+
</ul>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="subscribe">
|
36
|
+
<ul>
|
37
|
+
<li><a href="http://twitter.com/RubyInside" title="Follow us on Twitter @RubyInside"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/twitter.png" align="top" alt="Twitter Icon" /></a></li>
|
38
|
+
<li><a href="http://www.rubyinside.com/feed/" title="Subscribe to the Ruby Inside RSS Web Feed"><img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/rss.png" align="top" alt="RSS Feed" /></a></li>
|
39
|
+
</ul>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div id="search">
|
43
|
+
<form method="get" id="searchform" action="/">
|
44
|
+
<div><input type="text" value="" name="s" id="s" size="28" style="width: 195px" /> <input type="submit" id="searchsubmit" value="Search" style="width: 55px;"/>
|
45
|
+
</div>
|
46
|
+
</form>
|
47
|
+
</div>
|
48
|
+
|
49
|
+
</div><!-- header-core -->
|
50
|
+
</div>
|
51
|
+
|
52
|
+
|
53
|
+
<div id="wrapper" class="clearfix">
|
54
|
+
<div id="twocols" class="clearfix"> <div id="content" class="single">
|
55
|
+
<div class="post" id="post-2921">
|
56
|
+
<div class="entryheader">
|
57
|
+
<h1>CoffeeScript: A New Language With A Pure Ruby Compiler</h1>
|
58
|
+
<p class="byline">By <a href="http://twitter.com/peterc" title="Visit Peter Cooper’s website" rel="external">Peter Cooper</a> — January 4th, 2010 — <a href="#respond">7 Comments</a></p>
|
59
|
+
<p class="subbyline">In <a href="http://www.rubyinside.com/category/cool" title="View all posts in Cool" rel="category tag">Cool</a></p>
|
60
|
+
</div>
|
61
|
+
<div class="entrytext">
|
62
|
+
<div id="greet_block"><noscript><div class="greet_block"><div class="greet_text"><div class="greet_image"><a href="http://www.rubyinside.com/feed/rss" rel="nofollow"><img src="http://www.rubyinside.com/wp-content/plugins/wp-greet-box/images/rss_icon.png" alt="WP Greet Box icon"/></a></div>Hello there! If you are new here, you might want to <a href="http://www.rubyinside.com/feed/rss" rel="nofollow"><strong>subscribe to the RSS feed</strong></a> for updates on this topic.<div style="clear:both"></div><div class="greet_block_powered_by"><a href="http://omninoggin.com/projects/wordpress-plugins/wp-greet-box-wordpress-plugin/" title="WP Greet Box WordPress Plugin">Powered by WP Greet Box</a></div><div style="clear:both"></div></div></div></noscript></div><p><img src="http://www.rubyinside.com/wp-content/uploads/2010/01/coffeescript.png" width="59" height="69" alt="coffeescript.png" style="float:left; margin-right:12px; margin-bottom:12px; border:1px #000000 solid;" /> <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> <sup>(<a href="http://github.com/jashkenas/coffee-script/">GitHub repo</a>)</sup> is a new programming language with a pure Ruby compiler. Creator Jeremy Ashkenas calls it "JavaScript's less ostentatious kid brother" - mostly because it compiles <i>into</i> JavaScript and shares most of the same constructs, but with a different, tighter syntax.</p>
|
63
|
+
<p>To get a feel for the language, check out this example code (CoffeeScript on the left, resulting JavaScript on the right):</p>
|
64
|
+
<p><img src="http://www.rubyinside.com/wp-content/uploads/2010/01/cofeescriptdemo.png" width="640" height="485" alt="cofeescriptdemo.png" /></p>
|
65
|
+
<p>As a Ruby project, you can get the CoffeeScript compiler installed with a simple <code>gem install coffee-script</code> or check out <a href="http://github.com/jashkenas/coffee-script/">the code from/on GitHub</a>. The code is worth a look as it's notably quite vanilla with hand crafted Ruby covering the lexer and code generation and <a href="http://i.loveruby.net/en/projects/racc/doc/">Racc</a> built code for the parser.</p>
|
66
|
+
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
|
70
|
+
<h3>Vaguely Related Posts (Usually)</h3>
|
71
|
+
<div class="similar-posts"><ul class="similar-posts clearfix"> <li class="similar-post">
|
72
|
+
<div class="wrap"><a href="http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2008/10/html-xml.png&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="html-xml.png" /></a></div>
|
73
|
+
<a href="http://www.rubyinside.com/nokogiri-ruby-html-parser-and-xml-parser-1288.html">Nokogiri: A Faster, Better HTML and XML Parser for Ruby (than Hpricot)</a></li>
|
74
|
+
<li class="similar-post">
|
75
|
+
<div class="wrap"><a href="http://www.rubyinside.com/how-to-create-your-own-programming-language-2495.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/09/createyourown.png&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="createyourown.png" /></a></div>
|
76
|
+
<a href="http://www.rubyinside.com/how-to-create-your-own-programming-language-2495.html">How To Create Your Own Programming Language (Using Ruby and/or Java)</a></li>
|
77
|
+
<li class="similar-post">
|
78
|
+
<div class="wrap"><a href="http://www.rubyinside.com/hotruby-a-javascript-flash-virtual-machine-that-runs-ruby-821.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2008/03/hotruby.jpg&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="hotruby.png" /></a></div>
|
79
|
+
<a href="http://www.rubyinside.com/hotruby-a-javascript-flash-virtual-machine-that-runs-ruby-821.html">HotRuby: A JavaScript & Flash Virtual Machine That Runs Ruby</a></li>
|
80
|
+
<li class="similar-post">
|
81
|
+
<div class="wrap"><a href="http://www.rubyinside.com/feedzirra-a-new-ruby-feed-library-built-for-speed-1485.html"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/02/feedzirra.gif&w=140&h=100&zc=1&q=80&f=4,-10" class="similar-post-thumb" alt="feedzirra.gif" /></a></div>
|
82
|
+
<a href="http://www.rubyinside.com/feedzirra-a-new-ruby-feed-library-built-for-speed-1485.html">Feedzirra – A New Ruby Feed Library “Built for Speed”</a></li>
|
83
|
+
</ul></div>
|
84
|
+
|
85
|
+
<!-- You can start editing here. -->
|
86
|
+
|
87
|
+
<h3 class="comments">7 Comment Responses to “CoffeeScript: A New Language With A Pure Ruby Compiler”</h3>
|
88
|
+
|
89
|
+
<ol class="commentlist">
|
90
|
+
|
91
|
+
<li class="alt" id="comment-40461">
|
92
|
+
<div class="commentnumber" style="text-align: right;">#1<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/8c7ac8ba0968d27dd1cac5b973177951?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
93
|
+
sasuke</cite> Says:
|
94
|
+
<br />
|
95
|
+
|
96
|
+
<small class="commentmetadata"><a href="#comment-40461" title="">January 4th, 2010 at 11:25 pm</a> </small>
|
97
|
+
|
98
|
+
<p>really nice project. in github there is like example the rewrite of underscore,js in coffee</p>
|
99
|
+
|
100
|
+
</li>
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
<li class="" id="comment-40462">
|
105
|
+
<div class="commentnumber" style="text-align: right;">#2<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/32652ed5b8fbd2ecdb1c78e9ac567b4b?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
106
|
+
<a href='http://github.com/jashkenas' rel='external nofollow' class='url'>Jeremy Ashkenas</a></cite> Says:
|
107
|
+
<br />
|
108
|
+
|
109
|
+
<small class="commentmetadata"><a href="#comment-40462" title="">January 4th, 2010 at 11:27 pm</a> </small>
|
110
|
+
|
111
|
+
<p>For folks who'd like to see where the language is headed, I'd recommend checking out the source and running "rake gem:install" -- I'm hoping to have version 0.2.0 out soon, which includes significant whitespace, object comprehensions, better conversion of statements into expressions, and a whole host of other goodies, most of which you can read about here:</p>
|
112
|
+
<p><a href="http://github.com/jashkenas/coffee-script/issues/closed" rel="nofollow">http://github.com/jashkenas/coffee-script/issues/closed</a></p>
|
113
|
+
<p>Have fun.</p>
|
114
|
+
|
115
|
+
</li>
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
<li class="alt" id="comment-40465">
|
120
|
+
<div class="commentnumber" style="text-align: right;">#3<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/c5a134396741859dce88a85b8365ef22?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
121
|
+
<a href='http://ricroberts.com' rel='external nofollow' class='url'>Ric Roberts</a></cite> Says:
|
122
|
+
<br />
|
123
|
+
|
124
|
+
<small class="commentmetadata"><a href="#comment-40465" title="">January 5th, 2010 at 10:02 am</a> </small>
|
125
|
+
|
126
|
+
<p>Hi Peter. Good post - this looks interesting.</p>
|
127
|
+
|
128
|
+
</li>
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
<li class="" id="comment-40466">
|
133
|
+
<div class="commentnumber" style="text-align: right;">#4<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/08e412a08cdf11a3dcb0f37952c7577a?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
134
|
+
<a href='http://juvenn.github.com' rel='external nofollow' class='url'>Juvenn Woo</a></cite> Says:
|
135
|
+
<br />
|
136
|
+
|
137
|
+
<small class="commentmetadata"><a href="#comment-40466" title="">January 5th, 2010 at 11:36 am</a> </small>
|
138
|
+
|
139
|
+
<p>Seems everything in CoffeScript is an object, function is, too. Right?<br />
|
140
|
+
It's cute!</p>
|
141
|
+
|
142
|
+
</li>
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
<li class="alt" id="comment-40469">
|
147
|
+
<div class="commentnumber" style="text-align: right;">#5<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
148
|
+
Jonas Nicklas</cite> Says:
|
149
|
+
<br />
|
150
|
+
|
151
|
+
<small class="commentmetadata"><a href="#comment-40469" title="">January 5th, 2010 at 5:59 pm</a> </small>
|
152
|
+
|
153
|
+
<p>I've created a very simple plugin for using CoffeeScript from Rails, might be useful:</p>
|
154
|
+
<p><a href="http://github.com/jnicklas/bistro_car" rel="nofollow">http://github.com/jnicklas/bistro_car</a></p>
|
155
|
+
|
156
|
+
</li>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
<li class="" id="comment-40475">
|
161
|
+
<div class="commentnumber" style="text-align: right;">#6<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/fdfe414ffbb4a3ebf0344d45b78dc7e3?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
162
|
+
<a href='http://extralogical.net/' rel='external nofollow' class='url'>Benedict Eastaugh</a></cite> Says:
|
163
|
+
<br />
|
164
|
+
|
165
|
+
<small class="commentmetadata"><a href="#comment-40475" title="">January 6th, 2010 at 9:48 am</a> </small>
|
166
|
+
|
167
|
+
<p>Juvenn: as in JavaScript, yes, functions are objects.</p>
|
168
|
+
|
169
|
+
</li>
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
<li class="alt" id="comment-40476">
|
174
|
+
<div class="commentnumber" style="text-align: right;">#7<br /><div style="border: 1px solid #666; margin-top: 2px"><img alt='' src='http://www.gravatar.com/avatar/f86901feca747abbb5c6c020362ef2e7?s=64&d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D64&r=G' class='avatar avatar-64 photo' height='64' width='64' /></div></div> <cite>
|
175
|
+
<a href='http://www.continuousthinking.com' rel='external nofollow' class='url'>Zach Dennis</a></cite> Says:
|
176
|
+
<br />
|
177
|
+
|
178
|
+
<small class="commentmetadata"><a href="#comment-40476" title="">January 6th, 2010 at 6:50 pm</a> </small>
|
179
|
+
|
180
|
+
<p>This looks very interesting indeed! Very cool project Jeremy, great post Peter,</p>
|
181
|
+
|
182
|
+
</li>
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
</ol>
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
<h3 id="respond" style="font-size: 1.2em">Leave a Reply</h3>
|
192
|
+
|
193
|
+
|
194
|
+
<form action="http://www.rubyinside.com/wp-comments-post.php" method="post" id="commentform">
|
195
|
+
|
196
|
+
|
197
|
+
<p><input type="text" name="author" id="author" value="" size="22" tabindex="1" />
|
198
|
+
<label for="author"><small>Name (required)</small></label></p>
|
199
|
+
|
200
|
+
<p><input type="text" name="email" id="email" value="" size="22" tabindex="2" />
|
201
|
+
<label for="email"><small>Mail (will not be published) (required)</small></label></p>
|
202
|
+
|
203
|
+
<p><input type="text" name="url" id="url" value="" size="22" tabindex="3" />
|
204
|
+
<label for="url"><small>Website</small></label></p>
|
205
|
+
|
206
|
+
|
207
|
+
<!--<p><small><strong>XHTML:</strong> You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> </small></p>-->
|
208
|
+
|
209
|
+
<p><textarea name="comment" id="comment" cols="40" rows="10" tabindex="4"></textarea></p>
|
210
|
+
|
211
|
+
<p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
|
212
|
+
<input type="hidden" name="comment_post_ID" value="2921" />
|
213
|
+
</p>
|
214
|
+
|
215
|
+
</form>
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
<div class="navigation" style="clear: both">Previous Post: <a href="http://www.rubyinside.com/rackamole-rack-based-monitoring-for-your-ruby-web-apps-2918.html">Rackamole: Rack-Based Monitoring For Your Ruby Web Apps</a><br />Next Post: <a href="http://www.rubyinside.com/cramp-asychronous-event-driven-ruby-web-app-framework-2928.html">Cramp: Asychronous Event-Driven Ruby Web App Framework</a></div>
|
220
|
+
|
221
|
+
|
222
|
+
<div class="featured-posts"><ul class="featured-posts clearfix">
|
223
|
+
<li class="featured-post">
|
224
|
+
<div class="wrap"><a href="http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/12/ninh-bui.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="ninh-bui.png" /></a></div>
|
225
|
+
<a href="http://www.rubyinside.com/how-phusion-built-a-more-efficient-ruby-1-8-interpreter-2906.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">How Phusion Built A More Efficient Ruby 1.8 Interpreter</a></li>
|
226
|
+
<li class="featured-post">
|
227
|
+
<div class="wrap"><a href="http://www.rubyinside.com/maglev-alpha-released-2807.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/11/maglev.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="maglev.png" /></a></div>
|
228
|
+
<a href="http://www.rubyinside.com/maglev-alpha-released-2807.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">MagLev Alpha Released: A New, Scalable Ruby Implementation</a></li>
|
229
|
+
<li class="featured-post">
|
230
|
+
<div class="wrap"><a href="http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/10/heroku.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="heroku.png" /></a></div>
|
231
|
+
<a href="http://www.rubyinside.com/heroku-gets-add-ons-serious-ruby-webapp-hosting-made-easy-2664.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">Heroku Gets Add-Ons: Serious Ruby Webapp Hosting Made Easy</a></li>
|
232
|
+
<li class="featured-post">
|
233
|
+
<div class="wrap"><a href="http://www.rubyinside.com/ruby-email-library-2782.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post"><img src="http://a.rubyinside.com/wp-content/themes/rubyinside2009/lib/thumb.php?src=/wp-content/uploads/2009/11/emailIcon.png&w=148&h=100&zc=1&q=80&f=4,-10" class="featured-post-thumb" alt="emailIcon.png" /></a></div>
|
234
|
+
<a href="http://www.rubyinside.com/ruby-email-library-2782.html?utm_source=internal&utm_medium=web&utm_campaign=featured-post">Mail: An All New Ruby E-mail Library</a></li>
|
235
|
+
</ul></div>
|
236
|
+
</div>
|
237
|
+
|
238
|
+
<div id="sidebar">
|
239
|
+
<!-- img src="http://www.rubyinside.com/wp-content/themes/rubyinside2009/images/keepusgoing.gif" style="position: absolute; right: -85px; top: 230px;" / -->
|
240
|
+
|
241
|
+
<h3>Want More Cool Stuff?</h3>
|
242
|
+
<p class="small">For links from across the Ruby community, as well as other news, <a href="/">click here and head for our homepage!</a> Or check us out <a href="http://twitter.com/RubyInside">on Twitter</a> or subscribe to <a href="/feed/">our RSS feed.</a></p>
|
243
|
+
|
244
|
+
<h3>Our Awesome Sponsors</h3>
|
245
|
+
|
246
|
+
<div id="adzerks"><div id="adzerk1"></div><div id="adzerk2"></div><div id="adzerk3"></div><div id="adzerk4"></div><div id="adzerk5"></div><div id="adzerk6"></div><div id="adzerk7"></div><div id="adzerk8"></div><div id="breaker"></div></div>
|
247
|
+
<div style="text-align: right; font-size: 11px"><a href="/advertise" style="color: #777; font-weight: normal; text-decoration: underline">Want to advertise? Click here to learn more.</a></div><script type="text/javascript"
|
248
|
+
src="http://engine.rubyrow.net/z/1313/adzerk1_4_16_19,adzerk2_4_16_19,adzerk3_4_16_19,adzerk4_4_16_19,adzerk5_4_16_19,adzerk6_4_16_19,adzerk7_4_16_19,adzerk8_4_16_19"></script>
|
249
|
+
|
250
|
+
<h3>Top Ruby Jobs</h3>
|
251
|
+
<div class="jobszone">
|
252
|
+
<div class="job" style="padding: 3px; background-color: #ffffcc; font-size: 12px"><strong><a href="http://billmonitor.theresumator.com/apply/YU1PgK/source:RUBYINSIDE">Ruby on Rails Developer</a></strong><br />
|
253
|
+
at <strong>BillMonitor</strong> (Oxford, UK)</div>
|
254
|
+
<div id="jbb_adaptive_widget_body"></div><div id="jbb_adaptive_widget_post_a_job" style="display:none"></div>
|
255
|
+
<span class="blue"><a href="http://ruby.jobamatic.com/">View All Jobs</a> | <a href="http://www.rubyinside.com/post-a-job">Post a Job</a></span>
|
256
|
+
<script type="text/javascript">var jbb_widget_list_count = 4;var jbb_widget_domain = 'http://ruby.jobamatic.com';</script>
|
257
|
+
<script src="http://ruby.jobamatic.com/c/jbb/js/jbb_widget_adaptive.js" type="text/javascript"></script>
|
258
|
+
<script src="http://ruby.jobamatic.com/a/jbb/find-jobs-json/jbb_widget_list_jobposts" type="text/javascript"></script>
|
259
|
+
</div><!-- jobszone -->
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
<h3>Our Favorite Ruby Books</h3>
|
264
|
+
<div id="books">
|
265
|
+
<ul class="links">
|
266
|
+
<li><div class="image"><a href="http://beginningruby.org/"><img src="http://ecx.images-amazon.com/images/P/1430223634.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://beginningruby.org/" title="Beginning Ruby Book">Beginning Ruby</a></div><div class="description">The ideal book for beginners or developers merely new to Ruby. Goes from installation to OOP, webapps, SQL, and GUI apps.</div></li>
|
267
|
+
|
268
|
+
<li><div class="image"><a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0596516177.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/?tag=rubyins-20">The Ruby Programming Language</a></div><div class="description">The definitive Ruby reference - like the K&R for Ruby. At 400 pages it's concise, but broad in scope.</div></li>
|
269
|
+
<li><div class="image"><a href="http://www.amazon.com/Programming-Ruby-1-9-Pragmatic-Programmers/dp/1934356085/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1934356085.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Programming-Ruby-1-9-Pragmatic-Programmers/dp/1934356085/?tag=rubyins-20">Programming Ruby 1.9</a></div><div class="description">Half tutorial, half reference. Considered a definitive guide to Ruby 1.9.</div></li>
|
270
|
+
<!-- li><div class="image"><a href="http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0596523009.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Best-Practices-Gregory-Brown/dp/0596523009/?tag=rubyins-20">Ruby Best Practices</a></div><div class="description">Learn how to write elegant Ruby code</div></li>
|
271
|
+
<li><div class="image"><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/0321490452.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452/?tag=rubyins-20">Design Patterns in Ruby</a></div><div class="description">Learn how to implement and use design patterns in Ruby</div></li>
|
272
|
+
<li><div class="image"><a href="http://www.amazon.com/Ruby-Practice-Jeremy-McAnally/dp/1933988479/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1933988479.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Ruby-Practice-Jeremy-McAnally/dp/1933988479/?tag=rubyins-20">Ruby In Practice</a></div><div class="description">A look at Ruby techniques you can use in your own projects</div></li -->
|
273
|
+
<li><div class="image"><a href="http://www.amazon.com/Well-Grounded-Rubyist-David-Black/dp/1933988657/?tag=rubyins-20"><img src="http://ecx.images-amazon.com/images/P/1933988657.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://www.amazon.com/Well-Grounded-Rubyist-David-Black/dp/1933988657/?tag=rubyins-20">The Well Grounded Rubyist</a></div><div class="description">A Ruby primer for more confident developers - tours some of Ruby's darker corners well.</div></li>
|
274
|
+
<li><div class="image"><a href="http://therubyway.org/"><img src="http://ecx.images-amazon.com/images/P/0672328844.01._PA10,6,8,10_SX90_SCLZZZZZZZZ_.jpg" /></a></div><div class="link"><a href="http://therubyway.org/">The Ruby Way</a></div><div class="description">An essential "bible" of Ruby - a true behemoth clocking in at over 800 pages!</div></li>
|
275
|
+
|
276
|
+
</ul>
|
277
|
+
</div>
|
278
|
+
|
279
|
+
<!-- SCRIPT charset="utf-8" type="text/javascript" src="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822/US/rubins-20/8001/7aaf8f3f-f85a-429f-8d77-2304de8bbae5"> </SCRIPT> <NOSCRIPT><A HREF="http://ws.amazon.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Frubins-20%2F8001%2F7aaf8f3f-f85a-429f-8d77-2304de8bbae5&Operation=NoScript">Amazon.com Widgets</A></NOSCRIPT -->
|
280
|
+
|
281
|
+
</div>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
</div>
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
<div id="footer">
|
289
|
+
|
290
|
+
<div style="float: right; padding-top: 12px">
|
291
|
+
<ul>
|
292
|
+
<li><a href="/">Home</a></li>
|
293
|
+
<li><a href="/about">About</a></li>
|
294
|
+
<li><a href="http://ruby.jobamatic.com/">Ruby Jobs</a></li>
|
295
|
+
<li><a href="/advertise">Advertise</a></li>
|
296
|
+
<li><a href="/archives">Archives</a></li>
|
297
|
+
<li><a href="/contact">Contact</a></li>
|
298
|
+
<li><a href="http://www.rubyinside.com/feed/"><img src="http://feeds2.feedburner.com/~fc/RubyInside?bg=99CCFF&fg=444444&anim=0" align="top" alt="Feed Icon" /></a></li>
|
299
|
+
</ul>
|
300
|
+
</div>
|
301
|
+
<p>
|
302
|
+
© 2009 Peter Cooper<br />Ruby Inside is a <a href="http://twitter.com/peterc" rel="nofollow">Peter Cooper</a> publication.
|
303
|
+
</p>
|
304
|
+
<p style="text-align: right; margin-top: 8px; font-size: 11px; font-family: Verdana, arial, helvetica">Powered by the NetDNA <a href="http://www.netdna.com/">Content Delivery Network</a> <a href="http://www.netdna.com/" title="NetDNA CDN Content Delivery Network"><img src="/images/netdna.png" alt="NetDNA Content Delivery Network" align="middle" style="padding-bottom: 14px" /></a></p>
|
305
|
+
</div>
|
306
|
+
</div>
|
307
|
+
|
308
|
+
<script type="text/javascript">
|
309
|
+
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
310
|
+
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
311
|
+
</script>
|
312
|
+
<script type="text/javascript">
|
313
|
+
var pageTracker = _gat._getTracker("UA-2237791-3");
|
314
|
+
pageTracker._initData();
|
315
|
+
pageTracker._trackPageview();
|
316
|
+
</script>
|
317
|
+
</body>
|
318
|
+
</html>
|