Alexandru Nedelcu's Avatar

Alexandru Nedelcu

@alexn.org.bsky.social

Software developer, FP, Scala, Kotlin, Java / JVM, Haskell, Rust; contributor to https://alexn.org, https://monix.io, https://typelevel.org. ๐ŸŒ Bucharest, Romania https://alexn.org/about/

1,132 Followers  |  149 Following  |  484 Posts  |  Joined: 01.07.2023  |  2.0072

Latest posts by alexn.org on Bluesky

The only sane way to consume #YouTube is via subscriptions to your favourite channels (bonus points for using an RSS/feed reader). Never let the algorithm drive your consumption of media, as it's not meant to work for your benefit.

www.youtube.com/feed/subscri...

07.08.2025 08:55 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Turning off your Watch History on YouTube improves the experience, as their suggestions are hardly based on your interests. Test it:
โ€ฃ Clear your history
โ€ฃ Only watch a specific genre for 1โ€“2 days
โ€ฃ Notice YT insert politics / celeb gossip / rage bait slop in your suggestions.

07.08.2025 08:51 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

โ€œTyping speed and boilerplate aren't a problem, writing code being only a small part of my jobโ€ says developer that doesn't write any comments, or tests and commits broken code from StackOverflow or GPT.

07.08.2025 07:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Generics: in, out, where | Kotlin

Yes, see: kotlinlang.org/docs/generic...

04.08.2025 10:42 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
// Scala code
sealed trait Either[+L, +R]:
  // R2 >: R means R2 is a supertype of R;
  // Scala 3 also allows `R | R2` (untagged unions)
  def valueOr[R2 >: R](onLeft: L => R2): R2 =
    this match
    case Left(l) => onLeft(l)
    case Right(r) => r

// Scala code sealed trait Either[+L, +R]: // R2 >: R means R2 is a supertype of R; // Scala 3 also allows `R | R2` (untagged unions) def valueOr[R2 >: R](onLeft: L => R2): R2 = this match case Left(l) => onLeft(l) case Right(r) => r

// Kotlin code
sealed interface Either<out L, out R> {
    // ...
}

// Extension methods required for any methods incompatible with variance
inline fun <L, R> Either<L, R>.valueOr(onLeft: (L) -> R): R =
    when (this) {
        is Either.Left -> onLeft(value)
        is Either.Right -> value
    }

// Kotlin code sealed interface Either<out L, out R> { // ... } // Extension methods required for any methods incompatible with variance inline fun <L, R> Either<L, R>.valueOr(onLeft: (L) -> R): R = when (this) { is Either.Left -> onLeft(value) is Either.Right -> value }

Coming from #Scala โ€” #Kotlin has somewhat odd restrictions in the type system. E.g., while it supports declaration-site variance, it doesn't support any annotations to make incompatible methods sound, so you either go with @/UnsafeVariance, or with extension methods.

04.08.2025 06:45 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0
Preview
Computer ๐Ÿ–– Re-Creating Star Trekโ€™s LCARS Computer With Modern LLMs A hands-on experiment in autonomous tool-building agents 1 ยท Why LCARS? For decades science-fiction fans have watched Star Trek officers conve...

blog.mihaisafta.com/posts/comput...

29.07.2025 16:00 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
John De Goes on API Design, Effect Systems, Entrepreneurship and The Ultimate Coder
YouTube video by Rock the JVM John De Goes on API Design, Effect Systems, Entrepreneurship and The Ultimate Coder

New long-form conversation:

John De Goes (@jdegoes.bsky.social) on good API design, timeless skills for software engineers in the age of AI, improving communication skills as programmers, and making programming entertaining:

youtu.be/q90QZ05wddU

29.07.2025 14:46 โ€” ๐Ÿ‘ 4    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Worth a read!

22.07.2025 15:01 โ€” ๐Ÿ‘ 2    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

IntelliJ IDEA x Scala: A new way to add an sbt plugin

#scala #intellijidea #sbt

10.07.2025 11:21 โ€” ๐Ÿ‘ 6    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1
Preview
Scala Highlights, June 2025 edition | The Scala Programming Language

Scala 3.9 confirmed as the next LTS version. Coming in Q2/2026 ๐Ÿคž #scala www.scala-lang.org/highlights/2...

29.06.2025 21:51 โ€” ๐Ÿ‘ 6    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

"Klibs.io โ€“ the dream of creating a Kotlin Package Indexโ€ ๐Ÿ“ฆ

In his KotlinConfโ€™25 talk, @beresnev.me shares a retrospective on developing Klibs.io, lessons learned from processing 250,000 KMP artifacts, and tips for making your library more discoverable.

๐Ÿ“บ Watch now: youtu.be/rKbM3e0OidI?...

30.06.2025 06:28 โ€” ๐Ÿ‘ 12    ๐Ÿ” 3    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 1

Good Scala developers tend to be amazing engineers overall.

This explains (at least in part) why good Scala developers may seem hard to find - there's a lot of competition for them from other ecosystems too.

30.06.2025 13:54 โ€” ๐Ÿ‘ 7    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1
Preview
The backbone of agentic AI, distributed systems, and OSS sustainability Jonas Bonรฉr talks Akkaโ€™s evolution, open-source challenges, BSL licensing, and how Akka powers scalable, agentic AI systems.

Some people refer to Jonas as a '๐—น๐—ฒ๐—ด๐—ฒ๐—ป๐—ฑ'...

In this @rockthejvm.com episode, Jonas Boล„er discusses the future of open-source sustainability and how the actor model powers #agenticAI systems.

Watch the full discussion: akka.io/blog/the-bac...

#AgenticAI #AI #DistributedSystems #Developer

25.06.2025 16:15 โ€” ๐Ÿ‘ 4    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Zuzy, my black cat, looking at the camera.

Zuzy, my black cat, looking at the camera.

#cat #pic

17.06.2025 18:42 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Scala Plugin 2025.1.25 is out!
ย - Fixed recognition of Scala.js shared sources
ย - Fixed several UI freezes and issues with the new sbt modules layout
ย - Added support for Scala 3 in New Project Wizard | Play generator

10.06.2025 13:39 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

sbt 1.11.2 is released!

07.06.2025 21:06 โ€” ๐Ÿ‘ 3    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

IntelliJ IDEA x Scala: How to use sticky selection

#intellij #scala

05.06.2025 13:13 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

IntelliJ IDEA x Scala: How to move blocks of code

30.05.2025 08:17 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Pocket is shutting down. If you're looking for a replacement, I recommend Linkding. Search works well, it's easy to self-host, has Internet Archive integration and on the desktop you can save snapshots via the SingleFile browser extension.

https://linkding.link/

31.05.2025 06:03 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Demanding excellence in software development actually saves time โ€”ย e.g., good design, code practices, unit testing, you need it all.

Shortcuts, due to deadlines or laziness, are compounding the technical debt, leading to slowdown and production incidents that cost far more.

30.05.2025 06:56 โ€” ๐Ÿ‘ 10    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Video thumbnail

IntelliJ IDEA x Scala: How to clone carets
#scala #intellijidea

22.05.2025 17:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The Internet is making us dumber because we're fed predigested opinions.

People no longer assimilate information, they're just getting other people's opinions, often packaged in simplistic slogans. It's cognitive outsourcing, and the dawn of GenAI is worsening it.

21.05.2025 16:04 โ€” ๐Ÿ‘ 6    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Rainbow over Bucharest. Not my photo.

Rainbow over Bucharest. Not my photo.

Rainbow over Bucharest. Not my photo.

Rainbow over Bucharest. Not my photo.

Yesterday, Romania had presidential elections. We were close to fascism, but the moderate pro-EU candidate won. There has been a lot of tension and uncertainty, but around two hours before voting ended, rainbows after the storm happened, as a sign that things will be alright.

19.05.2025 07:25 โ€” ๐Ÿ‘ 15    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Azi votez pentru libertatea de gรขndire, de vorbire, de miศ™care, pentru justiศ›ie, pentru o piaศ›ฤƒ liberฤƒ, pentru Europa, pentru Occident ๐Ÿ‡ท๐Ÿ‡ด๐Ÿ‡ช๐Ÿ‡บ

Azi votez รฎmpotriva fascismului, a ceauศ™ismului, รฎmpotriva imposturii ศ™i a ticฤƒloศ™iei, รฎmpotriva prostiei, รฎmpotriva invadatorului rus.

18.05.2025 07:06 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

And he isn't wrong. All people need purpose, or a shared sense of good and evil, without which you get eugenics, social Darwinism, nihilism. That faith may not need to be Christianity, but Christianity sure is a good start.

And you're declaring Christianity to be hateful and that's not news either.

11.05.2025 08:19 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

All people live their life with faith, there's only the question of what that faith is. E.g., liberal values, or the belief that human life is precious and murder is wrong, are faith-based. Really, anything that's not based in empiricism, like all human morality.

11.05.2025 08:14 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
- I want things to be different 
- *smashes everything*
- oh no

- I want things to be different - *smashes everything* - oh no

I think about this comic at least once a week

10.05.2025 05:47 โ€” ๐Ÿ‘ 23814    ๐Ÿ” 4828    ๐Ÿ’ฌ 301    ๐Ÿ“Œ 270

Crucial Scala 3.7 news that might be overlooked: Android development is now unblocked! โœ… #scala

10.05.2025 23:01 โ€” ๐Ÿ‘ 11    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

That may actually be a good thing. Breakage is different from accretion. Breaking compatibility might be needed for correctness, but I have the opinion that such releases need to coexist in the same codebase with older versions (e.g., different namespace).

09.05.2025 16:10 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Present and Future of Kotlin for Web | The Kotlin Blog We've been focused on enhancing Kotlin Multiplatform for web, and a lot has been going on behind the scenes. Now, we're ready to share it!

Kotlin/Wasm (wasmJs variant) is going to be promoted to Beta! #kotlin #wasm

09.05.2025 06:27 โ€” ๐Ÿ‘ 17    ๐Ÿ” 4    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@alexn.org is following 20 prominent accounts