1,394 karma · joined November 10, 2009
Even if we’d understand precisely how every neuron in our brains work at a molecular level there is no reason to believe we’d understand how we think.
We can’t simply reduce one layer into another and expect understanding.
The past feels so alive!
Both on iPhone and Mac.
My entire OS, most apps and 90% of websites switch automatically with a single keyboard shortcut.
The Dutch national government mandated login system relies on technologies and hosting of a private company that was in conversation with an American counterpart about a possible acquisition.
Bad? Yes
The Netherlands selling their login service? No
So it’s hard to see how types get in the way instead of being the ultimate toolset for shaping distributed communication protocols.
Instead of understanding the code you only need to understand the bug. Much easier!
But it’s safe to say that the interaction layer between the two is extremely painful. We have nicely modeled type-safe code in both the Rust and TypeScript world and an extremely janky layer in between. You need a lot of inherently slow and unsafe glue code to make anything work. Part is WASM related, part of it wasm-bindgen. What were they thinking?
I’ve read that WASM isn’t designed with this purpose in mind to go back and forth over the boundary often. That it fits the purpose more of heaving longer running compute in the background and bring over some chunk of data in the end. Why create a generic bytecode execution platform and limit the use case so much? Not everyone is building an in-browser crypto miner.
The whole WASM story is confusing to me.
The machines don’t give a shit, it’s the lawyers and bureaucrats you’re serving :)
Better or worse?
The security failure is not the parsing library, but failing to model your application architecture properly.
Code that just works right now never scales.
Most obvious one is you’re building something actually technically challenging and need to grow your team to get there. People, especially great people, are bloody expensive. No way to afford any reasonable headcount as a 22yo first time founder without venture money.
Of course, simple ideas are easy and need less resources and might be bootstrapped, hard ideas less so.
Don’t know if it will work or is economically viable, but sounds pretty win-win to me.
Besides Maybe/Either `t` could represent anything, like container types Lists/Trees/Hashmaps etc, but also more complicated structures like syntax trees for programming languages or custom DSLs. Or (my favorite use case!) recursive command types for robot control. I'm doing this mostly in Rust, but borrow all the ideas from Haskell.
‘traverse :: Applicative f => (a -> f b) -> t a -> f (t b)’
And you can derive it for free for your own datatypes!
The amount of code I’ve manually written in other languages to get a similar effect is painfully large.
Could be a fancy optimization of course, but could as well be a side effect of a decoupled planning of the locomotion part and the upper body pick and place.
Algo could be: plan a path for a lower body motion from pose (4dof) A to pose B. And given pose B plan the upper body place of the tray in the target. If no constraints are broken plan both in parallel so it looks like one smooth behavior.
Obviously, I don’t know :)
> The systematic construction of a one-combinator basis
https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&d...
Most important lesson for me is to stay close to the problem domain. Think deeply about what your domain means and model in code accordingly.
Staying close to the true meaning of your application beats all other attempts at code maintainability. Types, tests, frameworks, dry, language features, ci pipelines, scrum whatnot. All just fun party tricks that fall short when your building the wrong thing.
Are we building the wrong thing? Almost always.