{"version":"https://jsonfeed.org/version/1","title":"Micro.blog - Collin Donnell","home_page_url":"https://micro.blog","feed_url":"https://micro.blog/posts/collin","_microblog":{"about":"https://micro.blog/about/api","id":"626","username":"collin","bio":"iOS and Mac developer.","pronouns":"he/him","is_following":false,"is_you":false,"following_count":111,"discover_count":0},"author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://micro.blog/collin/avatar.jpg"},"items":[{"id":"69417090","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Oh yeah! I had one of those! Not sure where it is</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3luf5nexotk2v","date_published":"2025-07-20T09:22:42+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-20 09:22","date_timestamp":1753003362,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69417091","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> You’re balancing it well, I’m sure. I just found it hard for me to find the balance personally. I’m glad it works so well for other people ☺️</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ludh3jaqts2k","date_published":"2025-07-19T17:06:20+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-19 17:06","date_timestamp":1752944780,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69417092","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Okay, but then, how do you learn and grow when it writes code for you? LLMs give you code tailored to your codebase. When you research yourself, you have to synthesize the solution for your codebase, which requires some understanding.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lucxm32qek2k","date_published":"2025-07-19T12:29:16+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-19 12:29","date_timestamp":1752928156,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69417093","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> I was told I was lowering moral by yawning and being tired in morning meetings, which they absolutely knew was due to my sleep being destroyed by the pain. It’s so callous and shitty.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lucxgbnlq32i","date_published":"2025-07-19T12:26:01+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-19 12:26","date_timestamp":1752927961,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69291026","content_html":"<p>Fading in… and fading out with CSS transitions</p>\n\n<p><a href=\"https://dev.to/nicm42/fading-in-and-fading-out-with-css-transitions-3lc1\">dev.to/nicm42/fa…</a></p>\n","summary":"","url":"https://collin.micro.blog/2025/07/18/fading-in-and-fading-out.html","date_published":"2025-07-18T21:58:19+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-18 21:58","date_timestamp":1752875899,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114876478155481643","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lubgy6cmhg2l"]}},{"id":"69290984","content_html":"<p><a href=\"http://timriley.info\">@timriley.info</a> Oh God. GitHub is the worst with it. Even if some of the features are useful, it’s just everywhere.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3luay6k3vs22t","date_published":"2025-07-18T17:34:16+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-18 17:34","date_timestamp":1752860056,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69290985","content_html":"<p><a href=\"http://timriley.info\">@timriley.info</a> I never realize the number of Collin-isms I use until I’m around other people 😂</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu7s3gnysk2g","date_published":"2025-07-18T06:12:29+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-18 06:12","date_timestamp":1752819149,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69216888","content_html":"<p>Jesus. A lot of code editors are so horny for AI now that it’s not even clear how to make it all go away if you want to.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/17/jesus-a-lot-of-code.html","date_published":"2025-07-18T00:26:15+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-18 00:26","date_timestamp":1752798375,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114871397403370764","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu76rr6clg2i"]}},{"id":"69205520","content_html":"<p>I’ll always use and have BBEdit it in my dock, but if it had better syntax highlighting and auto-indenting as I type, I’d use it for everything. Those might seem like small things, but they come up so much every time I code that those two quality of life issues really add up.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/17/ill-always-use-and-have.html","date_published":"2025-07-17T21:19:01+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-17 21:19","date_timestamp":1752787141,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114870658685277521","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu6ubrr45x2o"]}},{"id":"69205037","content_html":"<p><a href=\"https://micro.blog/danielpunkass\">@danielpunkass</a> I don’t think I’ve ever actually used a DTS incident, or maybe I did once. Have you found them helpful?</p>\n","url":"https://micro.blog/collin/69205037","date_published":"2025-07-17T21:11:47+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-17 21:11","date_timestamp":1752786707,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69205008","content_html":"<p>This is freaking me out and why I turned off all AI assistance.</p>\n\n<p>There are things I wrote just three or four years ago without any AI assistance that looking at now, I wonder how I did it without help.</p>\n\n<p>Nope nope nope. Don’t like that.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/17/this-is-freaking-me-out.html","date_published":"2025-07-17T21:10:49+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-17 21:10","date_timestamp":1752786649,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114870626683431172","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu6tta3h3z2i"]}},{"id":"69203017","content_html":"<p><a href=\"http://jamellebouie.net\">@jamellebouie.net</a> I hope you didn’t leave out Funky Kong.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu4qtyss5c2w","date_published":"2025-07-17T01:12:27+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-17 01:12","date_timestamp":1752714747,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69061591","content_html":"<p>When you use AI to program, it gives you an answer tailored to your code. You don’t need to understand or learn much for it to work. When you research on your own, you have to synthesize what you find into a solution for your codebase, and you can’t do that without understanding at least a little.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/15/when-you-use-ai-to.html","date_published":"2025-07-16T04:10:29+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-16 04:10","date_timestamp":1752639029,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114860951972968297","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lu2kdomjwz2w"]}},{"id":"69061291","content_html":"<p><a href=\"https://micro.blog/Miraz\">@Miraz</a> Oh my, that’s gorgeous!</p>\n","url":"https://micro.blog/collin/69061291","date_published":"2025-07-16T04:03:25+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-16 04:03","date_timestamp":1752638605,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69047017","content_html":"<p>Can’t believe it’s 2025 and new products that come with USB-C to USB-A cables instead of USB-C on both ends.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/15/cant-believe-its-and-new.html","date_published":"2025-07-15T22:39:59+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-15 22:39","date_timestamp":1752619199,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114859653442684344","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltzxv6f7a42i"]}},{"id":"69046838","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Those are nice looking as well! I don’t think the name would bother to me too much since it doesn’t appear to be written anywhere visible.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltzxohjeo22q","date_published":"2025-07-15T22:36:38+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-15 22:36","date_timestamp":1752618998,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69045715","content_html":"<p><span class=\"h-card\"><a href=\"https://micro.blog/jaredwhite@indieweb.social\" class=\"u-url mention\">@jaredwhite</a></span> It’s important to remember that most Christians have not read the Bible. If they have, it’s likely very little of it. The Bible is dense and most Americans read below a 6th grade level.</p>\n","url":"https://micro.blog/collin/69045715","date_published":"2025-07-15T22:15:02+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-15 22:15","date_timestamp":1752617702,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"69046114","content_html":"<p>I find the “normal people can’t tell” to be a bit offensive to the non-technical. You think if you showed this photo of CG Tarkin next to Peter Cushing to someone asked which is real they’d have no idea? If they say they can’t it’s probably because they’re trying to get out of the conversation.</p>\n\n<p><img src=\"https://cdn.uploads.micro.blog/389/2025/e75782d5a5-m.jpg\" width=\"600\" height=\"398\" alt=\"\" loading=\"lazy\"></p>\n","summary":"","url":"https://collin.micro.blog/2025/07/15/i-find-the-normal-people.html","date_published":"2025-07-15T22:11:32+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-15 22:11","date_timestamp":1752617492,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114859586235863647","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltzwwnfoft2h"]}},{"id":"68920014","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> That’s a very handsome bag. I’m a big fan of Fjallraven. Their messenger bag is very nice. www.fjallraven.com/us/en-us/bag…</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltw7kuhbfk24","date_published":"2025-07-14T10:47:08+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 10:47","date_timestamp":1752490028,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68920015","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> I didn’t even look it up. That is absolutely wild. I wonder if it’s like jewelry more than something they actually use for some of these people.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltw7ew25vs24","date_published":"2025-07-14T10:43:49+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 10:43","date_timestamp":1752489829,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68920016","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> I am not sure. I have no idea what these people are prying enough to justify carrying a special tool with them. I just have a little Swiss Army knife and then a pouch with some extras in it if I’m taking my backpack with me.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltw7cyqfk224","date_published":"2025-07-14T10:42:45+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 10:42","date_timestamp":1752489765,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68896154","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> I will check it out. If it’s relatively up to date, that sounds perfect. All of the basic stuff is easy for me, but the syntax or weird behaviors that seemingly only JS in the browser has trip me up.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltv7drsczs2p","date_published":"2025-07-14T01:10:31+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 01:10","date_timestamp":1752455431,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68896155","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Signed up. Thanks!</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltv77ic6ds2p","date_published":"2025-07-14T01:08:07+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 01:08","date_timestamp":1752455287,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68896156","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> You can write some truly terrible code with Notification Center. It is best used sparingly for things like application events either you set up or that the framework generates. I have seen nutty things done with Notifications, but I only ever used them in simple ways.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltv76kwrsc2p","date_published":"2025-07-14T01:07:36+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-14 01:07","date_timestamp":1752455256,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890487","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> That’s awesome! I have a few prints and posters I like on my wall, along with some acoustic treatment.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuxq5al5s2p","date_published":"2025-07-13T22:54:16+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:54","date_timestamp":1752447256,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890488","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> If I needed OAuth or social logins, I’m certain this gets more complicated, but for password only, I don’t see any reason to use a gem for this. My entire app so far hasn’t needed any third party gems outside of what Rails gives you. They really package a lot these days.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuxnzha7k2p","date_published":"2025-07-13T22:53:04+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:53","date_timestamp":1752447184,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890489","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> If you have more advanced needs, you might add a Session object owned by User, but I haven’t needed that yet. Once you’ve done that you’ll need to set up mailers and expiring tokens (on User) for password resets, both of which Rails gives you.</p>\n<p>It’s all incredibly easy and very little code.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuxnzh6b22p","date_published":"2025-07-13T22:53:04+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:53","date_timestamp":1752447184,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890490","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Yes. You really just need to set up your user model with a secure password, and have User and Session controllers. UserController is for sign up, and SessionController is for sign in. When the user submits the sign in form, set session[:user_id], for log out set it to nil. That’s it.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuxnz5ios2p","date_published":"2025-07-13T22:53:04+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:53","date_timestamp":1752447184,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890252","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> A clean office and desk, at least for me, help create a clear mind. Maybe it’s an ADHD thing?</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuxawxkz22p","date_published":"2025-07-13T22:45:46+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:45","date_timestamp":1752446746,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68890253","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> And yes, I’m sure my friends who are still primarily using Objective-C never stopped using them, but that’s definitely not the case with Swift.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltuwwd4vyk2l","date_published":"2025-07-13T22:39:49+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 22:39","date_timestamp":1752446389,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68870357","content_html":"<p><a href=\"http://paleofuture.bsky.social\">@paleofuture.bsky.social</a> He grew up wealthy, got out of college debt free, was able to get a good job at his dad’s company, and was given $100,000 no strings attached when he decided he didn’t want to do that. Wild.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltucbhhpp22p","date_published":"2025-07-13T16:30:15+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 16:30","date_timestamp":1752424215,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68870358","content_html":"<p><a href=\"http://collin.social\">@collin.social</a> Exactly! Flipping this mentality has totally changed my relationship with this method.</p>\n","url":"https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltubt2sd3k2p","date_published":"2025-07-13T16:22:12+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 16:22","date_timestamp":1752423732,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":true}},{"id":"68839890","content_html":"<p>I set up instructions for Copilot to confirm it’s got the MCP server connected and using my project when it starts, and to never write code for me, but to talk to me and answer questions. I much prefer this de-vibed version.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/12/i-set-up-instructions-for.html","date_published":"2025-07-13T05:34:40+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-13 05:34","date_timestamp":1752384880,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114844296016661376","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltt5ngl3m425"]}},{"id":"68828741","content_html":"<p>I am pruning and organizing my Safari bookmarks. Is this a waste of time? Probably.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/12/i-am-pruning-and-organizing.html","date_published":"2025-07-12T23:44:35+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-12 23:44","date_timestamp":1752363875,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114842919640534942","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltsk3jj2ls2o"]}},{"id":"68771078","content_html":"<p>I’m sure there are other minimal-JavaScript frameworks or things that are better than Stimulus, but I am getting pretty good at creating composable controllers, and I think that’s pretty neat.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/11/im-sure-there-are-other.html","date_published":"2025-07-12T02:42:21+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-12 02:42","date_timestamp":1752288141,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114837957883102150","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltqdl6gzls2o"]}},{"id":"68765928","content_html":"<p>My hot take: Image Playground sucks, Genmoji is pretty good.</p>\n","summary":"","url":"https://collin.micro.blog/2025/07/11/my-hot-take-image-playground.html","date_published":"2025-07-12T00:36:19+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-12 00:36","date_timestamp":1752280579,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114837462893997988","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3ltq4k55cqs2s"]}},{"id":"68682666","content_html":"<p>Street Savvy Part One: <a href=\"https://collin.photo/2025/07/10/street-savvy-part-one/\">collin.photo</a></p>","summary":"","url":"https://collin.photo/2025/07/10/street-savvy-part-one/","date_published":"2025-07-10T21:57:39+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-07-10 21:57","date_timestamp":1752184659,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":true,"is_mention":false,"note":"","syndication":[]}},{"id":"67827842","content_html":"<p>I currently have one small iOS/macOS app, a small-medium sized one, and a larger project which also involves a Rails app I want to design and finish. Should keep my free time occupied for a while.</p>\n","summary":"","url":"https://collin.micro.blog/2025/06/28/i-currently-have-one-small.html","date_published":"2025-06-29T00:01:50+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-06-29 00:01","date_timestamp":1751155310,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114763715561619901","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lspejoiqvc2q"]}},{"id":"67827603","content_html":"<p>A nice thing when Apple refreshes its design language is that, in the beginning at least, you can just use the standard controls and have it look cool and fresh. #iOSDev</p>\n","summary":"","url":"https://collin.micro.blog/2025/06/28/a-nice-thing-when-apple.html","date_published":"2025-06-28T23:54:19+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-06-28 23:54","date_timestamp":1751154859,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114763685830443049","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lspe45ydxq2i"]}},{"id":"65034351","content_html":"<p>I’m doing pretty well with YNAB so far. Having fixed expenses in their own bank account was a great idea, too. I should be able to start funding some of next month’s expenses when I get paid tomorrow, which is much better than I had been doing. My immediate goal is to be funding 30 days in advance.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/22/im-doing-pretty-well-with.html","date_published":"2025-05-22T22:37:57+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-22 22:37","date_timestamp":1747953477,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114553880424350678","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lps6lpdxox2j"]}},{"id":"65020898","content_html":"<p>Trying to get into the sport of precision pistol shooting. It turns out it is pretty difficult to hit the middle of a target one-handed from 50 plus feet away.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/22/trying-to-get-into-the.html","date_published":"2025-05-22T19:18:30+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-22 19:18","date_timestamp":1747941510,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114553097140183848","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lprthj2b3p2r"]}},{"id":"64797584","content_html":"<p>Has anyone experimented with integrating AppIntents as a sort of core part of their SwiftUI apps architecture? It seems like it could be an interesting idea at least for manipulating data? AddItemIntent().perform()?</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/19/has-anyone-experimented-with-integrating.html","date_published":"2025-05-20T01:39:34+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-20 01:39","date_timestamp":1747705174,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114537606602399843","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpkxda2yvr2l"]}},{"id":"64797060","content_html":"<p>I know how I would define the difference, but I’m curious for others — how would you explain the difference between a View Model in MVVM and a Controller in MVC?</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/19/i-know-how-i-would.html","date_published":"2025-05-20T01:20:50+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-20 01:20","date_timestamp":1747704050,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114537539751349473","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpkwetop7n2h"]}},{"id":"64783052","content_html":"<p>Kind of nuts, I can’t use SwiftUI’s TextEditor for something as simple as basic syntax highlighting. It’s easy enough to pull in NSTextView, but still, it’s surprising how not-powerful the text editing abilities of SwiftUI are.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/19/kind-of-nuts-i-cant.html","date_published":"2025-05-19T20:52:42+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-19 20:52","date_timestamp":1747687962,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114536478735882877","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpkhcdigpd2w"]}},{"id":"64780061","content_html":"<p>I don’t understand how people drive fancy cars. I got a Subaru Outback, which is nice but not fancy, and the payment is $701 a month with only 2.5% interest. I wanted all of the fancy safety features, and that’s been worth it, but after this, I’m never buying a new car again.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/19/i-dont-understand-how-people.html","date_published":"2025-05-19T20:04:35+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-19 20:04","date_timestamp":1747685075,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114536291829348506","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpkendrwha2h"]}},{"id":"64712936","content_html":"<p>Don’t get shingles. It’s the worst thing.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/18/dont-get-shingles-its-the.html","date_published":"2025-05-18T22:04:59+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-18 22:04","date_timestamp":1747605899,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114531104580833233","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpi2whkfw32p"]}},{"id":"64712855","content_html":"<p>Have about 15 rolls of film to scan 😅</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/18/have-about-rolls-of-film.html","date_published":"2025-05-18T22:03:04+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-18 22:03","date_timestamp":1747605784,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114531097309162100","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpi2t76a7o2n"]}},{"id":"64497552","content_html":"<p>I’m playing with the NextStep emulator at infinitemac.org. This must have felt like it was sent from the future in the 90s. This really  feels like early Mac OS X with a different UI, and that UI is kind of awesome.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/15/im-playing-with-the-nextstep.html","date_published":"2025-05-15T19:13:26+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-15 19:13","date_timestamp":1747336406,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114513454259590396","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lpaa3zaowy2j"]}},{"id":"64134298","content_html":"<p>All this talk of Swift NSCache replacements makes me want to make my own, even though there are seemingly multiple good ones 🤣￼</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/10/all-this-talk-of-swift.html","date_published":"2025-05-11T00:28:00+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-11 00:28","date_timestamp":1746923280,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":false,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114486367294262548","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3lou76byjj722"]}},{"id":"63959677","content_html":"<p>I’ve been doing a really good job at work lately, and also figuring out my financial stuff to be more sustainable. Feeling good about life in general.</p>\n","summary":"","url":"https://collin.micro.blog/2025/05/08/ive-been-doing-a-really.html","date_published":"2025-05-08T16:19:23+00:00","author":{"name":"Collin Donnell","url":"http://collin.blog","avatar":"https://cdn.micro.blog/photos/96/https%3A%2F%2Fmicro.blog%2Fcollin%2Favatar.jpg","_microblog":{"username":"collin"}},"_microblog":{"date_relative":"2025-05-08 16:19","date_timestamp":1746721163,"is_favorite":false,"is_bookmark":false,"is_deletable":false,"is_conversation":true,"is_linkpost":false,"is_mention":false,"note":"","syndication":["https://Ruby.social/@collin/114473119333478845","https://bsky.app/profile/did:plc:mvuozcznism7etitwjxvmywm/post/3loocvuexpi2e"]}}]}