Andrew Cowley's Avatar

Andrew Cowley

@disc0inferno

Interests :. Hobbyist Swift developer, investing, books/reading, cooking, cycling

16
Followers
32
Following
100
Posts
03.12.2024
Joined
Posts Following

Latest posts by Andrew Cowley @disc0inferno

Preview
GitHub - disc0infern0/iosRichTextEditor: A Rich Text Editor based on AttributedString, based off the wonderful series by Stewart Lynch. A Rich Text Editor based on AttributedString, based off the wonderful series by Stewart Lynch. - disc0infern0/iosRichTextEditor

Manipulating the new AttributedString directly however, does yield, with a little effort, good results.
Take a look here:-

github.com/disc0infern0...

19.02.2026 20:21 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Iirc no-one could agree in the pitch how it should work, with most people just giving up and rolling their own. That may not be wholly accurate. But it’s the impression I got.

17.02.2026 20:42 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I continue to be impressed by your ability to sift through the internet to unearth the gems that you highlight here or in your emails. Thankyou.

15.02.2026 08:56 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

And they are all blissfully unaware of the tech to rule them all? -perhaps when AI shrugs off their meat sack overlords? Gibson needs to update this Asimovian/Tolkien story.

09.02.2026 07:12 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Or possibly the reluctance to read it.

09.02.2026 00:04 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
I'm GenX. We grew up in an all-print world. We read really fast. So, my Millennial and GenZ peeps, I beg you for the love of Bananarama, please just send me the article and not the TikTok of the dude talking about the article. In Prince's funky name, amen.

I'm GenX. We grew up in an all-print world. We read really fast. So, my Millennial and GenZ peeps, I beg you for the love of Bananarama, please just send me the article and not the TikTok of the dude talking about the article. In Prince's funky name, amen.

08.02.2026 20:41 πŸ‘ 2052 πŸ” 416 πŸ’¬ 89 πŸ“Œ 95
Post image

Universal has revealed that Christopher Nolan will adapt #TheOdyssey, the epic poem from Homer. Matt Damon, Tom Holland, Zendaya, Robert Pattinson, Lupita Nyong’o, Anne Hathaway and Charlize Theron are set to star: bit.ly/4gO3UH7

23.12.2024 22:30 πŸ‘ 86 πŸ” 30 πŸ’¬ 3 πŸ“Œ 146

What is the essence of your solution?

09.12.2025 00:15 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I have seen that too. It may not be optimal, but I ignored it and carried on. It all still works yes?

09.12.2025 00:04 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

and not forgetting the great Xcode Inspector Morse.
(played by John Thaw on UKTV. If you haven't seen it - it's a wonderful thing.)

10.11.2025 00:07 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - disc0infern0/httpPing Contribute to disc0infern0/httpPing development by creating an account on GitHub.

Thanks to @stewartlynch.bsky.social @massicotte.org @johnsundell.bsky.social @fatbobman.com , we now have httpPing:

github.com/disc0infern0...

10.11.2025 00:02 πŸ‘ 5 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

It may be of academic interest to peruse how I made it work on older OS's, because it required the use of DispatchGroup and a tiny unchecked Sendable class that I could have avoided if only Mutex was back ported.
If anyone can see a way to avoid that, I would love to hear about it.

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So I then made a thing, very much like ping, but it's an http ping, using http instead of icmp.

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I also wanted to make it work on Swift 6 with full checking and main actor isolation by default, and no pre concurrency cheating.

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So I thought there should be a way of making this work for all OS's. This made me learn a lot about "Approachable Concurrency". Thanks to Fatbobman and Mark Massicote for their posts on this subject.

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Stewarts solution is good, but it didn't follow re-directs, nor did it start with HEAD to save bandwidth (and switch to GET if HEAD request was refused).
Most importantly, it didn't work on all OS's.
Swift concurrency has made getting data from a url really nice, but only on modern OS.

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

So it started with SwiftBySundells macro to make non optional URL's, but was frustrated that (quite reasonably) you can't escape the sandbox in a macro to check if the supplier url string is actually a working web site.
Then I saw Stewart Lynch's post where he claimed URL validation .

10.11.2025 00:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Your talk made non isolated(non sending) actually make sense in my head for the first time. Thankyou!

09.11.2025 23:46 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Growing up, the mnemonic taught to me was

Good Boys Deserve Football - Always

I think burritos were not widely known or eaten in the UK at the time :)

16.10.2025 13:14 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
Falling Into The Pit of Success Eric Lippert notesΒ the perils of programming in C++: I often think of C++ as my own personal Pit of Despair Programming Language.Β Unmanaged C++ makes it so easy to fall into traps. Think buffer overr...

blog.codinghorror.com/falling-into...

09.10.2025 09:15 πŸ‘ 1 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Would be great if you could post links to some of the great resources you found? In your earlier post, I only saw a recommendation for a book behind a paywall.

30.09.2025 07:13 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Finessing here: In terms of reachability, I understand 403 and 405 http status codes also represent valid contact. As some sites do not support the Head method, it may be best to use Get, and set it to request 0 bytes instead?

29.09.2025 16:09 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I like the idea of getting http headers to validate the site exists. (Trying to find/develop a β€˜ping’ equivalent is a black hole I don’t want to revisit. )

28.09.2025 10:41 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Thankyou! I’ll try that - don’t know why it didn’t occur to me.

13.09.2025 12:24 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Is there a good Bluesky client for iPad and/or Mac ? I dislike peering at my phone, and find I’m wanting to browse the posts on a larger screen.

12.09.2025 22:47 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I’m not sure if that helps with Localization, but let me know :)

10.09.2025 11:03 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

@useyourloaf.com Helper for Text from an optional value that is not String:

πšŽπš‘πšπšŽπš—πšœπš’πš˜πš—β€€π™Ύπš™πšπš’πš˜πš—πšŠπš•β€€πš πš‘πšŽπš›πšŽβ€€πš†πš›πšŠπš™πš™πšŽπš:β€€π™»πš˜πšœπšœπš•πšŽπšœπšœπš‚πšπš›πš’πš—πšπ™²πš˜πš—πšŸπšŽπš›πšπš’πš‹πš•πšŽβ€€{
πšπšžπš—πšŒβ€€πš’πšπš—πš’πš•(_β€€πšπšŽπšπšŠπšžπš•πšπš‚πšπš›πš’πš—πš:β€€πš‚πšπš›πš’πš—πš) –>β€€πš‚πšπš›πš’πš—πšβ€€{
πš’πšβ€€πš•πšŽπšβ€€πšœπšŽπš•πšβ€€{β€€πš‚πšπš›πš’πš—πš(πšœπšŽπš•πš)β€€}β€€πšŽπš•πšœπšŽβ€€{β€€πšπšŽπšπšŠπšžπš•πšπš‚πšπš›πš’πš—πšβ€€}}}
varβ€€c:β€€π™Έπš—πš?
πš™πš›πš’πš—πš(β€œcβ€€πš’πšœβ€€\(πš’.πš’πšπš—πš’πš•("πš—ot setβ€œ))”)

10.09.2025 11:02 πŸ‘ 0 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

I believe you are right. I read it quickly as it triggered my angst with AttributedString in general. It likely has to be a non serializable class however due to the aforementioned bridging.

18.08.2025 22:43 πŸ‘ 2 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

Also, @krzyzanowskim.com has a Text Kit 1 library which he uses for Notepad.exe.

18.08.2025 20:28 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0
Preview
GitHub - ChimeHQ/Chime: An editor for macOS An editor for macOS. Contribute to ChimeHQ/Chime development by creating an account on GitHub.

@massicotte.org Chime library at github.com/ChimeHQ/Chime shows how complex this game gets.

18.08.2025 20:27 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0