Next chapter in that high-performance #Scala game server. A while back, there was an article about rebasing the core logic processor (purely functional, no IO, no concurrency, bottlenecked on CPU and heap allocations) from #ZIO to ZPure for performance reasons. Now taking it a step further with replacing ZPure with PureLogic (written for this purpose). Uses #Scala3 context functions and "direct style" instead of monads, greatly reducing the number of allocations.

https://blog.pierre-ricadat.com/introducing-purelogic/

Introducing PureLogic: direct-style, pure domain logic for Scala

PureLogic is a new Scala 3 library for writing pure domain logic using direct style instead of monads. It provides 4 capabilities (Reader, Writer, State, Abort) that compose naturally through context functions, with zero dependencies and 7-40x better performance than monadic alternatives.

ZIO Mock не может — ScalaMock поможет

Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает Arrange‑Act‑Assert, «краснит» в IDEA и иногда падает так, что вы видите только InvalidCallException: null. В Яндекс Вертикалях мы довольно долго жили с этой библиотекой — пока количество таких тестов не перевалило за пару сотен и они не расползлись по десятку команд. Меня зовут Женя Веретенников, я тимлид в Яндекс Вертикалях и последние годы занимаюсь инструментами для Scala‑разработчиков и инфраструктурой бэкенд‑монорепозитория. Когда стало ясно, что ZIO Mock больше мешает, чем помогает, мы решили отказаться от него полностью — и подружить ZIO Test с классическим ScalaMock. Он даёт более предсказуемый синтаксис и понятные ошибки, но из коробки с ZIO не работает. В этой статье я расскажу не о том, как пользоваться новой библиотекой, а о том, как мы её делали: какие ограничения ZIO‑стека пришлось учитывать, где пришлось лезть под капот ScalaMock и ZIO Test и во что в итоге превратилась эта инженерная затея. Это история про построение собственного test tooling в большой Scala‑кодовой базе — с честными компромиссами и практическими выводами.

https://habr.com/ru/companies/yandex/articles/1001816/

#scala #scalamock #zio #моки

ZIO Mock не может — ScalaMock поможет

Если вы пишете тесты на ZIO, то с моками, скорее всего, уже сталкивались. И почти наверняка — с ZIO Mock. Формально он решает задачу, но на практике ломает...

Хабр

4/ Klaus Hillenbrand schreibt: „50 Jahre später sind sich nicht nur versprengte #DDR-Nostalgiker, sondern größere Teile der linken Bewegung in Deutschland darin einig, dass der #Zio­nismus zu den Grundübeln zählt.“

Ich weiß nicht, was und wen er hier meint. Ich hatte ihm aber den Blog-Post unter 3/ geschickt und auch den Blog-Post zum Thema Ossi und Holocaust, weil er in einem früheren Beitrag behauptet hatte, der Osten sei antisemitisch gewesen.

Ich verstehe nicht, warum Westler diese ganze Evidenz irgendwie ignorieren. Was kann man noch tun?

Die DDR fand Israel ab dem Moment schlecht, ab dem klar war, dass Israel zum anderen Block gehören würde. Sie war gegen die israelische Regierung (siehe Post bei 3) und gegen die völkerrechtswidrigen Annektionen, aber nicht gegen Juden per se.

Wenn Hillenbrand mich mit DDR-Nostalgiker meint, hat er mich verletzt und gekränkt.

Ich weiß nicht, warum Ihr mir folgt. Bilder, Klima, blöde Sprüche und launische Kommentare zu Zeug, das ich gelesen habe, Sprachwissenschaft? Ich hoffe, dass Ihr aber alle merkt, dass ich kein DDR-Nostalgiker bin.

Ich hänge den #Holocaust-Blog an. Ich weiß wirklich nicht, was man noch tun kann. Die Urteile scheinen gefällt zu sein. Nicht revidierbar. Wenn ein #Ossi und ein #Wessi in dieselbe Ausstellung im Jüdischen Museum gehen, sehen sie völlig verschiedene Dinge. #ConfirmationBias

Was schlimm ist: Jegliches Nachdenken kann man sich als Westler sparen, indem man eins von zwei Schlagwörtern verwendet: #JammerOssi und #DDRNostalgiker bzw. #Ostalgie.

Die Ostalgie kommt ja auch in dem anderen Thread über den Podcast mit #AnneRabe vor.

Mit dem Jammer-Ossi tut man Kummer einfach ab und mit dem Nostalgie-Vorwurf stellt man das Gegenüber in die Ecke der Menschen mit verschobener Erinnerung.

Jammer-Ossi bin ich nun gar nicht und ich denke, dass die Erinnerung auch genug von den Scheußlichkeiten der DDR-Zeit hervorkramt.

https://so-isser-der-ossi.de/2019/09/01/der-ossi-und-der-holocaust/

🌘 我如何將 Zig 語言變成我撰寫網路程式的首選
➤ 從 Zig 的低階魅力到 Zio 的非同步飛躍:打造高效網路應用的開發者心路歷程
https://lalinsky.com/2025/10/26/zio-async-io-for-zig.html
作者原先對 Zig 語言保持觀望,直到看到其創始人使用 Zig 重寫其演算法後引發興趣。作者決定利用重寫 AcoustID 索引專案的機會學習 Zig,並對其開發體驗讚譽有加,新版本在效能與擴展性上均超越 C++ 版本。然而,在為專案添加伺服器介面時,作者面臨挑戰,先前版本使用的 Qt 和 Go 在處理網路和並行方面較為便利。為瞭解決 Zig 在網路程式設計上的限制,作者大膽決定使用 Zig 實現叢集層,並編寫了 Zig 版的 NATS 客戶端,深入體驗了 Zig 的網路能力。基於這些經驗,作者推出了 Zio,一個為 Zig 設計的非同步 I/O 與並行處理函式庫,它模仿 Go 的風格,透過協程提供類似同步的編碼體驗,並在效能上展現出優異的表現,
#程式語言 #Zig #網路程式設計 #非同步 IO #並行處理 #Zio 函式庫
How I turned Zig into my favorite language to write network programs in

I’ve been watching the Zig language for a while now, given that it was created for writing audio software (low-level, no allocations, real time). I never paid too much attention though, it seemed a little weird to me and I didn’t see the real need. Then I saw a post from Andrew Kelley (creator of the language) on Hacker News, about how he reimplemented my Chromaprint algorithm in Zig, and that got me really interested.

Lukáš Lalinský
#SOTOHP home photo management software is almost ready after a long journey... Release 1.0 is available, will work on the packaging in the coming weeks. Thanks @adamwarski for #Tapir, my favorite way to provide API and @zioscala for #ZIO - https://github.com/dacr/sotohp
#TaylorSwift had so many obvious #RedFlags before the new #racist #album. But #Swifties dutifully ignored them all, just like they ignore her being a #billionaire, flying in a #PrivateJet, and supporting a #zio #cop for #president.
i can't stand ZIO. i think this is the worst framework i worked with in my career. i just want to create an http route calling a simple function, and i have to dig into documentation like i'm learning a completely new language.
whoever thought this is a decent syntax is fucking delusional:
```
val admin =
Method.GET / "admin" / "users" -> handler { (_: Request) =>
Handler.fromZIO(ZIO.service[UserService]).flatMap { userService =>
Handler.fromZIO {
ZIO.serviceWithZIO[UserInfo] { info =>
if (info.roles.contains("admin")) userService.getUsers.map { users =>
val userList = users.map(u => s"${u.username} (${u.email}) - Role: ${u.roles}").mkString("\n")
Response.text(s"User List:\n$userList")
}
else
ZIO.fail(Response.unauthorized(s"Access denied. User ${info.username} is not an admin."))
}
} @@ jwtAuth(realm = "Admin Area")
}
}
```
#scala #zio #venting
ZIO+Tapir+Quill combo template with CRUD operations, authentication, routing, pagination, monitoring and more. AKA type-safe, purely functional alternative to the Spring Boot ecosystem. #scala #zio https://github.com/softwaremill/realworld-tapir-zio
GitHub - softwaremill/realworld-tapir-zio: RealWorld.io with tapir and ZIO

RealWorld.io with tapir and ZIO. Contribute to softwaremill/realworld-tapir-zio development by creating an account on GitHub.

GitHub