rubyyot-ruminate 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 -->