feedparser 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b0031bf3d0abfaab137935e8710a87818fac65a3
4
- data.tar.gz: 7ec20cb416f5127e869dad64fc1f3026657371e4
3
+ metadata.gz: b6333596837d069834ffd82fe303bc4d11eea956
4
+ data.tar.gz: 8d53dd07e144f4d0c87a1c02373df25826514579
5
5
  SHA512:
6
- metadata.gz: b5c4714270bf2d81bfd1cde0ff048f2fa6ca1d704f6c4e3380951cf336ce361706a36b67624b1e437cbd95bb1174e74ffe71905d58693719235746cd86e93c84
7
- data.tar.gz: dfdbee7200cd8d2cdd5cbdfaa283ce781d218924fe12a6afddce4a0b7968f8c89e8e0555e3b099d415e82e76bf2d2a5690d3906659c3449614e3309891f090f0
6
+ metadata.gz: 119e6107807ae4c7781379d2e04e255d9906fafef5bbf44a57557a4bfc02fb64f647bce77e9cbad3e7546da5a852775db96ee11e4fb51be7936cf02b03d82463
7
+ data.tar.gz: fac5a2f23e61173b65b0d52711651b02b4d5d7585a52eed12416acc96256167468fa92b31b837888e1e1d09cec347ce1554be56c9078958711e2f246aaeec57f
data/Manifest.txt CHANGED
@@ -1,29 +1,40 @@
1
- HISTORY.md
2
- Manifest.txt
3
- README.md
4
- Rakefile
5
- lib/feedparser.rb
6
- lib/feedparser/builder/atom.rb
7
- lib/feedparser/builder/json.rb
8
- lib/feedparser/builder/rss.rb
9
- lib/feedparser/feed.rb
10
- lib/feedparser/item.rb
11
- lib/feedparser/parser.rb
12
- lib/feedparser/version.rb
13
- test/feeds/byparker.json
14
- test/feeds/googlegroups.atom
15
- test/feeds/googlegroups2.atom
16
- test/feeds/headius.atom
17
- test/feeds/jsonfeed.json
18
- test/feeds/lambdatheultimate.rss2
19
- test/feeds/railstutorial.atom
20
- test/feeds/rubyflow.rss2
21
- test/feeds/rubymine.rss2
22
- test/feeds/rubyonrails.atom
23
- test/feeds/sitepoint.rss2
24
- test/helper.rb
25
- test/test_atom.rb
26
- test/test_atom_live.rb
27
- test/test_json.rb
28
- test/test_rss.rb
29
- test/test_rss_live.rb
1
+ HISTORY.md
2
+ Manifest.txt
3
+ README.md
4
+ Rakefile
5
+ lib/feedparser.rb
6
+ lib/feedparser/builder/atom.rb
7
+ lib/feedparser/builder/json.rb
8
+ lib/feedparser/builder/rss.rb
9
+ lib/feedparser/feed.rb
10
+ lib/feedparser/item.rb
11
+ lib/feedparser/parser.rb
12
+ lib/feedparser/version.rb
13
+ test/feeds/byparker.json
14
+ test/feeds/daringfireball.atom
15
+ test/feeds/daringfireball.json
16
+ test/feeds/googlegroups.atom
17
+ test/feeds/googlegroups2.atom
18
+ test/feeds/headius.atom
19
+ test/feeds/inessential.json
20
+ test/feeds/intertwingly.atom
21
+ test/feeds/jsonfeed.json
22
+ test/feeds/lambdatheultimate.rss2
23
+ test/feeds/learnenough.atom
24
+ test/feeds/railstutorial.atom
25
+ test/feeds/rubyflow.rss2
26
+ test/feeds/rubymine.rss2
27
+ test/feeds/rubyonrails.atom
28
+ test/feeds/sitepoint.rss2
29
+ test/feeds/spec/json/example.json
30
+ test/feeds/spec/json/microblog.json
31
+ test/feeds/xkcd.atom
32
+ test/feeds/xkcd.rss2
33
+ test/helper.rb
34
+ test/test_atom.rb
35
+ test/test_atom_live.rb
36
+ test/test_dates.rb
37
+ test/test_feeds.rb
38
+ test/test_json.rb
39
+ test/test_rss.rb
40
+ test/test_rss_live.rb
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # feedparser
2
2
 
3
- feedparser gem - web feed parser and normalizer (Atom, RSS 2.0, etc.)
3
+ feedparser gem - web feed parser and normalizer (Atom, RSS 2.0, JSON, etc.)
4
4
 
5
5
  * home :: [github.com/feedparser/feedparser](https://github.com/feedparser/feedparser)
6
6
  * bugs :: [github.com/feedparser/feedparser/issues](https://github.com/feedparser/feedparser/issues)
@@ -9,6 +9,11 @@ feedparser gem - web feed parser and normalizer (Atom, RSS 2.0, etc.)
9
9
  * forum :: [groups.google.com/group/wwwmake](http://groups.google.com/group/wwwmake)
10
10
 
11
11
 
12
+ ## What's News?
13
+
14
+ May/2017: Added support for reading feeds in the new [JSON Feed](https://jsonfeed.org) format in - surprise, surprise - JSON.
15
+
16
+
12
17
  ## Usage
13
18
 
14
19
  ### Structs
@@ -29,10 +34,10 @@ Note: The Feed parser will remove all html tags and attributes from the title (R
29
34
  description (RSS 2.0) and subtitle (Atom) content and will unescape HTML entities e.g. `&` becomes & and so on - always
30
35
  resulting in plain vanilla text.
31
36
 
32
- | Feed Struct | RSS 2.0 | Notes | Atom | Notes |
33
- | ------------------ | ----------------- | ------------------- | ------------- | ------------------- |
34
- | `feed.title` | `title` | plain vanilla text | `title` | plain vanilla text |
35
- | `feed.summary` | `description` | plain vanilla text | `subtitle`? | plain vanilla text |
37
+ | Feed Struct | RSS 2.0 | Notes | Atom | Notes | JSON | Notes |
38
+ | ------------------ | ----------------- | ----------- | ------------- | ----------- | --------------- | ----------- |
39
+ | `feed.title` | `title` | plain text | `title` | plain text | `title` | plain text |
40
+ | `feed.summary` | `description` | plain text | `subtitle`? | plain text | `description`? | plain text |
36
41
 
37
42
 
38
43
  **Dates**
@@ -84,13 +89,18 @@ in a description element; however, best practice is using the content "module" f
84
89
  If there's no content module present the feed parser will "clone" the description and use one version for `item.summary` and
85
90
  the clone for `item.content`.
86
91
 
92
+ Note: In JSON Feed the title is not required (that is, is optional). The idea is to support "modern" micro blog postings (tweets, toots, etc.) that have no titles. The JSON Feed supports `content_html` and/or `content_text`. At least one version must be present.
93
+
94
+ <!-- todo: update JSON Feed comments - add support for content_text - now just uses content_html - why? why not??
95
+ -->
96
+
87
97
  Note: The content element will assume html content.
88
98
 
89
- | Feed Struct | RSS 2.0 | Notes | Atom | Notes |
90
- | ------------------ | ----------------- | ------------------- | ------------- | ------------------- |
91
- | `item.title` | `title` | plain vanilla text | `title` | plain vanilla text |
92
- | `item.summary` | `description` | plain vanilla text | `summary`? | plain vanilla text |
93
- | `item.content` | `content`? | html | `content`? | html |
99
+ | Feed Struct | RSS 2.0 | Notes | Atom | Notes | JSON | Notes |
100
+ | ------------------ | ----------------- | ----------- | ------------- | ----------- | ----------------- | ----------- |
101
+ | `item.title` | `title` | plain text | `title` | plain text | `title`? | plain text |
102
+ | `item.summary` | `description` | plain text | `summary`? | plain text | -tbd- | |
103
+ | `item.content` | `content`? | html | `content`? | html | `content_html (*)`| html |
94
104
 
95
105
 
96
106
  **Dates**
@@ -126,9 +136,19 @@ end
126
136
  require 'open-uri'
127
137
  require 'feedparser'
128
138
 
129
- xml = open( 'http://openfootball.github.io/atom.xml' ).read
139
+ txt = open( 'http://openfootball.github.io/atom.xml' ).read
140
+
141
+ feed = FeedParser::Parser.parse( txt )
142
+ pp feed
143
+ ```
144
+
145
+ or reading a feed in the new [JSON Feed](https://jsonfeed.org) format in - surprise, surprise - JSON;
146
+ note: nothing changes :-)
147
+
148
+ ```
149
+ txt = open( 'https://jsonfeed.org/feed.json' ).read
130
150
 
131
- feed = FeedParser::Parser.parse( xml )
151
+ feed = FeedParser::Parser.parse( txt )
132
152
  pp feed
133
153
  ```
134
154
 
data/Rakefile CHANGED
@@ -5,13 +5,13 @@ Hoe.spec 'feedparser' do
5
5
 
6
6
  self.version = FeedParser::VERSION
7
7
 
8
- self.summary = 'feedparser - web feed parser and normalizer (RSS 2.0, Atom, etc.)'
8
+ self.summary = 'feedparser - web feed parser and normalizer (RSS 2.0, Atom, JSON, etc.)'
9
9
  self.description = summary
10
10
 
11
- self.urls = ['https://github.com/feedreader/feed.parser']
11
+ self.urls = ['https://github.com/feedreader/feedparser']
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
- self.email = 'feedreader@googlegroups.com'
14
+ self.email = 'wwwmake@googlegroups.com'
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
@@ -30,6 +30,19 @@ class AtomFeedBuilder
30
30
 
31
31
  logger.debug " atom | feed.id.content >#{atom_feed.id.content}< : #{atom_feed.id.content.class.name}"
32
32
 
33
+
34
+ ## try to find self link if present
35
+ ## note: use links (plural to allow multiple links e.g. self,alternate,etc.)
36
+ atom_feed.links.each_with_index do |link,i|
37
+ logger.debug " atom | feed.link[#{i+1}] rel=>#{link.rel}< : #{link.rel.class.name} type=>#{link.type}< href=>#{link.href}<"
38
+
39
+ if link.rel == 'self'
40
+ feed.feed_url = link.href
41
+ break
42
+ end
43
+ end
44
+
45
+
33
46
  feed.url = nil
34
47
 
35
48
  ## note: use links (plural to allow multiple links e.g. self,alternate,etc.)
@@ -103,7 +116,7 @@ class AtomFeedBuilder
103
116
  ## <link rel='replies' type='text/html' href='http://blog.headius.com/2014/05/jrubyconfeu-2014.html#comment-form' title='0 Comments'/>
104
117
  ## <link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4704664917418794835/posts/default/3430080308857860963'/>
105
118
  ## <link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4704664917418794835/posts/default/3430080308857860963'/>
106
- ## <link rel='alternate' type='text/html' href='http://blog.headius.com/2014/05/jrubyconfeu-2014.html'
119
+ ## <link rel='alternate' type='text/html' href='http://blog.headius.com/2014/05/jrubyconfeu-2014.html'
107
120
 
108
121
  item.url = nil
109
122
 
@@ -26,9 +26,12 @@ class JsonFeedBuilder
26
26
  feed = Feed.new
27
27
  feed.format = 'json'
28
28
 
29
- feed.title = h['title']
30
- feed.url = h['home_page_url']
31
- feed.summary = h['description']
29
+ feed.title = h['title']
30
+ feed.url = h['home_page_url']
31
+ feed.feed_url = h['feed_url']
32
+ feed.summary = h['description']
33
+
34
+
32
35
 
33
36
  items = []
34
37
  h['items'].each do |hash_item|
@@ -51,19 +54,18 @@ class JsonFeedBuilder
51
54
  ## convert date if present (from string to date type)
52
55
  date_published_str = h['date_published']
53
56
  if date_published_str
54
- item.published = DateTime.parse( date_published_str )
57
+ item.published = DateTime.iso8601( date_published_str )
55
58
  end
56
59
 
57
60
  date_modified_str = h['date_modified']
58
61
  if date_modified_str
59
- item.updated = DateTime.parse( date_modified_str )
62
+ item.updated = DateTime.iso8601( date_modified_str )
60
63
  end
61
64
 
62
65
 
63
- item.content = h['content_html']
64
-
65
- ## todo/fix: add check for content_text too - why? why not??
66
- ## use item.summary for plain text version - why? why not??
66
+ item.content_html = h['content_html']
67
+ item.content_text = h['content_text']
68
+ item.summary = h['summary']
67
69
 
68
70
  item
69
71
  end # method build_feed_item
@@ -6,13 +6,29 @@ class Feed
6
6
 
7
7
  attr_accessor :format # e.g. atom|rss 2.0|etc.
8
8
  attr_accessor :title
9
- attr_accessor :url
9
+ attr_accessor :url ## todo - add alias site_url/home_page_url/page_url - why? why not??
10
+ attr_accessor :feed_url ## todo - add alias self_url - why? why not??
11
+
10
12
 
11
13
  attr_accessor :items
12
14
 
15
+
13
16
  def summary?() @summary.nil? == false; end
14
17
  attr_accessor :summary # e.g. description (rss)|subtitle (atom)
15
18
 
19
+ ##
20
+ ## todo/check/fix:
21
+ ## use a extra field for atom subtitle
22
+ ## - subtitle not the same as summary - why? why not?
23
+ ## - assume summary == description == abstract but
24
+ ## keep subtitle separate e.g. assume subtitle is just a (simple) single line
25
+ ##
26
+ ## for now alias summary to subtitle
27
+ alias :subtitle :summary
28
+ alias :subtitle= :summary=
29
+
30
+
31
+
16
32
  def updated?() @updated.nil? == false; end
17
33
  attr_accessor :updated # e.g. lastBuildDate (rss)|updated (atom)
18
34
 
@@ -7,9 +7,25 @@ class Item
7
7
  attr_accessor :title
8
8
  attr_accessor :url
9
9
 
10
+
11
+ ## note: only content/content_html should use html;
12
+ ## all others (e.g. title/summary/content_text) shoud be plain (vanilla) text
13
+
14
+
10
15
  def content?() @content.nil? == false; end
11
16
  attr_accessor :content
12
- attr_accessor :content_type # optional for now (text|html|html-escaped|binary-base64) - not yet set
17
+
18
+ ## note: content_html is an alias for content
19
+ ## will hold type html/xhtml/html-escaped - check if always converted to string by parser ??
20
+ alias :content_html :content
21
+ alias :content_html= :content=
22
+ alias :content_html? :content?
23
+
24
+
25
+ def content_text?() @content_text.nil? == false; end
26
+ attr_accessor :content_text
27
+
28
+
13
29
 
14
30
  def summary?() @summary.nil? == false; end
15
31
  attr_accessor :summary
@@ -21,8 +37,14 @@ class Item
21
37
  def published?() @published.nil? == false; end
22
38
  attr_accessor :published # note: published is basically an alias for created
23
39
 
40
+
24
41
  attr_accessor :guid # todo: rename to id (use alias) ??
25
42
 
43
+ ## note: guid is an alias for id; todo/fix: reverse - make guid an alias of id
44
+ alias :id :guid
45
+ alias :id= :guid=
46
+
47
+
26
48
  ## todo: add author/authors
27
49
  ## todo: add category/categories
28
50
 
@@ -7,25 +7,21 @@ class Parser
7
7
 
8
8
  include LogUtils::Logging
9
9
 
10
- ###
11
- ## todo/fix:
12
- # change xml to txt (or text) - now supports json too!!!
13
-
14
10
 
15
11
  ### convenience class/factory method
16
- def self.parse( xml, opts={} )
17
- self.new( xml ).parse
12
+ def self.parse( text, opts={} )
13
+ self.new( text ).parse
18
14
  end
19
15
 
20
16
  ### Note: lets keep/use same API as RSS::Parser for now
21
- def initialize( xml )
22
- @xml = xml
17
+ def initialize( text )
18
+ @text = text
23
19
  end
24
20
 
25
21
 
26
22
 
27
23
  def parse
28
- head = @xml[0..100].strip # note: remove leading spaces if present
24
+ head = @text[0..100].strip # note: remove leading spaces if present
29
25
 
30
26
  jsonfeed_version_regex = %r{"version":\s*"https://jsonfeed.org/version/1"}
31
27
 
@@ -49,7 +45,7 @@ class Parser
49
45
  logger.debug "using stdlib json/#{JSON::VERSION}"
50
46
 
51
47
  logger.debug "Parsing feed in json..."
52
- feed_hash = JSON.parse( @xml )
48
+ feed_hash = JSON.parse( @text )
53
49
 
54
50
  feed = JsonFeedBuilder.build( feed_hash )
55
51
 
@@ -61,7 +57,7 @@ class Parser
61
57
  def parse_xml
62
58
  logger.debug "using stdlib rss/#{RSS::VERSION}"
63
59
 
64
- parser = RSS::Parser.new( @xml )
60
+ parser = RSS::Parser.new( @text )
65
61
 
66
62
  parser.do_validate = false
67
63
  parser.ignore_unknown_element = true
@@ -4,7 +4,7 @@ module FeedParser
4
4
 
5
5
  MAJOR = 1
6
6
  MINOR = 1
7
- PATCH = 0
7
+ PATCH = 1
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
@@ -13,7 +13,7 @@ module FeedParser
13
13
 
14
14
 
15
15
  def self.banner
16
- "feedparser/#{VERSION} (with rss/#{RSS::VERSION}) on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
16
+ "feedparser/#{VERSION} (with rss/#{RSS::VERSION} n json/#{JSON::VERSION}) on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
17
17
  end
18
18
 
19
19
  def self.root
@@ -628,9 +628,16 @@
628
628
  feed.format: json
629
629
  feed.title: By Parker
630
630
  feed.url: https://byparker.com/
631
+ feed.feed_url: https://byparker.com/feed.json
632
+
633
+
634
+ feed.items.size: >>> 36
635
+
636
+ feed.items[0].url: https://byparker.com/blog/2017/add-json-feed-to-your-jekyll-site/
637
+ feed.items[0].guid: https://byparker.com/blog/2017/add-json-feed-to-your-jekyll-site/
638
+ feed.items[0].published: >>> DateTime.new( 2017, 5, 18, 21, 8, 49 )
639
+ feed.items[0].updated: >>> DateTime.new( 2017, 5, 18, 21, 8, 49 )
631
640
 
632
- feed.items[0].url: https://byparker.com/blog/2017/add-json-feed-to-your-jekyll-site/
633
- feed.items[0].guid: https://byparker.com/blog/2017/add-json-feed-to-your-jekyll-site/
634
641
 
635
642
  feed.items[1].url: https://byparker.com/blog/2017/the-internet-is-unstable/
636
643
  feed.items[1].guid: https://byparker.com/blog/2017/the-internet-is-unstable/
@@ -0,0 +1,1866 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <feed xmlns="http://www.w3.org/2005/Atom">
3
+ <title>Daring Fireball</title>
4
+ <subtitle>By John Gruber</subtitle>
5
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/" />
6
+ <link rel="self" type="application/atom+xml" href="https://daringfireball.net/feeds/main" />
7
+ <id>https://daringfireball.net/feeds/main</id>
8
+
9
+
10
+ <updated>2017-05-23T19:36:44Z</updated><rights>Copyright © 2017, John Gruber</rights><entry>
11
+ <title>Feedbin, Too</title>
12
+ <link rel="alternate" type="text/html" href="https://feedbin.com/blog/2017/05/22/feedbin-supports-json-feed/" />
13
+ <link rel="shorturl" type="text/html" href="http://df4.us/q10" />
14
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/23/feedbin-too" />
15
+ <id>tag:daringfireball.net,2017:/linked//6.33732</id>
16
+ <published>2017-05-23T18:50:36Z</published>
17
+ <updated>2017-05-23T19:03:33Z</updated>
18
+ <author>
19
+ <name>John Gruber</name>
20
+ <uri>http://daringfireball.net/</uri>
21
+ </author>
22
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
23
+ <p>Ben Ubois, announcing support for JSON Feed in Feedbin:</p>
24
+
25
+ <blockquote>
26
+ <p>One of the criticisms I’ve seen of JSON Feed is that there’s no
27
+ incentive for feed readers to support JSON Feed. This is not true.
28
+ One of the largest-by-volume support questions I get is along the
29
+ lines of “Why does this random feed not work?” And, 95% of the
30
+ time, it’s because the feed is broken in some subtle way. JSON
31
+ Feed will help alleviate these problems, because it’s easier to
32
+ get right.</p>
33
+
34
+ <p>I also want JSON Feed to succeed because I remember how daunting
35
+ RSS/Atom parsing were when building Feedbin. If JSON Feed was the
36
+ dominant format back then, it would have been a non-issue.</p>
37
+ </blockquote>
38
+
39
+ <p>Easier to generate <em>and</em> easier to parse &#8212; that&#8217;s the whole point of JSON Feed in a nut.</p>
40
+
41
+ <div>
42
+ <a title="Permanent link to ‘Feedbin, Too’" href="https://daringfireball.net/linked/2017/05/23/feedbin-too">&nbsp;★&nbsp;</a>
43
+ </div>
44
+
45
+ ]]></content>
46
+ </entry><entry>
47
+ <title>NewsBlur Now Supports JSON Feed</title>
48
+ <link rel="alternate" type="text/html" href="http://blog.newsblur.com/post/160982162270/newsblur-now-supports-the-new-json-feed-spec" />
49
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0z" />
50
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/23/newsblur-json-feed" />
51
+ <id>tag:daringfireball.net,2017:/linked//6.33731</id>
52
+ <published>2017-05-23T18:44:42Z</published>
53
+ <updated>2017-05-23T18:44:43Z</updated>
54
+ <author>
55
+ <name>John Gruber</name>
56
+ <uri>http://daringfireball.net/</uri>
57
+ </author>
58
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
59
+ <p>Samuel Clay, founder of NewsBlur:</p>
60
+
61
+ <blockquote>
62
+ <p>Starting today, NewsBlur now officially supports the new JSON Feed
63
+ spec. And there’s nothing extra you have to do. This means if a
64
+ website syndicates their stories with the easy-to-write and
65
+ easy-to-read JSON format, you can read it on NewsBlur. It should
66
+ make no difference to you, since you’re reading the end product.
67
+ But to website developers everywhere, supporting JSON Feeds is so
68
+ much easier than supporting XML-based RSS/Atom.</p>
69
+ </blockquote>
70
+
71
+ <p>According to Clay, there are 15,000 NewsBlur users who subscribe to Daring Fireball. It&#8217;s very cool to see a feed reader that popular adopt JSON Feed so quickly.</p>
72
+
73
+ <p>The DF RSS feed isn&#8217;t going anywhere, so if you&#8217;re already subscribed to it, there&#8217;s no need to switch. But JSON Feed&#8217;s spec makes it possible for me to specify both a <code>url</code> that points to the post on Daring Fireball (i.e. the permalink) and an <code>external_url</code> that points to the article I&#8217;m linking to. The way I&#8217;ve dealt with that in the RSS (technically Atom, but that&#8217;s sort of beside the point) is a bit of a hack that&#8217;s caused problems with numerous feed readers over the years.</p>
74
+
75
+ <div>
76
+ <a title="Permanent link to ‘NewsBlur Now Supports JSON Feed’" href="https://daringfireball.net/linked/2017/05/23/newsblur-json-feed">&nbsp;★&nbsp;</a>
77
+ </div>
78
+
79
+ ]]></content>
80
+ </entry><entry>
81
+ <title>Roger Moore’s Recipe for a Perfect Martini</title>
82
+ <link rel="alternate" type="text/html" href="https://www.theguardian.com/lifeandstyle/2015/mar/17/how-make-dry-martini-roger-moore-way-james-bond" />
83
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0y" />
84
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/23/moore-perfect" />
85
+ <id>tag:daringfireball.net,2017:/linked//6.33730</id>
86
+ <published>2017-05-23T18:24:49Z</published>
87
+ <updated>2017-05-23T18:24:50Z</updated>
88
+ <author>
89
+ <name>John Gruber</name>
90
+ <uri>http://daringfireball.net/</uri>
91
+ </author>
92
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
93
+ <p>Worth <a href="https://daringfireball.net/linked/2015/11/01/moore-martini">a re-link</a> today: Roger Moore, two years ago, writing for The Guardian:</p>
94
+
95
+ <blockquote>
96
+ <p>The sad fact is that I know exactly how to make a dry martini but I
97
+ can’t drink them because, two years ago, I discovered I was
98
+ diabetic. I prefer one with gin, but James Bond liked a vodka
99
+ martini, “shaken not stirred” &#8212; which I never said, by the way.
100
+ That was Sean Connery, remember him?</p>
101
+
102
+ <p>The worst martini I’ve ever had was in a club in New Zealand,
103
+ where the barman poured juice from a bottle of olives into the
104
+ vodka. That’s called a dirty martini and it is a dirty, filthy,
105
+ rotten martini, and should not be drunk by anybody except
106
+ condemned prisoners.</p>
107
+
108
+ <p>My dry martinis taste amazing and the day they tell me I’ve got 24
109
+ hours to live I am going to have six. Here’s how I make them.</p>
110
+ </blockquote>
111
+
112
+ <p>I hope he had all six yesterday.</p>
113
+
114
+ <div>
115
+ <a title="Permanent link to ‘Roger Moore&#8217;s Recipe for a Perfect Martini’" href="https://daringfireball.net/linked/2017/05/23/moore-perfect">&nbsp;★&nbsp;</a>
116
+ </div>
117
+
118
+ ]]></content>
119
+ </entry><entry>
120
+
121
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/05/moore_spy_who_loved_me" />
122
+ <link rel="shorturl" href="http://df4.us/q0x" />
123
+ <id>tag:daringfireball.net,2017://1.33729</id>
124
+ <published>2017-05-23T18:11:54Z</published>
125
+ <updated>2017-05-23T18:22:01Z</updated>
126
+ <author>
127
+ <name>John Gruber</name>
128
+ <uri>http://daringfireball.net/</uri>
129
+ </author>
130
+ <summary type="text">In memory of Roger Moore, a brief look at his best Bond film.</summary>
131
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
132
+ <p>Chris Murphy, <a href="http://www.cnn.com/2013/02/25/sport/alpine-bond-skiing-iconic/">writing for CNN back in 2013</a> on the &#8220;greatest James Bond scene of all time&#8221;:</p>
133
+
134
+ <blockquote>
135
+ <p>Despite this wealth of choice, a series of Bond experts, and one
136
+ of the film&#8217;s legendary producers, are in no doubt as to which
137
+ scene should be anointed the best ever.</p>
138
+
139
+ <p>And given the recurring role that skiing has played throughout the
140
+ life of Bond, it should comes as no surprise our panel&#8217;s chosen
141
+ encounter occurs on the slopes. &#8220;I would argue the most iconic
142
+ sequence is in &#8216;The Spy Who Loved Me&#8217;, when Bond shot straight off
143
+ the edge of a cliff at Baffin Island in Canada,&#8221; Ajay Chowdhury,
144
+ editor of the James Bond International Fan Club, told CNN.</p>
145
+
146
+ <p>&#8220;We saw him fall and fall, and when the Union Jack parachute
147
+ opened up and the theme tune kicked in, the world cheered.</p>
148
+
149
+ <p>&#8220;That was Britain&#8217;s Queen Elizabeth&#8217;s Jubilee Year in 1977 and I
150
+ think to this day it was (famous Bond producer) Albert &#8216;Cubby&#8217;
151
+ Broccoli&#8217;s favorite ever scene in a Bond movie.</p>
152
+
153
+ <p>&#8220;When everything cleared it was him, on his own against the world.
154
+ You play that sequence around the world and it is James Bond. And
155
+ he did it on skis.&#8221;</p>
156
+ </blockquote>
157
+
158
+ <p><a href="https://www.youtube.com/watch?v=_kyQauA2udc">That opening scene in <em>The Spy Who Loved Me</em></a> is also the one <a href="https://daringfireball.net/2015/04/watch_apple_watch">where Bond is wearing a digital Seiko watch</a> that can receive secure text messages from MI6 &#8212; at the time, sheer fantasy; today, a feature many of you reading this now have on your own watch. (Albeit without the ticker tape.)</p>
159
+
160
+ <p>I don&#8217;t know if it&#8217;s the single best Bond <em>scene</em> of all time, but it&#8217;s up there, and it&#8217;s almost certainly the best Bond <em>stunt</em> of all time &#8212; stuntman <a href="https://en.wikipedia.org/wiki/Rick_Sylvester">Rick Sylvester</a> actually skied off that cliff and parachuted to safety. I just love how the fall takes place in silence.</p>
161
+
162
+ <p>Without hesitation I would put <em>The Spy Who Loved Me</em> at the top of my list of Roger Moore&#8217;s Bond films. It has everything: the aforementioned great opening, an iconic car (the submarine-convertible white Lotus Esprit<sup id="fnr1-2017-05-23"><a href="#fn1-2017-05-23">1</a></sup>), a great villian (Jaws), and a perfect theme song (Carly Simon&#8217;s &#8220;Nobody Does It Better&#8221;). Bernard Lee was still in the role as M. And at the center of it all, Roger Moore at his cool, suave, and assured best.</p>
163
+
164
+ <p>Moore was quite self-aware of what he brought to the role. His take, <a href="http://www.npr.org/2014/11/15/364077265/roger-moore-the-man-with-the-golden-life">in a 2014 interview with NPR</a>, is exactly right:</p>
165
+
166
+ <blockquote>
167
+ <p>I look like a comedic lover, and Sean [Connery] in particular, and
168
+ Daniel Craig now, they are killers. They look like killers. I
169
+ wouldn&#8217;t like to meet Daniel Craig on a dark night if I&#8217;d said
170
+ anything bad about him.</p>
171
+ </blockquote>
172
+
173
+ <p>Moore&#8217;s Bond had fun doing his job.</p>
174
+
175
+ <div class="footnotes">
176
+ <hr />
177
+ <ol>
178
+ <li id="fn1-2017-05-23">
179
+ <p><a href="https://www.theguardian.com/technology/2013/oct/18/tesla-elon-musk-james-bond-lotus-submarine-car">Now owned by Elon Musk</a>.&nbsp;<a href="#fnr1-2017-05-23" class="footnoteBackLink" title="Jump back to footnote 1 in the text.">&#x21A9;&#xFE0E;</a></p>
180
+ </li>
181
+ </ol>
182
+ </div>
183
+
184
+
185
+
186
+ ]]></content>
187
+ <title>★ ‘The Spy Who Loved Me’</title></entry><entry>
188
+ <title>Roger Moore Dies at 89</title>
189
+ <link rel="alternate" type="text/html" href="https://twitter.com/sirrogermoore/status/867005447018086400" />
190
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0v" />
191
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/23/moore" />
192
+ <id>tag:daringfireball.net,2017:/linked//6.33727</id>
193
+ <published>2017-05-23T17:28:44Z</published>
194
+ <updated>2017-05-23T19:36:44Z</updated>
195
+ <author>
196
+ <name>John Gruber</name>
197
+ <uri>http://daringfireball.net/</uri>
198
+ </author>
199
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
200
+ <p>A terrific and much-loved actor, but also by all accounts a good man.</p>
201
+
202
+ <p>&#8220;Who&#8217;s your favorite James Bond?&#8221; is a fun game to play, because there&#8217;s no wrong answer. I have at least two friends who swear their answer is Lazenby. But one thing I would argue is undeniable about Moore&#8217;s run as Bond is that he was the <em>perfect</em> Bond for the 70s. He didn&#8217;t just keep the franchise going, he helped adapt it to the times. Sean Connery made Bond a sensation. Roger Moore turned it into a cinematic and pop-cultural institution.</p>
203
+
204
+ <div>
205
+ <a title="Permanent link to ‘Roger Moore Dies at 89’" href="https://daringfireball.net/linked/2017/05/23/moore">&nbsp;★&nbsp;</a>
206
+ </div>
207
+
208
+ ]]></content>
209
+ </entry><entry>
210
+ <title>Spotlight Performance Problems on iOS</title>
211
+ <link rel="alternate" type="text/html" href="https://pxlnv.com/linklog/slack-indexing-spotlight/" />
212
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0t" />
213
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/heer-slack-spotlight" />
214
+ <id>tag:daringfireball.net,2017:/linked//6.33725</id>
215
+ <published>2017-05-22T19:57:15Z</published>
216
+ <updated>2017-05-23T00:53:33Z</updated>
217
+ <author>
218
+ <name>John Gruber</name>
219
+ <uri>http://daringfireball.net/</uri>
220
+ </author>
221
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
222
+ <p>Nick Heer:</p>
223
+
224
+ <blockquote>
225
+ <p>I’ve generally had pretty good luck with Spotlight on iOS, but
226
+ I’ve long noticed that results are delayed or nonexistent after
227
+ not using it for a little while, particularly if I haven’t
228
+ rebooted my phone recently. I thought I was losing my head a
229
+ little bit, until I found a tip on Twitter from Anand Iyer :</p>
230
+
231
+ <p>Settings > General > Spotlight Search > toggle Slack off</p>
232
+ </blockquote>
233
+
234
+ <p>A week or so ago I ran into this, where Spotlight was running so slowly on my iPhone that it was unusable. Restarting my phone fixed the problem, but I&#8217;ll bet it was this Slack problem.</p>
235
+
236
+ <p><strong>Update:</strong> Sounds like there might widespread problems with Spotlight indexing on iOS 10, because a bunch of readers have written to say they have the same problem but don&#8217;t even have Slack installed.</p>
237
+
238
+ <p><strong>Update 2:</strong> Several readers are saying this was a bug in iOS 10.3.1 but has been fixed in last week&#8217;s 10.3.2 update.</p>
239
+
240
+ <div>
241
+ <a title="Permanent link to ‘Spotlight Performance Problems on iOS’" href="https://daringfireball.net/linked/2017/05/22/heer-slack-spotlight">&nbsp;★&nbsp;</a>
242
+ </div>
243
+
244
+ ]]></content>
245
+ </entry><entry>
246
+ <title>How Anker Is Beating Apple and Samsung at Their Own Accessory Game</title>
247
+ <link rel="alternate" type="text/html" href="https://www.theverge.com/2017/5/22/15673712/anker-battery-charger-amazon-empire-steven-yang-interview" />
248
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0s" />
249
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/anker" />
250
+ <id>tag:daringfireball.net,2017:/linked//6.33724</id>
251
+ <published>2017-05-22T19:45:20Z</published>
252
+ <updated>2017-05-22T21:09:13Z</updated>
253
+ <author>
254
+ <name>John Gruber</name>
255
+ <uri>http://daringfireball.net/</uri>
256
+ </author>
257
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
258
+ <p>Nice profile of Anker by Nick Statt for The Verge:</p>
259
+
260
+ <blockquote>
261
+ <p>So in airports, the back of cabs, and on city streets we’re
262
+ plugging into lithium-ion slabs in our pockets and bags to stay
263
+ connected. The market for portable battery packs generated $360
264
+ million in the 12 months ending in March, 2017 in the US alone.
265
+ The brands behind these packs are largely anonymous &#8212; Kmashi,
266
+ Jackery, and iMuto &#8212; and they often stay that way.</p>
267
+
268
+ <p>Except Anker. The steady rise of the company’s profile is proof
269
+ that it’s possible to meet one very specific consumer need and
270
+ ride that wave as it continues to ripple out to other markets. A
271
+ majority of Anker’s sales come from cables and wall chargers, and
272
+ it’s now moving into the smart home and auto market &#8212; anywhere a
273
+ plug and a cable can solve a problem.</p>
274
+ </blockquote>
275
+
276
+ <p>It&#8217;s always satisfying to see a company thrive by focusing on making great products.</p>
277
+
278
+ <div>
279
+ <a title="Permanent link to ‘How Anker Is Beating Apple and Samsung at Their Own Accessory Game’" href="https://daringfireball.net/linked/2017/05/22/anker">&nbsp;★&nbsp;</a>
280
+ </div>
281
+
282
+ ]]></content>
283
+ </entry><entry>
284
+ <title>‘On Margins’</title>
285
+ <link rel="alternate" type="text/html" href="https://craigmod.com/onmargins/" />
286
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0r" />
287
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/on-margins" />
288
+ <id>tag:daringfireball.net,2017:/linked//6.33723</id>
289
+ <published>2017-05-22T19:02:20Z</published>
290
+ <updated>2017-05-22T19:02:22Z</updated>
291
+ <author>
292
+ <name>John Gruber</name>
293
+ <uri>http://daringfireball.net/</uri>
294
+ </author>
295
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
296
+ <p>New podcast from the inimitable Craig Mod about the art of making books. <a href="https://craigmod.com/onmargins/001/">The first episode is an interview with Jan Chipchase</a>:</p>
297
+
298
+ <blockquote>
299
+ <p>Researcher and author Jan Chipchase has a new book &#8212; &#8220;The Field
300
+ Study Handbook.&#8221; We discuss how he came to produce this 500+ page
301
+ magnum opus &#8212; a distillation of his life&#8217;s work &#8212; and why he is
302
+ self publishing.</p>
303
+ </blockquote>
304
+
305
+ <div>
306
+ <a title="Permanent link to ‘&#8216;On Margins&#8217;’" href="https://daringfireball.net/linked/2017/05/22/on-margins">&nbsp;★&nbsp;</a>
307
+ </div>
308
+
309
+ ]]></content>
310
+ </entry><entry>
311
+ <title>Boring Google</title>
312
+ <link rel="alternate" type="text/html" href="https://stratechery.com/2017/boring-google/" />
313
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0q" />
314
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/thompson-google-io" />
315
+ <id>tag:daringfireball.net,2017:/linked//6.33722</id>
316
+ <published>2017-05-22T18:45:37Z</published>
317
+ <updated>2017-05-22T18:45:39Z</updated>
318
+ <author>
319
+ <name>John Gruber</name>
320
+ <uri>http://daringfireball.net/</uri>
321
+ </author>
322
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
323
+ <p>Ben Thompson, in praise of Google&#8217;s &#8220;boring&#8221; I/O keynote:</p>
324
+
325
+ <blockquote>
326
+ <p>Google Assistant has a long ways to go, but there is a clear
327
+ picture of what success will look like: Google Photos. Launched
328
+ only two years ago, Pichai bragged that Photos now has over 500
329
+ million active users who upload 1.2 billion photos a day. This is
330
+ a spectacular number for one very simple reason: Google Photos is
331
+ <em>not</em> the default photo app for Android or iOS. Rather, Google has
332
+ earned all of those photos simply by being better than the
333
+ defaults, and the basis of that superiority is Google’s machine
334
+ learning.</p>
335
+
336
+ <p>Moreover, much like search, Photos gets better the more data it
337
+ gets, creating a virtuous cycle: more photos means more data which
338
+ means a better experience which means more users which means more
339
+ photos. It is already hard to see other photo applications
340
+ catching up.</p>
341
+ </blockquote>
342
+
343
+ <p>Google Photos is Google at its best. Their visual recognition is clearly the best in the world right now, and Thompson makes a good point that the &#8220;virtuous circle&#8221; makes it difficult for anyone to catch up.</p>
344
+
345
+ <p>In addition to being a great product, technically, Google Photos also launched with <a href="http://daringfireball.net/linked/2016/08/08/google-photos-sick-burn">a terrific ad campaign</a>.</p>
346
+
347
+ <div>
348
+ <a title="Permanent link to ‘Boring Google’" href="https://daringfireball.net/linked/2017/05/22/thompson-google-io">&nbsp;★&nbsp;</a>
349
+ </div>
350
+
351
+ ]]></content>
352
+ </entry><entry>
353
+ <title>Every Color of Cardigan Mister Rogers Wore From 1979–2001</title>
354
+ <link rel="alternate" type="text/html" href="https://theawl.com/every-color-of-cardigan-mister-rogers-wore-from-1979-2001-83c1faba2677" />
355
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0p" />
356
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/mr-rogers-sweaters" />
357
+ <id>tag:daringfireball.net,2017:/linked//6.33721</id>
358
+ <published>2017-05-22T17:53:29Z</published>
359
+ <updated>2017-05-22T17:53:31Z</updated>
360
+ <author>
361
+ <name>John Gruber</name>
362
+ <uri>http://daringfireball.net/</uri>
363
+ </author>
364
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
365
+ <p>Owen Philips, writing for The Awl:</p>
366
+
367
+ <blockquote>
368
+ <p>Fortunately, Tim Lybarger, a 40 year-old high school counselor
369
+ from just outside of Champaign-Urbana, Illinois, wondered the same
370
+ thing a few years ago. Back in 2011, on his blog devoted to all
371
+ things Mister Rogers, neighborhoodarchive.com, Lybarger recorded
372
+ the color of every sweater Rogers wore in each episode between
373
+ 1979 and 2001. “When I realized such a resource didn’t exist,”
374
+ Lybarger told me over email, “I just felt like somebody needed to
375
+ do it…might as well be me.”</p>
376
+
377
+ <p>The chart below uses the data Lybarger meticulously collected to
378
+ show how Rogers’ preferences for the color of his cardigan changed
379
+ over time.</p>
380
+ </blockquote>
381
+
382
+ <p>When I was a kid I simply loved <em>Mister Rogers&#8217; Neighborhood</em>. (<a href="http://kottke.org/17/05/the-colors-of-mister-rogers-cardigan-sweaters-1979-2001">Via Kottke</a>, of course.)</p>
383
+
384
+ <div>
385
+ <a title="Permanent link to ‘Every Color of Cardigan Mister Rogers Wore From 1979–2001’" href="https://daringfireball.net/linked/2017/05/22/mr-rogers-sweaters">&nbsp;★&nbsp;</a>
386
+ </div>
387
+
388
+ ]]></content>
389
+ </entry><entry>
390
+ <title>Scrolling Is Going to Change in Mobile Safari</title>
391
+ <link rel="alternate" type="text/html" href="https://news.ycombinator.com/item?id=14384938" />
392
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0o" />
393
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/mobile-safari-scrolling" />
394
+ <id>tag:daringfireball.net,2017:/linked//6.33720</id>
395
+ <published>2017-05-22T17:29:44Z</published>
396
+ <updated>2017-05-23T00:56:48Z</updated>
397
+ <author>
398
+ <name>John Gruber</name>
399
+ <uri>http://daringfireball.net/</uri>
400
+ </author>
401
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
402
+ <p>Here&#8217;s an interesting exchange in a Hacker News discussion about <a href="https://daringfireball.net/linked/2017/05/20/gilbertson-amp.php">my criticism of AMP</a> over the weekend. <a href="https://news.ycombinator.com/item?id=14384938">Malte Ubl, creator and tech lead of Google AMP</a>:</p>
403
+
404
+ <blockquote>
405
+ <p>With respect to scrolling: We (AMP team) filed a bug with Apple
406
+ about that (we didn&#8217;t implement scrolling ourselves, just use a
407
+ div with overflow). We asked to make the scroll inertia for that
408
+ case the same as the normal scrolling.</p>
409
+
410
+ <p>Apple&#8217;s response was (surprisingly) to make the default scrolling
411
+ like the overflow scrolling. So, with the next Safari release all
412
+ pages will scroll like AMP pages. Hope Gruber is happy then :)</p>
413
+ </blockquote>
414
+
415
+ <p>&#8220;Om2&#8221;, who seemingly works on WebKit for Apple <a href="https://trac.webkit.org/changeset/211197/webkit">added</a>:</p>
416
+
417
+ <blockquote>
418
+ <p>In current iOS Safari, webpage scrolling is inconsistent from all
419
+ other scrolling on the system. This was an intentional decision
420
+ made long ago. In addition, overflow areas are consistent with the
421
+ rest of the system, and thus inconsistent with top-level webpage
422
+ scrolling. This is semi-accidental. In reviewing scroll rates, we
423
+ concluded that the original reason was no longer a good tradeoff.
424
+ Thus this change, which removed all the inconsistencies:
425
+ <a href="https://trac.webkit.org/changeset/211197/webkit">https://trac.webkit.org/changeset/211197/webkit</a></p>
426
+
427
+ <p>Having all scrolling be consistent feels good once you get
428
+ used to it.</p>
429
+
430
+ <p>That doesn&#8217;t necessarily mean it was a good idea for Google&#8217;s
431
+ hosted AMP pages to use overflow scroll all along. The
432
+ inconsistency definitely did feel weird. And the way they do
433
+ scrolling prevents Safari from auto-hiding its top and bottom
434
+ bars. I believe all the desired scroll effects could have been
435
+ achieved without the use of overflow scroll.</p>
436
+ </blockquote>
437
+
438
+ <p>That&#8217;s a pretty big change, but I&#8217;ll bet Om2 is right that it soon feels normal. Web views have had different scrolling inertia than other scrolling views ever since the original iPhone. (My beef with scrolling in AMP is not that AMP&#8217;s fast scrolling is bad and Mobile Safari&#8217;s current slower scrolling is good, but rather that scrolling in AMP pages should not feel totally different than regular web pages. And I forgot to complain about the fact that AMP&#8217;s weird implementation also breaks Mobile Safari&#8217;s ability to hide the bottom and top browser chrome toolbars. <strong>Update:</strong> One more complaint: AMP breaks Safari&#8217;s Reader mode.)</p>
439
+
440
+ <div>
441
+ <a title="Permanent link to ‘Scrolling Is Going to Change in Mobile Safari’" href="https://daringfireball.net/linked/2017/05/22/mobile-safari-scrolling">&nbsp;★&nbsp;</a>
442
+ </div>
443
+
444
+ ]]></content>
445
+ </entry><entry>
446
+ <title>News Explorer 1.6 Supports JSON Feed</title>
447
+ <link rel="alternate" type="text/html" href="https://betamagic.nl/blog.html" />
448
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0n" />
449
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/news-explorer-1-6" />
450
+ <id>tag:daringfireball.net,2017:/linked//6.33719</id>
451
+ <published>2017-05-22T17:10:10Z</published>
452
+ <updated>2017-05-22T17:10:12Z</updated>
453
+ <author>
454
+ <name>John Gruber</name>
455
+ <uri>http://daringfireball.net/</uri>
456
+ </author>
457
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
458
+ <p>First native app I&#8217;ve seen with support for JSON Feed. Pretty interesting take on a modern Mac feed reader, including nice support for using the keyboard arrow keys to move around the UI.</p>
459
+
460
+ <div>
461
+ <a title="Permanent link to ‘News Explorer 1.6 Supports JSON Feed’" href="https://daringfireball.net/linked/2017/05/22/news-explorer-1-6">&nbsp;★&nbsp;</a>
462
+ </div>
463
+
464
+ ]]></content>
465
+ </entry><entry>
466
+
467
+ <link rel="alternate" type="text/html" href="http://www.getflow.com/daringfireball" />
468
+ <link rel="shorturl" href="http://df4.us/q0u" />
469
+ <link rel="related" type="text/html" href="https://daringfireball.net/feeds/sponsors/2017/05/flow_simple_project_management" />
470
+ <id>tag:daringfireball.net,2017:/feeds/sponsors//11.33726</id>
471
+ <author><name>Daring Fireball Department of Commerce</name></author>
472
+ <published>2017-05-22T17:00:49-04:00</published>
473
+ <updated>2017-05-22T17:01:04-04:00</updated>
474
+ <content type="html" xml:base="https://daringfireball.net/feeds/sponsors/" xml:lang="en"><![CDATA[
475
+ <p>Flow is simple project management for busy teams. It’s the easiest way to run your team, manage projects, track tasks, and stay up to date with everything happening at work.</p>
476
+
477
+ <p>Teams choose Flow when email, sticky notes, and to-do apps aren’t enough, but complex project management tools are overkill. Flow’s world-class design team has worked with companies like Apple, Slack, TED, and Starbucks, so it’s simple, beautiful, and easy to use. Your team will love using it, and pick it up in minutes — not weeks.</p>
478
+
479
+ <p>Visit <a href="http://www.getflow.com/daringfireball">getflow.com/daringfireball</a> to start your free trial today, and save 20% on a monthly plan, or 30% on an annual plan at checkout. </p>
480
+
481
+ <div>
482
+ <a title="Permanent link to ‘Flow: Simple Project Management’" href="https://daringfireball.net/feeds/sponsors/2017/05/flow_simple_project_management">&nbsp;★&nbsp;</a>
483
+ </div>
484
+
485
+ ]]></content>
486
+ <title>[Sponsor] Flow: Simple Project Management</title></entry><entry>
487
+ <title>‘Becoming Bond’</title>
488
+ <link rel="alternate" type="text/html" href="https://www.youtube.com/watch?v=rd9wdJIxqlo" />
489
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0m" />
490
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/22/becoming-bond" />
491
+ <id>tag:daringfireball.net,2017:/linked//6.33718</id>
492
+ <published>2017-05-22T16:35:26Z</published>
493
+ <updated>2017-05-22T16:41:57Z</updated>
494
+ <author>
495
+ <name>John Gruber</name>
496
+ <uri>http://daringfireball.net/</uri>
497
+ </author>
498
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
499
+ <p>New documentary from Hulu on George Lazenby, who played James Bond in 1969&#8217;s <em><a href="http://www.imdb.com/title/tt0064757/">On Her Majesty&#8217;s Secret Service</a></em> and then turned down an offer for a six-picture contract. Watched it over the weekend and thoroughly enjoyed it.</p>
500
+
501
+ <div>
502
+ <a title="Permanent link to ‘&#8216;Becoming Bond&#8217;’" href="https://daringfireball.net/linked/2017/05/22/becoming-bond">&nbsp;★&nbsp;</a>
503
+ </div>
504
+
505
+ ]]></content>
506
+ </entry><entry>
507
+ <title>Stashword</title>
508
+ <link rel="alternate" type="text/html" href="http://df.stashword.com/" />
509
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0l" />
510
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/20/stashword" />
511
+ <id>tag:daringfireball.net,2017:/linked//6.33717</id>
512
+ <published>2017-05-20T19:23:06Z</published>
513
+ <updated>2017-05-20T19:23:08Z</updated>
514
+ <author>
515
+ <name>John Gruber</name>
516
+ <uri>http://daringfireball.net/</uri>
517
+ </author>
518
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
519
+ <p>My thanks to Stashword for sponsoring this week&#8217;s DF RSS feed. Stashword is simple but feature-rich password manager for iOS and the web. In addition to passwords, Stashword can securely save notes, financial information, and more. You can even scan and save documents like your drivers license, insurance documentation, and passport.</p>
520
+
521
+ <p>Stashword is free to try for 15 days. Paid membership enables you to synchronize across all your devices and <a href="http://df.stashword.com/">their website</a>. As a special offer for Daring Fireball readers, through May 25 annual membership is just $7.99, which is 20 percent off the regular price.</p>
522
+
523
+ <div>
524
+ <a title="Permanent link to ‘Stashword’" href="https://daringfireball.net/linked/2017/05/20/stashword">&nbsp;★&nbsp;</a>
525
+ </div>
526
+
527
+ ]]></content>
528
+ </entry><entry>
529
+ <title>MacStories’s iOS 11 iPad Wishes and Concept Video</title>
530
+ <link rel="alternate" type="text/html" href="https://www.macstories.net/stories/ios-11-ipad-wishes-and-concept-video/" />
531
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0j" />
532
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/20/macstories-ios-11-concept" />
533
+ <id>tag:daringfireball.net,2017:/linked//6.33715</id>
534
+ <published>2017-05-20T19:10:48Z</published>
535
+ <updated>2017-05-20T19:10:50Z</updated>
536
+ <author>
537
+ <name>John Gruber</name>
538
+ <uri>http://daringfireball.net/</uri>
539
+ </author>
540
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
541
+ <p>Federico Viticci:</p>
542
+
543
+ <blockquote>
544
+ <p>I&#8217;ve been thinking about some of these ideas since iOS 9 (you can
545
+ see a thread between <a href="https://youtube.com/watch?v=J2VcbT4Pgdk">my iOS 10 concept</a> and this year&#8217;s version),
546
+ while others would be a natural evolution for iOS on the iPad.
547
+ Once again, Sam was able to visualize everything with a fantastic
548
+ concept that, I believe, captures the iPad&#8217;s big-picture potential
549
+ more accurately than last year.</p>
550
+
551
+ <p>Below, you&#8217;ll find our <a href="https://youtube.com/watch?v=UyFUDQ5LLZw">iOS 11 for iPad concept video</a>, followed by
552
+ an analysis of my iPad wishes with static mockups. I focused on
553
+ foundational changes to the iPad&#8217;s software &#8212; tentpole features
554
+ that would affect the entire OS and app ecosystem.</p>
555
+
556
+ <p>This isn&#8217;t a prediction of what Apple will announce at WWDC; it&#8217;s
557
+ my vision for what the future of the iPad should be.</p>
558
+ </blockquote>
559
+
560
+ <p>Viticci and Beckett put months of work into this, and it shows. Some of the ideas they present: system-wide drag-and-drop, a Finder app, a redesigned App Store, and much more.</p>
561
+
562
+ <p>The best part of this feature isn&#8217;t any specific idea, but rather Viticci&#8217;s profound enthusiasm for the iPad as a platform.</p>
563
+
564
+ <div>
565
+ <a title="Permanent link to ‘MacStories&#8217;s iOS 11 iPad Wishes and Concept Video’" href="https://daringfireball.net/linked/2017/05/20/macstories-ios-11-concept">&nbsp;★&nbsp;</a>
566
+ </div>
567
+
568
+ ]]></content>
569
+ </entry><entry>
570
+ <title>10-Year-Old Open Letter Calling for Apple to Make Glucose Monitors</title>
571
+ <link rel="alternate" type="text/html" href="http://www.healthline.com/health/diabetesmine/innovation/open-letter-steve-jobs" />
572
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0i" />
573
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/20/open-letter-apple-glucose" />
574
+ <id>tag:daringfireball.net,2017:/linked//6.33714</id>
575
+ <published>2017-05-20T19:00:18Z</published>
576
+ <updated>2017-05-20T19:26:36Z</updated>
577
+ <author>
578
+ <name>John Gruber</name>
579
+ <uri>http://daringfireball.net/</uri>
580
+ </author>
581
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
582
+ <p>Amy Tenderich, 10 years ago, in an open letter to Steve Jobs:</p>
583
+
584
+ <blockquote>
585
+ <p>If insulin pumps or continuous monitors had the form of an iPod
586
+ Nano, people wouldn&#8217;t have to wonder why we wear our &#8220;pagers&#8221; to
587
+ our own weddings, or puzzle over that strange bulge under our
588
+ clothes. If these devices wouldn&#8217;t start suddenly and incessantly
589
+ beeping, strangers wouldn&#8217;t lecture us to turn off our &#8220;cell
590
+ phones&#8221; at the movie theater.</p>
591
+
592
+ <p>In short, medical device manufacturers are stuck in a bygone era;
593
+ they continue to design these products in an engineering-driven,
594
+ physician-centered bubble. They have not yet grasped the concept
595
+ that medical devices are also life devices, and therefore need to
596
+ feel good and look good for the patients using them 24/7, in
597
+ addition to keeping us alive.</p>
598
+ </blockquote>
599
+
600
+ <p>(<a href="http://articles.chicagotribune.com/2010-10-22/features/sc-health-1020-diabetes-insulin-devic20101022_1_insulin-dependent-diabetics-high-blood-glucose-levels-blood-sugar">Follow-up here in 2010</a>.)</p>
601
+
602
+ <p>This was incredibly prescient, given the rumors <a href="https://daringfireball.net/linked/2017/05/18/apple-watch-glucose">that Apple is working on continuous non-invasive glucose monitoring</a> for Apple Watch. Jobs didn&#8217;t live to see it, but I think it&#8217;s exactly the sort of thing he would be pushing for if he were still alive.</p>
603
+
604
+ <p>From chapter 37 of <a href="https://itun.es/us/QyFUz.l">Walter Isaacson&#8217;s <em>Steve Jobs</em></a>:</p>
605
+
606
+ <blockquote>
607
+ <p>Even when he was barely conscious, his strong personality came
608
+ through. At one point the pulmonologist tried to put a mask over
609
+ his face when he was deeply sedated. Jobs ripped it off and
610
+ mumbled that he hated the design and refused to wear it. Though
611
+ barely able to speak, he ordered them to bring five different
612
+ options for the mask and he would pick a design he liked. The
613
+ doctors looked at Powell, puzzled. She was finally able to
614
+ distract him so they could put on the mask. He also hated the
615
+ oxygen monitor they put on his finger. He told them it was ugly
616
+ and too complex. He suggested ways it could be designed more
617
+ simply. “He was very attuned to every nuance of the environment
618
+ and objects around him, and that drained him,” Powell recalled.</p>
619
+ </blockquote>
620
+
621
+ <div>
622
+ <a title="Permanent link to ‘10-Year-Old Open Letter Calling for Apple to Make Glucose Monitors’" href="https://daringfireball.net/linked/2017/05/20/open-letter-apple-glucose">&nbsp;★&nbsp;</a>
623
+ </div>
624
+
625
+ ]]></content>
626
+ </entry><entry>
627
+ <title>Scott Gilbertson: ‘Kill Google AMP Before It Kills the Web’</title>
628
+ <link rel="alternate" type="text/html" href="https://www.theregister.co.uk/2017/05/19/open_source_insider_google_amp_bad_bad_bad/" />
629
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0h" />
630
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/20/gilbertson-amp" />
631
+ <id>tag:daringfireball.net,2017:/linked//6.33713</id>
632
+ <published>2017-05-20T18:18:19Z</published>
633
+ <updated>2017-05-20T19:28:43Z</updated>
634
+ <author>
635
+ <name>John Gruber</name>
636
+ <uri>http://daringfireball.net/</uri>
637
+ </author>
638
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
639
+ <p>Scott Gilbertson, writing for The Register:</p>
640
+
641
+ <blockquote>
642
+ <p>Quite a few high-profile web developers have this year weighted in
643
+ with <a href="https://danielmiessler.com/blog/google-amp-not-good-thing/">criticism</a> and some, following a Google conference dedicated
644
+ to AMP, have cautioned users about diving in with <a href="https://css-tricks.com/need-catch-amp-debate/">both feet</a>.</p>
645
+
646
+ <p>These, in my view, don’t go far enough in stating the problem and
647
+ I feel this needs to be said very clearly: Google&#8217;s AMP is bad &#8212;
648
+ bad in a potentially web-destroying way. Google AMP is bad news
649
+ for how the web is built, it&#8217;s bad news for publishers of credible
650
+ online content, and it&#8217;s bad news for consumers of that content.
651
+ Google AMP is only good for one party: Google. Google, and
652
+ possibly, purveyors of fake news.</p>
653
+
654
+ <p>It&#8217;s time for developers to wake up and, as Jason Scott <a href="http://ascii.textfiles.com/archives/3086">once said</a>
655
+ of Facebook, stop: &#8220;Shoveling down the shit sherbet&#8221; Google is now
656
+ serving with AMP.</p>
657
+ </blockquote>
658
+
659
+ <p><a href="http://daringfireball.net/linked/2017/01/17/schreiber-amp">I&#8217;m on the record</a> as being strongly opposed to AMP simply on the grounds of publication independence. I&#8217;d stand by that even if the implementation were great. But the implementation is not great &#8212; it&#8217;s terrible. Yes, AMP pages load fast, but you don&#8217;t need AMP for fast-loading web pages. If you are a publisher and your web pages don&#8217;t load fast, the sane solution is to <a href="http://idlewords.com/amp_static.html">fix your fucking website so that pages load fast</a>, not to throw your hands up in the air and implement AMP.</p>
660
+
661
+ <p>But other than loading fast, AMP <em>sucks</em>. It implements its own scrolling behavior on iOS, which feels unnatural, and even worse, it breaks the decade-old system-wide iOS behavior of being able to tap the status bar to scroll to the top of any scrollable view. AMP also completely breaks Safari&#8217;s ability to search for text on a page (via the &#8220;Find on Page&#8221; action in the sharing sheet). Google has no respect for the platform. If I had my way, Mobile Safari would refuse to render AMP pages. It&#8217;s a deliberate effort by Google to break the open web.</p>
662
+
663
+ <div>
664
+ <a title="Permanent link to ‘Scott Gilbertson: &#8216;Kill Google AMP Before It Kills the Web&#8217;’" href="https://daringfireball.net/linked/2017/05/20/gilbertson-amp">&nbsp;★&nbsp;</a>
665
+ </div>
666
+
667
+ ]]></content>
668
+ </entry><entry>
669
+ <title>Arctic Stronghold of World’s Seeds Flooded After Permafrost Melts</title>
670
+ <link rel="alternate" type="text/html" href="https://www.theguardian.com/environment/2017/may/19/arctic-stronghold-of-worlds-seeds-flooded-after-permafrost-melts?CMP=twt_gu" />
671
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0g" />
672
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/20/global-seed-vault" />
673
+ <id>tag:daringfireball.net,2017:/linked//6.33712</id>
674
+ <published>2017-05-20T17:52:14Z</published>
675
+ <updated>2017-05-21T03:41:34Z</updated>
676
+ <author>
677
+ <name>John Gruber</name>
678
+ <uri>http://daringfireball.net/</uri>
679
+ </author>
680
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
681
+ <p>Damian Carrington, reporting for The Guardian:</p>
682
+
683
+ <blockquote>
684
+ <p>It was designed as an impregnable deep-freeze to protect the
685
+ world’s most precious seeds from any global disaster and ensure
686
+ humanity’s food supply forever. But the Global Seed Vault, buried
687
+ in a mountain deep inside the Arctic circle, has been breached
688
+ after global warming produced extraordinary temperatures over the
689
+ winter, sending meltwater gushing into the entrance tunnel.</p>
690
+ </blockquote>
691
+
692
+ <p>The big takeaway from this should be that climate change truly is a threat to civilization. But, I have to say, that melting permafrost wasn&#8217;t taken into consideration during the design of this vault seems like a glaring oversight.</p>
693
+
694
+ <p><strong>Update:</strong> Looks like The Guardian might have shamelessly sensationalized this story. <a href="http://www.popsci.com/seed-vault-flooding?src=SOC&amp;dom=tw#page-3">Mary Beth Griggs, reporting for Popular Science</a>:</p>
695
+
696
+ <blockquote>
697
+ <p>“If there was a worst case scenario where there was so much water,
698
+ or the pumping systems failed, that it made its way uphill to the
699
+ seed vault, then it would encounter minus 18 [degrees celsius] and
700
+ freeze again. Then there’s another barrier [the ice] for entry
701
+ into the seed vault,” Fowler says. In other words, any water that
702
+ floods into the tunnel has to make it 100 meters downhill, then
703
+ back uphill, then overwhelm the pumping systems, and then manage
704
+ not to freeze at well-below-freezing temperatures. Otherwise,
705
+ there&#8217;s no way liquid is getting into the seed bank &#8212; so the
706
+ seeds are probably safe. [&#8230;]</p>
707
+
708
+ <p>Still worried? Maybe this will help you exhale: “We did this
709
+ calculation; if all the ice in the world melted &#8212; Greenland,
710
+ Arctic, Antarctic, everything &#8212; and then we had the world&#8217;s
711
+ largest recorded tsunami right in front of the seed vault. So,
712
+ very high sea levels and the worlds largest Tsunami. What would
713
+ happen to the seed vault?” Fowler says. “We found that the seed
714
+ vault was somewhere between a five and seven story building above
715
+ that point. It might not help the road leading up to the seed
716
+ vault, but the seeds themselves would be OK.&#8221;</p>
717
+ </blockquote>
718
+
719
+ <p>Sounds like the vault itself <em>is</em> designed to survive a climate apocalypse &#8212; it&#8217;s just the entry that isn&#8217;t.</p>
720
+
721
+ <div>
722
+ <a title="Permanent link to ‘Arctic Stronghold of World’s Seeds Flooded After Permafrost Melts’" href="https://daringfireball.net/linked/2017/05/20/global-seed-vault">&nbsp;★&nbsp;</a>
723
+ </div>
724
+
725
+ ]]></content>
726
+ </entry><entry>
727
+ <title>‘It’s Borderline Stupid How Easy It Was’</title>
728
+ <link rel="alternate" type="text/html" href="https://ndarville.com/blog/2017/05/19/json-feed-for-jekyll/" />
729
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0f" />
730
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/19/json-feed-jekyll" />
731
+ <id>tag:daringfireball.net,2017:/linked//6.33711</id>
732
+ <published>2017-05-19T20:07:02Z</published>
733
+ <updated>2017-05-19T20:13:21Z</updated>
734
+ <author>
735
+ <name>John Gruber</name>
736
+ <uri>http://daringfireball.net/</uri>
737
+ </author>
738
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
739
+ <p>Niclas Darville, on creating a JSON Feed template for Jekyll:</p>
740
+
741
+ <blockquote>
742
+ <p>It literally took me longer to write this blog post than the JSON
743
+ feed code, because I couldn’t get Jekyll to escape the Liquid code
744
+ example.</p>
745
+ </blockquote>
746
+
747
+ <p>On Twitter, <a href="https://twitter.com/pessimism/status/865574252182990848">Darville wrote</a>:</p>
748
+
749
+ <blockquote>
750
+ <p>One of the best things about <a href="https://twitter.com/@jsonfeed">@jsonfeed</a> is how well it works as a
751
+ Hello World kind of programming exercise.</p>
752
+
753
+ <p>Sure beats to-do lists.</p>
754
+ </blockquote>
755
+
756
+ <p><a href="https://twitter.com/JmacDotOrg/status/865441060176121856">Jason McIntosh described</a> adding JSON Feed support to his home-grown blog engine as a &#8220;blowing-off-steam project&#8221;.</p>
757
+
758
+ <p>These reactions are exactly what I mean about JSON Feed being <em>fun</em>. There&#8217;s a time and place for specs that are drop-dead serious, but I think it&#8217;s often overlooked just how important <em>fun</em> can be in having a new spec gain traction.</p>
759
+
760
+ <div>
761
+ <a title="Permanent link to ‘&#8216;It’s Borderline Stupid How Easy It Was&#8217;’" href="https://daringfireball.net/linked/2017/05/19/json-feed-jekyll">&nbsp;★&nbsp;</a>
762
+ </div>
763
+
764
+ ]]></content>
765
+ </entry><entry>
766
+ <title>Headline of the Week</title>
767
+ <link rel="alternate" type="text/html" href="https://www.nytimes.com/2017/05/19/us/politics/trump-russia-comey.html" />
768
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0e" />
769
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/19/trump-nut-job" />
770
+ <id>tag:daringfireball.net,2017:/linked//6.33710</id>
771
+ <published>2017-05-19T19:41:15Z</published>
772
+ <updated>2017-05-20T04:12:08Z</updated>
773
+ <author>
774
+ <name>John Gruber</name>
775
+ <uri>http://daringfireball.net/</uri>
776
+ </author>
777
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
778
+ <p>Actual headline in the staid New York Times: &#8220;Trump Told Russians That Firing ‘Nut Job’ Comey Eased Pressure From Investigation&#8221;.</p>
779
+
780
+ <div>
781
+ <a title="Permanent link to ‘Headline of the Week’" href="https://daringfireball.net/linked/2017/05/19/trump-nut-job">&nbsp;★&nbsp;</a>
782
+ </div>
783
+
784
+ ]]></content>
785
+ </entry><entry>
786
+ <title>Requiring Facebook</title>
787
+ <link rel="alternate" type="text/html" href="https://thebolditalic.com/facebook-goes-full-black-mirror-how-facebook-is-making-membership-a-prerequisite-to-everyday-e88fb03b0eb9" />
788
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0d" />
789
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/requiring-facebook" />
790
+ <id>tag:daringfireball.net,2017:/linked//6.33709</id>
791
+ <published>2017-05-19T02:19:06Z</published>
792
+ <updated>2017-05-19T07:02:39Z</updated>
793
+ <author>
794
+ <name>John Gruber</name>
795
+ <uri>http://daringfireball.net/</uri>
796
+ </author>
797
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
798
+ <p>Jason Ditzian, writing for The Bold Italic on what happened when the car sharing service he&#8217;d been using for 10 years was acquired:</p>
799
+
800
+ <blockquote>
801
+ <p>However, City CarShare was recently bought by a corporation,
802
+ Getaround. And Getaround built its platform on top of Facebook. So
803
+ when I went to migrate my account over to them, I found that
804
+ there’s literally no way to do it as a non-Facebook user. If I
805
+ want to share cars with my fellow city dwellers, I’m compelled to
806
+ strike a Faustian bargain.</p>
807
+
808
+ <p>To access the services of Getaround, one must authenticate their
809
+ identity through Facebook. [&#8230;]</p>
810
+
811
+ <p>I know that for you Facebook-having people, this is no big deal.
812
+ You have resigned yourself to the idea of Facebook owning your
813
+ data. But if you don’t, haven’t and/or won’t resign to this fate,
814
+ you might end up left, like me, in a peculiar situation: the price
815
+ of “sharing” a car equals money plus forking over a huge trove of
816
+ personal data. Personal information is supplanting money as a form
817
+ of currency.</p>
818
+ </blockquote>
819
+
820
+ <p>There&#8217;s clearly a problem here, but I don&#8217;t think it&#8217;s Facebook&#8217;s fault. I think the problem is that Getaround sucks.</p>
821
+
822
+ <div>
823
+ <a title="Permanent link to ‘Requiring Facebook’" href="https://daringfireball.net/linked/2017/05/18/requiring-facebook">&nbsp;★&nbsp;</a>
824
+ </div>
825
+
826
+ ]]></content>
827
+ </entry><entry>
828
+ <title>FCC Votes to Begin Dismantling Net Neutrality</title>
829
+ <link rel="alternate" type="text/html" href="https://www.techdirt.com/articles/20170517/12241437395/fcc-ignores-will-public-votes-to-begin-dismantling-net-neutrality.shtml" />
830
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0c" />
831
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/net-neutrality" />
832
+ <id>tag:daringfireball.net,2017:/linked//6.33708</id>
833
+ <published>2017-05-18T22:30:58Z</published>
834
+ <updated>2017-05-18T22:31:00Z</updated>
835
+ <author>
836
+ <name>John Gruber</name>
837
+ <uri>http://daringfireball.net/</uri>
838
+ </author>
839
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
840
+ <p>Karl Bode, writing for TechDirt:</p>
841
+
842
+ <blockquote>
843
+ <p>Surprising absolutely nobody, the FCC today voted 2-1 along strict
844
+ party lines to begin dismantling net neutrality protections for
845
+ consumers. The move comes despite the fact that the <a href="https://www.techdirt.com/articles/20170516/06570237379/time-fcc-to-actually-listen-vast-majority-fcc-commenters-support-net-neutrality.shtml">vast
846
+ majority</a> of non-bot comments filed with the FCC support
847
+ keeping the rules intact. And while FCC boss Ajit Pai has
848
+ breathlessly insisted he intended to listen to the concerns of all
849
+ parties involved, there has been zero indication that this was a
850
+ serious commitment as he begins <a href="https://www.techdirt.com/articles/20170206/06403236642/new-fcc-boss-ajit-pai-insists-hes-all-about-helping-poor-gets-right-to-work-harming-them-instead.shtml">dismantling all manner of
851
+ broadband consumer protections</a>, not just net neutrality.</p>
852
+
853
+ <p>As you might have expected, the FCC was quick to release a
854
+ statement claiming that gutting the popular consumer protections
855
+ would usher forth a magical age of connectivity, investment, and
856
+ innovation.</p>
857
+ </blockquote>
858
+
859
+ <p>(<a href="https://pxlnv.com/linklog/fcc-vote-may-18/">Via Nick Heer</a>.)</p>
860
+
861
+ <div>
862
+ <a title="Permanent link to ‘FCC Votes to Begin Dismantling Net Neutrality’" href="https://daringfireball.net/linked/2017/05/18/net-neutrality">&nbsp;★&nbsp;</a>
863
+ </div>
864
+
865
+ ]]></content>
866
+ </entry><entry>
867
+ <title>‘You Know My Name’</title>
868
+ <link rel="alternate" type="text/html" href="https://www.youtube.com/watch?v=A1AMUmkj-ck" />
869
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0b" />
870
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/cornell-casino-royale" />
871
+ <id>tag:daringfireball.net,2017:/linked//6.33707</id>
872
+ <published>2017-05-18T22:24:55Z</published>
873
+ <updated>2017-05-18T22:24:56Z</updated>
874
+ <author>
875
+ <name>John Gruber</name>
876
+ <uri>http://daringfireball.net/</uri>
877
+ </author>
878
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
879
+ <p>One of my very favorite songs from Chris Cornell &#8212; the opening credits theme to <em>Casino Royale</em>. A great song that just fits the movie so damn well.</p>
880
+
881
+ <div>
882
+ <a title="Permanent link to ‘&#8216;You Know My Name&#8217;’" href="https://daringfireball.net/linked/2017/05/18/cornell-casino-royale">&nbsp;★&nbsp;</a>
883
+ </div>
884
+
885
+ ]]></content>
886
+ </entry><entry>
887
+ <title>Chris Cornell of Soundgarden, Dead at 52</title>
888
+ <link rel="alternate" type="text/html" href="https://www.nytimes.com/2017/05/18/arts/music/chris-cornell-dead-soundgarden.html?_r=0" />
889
+ <link rel="shorturl" type="text/html" href="http://df4.us/q0a" />
890
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/cornell" />
891
+ <id>tag:daringfireball.net,2017:/linked//6.33706</id>
892
+ <published>2017-05-18T22:20:21Z</published>
893
+ <updated>2017-05-19T07:17:15Z</updated>
894
+ <author>
895
+ <name>John Gruber</name>
896
+ <uri>http://daringfireball.net/</uri>
897
+ </author>
898
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
899
+ <p>The New York Times:</p>
900
+
901
+ <blockquote>
902
+ <p>Chris Cornell, the powerful, dynamic singer whose band Soundgarden
903
+ was one of the architects of grunge music, died on Wednesday night
904
+ in Detroit hours after the band had performed there. He was 52.</p>
905
+
906
+ <p>The death was a suicide by hanging, the Wayne County Medical
907
+ Examiner’s Office said in a statement released on Thursday
908
+ afternoon. It said a full autopsy had not yet been completed.</p>
909
+ </blockquote>
910
+
911
+ <p>Fuck.</p>
912
+
913
+ <div>
914
+ <a title="Permanent link to ‘Chris Cornell of Soundgarden, Dead at 52’" href="https://daringfireball.net/linked/2017/05/18/cornell">&nbsp;★&nbsp;</a>
915
+ </div>
916
+
917
+ ]]></content>
918
+ </entry><entry>
919
+ <title>jq</title>
920
+ <link rel="alternate" type="text/html" href="https://stedolan.github.io/jq/" />
921
+ <link rel="shorturl" type="text/html" href="http://df4.us/q09" />
922
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/jq" />
923
+ <id>tag:daringfireball.net,2017:/linked//6.33705</id>
924
+ <published>2017-05-18T20:40:38Z</published>
925
+ <updated>2017-05-18T20:40:40Z</updated>
926
+ <author>
927
+ <name>John Gruber</name>
928
+ <uri>http://daringfireball.net/</uri>
929
+ </author>
930
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
931
+ <p>There&#8217;s a cool command-line JSON processor called <code>jq</code> &#8212; easily installed on a Mac via download or <a href="https://brew.sh/">Homebrew</a>, and even more easily tinkered with using <a href="https://jqplay.org/">the online playground</a>. Here&#8217;s how easy <code>jq</code> makes it to get, say, a list of the titles from DF&#8217;s <a href="https://jsonfeed.org/">JSON feed</a>:</p>
932
+
933
+ <pre><code>curl -s https://daringfireball.net/feeds/json | jq '.items[].title'
934
+ </code></pre>
935
+
936
+ <div>
937
+ <a title="Permanent link to ‘jq’" href="https://daringfireball.net/linked/2017/05/18/jq">&nbsp;★&nbsp;</a>
938
+ </div>
939
+
940
+ ]]></content>
941
+ </entry><entry>
942
+ <title>The World’s First JSON Feed Viewer</title>
943
+ <link rel="alternate" type="text/html" href="https://twitter.com/vaillancourtmax/status/865291487881383937" />
944
+ <link rel="shorturl" type="text/html" href="http://df4.us/q08" />
945
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/maxime-vaillancourt-json-feed-viewer" />
946
+ <id>tag:daringfireball.net,2017:/linked//6.33704</id>
947
+ <published>2017-05-18T20:32:06Z</published>
948
+ <updated>2017-05-18T20:39:47Z</updated>
949
+ <author>
950
+ <name>John Gruber</name>
951
+ <uri>http://daringfireball.net/</uri>
952
+ </author>
953
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
954
+ <p>Maxime Vaillancourt:</p>
955
+
956
+ <blockquote>
957
+ <p>Here&#8217;s a tiny proof of concept for a <a href="https://twitter.com/@jsonfeed">@jsonfeed</a> viewer, built in an
958
+ hour: <a href="http://json-feed-viewer.herokuapp.com">http://json-feed-viewer.herokuapp.com</a></p>
959
+ </blockquote>
960
+
961
+ <p>One of the things I love about <a href="https://jsonfeed.org/">JSON Feed</a> is that it&#8217;s <em>fun</em>. JSON is so simple, and so well-supported by almost all programming languages, that you can build something interesting in just a few minutes, and something useful in an hour. There was <a href="https://news.ycombinator.com/item?id=14361178">a comment</a> on the Hacker News thread about JSON Feed that I loved:</p>
962
+
963
+ <blockquote>
964
+ <p>It is very likely than I am an idiot, but I&#8217;ve always found
965
+ parsing XML too hard, specially compared to JSON which is almost
966
+ too easy.</p>
967
+ </blockquote>
968
+
969
+ <p>&#8220;Almost too easy&#8221; are three words no one has ever said about XML.</p>
970
+
971
+ <div>
972
+ <a title="Permanent link to ‘The World&#8217;s First JSON Feed Viewer’" href="https://daringfireball.net/linked/2017/05/18/maxime-vaillancourt-json-feed-viewer">&nbsp;★&nbsp;</a>
973
+ </div>
974
+
975
+ ]]></content>
976
+ </entry><entry>
977
+ <title>Apple Is Testing an Apple Watch Glucose Monitor</title>
978
+ <link rel="alternate" type="text/html" href="http://www.cnbc.com/2017/05/18/apple-ceo-tim-cook-test-drove-glucose-monitor.html" />
979
+ <link rel="shorturl" type="text/html" href="http://df4.us/q07" />
980
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/apple-watch-glucose" />
981
+ <id>tag:daringfireball.net,2017:/linked//6.33703</id>
982
+ <published>2017-05-18T20:24:52Z</published>
983
+ <updated>2017-05-18T20:24:54Z</updated>
984
+ <author>
985
+ <name>John Gruber</name>
986
+ <uri>http://daringfireball.net/</uri>
987
+ </author>
988
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
989
+ <p>Christina Farr, reporting for CNBC:</p>
990
+
991
+ <blockquote>
992
+ <p>Tim Cook has been spotted at the Apple campus test-driving a
993
+ device that tracks blood sugar, which was connected to his
994
+ Apple Watch.</p>
995
+
996
+ <p>A source said that Cook was wearing a prototype glucose-tracker on
997
+ the Apple Watch, which points to future applications that would
998
+ make the device a &#8220;must have&#8221; for millions of people with diabetes
999
+ &#8212; or at risk for the disease.</p>
1000
+
1001
+ <p><a href="http://www.cnbc.com/2017/04/12/apple-working-on-glucose-sensors-diabetes-treatment.html">As CNBC reported last month</a>, Apple has a team in Palo Alto
1002
+ working on the &#8220;holy grail&#8221; for diabetes: Non-invasive and
1003
+ continuous glucose monitoring. The current glucose trackers on the
1004
+ market rely on tiny sensors penetrating the skin. Sources said the
1005
+ company is already conducting feasibility trials in the Bay Area.</p>
1006
+ </blockquote>
1007
+
1008
+ <p>Non-invasive continuous glucose monitoring would be a life-changer for anyone with diabetes. But I can&#8217;t even imagine how life-changing this will be for kids with diabetes and their parents.</p>
1009
+
1010
+ <div>
1011
+ <a title="Permanent link to ‘Apple Is Testing an Apple Watch Glucose Monitor’" href="https://daringfireball.net/linked/2017/05/18/apple-watch-glucose">&nbsp;★&nbsp;</a>
1012
+ </div>
1013
+
1014
+ ]]></content>
1015
+ </entry><entry>
1016
+ <title>CMD-D: Masters of Automation Conference</title>
1017
+ <link rel="alternate" type="text/html" href="https://www.cmddconf.com/" />
1018
+ <link rel="shorturl" type="text/html" href="http://df4.us/q06" />
1019
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/cmd-d-conference" />
1020
+ <id>tag:daringfireball.net,2017:/linked//6.33702</id>
1021
+ <published>2017-05-18T19:53:32Z</published>
1022
+ <updated>2017-05-18T19:53:34Z</updated>
1023
+ <author>
1024
+ <name>John Gruber</name>
1025
+ <uri>http://daringfireball.net/</uri>
1026
+ </author>
1027
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1028
+ <p>This sounds very cool: a one-day conference in August devoted to Mac and iOS scripting and automation, hosted by Paul Kent, Naomi Pearce, and Sal Soghoian.</p>
1029
+
1030
+ <div>
1031
+ <a title="Permanent link to ‘CMD-D: Masters of Automation Conference’" href="https://daringfireball.net/linked/2017/05/18/cmd-d-conference">&nbsp;★&nbsp;</a>
1032
+ </div>
1033
+
1034
+ ]]></content>
1035
+ </entry><entry>
1036
+ <title>Final Cut Pro X and Closed Captions</title>
1037
+ <link rel="alternate" type="text/html" href="http://hammonwry.com/forgotten-again/" />
1038
+ <link rel="shorturl" type="text/html" href="http://df4.us/q05" />
1039
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/18/fcpx-closed-captions" />
1040
+ <id>tag:daringfireball.net,2017:/linked//6.33701</id>
1041
+ <published>2017-05-18T16:42:06Z</published>
1042
+ <updated>2017-05-18T16:42:07Z</updated>
1043
+ <author>
1044
+ <name>John Gruber</name>
1045
+ <uri>http://daringfireball.net/</uri>
1046
+ </author>
1047
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1048
+ <p>Kevin Hamm:</p>
1049
+
1050
+ <blockquote>
1051
+ <p>Captions can be just text at timecode, which is simple. In their
1052
+ most complex, they are styled, located text at timecode. That’s
1053
+ it. Nothing more. I work in text and titles and timecode every day
1054
+ in every video I do, so there is no reason that this simple
1055
+ function isn’t baked in at this point. Words at timecode. That’s
1056
+ all it is.</p>
1057
+
1058
+ <p>That Apple is making their systems and products accessible is
1059
+ great. Xcode grants programmers the ability to build accessible
1060
+ apps, and has from the beginning, which is even better as it makes
1061
+ a massive part of the ecosystem accessible.</p>
1062
+
1063
+ <p>That Final Cut Pro hasn’t ever and still doesn’t create closed
1064
+ captions is a smudge on that image.</p>
1065
+ </blockquote>
1066
+
1067
+ <p>It seems bonkers to me that Final Cut Pro X doesn&#8217;t have support for closed captions. Coming from Apple, you&#8217;d think it would have <em>excellent</em> support for them. How does Apple create closed captions for their own videos?</p>
1068
+
1069
+ <div>
1070
+ <a title="Permanent link to ‘Final Cut Pro X and Closed Captions’" href="https://daringfireball.net/linked/2017/05/18/fcpx-closed-captions">&nbsp;★&nbsp;</a>
1071
+ </div>
1072
+
1073
+ ]]></content>
1074
+ </entry><entry>
1075
+ <title>Source Code for Panic Apps Stolen By Malware Thieves</title>
1076
+ <link rel="alternate" type="text/html" href="https://panic.com/blog/stolen-source-code/" />
1077
+ <link rel="shorturl" type="text/html" href="http://df4.us/q04" />
1078
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/panic-handbrake-thieves" />
1079
+ <id>tag:daringfireball.net,2017:/linked//6.33700</id>
1080
+ <published>2017-05-17T18:26:52Z</published>
1081
+ <updated>2017-05-18T00:08:29Z</updated>
1082
+ <author>
1083
+ <name>John Gruber</name>
1084
+ <uri>http://daringfireball.net/</uri>
1085
+ </author>
1086
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1087
+ <p>Steven Frank:</p>
1088
+
1089
+ <blockquote>
1090
+ <p>Last week, for about three days, <a href="https://blog.malwarebytes.com/threat-analysis/mac-threat-analysis/2017/05/handbrake-hacked-to-drop-new-variant-of-proton-malware/">the macOS video transcoding app
1091
+ HandBrake</a> was compromised. One of the two download servers for
1092
+ HandBrake was serving up a special malware-infested version of the
1093
+ app, that, when launched, would essentially give hackers remote
1094
+ control of your computer.</p>
1095
+
1096
+ <p>In a case of extraordinarily bad luck, even for a guy that has a
1097
+ lot of bad computer luck, I happened to download HandBrake in that
1098
+ three day window, and my work Mac got pwned.</p>
1099
+
1100
+ <p>Long story short, <em>somebody, somewhere, now has quite a bit of
1101
+ source code to several of our apps</em>.</p>
1102
+ </blockquote>
1103
+
1104
+ <p>This is one hell of a story and quite a shock, but the crew at Panic kept their heads together and did the right thing: they&#8217;ve opened up completely and honestly, refused to deal with the blackmailer, and I think they are correctly unworried about their source code being leaked publicly.</p>
1105
+
1106
+ <div>
1107
+ <a title="Permanent link to ‘Source Code for Panic Apps Stolen By Malware Thieves’" href="https://daringfireball.net/linked/2017/05/17/panic-handbrake-thieves">&nbsp;★&nbsp;</a>
1108
+ </div>
1109
+
1110
+ ]]></content>
1111
+ </entry><entry>
1112
+ <title>Dave Itzkoff Profiles Jimmy Fallon for The New York Times</title>
1113
+ <link rel="alternate" type="text/html" href="https://www.nytimes.com/2017/05/17/arts/television/jimmy-fallon-tonight-show-interview-trump.html" />
1114
+ <link rel="shorturl" type="text/html" href="http://df4.us/q03" />
1115
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/itzkoff-fallon" />
1116
+ <id>tag:daringfireball.net,2017:/linked//6.33699</id>
1117
+ <published>2017-05-17T17:33:40Z</published>
1118
+ <updated>2017-05-17T17:33:41Z</updated>
1119
+ <author>
1120
+ <name>John Gruber</name>
1121
+ <uri>http://daringfireball.net/</uri>
1122
+ </author>
1123
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1124
+ <p>Fascinating behind-the-scenes look at The Tonight Show, including a look inside Fallon&#8217;s briefcase (he&#8217;s got a Nintendo Switch in there).</p>
1125
+
1126
+ <div>
1127
+ <a title="Permanent link to ‘Dave Itzkoff Profiles Jimmy Fallon for The New York Times’" href="https://daringfireball.net/linked/2017/05/17/itzkoff-fallon">&nbsp;★&nbsp;</a>
1128
+ </div>
1129
+
1130
+ ]]></content>
1131
+ </entry><entry>
1132
+ <title>Announcing JSON Feed</title>
1133
+ <link rel="alternate" type="text/html" href="https://jsonfeed.org/2017/05/17/announcing_json_feed" />
1134
+ <link rel="shorturl" type="text/html" href="http://df4.us/q02" />
1135
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/json-feed" />
1136
+ <id>tag:daringfireball.net,2017:/linked//6.33698</id>
1137
+ <published>2017-05-17T17:24:53Z</published>
1138
+ <updated>2017-05-17T17:56:42Z</updated>
1139
+ <author>
1140
+ <name>John Gruber</name>
1141
+ <uri>http://daringfireball.net/</uri>
1142
+ </author>
1143
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1144
+ <p>Brent Simmons and Manton Reece:</p>
1145
+
1146
+ <blockquote>
1147
+ <p>We &#8212; Manton Reece and Brent Simmons &#8212; have noticed that JSON has
1148
+ become the developers’ choice for APIs, and that developers will
1149
+ often go out of their way to avoid XML. JSON is simpler to read
1150
+ and write, and it’s less prone to bugs.</p>
1151
+
1152
+ <p>So we developed JSON Feed, a format similar to <a href="http://cyber.harvard.edu/rss/rss.html">RSS</a> and <a href="https://tools.ietf.org/html/rfc4287">Atom</a> but in
1153
+ JSON. It reflects the lessons learned from our years of work
1154
+ reading and publishing feeds.</p>
1155
+ </blockquote>
1156
+
1157
+ <p>I think this is a great idea, and a good spec. I even like the style in which <a href="https://jsonfeed.org/version/1">the spec</a> is written: for real humans (much like the RSS spec). If you want to see a real-life example, <a href="https://daringfireball.net/feeds/json">Daring Fireball has a JSON Feed</a>. I&#8217;ve got a good feeling about this project &#8212; the same sort of feeling I had <a href="https://daringfireball.net/2004/03/introducing_markdown">about Markdown</a> <a href="https://daringfireball.net/2004/03/dive_into_markdown">back in the day</a>.</p>
1158
+
1159
+ <div>
1160
+ <a title="Permanent link to ‘Announcing JSON Feed’" href="https://daringfireball.net/linked/2017/05/17/json-feed">&nbsp;★&nbsp;</a>
1161
+ </div>
1162
+
1163
+ ]]></content>
1164
+ </entry><entry>
1165
+ <title>New Apple Videos Highlight Real-World Accessibility</title>
1166
+ <link rel="alternate" type="text/html" href="http://mashable.com/2017/05/17/apple-accessibility-videos-disability/" />
1167
+ <link rel="shorturl" type="text/html" href="http://df4.us/q01" />
1168
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/accessibility-apple" />
1169
+ <id>tag:daringfireball.net,2017:/linked//6.33697</id>
1170
+ <published>2017-05-17T06:03:01Z</published>
1171
+ <updated>2017-05-17T06:17:10Z</updated>
1172
+ <author>
1173
+ <name>John Gruber</name>
1174
+ <uri>http://daringfireball.net/</uri>
1175
+ </author>
1176
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1177
+ <p>Nice piece for Mashable by Katie Dupere on <a href="https://www.youtube.com/user/Apple/videos">a bunch of new videos in Apple&#8217;s YouTube channel</a>, highlighting real-world usage of iOS and MacOS accessibility features. People who can&#8217;t move, people who can&#8217;t talk, people who can&#8217;t see or hear &#8212; doing amazing things. Apple&#8217;s commitment to accessibility is one of my very favorite things about the company. It&#8217;s not just the right thing to do for people who truly need these features &#8212; it makes the products better for everyone.</p>
1178
+
1179
+ <p><strong>Update:</strong> <a href="http://www.loopinsight.com/2017/05/16/apple-videos-highlight-accessibility-achievements/?utm_source=loopinsight.com/">Jim Dalrymple has all 7 videos collected on one page</a>.</p>
1180
+
1181
+ <div>
1182
+ <a title="Permanent link to ‘New Apple Videos Highlight Real-World Accessibility’" href="https://daringfireball.net/linked/2017/05/17/accessibility-apple">&nbsp;★&nbsp;</a>
1183
+ </div>
1184
+
1185
+ ]]></content>
1186
+ </entry><entry>
1187
+ <title>Lyft and Waymo Reach Deal to Collaborate on Self-Driving Cars</title>
1188
+ <link rel="alternate" type="text/html" href="https://www.nytimes.com/2017/05/14/technology/lyft-waymo-self-driving-cars.html" />
1189
+ <link rel="shorturl" type="text/html" href="http://df4.us/q00" />
1190
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/lyft-google" />
1191
+ <id>tag:daringfireball.net,2017:/linked//6.33696</id>
1192
+ <published>2017-05-17T05:20:45Z</published>
1193
+ <updated>2017-05-17T05:20:47Z</updated>
1194
+ <author>
1195
+ <name>John Gruber</name>
1196
+ <uri>http://daringfireball.net/</uri>
1197
+ </author>
1198
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1199
+ <p>Mike Isaac, writing for The New York Times:</p>
1200
+
1201
+ <blockquote>
1202
+ <p>Waymo, the self-driving car unit that operates under Google’s
1203
+ parent company, has signed a deal with the ride-hailing start-up
1204
+ Lyft, according to two people familiar with the agreement who
1205
+ spoke on the condition of anonymity because they were not
1206
+ authorized to speak publicly. The deal calls for the companies to
1207
+ work together to bring autonomous vehicle technology into the
1208
+ mainstream through pilot projects and product development efforts,
1209
+ these people said.</p>
1210
+
1211
+ <p>The deal was confirmed by Lyft and Waymo.</p>
1212
+ </blockquote>
1213
+
1214
+ <p>Who knows, maybe Google would have made this same deal with Lyft even in the alternate universe where Uber didn&#8217;t steal Google&#8217;s tech. But it sure looks like Uber has made a powerful enemy.</p>
1215
+
1216
+ <div>
1217
+ <a title="Permanent link to ‘Lyft and Waymo Reach Deal to Collaborate on Self-Driving Cars’" href="https://daringfireball.net/linked/2017/05/17/lyft-google">&nbsp;★&nbsp;</a>
1218
+ </div>
1219
+
1220
+ ]]></content>
1221
+ </entry><entry>
1222
+ <title>Long Live MP3</title>
1223
+ <link rel="alternate" type="text/html" href="https://marco.org/2017/05/15/mp3-isnt-dead" />
1224
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzz" />
1225
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/17/long-live-mp3" />
1226
+ <id>tag:daringfireball.net,2017:/linked//6.33695</id>
1227
+ <published>2017-05-17T05:03:28Z</published>
1228
+ <updated>2017-05-17T16:28:11Z</updated>
1229
+ <author>
1230
+ <name>John Gruber</name>
1231
+ <uri>http://daringfireball.net/</uri>
1232
+ </author>
1233
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1234
+ <p>Marco Arment:</p>
1235
+
1236
+ <blockquote>
1237
+ <p>Until a few weeks ago, there had never been an audio format that
1238
+ was small enough to be practical, widely supported, and had no
1239
+ patent restrictions, forcing <a href="http://shaver.off.net/diary/2010/01/23/html5-video-and-codecs/">difficult choices</a> and <a href="http://stackoverflow.com/questions/4923136/why-doesnt-firefox-support-the-mp3-file-format-in-audio">needless
1240
+ friction</a> upon the computing world. Now, at least for audio,
1241
+ that friction has officially ended. There’s finally a great choice
1242
+ without asterisks.</p>
1243
+
1244
+ <p><em>MP3 is supported by everything, everywhere, and is now
1245
+ patent-free.</em></p>
1246
+ </blockquote>
1247
+
1248
+ <p>I wasn&#8217;t paying attention last week when <a href="http://gizmodo.com/developers-of-the-mp3-have-officially-killed-it-1795205540">Gizmodo</a>, <a href="https://www.engadget.com/2017/05/12/mp3-is-dead-long-live-aac/">Engadget</a>, and <a href="http://www.npr.org/sections/therecord/2017/05/11/527829909/the-mp3-is-officially-dead-according-to-its-creators">NPR</a> got hoodwinked into writing &#8220;MP3 Is Dead&#8221; stories by an announcement from Fraunhofer pushing people to switch from the now-open MP3 to the still-patent-encumbered AAC.</p>
1249
+
1250
+ <p>On Twitter, Marco pointed to <a href="https://daringfireball.net/2007/04/some_facts_about_aac">this 10-year-old piece from yours truly</a>, describing the then-pipe-dream of Ogg Vorbis:</p>
1251
+
1252
+ <blockquote>
1253
+ <p>The ideal scenario would be for a genuinely open and free file
1254
+ format such as Ogg Vorbis to supplant MP3 as the de facto world
1255
+ standard. No patents, no licensing fees, a documented file format,
1256
+ open source libraries for encoding and decoding. That doesn’t seem
1257
+ to be in the cards, however. In the real world, major corporations
1258
+ only seem comfortable with multimedia formats backed by other
1259
+ large corporations.</p>
1260
+ </blockquote>
1261
+
1262
+ <p>Now that the MP3 patents have expired, the situation is even better, because MP3 has been so thoroughly vetted, patent-wise. Idealism seldom wins out in these format battles. But time always wins.</p>
1263
+
1264
+ <div>
1265
+ <a title="Permanent link to ‘Long Live MP3’" href="https://daringfireball.net/linked/2017/05/17/long-live-mp3">&nbsp;★&nbsp;</a>
1266
+ </div>
1267
+
1268
+ ]]></content>
1269
+ </entry><entry>
1270
+ <title>Engadget: ‘The First Television With Amazon Fire TV Built in Is Just Fine’</title>
1271
+ <link rel="alternate" type="text/html" href="https://www.engadget.com/2017/05/16/amazon-fire-tv-built-in-4k-tv/" />
1272
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzy" />
1273
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/16/fire-tv" />
1274
+ <id>tag:daringfireball.net,2017:/linked//6.33694</id>
1275
+ <published>2017-05-17T03:52:36Z</published>
1276
+ <updated>2017-05-17T03:52:38Z</updated>
1277
+ <author>
1278
+ <name>John Gruber</name>
1279
+ <uri>http://daringfireball.net/</uri>
1280
+ </author>
1281
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1282
+ <p>I think the big news isn&#8217;t that there&#8217;s a cheap TV with Fire built-in &#8212; it&#8217;s that Amazon is promoting it heavily on their home page. Google&#8217;s home page is probably <a href="https://daringfireball.net/linked/2009/11/06/google-advertising">still</a> the most valuable advertising real estate on the Internet, but Amazon&#8217;s is almost certainly more valuable for selling consumer goods, because people visiting Amazon are ready to buy.</p>
1283
+
1284
+ <div>
1285
+ <a title="Permanent link to ‘Engadget: &#8216;The First Television With Amazon Fire TV Built in Is Just Fine&#8217;’" href="https://daringfireball.net/linked/2017/05/16/fire-tv">&nbsp;★&nbsp;</a>
1286
+ </div>
1287
+
1288
+ ]]></content>
1289
+ </entry><entry>
1290
+ <title>Loog Guitars</title>
1291
+ <link rel="alternate" type="text/html" href="https://www.kickstarter.com/projects/loog/loog-pro-and-loog-mini-the-ultimate-beginners-guit" />
1292
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzx" />
1293
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/16/loog" />
1294
+ <id>tag:daringfireball.net,2017:/linked//6.33693</id>
1295
+ <published>2017-05-16T20:27:46Z</published>
1296
+ <updated>2017-05-20T03:46:03Z</updated>
1297
+ <author>
1298
+ <name>John Gruber</name>
1299
+ <uri>http://daringfireball.net/</uri>
1300
+ </author>
1301
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1302
+ <p>Rafael Atijas, founder of Loog Guitars:</p>
1303
+
1304
+ <blockquote>
1305
+ <p>Loog Guitars are small, 3-string guitars designed to make it fun
1306
+ and easy for anyone to play music. They come with flashcards and
1307
+ an app that get you playing songs on day one.</p>
1308
+ </blockquote>
1309
+
1310
+ <p>I don&#8217;t know much about guitars, but these look cool, the prices seem very reasonable, and <a href="https://itunes.apple.com/us/app/loog-academy/id1068590682?mt=8">the app</a> looks great. It&#8217;s a Kickstarter project, but it&#8217;s already fully-funded (several times over) and they expect to start shipping next month.</p>
1311
+
1312
+ <div>
1313
+ <a title="Permanent link to ‘Loog Guitars’" href="https://daringfireball.net/linked/2017/05/16/loog">&nbsp;★&nbsp;</a>
1314
+ </div>
1315
+
1316
+ ]]></content>
1317
+ </entry><entry>
1318
+ <title>Today at Apple Launches</title>
1319
+ <link rel="alternate" type="text/html" href="https://www.apple.com/today/" />
1320
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzw" />
1321
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/16/today-at-apple" />
1322
+ <id>tag:daringfireball.net,2017:/linked//6.33692</id>
1323
+ <published>2017-05-16T19:44:34Z</published>
1324
+ <updated>2017-05-17T16:27:58Z</updated>
1325
+ <author>
1326
+ <name>John Gruber</name>
1327
+ <uri>http://daringfireball.net/</uri>
1328
+ </author>
1329
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1330
+ <p>Educational classes, photo walks, and more &#8212; from your local Apple Store. This, I think, is Angela Ahrendts&#8217;s biggest project at Apple to date. This is not just a program for the major flagship stores &#8212; it&#8217;s a program for every single Apple Store around the world. <a href="https://daringfireball.net/linked/2017/04/26/today-at-apple">As I wrote a few weeks ago</a>, Apple&#8217;s retail stores are one of the most overlooked / underestimated advantages in all of technology.</p>
1331
+
1332
+ <p><a href="https://techcrunch.com/2017/05/16/apple-launches-a-new-website-for-its-expanded-set-of-educational-classes-now-open-for-sign-ups/">Via Sarah Perez</a>, whose TechCrunch story points out that &#8220;The launch kicking off this week includes 4,000 sessions per day across Apple’s stores.&#8221;</p>
1333
+
1334
+ <div>
1335
+ <a title="Permanent link to ‘Today at Apple Launches’" href="https://daringfireball.net/linked/2017/05/16/today-at-apple">&nbsp;★&nbsp;</a>
1336
+ </div>
1337
+
1338
+ ]]></content>
1339
+ </entry><entry>
1340
+ <title>Steven Levy Tours Apple Park</title>
1341
+ <link rel="alternate" type="text/html" href="https://www.wired.com/2017/05/apple-park-new-silicon-valley-campus" />
1342
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzv" />
1343
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/16/levy-apple-park" />
1344
+ <id>tag:daringfireball.net,2017:/linked//6.33691</id>
1345
+ <published>2017-05-16T19:03:18Z</published>
1346
+ <updated>2017-05-16T19:03:20Z</updated>
1347
+ <author>
1348
+ <name>John Gruber</name>
1349
+ <uri>http://daringfireball.net/</uri>
1350
+ </author>
1351
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1352
+ <p>Steven Levy, writing for Wired:</p>
1353
+
1354
+ <blockquote>
1355
+ <p>On a crisp and clear March day, more than five years after Jobs’
1356
+ death, I’m seated next to Jonathan Ive in the back of a Jeep
1357
+ Wrangler as we prepare to tour the nearly completed Apple Park,
1358
+ the name recently bestowed on the campus that Jobs pitched to the
1359
+ Cupertino City Council in 2011. At 50, Apple’s design chieftain
1360
+ still looks like the rugby player he once was, and he remains,
1361
+ despite fame, fortune, and a knighthood, the same soft-spoken Brit
1362
+ I met almost 20 years ago. We are both wearing white hard hats
1363
+ with a silver Apple logo above the brim; Ive’s is personalized
1364
+ with “Jony” underneath the iconic symbol. Dan Whisenhunt, the
1365
+ company’s head of facilities and a de facto manager of the
1366
+ project, comes with us. He too has a personalized hat. It is an
1367
+ active construction site on a tight deadline &#8212; the first
1368
+ occupants are supposedly moving in within 30 days of my visit,
1369
+ with 500 new employees arriving every week thereafter &#8212; and I
1370
+ felt a bit like one of the passengers on the first ride into
1371
+ Jurassic Park.</p>
1372
+ </blockquote>
1373
+
1374
+ <p>Fantastic piece. Hard not to get a little choked up thinking about it as Steve Jobs&#8217;s final product:</p>
1375
+
1376
+ <blockquote>
1377
+ <p>“Could we have cut a corner here or there?” Cook asks
1378
+ rhetorically. “It wouldn’t have been Apple. And it wouldn’t have
1379
+ sent the message to everybody working here every day that detail
1380
+ matters, that care matters.” That was what Jobs wanted &#8212; what he
1381
+ always wanted. And the current leaders of Apple are determined
1382
+ not to disappoint him in what is arguably his biggest, and is
1383
+ certainly his last, product launch. “I revere him,” Cook says.
1384
+ “And this was clearly his vision, his concept. Our biggest
1385
+ project ever.”</p>
1386
+ </blockquote>
1387
+
1388
+ <div>
1389
+ <a title="Permanent link to ‘Steven Levy Tours Apple Park’" href="https://daringfireball.net/linked/2017/05/16/levy-apple-park">&nbsp;★&nbsp;</a>
1390
+ </div>
1391
+
1392
+ ]]></content>
1393
+ </entry><entry>
1394
+ <title>When the World Is Led by a Child</title>
1395
+ <link rel="alternate" type="text/html" href="https://mobile.nytimes.com/2017/05/15/opinion/trump-classified-data.html?referer=https://t.co/nBwtm1zsnd" />
1396
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzu" />
1397
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/16/trump-brooks" />
1398
+ <id>tag:daringfireball.net,2017:/linked//6.33690</id>
1399
+ <published>2017-05-16T16:40:49Z</published>
1400
+ <updated>2017-05-16T16:40:51Z</updated>
1401
+ <author>
1402
+ <name>John Gruber</name>
1403
+ <uri>http://daringfireball.net/</uri>
1404
+ </author>
1405
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1406
+ <p>David Brooks has the line of the day:</p>
1407
+
1408
+ <blockquote>
1409
+ <p>We’ve got this perverse situation in which the vast analytic
1410
+ powers of the entire world are being spent trying to understand a
1411
+ guy whose thoughts are often just six fireflies beeping randomly
1412
+ in a jar.</p>
1413
+ </blockquote>
1414
+
1415
+ <div>
1416
+ <a title="Permanent link to ‘When the World Is Led by a Child’" href="https://daringfireball.net/linked/2017/05/16/trump-brooks">&nbsp;★&nbsp;</a>
1417
+ </div>
1418
+
1419
+ ]]></content>
1420
+ </entry><entry>
1421
+ <title>The Washington Post: ‘Trump Revealed Highly Classified Information to Russian Foreign Minister and Ambassador’</title>
1422
+ <link rel="alternate" type="text/html" href="https://www.washingtonpost.com/world/national-security/trump-revealed-highly-classified-information-to-russian-foreign-minister-and-ambassador/2017/05/15/530c172a-3960-11e7-9e48-c4f199710b69_story.html" />
1423
+ <link rel="shorturl" type="text/html" href="http://df4.us/pzs" />
1424
+ <link rel="related" type="text/html" href="https://daringfireball.net/linked/2017/05/15/trump-russia" />
1425
+ <id>tag:daringfireball.net,2017:/linked//6.33688</id>
1426
+ <published>2017-05-15T22:13:00Z</published>
1427
+ <updated>2017-05-15T22:15:57Z</updated>
1428
+ <author>
1429
+ <name>John Gruber</name>
1430
+ <uri>http://daringfireball.net/</uri>
1431
+ </author>
1432
+ <content type="html" xml:base="https://daringfireball.net/linked/" xml:lang="en"><![CDATA[
1433
+ <p>Greg Miller and Greg Jaffe, reporting for The Washington Post:</p>
1434
+
1435
+ <blockquote>
1436
+ <p>In his meeting with Lavrov, Trump seemed to be boasting about his
1437
+ inside knowledge of the looming threat. “I get great intel. I have
1438
+ people brief me on great intel every day,” the president said,
1439
+ according to an official with knowledge of the exchange.</p>
1440
+
1441
+ <p>Trump went on to discuss aspects of the threat that the United
1442
+ States learned only through the espionage capabilities of a key
1443
+ partner. He did not reveal the specific intelligence-gathering
1444
+ method, but he described how the Islamic State was pursuing
1445
+ elements of a specific plot and how much harm such an attack could
1446
+ cause under varying circumstances. Most alarmingly, officials
1447
+ said, Trump revealed the city in the Islamic State’s territory
1448
+ where the U.S. intelligence partner detected the threat.</p>
1449
+
1450
+ <p>The Washington Post is withholding most plot details, including
1451
+ the name of the city, at the urging of officials who warned that
1452
+ revealing them would jeopardize important intelligence
1453
+ capabilities.</p>
1454
+ </blockquote>
1455
+
1456
+ <p>Is Trump a Russian collaborator? A bumbling idiot? Both? No matter what the answer is, he&#8217;s unfit to be president. This would be comical if the stakes weren&#8217;t so high. If a cabinet secretary had blabbed about this they&#8217;d be fired on the spot.</p>
1457
+
1458
+ <div>
1459
+ <a title="Permanent link to ‘The Washington Post: &#8216;Trump Revealed Highly Classified Information to Russian Foreign Minister and Ambassador&#8217;’" href="https://daringfireball.net/linked/2017/05/15/trump-russia">&nbsp;★&nbsp;</a>
1460
+ </div>
1461
+
1462
+ ]]></content>
1463
+ </entry><entry>
1464
+
1465
+ <link rel="alternate" type="text/html" href="http://df.stashword.com/" />
1466
+ <link rel="shorturl" href="http://df4.us/pzt" />
1467
+ <link rel="related" type="text/html" href="https://daringfireball.net/feeds/sponsors/2017/05/stashword_ios_app_and_website" />
1468
+ <id>tag:daringfireball.net,2017:/feeds/sponsors//11.33689</id>
1469
+ <author><name>Daring Fireball Department of Commerce</name></author>
1470
+ <published>2017-05-15T18:52:31-04:00</published>
1471
+ <updated>2017-05-20T15:34:13-04:00</updated>
1472
+ <content type="html" xml:base="https://daringfireball.net/feeds/sponsors/" xml:lang="en"><![CDATA[
1473
+ <p>Stashword&#8217;s iOS app is a simple yet feature rich password manager trusted by thousands of users. Stashword is not just an incredible password manager, it is also a secure digital vault where you can save, organize and share notes, codes, bank information, credit cards, and more. You can even scan and save documents such as your drivers license, insurance, passport etc.</p>
1474
+
1475
+ <p>Stashword is free to try for 15 days. Paid membership enables you to synchronize across all your devices and use their full-featured website <a href="http://www.stashword.com/">www.stashword.com</a>. For this week only, yearly membership is $7.99, which is 20 percent off the regular price.</p>
1476
+
1477
+ <div>
1478
+ <a title="Permanent link to ‘Stashword iOS App and Website’" href="https://daringfireball.net/feeds/sponsors/2017/05/stashword_ios_app_and_website">&nbsp;★&nbsp;</a>
1479
+ </div>
1480
+
1481
+ ]]></content>
1482
+ <title>[Sponsor] Stashword iOS App and Website</title></entry><entry>
1483
+
1484
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/05/dropping_tech_giants" />
1485
+ <link rel="shorturl" href="http://df4.us/pzj" />
1486
+ <id>tag:daringfireball.net,2017://1.33679</id>
1487
+ <published>2017-05-12T15:58:22Z</published>
1488
+ <updated>2017-05-14T20:26:47Z</updated>
1489
+ <author>
1490
+ <name>John Gruber</name>
1491
+ <uri>http://daringfireball.net/</uri>
1492
+ </author>
1493
+ <summary type="text">My answer to Farhad Manjoo’s question: “If an evil monarch forced you to choose, in what order would you give up these inescapable giants of tech?”</summary>
1494
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
1495
+ <p><a href="https://www.nytimes.com/interactive/2017/05/10/technology/Ranking-Apple-Amazon-Facebook-Microsoft-Google.html">Great interactive feature by Farhad Manjoo for The New York Times</a>:</p>
1496
+
1497
+ <blockquote>
1498
+ <p>Apple, Amazon, Facebook, Microsoft and Alphabet, the parent
1499
+ company of Google, are not just the largest technology companies
1500
+ in the world. As I’ve argued repeatedly in my column, they are
1501
+ also becoming the most powerful companies of any kind, essentially
1502
+ inescapable for any consumer or business that wants to participate
1503
+ in the modern world. But which of the Frightful Five is most
1504
+ unavoidable? I ponder the question in my column this week.</p>
1505
+
1506
+ <p>But what about you? If an evil monarch forced you to choose, in
1507
+ what order would you give up these inescapable giants of tech?</p>
1508
+ </blockquote>
1509
+
1510
+ <p>Great question. I love thought exercises.</p>
1511
+
1512
+ <p>My order (from first dropped to last):</p>
1513
+
1514
+ <ol>
1515
+ <li><p>Facebook. I love Instagram, but could live without it. I don&#8217;t use anything else Facebook offers.</p></li>
1516
+ <li><p>Microsoft. The only Microsoft product I use regularly is Skype, for podcasting, and I suspect I could find another solution. (If I couldn&#8217;t, I might have to rethink my answer here.)</p></li>
1517
+ <li><p>Amazon. I buy stuff from Amazon almost every week. I just counted &#8212; 11 orders so far in 2017. My wife buys stuff from Amazon even more frequently. But just about anything we buy at Amazon, we <em>could</em> buy elsewhere. It&#8217;d be painful to replace, but not irreplaceable. There are a couple of shows exclusive to Amazon Prime that I enjoy, but none that I love.</p></li>
1518
+ <li><p>Alphabet. I already use DuckDuckGo as my default search engine, so giving up Google search would be frustrating at times, but not a deal breaker. I use a few email accounts backed by Gmail, but I actually dislike Gmail, and have been procrastinating on moving all my mail to <a href="https://www.fastmail.com/">FastMail</a> for years. I despise Google Docs. I don&#8217;t use any Android devices other than as a curiosity. I greatly prefer Safari over Chrome. YouTube, however, is irreplaceable, and so essential that it pretty much singlehandedly catapults Alphabet to #4 in my list.</p></li>
1519
+ <li><p>Apple. I mean, come on. If not for Apple I&#8217;d be stuck using computers I don&#8217;t like and a phone that I consider a distant second-best. With all the other companies on the list, what I&#8217;d miss most are certain of their services &#8212; Instagram, Skype, Amazon&#8217;s store, YouTube &#8212; but Apple is the only company in the world whose hardware I consider irreplaceable. And you need the hardware to make best use of the services from any other companies. And that doesn&#8217;t even touch upon Apple&#8217;s crown jewels: the MacOS and iOS software platforms.</p></li>
1520
+ </ol>
1521
+
1522
+
1523
+
1524
+ ]]></content>
1525
+ <title>★ Dropping Tech Giants</title></entry><entry>
1526
+
1527
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/05/apples_china_problem_wechat" />
1528
+ <link rel="shorturl" href="http://df4.us/pz6" />
1529
+ <id>tag:daringfireball.net,2017://1.33666</id>
1530
+ <published>2017-05-05T18:37:24Z</published>
1531
+ <updated>2017-05-06T01:58:08Z</updated>
1532
+ <author>
1533
+ <name>John Gruber</name>
1534
+ <uri>http://daringfireball.net/</uri>
1535
+ </author>
1536
+ <summary type="text">Hardware differentiated by *superior, exclusive* software is the key to understanding Apple. And it might explain the iPhone’s sluggish sales in China.</summary>
1537
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
1538
+ <p><a href="https://stratechery.com/2017/apples-china-problem/">Ben Thompson had a great column this week</a>, in the wake of Apple&#8217;s quarterly results and Microsoft&#8217;s announcement of the Surface Laptop:</p>
1539
+
1540
+ <blockquote>
1541
+ <p>Did you hear about the new Microsoft Surface Laptop? The <a href="https://twitter.com/reckless/status/859448810187235330">usual
1542
+ suspects</a> are claiming it’s a MacBook competitor, which is
1543
+ true insomuch as it is a laptop. In truth, though, the Surface
1544
+ Laptop isn’t a MacBook competitor at all for the rather obvious
1545
+ reason that it runs Windows, while the MacBook runs MacOS. This
1546
+ has always been the foundation of Apple’s business model:
1547
+ <a href="https://stratechery.com/2016/everything-as-a-service/">hardware differentiated by software</a> such that said hardware
1548
+ can be sold with a margin much greater than nominal competitors
1549
+ running a commodity operating system.</p>
1550
+ </blockquote>
1551
+
1552
+ <p>Hardware differentiated by <em>superior, exclusive</em> software is the key to understanding Apple. It&#8217;s the reason the company was founded. Apple II&#8217;s were the best personal computer hardware <em>and</em> had the best software. Part of why Woz is so venerated is that he was unimaginably gifted at both hardware <em>and</em> <a href="http://gizmodo.com/how-steve-wozniak-wrote-basic-for-the-original-apple-fr-1570573636">software</a>. Hardware differentiated by software is how Apple survived in the late &#8217;90s, when the company was struggling. It explains all the company&#8217;s success after that: the iPod, the resurgence of the Mac, iPhone, iPad, and Apple Watch. Any comparison between Microsoft&#8217;s Surface Laptop and Apple&#8217;s MacBooks that doesn&#8217;t place heavy emphasis on the value of MacOS is vapid.</p>
1553
+
1554
+ <p>Thompson then turns to Apple&#8217;s languishing iPhone sales in China:</p>
1555
+
1556
+ <blockquote>
1557
+ <p>But that is not what is going on in most of the world: plenty of
1558
+ folks &#8212; more than last year &#8212; are happy to buy the iPhone 7,
1559
+ even though it doesn’t look much different than the iPhone 6.
1560
+ After all, if you need a new phone, and you want iOS, you don’t
1561
+ have much choice! Except, again, for China: that is the country
1562
+ where the appearance of the iPhone matters most; Apple’s
1563
+ problem, though, is that in China that is the only thing that
1564
+ matters at all.</p>
1565
+
1566
+ <p>The fundamental issue is this: unlike the rest of the world, in
1567
+ China the most important layer of the smartphone stack is not the
1568
+ phone’s operating system. Rather, it is WeChat. Connie Chan of
1569
+ Andreessen Horowitz <a href="http://a16z.com/2015/08/06/wechat-china-mobile-first/">tried to explain in 2015</a> just how integrated
1570
+ WeChat is into the daily lives of nearly <a href="http://mp.weixin.qq.com/s/5d6Th5wndmJT25cRHemZNg">900 million Chinese</a>, and
1571
+ that integration has only grown since then: every aspect of a
1572
+ typical Chinese person’s life, not just online but also off is
1573
+ conducted through a single app (and, to the extent other apps are
1574
+ used, they are often games promoted through WeChat).</p>
1575
+
1576
+ <p>There is nothing in any other country that is comparable: not
1577
+ LINE, not WhatsApp, not Facebook. All of those are about
1578
+ communication or wasting time: WeChat is that, but it is also for
1579
+ reading news, for hailing taxis, for paying for lunch (try and pay
1580
+ with cash for lunch, and you’ll look like a luddite), for
1581
+ accessing government resources, for business. For all intents and
1582
+ purposes WeChat is your phone, and to a far greater extent in
1583
+ China than anywhere else, your phone is everything.</p>
1584
+ </blockquote>
1585
+
1586
+ <p>As Thompson adds in a footnote, &#8220;Or, to put it another way, the operating system of China is WeChat, not iOS/Android.&#8221;</p>
1587
+
1588
+ <p>Thompson cites a staggering statistic: among existing iPhone users in China who bought a new phone in 2016, only 50 percent of them bought another iPhone. That is an incredible statistical outlier compared to iPhone users in the rest of the world, where Apple&#8217;s retention rates hover around the mid-80s.</p>
1589
+
1590
+ <p><a href="http://www.businessinsider.com/iphone-users-abandon-loyalty-to-apple-2016-11">Here&#8217;s a Business Insider report from November of last year</a>, with retention statistics from 2014 through 2016 from UBS analysts Steven Milunovich and Benjamin Wilson. Business Insider leads with the iPhone&#8217;s slowly declining retention rate globally, but the real story is halfway down the page, in <a href="http://static4.businessinsider.com/image/5818d4cbdd089533548b4991-1015/screen%20shot%202016-11-01%20at%2016.29.01.png">this chart</a>.</p>
1591
+
1592
+ <p>According to that research from UBS, iPhone retention rates hover in the mid-to-high 80s in the U.S., U.K., and Germany. In Japan they&#8217;re in the mid-70s, but holding roughly steady. China&#8217;s numbers have plummeted &#8212; and these numbers from UBS (in the mid-50s for Q4 2016) are in line with the 50 percent number in the Chinese survey Thompson cited.</p>
1593
+
1594
+ <p>So here&#8217;s Apple&#8217;s China problem: Chinese iPhone users aren&#8217;t nearly as loyal to the iPhone platform as iPhone users elsewhere are. This is already hurting Apple financially. Apple&#8217;s Q2 2017 financial results (announced this week) were, overall, OK. But other than China, they were actually good. The drop in iPhone sales in China was so severe, and China is so big, that it singlehandedly turned a good quarter into a so-so quarter.</p>
1595
+
1596
+ <p>I subtly disagree with Ben Thompson on one point. Thompson attributes the iPhone&#8217;s slide in China to two factors:</p>
1597
+
1598
+ <ol>
1599
+ <li>The whole &#8220;the operating system of China is WeChat, not iOS/Android&#8221; thing.</li>
1600
+ <li>The staleness of the iPhone 7 form factor.</li>
1601
+ </ol>
1602
+
1603
+ <p>Thompson knows Chinese culture well &#8212; he lives in Taipei, visits China often, and speaks Mandarin. My grasp of Chinese culture is rudimentary at best, and I&#8217;ve never traveled to Asia. So I defer to him on the point that the iPhone as a status symbol is more important in China than it is elsewhere.</p>
1604
+
1605
+ <p>Thompson, though, I think places too much weight on the fact that at a glance, some models of the iPhone 7 are indistinguishable from the iPhone 6 and 6S. Thompson argues that this is more of a problem in status-conscious China than it is elsewhere &#8212; that in China, there are many people who forego an upgrade to an iPhone 7 because other people won&#8217;t be able to tell that it isn&#8217;t, say, a boring two-year-old iPhone 6. I just don&#8217;t buy that. For one thing, the black and especially jet black iPhone 7 models <em>are</em> instantly recognizable as the latest and greatest.</p>
1606
+
1607
+ <p>But more importantly, I just think the whole &#8220;<em>if it doesn&#8217;t have an altogether new form factor, it&#8217;s boring</em>&#8221; thing is hogwash. <a href="http://daringfireball.net/2016/09/design_as_branding">I wrote an entire column about this</a> when the iPhone 7 debuted, and won&#8217;t rehash the whole argument here. But I am convinced this viewpoint is mostly that of the tech and gadget obsessed.</p>
1608
+
1609
+ <p>Again, I&#8217;ll concede that the status symbol aspect of a high-end smartphone may well be more important in China than anywhere else in the world. But even if I also concede that the iPhone 7&#8217;s mostly-like-the-iPhone-6 form factor is a problem for the Chinese market, if the iOS platform engendered the loyalty in China that it does elsewhere, the result would be Chinese iPhone owners waiting another year for the <em>next</em> iPhone. Instead, according to the market research cited above, half of the Chinese iPhone owners who bought a new phone in 2016 switched to an Android device. There are some fine looking Android phones at the high end of the market, but there are none that, based on form factor alone, would explain this. And none of them have anything close to the luxury brand prestige that Apple does.</p>
1610
+
1611
+ <p>In Apple&#8217;s &#8220;hardware differentiated by software&#8221; formula, the software is more important than the hardware. That&#8217;s why gadget writers so often get Apple wrong: they&#8217;re focused solely on hardware &#8212; the object, not the experience of using the object. That&#8217;s also why the financial press so often gets Apple wrong: they focus only on the hardware because that&#8217;s where the money comes from.</p>
1612
+
1613
+ <p>If forced to choose, I would much rather run iOS on a Google Pixel than Android on an iPhone 7. I would rather run MacOS on a ThinkPad than Windows on a MacBook Pro.<sup id="fnr1-2017-05-05"><a href="#fn1-2017-05-05">1</a></sup> Whenever I bring up this thought experiment &#8212; would you rather run Apple&#8217;s software platform on non-Apple hardware or run some other software platform on Apple hardware &#8212; I get email from readers who say they actually do choose Apple products, especially MacBooks, for the hardware. I believe them, but those are the sort of customers with the least loyalty to Apple. If all you depend on is, say, Chrome, a text editor, and a terminal, it&#8217;s easy to switch to another laptop brand. If you depend on native Mac and iOS apps, iCloud, and iMessage, it&#8217;s arduous, at best, to switch.</p>
1614
+
1615
+ <p>If it really is true that &#8220;the operating system of China is WeChat, not iOS/Android&#8221;, that&#8217;s the whole ballgame right there. Again, my disagreement with Thompson here is subtle. He even describes WeChat&#8217;s centrality to the Chinese smartphone stack as &#8220;the fundamental issue&#8221;, leaving the supposed boringness of the iPhone 6S and 7 as a secondary issue. My difference with Thompson is that I don&#8217;t think the iPhone 6S/7 hardware is a problem at all. Personally, I think the iPhone 7 is such a great phone, and the 7 Plus in particular has such a great camera, that the quality of the latest iPhone hardware, including how it looks, shows just how much of a problem it is that WeChat, not iOS, is central to the iPhone experience in China.</p>
1616
+
1617
+ <p>That&#8217;s a real problem for Apple, because even if Thompson is right (and I&#8217;m wrong) and Apple <em>does</em> have a boring-looking-hardware problem in China, they can (and seem poised to) remedy that by releasing exciting new iPhone hardware this year. But if the problem is that iOS engenders far less platform loyalty in China because of WeChat&#8217;s centrality &#8212; or even worse, if WeChat is central <em>and</em> better on Android than it is on iOS &#8212; there&#8217;s no easy fix for Apple.</p>
1618
+
1619
+ <h2>Postscript</h2>
1620
+
1621
+ <p>For those of you like me, who know very little about WeChat, this 2015 piece by Connie Chan (as linked to by Thompson) is a terrific introduction: &#8220;<a href="http://a16z.com/2015/08/06/wechat-china-mobile-first/">When One App Rules Them All: The Case of WeChat and Mobile in China</a>&#8221;.</p>
1622
+
1623
+ <div class="footnotes">
1624
+ <hr />
1625
+ <ol>
1626
+ <li id="fn1-2017-05-05">
1627
+ <p>I always use ThinkPads as my go-to example of high-quality PC hardware; perhaps I should start using Microsoft Surfaces?&nbsp;<a href="#fnr1-2017-05-05" class="footnoteBackLink" title="Jump back to footnote 1 in the text.">&#x21A9;&#xFE0E;</a></p>
1628
+ </li>
1629
+ </ol>
1630
+ </div>
1631
+
1632
+
1633
+
1634
+ ]]></content>
1635
+ <title>★ Apple’s China Problem: WeChat</title></entry><entry>
1636
+
1637
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/04/apple_watch_success" />
1638
+ <link rel="shorturl" href="http://df4.us/pxx" />
1639
+ <id>tag:daringfireball.net,2017://1.33621</id>
1640
+ <published>2017-04-24T22:28:32Z</published>
1641
+ <updated>2017-04-25T01:47:44Z</updated>
1642
+ <author>
1643
+ <name>John Gruber</name>
1644
+ <uri>http://daringfireball.net/</uri>
1645
+ </author>
1646
+ <summary type="text">These two facts are both true: Apple Watch sales are a rounding error compared to the iPhone, and Apple Watch is a smash hit compared to traditional watches and other wearable devices.</summary>
1647
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
1648
+ <p>Mike Murphy, writing for Quartz, &#8220;<a href="https://qz.com/967256/two-years-after-its-launch-the-apple-watch-hasnt-made-a-difference-at-apples-revenue-streams-aapl/">Two Years After Its Launch, the Apple Watch Hasn’t Made a Difference at Apple</a>&#8221;:</p>
1649
+
1650
+ <blockquote>
1651
+ <p>Apple’s biggest launch since the iPad in 2010, the Apple Watch was
1652
+ expected to be a hit: Given the massive financial success of the
1653
+ iPhone, it stood to reason that a companion device might be
1654
+ something customers craved.</p>
1655
+
1656
+ <p>Not so much. Apple has never shared hard numbers on how many
1657
+ wearables it has sold, and doesn’t even break out Watch sales in
1658
+ its quarterly earnings report. Instead, the device is bundled into
1659
+ Apple’s “Other products,” which the company says includes, “Apple
1660
+ TV, Apple Watch, Beats products, iPod and Apple-branded and
1661
+ third-party accessories.”</p>
1662
+ </blockquote>
1663
+
1664
+ <p>These articles come out like clockwork every 3 months, as Apple&#8217;s earnings report draws near. Apple told us they were not going to report hard numbers on Apple Watch right from the start, six months before it shipped. They want to keep them secret for competitive reasons.</p>
1665
+
1666
+ <blockquote>
1667
+ <p>Two years and two iterations after its launch, the Apple Watch has
1668
+ not proven to be as indispensable as the iPhone, or even as
1669
+ lucrative as the Mac, the iPad, or Apple’s services businesses.
1670
+ It’s unclear whether an iPhone-like overhaul, or attempts to
1671
+ market the watch directly to athletes or millennials, will
1672
+ ultimately make a difference.</p>
1673
+ </blockquote>
1674
+
1675
+ <p>(&#8220;Two years and two iterations after its launch&#8221; &#8212; I don&#8217;t know if that&#8217;s a mistake, if Murphy is counting WatchOS releases, or if he&#8217;s counting Series 1 as a full hardware iteration. But it&#8217;s sloppy writing. Most people would surely agree that there&#8217;s been only one iteration since launch, the Series 2 watches released last September.)</p>
1676
+
1677
+ <p>The nut of every &#8220;Apple Watch is a dud&#8221; story is the fact that it&#8217;s clearly not an iPhone-size business. But that can&#8217;t be the only measure of success. The iPhone is the biggest and most successful consumer product in the history of the world. Nothing compares to the smartphone market, and it&#8217;s possible nothing else will in our lifetimes. You and I may never again see a product as profitable as the iPhone &#8212; not just from Apple, but from any company in any industry. Or maybe we will. It&#8217;s a complete unknown.</p>
1678
+
1679
+ <p>But if Apple gets it into its head that they should only work on iPhone-sized opportunities, it would paralyze the company. In baseball terms, it&#8217;s fine for Apple to hit a bunch of singles while waiting for their next home run. According to Apple, <a href="https://www.wareable.com/apple/watch-sales-rolex-tim-cook-556">they had more watch sales by revenue in 2015 than any company other than Rolex</a>, and Apple&#8217;s &#8220;Other&#8221; category, which is where Watch sales are accounted for, <a href="https://images.apple.com/pr/pdf/q1fy17datasum.pdf">had a near record-breaking holiday quarter</a> three months ago, suggesting strongly that Watch sales were up over the year-ago holiday quarter.</p>
1680
+
1681
+ <p>These two facts are both true: Apple Watch sales are a rounding error compared to the iPhone, and Apple Watch is a smash hit compared to traditional watches and other wearable devices.</p>
1682
+
1683
+
1684
+
1685
+ ]]></content>
1686
+ <title>★ Judging Apple Watch’s Success</title></entry><entry>
1687
+
1688
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/04/uber_identifying_and_tagging_iphones" />
1689
+ <link rel="shorturl" href="http://df4.us/pxr" />
1690
+ <id>tag:daringfireball.net,2017://1.33615</id>
1691
+ <published>2017-04-24T00:54:36Z</published>
1692
+ <updated>2017-04-24T03:19:56Z</updated>
1693
+ <author>
1694
+ <name>John Gruber</name>
1695
+ <uri>http://daringfireball.net/</uri>
1696
+ </author>
1697
+ <summary type="text">A lot of people are jumping to the conclusion that Uber was somehow tracking the location of users even after they deleted the Uber app, but the word “track” only appears in the article in the context of Kalanick having “excelled at running track and playing football” in high school.</summary>
1698
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
1699
+ <p><a href="https://mobile.nytimes.com/2017/04/23/technology/travis-kalanick-pushes-uber-and-himself-to-the-precipice.html">Mike Isaac&#8217;s profile of Uber CEO Travis Kalanick for The New York Times</a> contains an accusation that, on its face, sounds outrageous:</p>
1700
+
1701
+ <blockquote>
1702
+ <p>For months, Mr. Kalanick had pulled a fast one on Apple by
1703
+ directing his employees to help camouflage the ride-hailing app
1704
+ from Apple’s engineers. The reason? So Apple would not find out
1705
+ that Uber had been secretly identifying and tagging iPhones even
1706
+ after its app had been deleted and the devices erased &#8212; a fraud
1707
+ detection maneuver that violated Apple’s privacy guidelines.</p>
1708
+
1709
+ <p>But Apple was on to the deception, and when Mr. Kalanick arrived
1710
+ at the midafternoon meeting sporting his favorite pair of bright
1711
+ red sneakers and hot-pink socks, Mr. Cook was prepared. “So, I’ve
1712
+ heard you’ve been breaking some of our rules,” Mr. Cook said in
1713
+ his calm, Southern tone. Stop the trickery, Mr. Cook then
1714
+ demanded, or Uber’s app would be kicked out of Apple’s App Store.</p>
1715
+
1716
+ <p>For Mr. Kalanick, the moment was fraught with tension. If Uber’s
1717
+ app was yanked from the App Store, it would lose access to
1718
+ millions of iPhone customers &#8212; essentially destroying the
1719
+ ride-hailing company’s business. So Mr. Kalanick acceded.</p>
1720
+ </blockquote>
1721
+
1722
+ <p>&#8220;Secretly identifying and tagging iPhones even after its app had been deleted and the devices erased&#8221; is a rather startling accusation, because it sounds like it should be technically impossible. It&#8217;s also very much unclear what information Uber was able to glean from these &#8220;identified and tagged&#8221; iPhones other than some sort of unique device identifier. Unfortunately, the Times story is very short on details here. But note that the Times is <em>not</em> saying Uber was &#8220;tracking&#8221; these phones. A lot of people are jumping to the conclusion that Uber was somehow tracking the location of users even after they deleted the Uber app, but the word &#8220;track&#8221; only appears in the article in the context of Kalanick having &#8220;excelled at running track and playing football&#8221; in high school.</p>
1723
+
1724
+ <p>[<strong>Update:</strong> This explains a lot, regarding the hubbub today over this story. <a href="http://newsdiffs.org/diff/1383350/1383404/https%3A/www.nytimes.com/2017/04/23/technology/travis-kalanick-pushes-uber-and-himself-to-the-precipice.html">When first published, the Times story <em>did</em> use the word &#8220;tracking&#8221;</a>, but a subsequent revision changed that word to &#8220;identifying and tagging&#8221;.]</p>
1725
+
1726
+ <p>Reading between the lines, it is possible &#8212; and my gut says quite probable &#8212; that Uber wasn&#8217;t <em>doing</em> anything on these iPhones other than when its app was installed and running on them. From the end of the article:</p>
1727
+
1728
+ <blockquote>
1729
+ <p>The idea of fooling Apple, the main distributor of Uber’s app,
1730
+ began in 2014.</p>
1731
+
1732
+ <p>At the time, Uber was dealing with widespread account fraud in
1733
+ places like China, where tricksters bought stolen iPhones that
1734
+ were erased of their memory and resold. Some Uber drivers there
1735
+ would then create dozens of fake email addresses to sign up for
1736
+ new Uber rider accounts attached to each phone, and request rides
1737
+ from those phones, which they would then accept. Since Uber was
1738
+ handing out incentives to drivers to take more rides, the drivers
1739
+ could earn more money this way.</p>
1740
+
1741
+ <p>To halt the activity, Uber engineers assigned a persistent
1742
+ identity to iPhones with a small piece of code, a practice called
1743
+ “fingerprinting.” Uber could then identify an iPhone and prevent
1744
+ itself from being fooled even after the device was erased of its
1745
+ contents.</p>
1746
+
1747
+ <p>There was one problem: Fingerprinting iPhones broke Apple’s rules.
1748
+ Mr. Cook believed that wiping an iPhone should ensure that no
1749
+ trace of the owner’s identity remained on the device.</p>
1750
+ </blockquote>
1751
+
1752
+ <p>What Isaac is reporting here doesn&#8217;t require any code running on an iPhone other than when the Uber app is itself installed and launched. I&#8217;m speculating here, but it could be something like this:</p>
1753
+
1754
+ <ol>
1755
+ <li><p>The Uber app, while installed, fingerprints the device somehow, and reports the fingerprint home to Uber&#8217;s servers, where it is tied to the user&#8217;s Uber account. (All iPhones have a Unique Device Identifier &#8212; &#8220;UDID&#8221; &#8212; but <a href="http://lifehacker.com/5898282/what-a-udid-is-and-why-apples-rejecting-apps-that-want-yours">Apple banned third-party apps from accessing it in 2012</a>. Uber either found a way to access UDIDs surreptitiously, or created some other way of uniquely identifying devices even after they&#8217;ve been wiped. It would be good to know exactly what they did, but for the sake of my argument here it doesn&#8217;t matter.)</p></li>
1756
+ <li><p>The Uber app is deleted from the device and/or device is wiped. At this point, Uber knows the fingerprint for the device, but can’t use it to track the device in any way, <em>and they don’t care</em>, because until someone reinstalls the Uber app on the phone it isn&#8217;t being used to book fraudulent rides.</p></li>
1757
+ <li><p>The Uber app is reinstalled on the iPhone. When it launches, it does the fingerprint check and phones home again. Uber now knows this is the same iPhone they’ve seen before, because the fingerprint matches. This is the violation of Apple&#8217;s privacy policy.</p></li>
1758
+ </ol>
1759
+
1760
+ <p>But until step 3, when the Uber app is reinstalled, I don&#8217;t think Uber was &#8220;tracking&#8221; the phone in any way. And they didn’t care — the Times says the whole project was designed to counter fraud in China, which required the Uber app to be reinstalled on stolen iPhones.</p>
1761
+
1762
+ <p>Repeating from the opening of the article, Isaac wrote:</p>
1763
+
1764
+ <blockquote>
1765
+ <p>So Apple would not find out that Uber had been secretly
1766
+ identifying and tagging iPhones even after its app had been
1767
+ deleted and the devices erased &#8212; a fraud detection maneuver that
1768
+ violated Apple’s privacy guidelines.</p>
1769
+ </blockquote>
1770
+
1771
+ <p>That <em>sounds</em> like Uber was doing the identifying and &#8220;tagging&#8221; (whatever that is) after the app had been deleted and/or the device wiped, but I think what it might &#8212; <em>might</em> &#8212; actually mean is merely that the identification persisted after the app had been deleted and/or the device wiped. That&#8217;s not supposed to be technically possible &#8212; iOS APIs for things like the UDID and even the MAC address stopped reporting unique identifiers years ago, because they were being abused by privacy invasive ad trackers, analytics packages, and entitled shitbags like Uber. That&#8217;s wrong, and Apple was right to put an end to it, but it&#8217;s far less sensational than the prospect of Uber having been able to identify and &#8220;tag&#8221; an iPhone <em>after</em> the Uber app had been deleted. The latter scenario only seems technically possible if other third-party apps were executing surreptitious code that did this stuff through Uber&#8217;s SDK, or if the Uber app left behind malware outside the app&#8217;s sandbox. I don&#8217;t think that&#8217;s the case, if only because I don&#8217;t think Apple would have hesitated to remove Uber from the App Store if it was infecting iPhones with hidden phone-home malware.</p>
1772
+
1773
+ <p>The article does raise some questions:</p>
1774
+
1775
+ <ul>
1776
+ <li><p>What APIs and device info was Uber using to identify iPhones? Are these API loopholes now closed in iOS? If we don&#8217;t learn exactly what Uber was using to identify devices, we cannot know that the technique no longer works. iOS users should be able to feel confident that when they delete an app, all connections between their device and the developer of the app are disconnected, and that when they wipe a device, everything personally identifying has been removed from it.</p></li>
1777
+ <li><p>What exactly did Apple know about Uber&#8217;s actions in this regard when Tim Cook called Kalanick in for the meeting? Was Apple aware that Uber was specifically keeping a database of unique iPhone identifiers? If so, how?</p></li>
1778
+ <li><p>What prompted Apple to investigate Uber in this regard? And why did Uber suspect Apple was going to investigate, prompting them to geofence their fingerprinting so it wouldn&#8217;t trigger in Cupertino? (My theory: the Uber app was calling private APIs, and they used the geofence to avoid calling those private APIs while the app was in App Store review, assuming, perhaps incorrectly, that all App Store reviewers work in Cupertino. App Store review can identify apps that call private APIs.)</p></li>
1779
+ <li><p><strong>Update</strong>: Why didn&#8217;t Apple require Uber to disclose what they’d done as a condition for remaining in the store? Shouldn&#8217;t iPhone users who had Uber installed know about this?</p></li>
1780
+ </ul>
1781
+
1782
+ <p>[<strong>Update 2:</strong> <a href="https://twitter.com/chronic/status/856250223777206273">Will Strafach examined a 2014 build of the Uber iOS app</a> and found them using private APIs to use IOKit to pull the device serial number from the device registry. There might be more, but this alone is a blatant violation of App Store policy. <a href="https://twitter.com/chronic/status/856333895050178560">Strafach confirms</a> that the technique Uber was using no longer works in iOS 10.]</p>
1783
+
1784
+ <hr />
1785
+
1786
+ <p>The article also contains this non-Apple-related tidbit:</p>
1787
+
1788
+ <blockquote>
1789
+ <p>Uber devoted teams to so-called competitive intelligence,
1790
+ purchasing data from an analytics service called Slice
1791
+ Intelligence. Using an email digest service it owns named
1792
+ Unroll.me, Slice collected its customers’ emailed Lyft receipts
1793
+ from their inboxes and sold the anonymized data to Uber. Uber used
1794
+ the data as a proxy for the health of Lyft’s business. (Lyft, too,
1795
+ operates a competitive intelligence team.)</p>
1796
+
1797
+ <p>Slice confirmed that it sells anonymized data (meaning that
1798
+ customers’ names are not attached) based on ride receipts from
1799
+ Uber and Lyft, but declined to disclose who buys the information.</p>
1800
+ </blockquote>
1801
+
1802
+ <p>This is, needless to say, super shitty. We expect it from Uber. But Slice should be ashamed of themselves. Their <a href="https://unroll.me/">Unroll.me</a> service is billed as a tool to &#8220;Clean up your inbox&#8221; by identifying subscription emails and allowing you to unsubscribe from them in bulk. It&#8217;s &#8220;free&#8221; in the sense that you don&#8217;t pay them money, but they&#8217;re selling your personal information to companies like Uber. Supposedly that information is anonymized, but wiped iPhones are supposed to be anonymized too, and Uber found at least one route around that. </p>
1803
+
1804
+
1805
+
1806
+ ]]></content>
1807
+ <title>★ On Uber’s ‘Identifying and Tagging’ of iPhones</title></entry><entry>
1808
+
1809
+ <link rel="alternate" type="text/html" href="https://daringfireball.net/2017/04/double_down_on_mechanical_watches" />
1810
+ <link rel="shorturl" href="http://df4.us/pwr" />
1811
+ <id>tag:daringfireball.net,2017://1.33579</id>
1812
+ <published>2017-04-11T00:15:08Z</published>
1813
+ <updated>2017-04-12T03:38:06Z</updated>
1814
+ <author>
1815
+ <name>John Gruber</name>
1816
+ <uri>http://daringfireball.net/</uri>
1817
+ </author>
1818
+ <summary type="text">Instead of getting into the computer business, traditional watch companies should focus on what they’ve always done: designing and making great mechanical watches — creating a breath of analog fresh air in an ever-more digitized world.</summary>
1819
+ <content type="html" xml:base="https://daringfireball.net/" xml:lang="en"><![CDATA[
1820
+ <p>Jean-Louis Gassée penned a good column a few weeks ago <a href="https://mondaynote.com/swatchos-not-a-smart-decision-6b2cc883c99f#.rre6lnb1g">on the Swatch Group making their own watch OS</a>:</p>
1821
+
1822
+ <blockquote>
1823
+ <p>Nick Hayek’s father triumphed against Japanese quartz watch makers
1824
+ by playing on his own turf. Trying to defeat the established
1825
+ smartwatch players by playing their game won’t work. Is there
1826
+ something in Swatch Group’s culture that predisposes it to be
1827
+ competitive with Google and Apple software engineers?</p>
1828
+
1829
+ <p>Just as Nokia should have embraced Android in 2010, riding on its
1830
+ proven combination of Design, Supply Chain, and Carrier
1831
+ Distribution prowess to keep a leading role in the smartphone
1832
+ revolution, Swatch could use its native &#8212; but circumscribed &#8212;
1833
+ cultural and technical skills to create beautiful, fun
1834
+ smartwatches … that run on Google’s software. But just like
1835
+ Nokia&#8217;s culture and success prevented it from seizing the Android
1836
+ moment, similar factors will keep Swatch from being a powerful
1837
+ player in the smartwatch world.</p>
1838
+ </blockquote>
1839
+
1840
+ <p>I agree. <em>If</em> the Swatch Group wants to make smartwatches, they should almost certainly go with Android Wear, and they&#8217;re almost certainly doomed with their pre-announced homegrown OS. And it&#8217;s crazy that even if they succeed at creating their own OS, that they think it won&#8217;t need frequent updates and bug fixes. That&#8217;s not how computer platforms work, and make no mistake, smartwatches are computer platforms.</p>
1841
+
1842
+ <p>But I think the Swiss watch industry would do well to stick to their mechanical guns. They should leave it to computerized gadgeteers to make smartwatches, and focus on making mechanical watches that stand the test of time (no pun intended). I love computers (duh), but I find mechanical watches to be a source of joy, a bulwark against the ever-encroaching computerization of everything.</p>
1843
+
1844
+ <p>The bread and butter for high-end watch companies are aficionados who own multiple watches. Almost no one uses multiple smartwatches. People might have old ones in a drawer, but just as with with phones, it&#8217;s only convenient to have one smartwatch <em>in active use</em> at a time. Apple knows this: that&#8217;s why they made it so easy to swap straps &#8212; multiple looks for variety, but just one watch. For watch fans who actually do want multiple watches <em>and</em> a smartwatch, every watch other than their one smartwatch is likely to be a mechanical.</p>
1845
+
1846
+ <p>I don&#8217;t think the Swiss watch industry has a chance of out-computer-engineering Apple. Instead they should focus on what they&#8217;ve always done: designing and making great mechanical watches &#8212; creating a breath of analog fresh air in an ever-more-digitized world.</p>
1847
+
1848
+
1849
+
1850
+ ]]></content>
1851
+ <title>★ The Swiss Watch Industry Should Double Down on Mechanical Watches</title></entry></feed><!-- THE END -->
1852
+
1853
+ ---
1854
+
1855
+ feed.format: atom
1856
+ feed.title: Daring Fireball
1857
+ feed.subtitle: By John Gruber
1858
+ feed.url: https://daringfireball.net/
1859
+ feed.feed_url: https://daringfireball.net/feeds/main
1860
+ feed.updated: >>> DateTime.new( 2017, 5, 23, 19, 36, 44 )
1861
+
1862
+ feed.items[0].title: Feedbin, Too
1863
+ feed.items[0].url: https://feedbin.com/blog/2017/05/22/feedbin-supports-json-feed/
1864
+ feed.items[0].guid: tag:daringfireball.net,2017:/linked//6.33732
1865
+ feed.items[0].updated: >>> DateTime.new( 2017, 5, 23, 19, 03, 33 )
1866
+ feed.items[0].published: >>> DateTime.new( 2017, 5, 23, 18, 50, 36 )