home.social

#reactive — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #reactive, aggregated by home.social.

  1. #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 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:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [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

  2. #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 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:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [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

  3. #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 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:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [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

  4. #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 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:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [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

  5. #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 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:
    demo.thi.ng/umbrella/rdom-bare

    Source code:
    codeberg.org/thi.ng/umbrella/s

    [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

  6. #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:
    ko-fi.com/sfwirth

    Ref
    doi.org/10.3389/fmicb.2023.114

    #Photos
    ©S F Wirth

  7. #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:
    ko-fi.com/sfwirth

    Ref
    doi.org/10.3389/fmicb.2023.114

    #Photos
    ©S F Wirth

  8. #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:
    ko-fi.com/sfwirth

    Ref
    doi.org/10.3389/fmicb.2023.114

    #Photos
    ©S F Wirth

  9. #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:
    ko-fi.com/sfwirth

    Ref
    doi.org/10.3389/fmicb.2023.114

    #Photos
    ©S F Wirth

  10. #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:
    ko-fi.com/sfwirth

    Ref
    doi.org/10.3389/fmicb.2023.114

    #Photos
    ©S F Wirth

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

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

    habr.com/ru/companies/domclick

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

  12. 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 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:
    demo.thi.ng/umbrella/darkroom-

    Source code:
    codeberg.org/thi.ng/umbrella/s

    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! 🫶

    codeberg.org/thi.ng/umbrella#h

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

  13. 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. Все описанные ниже вопросы и особенности актуальны именно для этих версий.

    habr.com/ru/companies/sberbank

    #java #quarkus #hibernate #reactive

  14. 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:
    demo.thi.ng/umbrella/darkroom-

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

    Source code:
    codeberg.org/thi.ng/umbrella/s

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

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

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

  15. React-Like JSX Syntax for Webcomponents

    TLDR: I’ve been #experimenting with react-like jsx-syntax with webcomponents to see if I could theoretically replace #React in one of my larger #software projects. It is not ready for production use, but rather a #Research exploration into #CustomElements and #ModernJS performance.

    The goal was to build #FunctionalWebComponents that handle #StateManagement and #DOM updates without the overhead of a massive #JavaScript framework. By leveraging #StandardWebAPIs and #Proxy objects, I’ve managed to create a #Reactive programming model that feels familiar but stays closer to the #Platform.

    Check out the full #TechnicalTutorial and #DeepDive here: positive-intentions.com/docs/r

    (Disclosure: this project may be getting deprecated. Sharing this because it might still be interesting or educational.)

    #WebDevelopment #Frontend #BuildTheWeb #NoFramework #JS #JSX #WebStandards #Coding #ResearchAndDevelopment #VanillaJS #SoftwareEngineering #TechBlog #WebDevCommunity

  16. React-Like JSX Syntax for Webcomponents

    TLDR: I’ve been #experimenting with react-like jsx-syntax with webcomponents to see if I could theoretically replace #React in one of my larger #software projects. It is not ready for production use, but rather a #Research exploration into #CustomElements and #ModernJS performance.

    The goal was to build #FunctionalWebComponents that handle #StateManagement and #DOM updates without the overhead of a massive #JavaScript framework. By leveraging #StandardWebAPIs and #Proxy objects, I’ve managed to create a #Reactive programming model that feels familiar but stays closer to the #Platform.

    Check out the full #TechnicalTutorial and #DeepDive here: positive-intentions.com/docs/r

    (Disclosure: this project may be getting deprecated. Sharing this because it might still be interesting or educational.)

    #WebDevelopment #Frontend #BuildTheWeb #NoFramework #JS #JSX #WebStandards #Coding #ResearchAndDevelopment #VanillaJS #SoftwareEngineering #TechBlog #WebDevCommunity

  17. React-Like JSX Syntax for Webcomponents

    TLDR: I’ve been #experimenting with react-like jsx-syntax with webcomponents to see if I could theoretically replace #React in one of my larger #software projects. It is not ready for production use, but rather a #Research exploration into #CustomElements and #ModernJS performance.

    The goal was to build #FunctionalWebComponents that handle #StateManagement and #DOM updates without the overhead of a massive #JavaScript framework. By leveraging #StandardWebAPIs and #Proxy objects, I’ve managed to create a #Reactive programming model that feels familiar but stays closer to the #Platform.

    Check out the full #TechnicalTutorial and #DeepDive here: positive-intentions.com/docs/r

    (Disclosure: this project may be getting deprecated. Sharing this because it might still be interesting or educational.)

    #WebDevelopment #Frontend #BuildTheWeb #NoFramework #JS #JSX #WebStandards #Coding #ResearchAndDevelopment #VanillaJS #SoftwareEngineering #TechBlog #WebDevCommunity

  18. React-Like JSX Syntax for Webcomponents

    TLDR: I’ve been #experimenting with react-like jsx-syntax with webcomponents to see if I could theoretically replace #React in one of my larger #software projects. It is not ready for production use, but rather a #Research exploration into #CustomElements and #ModernJS performance.

    The goal was to build #FunctionalWebComponents that handle #StateManagement and #DOM updates without the overhead of a massive #JavaScript framework. By leveraging #StandardWebAPIs and #Proxy objects, I’ve managed to create a #Reactive programming model that feels familiar but stays closer to the #Platform.

    Check out the full #TechnicalTutorial and #DeepDive here: positive-intentions.com/docs/r

    (Disclosure: this project may be getting deprecated. Sharing this because it might still be interesting or educational.)

    #WebDevelopment #Frontend #BuildTheWeb #NoFramework #JS #JSX #WebStandards #Coding #ResearchAndDevelopment #VanillaJS #SoftwareEngineering #TechBlog #WebDevCommunity

  19. React-Like JSX Syntax for Webcomponents

    TLDR: I’ve been #experimenting with react-like jsx-syntax with webcomponents to see if I could theoretically replace #React in one of my larger #software projects. It is not ready for production use, but rather a #Research exploration into #CustomElements and #ModernJS performance.

    The goal was to build #FunctionalWebComponents that handle #StateManagement and #DOM updates without the overhead of a massive #JavaScript framework. By leveraging #StandardWebAPIs and #Proxy objects, I’ve managed to create a #Reactive programming model that feels familiar but stays closer to the #Platform.

    Check out the full #TechnicalTutorial and #DeepDive here: positive-intentions.com/docs/r

    (Disclosure: this project may be getting deprecated. Sharing this because it might still be interesting or educational.)

    #WebDevelopment #Frontend #BuildTheWeb #NoFramework #JS #JSX #WebStandards #Coding #ResearchAndDevelopment #VanillaJS #SoftwareEngineering #TechBlog #WebDevCommunity

  20. Leading and Lagging Indicators both have their purposes, but it's important to stay ahead of problems in quality, safety, or in compliance functions, not handle them late. #leading #lagging #indicator #proactive #reactive

  21. #ITByte: #Reactive #Programming is a #Paradigm focused on #Asynchronous data streams and the propagation of change.

    It uses the #Observable pattern to push data (events, messages, values) to subscribers, allowing systems to react to changes over time efficiently and non-blockingly.

    knowledgezone.co.in/trends/exp

  22. 🚀 Wow, #groundbreaking news: someone just discovered there's more to life than goroutines! 🤯 Introducing the "Reactive #paradigm," because why keep things simple when you can confuse your fellow developers with buzzwords? 💥Apparently, "ro" is the new magic sauce—because clearly, Go wasn't good enough at #concurrency already. 🙄
    samuelberthe.substack.com/p/go #news #reactive #goroutines #buzzwords #HackerNews #ngated

  23. yea...i do actually hate how yall like to be #reactive instead of #active or #proactive and then call us either too lazy for being #exhausted from always #struggling alone*.......or too stupid for just #trying something you refuse to...

    ugh...like pick SOMETHING so we can move on already already!!!

    ...instead of always "picking up the pieces" can we just 4once get AHEAD?

    and #feedgaza with #noconditions

  24. Aberdeen v1.0.0 promises a "refreshingly simple" way to build #reactive #UIs with #TypeScript, ditching all the complex tools and libraries for... small anonymous functions. 🤔 Because who needs state management when you can rerun everything automatically with the magic of proxied data? 🚀✨
    aberdeenjs.org/ #Aberdeen #SimpleDevelopment #ProxiedData #HackerNews #ngated

  25. So, my #introduction or #intro or whatever -

    I'm a married twenty-something living in the #UK, originally from #Australia. I work in #TV in #ProductionManagement, so focus a lot on #productivity systems and #automation - #todoist is my daily driver.

    Interested in #urbanism and #transit for a more connected, sustainable world. Getting back into #gaming with my new #SteamDeck. Owner of a #reactive #RescueDog. Big #foodie. Amateur #writer and #archivist, growing #datahoarder due to slight paranoia about the shakiness of our digital world (#RIPTwitter didn't help).

    Still not sure where I belong yet on Mastodon, but so far I'm loving not having my feed dictated by an algorithm. It feels cool, like how the internet used to be. Enjoying the ride! :blobcatdance:

  26. So, my #introduction or #intro or whatever -

    I'm a married twenty-something living in the #UK, originally from #Australia. I work in #TV in #ProductionManagement, so focus a lot on #productivity systems and #automation - #todoist is my daily driver.

    Interested in #urbanism and #transit for a more connected, sustainable world. Getting back into #gaming with my new #SteamDeck. Owner of a #reactive #RescueDog. Big #foodie. Amateur #writer and #archivist, growing #datahoarder due to slight paranoia about the shakiness of our digital world (#RIPTwitter didn't help).

    Still not sure where I belong yet on Mastodon, but so far I'm loving not having my feed dictated by an algorithm. It feels cool, like how the internet used to be. Enjoying the ride! :blobcatdance:

  27. So, my #introduction or #intro or whatever -

    I'm a married twenty-something living in the #UK, originally from #Australia. I work in #TV in #ProductionManagement, so focus a lot on #productivity systems and #automation - #todoist is my daily driver.

    Interested in #urbanism and #transit for a more connected, sustainable world. Getting back into #gaming with my new #SteamDeck. Owner of a #reactive #RescueDog. Big #foodie. Amateur #writer and #archivist, growing #datahoarder due to slight paranoia about the shakiness of our digital world (#RIPTwitter didn't help).

    Still not sure where I belong yet on Mastodon, but so far I'm loving not having my feed dictated by an algorithm. It feels cool, like how the internet used to be. Enjoying the ride! :blobcatdance:

  28. So, my #introduction or #intro or whatever -

    I'm a married twenty-something living in the #UK, originally from #Australia. I work in #TV in #ProductionManagement, so focus a lot on #productivity systems and #automation - #todoist is my daily driver.

    Interested in #urbanism and #transit for a more connected, sustainable world. Getting back into #gaming with my new #SteamDeck. Owner of a #reactive #RescueDog. Big #foodie. Amateur #writer and #archivist, growing #datahoarder due to slight paranoia about the shakiness of our digital world (#RIPTwitter didn't help).

    Still not sure where I belong yet on Mastodon, but so far I'm loving not having my feed dictated by an algorithm. It feels cool, like how the internet used to be. Enjoying the ride! :blobcatdance:

  29. So, my #introduction or #intro or whatever -

    I'm a married twenty-something living in the #UK, originally from #Australia. I work in #TV in #ProductionManagement, so focus a lot on #productivity systems and #automation - #todoist is my daily driver.

    Interested in #urbanism and #transit for a more connected, sustainable world. Getting back into #gaming with my new #SteamDeck. Owner of a #reactive #RescueDog. Big #foodie. Amateur #writer and #archivist, growing #datahoarder due to slight paranoia about the shakiness of our digital world (#RIPTwitter didn't help).

    Still not sure where I belong yet on Mastodon, but so far I'm loving not having my feed dictated by an algorithm. It feels cool, like how the internet used to be. Enjoying the ride! :blobcatdance:

  30. Hello #fediverse here's my #introduction : My name is Koko. I'm a 2 year old #BorderCollie cross #AustralianKelpie

    I was a pandemic pup, so I didn't get the socialisation I needed. This means that I can be #reactive towards cars and other dogs.

    Luckily for me, the #DogsTrust helped me find the best Mum and Dad who are doing everything possible to help me become calmer and more optimistic. They already tell me I'm the goodest boy 🐶

    #dog #dogs #DogsOfMastodon #Collie #AdoptDontShop