tumblargh 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/.gitignore +2 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +15 -0
  4. data/Gemfile.lock +52 -0
  5. data/LICENSE +20 -0
  6. data/README.md +84 -0
  7. data/Rakefile +43 -0
  8. data/VERSION +1 -0
  9. data/examples/confg.ru +18 -0
  10. data/examples/middleman_config.rb +7 -0
  11. data/lib/middleman/features/tumblargh.rb +41 -0
  12. data/lib/rack/tumblargh.rb +51 -0
  13. data/lib/tumblargh.rb +60 -0
  14. data/lib/tumblargh/api.rb +60 -0
  15. data/lib/tumblargh/grammar.rb +560 -0
  16. data/lib/tumblargh/grammar.treetop +42 -0
  17. data/lib/tumblargh/node.rb +14 -0
  18. data/lib/tumblargh/node/base.rb +21 -0
  19. data/lib/tumblargh/node/block.rb +31 -0
  20. data/lib/tumblargh/node/block_end.rb +9 -0
  21. data/lib/tumblargh/node/block_start.rb +22 -0
  22. data/lib/tumblargh/node/literal.rb +9 -0
  23. data/lib/tumblargh/node/root.rb +17 -0
  24. data/lib/tumblargh/node/tag.rb +33 -0
  25. data/lib/tumblargh/parser.rb +96 -0
  26. data/lib/tumblargh/renderer.rb +316 -0
  27. data/lib/tumblargh/renderer/base.rb +64 -0
  28. data/lib/tumblargh/renderer/blocks/answer.rb +22 -0
  29. data/lib/tumblargh/renderer/blocks/audio.rb +70 -0
  30. data/lib/tumblargh/renderer/blocks/base.rb +35 -0
  31. data/lib/tumblargh/renderer/blocks/dates.rb +62 -0
  32. data/lib/tumblargh/renderer/blocks/navigation.rb +65 -0
  33. data/lib/tumblargh/renderer/blocks/notes.rb +68 -0
  34. data/lib/tumblargh/renderer/blocks/posts.rb +50 -0
  35. data/lib/tumblargh/renderer/blocks/reblogs.rb +50 -0
  36. data/lib/tumblargh/renderer/blocks/tags.rb +37 -0
  37. data/lib/tumblargh/renderer/document.rb +70 -0
  38. data/lib/tumblargh/renderer/literal.rb +9 -0
  39. data/lib/tumblargh/renderer/tag.rb +37 -0
  40. data/lib/tumblargh/resource.rb +12 -0
  41. data/lib/tumblargh/resource/base.rb +39 -0
  42. data/lib/tumblargh/resource/blog.rb +49 -0
  43. data/lib/tumblargh/resource/note.rb +8 -0
  44. data/lib/tumblargh/resource/post.rb +63 -0
  45. data/lib/tumblargh/resource/tag.rb +8 -0
  46. data/lib/tumblargh/resource/user.rb +8 -0
  47. data/spec/api_spec.rb +1 -0
  48. data/spec/fixtures/data/staff.tumblr.com-2012-05-06/posts.json +1203 -0
  49. data/spec/fixtures/themes/fluid.html +1138 -0
  50. data/spec/fixtures/themes/solstice.html +392 -0
  51. data/spec/parser_spec.rb +159 -0
  52. data/spec/renderer/blocks/posts_spec.rb +17 -0
  53. data/spec/renderer/document_spec.rb +57 -0
  54. data/spec/resource/post_spec.rb +38 -0
  55. data/spec/resource_spec.rb +23 -0
  56. data/spec/spec_helper.rb +24 -0
  57. data/spec/tumblargh_spec.rb +50 -0
  58. data/tumblargh.gemspec +120 -0
  59. metadata +237 -0
@@ -0,0 +1,50 @@
1
+ module Tumblargh
2
+ module Renderer
3
+ module Blocks
4
+ # TODO: Impl.
5
+
6
+ # Rendered if a post was reblogged from another post.
7
+ class RebloggedFrom < Base
8
+ def should_render?
9
+ false
10
+ end
11
+
12
+ def reblog_parent_name
13
+
14
+ end
15
+
16
+ def reblog_parent_title
17
+
18
+ end
19
+
20
+ def reblog_parent_url
21
+
22
+ end
23
+
24
+ def reblog_parent_portrait_url(size)
25
+ end
26
+
27
+ def reblog_root_name
28
+
29
+ end
30
+
31
+ def reblog_root_title
32
+
33
+ end
34
+
35
+ def reblog_root_portrait_url(size)
36
+
37
+ end
38
+
39
+ end
40
+
41
+ class NotReblog < Base
42
+ def should_render?
43
+ true
44
+ end
45
+ end
46
+
47
+ end
48
+ end
49
+ end
50
+
@@ -0,0 +1,37 @@
1
+ module Tumblargh
2
+ module Renderer
3
+ module Blocks
4
+
5
+ # Rendered for each of a post's tags.
6
+ class Tags < Base
7
+ def tag
8
+ context.name
9
+ end
10
+
11
+ def url_safe_tag
12
+ escape_url(tag)
13
+ end
14
+
15
+ def tag_url
16
+ "/tagged/#{url_safe}"
17
+ end
18
+
19
+ def tag_url_chrono
20
+ "#{tag_url}/chrono"
21
+ end
22
+
23
+ def render
24
+ if context.is_a? Resource::Tag
25
+ super
26
+ else
27
+ context.tags.map do |tag|
28
+ tag.context = self
29
+ self.class.new(node, tag).render
30
+ end.flatten.join('')
31
+ end
32
+ end
33
+
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,70 @@
1
+ module Tumblargh
2
+ module Renderer
3
+
4
+ class Document < Base
5
+
6
+ attr_accessor :config
7
+
8
+ def initialize(node, context, config)
9
+ @config = config.with_indifferent_access
10
+ super(node, context)
11
+ end
12
+
13
+ # Are we rendering a permalink page?
14
+ def permalink?
15
+ @config[:permalink] == true
16
+ end
17
+
18
+ # TAGS ----------
19
+ contextual_tag :title
20
+ contextual_tag :description
21
+
22
+ def meta_description
23
+ strip_html(description)
24
+ end
25
+
26
+ def favicon
27
+ # TODO
28
+ ''
29
+ end
30
+
31
+ def rss
32
+ "#{context.url}rss"
33
+ end
34
+
35
+ # Appearance options
36
+ # http://www.tumblr.com/docs/en/custom_themes#appearance-options
37
+ def color(key)
38
+ custom_value_for_type :color, key
39
+ end
40
+
41
+ def font(key)
42
+ custom_value_for_type :font, key
43
+ end
44
+
45
+ def image(key)
46
+ custom_value_for_type :image, key
47
+ end
48
+
49
+ def text(key)
50
+ custom_value_for_type :text, key
51
+ end
52
+
53
+ def boolean(key)
54
+ custom_value_for_type :if, key
55
+ end
56
+
57
+ def custom_value_for_type(type, key)
58
+ config[type][key] rescue raise "No appearance option for #{type}:#{key}"
59
+ end
60
+
61
+ # END TAGS ------
62
+
63
+ def render
64
+ node.map do |n|
65
+ Renderer.factory(n, self).render
66
+ end.flatten.join('')
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,9 @@
1
+ module Tumblargh
2
+ module Renderer
3
+ class Literal < Base
4
+ def render
5
+ node[1]
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,37 @@
1
+ module Tumblargh
2
+ module Renderer
3
+ class Tag < Base
4
+ def render
5
+ # {PhotoURL-500} becomes photo_url(500)
6
+ tag, *args = node[1].split('-')
7
+ context.send tag.underscore, *args
8
+ end
9
+ end
10
+
11
+ class CustomTag < Tag
12
+ def method_name
13
+ self.class.name.demodulize.sub('Tag', '').downcase
14
+ end
15
+
16
+ def render
17
+ context.send(method_name, node[1].split(':').last)
18
+ end
19
+ end
20
+
21
+ class ColorTag < CustomTag
22
+ end
23
+
24
+ class ImageTag < CustomTag
25
+ end
26
+
27
+ class FontTag < CustomTag
28
+ end
29
+
30
+ class TextTag < CustomTag
31
+ end
32
+
33
+ class LangTag < CustomTag
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,12 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ autoload :Base, 'tumblargh/resource/base'
5
+ autoload :Blog, 'tumblargh/resource/blog'
6
+ autoload :Note, 'tumblargh/resource/note'
7
+ autoload :Post, 'tumblargh/resource/post'
8
+ autoload :Tag, 'tumblargh/resource/tag'
9
+ autoload :User, 'tumblargh/resource/user'
10
+
11
+ end
12
+ end
@@ -0,0 +1,39 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class Base
5
+
6
+ # Needed by renderer for context propagation
7
+ attr_accessor :context
8
+
9
+ def initialize(attrs={})
10
+ self.attributes = attrs
11
+ end
12
+
13
+ attr_reader :attributes
14
+
15
+ def attributes=(attrs)
16
+ @attributes = attrs.with_indifferent_access
17
+ end
18
+
19
+ def method_missing(method_symbol, *arguments)
20
+ method_name = method_symbol.to_s
21
+
22
+ if method_name =~ /(=|\?)$/
23
+ case $1
24
+ when "="
25
+ attributes[$`] = arguments.first
26
+ when "?"
27
+ attributes[$`]
28
+ end
29
+ else
30
+ return attributes[method_name] if attributes.include?(method_name)
31
+
32
+ # propagating renderer context
33
+ return context.send(method_symbol, *arguments) unless context.nil?
34
+ end
35
+ end
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,49 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class Blog < Base
5
+
6
+ attr_accessor :domain
7
+
8
+ def initialize(domain, attrs=nil)
9
+ @domain = domain
10
+ self.attributes = attrs.nil? ? fetch : attrs
11
+ end
12
+
13
+ def attributes=(attrs)
14
+ attrs = attrs.with_indifferent_access
15
+
16
+ # We passed in result from /posts, or a local file
17
+ if attrs.include?(:posts) && attrs.include?(:blog)
18
+ self.posts = attrs[:posts]
19
+ attrs.delete(:posts)
20
+
21
+ self.attributes = attrs[:blog]
22
+ else
23
+ super(attrs)
24
+ end
25
+
26
+ @attributes
27
+ end
28
+
29
+ def fetch
30
+ API.blog(domain)
31
+ end
32
+
33
+ def fetch!
34
+ attributes = fetch
35
+ end
36
+
37
+ def posts
38
+ @posts || self.posts = API.posts(domain)
39
+ @posts # Whyyy??? Must I do this?
40
+ end
41
+
42
+ def posts=(ary)
43
+ @posts = ary.map { |p| Post.new(p, self) }
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,8 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class Note < Base
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,63 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class Post < Base
5
+
6
+ def initialize(attrs, blog)
7
+ @blog = blog
8
+ super(attrs)
9
+ end
10
+
11
+ # Override method_missing so this does not propagate
12
+ def title
13
+ @attributes[:title]
14
+ end
15
+
16
+ def date
17
+ @date ||= @attributes[:date].to_time
18
+ end
19
+
20
+ def photo_url(size=500)
21
+ return nil if (photos.nil? || photos.empty?)
22
+
23
+ size = size.to_i
24
+
25
+ orig = photos.first[:original_size]
26
+ res = photos.first[:alt_sizes].select do |p|
27
+ p[:width] == size
28
+ end
29
+
30
+ res.empty? ? orig[:url] : res.first[:url]
31
+ end
32
+
33
+ def video(size=500)
34
+ return nil if (player.nil? || player.empty?)
35
+
36
+ size = size.to_i
37
+
38
+ res = player.select do |p|
39
+ p[:width] == size
40
+ end
41
+
42
+ res.empty? ? nil : res.first[:embed_code]
43
+ end
44
+
45
+ def tags
46
+ @tags ||= @attributes[:tags].map do |t|
47
+ Tag.new({ :name => t })
48
+ end
49
+ end
50
+
51
+ def notes
52
+ @notes || self.notes = API.notes(@blog.domain, :id => id)
53
+ @notes
54
+ end
55
+
56
+ def notes=(ary)
57
+ @notes = ary.map { |n| Note.new(n) }
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+ end
@@ -0,0 +1,8 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class Tag < Base
5
+ end
6
+
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Tumblargh
2
+ module Resource
3
+
4
+ class User < Base
5
+ end
6
+
7
+ end
8
+ end
data/spec/api_spec.rb ADDED
@@ -0,0 +1 @@
1
+ require 'spec_helper'
@@ -0,0 +1,1203 @@
1
+ {
2
+ "meta": {
3
+ "msg": "OK",
4
+ "status": 200
5
+ },
6
+ "response": {
7
+ "blog": {
8
+ "ask": false,
9
+ "description": "The <i>official</i> feed from the people behind <a href=\"http://www.tumblr.com/\">Tumblr</a>.\n\nFollow us for the latest development updates, features, events, tips, tutorials, hacks, meetups, antics, philosophy, and trade secrets.",
10
+ "name": "staff",
11
+ "posts": 566,
12
+ "title": "Tumblr Staff",
13
+ "updated": 1336142236,
14
+ "url": "http://staff.tumblr.com/"
15
+ },
16
+ "posts": [
17
+ {
18
+ "blog_name": "staff",
19
+ "caption": "<p><a class=\"tumblr_blog\" href=\"http://joey.tumblr.com/post/22329533583/the-ministry-of-design-has-a-flag-now\">joey</a>:</p>\n<blockquote>\n<p>The <a href=\"http://ministryofdesign.tumblr.com\">Ministry of Design</a> has a flag now.</p>\n</blockquote>\n<p>Salute!</p>",
20
+ "date": "2012-05-04 14:37:16 GMT",
21
+ "format": "html",
22
+ "highlighted": [],
23
+ "id": 22383005154,
24
+ "note_count": 1408,
25
+ "photos": [
26
+ {
27
+ "alt_sizes": [
28
+ {
29
+ "height": 855,
30
+ "url": "http://24.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_1280.jpg",
31
+ "width": 1280
32
+ },
33
+ {
34
+ "height": 334,
35
+ "url": "http://25.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_500.jpg",
36
+ "width": 500
37
+ },
38
+ {
39
+ "height": 267,
40
+ "url": "http://29.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_400.jpg",
41
+ "width": 400
42
+ },
43
+ {
44
+ "height": 167,
45
+ "url": "http://29.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_250.jpg",
46
+ "width": 250
47
+ },
48
+ {
49
+ "height": 67,
50
+ "url": "http://25.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_100.jpg",
51
+ "width": 100
52
+ },
53
+ {
54
+ "height": 75,
55
+ "url": "http://29.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_75sq.jpg",
56
+ "width": 75
57
+ }
58
+ ],
59
+ "caption": "",
60
+ "original_size": {
61
+ "height": 855,
62
+ "url": "http://24.media.tumblr.com/tumblr_m3glrv08qh1qz7x94o1_1280.jpg",
63
+ "width": 1280
64
+ }
65
+ }
66
+ ],
67
+ "post_url": "http://staff.tumblr.com/post/22383005154/joey-the-ministry-of-design-has-a-flag-now",
68
+ "reblog_key": "g6lzQWSt",
69
+ "source_title": "joey",
70
+ "source_url": "http://joey.tumblr.com/post/22329533583/the-ministry-of-design-has-a-flag-now",
71
+ "tags": [],
72
+ "timestamp": 1336142236,
73
+ "type": "photo"
74
+ },
75
+ {
76
+ "blog_name": "staff",
77
+ "caption": "<p><strong>Exciting fashion news</strong> from <a href=\"http://vogue.tumblr.com/\">Vogue</a> and The Metropolitan Museum of Art! For the first time, Tumblr bloggers <a href=\"http://fromme-toyou.tumblr.com/\">Jamie</a>, <a href=\"http://nova-style.tumblr.com/\">Jillian</a>, and <a href=\"http://juliabunny.tumblr.com/\">Julia</a> will cover the red carpet of the prestigious Costume Institute Gala on May 7 in New York. Check out the action on their Tumblrs as well as the museum&#8217;s <a href=\"http://metmuseum.org/exhibitions/listings/2012/impossible-conversations\">live feed</a>. (Photo: PMc)</p>",
78
+ "date": "2012-05-03 19:11:00 GMT",
79
+ "format": "html",
80
+ "highlighted": [],
81
+ "id": 22331752220,
82
+ "note_count": 3459,
83
+ "photos": [
84
+ {
85
+ "alt_sizes": [
86
+ {
87
+ "height": 1280,
88
+ "url": "http://25.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_1280.jpg",
89
+ "width": 1280
90
+ },
91
+ {
92
+ "height": 500,
93
+ "url": "http://24.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_500.jpg",
94
+ "width": 500
95
+ },
96
+ {
97
+ "height": 400,
98
+ "url": "http://29.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_400.jpg",
99
+ "width": 400
100
+ },
101
+ {
102
+ "height": 250,
103
+ "url": "http://25.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_250.jpg",
104
+ "width": 250
105
+ },
106
+ {
107
+ "height": 100,
108
+ "url": "http://29.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_100.jpg",
109
+ "width": 100
110
+ },
111
+ {
112
+ "height": 75,
113
+ "url": "http://25.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_75sq.jpg",
114
+ "width": 75
115
+ }
116
+ ],
117
+ "caption": "",
118
+ "original_size": {
119
+ "height": 1280,
120
+ "url": "http://25.media.tumblr.com/tumblr_m3gnz592wy1qz8q0ho1_r1_1280.jpg",
121
+ "width": 1280
122
+ }
123
+ }
124
+ ],
125
+ "post_url": "http://staff.tumblr.com/post/22331752220/exciting-fashion-news-from-vogue-and-the",
126
+ "reblog_key": "Zijk4Y9E",
127
+ "tags": [],
128
+ "timestamp": 1336072260,
129
+ "type": "photo"
130
+ },
131
+ {
132
+ "blog_name": "staff",
133
+ "caption": "<p>If you&#8217;re a fan of <a href=\"https://play.google.com/store/apps/details?id=com.tumblr\">Tumblr&#8217;s recently updated Android app</a>, consider the wisdom of Tumblr\u2019s own Android expert <a href=\"http://haseman.tumblr.com/\" title=\"small screens\">Chris Haseman</a>. He recently released his second book, <em><strong>Creating Android Applications: Develop and Design</strong></em>. Available for <a href=\"http://amazon.com/dp/B006OJ2M48\" title=\"Amazon.com: Creating Android Applications: Develop and Design eBook: Chris Haseman: Kindle Store\">Kindle download</a> and <a href=\"http://amazon.com/dp/032178409X\" title=\"Amazon.com: Creating Android Applications: Develop and Design (9780321784094): Chris Haseman: Books\">paperback purchase</a> via Amazon, Chris shows you how to use the powerful set of Android tools to begin creating the next generation of Android applications.</p>\n<p>\u201cI wrote the book because learning Android is hard in a few ways,&#8221; he says. &#8220;Doing a bunch of searches on how to write an Android application gives you information without knowledge.&#8221;</p>\n<p><em>Creating Android Applications</em> provides a complete introduction to developing for Google\u2019s mobile OS, offering tons of insights and hard-earned advice. After a tour of how to install and configure the Android SDK and Eclipse IDE, you jump right in to build your first Android project.</p>\n<p>\u201cAndroid has several traps for beginners all of which I\u2019ve fallen into. The book, in a way, is my best attempt to help new people avoid them,\u201d Chris says. \u201cPlus, I\u2019ve always wanted to dedicate a book to my wife, and this seemed like the shortest path to get there.\u201d</p>",
134
+ "date": "2012-05-02 19:16:11 GMT",
135
+ "format": "html",
136
+ "highlighted": [],
137
+ "id": 22267249610,
138
+ "note_count": 897,
139
+ "photos": [
140
+ {
141
+ "alt_sizes": [
142
+ {
143
+ "height": 939,
144
+ "url": "http://28.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_1280.jpg",
145
+ "width": 1280
146
+ },
147
+ {
148
+ "height": 367,
149
+ "url": "http://27.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_500.jpg",
150
+ "width": 500
151
+ },
152
+ {
153
+ "height": 293,
154
+ "url": "http://28.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_400.jpg",
155
+ "width": 400
156
+ },
157
+ {
158
+ "height": 183,
159
+ "url": "http://27.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_250.jpg",
160
+ "width": 250
161
+ },
162
+ {
163
+ "height": 73,
164
+ "url": "http://24.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_100.jpg",
165
+ "width": 100
166
+ },
167
+ {
168
+ "height": 75,
169
+ "url": "http://26.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_75sq.jpg",
170
+ "width": 75
171
+ }
172
+ ],
173
+ "caption": "",
174
+ "original_size": {
175
+ "height": 939,
176
+ "url": "http://28.media.tumblr.com/tumblr_lxygp3sDzp1qz8q0ho1_r1_1280.jpg",
177
+ "width": 1280
178
+ }
179
+ }
180
+ ],
181
+ "post_url": "http://staff.tumblr.com/post/22267249610/if-youre-a-fan-of-tumblrs-recently-updated",
182
+ "reblog_key": "yoeVhqox",
183
+ "tags": [],
184
+ "timestamp": 1335986171,
185
+ "type": "photo"
186
+ },
187
+ {
188
+ "blog_name": "staff",
189
+ "caption": "<p><strong>Name</strong> <a href=\"http://undergroundnewyorkpubliclibrary.com/\" title=\"Underground New York Public Library\">The Underground New York Public Library</a><br/><strong>Location</strong> NYC<br/><strong>First post</strong> December 2011</p>\n\n<p><em>The Underground New York Public Library</em> is a visual library featuring the plentiful and diverse reading-riders of New York City&#8217;s subways. Beneath the streets, photographer Ourit Ben-Haim takes candid shots of commuters with their books and posts them with the book titles and other commentary. Weekly features include a Sunday bible-reader, a Friday e-book reader, and mystery titles that are solved by the Tumblr community.</p>\n\n<p><em>Also check out\u2026</em></p>\n\n<p><strong><a href=\"http://pixelmetal.tumblr.com/\" title=\"FULLMETALPIXEL! v0.61\">FULLMETALPIXEL!</a></strong><br/>\nDevelopment blog for <em>Full Metal Pixel</em>, a game created by <a href=\"http://nickwillcutyou.tumblr.com/\" title=\"Nick Will Cut You.\">this guy</a>.</p>\n\n<p><strong><a href=\"http://penlive.tumblr.com/\" title=\"\">PenLive</a></strong><br/>\nThe <a href=\"http://penamerican.tumblr.com/\" title=\"PEN American Center\">Pen American Center</a> is liveblogging its annual <a href=\"http://www.pen.org/page.php/prmID/1096\" title=\"PEN American Center - PEN World Voices\">World Voices Festival of International Literature</a>. Hear from authors like Salman Rushdie, Tony Kushner, Jennifer Egan, Margaret Atwood, Colson Whitehead and many more.</p>\n\n<p><strong>Tonight: <a href=\"http://meetups.tumblr.com/post/21849282322/i-love-charts-is-having-an-official-tumblr-meetup\" title=\"Tumblr Meetups\">I Love Charts Book Launch and NYC Tumblr Meetup</a></strong><br/>\nCelebrate Tumblr&#8217;s own <a href=\"http://ilovecharts.tumblr.com/\" title=\"I Love Charts\">I Love Charts</a> book launch with a special Tumblr Meetup 6-11pm at <a href=\"http://hotel-americano.com/\" title=\"H\u00f4tel Americano | H\u00f4tel Americano is Grupo Habita\u2019s newly opened and first boutique hotel in New York City.\">H\u00f4tel Americano</a>.</p>",
190
+ "date": "2012-05-01 17:29:27 GMT",
191
+ "format": "markdown",
192
+ "highlighted": [],
193
+ "id": 22200585499,
194
+ "link_url": "http://undergroundnewyorkpubliclibrary.com/",
195
+ "note_count": 2041,
196
+ "photos": [
197
+ {
198
+ "alt_sizes": [
199
+ {
200
+ "height": 640,
201
+ "url": "http://25.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_1280.png",
202
+ "width": 960
203
+ },
204
+ {
205
+ "height": 333,
206
+ "url": "http://30.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_500.png",
207
+ "width": 500
208
+ },
209
+ {
210
+ "height": 267,
211
+ "url": "http://26.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_400.png",
212
+ "width": 400
213
+ },
214
+ {
215
+ "height": 167,
216
+ "url": "http://28.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_250.png",
217
+ "width": 250
218
+ },
219
+ {
220
+ "height": 67,
221
+ "url": "http://25.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_100.png",
222
+ "width": 100
223
+ },
224
+ {
225
+ "height": 75,
226
+ "url": "http://27.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_75sq.png",
227
+ "width": 75
228
+ }
229
+ ],
230
+ "caption": "",
231
+ "original_size": {
232
+ "height": 640,
233
+ "url": "http://25.media.tumblr.com/tumblr_m3crgu2WK91qz8q0ho1_r1_1280.png",
234
+ "width": 960
235
+ }
236
+ }
237
+ ],
238
+ "post_url": "http://staff.tumblr.com/post/22200585499/name-the-underground-new-york-public-library",
239
+ "reblog_key": "CChT9J5p",
240
+ "tags": [
241
+ "Tumblr Tuesday"
242
+ ],
243
+ "timestamp": 1335893367,
244
+ "type": "photo"
245
+ },
246
+ {
247
+ "blog_name": "staff",
248
+ "caption": "<p><strong>Ol\u00e1</strong>! Today we\u2019re launching <a href=\"http://equipebrasil.tumblr.com/\">Tumblr\u2019s official Brazilian Staff Blog</a> while we finish polishing our upcoming Brazilian Portuguese localization. We haven\u2019t forgotten our users in Portugal, either \u2014 <a href=\"http://equipaportugal.tumblr.com/\">Tumblr\u2019s official Portuguese Staff Blog</a> also just launched, and we\u2019ve got a European Portuguese version of our interface on the way too. Em breve teremos mais novidades! / Fiquem atentos \u00e0s pr\u00f3ximas novidades!</p>\n<p>(Photo: <a href=\"http://joshuanguyen.tumblr.com\">Josh</a>)</p>",
249
+ "date": "2012-04-30 20:50:00 GMT",
250
+ "format": "html",
251
+ "highlighted": [],
252
+ "id": 22141850063,
253
+ "note_count": 3979,
254
+ "photos": [
255
+ {
256
+ "alt_sizes": [
257
+ {
258
+ "height": 426,
259
+ "url": "http://29.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_1280.jpg",
260
+ "width": 640
261
+ },
262
+ {
263
+ "height": 333,
264
+ "url": "http://24.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_500.jpg",
265
+ "width": 500
266
+ },
267
+ {
268
+ "height": 266,
269
+ "url": "http://25.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_400.jpg",
270
+ "width": 400
271
+ },
272
+ {
273
+ "height": 166,
274
+ "url": "http://29.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_250.jpg",
275
+ "width": 250
276
+ },
277
+ {
278
+ "height": 67,
279
+ "url": "http://26.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_100.jpg",
280
+ "width": 100
281
+ },
282
+ {
283
+ "height": 75,
284
+ "url": "http://29.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_75sq.jpg",
285
+ "width": 75
286
+ }
287
+ ],
288
+ "caption": "",
289
+ "original_size": {
290
+ "height": 426,
291
+ "url": "http://29.media.tumblr.com/tumblr_m3au23lWls1qz8q0ho1_1280.jpg",
292
+ "width": 640
293
+ }
294
+ }
295
+ ],
296
+ "post_url": "http://staff.tumblr.com/post/22141850063/ol-today-were-launching-tumblrs-official",
297
+ "reblog_key": "rVBqgHY1",
298
+ "tags": [],
299
+ "timestamp": 1335819000,
300
+ "type": "photo"
301
+ },
302
+ {
303
+ "blog_name": "staff",
304
+ "caption": "<p><strong>Attention West Coast:</strong> Check out our <a href=\"http://www.tumblr.com/meetup/10107\">official Tumblr meetup</a> in Los Angeles on Tuesday 5/1! RSVP <a href=\"http://www.tumblr.com/meetup/10107\">here</a>.</p>",
305
+ "date": "2012-04-25 22:14:58 GMT",
306
+ "format": "html",
307
+ "highlighted": [],
308
+ "id": 21806558913,
309
+ "link_url": "http://www.tumblr.com/meetup/10107",
310
+ "note_count": 2001,
311
+ "photos": [
312
+ {
313
+ "alt_sizes": [
314
+ {
315
+ "height": 1200,
316
+ "url": "http://26.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_1280.jpg",
317
+ "width": 1000
318
+ },
319
+ {
320
+ "height": 600,
321
+ "url": "http://30.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_500.jpg",
322
+ "width": 500
323
+ },
324
+ {
325
+ "height": 480,
326
+ "url": "http://24.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_400.jpg",
327
+ "width": 400
328
+ },
329
+ {
330
+ "height": 300,
331
+ "url": "http://28.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_250.jpg",
332
+ "width": 250
333
+ },
334
+ {
335
+ "height": 120,
336
+ "url": "http://27.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_100.jpg",
337
+ "width": 100
338
+ },
339
+ {
340
+ "height": 75,
341
+ "url": "http://30.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_75sq.jpg",
342
+ "width": 75
343
+ }
344
+ ],
345
+ "caption": "",
346
+ "original_size": {
347
+ "height": 1200,
348
+ "url": "http://26.media.tumblr.com/tumblr_m3225dCHgi1qjle3so1_1280.jpg",
349
+ "width": 1000
350
+ }
351
+ }
352
+ ],
353
+ "post_url": "http://staff.tumblr.com/post/21806558913/attention-west-coast-check-out-our-official",
354
+ "reblog_key": "Pw5OgVj1",
355
+ "tags": [],
356
+ "timestamp": 1335392098,
357
+ "type": "photo"
358
+ },
359
+ {
360
+ "blog_name": "staff",
361
+ "caption": "<p><strong>Name</strong> <a href=\"http://melaphantastic.tumblr.com/\" title=\"Melaphantastic\">Melaphantastic</a><br/><strong>Location</strong> Melbourne, Australia</p>\n\n<p>Mel Roach is an illustrator and animator from Melbourne, Australia, and her Tumblr is literally bursting with exotic creatures, comics, animated GIFs, and cartoons. (You may remember seeing her <a href=\"http://melaphantastic.tumblr.com/post/14299262543/reindeer-photoset-as-promised-youll-need-to\" title=\"Reindeer photoset, as promised - Melaphantastic\">illustrated reindeer GIFs</a> that exploded across Tumblr last December.) A recent graduate of RMIT University, she uses TVPaint to animate and draws with a mini Wacom tablet. Her final film project, <a href=\"http://melaphantastic.tumblr.com/post/19660716609/great-flamboozles-its-out-i-hope-youre-all\" title=\"Great flamboozles, it\u2019s OUT! - Melaphantastic\"><em>Happy Happy Yay Yay</em></a>, is a journey through action packed rainbows, chocolate and insanity. You know, the usual!</p>\n\n<p><em>Also check out\u2026</em></p>\n\n<p><strong><a href=\"http://drawntomlb.com/\" title=\"MLB.com on Tumblr\">MLB on Tumblr</a></strong><br/>\nGet Drawn to MLB with the official Tumblr of Major League Baseball. PLUS: All 30 MLB teams now have Tumblr blogs. <a href=\"http://yankees.tumblr.com/\" title=\"Yankees Dugout Steps\">Here&#8217;s one</a>!</p>\n\n<p><strong><a href=\"http://theyuniversity.tumblr.com/\" title=\"The YUNiversity\">The YUNiversity</a></strong><br/>\nDo you want to flaunt impeccable grammar like a boss? Do you like memes? &#8220;Y U NO FOLLOW THE YUNIVERSITY?&#8221;</p>\n\n<p><strong><a href=\"http://brandspirit.tumblr.com/\" title=\"Brand Spirit\">Brand Spirit</a></strong><br/>\nEvery day for 100 days, Andrew Miller will paint a branded object white. From Tabasco sauce to McDonald&#8217;s french fries (with each fry painted white), the images are simple and compelling.</p>",
362
+ "date": "2012-04-24 18:06:45 GMT",
363
+ "format": "markdown",
364
+ "highlighted": [],
365
+ "id": 21723785252,
366
+ "link_url": "http://melaphantastic.tumblr.com/",
367
+ "note_count": 1491,
368
+ "photos": [
369
+ {
370
+ "alt_sizes": [
371
+ {
372
+ "height": 237,
373
+ "url": "http://26.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_500.png",
374
+ "width": 500
375
+ },
376
+ {
377
+ "height": 190,
378
+ "url": "http://25.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_400.png",
379
+ "width": 400
380
+ },
381
+ {
382
+ "height": 119,
383
+ "url": "http://26.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_250.png",
384
+ "width": 250
385
+ },
386
+ {
387
+ "height": 47,
388
+ "url": "http://29.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_100.png",
389
+ "width": 100
390
+ },
391
+ {
392
+ "height": 75,
393
+ "url": "http://25.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_75sq.png",
394
+ "width": 75
395
+ }
396
+ ],
397
+ "caption": "",
398
+ "original_size": {
399
+ "height": 237,
400
+ "url": "http://26.media.tumblr.com/tumblr_m2zvqrcgLk1qz8q0ho1_500.png",
401
+ "width": 500
402
+ }
403
+ }
404
+ ],
405
+ "post_url": "http://staff.tumblr.com/post/21723785252/name-melaphantastic-location-melbourne",
406
+ "reblog_key": "Dc3uBwuJ",
407
+ "tags": [
408
+ "Tumblr Tuesday"
409
+ ],
410
+ "timestamp": 1335290805,
411
+ "type": "photo"
412
+ },
413
+ {
414
+ "blog_name": "staff",
415
+ "caption": "<p><strong>A gift for New York verse enthusiasts:</strong> Tumblr and <a href=\"http://aaknopf.tumblr.com/\">Knopf Books</a> are sponsoring &#8220;<a href=\"http://www.housingworks.org/events/detail/knopf-and-tumblr-celebrate-poetry-with-philip-levine-and-tracy-k.-smith\">A Celebration of Poetry</a>&#8221; at <a href=\"http://housingworksbookstore.tumblr.com\">Housing Works Bookstore Cafe</a> on Monday, April 23. Featured readers include Poet Laureate Philip Levine, 2012 Pulitzer Prize winner Tracy K. Smith, and two poets from the Tumblr community, namely <a href=\"http://theferocity.tumblr.com/\">Saeed Jones</a> and <a href=\"http://astronautssleepinspace.tumblr.com/\">Karolina Manko</a>. The event is open to the public and starts at 7pm. Meanwhile, check out <a href=\"http://celebratepoetry.tumblr.com/\">more poetry on Tumblr</a>.</p>",
416
+ "date": "2012-04-19 18:50:00 GMT",
417
+ "format": "html",
418
+ "highlighted": [],
419
+ "id": 21389916739,
420
+ "link_url": "http://www.housingworks.org/events/detail/knopf-and-tumblr-celebrate-poetry-with-philip-levine-and-tracy-k.-smith",
421
+ "note_count": 452,
422
+ "photos": [
423
+ {
424
+ "alt_sizes": [
425
+ {
426
+ "height": 600,
427
+ "url": "http://27.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_500.jpg",
428
+ "width": 500
429
+ },
430
+ {
431
+ "height": 480,
432
+ "url": "http://30.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_400.jpg",
433
+ "width": 400
434
+ },
435
+ {
436
+ "height": 300,
437
+ "url": "http://30.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_250.jpg",
438
+ "width": 250
439
+ },
440
+ {
441
+ "height": 120,
442
+ "url": "http://29.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_100.jpg",
443
+ "width": 100
444
+ },
445
+ {
446
+ "height": 75,
447
+ "url": "http://28.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_75sq.jpg",
448
+ "width": 75
449
+ }
450
+ ],
451
+ "caption": "",
452
+ "original_size": {
453
+ "height": 600,
454
+ "url": "http://27.media.tumblr.com/tumblr_m2qnzpGKpN1qz8q0ho1_500.jpg",
455
+ "width": 500
456
+ }
457
+ }
458
+ ],
459
+ "post_url": "http://staff.tumblr.com/post/21389916739/a-gift-for-new-york-verse-enthusiasts-tumblr-and",
460
+ "reblog_key": "JV9rd3M2",
461
+ "tags": [],
462
+ "timestamp": 1334861400,
463
+ "type": "photo"
464
+ },
465
+ {
466
+ "blog_name": "staff",
467
+ "caption": "<p>In addition to this very official <a href=\"http://staff.tumblr.com\">Tumblr Staff</a> blog and our charmingly factual <a href=\"http://www.tumblr.com/about\">About</a> page, you may already be familiar with our official <a href=\"http://engineering.tumblr.com/\">Engineering</a> blog, which shines a light on technical developments of interest to the Tumblr population. Today we&#8217;re rolling out four more departmental Tumblrs showing how we live and work, as well as better communicating with the community about what we&#8217;re doing.</p>\n<p>The <a href=\"http://editorial.tumblr.com\">Editorial</a> blog previews stories and features in progress from this new and still secretive organization (have you <a href=\"http://topherchris.com/post/20782812033/how-tumblr-changed-my-life\">submitted</a> to the <a href=\"http://www.tumblr.com/tagged/storyboard\">Storyboard</a> tag yet?). The <a href=\"http://international.tumblr.com\">International</a> blog gives you a taste of our globetrotting efforts (did you know Tumblr serves nine languages, with more on the way?). The <a href=\"http://ministryofdesign.tumblr.com/\">Ministry of Design</a> represents our aesthetics corps (lately tripled in size and militancy). And the <a href=\"http://support.tumblr.com\">Support</a> blog provides a wealth of tips, insight, and advice about how our friendly little town of 50-million-plus gets on and gets along.</p>\n<p>More of these departmental Tumblrs may evolve and appear, and all should be considered works in progress &#8212; by turns serious and useful as well as creatively stimulating and amusing. Take a look and let us know what you think.</p>",
468
+ "date": "2012-04-18 16:17:00 GMT",
469
+ "format": "html",
470
+ "highlighted": [],
471
+ "id": 21328098729,
472
+ "note_count": 1251,
473
+ "photos": [
474
+ {
475
+ "alt_sizes": [
476
+ {
477
+ "height": 356,
478
+ "url": "http://28.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_500.jpg",
479
+ "width": 500
480
+ },
481
+ {
482
+ "height": 285,
483
+ "url": "http://28.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_400.jpg",
484
+ "width": 400
485
+ },
486
+ {
487
+ "height": 178,
488
+ "url": "http://30.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_250.jpg",
489
+ "width": 250
490
+ },
491
+ {
492
+ "height": 71,
493
+ "url": "http://29.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_100.jpg",
494
+ "width": 100
495
+ },
496
+ {
497
+ "height": 75,
498
+ "url": "http://30.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_75sq.jpg",
499
+ "width": 75
500
+ }
501
+ ],
502
+ "caption": "",
503
+ "original_size": {
504
+ "height": 356,
505
+ "url": "http://28.media.tumblr.com/tumblr_m2ongbvxme1qz8q0ho1_r3_500.jpg",
506
+ "width": 500
507
+ }
508
+ }
509
+ ],
510
+ "post_url": "http://staff.tumblr.com/post/21328098729/in-addition-to-this-very-official-tumblr-staff",
511
+ "reblog_key": "M4e8smzs",
512
+ "tags": [],
513
+ "timestamp": 1334765820,
514
+ "type": "photo"
515
+ },
516
+ {
517
+ "blog_name": "staff",
518
+ "caption": "<p><strong>Tumblr Tuesday: Earth Week Edition</strong></p>\n\n<p>Join me in celebrating Earth&#8217;s natural environment with these fully compostable and biodegradable Tumblr blogs! Photo of <a href=\"http://beaverbrook.com/post/18731431985/noah-kalinas-photograph-of-the-brook\" title=\"Beaver Brook, Noah Kalina\u2019s photograph of the Brook.\">Beaver Brook</a> by <a href=\"http://www.noahkalina.com/\" title=\"NOAH KALINA\">Noah Kalina</a>.</p>\n\n<p><strong><a href=\"http://climateadaptation.tumblr.com/\" title=\"Climate Adaptation\">Climate Adaptation</a></strong><br/>\nMichael Cote is an environmental expert who wants to punch climate change in the face.</p>\n\n<p><strong><a href=\"http://thegreenurbanist.tumblr.com/\" title=\"The Green Urbanist.\">The Green Urbanist</a></strong><br/>\nGreen urbanism and environmental public policy.</p>\n\n<p><strong><a href=\"http://localfoodlab.tumblr.com/\" title=\"Local Food Lab\">Local Food Lab</a></strong><br/>\nAn incubator for sustainable food and agriculture startups.</p>\n\n<p><strong><a href=\"http://fuckyeahpermaculture.tumblr.com/\" title=\"Fuck Yeah Permaculture\">Fuck Yeah Permaculture</a></strong><br/>\nWorking with nature, rather than against it, for sustainable systems.</p>\n\n<p><strong><a href=\"http://freecabinporn.com/\" title=\"Cabin Porn\">Cabin Porn</a></strong><br/>\nInspiration for your quiet place somewhere.</p>\n\n<p><strong><a href=\"http://wbotd.tumblr.com/\" title=\"Weather Boner of the Day\">Weather Boner of the Day</a></strong><br/>\nPhotos of weather. Awesome weather.</p>\n\n<p><em>Check out the <a href=\"http://www.tumblr.com/spotlight/sustainability\" title=\"Sustainability | Tumblr\">Sustainability Spotlight</a> for more!</em></p>",
519
+ "date": "2012-04-17 19:10:51 GMT",
520
+ "format": "markdown",
521
+ "highlighted": [],
522
+ "id": 21278140332,
523
+ "note_count": 3219,
524
+ "photos": [
525
+ {
526
+ "alt_sizes": [
527
+ {
528
+ "height": 237,
529
+ "url": "http://28.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_500.png",
530
+ "width": 500
531
+ },
532
+ {
533
+ "height": 190,
534
+ "url": "http://26.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_400.png",
535
+ "width": 400
536
+ },
537
+ {
538
+ "height": 119,
539
+ "url": "http://28.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_250.png",
540
+ "width": 250
541
+ },
542
+ {
543
+ "height": 47,
544
+ "url": "http://28.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_100.png",
545
+ "width": 100
546
+ },
547
+ {
548
+ "height": 75,
549
+ "url": "http://26.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_75sq.png",
550
+ "width": 75
551
+ }
552
+ ],
553
+ "caption": "",
554
+ "original_size": {
555
+ "height": 237,
556
+ "url": "http://28.media.tumblr.com/tumblr_m2myif1rac1qz8q0ho1_500.png",
557
+ "width": 500
558
+ }
559
+ }
560
+ ],
561
+ "post_url": "http://staff.tumblr.com/post/21278140332/tumblr-tuesday-earth-week-edition-join-me-in",
562
+ "reblog_key": "RKekDNav",
563
+ "tags": [
564
+ "Tumblr Tuesday"
565
+ ],
566
+ "timestamp": 1334689851,
567
+ "type": "photo"
568
+ },
569
+ {
570
+ "audio_url": "http://open.spotify.com/user/tumblrbot/playlist/52U0fVcAyHTu5D89X1NUTz",
571
+ "blog_name": "staff",
572
+ "caption": "<p><strong>Listen to this!</strong>\u00a0We just teamed up with\u00a0<a href=\"http://www.spotify.com/\">Spotify</a>\u00a0so you can post tracks, playlists, and full albums from their\u00a0<em>very</em>\u00a0extensive library. Search for tracks or paste a Spotify link to embed your music \u2014 without the daily limit. :)</p>\n<p>To celebrate, we\u2019ve put together this playlist featuring musicians from the\u00a0<a href=\"http://www.tumblr.com/spotlight/musicians\">Tumblr Spotlight</a>. Hit play and enjoy!</p>\n<p><em>Don\u2019t have Spotify yet?\u00a0<a href=\"http://www.spotify.com/se/get-spotify/overview/\">Get it here</a>!</em></p>",
573
+ "date": "2012-04-11 10:39:00 GMT",
574
+ "format": "html",
575
+ "highlighted": [],
576
+ "id": 20897991420,
577
+ "note_count": 2113,
578
+ "player": "<iframe src=\"https://embed.spotify.com/?uri=spotify:user:tumblrbot:playlist:52U0fVcAyHTu5D89X1NUTz&amp;view=coverart\" frameborder=\"0\" allowtransparency=\"true\" style=\"width:500px;height:580px;\"></iframe>",
579
+ "plays": 1239,
580
+ "post_url": "http://staff.tumblr.com/post/20897991420/listen-to-this-we-just-teamed-up-with-spotify-so",
581
+ "reblog_key": "47bvwr0x",
582
+ "source_title": "Spotify!",
583
+ "source_url": "http://open.spotify.com/user/tumblrbot/playlist/52U0fVcAyHTu5D89X1NUTz",
584
+ "tags": [],
585
+ "timestamp": 1334140740,
586
+ "type": "audio"
587
+ },
588
+ {
589
+ "blog_name": "staff",
590
+ "caption": "<p><p class=\"p1\"><strong>Attn: Android users.</strong> We\u2019re incredibly excited to announce the launch of the new Tumblr app!</p>\n<p class=\"p1\">Apart from a totally new, beautiful interface, updates include:</p>\n<ul><li>More responsive, faster-loading dashboard and blogs</li>\n<li>Better photo browsing and animated gif support when you tap an image</li>\n<li>Notifications for multiple blogs live in one place</li>\n<li>Tumblr Radar!</li>\n</ul><p class=\"p1\">If your phone isn\u2019t set to auto-update the app, be sure to download the update in the <span class=\"s1\"><a href=\"https://play.google.com/store/apps/details?id=com.tumblr\">Google Play market</a></span>.</p></p>",
591
+ "date": "2012-04-10 21:41:00 GMT",
592
+ "format": "html",
593
+ "highlighted": [],
594
+ "id": 20862286004,
595
+ "note_count": 5375,
596
+ "photos": [
597
+ {
598
+ "alt_sizes": [
599
+ {
600
+ "height": 940,
601
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_1280.jpg",
602
+ "width": 940
603
+ },
604
+ {
605
+ "height": 500,
606
+ "url": "http://24.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_500.jpg",
607
+ "width": 500
608
+ },
609
+ {
610
+ "height": 400,
611
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_400.jpg",
612
+ "width": 400
613
+ },
614
+ {
615
+ "height": 250,
616
+ "url": "http://27.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_250.jpg",
617
+ "width": 250
618
+ },
619
+ {
620
+ "height": 100,
621
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_100.jpg",
622
+ "width": 100
623
+ },
624
+ {
625
+ "height": 75,
626
+ "url": "http://30.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_75sq.jpg",
627
+ "width": 75
628
+ }
629
+ ],
630
+ "caption": "",
631
+ "original_size": {
632
+ "height": 940,
633
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o1_r1_1280.jpg",
634
+ "width": 940
635
+ }
636
+ },
637
+ {
638
+ "alt_sizes": [
639
+ {
640
+ "height": 940,
641
+ "url": "http://25.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_1280.jpg",
642
+ "width": 940
643
+ },
644
+ {
645
+ "height": 500,
646
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_500.jpg",
647
+ "width": 500
648
+ },
649
+ {
650
+ "height": 400,
651
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_400.jpg",
652
+ "width": 400
653
+ },
654
+ {
655
+ "height": 250,
656
+ "url": "http://30.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_250.jpg",
657
+ "width": 250
658
+ },
659
+ {
660
+ "height": 100,
661
+ "url": "http://30.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_100.jpg",
662
+ "width": 100
663
+ },
664
+ {
665
+ "height": 75,
666
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_75sq.jpg",
667
+ "width": 75
668
+ }
669
+ ],
670
+ "caption": "",
671
+ "original_size": {
672
+ "height": 940,
673
+ "url": "http://25.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o2_1280.jpg",
674
+ "width": 940
675
+ }
676
+ },
677
+ {
678
+ "alt_sizes": [
679
+ {
680
+ "height": 940,
681
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_1280.jpg",
682
+ "width": 940
683
+ },
684
+ {
685
+ "height": 500,
686
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_500.jpg",
687
+ "width": 500
688
+ },
689
+ {
690
+ "height": 400,
691
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_400.jpg",
692
+ "width": 400
693
+ },
694
+ {
695
+ "height": 250,
696
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_250.jpg",
697
+ "width": 250
698
+ },
699
+ {
700
+ "height": 100,
701
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_100.jpg",
702
+ "width": 100
703
+ },
704
+ {
705
+ "height": 75,
706
+ "url": "http://27.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_75sq.jpg",
707
+ "width": 75
708
+ }
709
+ ],
710
+ "caption": "",
711
+ "original_size": {
712
+ "height": 940,
713
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o3_1280.jpg",
714
+ "width": 940
715
+ }
716
+ },
717
+ {
718
+ "alt_sizes": [
719
+ {
720
+ "height": 940,
721
+ "url": "http://25.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_1280.jpg",
722
+ "width": 940
723
+ },
724
+ {
725
+ "height": 500,
726
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_500.jpg",
727
+ "width": 500
728
+ },
729
+ {
730
+ "height": 400,
731
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_400.jpg",
732
+ "width": 400
733
+ },
734
+ {
735
+ "height": 250,
736
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_250.jpg",
737
+ "width": 250
738
+ },
739
+ {
740
+ "height": 100,
741
+ "url": "http://25.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_100.jpg",
742
+ "width": 100
743
+ },
744
+ {
745
+ "height": 75,
746
+ "url": "http://30.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_75sq.jpg",
747
+ "width": 75
748
+ }
749
+ ],
750
+ "caption": "",
751
+ "original_size": {
752
+ "height": 940,
753
+ "url": "http://25.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o4_1280.jpg",
754
+ "width": 940
755
+ }
756
+ },
757
+ {
758
+ "alt_sizes": [
759
+ {
760
+ "height": 940,
761
+ "url": "http://27.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_1280.jpg",
762
+ "width": 940
763
+ },
764
+ {
765
+ "height": 500,
766
+ "url": "http://26.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_500.jpg",
767
+ "width": 500
768
+ },
769
+ {
770
+ "height": 400,
771
+ "url": "http://28.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_400.jpg",
772
+ "width": 400
773
+ },
774
+ {
775
+ "height": 250,
776
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_250.jpg",
777
+ "width": 250
778
+ },
779
+ {
780
+ "height": 100,
781
+ "url": "http://29.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_100.jpg",
782
+ "width": 100
783
+ },
784
+ {
785
+ "height": 75,
786
+ "url": "http://24.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_75sq.jpg",
787
+ "width": 75
788
+ }
789
+ ],
790
+ "caption": "",
791
+ "original_size": {
792
+ "height": 940,
793
+ "url": "http://27.media.tumblr.com/tumblr_m29uzhzYuY1ql0bk4o5_1280.jpg",
794
+ "width": 940
795
+ }
796
+ }
797
+ ],
798
+ "photoset_layout": 122,
799
+ "post_url": "http://staff.tumblr.com/post/20862286004/attn-android-users-were-incredibly-excited-to",
800
+ "reblog_key": "eu5wOGfm",
801
+ "tags": [],
802
+ "timestamp": 1334094060,
803
+ "type": "photo"
804
+ },
805
+ {
806
+ "blog_name": "staff",
807
+ "caption": "<p><strong>Name</strong> <a href=\"http://www.thepoliticalnotebook.com/\" title=\"The Political Notebook\">The Political Notebook</a><br/><strong>Location</strong> New York</p>\n\n\n\n<p>News, politics, and spunk! <em>The Political Notebook</em> is a mix of curation and global news commentary by journalist and blogger Torie Rose DeGhett. TPN covers international issues, with particular attention to South Asia, the Middle East and North Africa. Torie\u2019s primary concerns and interests are conflict, international development, gender, and social movements. She also loves Arab rap.</p>\n\n\n\n<p><em>Also check out\u2026</em></p>\n\n\n\n<p><strong><a href=\"http://galaxynextdoor.com/\" title=\"Galaxy Next Door\">Galaxy Next Door</a></strong><br/> Celebrating a passionate love of video games and gaming culture.</p>\n\n\n\n<p><strong><a href=\"http://ptrbkr.com/\" title=\"PTRBKR\">PTRBKR</a></strong><br/> Photographer Peter Baker lives in Ann Arbor, Michigan and likes everything that tastes like chicken.</p>\n\n\n\n<p><strong><a href=\"http://forceclose.tumblr.com/\" title=\"Force Close\">Force Close</a></strong><br/> Tech thoughts by Cody Sherman on Android, Google, Linux, Macs, the web, and more.</p>\n\n\n\n<p><em>Extra Extra!</em></p>\n\n\n\n<p><strong>Do you have a Tumblr story? Has Tumblr changed your life in any profound or personal ways?</strong>\u00a0<strong>What&#8217;s your dashboard mean to you?</strong> We want to know \u2014 and if you\u2019re game, your story could become part of STORYBOARD, a big secret project we\u2019re working on. Post your story (or gif! photo! or video!) with the <a href=\"http://www.tumblr.com/tagged/storyboard\" title=\"Storyboard | Tumblr\">STORYBOARD</a> tag, or if you\u2019d like to submit privately, use <a href=\"https://docs.google.com/spreadsheet/viewform?formkey=dG9BVFV5b3U2WnVaR2t2MjVQMW1Hb3c6MQ\">this form</a>.</p>",
808
+ "date": "2012-04-10 16:42:04 GMT",
809
+ "format": "markdown",
810
+ "highlighted": [],
811
+ "id": 20847289558,
812
+ "link_url": "http://www.thepoliticalnotebook.com/",
813
+ "note_count": 474,
814
+ "photos": [
815
+ {
816
+ "alt_sizes": [
817
+ {
818
+ "height": 237,
819
+ "url": "http://30.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_500.png",
820
+ "width": 500
821
+ },
822
+ {
823
+ "height": 190,
824
+ "url": "http://30.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_400.png",
825
+ "width": 400
826
+ },
827
+ {
828
+ "height": 119,
829
+ "url": "http://28.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_250.png",
830
+ "width": 250
831
+ },
832
+ {
833
+ "height": 47,
834
+ "url": "http://28.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_100.png",
835
+ "width": 100
836
+ },
837
+ {
838
+ "height": 75,
839
+ "url": "http://29.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_75sq.png",
840
+ "width": 75
841
+ }
842
+ ],
843
+ "caption": "",
844
+ "original_size": {
845
+ "height": 237,
846
+ "url": "http://30.media.tumblr.com/tumblr_m29u3kcVZy1qz8q0ho1_r1_500.png",
847
+ "width": 500
848
+ }
849
+ }
850
+ ],
851
+ "post_url": "http://staff.tumblr.com/post/20847289558/name-the-political-notebook-location-new-york",
852
+ "reblog_key": "qY0fwEXe",
853
+ "tags": [
854
+ "Tumblr Tuesday",
855
+ "Storyboard"
856
+ ],
857
+ "timestamp": 1334076124,
858
+ "type": "photo"
859
+ },
860
+ {
861
+ "blog_name": "staff",
862
+ "caption": "<p><strong>Name</strong> <a href=\"http://celebratepoetry.tumblr.com/\" title=\"A Poem-A-Day Celebration\">Celebrate Poetry</a><br/><strong>Location</strong> New York</p>\n<p>April is National Poetry Month, and <a href=\"http://aaknopf.tumblr.com/\" title=\"Alfred A. Knopf Books\">Alfred A. Knopf</a> and Tumblr are joining forces to celebrate in style. <a href=\"http://celebratepoetry.tumblr.com/\">Follow this Tumblr</a> for a stream of verse from new voices in the Tumblr community as well as established writers. <a href=\"http://celebratepoetry.tumblr.com/submit\" title=\"Celebrate Poetry With Knopf &amp; Tumblr | A Poem-A-Day Celebration\">Submit your own poems</a> for a chance to be featured, or join us at <a href=\"http://housingworksbookstore.tumblr.com/\" title=\"Housing Works Bookstore Cafe\">Housing Works Bookstore Cafe</a> on <a href=\"http://www.housingworks.org/events/detail/knopf-and-tumblr-celebrate-poetry-with-philip-levine-and-tracy-k.-smith\" title=\"Knopf and Tumblr Celebrate Poetry with Philip Levine and Tracy K. Smith Events Housing Works\">April 23rd</a> to meet up and hear readings by U.S. Poet Laureate Philip Levine and other amazing poets. And don\u2019t forget to check out the brand-new <a href=\"http://www.tumblr.com/spotlight/poetry\" title=\"Poetry | Tumblr\">Poetry Spotlight</a> for new poetry blogs to follow!</p>\n<p><em>Also check out\u2026</em></p>\n<p><a href=\"http://madewithpaper.fiftythree.com\"><strong>Made with Paper</strong></a><br/> Tumblr is the modern-day notebook. FiftyThree created Paper so you can post sketches, diagrams and more to it.</p>\n<p><strong><a href=\"http://coverjunkie.tumblr.com/\" title=\"Coverjunkie\">Coverjunkie</a></strong><br/> Celebrates creative magazine covers you wanna link and their ace designers.</p>\n<p><strong><a href=\"http://digithoughts.com/\" title=\"Digithoughts\">Digithoughts</a></strong><br/> A pile of thoughts, links, pictures, and stats on mobile, gadgets, business, the web and more.</p>",
863
+ "date": "2012-04-03 15:51:00 GMT",
864
+ "format": "html",
865
+ "highlighted": [],
866
+ "id": 20411105060,
867
+ "link_url": "http://celebratepoetry.tumblr.com/",
868
+ "note_count": 1766,
869
+ "photos": [
870
+ {
871
+ "alt_sizes": [
872
+ {
873
+ "height": 237,
874
+ "url": "http://24.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_500.png",
875
+ "width": 500
876
+ },
877
+ {
878
+ "height": 190,
879
+ "url": "http://29.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_400.png",
880
+ "width": 400
881
+ },
882
+ {
883
+ "height": 119,
884
+ "url": "http://25.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_250.png",
885
+ "width": 250
886
+ },
887
+ {
888
+ "height": 47,
889
+ "url": "http://29.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_100.png",
890
+ "width": 100
891
+ },
892
+ {
893
+ "height": 75,
894
+ "url": "http://25.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_75sq.png",
895
+ "width": 75
896
+ }
897
+ ],
898
+ "caption": "",
899
+ "original_size": {
900
+ "height": 237,
901
+ "url": "http://24.media.tumblr.com/tumblr_m1wsgznwFt1qz8q0ho1_500.png",
902
+ "width": 500
903
+ }
904
+ }
905
+ ],
906
+ "post_url": "http://staff.tumblr.com/post/20411105060/name-celebrate-poetry-location-new-york-april-is",
907
+ "reblog_key": "xGsLRLd0",
908
+ "tags": [
909
+ "Tumblr Tuesday"
910
+ ],
911
+ "timestamp": 1333468260,
912
+ "type": "photo"
913
+ },
914
+ {
915
+ "blog_name": "staff",
916
+ "caption": "<p><strong>Sharing your posts on Facebook just got a billion times better</strong>, with integration into Facebook&#8217;s Timeline, News Feed, and Ticker.</p>\n<p>New options include:</p>\n<ul><li>Toggle &#8220;<em>Send to Facebook</em>&#8221; when posting.</li>\n<li>Share <em>Replies</em> on your Facebook Timeline.</li>\n<li>Share <em>Likes</em> on your Facebook Timeline.<br/>(They even get lumped together so they&#8217;re not overwhelming!)</li>\n</ul><p>You can find the new options in your <a href=\"http://www.tumblr.com/blog_settings#facebook\">blog settings</a>. If your blog is already connected to Facebook, you&#8217;ll be automatically prompted to upgrade.</p>",
917
+ "date": "2012-04-02 19:17:00 GMT",
918
+ "format": "html",
919
+ "highlighted": [],
920
+ "id": 20360231254,
921
+ "note_count": 1164,
922
+ "photos": [
923
+ {
924
+ "alt_sizes": [
925
+ {
926
+ "height": 671,
927
+ "url": "http://30.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_500.png",
928
+ "width": 500
929
+ },
930
+ {
931
+ "height": 537,
932
+ "url": "http://28.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_400.png",
933
+ "width": 400
934
+ },
935
+ {
936
+ "height": 336,
937
+ "url": "http://28.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_250.png",
938
+ "width": 250
939
+ },
940
+ {
941
+ "height": 134,
942
+ "url": "http://30.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_100.png",
943
+ "width": 100
944
+ },
945
+ {
946
+ "height": 75,
947
+ "url": "http://24.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_75sq.png",
948
+ "width": 75
949
+ }
950
+ ],
951
+ "caption": "",
952
+ "original_size": {
953
+ "height": 671,
954
+ "url": "http://30.media.tumblr.com/tumblr_m1nh3ylO8O1qz8q0ho1_r3_500.png",
955
+ "width": 500
956
+ }
957
+ }
958
+ ],
959
+ "post_url": "http://staff.tumblr.com/post/20360231254/you-know-whats-cooler-than-a-million-times-better",
960
+ "reblog_key": "AHnsZFCM",
961
+ "tags": [
962
+ "features"
963
+ ],
964
+ "timestamp": 1333394220,
965
+ "type": "photo"
966
+ },
967
+ {
968
+ "blog_name": "staff",
969
+ "caption": "<p><strong>Name</strong> <a href=\"http://jakefogelnest.com/\" title=\"JAKE FOGELNEST\">Jake Fogelnest</a><br/><strong>Location</strong> Los Angeles (en route)</p>\n\n\n\n<p>Comedian Jake Fogelnest started a one-man public-access TV show, <em>SQUiRT TV</em>, from his New York City bedroom when he was 14 years old. Two years later, the show moved to MTV, bringing celebrity guests into his bedroom. Jake has written for VH1\u2019s <em>Best Week Ever</em> and regularly contributes to SNL\u2019s \u201cWeekend Update.\u201d He currently hosts two shows on Sirius XM radio. This week, Jake moves to Los Angeles, to pursue his dream of making it big in Los Angeles.</p>\n\n\n\n<p><em>Also check out\u2026</em></p>\n\n\n\n<p><strong><a href=\"http://screenshotsofdespair.tumblr.com/\" title=\"Screenshots of Despair\">Screenshots of Despair</a></strong><br/> Cataloguing online messages that evoke feelings of despair. <a href=\"http://screenshotsofdespair.tumblr.com/submit/photo\" title=\"Screenshots of Despair | Submit\">Submit</a> your own!</p>\n\n\n\n<p><strong><a href=\"http://bbcspiritofschubert.tumblr.com/\" title=\"The Spirit of Schubert\">The Spirit of Schubert</a></strong><br/> A collection and reflection of everything Schubert, to accompany <em>Spirit of Schubert</em> on <a href=\"http://www.bbc.co.uk/radio3/\" title=\"BBC - Radio 3 - Home\">BBC Radio 3</a>.</p>\n\n\n\n<p><strong><a href=\"http://aiweiweineversorry.tumblr.com/\" title=\"Ai Weiwei: Never Sorry\">Ai Weiwei: Never Sorry</a></strong><br/> The inside story of Ai Weiwei, a dissident for the digital age who inspires global audiences and blurs the boundaries of art and politics.</p>",
970
+ "date": "2012-03-27 15:37:47 GMT",
971
+ "format": "markdown",
972
+ "highlighted": [],
973
+ "id": 20010473690,
974
+ "link_url": "http://jakefogelnest.com/",
975
+ "note_count": 2982,
976
+ "photos": [
977
+ {
978
+ "alt_sizes": [
979
+ {
980
+ "height": 237,
981
+ "url": "http://30.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_500.png",
982
+ "width": 500
983
+ },
984
+ {
985
+ "height": 190,
986
+ "url": "http://27.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_400.png",
987
+ "width": 400
988
+ },
989
+ {
990
+ "height": 119,
991
+ "url": "http://24.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_250.png",
992
+ "width": 250
993
+ },
994
+ {
995
+ "height": 47,
996
+ "url": "http://30.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_100.png",
997
+ "width": 100
998
+ },
999
+ {
1000
+ "height": 75,
1001
+ "url": "http://26.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_75sq.png",
1002
+ "width": 75
1003
+ }
1004
+ ],
1005
+ "caption": "",
1006
+ "original_size": {
1007
+ "height": 237,
1008
+ "url": "http://30.media.tumblr.com/tumblr_m1jukajKSW1qz8q0ho1_r1_500.png",
1009
+ "width": 500
1010
+ }
1011
+ }
1012
+ ],
1013
+ "post_url": "http://staff.tumblr.com/post/20010473690/name-jake-fogelnest-location-los-angeles-en",
1014
+ "reblog_key": "pvOpxJZl",
1015
+ "tags": [
1016
+ "Tumblr Tuesday"
1017
+ ],
1018
+ "timestamp": 1332862667,
1019
+ "type": "photo"
1020
+ },
1021
+ {
1022
+ "blog_name": "staff",
1023
+ "body": "<p>Three weeks ago we posted a preview of our new <a href=\"http://www.tumblr.com/policy/drafts/terms_of_service\">Terms of Service</a>, <a href=\"http://www.tumblr.com/policy/drafts/privacy_policy\">Privacy Policy</a>, and <a href=\"http://www.tumblr.com/policy/drafts/community_guidelines\">Community Guidelines</a> to get your feedback.</p>\n<p>We&#8217;ve been delighted to read all of the thoughtful feedback you&#8217;ve sent to <a href=\"mailto:policy@tumblr.com\">our policy team</a>, and have hopefully answered every single email. Please let us know if we missed you.</p>\n<p>Based on all your notes, we&#8217;ve made a few tweaks to the upcoming policies. Here&#8217;s a short summary of the changes:</p>\n<ul><li>We&#8217;ve clarified that our policy against &#8220;tag spam&#8221; doesn&#8217;t apply to creative and meaningful uses of tags. You should tag your posts with any useful tag you can think of and feel free to use them for punchlines. #britneyspears</li>\n<li>We&#8217;ve overhauled our policy on contests, sweepstakes, and giveaways, making it <a href=\"http://www.tumblr.com/policy/en/contest_guidelines\">a separate policy</a> that is, we hope, easier to understand.</li>\n</ul><p>You can review every change to the policies, letter for letter, on <a href=\"https://github.com/tumblr/policy/\">GitHub</a>.</p>\n<p>Finally, we strive to apply all our policies fairly. When there&#8217;s a concern that a user is violating a policy, our team will evaluate the situation carefully before taking appropriate action. Accounts are only suspended in cases where a violation is particularly severe or where warnings have been ignored.</p>\n<p>Thanks again to everyone who took the time to write in. We&#8217;ll be rolling out the updated terms and policies later today.</p>",
1024
+ "date": "2012-03-23 16:06:40 GMT",
1025
+ "format": "html",
1026
+ "highlighted": [],
1027
+ "id": 19785116691,
1028
+ "note_count": 1223,
1029
+ "post_url": "http://staff.tumblr.com/post/19785116691/policy-update",
1030
+ "reblog_key": "NUA6s8jV",
1031
+ "tags": [],
1032
+ "timestamp": 1332518800,
1033
+ "title": null,
1034
+ "type": "text"
1035
+ },
1036
+ {
1037
+ "blog_name": "staff",
1038
+ "caption": "<p>Tumblr cocktails at NYC Mandarin Oriental!</p>",
1039
+ "date": "2012-03-20 19:43:31 GMT",
1040
+ "format": "html",
1041
+ "highlighted": [],
1042
+ "id": 19636959143,
1043
+ "note_count": 13517,
1044
+ "photos": [
1045
+ {
1046
+ "alt_sizes": [
1047
+ {
1048
+ "height": 1024,
1049
+ "url": "http://29.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_1280.png",
1050
+ "width": 765
1051
+ },
1052
+ {
1053
+ "height": 669,
1054
+ "url": "http://27.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_500.png",
1055
+ "width": 500
1056
+ },
1057
+ {
1058
+ "height": 535,
1059
+ "url": "http://26.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_400.png",
1060
+ "width": 400
1061
+ },
1062
+ {
1063
+ "height": 335,
1064
+ "url": "http://29.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_250.png",
1065
+ "width": 250
1066
+ },
1067
+ {
1068
+ "height": 134,
1069
+ "url": "http://28.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_100.png",
1070
+ "width": 100
1071
+ },
1072
+ {
1073
+ "height": 75,
1074
+ "url": "http://26.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_75sq.png",
1075
+ "width": 75
1076
+ }
1077
+ ],
1078
+ "caption": "",
1079
+ "original_size": {
1080
+ "height": 1024,
1081
+ "url": "http://29.media.tumblr.com/tumblr_m15st43Uqy1qzaor3o1_1280.png",
1082
+ "width": 765
1083
+ }
1084
+ }
1085
+ ],
1086
+ "post_url": "http://staff.tumblr.com/post/19636959143/tumblr-cocktails",
1087
+ "reblog_key": "mjnTl6eo",
1088
+ "tags": [],
1089
+ "timestamp": 1332272611,
1090
+ "type": "photo"
1091
+ },
1092
+ {
1093
+ "blog_name": "staff",
1094
+ "caption": "<p><strong>Name</strong> <a href=\"http://america-underwater.tumblr.com/\" title=\"America Underwater\">America Underwater</a><br/><strong>Location</strong> Washington, DC</p>\n\n\n\n<p>An estimated 11 million American families currently owe more than their homes are worth. A joint project of <em>Rebuild the Dream</em> and <em>The New Bottom Line</em>, America Underwater shares how these families&#8217; dreams are drowning in debt. \u201cIf mortgages were reduced to their fair market value\u2014what our homes were worth before the bank-caused recession\u2014we could reset the housing market, reign in unemployment, and put money back into people\u2019s pockets,\u201d reads their <a href=\"http://www.actionhub.org/underwater/#title_about\" title=\"America Underwater\">mission statement</a>.</p>\n\n\n\n<p><em>Also check out\u2026</em></p>\n\n\n\n<p><strong><a href=\"http://ladypreneurs.tumblr.com/\" title=\"Ladypreneurs: Women Winning at Work\">Ladypreneurs: Women Winning at Work</a></strong><br/> Inspired by creative, entrepreneurial, kick ass women, <a href=\"http://willotoons.com/about\" title=\"About | WilloToons\">Willo O\u2019Brien</a> aims to inspire and support more women to speak up, stand tall, and do their part to change the game.</p>\n\n\n\n<p><strong><a href=\"http://hipsterbranding.tumblr.com/\" title=\"Hipster Branding\">Hipster Branding</a></strong><br/> Holding up a mirror to the artsy community.</p>\n\n\n\n<p><strong><a href=\"http://onetinyhand.com/\" title=\"one tiny hand\">One Tiny Hand</a></strong><br/> One tiny step for hands, one giant leap for mankind.</p>",
1095
+ "date": "2012-03-20 15:54:37 GMT",
1096
+ "format": "markdown",
1097
+ "highlighted": [],
1098
+ "id": 19628787671,
1099
+ "link_url": "http://america-underwater.tumblr.com/",
1100
+ "note_count": 1609,
1101
+ "photos": [
1102
+ {
1103
+ "alt_sizes": [
1104
+ {
1105
+ "height": 237,
1106
+ "url": "http://28.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_500.png",
1107
+ "width": 500
1108
+ },
1109
+ {
1110
+ "height": 190,
1111
+ "url": "http://30.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_400.png",
1112
+ "width": 400
1113
+ },
1114
+ {
1115
+ "height": 119,
1116
+ "url": "http://28.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_250.png",
1117
+ "width": 250
1118
+ },
1119
+ {
1120
+ "height": 47,
1121
+ "url": "http://25.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_100.png",
1122
+ "width": 100
1123
+ },
1124
+ {
1125
+ "height": 75,
1126
+ "url": "http://29.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_75sq.png",
1127
+ "width": 75
1128
+ }
1129
+ ],
1130
+ "caption": "",
1131
+ "original_size": {
1132
+ "height": 237,
1133
+ "url": "http://28.media.tumblr.com/tumblr_m16vhep2Hj1qz8q0ho1_500.png",
1134
+ "width": 500
1135
+ }
1136
+ }
1137
+ ],
1138
+ "post_url": "http://staff.tumblr.com/post/19628787671/name-america-underwater-location-washington",
1139
+ "reblog_key": "fukmMDAC",
1140
+ "tags": [
1141
+ "Tumblr Tuesday"
1142
+ ],
1143
+ "timestamp": 1332258877,
1144
+ "type": "photo"
1145
+ },
1146
+ {
1147
+ "blog_name": "staff",
1148
+ "caption": "<p><strong>Name</strong> <a href=\"http://slaughterhouse90210.tumblr.com/\">Slaughterhouse 90210</a><br/><strong>Location</strong> New York</p>\n\n<p>One of the most popular book-related blogs on Tumblr, <em>Slaughterhouse 90210</em> is a perfect marriage of high and low culture. Editor Maris Kreizman pairs screencaps from beloved (and reviled) television shows with befittingly suited quotes from literature. It&#8217;s where Kurt Vonnegut meets Brenda Walsh, Oscar Wilde meets Arrested Development, and Snooki meets Somerset Maugham. This classic Tumblr celebrates its three-year anniversary this week.</p>\n\n<p><em>Also check out&#8230;</em></p>\n\n<p><a href=\"http://ryanselvy.com/\"><strong>Ryan Selvy</strong></a><br/>\nAt only 19, this prolific comic artist makes us think about life. And giggle.</p>\n\n<p><a href=\"http://poetrysociety.tumblr.com/\"><strong>Poetry Society of America</strong></a><br/>\nThe nation&#8217;s oldest poetry organization helps promote the artform through vintage photos and comtemporary commentary.</p>\n\n<p><a href=\"http://thetrevorproject.tumblr.com/\"><strong>The Trevor Project</strong></a><br/>\nProvides suicide prevention services to LGBTQ youth, plus great quotes, images, and videos about being yourself and loving it.</p>",
1149
+ "date": "2012-03-13 16:44:00 GMT",
1150
+ "format": "markdown",
1151
+ "highlighted": [],
1152
+ "id": 19239464338,
1153
+ "link_url": "http://slaughterhouse90210.tumblr.com/",
1154
+ "note_count": 4037,
1155
+ "photos": [
1156
+ {
1157
+ "alt_sizes": [
1158
+ {
1159
+ "height": 237,
1160
+ "url": "http://28.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_500.png",
1161
+ "width": 500
1162
+ },
1163
+ {
1164
+ "height": 190,
1165
+ "url": "http://30.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_400.png",
1166
+ "width": 400
1167
+ },
1168
+ {
1169
+ "height": 119,
1170
+ "url": "http://27.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_250.png",
1171
+ "width": 250
1172
+ },
1173
+ {
1174
+ "height": 47,
1175
+ "url": "http://25.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_100.png",
1176
+ "width": 100
1177
+ },
1178
+ {
1179
+ "height": 75,
1180
+ "url": "http://24.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_75sq.png",
1181
+ "width": 75
1182
+ }
1183
+ ],
1184
+ "caption": "",
1185
+ "original_size": {
1186
+ "height": 237,
1187
+ "url": "http://28.media.tumblr.com/tumblr_m0u0oiYDUb1qz8q0ho1_500.png",
1188
+ "width": 500
1189
+ }
1190
+ }
1191
+ ],
1192
+ "post_url": "http://staff.tumblr.com/post/19239464338/name-slaughterhouse-90210-location-new-york-one",
1193
+ "reblog_key": "xo1MmdEO",
1194
+ "tags": [
1195
+ "Tumblr Tuesday"
1196
+ ],
1197
+ "timestamp": 1331657040,
1198
+ "type": "photo"
1199
+ }
1200
+ ],
1201
+ "total_posts": 566
1202
+ }
1203
+ }