photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A place for your photos and banter. Photog first is our motto Please refer to the site rules before posting.

Administered by:

Server stats:

244
active users

#swift

12 posts11 participants0 posts today
Adam Fowler<p>I made a thing <a href="https://mastodon.scot/tags/valkey" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>valkey</span></a> <a href="https://mastodon.scot/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> </p><p><a href="https://valkey.io/blog/valkey-swift/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">valkey.io/blog/valkey-swift/</span><span class="invisible"></span></a></p>
Christian Tietze<p>Is there a <a href="https://mastodon.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> linting tool that marks e.g. NavigationView usage where new APIs should be used?</p>
Jason Sadler<p><strong>NES Emulator: CPU Instructions</strong></p><p>I’m <a href="https://www.sadlerjw.com/2025/07/31/writing-an-nes-emulator-in-swift/" rel="nofollow noopener" target="_blank">writing an NES emulator</a> in Swift!</p><p>The NES uses a <a href="https://en.wikipedia.org/wiki/MOS_Technology_6502" rel="nofollow noopener" target="_blank">6502</a> processor, which has 3 normal registers (<code>a</code>, <code>x</code>, and <code>y</code>) and defines its own instruction set of <a href="https://www.nesdev.org/wiki/Instruction_reference" rel="nofollow noopener" target="_blank">56 instructions</a>. That makes for a lot of little tiny implementations! Addition (<a href="https://www.nesdev.org/wiki/Instruction_reference#ADC" rel="nofollow noopener" target="_blank"><code>ADC</code></a>) and subtraction (<a href="https://www.nesdev.org/wiki/Instruction_reference#SBC" rel="nofollow noopener" target="_blank"><code>SBC</code></a>) are probably the most complex ones, with the latter taking me some two hours to figure out simply because it’s the first time since 2004(?) that I’ve had to think about binary math and <a href="https://en.wikipedia.org/wiki/Two%27s_complement" rel="nofollow noopener" target="_blank">two’s complements</a>. Luckily (or annoyingly depending on your point of view) many of the instructions are nearly identical, especially the six “transfer” instructions, which just copy values between different registers.</p><p>While the obvious thing might have been to implement each instruction as a small function on my <code>CPU</code> class, I wanted to break each out into its own file to avoid making it a multi-thousand-line mess. Having each instruction implemented as its own struct also gives me the flexibility to turn each into a little state machine if I decide to make my emulator clock-accurate in the future. For the time being, each instruction fully executes on its first clock tick, and then the CPU just spins for the <a href="https://www.nesdev.org/wiki/6502_cycle_times" rel="nofollow noopener" target="_blank">correct number of ticks</a> before executing the next instruction. So my current implementation is <em>duration</em>-accurate, but not <em>clock</em>-accurate.</p><p>The <a href="https://github.com/sadlerjw/SwiftNES/blob/9dcf155f4f54918bcf6afde4d5dc7ba8a27ef9b7/NES-iOS/Emulator/Instructions.swift#L8" rel="nofollow noopener" target="_blank"><code>Instruction</code> protocol</a> that each instruction conforms to just defines an <code>execute</code> method that takes the CPU as an argument. Since the instruction naturally needs to be able to fully access the CPU, one downside of this arrangement is that none of the CPU’s state can be declared private. The <code>NES</code> class is the only other code with a reference to the CPU, but it does expose it as public so that I can create some <a href="https://www.sadlerjw.com/wp-content/uploads/2025/08/Simulator-Screenshot-Clone-2-of-iPhone-16-Pro-2025-08-02-at-15.03.19.png" rel="nofollow noopener" target="_blank">debugging UI</a> with access to its registers. Maybe I can mitigate that with some module boundaries. We’ll see.</p><p>Because I have no idea what I’m doing (and because I hope the source can be a bit of a portfolio piece to show to potential employers), <a href="https://github.com/sadlerjw/SwiftNES/tree/main/NES-iOSTests" rel="nofollow noopener" target="_blank">I wrote unit tests</a> for each instruction and addressing mode.</p><p>One mistake I made is forgetting that of course some instructions<em> write</em> to memory! Since most of the instructions just read values and store results in registers, I had the CPU’s <code>tick</code> function use the current addressing mode to fetch the appropriate value and make it available to the instruction via a property on <code>CPU</code> before calling the instruction’s <code>execute</code> method. When I got to read-modify-write instructions like <a href="https://www.nesdev.org/wiki/Instruction_reference#ASL" rel="nofollow noopener" target="_blank"><code>ASL</code></a>, I let the instruction return a value from <code>execute</code> and then the tick function would use the addressing mode to write it back to where it came from.</p><p>But wait! There’s another complication! <a href="https://www.nesdev.org/wiki/Instruction_reference#JMP" rel="nofollow noopener" target="_blank"><code>JMP</code></a> actually needs to read <em>two</em> bytes from memory. (Addresses are 2 bytes long, but memory reads and writes only operate on a byte at a time.) This means I need to store the address from the addressing mode so that the instruction can read the extra byte from the <em>following</em> address.</p><p>I think sometime down the road instead of having the CPU’s <code>tick</code> method try to be smart and do these things, I’ll just pass the addressing mode into the instruction’s <code>execute</code> method and let it read and write exactly what it needs. Whoops!</p><p>I finally finished implementing all of the instructions and I’m on to the <a href="https://www.nesdev.org/wiki/PPU" rel="nofollow noopener" target="_blank">PPU</a>, starting with its memory-mapped registers that are exposed on the CPU’s bus. Reading and writing these registers cause side effects within the PPU! More interesting times ahead! Stay tuned for more.</p><p>If you’re interested in following along you can find the code <a href="https://github.com/sadlerjw/SwiftNES/" rel="nofollow noopener" target="_blank">on Github</a>.</p> <p><a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.sadlerjw.com/tag/emulation/" target="_blank">#emulation</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.sadlerjw.com/tag/nes/" target="_blank">#nes</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.sadlerjw.com/tag/programming/" target="_blank">#programming</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.sadlerjw.com/tag/swift/" target="_blank">#swift</a></p>
David Bureš<p>Guys, I'm trying to make the swift-dependencies framework work for Cork</p><p>Am I misunderstanding something, or can @Observable classes not be registered as dependencies?</p><p>I have a @MainActor @Observable class, and when I try to register it, I get the error "Main actor-isolated static property "liveValue" cannot be used to satisfy nonisolated protocol requirement." I looked it up but can't figure it out</p><p>Maybe the great async sage <span class="h-card" translate="no"><a href="https://mastodon.social/@mattiem" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mattiem</span></a></span> has some insight? :blobcatpatyou: </p><p><span class="h-card" translate="no"><a href="https://hachyderm.io/@pointfreeco" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>pointfreeco</span></a></span> </p><p><a href="https://mstdn.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a></p>
🇨🇦 Steve<p>"Steve, that makes no sense."</p><p>I agree. Yet where we are. See screenshots. <a href="https://appdot.net/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a></p>
🇨🇦 Steve<p>This code:</p><p>viewModel.selectedClasses.remove(at: index)</p><p>…fails. Ambiguous use of remove(at:). Should be mutable, but whatever.</p><p>This code:</p><p>var classes = viewModel.selectedClasses<br>classes.remove(at: index)<br>viewModel.selectedClasses = classes</p><p>Works. Fine.</p><p>Now the weird part. If I put the second code after the first code, BOTH ENABLED, the first code now compiles (but second remove is now redundant, of course).</p><p>Any ideas? <a href="https://appdot.net/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a></p><p>Edit: remove(at:) returns a result. Prefixing with _ = fixes.</p>
Natalia Panferova<p>If you haven't got my book SwiftUI Fundamentals yet, this week there is a great chance to grab it with a 30% discount! Folks from Those Who Swift are running a special promotion, check out their latest newsletter for details: <a href="https://thosewhoswift.substack.com/p/those-who-swift-issue-225" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">thosewhoswift.substack.com/p/t</span><span class="invisible">hose-who-swift-issue-225</span></a><br><a href="https://mastodon.social/tags/SwiftUI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SwiftUI</span></a> <a href="https://mastodon.social/tags/iOSDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDev</span></a> <a href="https://mastodon.social/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a></p>
troz<p>I have just published my almost-annual article on the new features of SwiftUI and Swift as they apply to Mac apps:</p><p><a href="https://troz.net/post/2025/swiftui-mac-2025/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">troz.net/post/2025/swiftui-mac</span><span class="invisible">-2025/</span></a></p><p>I'm not using HTTP Cats this year, but the icon has a cat, so all is well.</p><p><a href="https://mastodon.social/tags/macOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>macOS</span></a> <a href="https://mastodon.social/tags/SwiftUI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SwiftUI</span></a> <a href="https://mastodon.social/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a> <a href="https://mastodon.social/tags/WWDC" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WWDC</span></a> <a href="https://mastodon.social/tags/WWDC2025" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WWDC2025</span></a></p>
Natalia Panferova<p>The July issue of the Nil Coalescing newsletter is out! It’s been sent to all email subscribers and is now also available online. I’ve shared some key takeaways from Apple’s WWDC recap event, plus links to my latest videos and blog posts: <a href="https://nilcoalescing.com/newsletter/2025-07-30" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">nilcoalescing.com/newsletter/2</span><span class="invisible">025-07-30</span></a><br><a href="https://mastodon.social/tags/iOSDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDev</span></a> <a href="https://mastodon.social/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a></p>
David Bureš<p>Just got a simple app idea:</p><p>You put in a Reddit username, and based on your requirements, it will go through the last few comments of that user and use an LLM to tell you if it’s worth arguing with them</p><p>Like and subscribe and hit that bell if you want to follow the development of this app</p><p><a href="https://mstdn.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> <a href="https://mstdn.social/tags/swiftui" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swiftui</span></a> <a href="https://mstdn.social/tags/macdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>macdev</span></a> <a href="https://mstdn.social/tags/iOSDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDev</span></a></p>
Pedro Piñera<p>Making Tuist’s server code source available and merging it to a monorepo have been huge productivity boosters<br><a href="https://mastodon.pepicrft.me/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a></p><p><a href="https://tuist.dev/blog/2025/07/08/server-fcl" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">tuist.dev/blog/2025/07/08/serv</span><span class="invisible">er-fcl</span></a></p>
John<p><a href="https://expressional.social/tags/nature" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nature</span></a> <a href="https://expressional.social/tags/birds" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>birds</span></a> <a href="https://expressional.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> <a href="https://expressional.social/tags/nestbox" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nestbox</span></a> <br>Make a Swift Box before 2026 !<br>Much of the current building stock is either new or renovated. This has led to the disappearance of many nesting sites for Swifts due to different building standards than before. The species has had a dramatic decline.<br><a href="https://www.fuglevennen.no/arkiv/?vis=oppslag&amp;op_id=1647&amp;fbclid=IwY2xjawL1_M1leHRuA2FlbQIxMAABHuKJa1X2dEX7SBRv09ToXJtQWr4LBFHtTQlrKAsFVGxGxWz__YjUbAuaNjTw_aem_SFe9YtkhTG3rHBuiSsxHBg" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">fuglevennen.no/arkiv/?vis=opps</span><span class="invisible">lag&amp;op_id=1647&amp;fbclid=IwY2xjawL1_M1leHRuA2FlbQIxMAABHuKJa1X2dEX7SBRv09ToXJtQWr4LBFHtTQlrKAsFVGxGxWz__YjUbAuaNjTw_aem_SFe9YtkhTG3rHBuiSsxHBg</span></a></p>
obrhoff<p>Looking at CKSyncEngine, I find it a bit surprising that this wasn’t implemented. Wouldn’t you want to know which table or record type you’re deleting from, rather than just passing in an ID with no context?</p><p>It works fine in the example Apple provided, but conveniently they only sync a single type of entity. Now it seems people encode the Record Type into the ID and parse it out. 😭<br><a href="https://mastodon.social/tags/iosdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iosdev</span></a> <a href="https://mastodon.social/tags/macosdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>macosdev</span></a> <a href="https://mastodon.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a></p><p><a href="https://github.com/apple/sample-cloudkit-sync-engine/issues/12" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/apple/sample-cloudk</span><span class="invisible">it-sync-engine/issues/12</span></a></p>
Eshu Marneedi<p>If anyone has any insight on this, I’d love to know, but for now, app intents will be ripped out of the next Citations build unless I can find a solution. <a href="https://mastodon.social/tags/SwiftUI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SwiftUI</span></a> <a href="https://mastodon.social/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a></p>
iOS Dev Jobs<p>👋 We’re hiring an Apple Engineer at Doist! Join us to build legendary tools like Todoist and Twist; simple yet powerful. Work from anywhere, own projects end to end, and collaborate asynchronously in a team that values ambition, mastery, independence, and communication. <a href="https://iosdevjobs.com/jobs/m-5b9d2bb0-acef-40a3-bc6a-218397889b55" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">iosdevjobs.com/jobs/m-5b9d2bb0</span><span class="invisible">-acef-40a3-bc6a-218397889b55</span></a> <a href="https://iosdev.space/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a> <a href="https://iosdev.space/tags/SwiftLang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SwiftLang</span></a> <a href="https://iosdev.space/tags/iOSDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDev</span></a> <a href="https://iosdev.space/tags/MacDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>MacDev</span></a> <a href="https://iosdev.space/tags/iOSDevJobs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDevJobs</span></a></p>
TootSDK<p>A new release of TootSDK - 17.0.0 📣 </p><p><a href="https://github.com/TootSDK/TootSDK/releases/tag/17.0.0" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/TootSDK/TootSDK/rel</span><span class="invisible">eases/tag/17.0.0</span></a></p><p>What's changed:</p><p>- Quote posts <span class="h-card" translate="no"><a href="https://mastodon.online/@dale_price" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dale_price</span></a></span><br>- Support Mastodon 4.4 account management additions <span class="h-card" translate="no"><a href="https://mastodon.online/@dale_price" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dale_price</span></a></span><br>- Masto 4.4 media deletion <span class="h-card" translate="no"><a href="https://mastodon.online/@dale_price" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dale_price</span></a></span><br>- Add missing Mastodon properties to InstanceV2 <span class="h-card" translate="no"><a href="https://mastodon.online/@dale_price" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dale_price</span></a></span></p><p>Community contributions are greatly appreciated 🙌</p><p> <a href="https://iosdev.space/tags/iOSDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iOSDev</span></a> <a href="https://iosdev.space/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a> <a href="https://iosdev.space/tags/TootSDK" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>TootSDK</span></a> <a href="https://iosdev.space/tags/Fediverse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Fediverse</span></a></p>
Cork: The Homebrew Companion<p>Cork version 1.5.6 is out. </p><p>This update includes a complete rewrite of the Homebrew pinning system in Swift for 20x performance gains, pinning from sidebar, manual update checking, and fixes for many crashes.</p><p>See <a href="https://open.substack.com/pub/corkapp/p/cork-156-out-big-changes?r=2vioyx&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">open.substack.com/pub/corkapp/</span><span class="invisible">p/cork-156-out-big-changes?r=2vioyx&amp;utm_campaign=post&amp;utm_medium=web&amp;showWelcomeOnShare=true</span></a> for more info.</p><p>Buy Cork to support its development: <a href="https://corkmac.app" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">corkmac.app</span><span class="invisible"></span></a></p><p>Join the Discord community: <a href="https://discord.gg/kUHg8uGHpG" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">discord.gg/kUHg8uGHpG</span><span class="invisible"></span></a></p><p>See the source code: <a href="https://github.com/buresdv/Cork" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">github.com/buresdv/Cork</span><span class="invisible"></span></a></p><p><a href="https://mstdn.social/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> <a href="https://mstdn.social/tags/swiftUI" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swiftUI</span></a> <a href="https://mstdn.social/tags/macOS" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>macOS</span></a> <a href="https://mstdn.social/tags/opensource" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>opensource</span></a> <a href="https://mstdn.social/tags/buildinpublic" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>buildinpublic</span></a> <a href="https://mstdn.social/tags/macdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>macdev</span></a> <a href="https://mstdn.social/tags/homebrew" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>homebrew</span></a> <a href="https://mstdn.social/tags/CorkApp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>CorkApp</span></a></p>
distrustful dinosaurs<p>imagine you're a bug flying around minding your own business and this is the last thing you see 🐝😱🪶</p><p><a href="https://pigeons.club/tags/birds" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>birds</span></a> <a href="https://pigeons.club/tags/swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swift</span></a> <a href="https://pigeons.club/tags/swifts" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>swifts</span></a> <a href="https://pigeons.club/tags/urbanwildlife" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>urbanwildlife</span></a></p>
Sean Coates<p>I was recently asked “Why did you choose <a href="https://scoat.es/tags/Swift" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Swift</span></a> for Studioworks?”</p><p>There are reasons that I intend to write about; strong-but-approachable types is a key reason. I was just catching up on a talk from <span class="h-card" translate="no"><a href="https://mastodon.social/@mattiem" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>mattiem</span></a></span> where he said the following:</p><p>“[Swift Concurrency] is taking information that—you *hope*—you can find in the documentation and it is moving it into the type system in a way that you can no longer ignore.”</p><p>Indigenous first-class strong typing is a beautiful thing.</p><p><a href="https://youtu.be/N5iIXwBW54A" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">youtu.be/N5iIXwBW54A</span><span class="invisible"></span></a></p>
Kevin Karhan :verified:<p><span class="h-card" translate="no"><a href="https://toad.social/@KimPerales" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>KimPerales</span></a></span> I consider the actions.of the <a href="https://infosec.space/tags/Trump" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Trump</span></a> regime to be <a href="https://infosec.space/tags/blackmail" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>blackmail</span></a> and expect the cancellation of any <a href="https://infosec.space/tags/DataSharing" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>DataSharing</span></a> agreements and automatic retaliatory <a href="https://infosec.space/tags/tariffs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>tariffs</span></a> against the <a href="https://infosec.space/tags/USA" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>USA</span></a>, including the cancellation of <a href="https://infosec.space/tags/FATCA" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FATCA</span></a> &amp; <a href="https://infosec.space/tags/ESTA" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ESTA</span></a> as well as <a href="https://infosec.space/tags/SWIFT" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>SWIFT</span></a> arrangements and noncompliance with <a href="https://infosec.space/tags/US" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>US</span></a> <a href="https://infosec.space/tags/sanctions" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sanctions</span></a>.</p><p><a href="https://infosec.space/tags/sarcasm" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>sarcasm</span></a> <a href="https://infosec.space/tags/EUpol" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>EUpol</span></a></p>