If no one else has mentioned it yet this headline is false/misleading. Ridership is down 30% not 70%. That is, all transit systems are operating at about 70% of nominal ridership.
The Swapper is a unique experience that has stayed with me for years. I think of it often and the feelings it evoked in me. Everything is just absolutely perfect: the puzzles aren't so hard as to be annoying but challenging enough to get a good dopamine kick after completing. The music is calming, ethereal, moving and tense all at the same time. The story and endings are contemplative and ask deep questions about identity. It is amazing. I can't recommend it enough.
it isn't nonsense you already can't buy new server products. Been like that since Feb 2021 and support ends entirely Feb 2024. https://www.atlassian.com/migration/assess/journey-to-cloud. Try not to defend companies that don't deserve it.
I generally think type first in Java and most other languages purely by convention - it is just a social and programmatic norm. That being said, Go's conciseness lends itself to creating working code quickly and generally the type system aims to just be "good enough", broadly trying to force you to get working code first and invent the types as they are opportune. This is also why (aside from fear of hurting compilation speed) that generics were only just added after many years; which some people, myself included before I actually used Go and loved it - think is needed to use a language for anything beyond "toy" purposes (you don't actually need generics most of the time).
In practice this works out really well (especially since with Go you never need to extend interfaces, you automatically are known to implement an interface implicitly by just possessing the same function signatures an interface possesses), and is liberating and freeing: I don't go down a rabbit hole of thinking I need to support future cases and define AbstractAnimal, AbstractMammal extends AbstractAnimal, Dog extends AbstractMammal. This also highlights the other side benefit - since you aren't thinking what each object's operations are you can use composition and define the traits that a Dog possesses, and lo and behold later, since those trait interfaces are decoupled you don't have to repeat them if you realize Snake can implement Hiss() just like Cat can even though they both might traditionally extend and inherit down orthogonal branches (where you would have to duplicate or do wonky shenanigans like attach it to AbstractAnimal and return UnsupportOperation where not actually implemented).
The bottom line is it forces you to not even have to think about YAGNi because you compose only what is needed to accomplish each task on the fly.
That’s not much different than just using interfaces/traits though (with the added benefit or hindrance depending on person of Graph::walk may be different than Animal::walk)
I take this exact brand and it is really great. just be careful if you stack with SSRIs. if I take a bit too much I started getting headaches/serotonin syndrome-esque effects. I stepped down to 2.5mg since I take some prescription meds but if you're vanilla 5mg is great to start. For me it does help relieve anxiety and boost my mood a bit. If you have a NY Times subscription or free article viewing you might also be interested in the article "Should we all take a bit of lithium?" which inspired me to try it. Here is an article with some info on dosing from a practicing doctor. https://www.chandramd.com/blog/low-dose-lithium-supplements
I read this long ago and I love Rich Harris and I think he is a super smart guy. But the problem as I see it is that he focuses on VDOM as just a performance hedge. As browsers improve (or rather as the market consolidates on WebKit variants as is happening now), then certain DOM operations that took substantially longer on average on IE or Edge vs. Chrome will no longer be as much of a problem, which is my view of what the VDOM was trying to solve. There are some operations that depending on the browser and how the internal mechanics of the layout engine work will take substantially longer on one browser vs another for instance. You are at the mercy of each layout engine's architecture. In this case, if you use a VDOM to calculate the simplest operation to be performed and just push the end results with the simplest operations manageable, you can elide away the differences between certain DOM operations taking longer than others across browsers. Setting innerHTML for example on IE (Trident), Edge (EdgeHTML), Safari (non-Blink WebKit), Firefox (Gecko) and Chrome/Chromium (Blink) is likely the best way to ensure consistent performance since it is one of the base operations you will need to do to manipulate HTML.
I personally love the idea of the VDOM, because it liberates the content from being stuck to one document type: HyperText. While true when VDOM showed up on the scene, Facebook and others said the VDOM would help cure performance issues and that was the main selling point.. as we see now with things like ReactPixi, and Netflix using React for some of their apps - the VDOM is infinitely valuable for transcending the limits of HyperText and instead abstracting it away so that content may be projected by any sort of renderer using the same scaffolding as web pages. If you code to just the DOM - that is is where you will stay. Forever.
“ If you code to just the DOM - that is is where you will stay. Forever.”
Svelte native exists…
The VDOM which mirrors the document DOM is an implementation detail of React, as something sitting between the actual DOM, and the VDOM fragment returned by a React view. It’s true that if the document DOM gets fast enough, the mirroring VDOM could go away, but some diffing algorithm would still have to reconcile the document DOM with whatever fragment is returned from a view.
I think one of the realisations of Svelte is that rather than returning arbitrary runtime generated DOM fragments from views, it is better to have the view implemented by a template that a compiler can understand and manipulate at compile-time. Here we trade off some expressivity (run-time generated DOM) for the ability to do much much more at compile time - I think this is the real point that should be being made in the article.