HNHacker News
TopNewBestAskShowJobs

ralfn

1,528 karma · joined May 2, 2012

submissionscomments
ralfn··on YugaByteDB – A Transactional Database with Cassandra, Redis and PostgreSQL APIs
Awesome. Thanks. This is very very encouraging!
ralfn··on YugaByteDB – A Transactional Database with Cassandra, Redis and PostgreSQL APIs
Those are a lot of claims. Databases that make half those claim, turn out to be misrepresenting some of them. So far its empty promises on a box.

When can we expect independent 3rd party evaluation of all these claims? The most famous one is Jespen:

https://jepsen.io/analyses

Because this all sounds way too good to be true. What's the catch? How stable is this? Are the claims tested other than in theory?

ralfn··on The Baseline Costs of JavaScript Frameworks
>everything I've seen shows Angular is significantly faster than the rest

That contradicts every published test.

It is also hard to imagine. Angular is both reading and writing the DOM.

And i haven't touched it after they switched to a new version, but in the old version they noticed state changes by contiously comparing all of your state. (so more state meant it would be slower).

I'm assuming they switched to a more native implementation of the observable pattern in the newer version, rather than that pathetic hack.

Of course neither React or Angular are as fast as hand written code. Since, what both take responsibility away from the developer. In the case of React: don't worry about what you need to update, just re-render the whole thing again. Simpler code, and the performance price you pay for it is somewhat limited because it then diffes a virtual dom.

Angular's approach, annotating HTML however, simply reinforces what we learned later: that is was written by someone with absolute no experience as a front-end developer. Because performance wise it's about the dumbest thing you could do. Every time you switch from writing to the DOM, to reading the DOM you force the browser to do another layout&paint and for all of that to happen synchronously, instead of the concurrent model that modern browsers actually offer.

What has happened is that these frameworks have become the new platforms. People don't realize that everything from online chess games to google maps isn't written using these frameworks and it's questionable any of them could do that with good enough performance.

At our company when recruiting we now distinguish actual front-end developers from angular or react developers. They may know these frameworks, that does not imply they could write them or understand enough of front-end development in general to debug actual cross browser issues, performance issues or rendering issues. And we give them a test that requires building something complicated in pure html/css/js.

ralfn··on A Brief History of JavaScript
A much better video about the same topic:

https://www.destroyallsoftware.com/talks/the-birth-and-death...

ralfn··on What to expect from a no-deal Brexit
The British upper class wants the freedom to abuse their lower class more and they sold this nonsense to them with a spiel about sovereignty.

Thank God the Brits have such a taste for irony. They'll be feasting on this one for the better part of a decade.

ralfn··on U.S. Moves Forward on $200B China Tariff
Europe underspending was a logical response to the ridiculous overspending of the US. And most of that money isn't actually spend on anything that keeps anyone safe.

We make more milk than anyone needs and then we subsidize it and throw half of it out. You guys make more tanks than anyone ever needs. You subsizide it and it collects either dust or you sell it to a small town police station for crowd control.

The world really didn't need us spending more money on war. Instead we spend our money on education for example. The shortage of highly skilled individuals in the west is filled by Europe.

None of this was ever a deal. We just do our part. Do what America lacks. And investing in murder machinery just isn't something our team needed.

But that's the thing, right? We are not one team anymore. You have to admit: that is what changed. I don't have an opinion about Swiss cheese.

ralfn··on U.S. Moves Forward on $200B China Tariff
Bingo. Also, unlike the US we like stable relationships a lot more than maximizing profitability.

The US has now proven to be unreliable and any further deal with the US will not be considered in the long term which clearly doesn't exist. So if it's not immediately in our interest we are unlike to make any deal about anything with the US as it now. No more loyalty. No more trust. Just aggressive animals trying every chance they get to steal each others food. Yuck.

ralfn··on U.S. Moves Forward on $200B China Tariff
European here: that's not how you negotiate with friends. That would show a dangerous lack of cultural understanding.

We have long memories and don't care about money as much as Americans do. We will prefer to be proud and poor.

This goes beyond Trump. It will take 30 years to repair the trust.

ralfn··on Apple’s Shortcuts will flip the switch on Siri’s potential
Specifically because this is an announcement that is a copy of functionality shown for Android already.

It's Apple catching up.. which if this was a journalistic article would be mentioned.

"Apple announces same feature Google announced 6 months ago"

ralfn··on Linus Torvalds on aliasing
Since even the people complaining about it are eating it up like donuts. They just don't want to admit it turns them on.

The honest reaction to any post like this is to just report it because the only entertainment factor is the drama.

ralfn··on Linus Torvalds on aliasing
In military terms Linus is the president of his world (the Linux kernel).

In the military with all the hierarchy this wouldn't happen because no small private would be arrogant enough to throw their opinion in the top generals and president face without being asked.

The whole point of the rudeness is that it does give space for people to voice their opinion irregardless of their rank. Only at the risk of being somewhat insulted.

ralfn··on Linus Torvalds on aliasing
When somebody speaks their mind, everybody around them knows where they stand.

I doubt there is difference between about how often people resent other people around the world. But I do consider it more humane if resentment isn't hidden under the surface. It's easier to trust Linus than a tactfull politician. That should make us all think.

ralfn··on Linus Torvalds on aliasing
Swearing doesn't damage morale. Many soccer coaches and inspiring pep talks contain swear words. It's a style figure.

Tact can be very usefull in small teams where trust and coordination is important.

For large projects, with thousands of stake holders the bar to participate in a conversation should be high.

As we both say in Holland: we are not made of sugar. But go read Linus rant now and ask yourself: would this really classify as an inappropriate rant in Holland? Or are you just, parroting the default (mostly from the US) critique on Linus?

Because this whole 'Linus isn't tactfull' is a false comparision. He is more approachable than any other person in that sort of position. Since there isn't a big filter at the door based on who somebody is but there is a verbal filter at the table. Very egalitarian if you ask me. Very Dutch like.

And our directness is often referred to as rude. It would look better on you to not blindly follow in that judgement when it concerns others.

For example: >Maybe you can chalk your reaction to your apparent false sense of superiority over friendliness and, it seems, Americans

If out of the mouth of Linus would be one of those 'look at how insensitive Linus is' posts. Something with the pot and the kettle.

ralfn··on Linus Torvalds on aliasing
When it comes to being oversensitive needy little things there is no true Scottsman.

As a northern European I find it not only comfortable that Linus runs Linux, but I would be less comfortable if it was another American smile in face pretend to be your friend but be shady as fuck attitude that you guys seem to confuse for 'professionalism'.

So let's chalk this to cultural differences. We wouldn't hire someone like you and you wouldn't hire someone like him.

ralfn··on EU Commission presents draft directive to ban some plastic waste
For somebody from Holland it's hard to understand how any family being that poor in a country like France with all it's socialism and union rights can be a thing.

We count as quite capitalistic compared to France but just for having children alone you get a compensation that already puts you out of that territory. (Of course we don't take this compensation away for working parents -- everybody always gets its. And from the age of 16 it's actually deposited in the account of the child itself)

And that's not even our (dressed down) welfare system: this is just making sure kids in school grow up in a somewhat egalitarian way.

This has to be an exaggeration. Nobody is that poor in France, right?

ralfn··on $560M Powerball Winner Can Keep Her Name Private, Judge Rules
In Dutch we have a saying: As is the inkeeper does he trust his guests.

I'm always surprised by this pattern of extreme paranoia. In most of the world lottery winners are anonymous, because people wouldn't even consider cheating with this sort of thing. It would just not come to their mind. Perhaps because we don't all default to immediately assume the worst of each other? Because that pattern of thinking makes it easier to morally justify when you screw some one over as well. If enough people think somebody would cheat like this, enough people would have the moral flexibility to cheat.

ralfn··on Httpie: A cURL alternative
Well, i use it daily, because it has:

- much more sane command line syntax

- automatic formatting and highlighting of json/xml/html

- automatically show received headers

- reverts to unproccessed output when redirected

PROTIP: use 'cat' to type the body manually:

     cat | http post https://someapi.com/somenendpoint Authorization:sometoken
You can then start typing the message body. When done, press ctrl+d (EOF) and the request will send and the reply will be printed.

And if you already have the body in a separate file, just pipe it through:

    cat mybody.json | http post https://someapi.com/somenendpoint Authorization:sometoken
ralfn··on Dutch agencies provide crucial intel about Russia’s interference in US elections
As a dutch person I want to make one thing very clear.

We mostly distinguish not between Republicans and Democrats (since neither fits any political identity here), but between people that make everything about politics and people who don't.

To suggest we fall for the same partisan trap that is currently responsible for the complete cultural and social fabric unraveling in the US is insulting.

We are a much more cultural homogenous country. Our political extremes are not debating whether the earth is round, climate change is happening or if our AIVD has video of Russians hackers doing these actual things.

The fact that Holland shared this information with the US during both presidents (Obama, Trump) is because we have a bone to pick with Russia after they shot down a plane with many dutch citizen in them above Ukraine.

The reason this information comes out at this particular moment, i.e. the timing. Is because Trump bragged to Putin about how the US has such good friends they could see the Russian hackers (remember this happening? Your agencies getting angry at Trump for leaking secrets?). That likely destroyed the operation. So now the timing of the leak of this factually correct information is all about how to do him (personally) the most harm.

This is not Republicans or Democrats. This is about Trump and Putin both getting a knee for their disrespect to us. Please be smart enough to not stand in the way.

ralfn··on Why is Rust difficult?
Python doesn't need generics because it doesn't try to statistically type your code in the first place.

    def example(a):
        return a
Would be perfectly legal python code. But in Go you would have to choose the type of A and duplicate the function under a different name if you want it to work with a different type.

So, when a language implements static typing without generics they actually mean 'lots of code and approaches legal in Python would be rejected'.

So it doesn't add a feature to the expressiveness of the code. It fixes a bug in the type system so that the expressive code is considered legal. Of course better type systems have existed since the 70's, but the set of people that know the ins and outs of how to implement those and the trade offs behind it does not include Rob Pike. His interests and skills are different (and the cause of some of the better features of Go)

ralfn··on Why the U.S. Spends So Much More Than Other Nations on Health Care
It is not unique to healthcare either. It is simple a common aspect of large organisations that have too many stake holders that need to coordinate to get things done.

It is an interesting organisational problem.

But inefficient does not mean expensive. Generally you see a lot of inefficiency, much like with code, when it is not the hot path. If you would fix all the obvious inefficiencies it will not drastically reduce cost (actually: it would mean the hospitals have more money, so anybody selling anything to them would up their prices)

Inefficiency only makes a difference when the price is based on cost not on negotiation position (i.e. value based). So in a red ocean as they say, there is a strong economic incentive to fix all in efficiencies and squeeze the last dollar out of it. This is referred to a race to the bottom.

But health care is the opposite of a red ocean. And no price is too high if it means survival, so the consumer (i.e. the patient) needs a much better negotiation position. For example: having all patients collectively negotiating the price. If only over time the invisible hand of the market would have created structures for this purpose again and again everywhere in the world. Oh wait! It did. It's called government.

ralfn··on “Variables” in CSS are harmful (2008)
"separations of concerns" is not about putting things in different folders or files.

It is about those things not being entangled as spaghetti with each other.

Reacts Philosophy is that everybody's css/js/html is tightly coupled and therefor using different languages with different semantics and scoping rules increase the cognitive complexity without providing any advantage.

Can I break your app by just touching the CSS? Does any cosmetic change at any point require that I touch the html? Can I write a new style sheet for your app without knowing the JS or HTML? Can I plug in a new style sheet of one application into another? Can people work on the JS/HTML/CSS separately and independently?

Putting your spaghetti in separate folders doesn't make it less spaghetti.

And the market knows it's tightly coupled spaghetti for everyone. Thats why you don't see different job adverts for your three different folders.

The goal was to have a world where the designer would know CSS but zero JavaScript and zero HTML. This goal has completely failed.

ralfn··on Why the U.S. Spends So Much More Than Other Nations on Health Care
You aren't spending nearly as much as Americans and for that money you treat everyone.

Are large organisation inefficient? Yes. Is it frustration when you look at it? Yes. Does this mean the US situation where they are spending 3 to 5 times as much to provide the same level of care to only a part of the population, is objectively worse than the UK situation? Yes.

(I removed the quoted line, because the tone of voice is suboptimal - but it doesn't change the argument)

ralfn··on Why the U.S. Spends So Much More Than Other Nations on Health Care
You do realize that the US has this problem alone.

It doesn't require innovation or technology.

Just proper policy on pricing, like every other western nation has. The market will fix the efficiency, but not as long as the medical field itself can set the prices, since life and death choices are the ultimate i-will-rob-a-bank-for-this price elasticity.

ralfn··on Keybee: a new keyboard layout designed specifically for touchscreen devices
https://www.google.nl/search?q=define+free&oq=define+free

>The sentence itself implies libre, not being patent-encumbered

Nope. It is used as an adverb, for which the dominant meaning is 'without cost'.

And you know this. You are just here spinning. I love libre software, but when you abuse language to make a political point it disgusts me just as much when I hear the words 'pro-life' or 'job-creators'.

If you want to claim you continuously confuse 'free' as as an adverb for patent free gnu stuff you are either an idiot or disingenuous

ralfn··on Keybee: a new keyboard layout designed specifically for touchscreen devices
>The original reason why QWERTY was desired is due to typewriters getting stuck less quick because the movement wasn't efficient. That was intentional, a legacy from the 19th century!

That is an urban myth refuted by the author of qwerty, but it just doesn't die.

ralfn··on AI-assisted fake porn are being used by people on Reddit for self-completion
The fact that you use the authority argument means you are the opposite of an authority on objective truth.

If anything it is the one place where getting the objectivity wrong has no consequences. In a typical company if you are getting the truth about something wrong (e.g. what people want, what people are willing to pay, where the market will move to) the lack of profit margins will refute the correctness.

In a newsroom however objective truth is a hygiene issue like a cook washing his hands. They should. But if they don't it has very few consequences.

ralfn··on The Death of Flash and Rewriting 1.4M Lines of Code
No. Also because it's nearly impossible, has only downsides including worse performance.

How could WebAssembly offer a single API to different languages with different internal datastructures and calling conventions and different memory allocators and garbage collectors?

They would have to pick a weakest/most-low-level common denominator, like the C calling convention.

If say the language you are compiling to WebAssembly is Haskell, Ruby or Go .. you will still need to bindings that are going to feel as 'calling into another language with non native (to this language) datastructures'.

And they will have to be implemented for each language that targets WebAssembly. And kept up to date.

If this calling out happens with typical C datastructures and calling conventions, you would need a complete reimplemention of the DOM, including meetings about every detail of the new API surface since in this world something as simple as a getting the boundingbox would not be easily expressible.

Also: since it's unclear who manages (owns) these datastructures and how, it means that most implementations will just always copy the data over.

So you have worse performance, double the attack surface, even worse performance because now the DOM needs to run in the same sandbox for it to be safe. And I'm not even sure all security policies can be implemented at all, even then. What about the rule that only code triggered by a click may open a new window? Is that even something we can implement on the WebAssembly level? No.

And after we finally all agree on what the API surface should be, you'll need at least 2 to 3 years to get a first implementation. Since the only way for browser vendors to do this is to implement their DOM completely for scratch.

And while we are doing that we also have to keep the feature set in sync, and maintain the current DOM because JavaScript isn't going anywhere.. and what if you want to use both?

The notion that WebAssembly could or should itself support bindings other than 'call JavaScript and interact with the DOM from there' is quite delusional and hints at a fundamental misunderstanding of how programming languages are actually implemented and what WebAssembly actually is.

ralfn··on Female Congressional Candidate Ends Run After Being Accused of Sexual Harassment
Yeah for about 2 decades, which is when that non sense started

Moms, eventhough all the facts suggest otherwise, assume men abuse children more often than women (even though its the opposite).

And ever since the only people teaching young children are mentally challenged girls that wouldn't survive in another city or country for ever a day

ralfn··on Why is there so much free porn on the internet? (2016)
Would that be because maybe sexual attraction to a person is based on the personality we project onto the looks and energy? And maybe within an industry you simply don't have every type of personality and that is actually really hard to fake?

Which is why some people like the amateur stuff much more.

Of course this suggests there are deep layers of emotional needs behind our sexual preferences. Which is obviously not true. It is all about the flesh. That is why porn sites only need three videos ;)

ralfn··on Rust: Enable WebAssembly backend by default
>I believe the community could make nice libraries compiled to WASM that anyone can use regardless of the programming language. JavaScript would be just another language(albeit a popular one, at least due legacy reasons).

I understand and respect the aim -- the browser should be ambivalent about programming languages.

But this is not intention, because it is quite unfeasable. WebAssembly allows one to target the web with much more low-level languages, but that also means that the languages dictate the memory structure of things. In WebAssembly world there are no 'javascript arrays' or 'object hashmaps'.

Imagine mapping the Javascript DOM API surface (with all its dynamic datastructures and callbacks) to C++, Haskell and Smalltalk. Three languages that may compile to WebAssembly, but would have drastically different internal datastructures. And all of that data marshalling that you would need to do, would need to happen for every dom feature for every language that compiles to WebAssembly.

OR! We just implement an API that does nothing more than interop with JS land. This doesn't change often and it will be easy to support many different languages quickly.

Think of Javascript as the BASH of the web. In a shell script you would pipe the output of one written-in-c program to the input of a written-in-rust program. With HTML+JS you would hookup the heavy part of the application and plug the IO's exactly how you want them. Its closer to configuration, really, much like a shell script.

So there needs to be some glue language, and we need to support Javascript and its DOM operations in a way that is completely backwards compatible, and at least as fast (read: tighly coupled) as it is now. And we want to limit the attack surface. There is no other choice than that Javascript will be that glue language.

But its fitting, because Javascript like BASH is a language whose strongest competitive advantage is compatibility. Like BASH it will be the glue language and shell of a platform.

← PreviousPage 7 of 18Next →