Profile avatar
noelwelsh.bsky.social
69 posts 104 followers 78 following
Prolific Poster
Conversation Starter

Wanting to enrich my childrens' lives, I bought them some foreign sweets. Was called a "slimy rat who feeds us poison". Who doesn't like salty licorice fish? They'll thank me when they are older.

Hurry up! Get your @scaladays.org Early Bird ticket today, prices go up from May 30th. And make sure to check out the program 🗓️ register.event-works.com/lausanne/Sca...

Thank you to everyone who attended this month's London Scala talks! Thank you to our excellent speakers Tomasz Godzik and Volodymyr Yaroslavskyi. Sign up to our next one on 18th June: www.meetup.com/london-scala.... We'll hear from @noelwelsh.bsky.social and Anton Sviridov.

A little story on vibe coding: I've decided to convert my book to Typst, because I'm sick of wrestling with Latex and Pandoc. (Pandoc is great for simple things, but the book is getting complex. Latex is great for its time, but with hindsight it has many mistakes.)

Got invited to Imperial College of London to do some livecoding for students, this time making a simple Electron app with Scala.js searching Scala libraries. github.com/keynmol/scal...

Manage to break and restore my Linux system. The former was not surprising but the later was.

Maybe it's time to ditch Latex for Typst. I've hit a Latex problem in the build for Functional Programming Strategies. I don't understand TeX well, and I don't want to get a better understanding. Typst is a system / language I won't resent learning, but the ecosystem is foreign. 🤔

Let's talk about these two department store owners: brother and sister Louis Bamberger and Caroline Bamberger Fuld. From Newark, New Jersey. They are random people, basically. But in the late 1920s, with fascism taking over Europe, they made a choice that profoundly changed the world: 🧵

Take a deep-dive into into building reliable incremental processes with Scala 3 + fs2 & discover how easy (and empowering) they are to design with Zainab at #ScalaDays More info is coming soon, but you can get your ticket to Zainab’s Functional Stream Processing workshop on scaladays.org/workshops

Through 15 years of Scala experience, @noelwelsh.bsky.social presents a toolkit which he calls programming strategies. Be more productive by building powerful abstractions and more during this #ScalaDays workshop! Find Noel’s Functional Programming Strategies workshop at www.scaladays.org/wo...

I'm giving this workshop at Scala Days, which will cover most of the techniques I've learned over the last 15 years of building software in typed FP. Happy to answer any questions about the workshop (which will draw from the book I'm writing: scalawithcats.com)

Last Thursday we started our summer term with a great session at SiriusXM. Next session is online on the 8th of May: www.meetup.com/scalabridge-... We have a few new groups running this term (music, Cats, another web project) as well as the usual foundations / Cats Effect / etc.

Created this picture as an example of the probability monad for the book (scalawithcats.com) but realised the colors won't print well. Loosely inspired by #genuary1 prompt: horizontal and vertical lines only.

This is the perfect illustration of LLM's propensity for bullshit. It's also quite fun!

Join us for graphics / web apps / interview practice / effect systems and ... anything you want! (It's a community run group. We cover the topics that are of interest to our members.)

Resharing for the third time as @noelwelsh.bsky.social recently finished the chapter about the "user friendly" tagless final encoding. The book is awesome, by the way! It's probably the most comprehensive guide to programming with Cats. #scala scalawithcats.com/dist/scala-w...

Finished the chapter on tagless final in "Functional Programming Strategies" and it's available to read online: scalawithcats.com This includes the new encoding I talked about at @scalar-conf.com Sign up to the mailing list on the same site if you want to hear about updates.

This week, in addition to our usual programming, we will have track working on talk proposals for Scala Days: www.meetup.com/london-scala...

Just added slides for my talk "Tagless Final for Humans" to my page of talks: noelwelsh.com/landing/talks/ I gave this talk today at @scalar-conf.com. The core is a new encoding for tagless final in Scala, which makes much better use of Scala's features than the standard encoding.

Getting creative at @scalar-conf.com !

www.scala-lang.org/blog/2025/03...

I have been enrolled, against my will, in an experiment to see how much emoji, exclamation mark, and emphasized font filled ChatGPT generated text one person can endure before going insane.

@scalabridgelondon.bsky.social is an amazing community of people seeking to improve on their knowledge and understanding of Scala and beyond, run by @noelwelsh.bsky.social. With different work groups and activities, everyone can share and learn at their pace on the topic of their interest

Tagless final for algebraic user interfaces with multiple backends. Here's a very basic demo, running in the terminal. The styling is a bit ugly but it does the job. asciinema.org/a/EVfpzJdRe0... The code for this: ``` val ui = Component.textField("What Can You See Right Now?") ui.create() ```

Our next event is this Thursday, in-person at the offices of SiriusXM: www.meetup.com/scalabridge-... Come along if you want to improve at programming. We have a variety of groups working at different levels on various projects.

We stick to our tradition and we've got a great lineup this year :) Lots of different themes & topics - what's new in #Scala the language, direct-style, alternative platforms, build systems, tools & concurrency, cloud & automation, onboarding, music, FP, enterprise, community.

Yesterday I gave at talk at Imperial College on the uses of dualities in programming. We look at the dualities between data and codata, calls and returns, and ASTs and stack machines. Slides are at noelwelsh.com/landing/talks/ and the benchmarks are taken from github.com/scalawithcat...

Talking at Imperial College this evening on the power and utility of duality. Hoping to corrupt some young minds. Wish me luck.

Can you please help me find interviewees for my PhD research? I’d love to chat to UK residents (18+) who bought, sold or rehomed a dog in 2023 or 2024, using an online selling site (so something like Pets4Homes or Gumtree, rather than social media). Thank you!

There are still spots left for our next #London #Scala talks! Join a crowd of student Scala developers and hear from @noelwelsh.bsky.social and Rory Graves at @imperialcollegeldn.bsky.social .

A "Philosophy of Software Design" presents the Unix file interface as a good design. I find this perplexing. `read`, for instance, is N different functions, where the actual function is determined by some bullshit global state. Brought to you by 4 hours debugging terminal code.

Over many years of explaining programming concepts to others, and learning them myself, I've realized that two different kinds of explanation are useful. I call them operational and denotational explanations and I've written them up here: noelwelsh.com/posts/operat...

Our next event is in-person at Mercator's London office: www.meetup.com/scalabridge-... We have a great list of projects (music player, library management, query language, and more) and are still working out which ones we'll commit to.

A reminder that our next meeting is this Thursday. It's online, and anyone can attend (so long as you can make 7-9pm UTC). You don't have to be near London! www.meetup.com/scalabridge-... This is a planning event, where we work out we'll do for the rest of the year.

I wrote up a case study on designing a DSL for terminal interaction. You might find it a good read if you like to see programming theory jargon (codata! monads! composition!) tied to actual use cases. noelwelsh.com/posts/codata...