Kathy Tafel
banner
kathytafel.bsky.social
Kathy Tafel
@kathytafel.bsky.social
iOS dev | conference speaker | Mac addict
https://www.therecipeboxapp.com

Leave the world better than you found it, and have fun

SF—>Bkln—>Berlin

Retweets ≠ 👍🏻

She/her
🇺🇦🍉🤎🌮
We all breathe the same air.
Pinned
Excited that we managed to ship The Recipe Box for iPad and iPhone with Liquid Glass support and recipe timers ready for download on new iPhone day. Get it here for iPad: apps.apple.com/us/app/the-r...
Reposted by Kathy Tafel
It’s impossible to find a white hat hacker after Labor Day.
December 18, 2025 at 12:16 PM
Reposted by Kathy Tafel
I'm old enough to remember Paul Wellstone's death, and how Republicans led the dumbest pundit dickheads in a round of schoolmarm scolding after liberals celebrated Paul's life in partisan terms. All I can say is: Get over it. This is how we should pay respects to one of our own: Partisan as fuck.
December 17, 2025 at 12:39 AM
Reposted by Kathy Tafel
Wiping out Oracle's IP--all of it--with a quick Congressional bill at the start of a new admin--would more than suffice to make everyone realize that liberals, when sufficiently angry, are scarier than reactionaries.

And it would destroy a parasitic copyright troll of negative economic value.
this will only change when democrats punish or threaten to punish
Also, I get why the networks caved and agreed to air a clearly political speech not related to breaking news: They're scared, it's his first year back, and it's not worth the blowback. But the same networks refused to run Biden's Democracy speech and Obama speeches on health care + immigration.
December 17, 2025 at 4:41 AM
Reposted by Kathy Tafel
I know this is a bold stance in America, but I simply do not believe we should be declaring war on another country for “stealing our oil” when the oil is, in fact, under the ground of that other country
December 17, 2025 at 1:01 AM
Reposted by Kathy Tafel
Who called then vampires and not neck-romancers?
December 17, 2025 at 6:07 AM
To whom it may concern: I am on this site so I don’t have to pay attention to the nonsense on twitter. Please refrain from screencapping or mentioning it. Kthxbai.
December 16, 2025 at 9:11 PM
Reposted by Kathy Tafel
Every few months now I re-read this "Who Goes Nazi?" piece from 1941 and am blown away by how it captures the people we are dealing with 80 years later.

harpers.org/archive/1941...
Who Goes Nazi?, by Dorothy Thompson
harpers.org
October 1, 2025 at 11:59 PM
Reposted by Kathy Tafel
Fascist foot soldiers now openly targeting the children of their opponents.
December 14, 2025 at 7:00 PM
Reposted by Kathy Tafel
This is going to become an option to choose death instead of debt. And it will be abused. People who can't afford to live will find they can't afford to die painlessly either because they cannot afford a doctor's visit or the prescribed medication for a terminal diagnosis.
December 14, 2025 at 5:40 PM
Reposted by Kathy Tafel
"The United States...possesses a well-organized and resource-rich civil society... This endows U.S. citizens with...resources for pushing back against authoritarian governments. Such countervailing power greatly exceeds anything available to oppositions in Hungary, India, or Turkey"
Must Read Levitsky, Way, Ziblatt: "[The] United States has descended into competitive authoritarianism...[Like] Chávez’s Venezuela,...Erdogan’s Turkey,...Orban’s Hungary ...[The] United States'... authoritarian turn was faster and farther-reaching than those."
www.foreignaffairs.com/united-state...
The Price of American Authoritarianism
What can reverse democratic decline?
www.foreignaffairs.com
December 14, 2025 at 4:18 PM
Reposted by Kathy Tafel
cookie monster, crying, as the body of christ just crumbles and falls from his mouth
the line is actually "no JESUS for us meeses," an oblique reference to the fact that, as muppets are unable to take communion, they are forbidden from entering the kingdom of god
December 14, 2025 at 4:36 AM
Reposted by Kathy Tafel
I say this quite honestly. My view is that the conservative majorities of the Court who brought us here are complicit in all of this. They have blood on their hands and they should be remembered as facilitators of death and suffering.
Guns don't kill people, SCOTUS' 2nd amendment jurisprudence kills people.
December 14, 2025 at 4:47 AM
Reposted by Kathy Tafel
this. i remember when it was created along with DHS (also can be eliminated).
Just a reminder that ICE didn't exist until 2002. It's not some longstanding institution that must be maintained. It was created as a knee-jerk reaction to 9/11, and it could be gotten rid of as easily as it was created.
December 13, 2025 at 4:37 PM
Reposted by Kathy Tafel
Swift Configuration 1.0 released
Every application has configuration: in environment variables, configuration files, values from remote services, command-line flags, or repositories for stored secrets like API keys. But until now, Swift developers have had to wire up each source individually, with scattered parsing logic and application code that is tightly coupled to specific configuration providers. **Swift Configuration** brings a unified, type-safe approach to this problem for Swift applications and libraries. What makes this compelling isn’t just that it reads configuration files: plenty of libraries do that. It’s the clean abstraction that it introduces between _how_ your code accesses configuration and _where_ that configuration comes from. This separation unlocks something powerful: libraries can now accept configuration without dictating the source, making them genuinely composable across different deployment environments. With the release of Swift Configuration 1.0, the library is production-ready to serve as a common API for reading configuration across the Swift ecosystem. Since the initial release announcement in October 2025 over **40 pull requests** have been merged, and its API stability provides a foundation to unlock community integrations. ## Why it exists Configuration management has long been a challenge across different sources and environments. Previously, configuration in Swift had to be manually stitched together from environment variables, command-line arguments, JSON files, and external systems. Swift Configuration creates a common interface for configuration, enabling you to: * **Read configuration the same way across your codebase** using a single configuration reader API that’s usable from both applications and libraries. * **Quickly get started with a few lines of code** using simple built-in providers for environment variables, command-line arguments, JSON and YAML files. Later, when your configuration needs require a more sophisticated provider, swap it in easily, without refactoring your existing code. * **Build and share custom configuration providers** using a public ConfigProvider protocol that anyone can implement and share. This allows domain experts to create integrations with external systems like secret stores and feature flagging services. Swift Configuration excels in the Swift server ecosystem, where configuration is often read from multiple systems and tools. The library is equally useful in command-line tools, GUI applications, and libraries wherever flexible configuration management is needed. For a step-by-step evolution of an example service, from hardcoded values all the way to a flexible provider hierarchy, check out the video of my talk from the ServerSide.swift conference in London. ## Getting started After adding a package dependency to your project, reading configuration values requires just a couple of lines of code. For example: import Configuration let config = ConfigReader(provider: EnvironmentVariablesProvider()) let timeout = config.int(forKey: "http.timeout", default: 60) However, Swift Configuration’s core strength is its ability to combine _multiple_ configuration providers into a clear, predictable hierarchy, allowing you to establish sensible defaults while providing clean override mechanisms for different deployment scenarios. For example, if you have default configuration in JSON: { "http": { "timeout": 30 } } And want to be able to provide an override using an environment variable: # Environment variables: HTTP_TIMEOUT=15 Then what we have are two Swift Configuration “providers”, and we can layer them: let config = ConfigReader(providers: [ EnvironmentVariablesProvider(), try await FileProvider<JSONSnapshot>(filePath: "/etc/config.json") ]) let timeout = config.int(forKey: "http.timeout", default: 60) print(timeout) // 15 Providers are checked in the order you specify: earlier providers override later ones, followed by your fallback defaults. This removes ambiguity about which configuration source is actually being used. ## Advanced capabilities Beyond basic lookups, the library includes features for production environments: * Multiple access patterns – choose between the synchronous, asynchronous, and watching patterns. * Hot reloading – apply configuration updates without restarting your service. * Namespacing and scoped readers – organize configuration values through nesting. * Access logging – easily debug configuration issues through detailed observability. * Secret redaction – avoid accidental exposure of sensitive configuration values. The documentation covers these features in detail. ## Community adoption With 1.0, the API is now stable. Projects can depend on Swift Configuration knowing only backward-compatible changes are expected going forward. API stability allows libraries and tools to rely on Swift Configuration as a common integration point for reading configuration. Prior to the 1.0 release, a number of ecosystem projects have begun experimenting with and adopting Swift Configuration. Here are some examples of efforts in progress: * **In libraries**: Expose configuration entry points built on `ConfigReader`, making your library easier to integrate. Projects experimenting with Swift Configuration include: * Vapor * Hummingbird * Swift Temporal SDK * **In applications**: Instantiate a `ConfigReader` and pass it to your dependencies. Use any combination of `ConfigProvider` types - JSON/YAML files, environment variables, or remote systems. * Peekaboo * swiftodon * **By implementing custom providers**: Extend the ecosystem with new formats or external sources by implementing a `ConfigProvider`. Examples of experimental providers: * Swift Configuration TOML * Vault Courier * Swift Configuration AWS ## Next steps With a stable foundation in place, libraries and applications can begin finalizing their own integrations and releasing API-stable versions built on Swift Configuration. Try integrating Swift Configuration into your applications, tools, and libraries, check out the project’s documentation, and continue sharing feedback from your real-world experience on the GitHub repository through issues, pull requests, or Swift Forums discussions. Happy configuring! ⚙️
swift.org
December 12, 2025 at 6:39 PM
Reposted by Kathy Tafel
The real lesson of Christmas is that if God had wanted to win over working-class Judeans, he should have sent down a less divisive Messiah.
December 13, 2025 at 2:12 AM
Reposted by Kathy Tafel
Today is a day when arts degrees are worthless, but the product of those degrees is so valuable it would kill an entire industry if they were made to pay for it.
October 8, 2025 at 10:29 AM
Reposted by Kathy Tafel
In terms of US politics, Bush v. Gore is the defining event of the century. It set the template: a ruthless right that instinctively seeks power & doesn't give a shit about rule of law...and a bunch of hapless, feckless octogenarian Dems worried about the good opinion of centrist opinion columnists.
The 25th anniversary of Bush v Gore is today. The conspiracy mongering & corruption of the GOP has been brewing for a long time.

Roberts, Barrett and Kavanaugh were all on Bush's legal team, where they pushed unfounded legal theories. SC justices were already enmeshed in voter fraud myths.
Here's Sandra Day O'Connor endorsing News Max levels of voter fraud conspiracies in the 2000 election.
December 12, 2025 at 6:53 PM
Reposted by Kathy Tafel
In keeping w “Kavanaugh Stops,” let’s call these Kennedy Pox.
The measles outbreak in South Carolina is “accelerating” with no end in sight following Thanksgiving and other large gatherings, state health officials say.
South Carolina measles outbreak is 'accelerating,' driving hundreds into quarantine
Some students who remain unvaccinated are now in a second 21-day quarantine since the beginning of the school year.
nbcnews.to
December 11, 2025 at 2:30 AM
Reposted by Kathy Tafel
It's exhausting. It's an Ouroboros of pure fucking bullshit. And ultimately it's not their money they're playing with, it's other people's money. Public employee pension funds.
December 11, 2025 at 10:08 AM
Reposted by Kathy Tafel
It’s been two weeks since ICE took Yuanxin Zheng from his father. He is six years old. He’s still not home. This has to end.
December 10, 2025 at 10:32 PM
Reposted by Kathy Tafel
People keep wondering why they're going after Venezuela. It's because they want to do regime change and control its oil, then use a big tract of land there to keep a tax free "network state" that looks like Dubai but operates like Rhodesia. They are saying this out loud! Believe them!
December 10, 2025 at 6:57 PM
Reposted by Kathy Tafel
Non-creatives think ideas are rare and precious. But most creatives already have far more ideas than they can use in a lifetime. The real bottlenecks are time and technical skill.
December 10, 2025 at 12:30 AM
Reposted by Kathy Tafel
"there's a new serif in town"
Marco Rubio ordered diplomats to return to using Times New Roman font in official communications, calling his predecessor's decision to adopt Calibri a “wasteful” diversity move
Rubio Stages Font Coup: Times New Roman Ousts Calibri
The secretary of state called it a "wasteful" diversity move, according to an internal department cable seen by Reuters.
www.huffpost.com
December 10, 2025 at 1:06 AM
I sortof agree but it’s maybe more useful than bored ape NFTs.
I cannot stress enough how the AI thing is just blockchain again. It has some uses, yes, but they're not actually general purpose ones. The bubble is going to burst and it's going to be so bad and like all cons, it's going to leave a few people rich and the rest FUCKED OVER.
A great deal of AI hype is coming from con artists who understand exactly how much easier it’s going to be to use the same cons over and over once they achieve their dream of a world in which nobody understands how anything 1) works or 2) has ever worked.
December 9, 2025 at 10:47 PM
This is why I keep LLMs sandboxed in a browser. This is why normal people should use Automator and not CLIs.
December 8, 2025 at 8:55 AM