Archive for March 22, 2023

Wednesday, March 22, 2023

Little Snitch Mini 1.0

Objective Development:

It shows you each and every Internet connection of all apps on your Mac. And if you don’t like what you see, you simply push the Stop-Button.

[…]

Choose from a curated collection of blocklists covering thousands of ad servers, tracking servers and much more. They are kept up-to-date automatically, for optimal protection of your privacy.

[…]

The network monitoring functionality, including the real-time connection list, traffic diagrams and the animated map view can be used for free!

The full feature set, including connection blocking, extended traffic history time ranges, advanced display and filtering options and more is available as an in-app purchase.

Great idea to make a simplified version of Little Snitch. It’s $13.49/year vs. $69.

Previously:

Update (2023-03-23): See also: Hacker News.

Nate Silva:

The new @littlesnitch Mini blocks and reports in the same way that the original Little Snitch did, but it does this by using blocklists. Like an ad blocker, but for the whole system. I guess that makes it like a proxy, but easier to set up and manage. So far, it’s great.

Would like to hear about the blocklists that people use. I think apps could use a blocklist that isn’t as focused on web browser privacy.

Swift Atomics 1.1

Karoy Lorentey (Mastodon):

This change will finally enable widespread use of atomic strong references in Swift code.

[…]

ManagedAtomic will finally become conditionally Sendable when its Value is Sendable. This has proved to be a constant pain point for users, especially when first trying out the package, or in the simplest production use cases.

[…]

Non-copiable types are quickly approaching, and they are an important step towards modeling synchronization primitives such as atomics as Swift native constructs.

[…]

I expect Swift Atomics 1.2 will introduce Atomic<Value> soon after the language matures enough to support it, if and when that happens. (I also expect the Standard Library to start providing the same or (similar) construct at that point, eventually replacing the need for this package altogether.)

Previously:

Swift Proposal: Noncopyable Structs and Enums

SE-0390:

All currently existing types in Swift are copyable, meaning it is possible to create multiple identical, interchangeable representations of any value of the type. However, copyable structs and enums are not a great model for unique resources. Classes by contrast can represent a unique resource, since an object has a unique identity once initialized, and only references to that unique object get copied. However, because the references to the object are still copyable, classes always demand shared ownership of the resource. This imposes overhead in the form of heap allocation (since the overall lifetime of the object is indefinite) and reference counting (to keep track of the number of co-owners currently accessing the object), and shared access often complicates or introduces unsafety or additional overhead into an object’s APIs. Swift does not yet have a mechanism for defining types that represent unique resources with unique ownership.

[…]

We propose to allow for struct and enum types to declare themselves as noncopyable, using a new syntax for suppressing implied generic constraints, ~Copyable. Values of noncopyable type always have unique ownership, and can never be copied (at least, not using Swift’s implicit copy mechanism). Since values of noncopyable structs and enums have unique identities, they can also have deinit declarations, like classes, which run automatically at the end of the unique instance’s lifetime.

Previously: