Great to see this now works. Input and textarea sizing is still a mysterious black art to me though.
1,394 karma · joined November 10, 2009
Great to see this now works. Input and textarea sizing is still a mysterious black art to me though.
This is where you can index the different constructors (enum variants) with an additional type variables and even specialize them when needed. A pretty powerful tool to encode at the type level that similar things are slightly different.
Maybe not for lawyers, no. But as a citizen I'm expected to comply with the law, with many many laws. It'd actually be nice if law was slightly more formally verifiable, so it would be easier for me to understand what to comply with.
Being able to break down clauses into more logical normal forms would probably greatly enhance the possibility of compliance.
Still don’t fully understand what ‘runtime’ means in this context. It’s not the parser, interpreter, VM, GC I think, because that is the V8 part. It’s not a runtime compiled into an executable like Haskell or Go.
Is it the term used here for a set of standard libraries? Or maybe in interaction layer with the operating system underneath, or the package/build system? Or an umbrella term for all of this?
I’ve been doing all kinds of JavaScript and TypeScript for a long time now without a runtime (I think) so pretty curious.
But without those details your comment is just a poor quality and lazy attempt to disqualify people who are actually trying something.
There exist design choices that would end up with a different combo. Class components with hooks or function components using lifetime callbacks.
Yes, hooks — basically sub components with possible effects and yielding values, or DOM output — are a terrific idea and much more functional and principled than explicit lifetime callbacks.
All the dependency arrays and non-conditional checks etc are because of the function components approach and don’t have much to do with hooks.
I feel nearly every discussion on hooks mixes this up and makes the whole conversation just weird and confusing.
To the contrary! Because I’ve already used that function (traverse) a million times and know exactly how to write it myself I understand exactly what it does without any knowledge about the details of your Future or Optional or whatever. True and meaningful abstraction. Which is truly an amazing super power!
If the models are too optimistic, that still means they are wrong, right? Genuinely confused about this.
“The situation today is more dire than our previous models predict and the same models predict an even worse future so we need to take them extra seriously” doesn’t strike me as very reasonable. Not in a super non-linear system with tons of complicated feedback loops.
Any pointers to in-depth explanations of how these models work and how they are benchmarked? Definitely want to learn more.
The appeal of geoengineering is you can nudge specific systems slowly into another direction. You can start small and observe expected effects and unwanted side-effects.
Reduction of sulfer emissions by ships is an interesting starting point to learn something.
Scroll bars popping in and out of existence awkwardly reflowing elements around it. Tiny unusable 30px wide horizontal scroll bars inside an input element because an element overflows 0.7px due to font size rounding issues or what not.
Default scroll bars are great for documents, but pretty terrible mostly for slightly more complicated UIs where a lot of info is displayed in small area.
They might not do that in Rust, they do in Haskell, JavaScript and plenty of others.
Personally I think the term closure should be banned, because it only adds confusion.
There are just functions, some named some anonymous, some capturing the environment, some not, some being disallowed by some constraints from the host language. The term closure cuts through this space in a useless and rather ad-hoc way.
Reminds me of the online bitcoin wallet public key QR code generator that just generated a code for some attacker’s wallet and got themselves some free coins.
I’m not a biologist, but I always assumed the self similarity of plants and trees is definitely some recursive process with some boundary conditions or external constraints as an implicit parametrization. Which is very similar to how you can describe (some) fractals.
It feels very unlikely to me that the tree dna for thick branches is completely different from that for thin twigs.
Please explain why you are saying what you’re saying so at least we can learn from it.
Haskell style pure functions are a natural fit for shaders that are side effect free by design. Wonder how far you can go with abstractions like applicative functors for generic vector math etc. Could be quite powerful and when properly inlined without any perf hit.
Suddenly sum types become conveniently easy to express and understand, which is always incredibly awkward in JSON.
Besides that: tuples, tuple structs, comments, properly handling NaN, optional.
Really hope something like this takes over the role of JSON/yaml soon.
What is important is that the candidate’s skills generalize well to both the challenge in the interview as well as the day job. A question like this might be a good indicator or not depending on the job.
If people completely fail at this question it can reveal a lot of relevant information.
> expense in the low five figures
> So what are people complaining about, exactly?
This is an incredible take.
Many people don’t have the luxury to just spend five figures on a mandatory house renovation.
In some situations, definitely! In other situations, definitely not!
My experience with writing Haskell application code is that you’re thinking way less about the runtime operational aspect of your code than in any other language. The burden is much lower.
The exceptions are possibly when writing low level library code that involves a lot of IO and steaming. Or when storing a lot of data in-memory for longer periods of time.
I guess laziness helps mostly by not dictating the granularity in which to expose both data and building blocks. You can expose more than strictly needed and consumers just pick what’s relevant.
Keeping APIs simple and to the point.
In Rust you need to really make some careful design choices in your producer/library code depending on the expected use. All of them quite on the operational level and not really semantically. So many internal choices about refs/arcs/pins/mut/ownership leak out.
In Haskell you don’t really do that. If your library internals are neatly written combinators with the right type and semantics you can just expose them and you’re done. Like the article explains, laziness is a big part of this.
I understand where that difference comes from, but it’s really a very different way of thinking.