HN user

opensas

47 karma
Posts21
Comments14
View on HN
opensas.wordpress.com 13y ago

A few ideas to foster Ubuntu edge founding

opensas
2pts0
opensas.wordpress.com 13y ago

Publish your own geocoded web services with CartoDB

opensas
2pts0
opensas.wordpress.com 13y ago

Using OpenRefine to geocode your data using Google and OpenStreetMap API

opensas
1pts0
opensas.wordpress.com 13y ago

Journey to the open data jungle with OpenRefine, CartoDB, Leaflet and Javascript

opensas
1pts0
opensas.wordpress.com 13y ago

Sharing you JavaScript Ninja secrets: Run your jasmine tests on jsFiddle

opensas
1pts0
opensas.wordpress.com 13y ago

Live hot-code reloading with Chromium browser on Linux

opensas
2pts0
opensas.wordpress.com 13y ago

Troubleshooting Javascript & Backbone - part 1

opensas
3pts0
playlatam.wordpress.com 14y ago

Deploying Play Framework 2 apps, with Java AND Scala, to Openshift

opensas
1pts0
playlatam.wordpress.com 14y ago

Deploying Play Framework 2 apps, with Java AND Scala, to Openshift

opensas
1pts0
www.redhat.com 14y ago

Supporting Play Framework on OpenShift with the DIY Application Type

opensas
1pts0
www.dzone.com 14y ago

Playing (2.0) with Twitter Bootstrap, WebSockets, Akka and OpenLayers

opensas
2pts0
playlatam.wordpress.com 14y ago

Play framework 2 tip: interactively play with your app from the scala console

opensas
1pts0
playlatam.wordpress.com 14y ago

First Play framework hackaton in Argentina

opensas
1pts0
playlatam.wordpress.com 14y ago

Podcast en Java Hispano: Introducción a Play Framework

opensas
1pts0
playlatam.wordpress.com 14y ago

Secure JSON Services with Play Scala and SecureSocial

opensas
2pts0
www.redhat.com 14y ago

Vote for play framework native support on openshift

opensas
2pts0
playlatam.wordpress.com 14y ago

Spanish translation of Play framework documentation is ready

opensas
1pts0
playlatam.wordpress.com 14y ago

Playframework + Google Guice

opensas
12pts1
playlatam.wordpress.com 14y ago

First steps with Scala revisited: bash and python strikes back

opensas
3pts0
playlatam.wordpress.com 14y ago

First steps with Scala, say goodbye to bash scripts…

opensas
23pts25
playlatam.wordpress.com 14y ago

Divide and conquer: Play framework modules on openshift

opensas
2pts0
Thoughts on Svelte 3 years ago

the inconsistency comes from the fact that this reactivity, triggered from inside a function, is not taken into account to build the dependency graph and ultimately decide in which order to process the statements

Thoughts on Svelte 3 years ago

The $ label is one technical reason why I would be hesitant to adopt Svelte for larger projects. It's a core part of Svelte that you can't always avoid, and I think the potential for introducing bugs through it is high to start and very high at scale.

The reactivity system in Svelte is really a joy to use, once you get used to it there's no turning back.

But the author did hit one of the ugliest pain points about it. Svelte can NOT correctly infer transitive dependencies when the variable being updated is inside a function. Meaning that the variable itself will be reactive (it will be invalidated every time it's assigned, even inside a function) but Svelte is not using that information to build the dependency graph, and falls back to the order in which the reactive blocks were defined, which may or may not be right.

I created this issue https://github.com/sveltejs/svelte/issues/5190 a couple years ago documenting it.

It's not so common, but when it bytes you it's pretty nasty.

The workarounds I found are the following

These are the workarounds I found:

- a repl with the issue: https://svelte.dev/repl/640736d3c91d40d3971afcc3eef8b25e?ver...

- workaround 1: manually reorder statements, need to figure out by yourself (and maintain!) the dependency graph: https://svelte.dev/repl/3ecd6aa918e045999db32d379270fc1c?ver...

- workaround 2 (my favorite): provide a redundant update as "hint" to tell the compiler that setY updates y: https://svelte.dev/repl/cbf98bb35f5e4dd4b037d13254853c90?ver...

(thanks to TylerRick for this: https://github.com/sveltejs/svelte/issues/5190#issuecomment-...)

in practice it means to do something like: `$: { setY(x); y = y };`

- workaround 3: put the update operations in order in a single block (it's just the workaround 1 with improved legibility, IMHO): https://svelte.dev/repl/074df362bb934312bbe6fd3aeccab771?ver...

I still think we could do better, at least explaining the issue and how avoid to fall into it (perhaps some linting warning?)

But I really hope svelte developers start considering this an issue to solve, it's inconsistent (meaning the variable is reactive but that reactivity is not taken into account to order the operation in "topological order" (Hey, I learnt about that from one of Rich's presentations, see https://rethinking-reactivity.surge.sh/#slide=19) and as I said before, in the rare occasions you stumble upon it is not so easy to understand what's going on.