#ReleaseFriday Triggered by a recent feature proposal[1], I went ahead and polished & published a closely related, already work-in-progress (but still private) feature in https://thi.ng/rdom to support something I call "bare lists"[2]. I've started working on this for another project last year, but needed to do more testing (which I think have sufficiently done by now).

These "bare" lists are managed reactive control components which attach items directly to the list's parent DOM element instead of first creating a wrapper/container element for the items and so avoid introducing additional nesting.

There're many use cases where this additional nesting was a real problem with the earlier approach, e.g. in containers with CSS grid or flex layout, tables, or generally situations where we want to have static & reactive list items as true siblings...

The new version of thi.ng/rdom is technically a breaking change (sorry!), but the actual changes required (for you) are tiny and purely limited to the $list() and $klist() component function calls, which are now accepting a parameter object instead of positional args for the different possible behaviors. Of course, lists with item wrapper elements can still be created too, just as before (but via new args).

I've updated & tested all existing examples impacted by this change and also created a new fully commented example project (example #187) to illustrate these "bare" lists in situ (check the DOM inspector to see the shallow structure and how updates are applied):

Demo:
https://demo.thi.ng/umbrella/rdom-bare-lists/

Source code:
https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/rdom-bare-lists/src/index.ts

[1] github.com/thi-ng/umbrella/discussions/562
[2] My use of "list" here is generic, not limited to <ul> or <ol>...

#ThingUmbrella #Reactive #UI #OpenSource #TypeScript #JavaScript #WebDev

⚡️Blizzard ran their 9th poll, 39 concepts across 10 themes. The focus was on seldom‑skinned heroes: Brigitte, Maugu, Mei, plus newcomers Emre, Mizuki and Reactive Kisa.

Kiriko has two looks, Yuno got four, and Mercy is totally absent. Themes go from "Island parties" to "Animal gangsters". BRACE: these cosmetics aren't expected before Season 2-3, 2027. 👀

#SteamAndEpic #Themes #Blizzard #Brigitte #Reactive #Mizuki

#Reactive programming was way ahead of its time. Combined with a bit of framework code and if you feel like it, mix in some Scala too, one stack trace analysed by whatever model will catapult you right away into the top 10 of token users this month.

#Whiterot are some #fungi of #Agaricomycetes that degrade cellulose, hemicellulose, and #lignin. Since lignin is often degraded first, the affected plant parts appear #whitish. I. Jofré-Fernández et al. (2023) found that white rot affects #reactive #oxygenspecies (#ROS), thus promoting #CO2 #efflux from #soils, which can be a climate-relevant factor.
©#StefanFWirth #Berlin

Please support me with a small donation:
https://ko-fi.com/sfwirth

Ref
https://doi.org/10.3389/fmicb.2023.1148750

#Photos
©S F Wirth

Формы в Angular: от Reactive Forms к Signal Forms

Привет! Меня зовут Егор Молчанов, я разработчик в компании Домклик. В прошлой статье мы познакомились с новыми функциями input() , output() и model() , которые закладывают фундамент для будущего Angular без Zone.js. Сегодня мы поговорим о том, как эти изменения дошли до самой, пожалуй, наболевшей темы в любом приложении — работы с формами. В Angular v21 появился новый, экспериментальный способ управления формами — Signal Forms . Он не отменяет старые добрые Reactive Forms, но предлагает совершенно иной подход, основанный на сигналах. Давайте разберёмся, как работали формы раньше, как они будут работать с Signal Forms, и что это нам даёт.

https://habr.com/ru/companies/domclick/articles/1018180/

#angular #signals #signal #forms #reactive #javascript #ангуляр #вебразработка #webразработка #формы

Формы в Angular: от Reactive Forms к Signal Forms

Привет! Меня зовут Егор Молчанов, я разработчик в компании Домклик. В прошлой статье мы познакомились с новыми функциями  input() , output() и model() , которые закладывают...

Хабр

Added, updated & simplified the growing collection of darkroom-related calculators and super happy how elegant and concise the code has turned out, making it super easy to add more of them in the future.

I think it's also another great, if minimal, example to illustrate how otherwise completely separate https://thi.ng/umbrella packages can seamlessly compose/combine to enable a reactive dataflow UI, all without the need for any virtual DOMs and/or completely over-the-top frameworks like React & co. It's also doing so via mostly JS-native data structures for declaring the UI (plain objects/arrays/iterables) and various constructs directly managing the reactive value streams, thus providing a lot more finegrained control over UI updates/timing/throttling). Any value changes done by the user only trigger specific, pin-point calculations which then result in equally specific UI updates to show new results. Any user action only ever triggers the minimum amount of work needed to reflect the new state.

Calculators:
https://demo.thi.ng/umbrella/darkroom-calc/

Source code:
https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/darkroom-calc/src

The attached images show the source code of the entire main app (UI root) and one of the calculators...

Ps. Please let me know if you'd like to see more of these posts in the future. I'm tempted to launch season 2 of #HowToThing (see link below for 30 previous mini projects/tutorials) — but since this is very time consuming to produce & document these projects/examples, and because there has been _very little feedback_ to these previous projects/posts, I first need to gauge interest... Thank you! 🫶

https://codeberg.org/thi.ng/umbrella#howtothing

#ThingUmbrella #Darkroom #Calculator #Tool #Reactive #UI #WebDev #TypeScript #JavaScript #OpenSource

Real-time data looks easy until you connect it to an actual stream.

This tutorial shows how to:

process live Bitcoin trades in Java
build Bollinger Bands with sliding windows
detect volatility regimes (not just signals)

No Kafka. No heavy framework. Just Quarkus + Gatherers4j.

https://www.the-main-thread.com/p/real-time-bitcoin-analytics-java-quarkus-bollinger-bands

#Java #Quarkus #Streaming #Reactive #DataEngineering

Hibernate Reactive: опыт миграции, архитектурные компромиссы и скрытая сложность

Наш проект на Quarkus столкнулся с необходимостью более эффективного использования ресурсов под высокой нагрузкой. В поисках решения мы решили попробовать миграцию с классического Hibernate ORM на Hibernate Reactive (HR). В этой статье я поделюсь реальным опытом этого перехода: разберу ключевые архитектурные различия, расскажу о неочевидных «граблях», на которые мы наступили, и покажу на production-коде, какую цену пришлось заплатить за реактивность. Версии используемого ПО: Quarkus: 3.31.3, Quarkus Hibernate Reactive: 3.31.3 и Vertx-pg-client (реактивный клиент PostgreSQL): 4.5.24. Все описанные ниже вопросы и особенности актуальны именно для этих версий.

https://habr.com/ru/companies/sberbank/articles/1015846/

#java #quarkus #hibernate #reactive

Hibernate Reactive: опыт миграции, архитектурные компромиссы и скрытая сложность

В нашем проекте на Quarkus мы столкнулись с необходимостью более эффективного использования ресурсов под высокой нагрузкой. Решили мигрировать с классического Hibernate ORM на Hibernate Reactive (HR)....

Хабр

Started creating browser-based calculators for quickly computing a bunch of recurring things in darkroom processing, so far:

Scale amount by area:
Given reference dimensions and amount, compute scaled amount needed for new target dimensions.
Example: Compute drops of emulsion needed for a new print size

Two-part solution ratio:
For a total volume of a two-part solution with a A:B target mix ratio, compute how many units are needed of both A and B.
Example: For N drops in total, compute how many drops are needed for A & B using a 1.2:1 target ratio

Solution addition:
Compute the amount of solution A (with given concentration) to add to another volume to achieve a certain target concentration (for solution A)
Example: How many extra drops of a 25% contrast agent solution are needed to achieve a 5% solution with a certain base emulsion volume

More calculators forthcoming... Feel free to ping me with any other useful formulas you'd like to have added...

Bookmark this on your phone:
https://demo.thi.ng/umbrella/darkroom-calc/

(The UI is responsive to the system's dark mode setting)

Source code:
https://codeberg.org/thi.ng/umbrella/src/branch/develop/examples/darkroom-calc/

Btw. This is https://thi.ng/umbrella example project #186 and relies mostly on these packages:

- https://thi.ng/rdom & https://thi.ng/rstream for reactive UI & computation
- https://thi.ng/rdom-forms for reactive form element abstraction/creation

#ThingUmbrella #AltProcess #Darkroom #DarkroomPrint #AnalogPhotography #Calculator #Reactive #UI #TypeScript

WebFlux, Virtual Threads и все-все-все

Или: как спорили о реактивщине, а потом Java 21 всё запутала ещё сильнее Реактивное программирование обещало нам масштабируемость и производительность. Оно их дало. Но вместе с этим подарило новый вид боли: stacktrace на 47 фреймов, половина из которых operator.onNext , а элементарные вещи написаны так, словно решаешь задачу на leetcode. Потом подвезли Virtual Threads, и половина интернета написала «реактивщина умерла», другая – «ничего не изменилось». Истина где-то посередине. Попробуем с вами разобраться.

https://habr.com/ru/articles/1011538/

#webflux #виртуальные_потоки #virtual_threads #spring #java #reactive

WebFlux, Virtual Threads и все-все-все

Или: как спорили о реактивщине, а потом Java 21 всё запутала ещё сильнее Реактивное программирование обещало нам масштабируемость и производительность. Оно их дало. Но вместе с этим подарило новый вид...

Хабр