Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
159248 stories
·
33 followers

New EU Guidelines For AI Labelling

1 Share

There’s been a lot of confusion and panic this week about “huge fines”, “drastic measures” and “sweeping new AI rules” in the EU. In reality, it’s a lot more narrow — and a lot more sensible. And mostly it’s about making AI more obvious when it actually needs to be obvious — especially for AI-generated content.

Starting from Aug 2, 2026, AI labelling is a legal requirement for any company that serves EU citizens. And similar to European Accessibility Act, it’s not limited to EU companies. It affects any company worldwide with EU operations as long as their AI output is used by people in the EU. Let’s see what exactly it means for us.

What Actually Needs Labelling

The goal of AI labelling is to help everyone exposed to AI content to recognize, in a clear and distinguishable way, that the content has been artificially generated or manipulated.

According to Article 50(4) of the AI Act, AI labelling applies to:

  1. Deepfakes. Any image, audio, or video that resembles a real person, object, place, or event and would falsely appear authentic or truthful. Content that is not deceptively realistic generally doesn’t apply.
  2. Chatbots and AI agents. Users must be informed if they’re not talking to a human.
  3. Fully AI-written text. Specifically on matters of public interest, where there has been no human review or editorial work.
  4. Emotion recognition and biometric categorization tools.

Both providers (who build or supply the AI system) and deployers (who use it) carry legal obligations. Similar to GDPR and EAA, a company doesn’t escape Article 50 just because it licensed an external AI tool from a third party.

However, it doesn’t mean that all AI-generated content must be explicitly labelled.

Not All AI-Generated Content Must Be Labelled

Beyond the use cases above, pretty much everything else — the vast majority of AI-assisted work — simply isn’t covered by new transparency rules. Most notably, the disclosure obligation does not apply where the AI-generated text has been reviewed and edited by a human, with a named person or entity taking editorial responsibility for it.

Some confusion circles around what exactly “public interest” means, where it starts and where it ends. On its own, it refers to health, safety, environment, economy, finances, politics, science, or culture. If AI-generated product claims touch upon them, the disclosure rule applies.

Some law firms recommend labelling realistic AI-generated illustrations or photos as a precaution for advertising, marketing and other commercial content. AI-generated product illustrations, photos, or posters do need a disclosure, as long as they resemble a real person, place, object, or event.

The Fine Line Between “Edited” And “AI-Generated”

But at which point does edited AI content stop being AI content? When a form is pre-filled with AI, but then a user edits it, is it still AI? EU Commission’s guidance is a little fuzzy. Small assistive edits — spellcheck, grammar, formatting, cropping, colour correction, and AI-generated translation — don’t count as AI generation.

AI-generated summaries, composite imagery, substantive rewrites, or adding and removing elements from a photo are considered AI generation. In practice, fine-tuning a sentence a person wrote is fine, but generating the sentence on its own requires a disclosure.

“A human skimmed it before publishing” doesn’t qualify as editorial review. The Commission is explicit that it needs to be substantive, with a named person responsible for the editorial control.

In other words, the fine line lies between intentional manual intervention and automated generation. The latter always has to be disclosed (exception: closed B2B environments).

AI Sparkles Probably Not Enough

As part of the Code of Practice, the European Commission has published an EU AI icon set. It’s a specific “AI” mark (similar to the AI label in Carbon Design System) — not the generic ✨ sparkle that many products use to signal AI. The signal must be “clear and distinguishable”.

The sparkle might be too ambiguous to signal AI clearly. Mostly because it’s often used to mean “AI-powered feature”, rather than “this specific content was generated by AI”. That’s the kind of signal EU guidelines are trying to rule out.

The Commission is explicit: using an icon “does not establish legal compliance by itself.” A barely visible icon, a note buried in the footer, or a label that flashes for a second are all not compliant.

The icon should be clearly visible, with a plain language label and accessible to assistive technologies. A safe bet is to pair any icon with plain text (“AI-generated”) — and it needs to persist when being reshared or downloaded.

In fact, the EU Commission also published Code of Practice on marking and labelling of AI content.

It Isn’t Just EU

It might feel like a yet another regulation coming from the EU, but in reality there are plenty of other similar regulations that emerged recently worldwide:

  1. China has mandatory AI labelling since 1 September 2025. With visible tags and watermarked metadata.
  2. California has SB 942, as amended by AB 853, which became mandatory on the exact same day as the EU rules (2 August 2026), deliberately timed to align.
  3. South Korea has the AI Basic Act that took effect on 22 January 2026, widely cited as the first comprehensive national-level AI law to mandate deepfake labels. Fines are modest by EU standards (roughly $20K per violation), with a one-year grace period before enforcement bites.
  4. India has an IT Rules amendment, in force since 20 February 2026. Platforms must label “synthetically generated information”, and takedown timing for most harmful deepfakes was cut to 3 hours.

All of these are signs of upcoming AI regulation that looks more like a pattern, rather than a coincidence. So if you’re shipping anything AI this year, it’s probably a good idea to have a conversation about what exactly is going to be AI-labelled, and what not.

Wrapping Up

One final note is that new EU AI transparency rules are much broader than US laws on AI disclosure, where certain state laws require disclosures for synthetic human performers, political advertising or specific AI applications.

None of this really deserves panic or confusion. It’s about a fairly simple idea that has been emerging worldwide at almost the same time:

When AI content could easily be mistaken for human content, creators must say so — in a way that is clear, obvious, and unambiguous. And parts of the UI that are AI-generated must be disclosed as such.

If anything, it will help people distinguish between AI slop and not AI — and everybody can only benefit from that.

Meet “Design Patterns For AI Interfaces”

Meet Design Patterns For AI Interfaces, Vitaly's new video course with practical examples from real-life products — with a live UX training happening soon. Jump to a free preview.

Meet Design Patterns For AI Interfaces, Vitaly’s video course on interface design & UX.

Video + UX Training

$ 450.00 $ 799.00 Get Video + UX Training

30 video lessons (10h) + Live UX Training.
100 days money-back-guarantee.

Video only

$ 275.00$ 395.00
Get the video course

30 video lessons (10h). Updated yearly.
Also available as a UX Bundle with 3 video courses.

Useful Resources

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

GraphQL as Connective Tissue

1 Share

I have spent enough years watching people love GraphQL for the wrong reasons and hate it for the wrong reasons that I want to step around both of those piles entirely and talk about the one place where I think it is genuinely, quietly excellent. Not GraphQL as your public edge. Not GraphQL as a REST replacement. Not GraphQL because a frontend team wanted to stop waiting on backend tickets. I mean GraphQL as connective tissue — the seam that stitches a pile of mismatched REST APIs, event streams, and internal services into one coherent graph a consumer can actually reason about. That is the job it was born for, and it is the job the marketing and the backlash both keep talking you out of noticing.

Here is the situation almost every organization of any size is actually in. You do not have an API. You have forty of them. You have a REST API that a team built in 2018, a newer one somebody wrote in a hurry last year, a couple of AsyncAPI-described event streams throwing messages onto a broker, a gRPC service two teams down, and a SaaS product or three whose APIs you do not control at all. A consumer who wants to answer one useful question — give me this customer, their last five orders, their open support tickets, and whether their latest event stream shows churn risk — has to touch five of those surfaces, each with its own auth, its own shape, its own idea of what a customer even is. That is not an API problem you can lint your way out of. That is a composition problem, and composition is exactly what GraphQL’s type system is good at.

When GraphQL sits in the middle as a federated graph, it becomes a place where all of those heterogeneous backends get expressed as one set of types with real relationships between them. The REST customer, the streamed churn signal, and the SaaS ticket stop being three unrelated calls and become three fields hanging off the same node. The consumer asks one question and gets one shaped answer, and the ugly work of fanning out to five backends, translating five payloads, and reconciling five notions of identity happens inside the graph where it belongs. This is the same instinct I keep coming back to when I argue that GraphQL is governance by default — the schema forces you to actually decide what your things are and how they relate, and when you are stitching together a dozen backends, being forced to decide is a feature, not a tax.

I want to be precise about the boundary, though, because this is where people overreach and give GraphQL its bad name. The connective-tissue role is an internal orchestration and aggregation role. It is the layer that composes. It is not automatically the right thing to expose raw to the whole internet, it does not make your caching problems disappear — it usually makes them harder — and it does not absolve you of the underlying APIs. The REST services underneath still need to be well-designed, well-governed, and durable, because GraphQL is stitching them, not replacing them. A federated graph over a pile of bad APIs is a tidy front on a mess. The connective tissue is only as healthy as the muscle it connects.

And this is the part that ties GraphQL back into everything I have been writing about agents and MCP being last-mile plumbing. When an agent shows up wanting to do a real job across your estate, the thing it most needs is not forty disconnected surfaces — it is one composed surface where the relationships are already expressed. A federated GraphQL layer is one of the cleanest ways to give it that. It is a single typed graph that already knows a customer has orders and tickets and events, so the agent does not have to rediscover those relationships by trial and error against five APIs. The connective tissue that makes life easier for a human integrator makes life dramatically easier for a machine one, because the machine is even less equipped to guess how your five backends secretly relate.

So my honest position on GraphQL, after all these years, is neither the hype nor the hate. It is that GraphQL earns its keep as a composition layer — the connective tissue over a heterogeneous estate of REST, events, and third-party APIs — and it struggles or actively hurts when you deploy it as a fashion statement, a public edge you have not thought through, or a way to avoid designing the APIs underneath. Put it in the middle, where it stitches, and it is one of the better tools we have. Put it at the edge for the wrong reasons and you will spend the next two years re-learning why REST was the right answer for the thing you replaced. The tissue is not the muscle, and it is not the skin. It is the connective layer in between, and that is exactly where it belongs.



Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Hybrid and Local AI course at DeepLearning.AI

1 Share

Open weight models are having a moment, driven by control, choice, and cost. Hybrid and local AI are now getting serious looks, so JetBrains teamed up with DeepLearning.AI on a free AI Coding Workflows: Hybrid to Local course that covers the ideas and options.

The course is now available and uses PyCharm and its AI Chat. Here’s a peek into the course.

Claude Code: Subagents and cheaper models

We start the course with, well, not-local. Instead, we use what you already know – Claude Code and its Anthropic models – to introduce some of the techniques and “levers” that help bring choice, control, and even cost reduction. (Yes, I wrote emdashes.)

We did a previous course on Spec-Driven Development (SDD) so of course, we wanted to start there. Smaller models struggle with big, open-ended “vibe coding.” Dividing and bounding the work keeps smaller models on track. Important note: this course’s example app is really basic. You might say “that’s too easy.” But that’s part of the takeaway: big brain models can do the upfront work, forming right-sized steps for smaller models.

We then illustrate this division with a Claude Code subagent. The main chat prompt implements each roadmap phase in a fresh subagent, to better manage context. This then gives the payoff: a cheaper model for the implementer. Use a “big brain” (Opus) for main conversation thinking and a “little brain” (Haiku) for implementation.

Each lesson finishes with metrics about the change in tokens, turns, cost, and estimated wall time. Which brings us to the main course goal: learning the ideas instead of the specifics, which change weekly.

New agent, inference, and model

That covers the four levers:

  • Specs shaped for the model size
  • Specialist subagents to divide work
  • Cheaper models for the routine work
  • Collect metrics as evidence to guide thinking


The course then introduces choice and control:

  • New agent: OpenCode
  • New inference router: OpenRouter
  • New model and inference host: DeepSeek (via OpenRouter) by moving to a new agent (OpenCode) using inference routing (OpenRouter) to inference hosting and models (DeepSeek)


We first move to OpenCode, running in PyCharm. JetBrains wants our IDEs to be open platforms for agents and models. This makes the move from Claude Code to OpenCode straightforward: it’s the same UI. We add OpenRouter (a paid step), connect it to OpenCode, and choose DeepSeek as a model.

Next we repeat our sequence: all in one chat, then context isolation using a subagent. But this time, with a different agent and model.

We finish by making a dedicated implementer subagent in Markdown. This gives quite a number of levers of control: in the frontmatter for mandatory controls, and in the subagent body for “persuasion” guidance. Most importantly, we have the implementer use the smaller DeepSeek v4 Flash model as the “little brain.”

Compared to the Claude Code version, the metrics were, unsurprisingly, a lot cheaper.

Hybrid and Local

Now for the main attraction: for routine development, can we do some – or even all – of the work locally?

We start with a lesson on setting up local AI: LM Studio as the inference server and Gemma 4 12B as the local model, targeting a 32 GB laptop.

We then configure the implementer subagent to use this local Gemma 4 model, promoting DeepSeek v4 Flash from last lesson’s “little brain” up to “big brain.” The results? Quite good, as it turns out.

Then the big test: fully local, with Qwen 3.5 27B as the “big brain.” The results: better than expected, showing that guardrails help.

How did hybrid and local do? Both of these lessons finish with a review of the metrics. That’s one of the big course takeaways: look at the evidence. You can see how small models struggle, and see the effect of helping them succeed.

Hybrid and Local AI Are Heating Up

Much thanks to DeepLearning.AI both for working with us again and for pushing to get this out fast. This topic is now red-hot in the news: Sovereign AI, privacy and security, and of course cost. The innovations are coming really fast and it is important to have a gentle introduction to the fundamentals.

We’ll do more updates here on Local AI for control, choice, and cost. Most of all, we at PyCharm believe in the human-in-the-loop. Stay tuned for more on this.

Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

The Scrum Master as a Router, Redefining Success Through Efficient Communication | Wasim Osman

1 Share

Wasim Osman: The Scrum Master as a Router, Redefining Success Through Efficient Communication

Read the full Show Notes and search through the world's largest audio library on Agile and Scrum directly on the Scrum Master Toolbox Podcast website: http://bit.ly/SMTP_ShowNotes.

 

"A big part of the Scrum Master role is to work as a router—handling a lot of conversations with a lot of different devices, even though the internet is coming in through one cable." - Wasim Osman

 

For Wasim, success as a Scrum Master looks like a router in a house: many conversations, many stakeholders, all flowing through one point that has to prioritize, schedule, and stay on time. If the router slows down, everything downstream stalls—and the Scrum Master becomes the blocker. Early in his career he was overwhelmed juggling three or four engineering teams, so he built himself a personal Kanban board and ran his own quick standup every morning and again at the end of the day, just to see what moved, what stalled, and why. Getting organized with himself is when the work started to feel satisfying, because he stopped being the bottleneck. But he's honest about the hardest part: people rarely tell you to your face when you're slowing them down. The feedback is already there—you're just not hearing it. So you have to ask for it, react well when you get it (or people stop offering), and sometimes name the awkward truth first: "Our meetings used to be better—what happened?" That opening gives everyone permission to be honest.

 

Self-reflection Question: If you're the "router" for your teams, where are you quietly becoming the bottleneck—and who would tell you if you were?

Featured Retrospective Format for the Week: What Went Well / What Went Wrong / Outliers + Open Discussion

Wasim's go-to retrospective is deliberately bare-bones: what went well, what went wrong, and—the part that makes it his own—what were the outliers, followed by open discussion. He added the "outliers" question years ago after noticing that team members kept raising points that weren't clearly good or bad, but were still significant enough to discuss. Outliers give people "a bucket for sharing information that has no polarity"—an early signal about the future, a quiet concern, something that doesn't fit the other two columns but matters. He sometimes pairs it with lightweight metrics: sprint completion rate, or tickets that sat too long in review or QA, surfacing patterns the team wouldn't otherwise notice.

 

Self-reflection Question: What "outlier" signal has your team been sitting on—neither a win nor a problem yet—that deserves an open conversation before it becomes one?

 

[The Scrum Master Toolbox Podcast Recommends]

🔥In the ruthless world of fintech, success isn't just about innovation—it's about coaching!🔥

Angela thought she was just there to coach a team. But now, she's caught in the middle of a corporate espionage drama that could make or break the future of digital banking. Can she help the team regain their mojo and outwit their rivals, or will the competition crush their ambitions? As alliances shift and the pressure builds, one thing becomes clear: this isn't just about the product—it's about the people.

 

🚨 Will Angela's coaching be enough? Find out in Shift: From Product to People—the gripping story of high-stakes innovation and corporate intrigue.

 

Buy Now on Amazon

 

[The Scrum Master Toolbox Podcast Recommends]

 

About Wasim Osman

 

Wasim Osman is a seasoned Agile Coach and a Product Owner at Orkestra SCS. He launched his agile career at a Silicon Valley startup based in New York, then spent years coaching teams across Canada, helping organizations transform how they deliver value. Wasim brings a rare blend of agile discipline and product thinking. He's passionate about building technology that drives real business impact.

 

You can link with Wasim Osman on LinkedIn.

 





Download audio: https://traffic.libsyn.com/secure/scrummastertoolbox/20260813_Wasim_Osman_Thu.mp3?dest-id=246429
Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Copilot, Cursor, and Custom LLMs: Navigating the New .NET Developer Experience - Isaac Levin

1 Share
From: NDC
Duration: 48:34
Views: 19

This talk was recorded at NDC Toronto in Toronto, Canada. #ndctoronto #ndcconferences #developer #softwaredeveloper

Attend the next NDC conference near you:
https://ndcconferences.com
https://ndctoronto.com

Subscribe to our YouTube channel and learn every day:
/ @NDC

Follow our Social Media!

https://www.facebook.com/ndcconferences
https://twitter.com/NDC_Conferences
https://www.instagram.com/ndc_conferences/

#dotnet #ai #llm

It feels like every two weeks there’s a new "game-changing" AI tool that promises to write our code for us. But for those of us working in the .NET ecosystem, the reality is a bit messier. We’re caught between the tools we know (Visual Studio), the new AI-native editors everyone is talking about (Cursor), and the reality that public LLMs often struggle with our internal business logic and private libraries.

I’ve spent the last year trying to figure out where the "productivity" ends and the "hype" begins. In this session, we’re skipping the "Hello World" demos and getting into the actual friction of the new .NET developer loop.

We’ll look at:

The Tooling Split: When should you stick with the deep integration of Copilot in Visual Studio, and when is it actually worth switching to Cursor for its "Composer" features?

Context is Everything: How to stop the "hallucinations" by giving these tools better context of your specific .NET solution, including using local LLMs for the stuff you can’t send to the cloud.

The "Senior Dev" Reality Check: How our roles are changing from just writing lines of C# to auditing AI-generated PRs and managing "agentic" workflows without breaking the build.

This isn't a sales pitch for any specific tool. It’s a practical look at how to build a modern .NET development environment that actually helps you ship faster, rather than just adding another subscription to your credit card.

What you’ll learn:
- A side-by-side look at Copilot vs. Cursor on a real C# codebase.
- How to use RAG and local models (like Ollama) to talk to your own docs and legacy code.
- Practical tips for "Context Engineering" to get better C# refactoring results.

Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Code Review Is a Taste Problem | David Poll @GitHub

1 Share
From: Hangar DX podcast
Duration: 29:38
Views: 2

It's not 'Do I read or not read the code.' It's 'Does my attention get directed to where it's actually useful?'

David Poll, head of GitHub's Code & Review organization, joins Ankit Jain on the HangarDX podcast to talk about what code review actually does and why it was never really about catching bugs.

Why code review is really a taste problem, not a correctness problem, and
How PRDs, architecture docs, and design reviews are collapsing into the code review process,
Why we might be headed toward a world with 20x more unmerged PRs,
How teams can extract review decisions into institutional memory to beat AI slop with AI, about
The sliding scale of not reading code and what determines where your team should land

📫 Sign up for our email list for more podcasts, articles, events, and other updates: https://www.aviator.co/podcast

✏️ Subscribe for more videos: @Aviator-Co

🙌 Join a curated community of senior engineers and engineering leaders focused on developer experience and solving productivity challenges at scale! Check out our upcoming off-the-record online sessions where vetted, experienced professionals can exchange ideas and share hard-earned wisdom: https://dx.community/

Replace code reviews with verified intent
AI writes code faster than humans can review it. Aviator Verify provides compliance-grade verification through spec-driven development. Ship faster with complete audit trails. https://verify.aviator.co/

Read the whole story
alvinashcraft
2 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories