{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Rob Napier","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/cocoaphony","_microblog":{"about":"https://micro.blog/about/api","id":"8912","username":"cocoaphony","bio":"This is my \"random thoughts\" blog. More serious things go at robnapier.net. I mostly blog about Swift and related worlds, but sometimes dive into general programming topics. See also @cocoaphony@mastodon.social.","pronouns":"","is_following":false,"is_you":false,"following_count":51,"discover_count":0},"author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://avatars.micro.blog/avatars/2022/8912.jpg"},"items":[{"id":"68745944","content_html":"<p>\"AI makes them slower.\": <a href=\"https://cocoaphony.micro.blog/2025/07/11/ai-makes-them-slower.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2025/07/11/ai-makes-them-slower.html","date_published":"2025-07-11T18:55:17+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2025-07-11 18:55","date_timestamp":1752260117,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/114836119263780660"]}},{"id":"66916321","content_html":"<p>TIL:AI. Thoughts on AI: <a href=\"https://cocoaphony.micro.blog/2025/06/16/tilai-thoughts-on-ai.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2025/06/16/tilai-thoughts-on-ai.html","date_published":"2025-06-16T19:15:51+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2025-06-16 19:15","date_timestamp":1750101351,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/114694642411171007"]}},{"id":"65339707","content_html":"<p>My AI distractions, hopefully a lesson, but maybe just a story: <a href=\"https://cocoaphony.micro.blog/2025/05/26/my-ai-distractions-hopefully-a.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2025/05/26/my-ai-distractions-hopefully-a.html","date_published":"2025-05-27T01:23:40+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2025-05-27 01:23","date_timestamp":1748309020,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/114577180112290879"]}},{"id":"40620422","content_html":"<p>Why I struggle to use actors: <a href=\"https://cocoaphony.micro.blog/2024/06/30/why-i-struggle.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2024/06/30/why-i-struggle.html","date_published":"2024-06-30T20:56:19+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2024-06-30 20:56","date_timestamp":1719780979,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/112707566361411938"]}},{"id":"37758914","content_html":"<p>ASCII: <a href=\"https://robnapier.net/ascii\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/ascii","date_published":"2024-05-18T18:30:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2024-05-18 18:30","date_timestamp":1716057000,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"36830358","content_html":"<p>AnyCodingKey: <a href=\"https://robnapier.net/anycodingkey\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/anycodingkey","date_published":"2024-05-04T20:37:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2024-05-04 20:37","date_timestamp":1714855020,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"32305916","content_html":"<p>Dropped messages in for-await: <a href=\"https://cocoaphony.micro.blog/2024/02/24/dropped-messages-in.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2024/02/24/dropped-messages-in.html","date_published":"2024-02-24T16:01:10+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2024-02-24 16:01","date_timestamp":1708790470,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/111987292344589985"]}},{"id":"20196130","content_html":"<p>Externalizing properties to manage retains: <a href=\"https://cocoaphony.micro.blog/2023/06/24/externalizing-properties-to.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2023/06/24/externalizing-properties-to.html","date_published":"2023-06-24T16:02:41+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2023-06-24 16:02","date_timestamp":1687622561,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"18742149","content_html":"<p>A short anecdote on getting answers on the modern internet: <a href=\"https://cocoaphony.micro.blog/2023/04/29/a-short-anecdote.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2023/04/29/a-short-anecdote.html","date_published":"2023-04-29T15:30:04+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2023-04-29 15:30","date_timestamp":1682782204,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/110282818611767376"]}},{"id":"17570033","content_html":"<p>A Reminder About NSRange and String: <a href=\"https://cocoaphony.micro.blog/2023/03/10/a-reminder-about.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2023/03/10/a-reminder-about.html","date_published":"2023-03-10T15:02:40+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2023-03-10 15:02","date_timestamp":1678460560,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/109999592111196761"]}},{"id":"15509632","content_html":"<p>Big-O matters, but it's often memory that's killing your performance. <a href=\"https://cocoaphony.micro.blog/2022/12/28/bigo-matters-but.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2022/12/28/bigo-matters-but.html","date_published":"2022-12-28T17:01:10+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2022-12-28 17:01","date_timestamp":1672246870,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":["https://mastodon.social/@cocoaphony/109592371053907933"]}},{"id":"14322113","content_html":"<p>Pull Requests are a story: <a href=\"https://cocoaphony.micro.blog/2022/11/22/pull-requests-are.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2022/11/22/pull-requests-are.html","date_published":"2022-11-22T14:18:52+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2022-11-22 14:18","date_timestamp":1669126732,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"13590052","content_html":"<p>Solving \"Required kernel recording resources are in use by another document\" in Instruments: <a href=\"https://cocoaphony.micro.blog/2022/10/29/solving-required-kernel.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2022/10/29/solving-required-kernel.html","date_published":"2022-10-29T19:33:36+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2022-10-29 19:33","date_timestamp":1667072016,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"11982224","content_html":"<p>Time for something new: <a href=\"https://cocoaphony.micro.blog/2021/09/25/time-for-something.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2021/09/25/time-for-something.html","date_published":"2021-09-25T14:27:53+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2021-09-25 14:27","date_timestamp":1632580073,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"6247314","content_html":"<p>The Littlest Type: <a href=\"https://robnapier.net/never\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/never","date_published":"2019-10-28T17:02:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-10-28 17:02","date_timestamp":1572282120,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"6219882","content_html":"<p>Protocols v: At Your Request: <a href=\"https://robnapier.net/at-your-request\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/at-your-request","date_published":"2019-10-26T21:04:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-10-26 21:04","date_timestamp":1572123840,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3763171","content_html":"<p>Protocols IV: That's Not a Number: <a href=\"https://robnapier.net/thats-not-a-number\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/thats-not-a-number","date_published":"2019-05-27T04:00:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-05-27 04:00","date_timestamp":1558929600,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3536948","content_html":"<p>Protocols III: Existential Spelling: <a href=\"https://robnapier.net/existential-spelling\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/existential-spelling","date_published":"2019-05-12T04:00:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-05-12 04:00","date_timestamp":1557633600,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3348658","content_html":"<p>Protocols II: A Mockery of Protocols: <a href=\"https://robnapier.net/a-mockery-of-protocols\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/a-mockery-of-protocols","date_published":"2019-04-29T15:18:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-04-29 15:18","date_timestamp":1556551080,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3336715","content_html":"<p>Protocols Sidebar I: Protocols Are Nonconformists: <a href=\"https://robnapier.net/nonconformist\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/nonconformist","date_published":"2019-04-28T16:43:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-04-28 16:43","date_timestamp":1556469780,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3303428","content_html":"<p>Protocols I: \"Start With a Protocol,\" He Said: <a href=\"https://robnapier.net/start-with-a-protocol\">robnapier.net</a></p>","summary":"","url":"https://robnapier.net/start-with-a-protocol","date_published":"2019-04-22T04:00:00+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-04-22 04:00","date_timestamp":1555905600,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"3226869","content_html":"<p>{title}: <a href=\"https://cocoaphony.micro.blog/2019/04/20/title.html\">cocoaphony.micro.blog</a></p>","summary":"","url":"https://cocoaphony.micro.blog/2019/04/20/title.html","date_published":"2019-04-20T16:35:11+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-04-20 16:35","date_timestamp":1555778111,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"2951516","content_html":"<p><a href=\"https://micro.blog/pgor\">@pgor</a> I disagree on this case; I don't think that code is tricky at all, and in fact should be considered a normal idiom.</p>\n","url":"https://micro.blog/cocoaphony/2951516","date_published":"2019-03-31T19:03:59+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-03-31 19:03","date_timestamp":1554059039,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"2936061","content_html":"OK, I just fell in 😍 with stdlib’s Result(catching:).\n\nextension Request where Response: Decodable {\n    func handle(response: Result, \n                          completion: (Result) -&gt; Void) {\n        completion(Result { \n            try JSONDecoder().deco... <a href=\"https://cocoaphony.micro.blog/2019/03/30/ok-i-just.html\">cocoaphony.micro.blog</a>","summary":"","url":"https://cocoaphony.micro.blog/2019/03/30/ok-i-just.html","date_published":"2019-03-30T15:22:18+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-03-30 15:22","date_timestamp":1553959338,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"2935338","content_html":"Reminder: If you’re running into limitations with default parameters (for example, the value can’t be computed, they can’t specialize a generic, defaults don’t exist in literals), you can always replace a default with an explicit overload.\n\nfunc f(x: Int = 0) {}\n\n\nis the same as\n\nfunc f... <a href=\"https://cocoaphony.micro.blog/2019/03/30/reminder-if-youre.html\">cocoaphony.micro.blog</a>","summary":"","url":"https://cocoaphony.micro.blog/2019/03/30/reminder-if-youre.html","date_published":"2019-03-30T14:30:24+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2019-03-30 14:30","date_timestamp":1553956224,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"797006","content_html":"<p>One of these days I’ll remember not to delete the app that Xcode is debugging. Sometimes it’s fine. Lots of times it hangs Xcode and I have to force quit.\nDays since I forgot: 0</p>\n","summary":"","url":"https://cocoaphony.micro.blog/2018/08/15/one-of-these.html","date_published":"2018-08-15T20:33:13+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-08-15 20:33","date_timestamp":1534365193,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"796999","content_html":"<p><a href=\"https://micro.blog/uliwitness\">@uliwitness</a> That's not that Ultra-weave that I keep trying to find the last power cell for is it? So close. One cell to find…</p>\n","url":"https://micro.blog/cocoaphony/796999","date_published":"2018-08-15T20:31:32+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-08-15 20:31","date_timestamp":1534365092,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460359","content_html":"<p><a href=\"https://micro.blog/danielpunkass\">@danielpunkass</a> IMO, if \"nil\" and \"empty\" are the same, you don't really have an Optional &amp; should get rid of it. I commonly add a non-optional <code>string</code> extension to UITextField to solve exactly this problem at the root cause (which is that UITextField.text is the wrong type).</p>\n","url":"https://micro.blog/cocoaphony/460359","date_published":"2018-04-07T16:32:42+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 16:32","date_timestamp":1523118762,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460344","content_html":"<p><a href=\"https://micro.blog/manton\">@manton</a> That's really interesting, and probably points to a deep misunderstanding of mine about how micro.blog works. Is there a technical intro?</p>\n","url":"https://micro.blog/cocoaphony/460344","date_published":"2018-04-07T16:29:48+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 16:29","date_timestamp":1523118588,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460092","content_html":"<p>@macgenie Thanks! I'm excited to finally give a try. I left Facebook years ago, and my frustration with Twitter has been growing.</p>\n","url":"https://micro.blog/cocoaphony/460092","date_published":"2018-04-07T14:27:53+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 14:27","date_timestamp":1523111273,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460090","content_html":"<p><a href=\"https://micro.blog/manton\">@manton</a> I mean, Twitter failed Leslie Jones, but if she'd have had a microblog, what could she have done to protect herself, or who else could possibly have helped her?</p>\n","url":"https://micro.blog/cocoaphony/460090","date_published":"2018-04-07T14:26:27+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 14:26","date_timestamp":1523111187,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460085","content_html":"<p><a href=\"https://micro.blog/manton\">@manton</a> (OK, now I'm a little confused; how do I continue a conversation in the client :D)</p>\n","url":"https://micro.blog/cocoaphony/460085","date_published":"2018-04-07T14:25:07+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 14:25","date_timestamp":1523111107,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"460084","content_html":"<p><a href=\"https://micro.blog/manton\">@manton</a> Yeah, I was definitely thinking in terms of \"quote-reposting\" for that case.</p>\n\n<p>But fundamentally, I worry microblogging is <em>more</em> subject to many of the current problems. There is no central authority to stop or flag anything. It's more absolute-free-speech than the giants.</p>\n","url":"https://micro.blog/cocoaphony/460084","date_published":"2018-04-07T14:23:59+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-07 14:23","date_timestamp":1523111039,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"458279","content_html":"<p><a href=\"https://micro.blog/danielpunkass\">@danielpunkass</a> That's one of those \"oh, right, the bracket syntax isn't arbitrary…\" moments. Yeah; that's pretty nice to remember.</p>\n\n<p>(My first micro.blog interaction here; on Twitter I would have retweeted. Not sure if there's an equivalent concept, but learning.)</p>\n","url":"https://micro.blog/cocoaphony/458279","date_published":"2018-04-06T21:45:51+00:00","author":{"name":"Rob Napier","url":"http://robnapier.net","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Favatars.micro.blog%2Favatars%2F2022%2F8912.jpg","_microblog":{"username":"cocoaphony"}},"_microblog":{"date_relative":"2018-04-06 21:45","date_timestamp":1523051151,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}}]}