Posts by jjoelson@mastodon.social
 (DIR) Post #APZSP7XEHJWVmWzIWW by jjoelson@mastodon.social
       2022-11-11T01:47:10Z
       
       0 likes, 0 repeats
       
       @mattiem @kyle @krzyzanowskim @helge @cocoaphony AFAICT Actors are mostly about low-level memory safety i.e. making sure that two threads don’t use the same memory at the same time.It doesn’t do anything to make async *logic* easier; it just helps you avoid that situation where you forgot to dispatch to the main queue.
       
 (DIR) Post #APZSPFHDUjT5nBYcfx by jjoelson@mastodon.social
       2022-11-13T13:49:06Z
       
       0 likes, 0 repeats
       
       @krzyzanowskim @Migueldeicaza @matt @uliwitness @mattiem @helge @kyle @cocoaphony It's possible async/await makes asynchrony *too* ergonomic such that people mindlessly add it where they shouldn't.E.g. it's easy to write this:func foo() async {    let bar = await loadBar()    // Complex logic}when we should probably write this:func foo(bar: Bar) {    // Complex logic}
       
 (DIR) Post #APZSPG6GQwIkLVROF6 by jjoelson@mastodon.social
       2022-11-13T13:49:07Z
       
       0 likes, 0 repeats
       
       @krzyzanowskim @Migueldeicaza @matt @uliwitness @mattiem @helge @kyle @cocoaphony I always try to keep async orchestration and complex domain logic separate. This is something we all did more naturally when asynchrony meant callbacks and pyramids of doom!
       
 (DIR) Post #APZSPGhqBEMKE31OoS by jjoelson@mastodon.social
       2022-11-13T13:56:07Z
       
       1 likes, 0 repeats
       
       @Migueldeicaza @kyle @mattiem @cocoaphony @krzyzanowskim @helge @matt @uliwitness Said another way: complex logic within nested closures is an obvious code smell. `await` is much more subtle.
       
 (DIR) Post #APhO5mX7IETUak8aQ4 by jjoelson@mastodon.social
       2022-11-16T19:10:30Z
       
       0 likes, 0 repeats
       
       Does SwiftUI really not have a way to insert items at the top of a list without changing which items are visible?It feels bad that I waited for SwiftUI's 4th version to try it in a serious way and I still hit a "back to UIKit" brick wall with the very first thing I tried. 😞#SwiftUI #Swift
       
 (DIR) Post #APhO5pJOxgHpD4kAxU by jjoelson@mastodon.social
       2022-11-16T22:57:19Z
       
       0 likes, 0 repeats
       
       @thattridentdude @twostraws I'm probably describing it poorly!In Paul's example, each time you insert a row the existing rows get pushed down. Inserting many rows at once would cause all of the visible rows to get pushed off screen.What I want is for the newly inserted rows to appear off screen above the existing rows. In UIKit you can do this by manually setting the table view's content offset after calling reloadData()
       
 (DIR) Post #APhO5rbCSTiCIr5Pyi by jjoelson@mastodon.social
       2022-11-17T14:45:00Z
       
       0 likes, 0 repeats
       
       @ole @thattridentdude @twostraws Thanks for the tip!Aside from the limitations you mention, I think this only works if you’re already scrolled to the top, because you’re grabbing the first item in the array to scroll to. I don’t think List has a general mechanism for identifying which rows are currently visible or their current offset from the top (?)
       
 (DIR) Post #APhX8lu4zQ6X5xNXWa by jjoelson@mastodon.social
       2022-11-17T16:06:21Z
       
       1 likes, 0 repeats
       
       @twostraws @ole @thattridentdude @shadowfacts There has been a lot of variation over the last few years in how onAppear/onDisappear behave and it’s never clear to me what the intended behavior is versus bugs versus incidental behavior. So I’d be hesitant to trust this unless it’s documented. 😅Also, knowing the first visible row isn’t sufficient; I need to know it’s offset to avoid a jump!
       
 (DIR) Post #APhX8mZYVDHVAamfAm by jjoelson@mastodon.social
       2022-11-17T16:17:13Z
       
       1 likes, 0 repeats
       
       @thattridentdude @ole @twostraws @shadowfacts Ultimately I think SwiftUI needs to give up on its declarative purity and add hooks into view building/updating so we can control things imperatively if necessary.  There needs to be a middle ground between “100% declarative” and “rewrite in UIKit”. Flutter does this right imo:- Widget lifecycle hooks ✅- Widgets like ListView have controller objects ✅
       
 (DIR) Post #APkcaUROaijEHysW2K by jjoelson@mastodon.social
       2022-11-19T04:47:36Z
       
       0 likes, 0 repeats
       
       @shadowfacts Are you using self-sizing cells? I find that can cause the offsets to be automatically recalculated at unexpected times.
       
 (DIR) Post #APkdlqNPTVslSdzYFE by jjoelson@mastodon.social
       2022-11-19T05:01:01Z
       
       0 likes, 0 repeats
       
       @shadowfacts I posted this yesterday about coming to the realization that we probably still need to calculate cell heights manually for certain types of feed-centric apps: https://mastodon.social/@jjoelson/109360437410712685
       
 (DIR) Post #APw9Kg9weYOG9NAmkS by jjoelson@mastodon.social
       2022-11-24T15:09:17Z
       
       0 likes, 0 repeats
       
       I find it odd that no #iOS Mastodon clients seem to use the marker API to save/sync the home timeline position: https://docs.joinmastodon.org/methods/markers/It took me just a few hours to implement serviceable timeline sync, and the ability to switch between iPad and iPhone and pick up right where I left off is a godsend. My two week old #PleistoceneClient is already my favorite way to consume my timeline. ✨#iOSDev
       
 (DIR) Post #APw9KhZrNgiKY2IzmS by jjoelson@mastodon.social
       2022-11-24T15:50:40Z
       
       0 likes, 0 repeats
       
       For those asking for a #PleistoceneClient beta link, I'm feeling a bit torn between "ship it!!!!" and "you only have one chance to make a first impression." The app does literally nothing but display your timeline right now; you can't even tap an image preview to view it full size. Even for a beta there are a lot of features I'd like to add before releasing! 😅
       
 (DIR) Post #APwoZkofiXTP3dWtou by jjoelson@mastodon.social
       2022-11-25T02:05:09Z
       
       0 likes, 0 repeats
       
       @Migueldeicaza @js Apparently the web client *sets* the marker. @finestructure pointed out that this is a problem because opening the web UI effectively erases your marker position by setting it to the latest: https://github.com/mastodon/mastodon/issues/19036#issuecomment-1309861792
       
 (DIR) Post #ARRoAee1G5DKoETcLQ by jjoelson@mastodon.social
       2023-01-08T18:08:41Z
       
       0 likes, 0 repeats
       
       @mashbooq @timbray @davidgerard @davew @mitchw @BarbNerdy Also, every subscription provides *way* too much content. I understand why writers need to do “write a lot, charge a lot”, but as a reader I don’t have time to read that much from a single writer. Doesn’t help that a single writer producing lots of content with no editor is not exactly a recipe for tight and efficient writing.
       
 (DIR) Post #ARRoAfelUnP9wppj96 by jjoelson@mastodon.social
       2023-01-08T18:30:19Z
       
       0 likes, 0 repeats
       
       @kcivey @mashbooq @timbray @davidgerard @davew @mitchw @BarbNerdy I think we're seeing that the concept of bundling _does_ make economic sense for both readers and writers:- Readers need a _small_ number of subscriptions that provide them a range of writers on a range of topics, not _all_ of which they'll be interested in, but enough- Writers need some revenue from readers who aren't so obsessed with _their_ writing in particular that they can devote all their time and money to them
       
 (DIR) Post #AXUkCEuHUmMHV7Yf6e by jjoelson@mastodon.social
       2023-07-08T20:00:56Z
       
       0 likes, 0 repeats
       
       @tante @schwa his takes got noticeably worse after he started a podcast with noted tech industry mouthpiece Ben Thompson.
       
 (DIR) Post #AzuSNmMq5nTxAkWY6a by jjoelson@mastodon.social
       2025-11-04T18:02:43Z
       
       0 likes, 0 repeats
       
       @interfluidity I think what this post misses is that actual hands-on-keyboard coding time has _never_ been the bottleneck.This is the general flaw with AI coding tools, and it's the same reason outsourcing to large offshore dev teams rarely speeds up overall delivery.