rubyyot-ruminate 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
6
+ nbproject*
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Jamal Hansen
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,7 @@
1
+ = ruminate
2
+
3
+ Description goes here.
4
+
5
+ == Copyright
6
+
7
+ Copyright (c) 2009 Jamal Hansen. See LICENSE for details.
data/Rakefile ADDED
@@ -0,0 +1,68 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "ruminate"
8
+ gem.summary = %Q{Extracts statistics from html documents}
9
+ gem.email = "jamal.hansen@gmail.com"
10
+ gem.homepage = "http://github.com/rubyyot/ruminate"
11
+ gem.authors = ["Jamal Hansen"]
12
+ gem.add_dependency('hpricot')
13
+ gem.add_dependency('oniguruma')
14
+ gem.add_development_dependency('mocha', '>= 0.9.5')
15
+ gem.add_development_dependency('thoughtbot-shoulda', '>= 2.10.0')
16
+
17
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
18
+ end
19
+ rescue LoadError
20
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
21
+ end
22
+
23
+ require 'rake/testtask'
24
+ Rake::TestTask.new(:test) do |test|
25
+ test.libs << 'lib' << 'test'
26
+ test.pattern = 'test/**/*_test.rb'
27
+ test.verbose = true
28
+ end
29
+
30
+ begin
31
+ require 'rcov/rcovtask'
32
+ Rcov::RcovTask.new do |test|
33
+ test.libs << 'test'
34
+ test.pattern = 'test/**/*_test.rb'
35
+ test.verbose = true
36
+ end
37
+ rescue LoadError
38
+ task :rcov do
39
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
40
+ end
41
+ end
42
+
43
+ begin
44
+ require 'cucumber/rake/task'
45
+ Cucumber::Rake::Task.new(:features)
46
+ rescue LoadError
47
+ task :features do
48
+ abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
49
+ end
50
+ end
51
+
52
+ task :default => :test
53
+
54
+ require 'rake/rdoctask'
55
+ Rake::RDocTask.new do |rdoc|
56
+ if File.exist?('VERSION.yml')
57
+ config = YAML.load(File.read('VERSION.yml'))
58
+ version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
59
+ else
60
+ version = ""
61
+ end
62
+
63
+ rdoc.rdoc_dir = 'rdoc'
64
+ rdoc.title = "ruminate #{version}"
65
+ rdoc.rdoc_files.include('README*')
66
+ rdoc.rdoc_files.include('lib/**/*.rb')
67
+ end
68
+
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
@@ -0,0 +1,9 @@
1
+ Feature: Get Page Title
2
+ In to get the page title
3
+ A user of ruminate
4
+ Will request a page title
5
+
6
+ Scenario: Requesting the title of a page from the page
7
+ Given the url "google.com"
8
+ When I execute the request
9
+ Then the "title" should be "Google"
@@ -0,0 +1,16 @@
1
+
2
+ Given /^the url "([^\"]*)"$/ do |url|
3
+ @url = url
4
+ end
5
+
6
+ When /^I execute the request$/ do
7
+ query = "Select title from #{@url}"
8
+ @http_service = HttpService.new
9
+ @http_service.expects(:get).with(@url).once.returns(fixture(@url))
10
+
11
+ @result = chew query, :http_service => @http_service
12
+ end
13
+
14
+ Then /^the "([^\"]*)" should be "([^\"]*)"$/ do |msg, value|
15
+ assert_equal value, @result
16
+ end
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
2
+ require 'ruminate'
3
+ include Ruminate
4
+
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'test'))
6
+ require 'fixture_injector'
7
+ include FixtureInjector
8
+
9
+ require 'test/unit/assertions'
10
+
11
+ World(Test::Unit::Assertions)
12
+
13
+ require 'mocha'
data/lib/engine.rb ADDED
@@ -0,0 +1,19 @@
1
+ require 'http_service'
2
+ require 'hpricot'
3
+
4
+ module Ruminate
5
+ class Engine
6
+ def execute query, opts={}
7
+ @http_service = get_http_service opts
8
+ page = @http_service.get(query.from)
9
+
10
+ doc = Hpricot(page)
11
+ doc.at("title").inner_html
12
+ end
13
+
14
+ def get_http_service opts
15
+ return opts[:http_service] if opts[:http_service]
16
+ Ruminate::HttpService.new
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ require 'open-uri'
2
+
3
+ module Ruminate
4
+ class HttpService
5
+ def get uri
6
+ open(uri).readlines
7
+ end
8
+ end
9
+ end
data/lib/query.rb ADDED
@@ -0,0 +1,9 @@
1
+ module Ruminate
2
+ class Query
3
+ attr_accessor :from, :fields
4
+
5
+ def initialize
6
+ @fields = []
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ require 'oniguruma'
2
+
3
+ module Ruminate
4
+ class QueryParser
5
+ include Oniguruma
6
+
7
+ def parse text
8
+ query = Ruminate::Query.new
9
+
10
+ reg = ORegexp.new( '(Select )(?<select>.*)( from )(?<from>.*)' )
11
+ match = reg.match(text)
12
+
13
+ query.from = match[:from]
14
+ query.fields = [match[:select]]
15
+ query
16
+ end
17
+
18
+ end
19
+ end
data/lib/ruminate.rb ADDED
@@ -0,0 +1,30 @@
1
+ require 'query_parser'
2
+ require 'engine'
3
+ require 'query'
4
+
5
+ module Ruminate
6
+ def chew query, opts={}
7
+ parser = get_parser opts
8
+ query_object = parser.parse query
9
+ engine = get_engine opts
10
+
11
+ engine.execute query_object, build_opts(opts)
12
+ end
13
+
14
+ private
15
+ def get_parser opts
16
+ return opts[:query_parser] if opts[:query_parser]
17
+ Ruminate::QueryParser.new
18
+ end
19
+
20
+ def get_engine opts
21
+ return opts[:engine] if opts[:engine]
22
+ Ruminate::Engine.new
23
+ end
24
+
25
+ def build_opts opts
26
+ val = {}
27
+ val[:http_service] = opts[:http_service] if opts[:http_service]
28
+ val
29
+ end
30
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ class EngineTest < Test::Unit::TestCase
4
+ context "network" do
5
+ setup do
6
+ @query = Ruminate::Query.new
7
+ @engine = Ruminate::Engine.new
8
+ @http_service = Ruminate::HttpService.new
9
+ end
10
+
11
+ should "accept http_service as parameter" do
12
+ @http_service.expects(:get).once.returns(fixture("google.com"))
13
+ @engine.execute(@query, :http_service => @http_service)
14
+ end
15
+
16
+ should "get title from google" do
17
+ @query.fields << "title"
18
+ @query.from = "google.com"
19
+ @http_service.expects(:get).with("google.com").once.returns(fixture("google.com"))
20
+ result = @engine.execute @query, :http_service => @http_service
21
+ assert_equal "Google", result
22
+ end
23
+
24
+ should "get title from delicious" do
25
+ @query.fields << "title"
26
+ @query.from = "delicious.com"
27
+ @http_service.expects(:get).with("delicious.com").once.returns(fixture("delicious.com"))
28
+ result = @engine.execute @query, :http_service => @http_service
29
+ assert_equal "Delicious", result
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,9 @@
1
+ module FixtureInjector
2
+ def fixture name
3
+ file = File.new(File.join("test", "fixtures", name), "r")
4
+ text = file.read
5
+ file.close
6
+
7
+ text
8
+ end
9
+ end
@@ -0,0 +1,961 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
+ <meta http-equiv="Pragma" content="no-cache">
6
+ <meta http-equiv="Cache-Control" content="no-store, must-revalidate, no-cache, private, max-age=0, post-check=0, pre-check=0">
7
+ <meta http-equiv="Expires" content="Sun, 1 Jan 2006 01:00:00 GMT">
8
+ <meta http-equiv="X-Ua-Compatible" content="IE=7">
9
+ <meta name="robots" content="nofollow">
10
+ <meta name="description" content="Keep, share, and discover the best of the Web using Delicious, the world&#039;s leading social bookmarking service.">
11
+ <meta name="keywords" content="del.icio.us, delicious, bookmarks, social bookmarking">
12
+ <meta name="language" content="en">
13
+ <title>Delicious</title>
14
+ <link rel="stylesheet" type="text/css" media="screen" href="http://l.yimg.com/hr/1125/del-frontend-min.css">
15
+ <!--[if IE]>
16
+ <link rel="stylesheet" type="text/css" media="screen" href="http://l.yimg.com/hr/1125/css/del-ie-min.css">
17
+ <![endif]-->
18
+ <script type="text/javascript" src="http://l.yimg.com/hr/1125/del-frontend-min.js"></script>
19
+ <!--[if IE]>
20
+ <script type="text/javascript" src="http://l.yimg.com/hr/1125/js/del-ie-min.js"></script>
21
+ <![endif]-->
22
+ <script type="text/javascript" src="http://l.yimg.com/us.js.yimg.com/lib/mus/js/ymwp/mediaplayerloader_noyui-min-2.0.46.js"></script>
23
+ <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico"></link>
24
+ <link rel="alternate" type="application/rss+xml" title="RSS feed" href="http://feeds.delicious.com/v2/rss/?count=15"></link>
25
+ </head>
26
+ <body id="index" class="main fullpage is_unknown">
27
+ <div id="doc3" class="yui-t5 delui-v5">
28
+ <script>Delicious.Display.init();</script>
29
+
30
+ <!-- HEADER -->
31
+ <div id="hd" class="loggedout">
32
+ <ul id="account">
33
+ <li id="quote">It's Free!</li>
34
+ <li id="join"><a href="https://secure.delicious.com/register">Join Now</a></li>
35
+ <li id="signin"><a href="https://secure.delicious.com/login?jump=ub">Sign In</a></li>
36
+ </ul>
37
+
38
+ <h1><a href="/" title="Delicious social bookmarking">delicious<span>social bookmarking</span></a></h1>
39
+
40
+ <div id="intro" class="toggle on">
41
+ <div id="player-minimal">
42
+ <div>
43
+ <h3>The tastiest bookmarks on the web.</h3>
44
+ <p>Save your own or see what's fresh now!</p>
45
+ <a id="tellmemore" href="/help/learn">Learn More</a>
46
+ </div>
47
+
48
+ <p id="player-show-btn"><a href="#" class="toggle-button">Show intro</a></p>
49
+ </div>
50
+
51
+ <div id="player-full">
52
+ <div id="player">
53
+ <ul id="controls">
54
+ <li id="previous"><a href="#"><span>Previous</span></a></li>
55
+ <li id="play0" class="current"><a href="#"><span>1</span></a></li>
56
+ <li id="play1"><a href="#"><span>2</span></a></li>
57
+ <li id="play2"><a href="#"><span>3</span></a></li>
58
+ <li id="play3"><a href="#"><span>4</span></a></li>
59
+ <li id="play4"><a href="#"><span>5</span></a></li>
60
+ <li id="next"><a href="#"><span>Next</span></a></li>
61
+ </ul>
62
+
63
+ <ul id="tracks">
64
+ <li id="track1">
65
+ <div>
66
+ <h3>The tastiest bookmarks on the web.</h3>
67
+ <p>Save your own or see what's fresh now!</p>
68
+ <a id="tellmemore" href="/help/learn">Learn More</a>
69
+ </div>
70
+ </li>
71
+
72
+ <li id="track2">
73
+ <div>
74
+ <h3>All your stuff in one place.</h3>
75
+ <p>Get to your bookmarks from any computer, anytime, anywhere.</p>
76
+ <a id="tellmemore" href="/help/learn">Learn More</a>
77
+ </div>
78
+ </li>
79
+
80
+ <li id="track3">
81
+ <div>
82
+ <h3>Your bookmarks will organize themselves.</h3>
83
+ <p>Tag your bookmarks. Collections will naturally emerge.</p>
84
+ <a id="tellmemore" href="/help/learn">Learn More</a>
85
+ </div>
86
+ </li>
87
+
88
+ <li id="track4">
89
+ <div>
90
+ <h3>Dish out your bookmarks to friends.</h3>
91
+ <p>And see what others are sharing with you.</p>
92
+ <a id="tellmemore" href="/help/learn">Learn More</a>
93
+ </div>
94
+ </li>
95
+
96
+ <li id="track5">
97
+ <div>
98
+ <h3>The best sites bubble up.</h3>
99
+ <p>See the most popular bookmarks for any tag.</p>
100
+ <a id="tellmemore" href="/help/learn">Learn More</a>
101
+ </div>
102
+ </li>
103
+ </ul>
104
+ </div>
105
+
106
+ <p id="player-hide-btn"><a href="#" class="toggle-button">Hide intro</a></p>
107
+ </div>
108
+ </div>
109
+
110
+ <div id="searcharea">
111
+
112
+
113
+
114
+ <div class="search-box">
115
+ <form method="get" action="/search" class="searchForm search-nodropdown" id="homepage-searchform">
116
+ <input type="text" name="p" id="homepage-searchinput" class="searchinput" size="30" maxlength="255" value="Search Delicious">
117
+ <input type="hidden" class="searchuser" name="u" value="">
118
+ <input type="hidden" name="chk" value="">
119
+ <input type="hidden" id="homepage-searchContext" class="searchcontext" name="context" value="">
120
+ <input type="hidden" name="fr" id="homepage-searchfr" value="del_icio_us">
121
+ <input type="hidden" id="homepage-searchLC" class="searchlc" name="lc" value="0">
122
+ <input type="submit" id="homepage-searchsubmit" class="searchsubmit" value="Search">
123
+ </form>
124
+ </div>
125
+
126
+ <script>Delicious.homepageSearch = new Delicious.SearchForm; Delicious.homepageSearch.init('homepage-searchform', false);</script>
127
+
128
+ <p><strong>Search</strong> the biggest collection of bookmarks in the universe...</p>
129
+ <div class="clear">
130
+ </div>
131
+ </div><!-- #hd -->
132
+
133
+ <!-- MAIN BODY -->
134
+ <div id="bd">
135
+ <div id="content">
136
+
137
+ <div id="popular">
138
+ <div id="tabs">
139
+ <ul>
140
+ <li id="active"><a href="/">Popular Bookmarks</a></li>
141
+ <li><a href="/?view=tags">Explore Tags</a></li>
142
+ </ul>
143
+ </div>
144
+
145
+ <div id="searchbar">
146
+ <h3>The most popular bookmarks on Delicious right now</h3>
147
+ <div id="newbm">New bookmarks saved in the last minute
148
+ <a href="/recent"><strong>
149
+ <em>1</em><em>2</em><em>5</em> </strong></a>
150
+ </div>
151
+
152
+ <p id="popularlink"><a href="/popular/">See more Popular bookmarks</a></p>
153
+ </div>
154
+
155
+ <div id="yui-main">
156
+ <div id="content" class="yui-b">
157
+ <ul id="bookmarklist" class="bookmarks">
158
+ <li class="post first isSelf" id="item-79426accfed89375d35481129c9512fb266021">
159
+ <div class="bookmark delicious ">
160
+
161
+
162
+
163
+
164
+ <a rel="nofollow" class="image" href="http://www.readwriteweb.com/archives/free_online_storage_services.php" >
165
+ <img src="http://static.delicious.com/thumbnails/d/e/f/b7e45956454071e9098d2ed92eb18.jpg" width="75" height="55" alt="" class="imgThumb">
166
+ </a>
167
+ <span class="jsEnabled action" id="audiofile0"></span>
168
+
169
+
170
+ <div class="data">
171
+
172
+
173
+
174
+
175
+
176
+ <h4>
177
+
178
+ <a rel="nofollow" class="taggedlink " href="http://www.readwriteweb.com/archives/free_online_storage_services.php" >Into the Cloud: Our 5 Favorite Online Storage Services - ReadWriteWeb</a>
179
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Ffree_online_storage_services.php&amp;title=Into%20the%20Cloud%3A%20Our%205%20Favorite%20Online%20Storage%20Services%20-%20ReadWriteWeb&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
180
+
181
+ </span>
182
+
183
+
184
+ </h4>
185
+
186
+
187
+
188
+
189
+ <h5 class="savers-label">PEOPLE</h5>
190
+ <div class="savers savers3">
191
+ <a class="delNav" href="/url/79426accfed89375d35481129c9512fb">
192
+ <span class="delNavCount">113</span>
193
+ </a>
194
+ </div>
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+ </div>
203
+
204
+ <div class="meta">
205
+
206
+
207
+ </div>
208
+
209
+
210
+ <h5 class="tag-chain-label">TAGS</h5>
211
+ <div class="tagdisplay">
212
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/storage"><span class="tag-chain-item-span">storage</span></a></li>
213
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/online"><span class="tag-chain-item-span">online</span></a></li>
214
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/cloudcomputing"><span class="tag-chain-item-span">cloudcomputing</span></a></li>
215
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/cloud"><span class="tag-chain-item-span">cloud</span></a></li>
216
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/hosting"><span class="tag-chain-item-span">hosting</span></a></li>
217
+ </ul>
218
+ </div>
219
+
220
+
221
+ <div class="clr"></div>
222
+ </div>
223
+ </li>
224
+ <li class="post isSelf" id="item-d503f0f607f16f81078a2b00068e71b4481790">
225
+ <div class="bookmark delicious ">
226
+
227
+
228
+
229
+
230
+ <a rel="nofollow" class="image" href="http://www.theapple.com/benefits/articles/8506-top-10-technology-tips-for-new-teachers?page=1" >
231
+ <img src="http://static.delicious.com/thumbnails/5/e/8/304dfa1e23fe472b84031078959e5.jpg" width="75" height="55" alt="" class="imgThumb">
232
+ </a>
233
+ <span class="jsEnabled action" id="audiofile1"></span>
234
+
235
+
236
+ <div class="data">
237
+
238
+
239
+
240
+
241
+
242
+ <h4>
243
+
244
+ <a rel="nofollow" class="taggedlink " href="http://www.theapple.com/benefits/articles/8506-top-10-technology-tips-for-new-teachers?page=1" >Top 10 Technology Tips for New Teachers - TheApple.com</a>
245
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.theapple.com%2Fbenefits%2Farticles%2F8506-top-10-technology-tips-for-new-teachers%3Fpage%3D1&amp;title=Top%2010%20Technology%20Tips%20for%20New%20Teachers%20-%20TheApple.com&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
246
+
247
+ </span>
248
+
249
+
250
+ </h4>
251
+
252
+
253
+
254
+
255
+ <h5 class="savers-label">PEOPLE</h5>
256
+ <div class="savers savers3">
257
+ <a class="delNav" href="/url/d503f0f607f16f81078a2b00068e71b4">
258
+ <span class="delNavCount">116</span>
259
+ </a>
260
+ </div>
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ </div>
269
+
270
+ <div class="meta">
271
+
272
+
273
+ </div>
274
+
275
+
276
+ <h5 class="tag-chain-label">TAGS</h5>
277
+ <div class="tagdisplay">
278
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/technology"><span class="tag-chain-item-span">technology</span></a></li>
279
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/education"><span class="tag-chain-item-span">education</span></a></li>
280
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/teachers"><span class="tag-chain-item-span">teachers</span></a></li>
281
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/resources"><span class="tag-chain-item-span">resources</span></a></li>
282
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/teaching"><span class="tag-chain-item-span">teaching</span></a></li>
283
+ </ul>
284
+ </div>
285
+
286
+
287
+ <div class="clr"></div>
288
+ </div>
289
+ </li>
290
+ <li class="post isSelf" id="item-e1a41971e5278fbb6f8f4435f87f96b8824792">
291
+ <div class="bookmark delicious ">
292
+
293
+
294
+
295
+
296
+ <a rel="nofollow" class="image" href="http://gizmodo.com/5116433/the-best-iphone-apps-of-2008" >
297
+ <img src="http://static.delicious.com/thumbnails/8/9/1/3892a27f0fc69c348b41b2bee65dc.jpg" width="75" height="55" alt="" class="imgThumb">
298
+ </a>
299
+ <span class="jsEnabled action" id="audiofile2"></span>
300
+
301
+
302
+ <div class="data">
303
+
304
+
305
+
306
+
307
+
308
+ <h4>
309
+
310
+ <a rel="nofollow" class="taggedlink " href="http://gizmodo.com/5116433/the-best-iphone-apps-of-2008" >Bestmodo 2008: The Best iPhone Apps of 2008</a>
311
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fgizmodo.com%2F5116433%2Fthe-best-iphone-apps-of-2008&amp;title=Bestmodo%202008%3A%20The%20Best%20iPhone%20Apps%20of%202008&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
312
+
313
+ </span>
314
+
315
+
316
+ </h4>
317
+
318
+
319
+
320
+
321
+ <h5 class="savers-label">PEOPLE</h5>
322
+ <div class="savers savers3">
323
+ <a class="delNav" href="/url/e1a41971e5278fbb6f8f4435f87f96b8">
324
+ <span class="delNavCount">115</span>
325
+ </a>
326
+ </div>
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+ </div>
335
+
336
+ <div class="meta">
337
+
338
+
339
+ </div>
340
+
341
+
342
+ <h5 class="tag-chain-label">TAGS</h5>
343
+ <div class="tagdisplay">
344
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/iphone"><span class="tag-chain-item-span">iphone</span></a></li>
345
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/apps"><span class="tag-chain-item-span">apps</span></a></li>
346
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/software"><span class="tag-chain-item-span">software</span></a></li>
347
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/ipod"><span class="tag-chain-item-span">ipod</span></a></li>
348
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/best"><span class="tag-chain-item-span">best</span></a></li>
349
+ </ul>
350
+ </div>
351
+
352
+
353
+ <div class="clr"></div>
354
+ </div>
355
+ </li>
356
+ <li class="post isSelf" id="item-01e597375053e550772a4bf4fbec27ef529405">
357
+ <div class="bookmark delicious ">
358
+
359
+
360
+
361
+
362
+ <a rel="nofollow" class="image" href="http://www.smashingmagazine.com/2009/06/24/birdies-cute-free-twitter-icons-for-your-blog/" >
363
+ <img src="http://static.delicious.com/thumbnails/9/4/7/7a026cca66d16ec23c6976ce8bf33.jpg" width="75" height="55" alt="" class="imgThumb">
364
+ </a>
365
+ <span class="jsEnabled action" id="audiofile3"></span>
366
+
367
+
368
+ <div class="data">
369
+
370
+
371
+
372
+
373
+
374
+ <h4>
375
+
376
+ <a rel="nofollow" class="taggedlink " href="http://www.smashingmagazine.com/2009/06/24/birdies-cute-free-twitter-icons-for-your-blog/" >Birdies: Cute Free Twitter Icons For Your Blog | Freebies | Smashing Magazine</a>
377
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.smashingmagazine.com%2F2009%2F06%2F24%2Fbirdies-cute-free-twitter-icons-for-your-blog%2F&amp;title=Birdies%3A%20Cute%20Free%20Twitter%20Icons%20For%20Your%20Blog%20%7C%20Freebies%20%7C%20Smashing%20Magazine&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
378
+
379
+ </span>
380
+
381
+
382
+ </h4>
383
+
384
+
385
+
386
+
387
+ <h5 class="savers-label">PEOPLE</h5>
388
+ <div class="savers savers3">
389
+ <a class="delNav" href="/url/01e597375053e550772a4bf4fbec27ef">
390
+ <span class="delNavCount">117</span>
391
+ </a>
392
+ </div>
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+ </div>
401
+
402
+ <div class="meta">
403
+
404
+
405
+ </div>
406
+
407
+
408
+ <h5 class="tag-chain-label">TAGS</h5>
409
+ <div class="tagdisplay">
410
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/icons"><span class="tag-chain-item-span">icons</span></a></li>
411
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/twitter"><span class="tag-chain-item-span">twitter</span></a></li>
412
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/webdesign"><span class="tag-chain-item-span">webdesign</span></a></li>
413
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/free"><span class="tag-chain-item-span">free</span></a></li>
414
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/resources"><span class="tag-chain-item-span">resources</span></a></li>
415
+ </ul>
416
+ </div>
417
+
418
+
419
+ <div class="clr"></div>
420
+ </div>
421
+ </li>
422
+ <li class="post isSelf" id="item-e2e45a5352c87656c2a5a79ad9b40560147218">
423
+ <div class="bookmark delicious ">
424
+
425
+
426
+
427
+
428
+ <a rel="nofollow" class="image" href="http://code.google.com/p/lambdaj/" >
429
+ <img src="http://static.delicious.com/thumbnails/5/0/d/245540637eef9a21e47e6e18109dd.jpg" width="75" height="55" alt="" class="imgThumb">
430
+ </a>
431
+ <span class="jsEnabled action" id="audiofile4"></span>
432
+
433
+
434
+ <div class="data">
435
+
436
+
437
+
438
+
439
+
440
+ <h4>
441
+
442
+ <a rel="nofollow" class="taggedlink " href="http://code.google.com/p/lambdaj/" >lambdaj - Google Code</a>
443
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fcode.google.com%2Fp%2Flambdaj%2F&amp;title=lambdaj%20-%20Google%20Code&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
444
+
445
+ </span>
446
+
447
+
448
+ </h4>
449
+
450
+
451
+
452
+
453
+ <h5 class="savers-label">PEOPLE</h5>
454
+ <div class="savers savers3">
455
+ <a class="delNav" href="/url/e2e45a5352c87656c2a5a79ad9b40560">
456
+ <span class="delNavCount">120</span>
457
+ </a>
458
+ </div>
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ </div>
467
+
468
+ <div class="meta">
469
+
470
+
471
+ </div>
472
+
473
+
474
+ <h5 class="tag-chain-label">TAGS</h5>
475
+ <div class="tagdisplay">
476
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/java"><span class="tag-chain-item-span">java</span></a></li>
477
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/functional"><span class="tag-chain-item-span">functional</span></a></li>
478
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/library"><span class="tag-chain-item-span">library</span></a></li>
479
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/collections"><span class="tag-chain-item-span">collections</span></a></li>
480
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/lambda"><span class="tag-chain-item-span">lambda</span></a></li>
481
+ </ul>
482
+ </div>
483
+
484
+
485
+ <div class="clr"></div>
486
+ </div>
487
+ </li>
488
+ <li class="post isSelf" id="item-98d7961a14c2ef000c471de1d0722e41557738">
489
+ <div class="bookmark delicious ">
490
+
491
+
492
+
493
+
494
+ <a rel="nofollow" class="image" href="http://www.sobees.com/bdule" >
495
+ <img src="http://static.delicious.com/thumbnails/3/3/3/50f645b6f0d3a53486cc4dd947487.jpg" width="75" height="55" alt="" class="imgThumb">
496
+ </a>
497
+ <span class="jsEnabled action" id="audiofile5"></span>
498
+
499
+
500
+ <div class="data">
501
+
502
+
503
+
504
+
505
+
506
+ <h4>
507
+
508
+ <a rel="nofollow" class="taggedlink " href="http://www.sobees.com/bdule" >bDule</a>
509
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.sobees.com%2Fbdule&amp;title=bDule&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
510
+
511
+ </span>
512
+
513
+
514
+ </h4>
515
+
516
+
517
+
518
+
519
+ <h5 class="savers-label">PEOPLE</h5>
520
+ <div class="savers savers3">
521
+ <a class="delNav" href="/url/98d7961a14c2ef000c471de1d0722e41">
522
+ <span class="delNavCount">113</span>
523
+ </a>
524
+ </div>
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+ </div>
533
+
534
+ <div class="meta">
535
+
536
+
537
+ </div>
538
+
539
+
540
+ <h5 class="tag-chain-label">TAGS</h5>
541
+ <div class="tagdisplay">
542
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/twitter"><span class="tag-chain-item-span">twitter</span></a></li>
543
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/facebook"><span class="tag-chain-item-span">facebook</span></a></li>
544
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/software"><span class="tag-chain-item-span">software</span></a></li>
545
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/client"><span class="tag-chain-item-span">client</span></a></li>
546
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/desktop"><span class="tag-chain-item-span">desktop</span></a></li>
547
+ </ul>
548
+ </div>
549
+
550
+
551
+ <div class="clr"></div>
552
+ </div>
553
+ </li>
554
+ <li class="post isSelf" id="item-b7c1018aa0ba6987d7aff87e0372cc4310434">
555
+ <div class="bookmark delicious ">
556
+
557
+
558
+
559
+
560
+ <a rel="nofollow" class="image" href="http://www.pcworld.com/article/159627/howto_use_your_iphone_as_a_wireless_laptop_modem.html" >
561
+ <img src="http://static.delicious.com/thumbnails/2/c/3/ed0061da3ee5ec575c8b5e4d7e3af.jpg" width="75" height="55" alt="" class="imgThumb">
562
+ </a>
563
+ <span class="jsEnabled action" id="audiofile6"></span>
564
+
565
+
566
+ <div class="data">
567
+
568
+
569
+
570
+
571
+
572
+ <h4>
573
+
574
+ <a rel="nofollow" class="taggedlink " href="http://www.pcworld.com/article/159627/howto_use_your_iphone_as_a_wireless_laptop_modem.html" >How-To: Use Your iPhone as a Wireless Laptop Modem - PC World</a>
575
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.pcworld.com%2Farticle%2F159627%2Fhowto_use_your_iphone_as_a_wireless_laptop_modem.html&amp;title=How-To%3A%20Use%20Your%20iPhone%20as%20a%20Wireless%20Laptop%20Modem%20-%20PC%20World&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
576
+
577
+ </span>
578
+
579
+
580
+ </h4>
581
+
582
+
583
+
584
+
585
+ <h5 class="savers-label">PEOPLE</h5>
586
+ <div class="savers savers3">
587
+ <a class="delNav" href="/url/b7c1018aa0ba6987d7aff87e0372cc43">
588
+ <span class="delNavCount">118</span>
589
+ </a>
590
+ </div>
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+ </div>
599
+
600
+ <div class="meta">
601
+
602
+
603
+ </div>
604
+
605
+
606
+ <h5 class="tag-chain-label">TAGS</h5>
607
+ <div class="tagdisplay">
608
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/iphone"><span class="tag-chain-item-span">iphone</span></a></li>
609
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/modem"><span class="tag-chain-item-span">modem</span></a></li>
610
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/jailbreak"><span class="tag-chain-item-span">jailbreak</span></a></li>
611
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/wireless"><span class="tag-chain-item-span">wireless</span></a></li>
612
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/howto"><span class="tag-chain-item-span">howto</span></a></li>
613
+ </ul>
614
+ </div>
615
+
616
+
617
+ <div class="clr"></div>
618
+ </div>
619
+ </li>
620
+ <li class="post isSelf" id="item-fe2d0bc9d3360f57e94d302cd8ecea9b843365">
621
+ <div class="bookmark delicious ">
622
+
623
+
624
+
625
+
626
+ <a rel="nofollow" class="image" href="http://www.catswhocode.com/blog/10-incredibly-cool-wordpress-shortcodes" >
627
+ <img src="http://static.delicious.com/thumbnails/4/2/c/8baaf86f7c619de67c4bd663091d4.jpg" width="75" height="55" alt="" class="imgThumb">
628
+ </a>
629
+ <span class="jsEnabled action" id="audiofile7"></span>
630
+
631
+
632
+ <div class="data">
633
+
634
+
635
+
636
+
637
+
638
+ <h4>
639
+
640
+ <a rel="nofollow" class="taggedlink " href="http://www.catswhocode.com/blog/10-incredibly-cool-wordpress-shortcodes" >10 incredibly cool WordPress shortcodes</a>
641
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.catswhocode.com%2Fblog%2F10-incredibly-cool-wordpress-shortcodes&amp;title=10%20incredibly%20cool%20WordPress%20shortcodes&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
642
+
643
+ </span>
644
+
645
+
646
+ </h4>
647
+
648
+
649
+
650
+
651
+ <h5 class="savers-label">PEOPLE</h5>
652
+ <div class="savers savers3">
653
+ <a class="delNav" href="/url/fe2d0bc9d3360f57e94d302cd8ecea9b">
654
+ <span class="delNavCount">172</span>
655
+ </a>
656
+ </div>
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+ </div>
665
+
666
+ <div class="meta">
667
+
668
+
669
+ </div>
670
+
671
+
672
+ <h5 class="tag-chain-label">TAGS</h5>
673
+ <div class="tagdisplay">
674
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/wordpress"><span class="tag-chain-item-span">wordpress</span></a></li>
675
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/tips"><span class="tag-chain-item-span">tips</span></a></li>
676
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/code"><span class="tag-chain-item-span">code</span></a></li>
677
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/development"><span class="tag-chain-item-span">development</span></a></li>
678
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/shortcodes"><span class="tag-chain-item-span">shortcodes</span></a></li>
679
+ </ul>
680
+ </div>
681
+
682
+
683
+ <div class="clr"></div>
684
+ </div>
685
+ </li>
686
+ <li class="post isSelf" id="item-d6136942e1a5760b52d034f407d80584387944">
687
+ <div class="bookmark delicious ">
688
+
689
+
690
+
691
+
692
+ <a rel="nofollow" class="image" href="http://www.playingwithwire.com/2009/03/open-source-and-usability-joomla-vs-wordpress/" >
693
+ <img src="http://static.delicious.com/thumbnails/7/a/4/cbacc5a62f85d119908767ea789bb.jpg" width="75" height="55" alt="" class="imgThumb">
694
+ </a>
695
+ <span class="jsEnabled action" id="audiofile8"></span>
696
+
697
+
698
+ <div class="data">
699
+
700
+
701
+
702
+
703
+
704
+ <h4>
705
+
706
+ <a rel="nofollow" class="taggedlink " href="http://www.playingwithwire.com/2009/03/open-source-and-usability-joomla-vs-wordpress/" >Playing With Wire » Open Source and usability: Joomla vs. WordPress</a>
707
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fwww.playingwithwire.com%2F2009%2F03%2Fopen-source-and-usability-joomla-vs-wordpress%2F&amp;title=Playing%20With%20Wire%20%C2%BB%20Open%20Source%20and%20usability%3A%20Joomla%20vs.%20WordPress&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
708
+
709
+ </span>
710
+
711
+
712
+ </h4>
713
+
714
+
715
+
716
+
717
+ <h5 class="savers-label">PEOPLE</h5>
718
+ <div class="savers savers3">
719
+ <a class="delNav" href="/url/d6136942e1a5760b52d034f407d80584">
720
+ <span class="delNavCount">116</span>
721
+ </a>
722
+ </div>
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+ </div>
731
+
732
+ <div class="meta">
733
+
734
+
735
+ </div>
736
+
737
+
738
+ <h5 class="tag-chain-label">TAGS</h5>
739
+ <div class="tagdisplay">
740
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/wordpress"><span class="tag-chain-item-span">wordpress</span></a></li>
741
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/joomla"><span class="tag-chain-item-span">joomla</span></a></li>
742
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/cms"><span class="tag-chain-item-span">cms</span></a></li>
743
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/usability"><span class="tag-chain-item-span">usability</span></a></li>
744
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/opensource"><span class="tag-chain-item-span">opensource</span></a></li>
745
+ </ul>
746
+ </div>
747
+
748
+
749
+ <div class="clr"></div>
750
+ </div>
751
+ </li>
752
+ <li class="post isSelf" id="item-e144cf9147d3670274976e5333e97544817607">
753
+ <div class="bookmark delicious ">
754
+
755
+
756
+
757
+
758
+ <a rel="nofollow" class="image" href="http://valums.com/edit-in-place/" >
759
+ <img src="http://static.delicious.com/thumbnails/c/5/5/8b7b063adfa8e1168f3ea49f8f584.jpg" width="75" height="55" alt="" class="imgThumb">
760
+ </a>
761
+ <span class="jsEnabled action" id="audiofile9"></span>
762
+
763
+
764
+ <div class="data">
765
+
766
+
767
+
768
+
769
+
770
+ <h4>
771
+
772
+ <a rel="nofollow" class="taggedlink " href="http://valums.com/edit-in-place/" >Edit-in-place with contentEditable property</a>
773
+ <span class="saverem"><a class="inlinesave" href="/save?url=http%3A%2F%2Fvalums.com%2Fedit-in-place%2F&amp;title=Edit-in-place%20with%20contentEditable%20property&amp;jump=%2F&amp;key=lrHycjxVqTdfQlPTFFSAUVpWqn4-&amp;original_user=">SAVE</a>
774
+
775
+ </span>
776
+
777
+
778
+ </h4>
779
+
780
+
781
+
782
+
783
+ <h5 class="savers-label">PEOPLE</h5>
784
+ <div class="savers savers3">
785
+ <a class="delNav" href="/url/e144cf9147d3670274976e5333e97544">
786
+ <span class="delNavCount">128</span>
787
+ </a>
788
+ </div>
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+ </div>
797
+
798
+ <div class="meta">
799
+
800
+
801
+ </div>
802
+
803
+
804
+ <h5 class="tag-chain-label">TAGS</h5>
805
+ <div class="tagdisplay">
806
+ <ul class="tag-chain"><li class="tag-chain-item off first"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/jquery"><span class="tag-chain-item-span">jquery</span></a></li>
807
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/javascript"><span class="tag-chain-item-span">javascript</span></a></li>
808
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/plugin"><span class="tag-chain-item-span">plugin</span></a></li>
809
+ <li class="tag-chain-item off"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/editinplace"><span class="tag-chain-item-span">editinplace</span></a></li>
810
+ <li class="tag-chain-item off last"><a class="tag-chain-item-link noplay" rel="tag" href="/popular/editable"><span class="tag-chain-item-span">editable</span></a></li>
811
+ </ul>
812
+ </div>
813
+
814
+
815
+ <div class="clr"></div>
816
+ </div>
817
+ </li>
818
+ </ul>
819
+ <div id="display-and-rss-options">
820
+ <div id="bookmark-rss" class="rr">
821
+ <a href="http://feeds.delicious.com/v2/rss/?count=15" class="rss">RSS feed</a> <span>for these Bookmarks</span>
822
+ <span id="ccLicense"><em>All Rights Reserved</em></span>
823
+
824
+ </div>
825
+ </div>
826
+ <script>Delicious.BookmarkList.init('bookmarklist');</script>
827
+ </div>
828
+ </div>
829
+
830
+ <div id="sidebar" class="yui-b">
831
+ <div id="popular-tags" class="sidebar-list toggle on">
832
+ <h3><span>Popular Tags</span></h3> <ul class="list">
833
+ <li class="first">
834
+ <a href="/popular/design" title="" class="showTag"><span class="m" title="">design<em></em></span></a>
835
+ </li>
836
+ <li class="">
837
+ <a href="/popular/blog" title="" class="showTag"><span class="m" title="">blog<em></em></span></a>
838
+ </li>
839
+ <li class="">
840
+ <a href="/popular/video" title="" class="showTag"><span class="m" title="">video<em></em></span></a>
841
+ </li>
842
+ <li class="">
843
+ <a href="/popular/software" title="" class="showTag"><span class="m" title="">software<em></em></span></a>
844
+ </li>
845
+ <li class="">
846
+ <a href="/popular/tools" title="" class="showTag"><span class="m" title="">tools<em></em></span></a>
847
+ </li>
848
+ <li class="">
849
+ <a href="/popular/music" title="" class="showTag"><span class="m" title="">music<em></em></span></a>
850
+ </li>
851
+ <li class="">
852
+ <a href="/popular/programming" title="" class="showTag"><span class="m" title="">programming<em></em></span></a>
853
+ </li>
854
+ <li class="">
855
+ <a href="/popular/webdesign" title="" class="showTag"><span class="m" title="">webdesign<em></em></span></a>
856
+ </li>
857
+ <li class="">
858
+ <a href="/popular/reference" title="" class="showTag"><span class="m" title="">reference<em></em></span></a>
859
+ </li>
860
+ <li class="">
861
+ <a href="/popular/tutorial" title="" class="showTag"><span class="m" title="">tutorial<em></em></span></a>
862
+ </li>
863
+ <li class="">
864
+ <a href="/popular/art" title="" class="showTag"><span class="m" title="">art<em></em></span></a>
865
+ </li>
866
+ <li class="">
867
+ <a href="/popular/web" title="" class="showTag"><span class="m" title="">web<em></em></span></a>
868
+ </li>
869
+ <li class="">
870
+ <a href="/popular/howto" title="" class="showTag"><span class="m" title="">howto<em></em></span></a>
871
+ </li>
872
+ <li class="">
873
+ <a href="/popular/javascript" title="" class="showTag"><span class="m" title="">javascript<em></em></span></a>
874
+ </li>
875
+ <li class="">
876
+ <a href="/popular/free" title="" class="showTag"><span class="m" title="">free<em></em></span></a>
877
+ </li>
878
+ <li class="">
879
+ <a href="/popular/linux" title="" class="showTag"><span class="m" title="">linux<em></em></span></a>
880
+ </li>
881
+ <li class="">
882
+ <a href="/popular/web2.0" title="" class="showTag"><span class="m" title="">web2.0<em></em></span></a>
883
+ </li>
884
+ <li class="">
885
+ <a href="/popular/development" title="" class="showTag"><span class="m" title="">development<em></em></span></a>
886
+ </li>
887
+ <li class="">
888
+ <a href="/popular/google" title="" class="showTag"><span class="m" title="">google<em></em></span></a>
889
+ </li>
890
+ <li class="">
891
+ <a href="/popular/inspiration" title="" class="showTag"><span class="m" title="">inspiration<em></em></span></a>
892
+ </li>
893
+ <li class="">
894
+ <a href="/popular/photography" title="" class="showTag"><span class="m" title="">photography<em></em></span></a>
895
+ </li>
896
+ <li class="">
897
+ <a href="/popular/news" title="" class="showTag"><span class="m" title="">news<em></em></span></a>
898
+ </li>
899
+ <li class="">
900
+ <a href="/popular/food" title="" class="showTag"><span class="m" title="">food<em></em></span></a>
901
+ </li>
902
+ <li class="">
903
+ <a href="/popular/flash" title="" class="showTag"><span class="m" title="">flash<em></em></span></a>
904
+ </li>
905
+ <li class="">
906
+ <a href="/popular/css" title="" class="showTag"><span class="m" title="">css<em></em></span></a>
907
+ </li>
908
+ <li class="">
909
+ <a href="/popular/blogs" title="" class="showTag"><span class="m" title="">blogs<em></em></span></a>
910
+ </li>
911
+ <li class="">
912
+ <a href="/popular/education" title="" class="showTag"><span class="m" title="">education<em></em></span></a>
913
+ </li>
914
+ <li class="">
915
+ <a href="/popular/business" title="" class="showTag"><span class="m" title="">business<em></em></span></a>
916
+ </li>
917
+ <li class="">
918
+ <a href="/popular/technology" title="" class="showTag"><span class="m" title="">technology<em></em></span></a>
919
+ </li>
920
+ <li class="">
921
+ <a href="/popular/travel" title="" class="showTag"><span class="m" title="">travel<em></em></span></a>
922
+ </li>
923
+
924
+ </ul>
925
+
926
+ <div class="clr"></div>
927
+ </div>
928
+
929
+ </div>
930
+ </div>
931
+
932
+ </div>
933
+ </div><!-- #bd -->
934
+
935
+
936
+ <script>
937
+ Delicious.TagsData.init('main');
938
+ </script>
939
+
940
+
941
+
942
+ <div id="ft">
943
+ <div id="ftNav">
944
+ <a id="whatsnewLink" href="/help/whatsnew">What's new?</a>
945
+ <ul>
946
+ <li class="first"><a href="/">delicious</a></li>
947
+ <li><a href="/about">about</a></li>
948
+ <li><a href="http://blog.delicious.com/">blog</a></li>
949
+ <li><a href="/help/terms">terms of service</a></li>
950
+ <li><a href="http://info.yahoo.com/privacy/us/delicious/" target="_new">privacy policy</a></li>
951
+ <li><a href="http://info.yahoo.com/copyright/details.html" target="_new">copyright policy</a></li>
952
+ <li><a href="http://support.delicious.com/forum/">forums</a></li>
953
+ <li><a href="/help/support">support</a></li>
954
+ </ul>
955
+ <div class="clear"></div>
956
+ </div>
957
+ </div>
958
+
959
+ </div>
960
+
961
+ <!-- SpaceID=0 robot -->