Dag Brattli's Avatar

Dag Brattli

@dbrattli.bsky.social

Creator of Fable Python and Reactive Extensions for Python (RxPY). Made the IrDA subsystem in the Linux kernel back in the 90'. On a quest to bridge the worlds of F# and Python ❤️ Microsoft Alumni and currently works at Cognite

49 Followers  |  109 Following  |  16 Posts  |  Joined: 26.01.2025  |  1.9142

Latest posts by dbrattli.bsky.social on Bluesky

Preview
F# Weekly #32, 2025 – Call for Speakers: .NET Conf 2025 & JetBrains .NET Days Welcome to F# Weekly, A roundup of F# content from this past week: News .NET Conf 2025 – Announcing the Call for Content – .NET Blog 5 Copilot Chat Prompts .NET Devs Should Steal Today …

F# Weekly #32, 2025 - Call for Speakers: .NET Conf 2025 & JetBrains .NET Days #fsharp sergeytihon.com/2025/08/10/f...

10.08.2025 07:31 — 👍 9    🔁 4    💬 0    📌 0
Preview
Rx Part 7 – Hot and Cold Observables STOP THE PRESS! This series has now been superseded by the online book www.IntroToRx.com. The new site/book offers far better explanations, samples and depth of content. I hope you enjoy! In this p…

This is really nice, but I think your impl have significant semantic differences to Rx.NET wrt hot vs cold observables. In Rx every observer has their own separate subscription chain while it seems to me that in your impl. they share the same upstream subscription? leecampbell.com/2010/08/19/r...

04.08.2025 08:03 — 👍 1    🔁 0    💬 0    📌 0
Preview
F# Weekly #31, 2025 – Aspire 9.4 Welcome to F# Weekly, A roundup of F# content from this past week: News Aspire 9.4 is here with a CLI and interactive dashboard features – .NET Blog Building a Full-Stack App with React and A…

F# Weekly #31, 2025 - Aspire 9.4 #fsharp sergeytihon.com/2025/08/02/f...

02.08.2025 21:47 — 👍 19    🔁 5    💬 0    📌 0
Preview
F# Weekly #30, 2025 – Quipu & Perla Welcome to F# Weekly, A roundup of F# content from this past week: News Perla V1.0.0 betas are out! MCP C# SDK Gets Major Update: Support for Protocol Version 2025-06-18 – .NET Blog Ask Mode …

F# Weekly #30, 2025 - Quipu & Perla #fsharp sergeytihon.com/2025/07/27/f...

27.07.2025 11:52 — 👍 17    🔁 4    💬 0    📌 0

The blog is written in jupytext, so it's all Python code with comments translated to Markdown. All the code examples are also linted using ruff, and type checked using pyright. Even the example errors are checked for the correct error 🥰 #python #ruff #pyright

26.07.2025 09:55 — 👍 1    🔁 0    💬 0    📌 0
Preview
Python Type Annotations (part 1) Python's dynamic typing is one of its core strengths. The low friction allows for rapid development that makes it a popular choice for new developers. However, as projects grow and evolve, the lack of type annotations makes code difficult to understa...

Python Type Annotations. Get up to speed and write safer code with this tutorial in 3 parts cardamomcode.dev/python-type-... #python

26.07.2025 09:45 — 👍 2    🔁 1    💬 1    📌 0

Very happy to see this new alpha version of Fable being released 🥰 The Python target is getting a well-deserved upgrade.

25.07.2025 19:43 — 👍 1    🔁 0    💬 0    📌 0

Todays summary after a 12-hour session. Most Python developers never touch meta-classes. Most F# developers never think about Python descriptors, at least not at the class attribute level. Doing both simultaneously while solving circular dependency problems in a compiler context! 😅 Time to sleep 😴

20.07.2025 22:23 — 👍 0    🔁 0    💬 0    📌 0
Post image

Experience Quality Coding for AI
- Special Edition and Your Next Generation AI could Copy
ken-okabe.github.io/en/book/

A Next-Generation Tutorial on Functional Programming for the AI Age
#fsharp #ai #functional-programming

15.07.2025 14:28 — 👍 4    🔁 3    💬 0    📌 0
Post image

F# Weekly #29, 2025 - .NET 10 Preview 6 #fsharp sergeytihon.com/2025/07/19/f...

19.07.2025 20:01 — 👍 20    🔁 6    💬 1    📌 0

Heavily inspired by Bart de Smet’s AsyncRx 🥰

17.07.2025 19:07 — 👍 0    🔁 0    💬 0    📌 0
Fable.Python/examples/timeflies at main · fable-compiler/Fable.Python Python bindings for Fable. Contribute to fable-compiler/Fable.Python development by creating an account on GitHub.

It started out that way. It’s quite basic, so feel free to open a PR if you are missing anything 😊 Example of use github.com/fable-compil...

17.07.2025 19:04 — 👍 1    🔁 1    💬 1    📌 0
Preview
GitHub - dbrattli/AsyncRx: AsyncRx for F# and Fable AsyncRx for F# and Fable. Contribute to dbrattli/AsyncRx development by creating an account on GitHub.

Also github.com/dbrattli/Asy... Works on .NET, JS, and Python 😊

17.07.2025 18:26 — 👍 1    🔁 0    💬 1    📌 0
Preview
F# Weekly #28, 2025 – Beyond Zero-Allocation Welcome to F# Weekly, A roundup of F# content from this past week: News How the .NET MAUI Team uses GitHub Copilot for Productivity – .NET Blog Customize GitHub Copilot in JetBrains with Cust…

F# Weekly #28, 2025 - Beyond Zero-Allocation #fsharp sergeytihon.com/2025/07/12/f...

12.07.2025 20:57 — 👍 19    🔁 4    💬 0    📌 0
Preview
F# Weekly #27, 2025 – Breaking changes: Yay or Nay? Welcome to F# Weekly, A roundup of F# content from this past week: News Release of slight breaking change in upcoming 1.X release · fsprojects/FSharpPlus · Discussion #642 · GitHub Local AI + .NET …

F# Weekly #27, 2025 - Breaking changes: Yay or Nay? #fsharp sergeytihon.com/2025/07/05/f...

05.07.2025 19:21 — 👍 12    🔁 1    💬 0    📌 0
Preview
F# Weekly #25, 2025 – 7 Reasons F# Sucks Welcome to F# Weekly, A roundup of F# content from this past week: News Multimodal Vision Intelligence with .NET MAUI – .NET Blog Agent mode is now generally available with MCP support &#8211…

F# Weekly #25, 2025 - 7 Reasons F# Sucks #fsharp sergeytihon.com/2025/06/22/f...

22.06.2025 07:37 — 👍 15    🔁 2    💬 0    📌 0

small PR, might be you do not need it, but now Feliz.ViewEngine also has a bare bones support for representing events in its DSL, for most scenarios might not be what you need i was experimenting with Vue bindings, thanks @dbrattli.bsky.social for helping out! 🦔 github.com/dbrattli/Fel...

11.06.2025 10:29 — 👍 1    🔁 1    💬 0    📌 0

The Rust implementation gives us control to handle .NET edge cases. Still early days with great opportunities for perf improvements and code that type checks correctly. That's the dream! 🐍🦔🦀✨ #fsharp #python #fable #rust #pyo3

09.06.2025 00:05 — 👍 4    🔁 0    💬 0    📌 0

The big win? No more confusion because our Int32 is actually Python's arbitrary-precision int. We're making Python behave like .NET - proper integer overflow, real array semantics. Surprisingly hard to make Python integers act like actual Int32s, but worth it 🐍🦔🦀✨
#fsharp #python #fable #rust #pyo3

09.06.2025 00:05 — 👍 3    🔁 0    💬 1    📌 0

Working on something that's getting me excited 🥰 For Fable 5 Python target we're rebuilding Fable Library in Rust to get proper .NET semantics when transpiling F# to Python. As a Python dev who fell hard for F#'s type system, this scratches an itch 🐍🦔🦀✨
#fsharp #python #fable #rust #pyo3

09.06.2025 00:05 — 👍 13    🔁 3    💬 1    📌 0
Preview
F# Weekly #23, 2025 – Catch up on Microsoft Build Welcome to F# Weekly, A roundup of F# content from this past week: News Catch Up on Microsoft Build 2025: Essential Sessions for .NET Developers – .NET Blog All the Azure news you don’t want …

F# Weekly #23, 2025 - Catch up on Microsoft Build #fsharp sergeytihon.com/2025/06/07/f...

07.06.2025 08:57 — 👍 16    🔁 4    💬 0    📌 0
Preview
F# Weekly #22, 2025 – Ionide with Cursor Welcome to F# Weekly, A roundup of F# content from this past week: News Announcing dotnet run app.cs – A simpler way to start with C# and .NET 10 – .NET Blog Semantic Kernel and Microso…

F# Weekly #22, 2025 - Ionide with Cursor #fsharp sergeytihon.com/2025/06/01/f...

01.06.2025 12:25 — 👍 21    🔁 5    💬 1    📌 0
Preview
The Prompt Engineering Playbook for Programmers Turn AI coding assistants into more reliable development partners

Just published: "The Prompt Engineering Playbook for Programmers"

My latest free write-up: addyo.substack.com/p/the-prompt... ✍️

31.05.2025 08:38 — 👍 88    🔁 15    💬 0    📌 1
Preview
Check for C# extension dependencies at runtime by dbrattli · Pull Request #2088 · ionide/ionide-vscode-fsharp Why We should not have a hard dependency on ms-dotnettools.csharp since that makes it impossible to use Ionide with forks os VScode e.g Cursor. This PR does the check at runtime instead adding reco...

You can now use F# and Ionide with @cursor.com.web.brid.gy 🥰 #fsharp #fable github.com/ionide/ionid...

31.05.2025 05:34 — 👍 10    🔁 6    💬 0    📌 0
Preview
Task estimation: Conquering Hofstadter's Law How to turn your time estimates into reliable predictions — and communicate them.

"That means the developer’s estimate, while far from perfect, is also far from meaningless: it’s the scale parameter of some distribution."
bit.ly/44ZdX9u
bit.ly/3Z8F7XH

08.05.2025 16:22 — 👍 15    🔁 8    💬 1    📌 3

Write safer code with Python type annotations. Start with part 1 in this trioligy #python cardamomcode.hashnode.dev/python-type-...

08.05.2025 06:11 — 👍 0    🔁 0    💬 0    📌 0
Preview
Python Type Annotations (part 3) Table of contents Variance in Generics Covariance Contravariance Invariance References Variance in Generics Variance in generics refers to how subtyping relationships behave when they are wrapped i...

Part 3 in the series of Python Type Annotations. Didn't have time to talk about "Variance in Generics" in our presentation at PyCon Estonia but here it is @pythonestonia.bsky.social cardamomcode.hashnode.dev/python-type-...

08.02.2025 19:10 — 👍 2    🔁 1    💬 0    📌 0

Check out this article by @dbrattli.bsky.social! See the full presentation this article is based on on our YouTube channel: www.youtube.com/watch?v=kMGU...

07.02.2025 11:17 — 👍 2    🔁 1    💬 0    📌 0
Preview
Python Type Annotations (part 2) Table of contents Generics Variadic Generics Parameter Specification Overloads Final notes References Generics Generics provide a powerful way to create flexible and reusable code components that c...

Python Type Annotations (part 2). Based on presentation we did at PyCon Estonia last year @pythonestonia.bsky.social

07.02.2025 11:07 — 👍 1    🔁 0    💬 0    📌 1

@dbrattli is following 20 prominent accounts