{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Aaron Trickey","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/at","_microblog":{"about":"https://micro.blog/about/api","id":"5503","username":"at","bio":"Independent software developer. Father of two. Married to someone smarter than me. Living in the suburbs of Chicago.\n\nCurrently focused on TimeStory, a new native Mac app for mapping out plans, roadmaps, and other timelines.","pronouns":"","is_following":false,"is_you":false,"following_count":43,"discover_count":0},"author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://micro.blog/at/avatar.jpg"},"items":[{"id":"81029592","content_html":"
Chasing WWDC: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2025/12-30-chasing_wwdc.html","date_published":"2025-12-30T19:01:31+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2025-12-30 19:01","date_timestamp":1767121291,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"30968074","content_html":"iPad Dev Notes: Touch, Mouse, and Pencil: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2024/02-13-ipad_dev_notes_touch.html","date_published":"2024-02-14T00:26:18+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2024-02-14 00:26","date_timestamp":1707870378,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"23314886","content_html":"AppKit notes: Customizing text view drawing: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/09-08-customizing-nstextview-drawing.html","date_published":"2023-09-08T18:57:38+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-09-08 18:57","date_timestamp":1694199458,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"22486173","content_html":"OpenAI and robots.txt: the question of opting out: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/08-21-openai-robots-txt.html","date_published":"2023-08-21T20:46:22+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-08-21 20:46","date_timestamp":1692650782,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"22349217","content_html":"TimeStory for iPad, Dev Journal 1: Basic Architecture, SwiftUI, and UIKit: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/08-18-timestory-ipad-architecture.html","date_published":"2023-08-18T16:07:37+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-08-18 16:07","date_timestamp":1692374857,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"21935690","content_html":"Bram Moolenaar and Vim: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/08-09-bram-and-vim.html","date_published":"2023-08-09T22:23:52+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-08-09 22:23","date_timestamp":1691619832,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"21626029","content_html":"9600 baud: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/08-01-9600baud.html","date_published":"2023-08-01T10:34:04+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-08-01 10:34","date_timestamp":1690886044,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"17356473","content_html":"Large language models and search: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/03-01-llms.html","date_published":"2023-03-01T07:36:48+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-03-01 07:36","date_timestamp":1677656208,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"17181100","content_html":"3MC 3 is now in public beta: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2023/02-21-3mc_3_beta.html","date_published":"2023-02-21T15:46:40+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2023-02-21 15:46","date_timestamp":1676994400,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"14495882","content_html":"I just open-sourced my Help Compiler, a self-contained command-line tool\nto build HTML help from simple plain-text source. I’m already using it to\ncompile TimeStory’s user guide for both Web and in-app help. If\nyou’re maintaining a Mac app with a help system, I think you might find it\nu... casualprogrammer.com","summary":"","url":"https://casualprogrammer.com/blog/2022/11-29-hc.html","date_published":"2022-11-29T16:53:37+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-11-29 16:53","date_timestamp":1669740817,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"14455871","content_html":"Featured in Indie Dev Monday today: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/11-28-indie-dev-monday.html","date_published":"2022-11-28T11:10:22+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-11-28 11:10","date_timestamp":1669633822,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"13366777","content_html":"TimeStory 3: Updating the Mars Example: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/09-09-timestory-mars-update.html","date_published":"2022-09-09T14:02:28+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-09-09 14:02","date_timestamp":1662732148,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"13172283","content_html":"\n\n“A group of kids watching a distant spaceport” (I tried out the\nMidjourney ML-based image generator this morning with that prompt)
","summary":"","url":"https://casualprogrammer.com/blog/2022/07-21-distant_spaceport.html","date_published":"2022-07-21T10:03:23+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-07-21 10:03","date_timestamp":1658397803,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13060217","content_html":"TimeStory 3 Notes: Timeline Headers and Grids: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/06-23-timestory-3-timeline.html","date_published":"2022-06-23T11:08:25+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-06-23 11:08","date_timestamp":1655982505,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"13055877","content_html":"","summary":"","url":"https://casualprogrammer.com/blog/2022/06-22-herrick_bike.html","date_published":"2022-06-22T15:41:58+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-06-22 15:41","date_timestamp":1655912518,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"13047442","content_html":"WWDC22: A few more Mac app and AppKit followups: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/06-20-wwdc22-appkit.html","date_published":"2022-06-20T13:48:20+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-06-20 13:48","date_timestamp":1655732900,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"13032776","content_html":"WWDC 2022 Late Initial Thoughts: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/06-16-wwdc22-thoughts.html","date_published":"2022-06-16T13:49:47+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-06-16 13:49","date_timestamp":1655387387,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"12971360","content_html":"WWDC 2022 wishlist: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/06-01-wwdc22wishes.html","date_published":"2022-06-01T22:24:25+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-06-01 22:24","date_timestamp":1654122265,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"12849693","content_html":"PixelNote 3: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/05-09-pixelnote3.html","date_published":"2022-05-09T20:41:42+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-05-09 20:41","date_timestamp":1652128902,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"12639873","content_html":"TimeStory 3 Notes: Borrowing from SwiftUI: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/03-28-timestory-3-inspector-framework.html","date_published":"2022-03-28T22:26:58+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-03-28 22:26","date_timestamp":1648506418,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"12575247","content_html":"TimeStory 3 Notes: CSV: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2022/03-11-timestory-3-csv.html","date_published":"2022-03-11T20:41:24+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2022-03-11 20:41","date_timestamp":1647031284,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"11608950","content_html":"Shortcuts for Mac, coming soon to TimeStory: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2021/06-22-shortcuts_for_mac_co.html","date_published":"2021-06-22T17:42:17+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2021-06-22 17:42","date_timestamp":1624383737,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"9369624","content_html":"\"Yass\", a new SVG (subset) library for Swift: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2020/04-13-yass_a_new_svg_subse.html","date_published":"2020-04-14T00:53:56+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2020-04-14 00:53","date_timestamp":1586825636,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"7514347","content_html":"TimeStory Year One: casualprogrammer.com
","summary":"","url":"https://casualprogrammer.com/blog/2019/12-31-timestory-year-one.html","date_published":"2019-12-31T15:05:25+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2019-12-31 15:05","date_timestamp":1577804725,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"6323182","content_html":"","summary":"","url":"https://casualprogrammer.com/blog/2019/11-01-leaves-and-snow.html","date_published":"2019-11-01T22:12:10+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2019-11-01 22:12","date_timestamp":1572646330,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":[]}},{"id":"320413","content_html":"@jsonbecker I had the same reaction!
\n","url":"https://micro.blog/at/320413","date_published":"2018-02-07T02:35:16+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2018-02-07 02:35","date_timestamp":1517970916,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"290760","content_html":"@ivancantarino Hahaha
\n","url":"https://micro.blog/at/290760","date_published":"2018-01-24T15:04:41+00:00","author":{"name":"Aaron Trickey","url":"https://casualprogrammer.com","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fat%2Favatar.jpg","_microblog":{"username":"at"}},"_microblog":{"date_relative":"2018-01-24 15:04","date_timestamp":1516806281,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}}]}