HNHacker News
TopNewBestAskShowJobs

TheMode

180 karma · joined July 12, 2021

submissionscomments
TheMode··on Why do people seem to prefer Chrome's devtools over Firefox's?
> Our collective history is too valuable for us to be breaking stuff just to make engineers’ lives easier.

I'd argue that software standards make it harder for everyone to write a "history". How many people simply gave up on their own websites and outsourced their work to an entity they do not control the actions of?

How much of that fancy web standard is about optional visual? What are we really getting from it? Would you consider a new API for drawing rectangles "progress"?

Your `Array.flat` example may make sense, but only because we are way too deep to even consider alternatives. We have mostly no idea how these standards will evolve and decided to keep on putting band aids to remain afloat.

The best way to keep information accessible is to make it understandable by a human without mandatory automation. Don't you find it horrible that all the information websites can provide you is actually dependent on a thousands pages long spec? Is it really the only solution you can think of?

The resiliency of the web is mostly equivalent to papyrus, if not worse.

TheMode··on Why do people seem to prefer Chrome's devtools over Firefox's?
Designing an API is a ton of work, especially if you care about backward compatibility (otherwise you may as well use that internal API). And at some point will be deprecated for removal.

Without a standardized way of writing devtools - assuming the web standard is overall simplified - you can expose a more specialized API without the baggage associated with standards, break it every so often, and make it as easy as possible for developers (potentially even users) to port other devtools to it.

I believe that instead of finding the "universal API", we should embrace the fact that there will be 15+ of them, and therefore simplify the porting process.

TheMode··on Why do people seem to prefer Chrome's devtools over Firefox's?
My bad then, I stand corrected.

Although the rest of my message remains correct, if writing a dummy browser only took a few hours/days, nobody would ever ask for new APIs.

TheMode··on Why do people seem to prefer Chrome's devtools over Firefox's?
It is how it works. What's your suggestion for the fancy devtools API? Beg Google?

Making the implementation of the web standard simpler means increasing the options available, meaning more chance of finding a devtools you appreciate and possibly modify.

APIs/Standards deprecate. It is not even a question of "if" but "when". Lowering the barrier of entry is much more sustainable than engineering a whole new spec every time we encounter a problem.

TheMode··on Why do people seem to prefer Chrome's devtools over Firefox's?
We need less API/standard, not more.

To have more competition in web devtools, we need to simplify the web standard so more browser can appear instead of forcing some new fancy API on our almost monopoly.

TheMode··on How do we pay for parking?
Humans are quick at adapting. Saying that our specie has been living in absolute terror for the past millenniums and that we somehow solved it in our century is pretty arrogant.
TheMode··on Even Synthetic Life Forms with a Tiny Genome Can Evolve
I am not a religious, but being happy seems more important than being right. I do not know what battle you are fighting.
TheMode··on AI Is Ruining the Internet
I agree, but in some way I do not believe that this is a bad thing.

The more people realize that the internet isn't "real" or "social", the more they will be pushed to find an alternative.

There is no need to save or kill the web. Let it evolve.

TheMode··on The Physics of Readability
I have watched many Dave's video and completely agree. Though even from a performance perspective only, this seems like the obvious path ahead.
TheMode··on The Physics of Readability
Instead of encouraging developer to optimize beyond what their programming language expose, shouldn't we change our software model to include space?

A simple example would be cellular automata (not necessarily "automata") which make clear use of space. But for this to happen, we would need new CPU design that doesn't only attempt to become a C interpreter.

TheMode··on Implementing Fast Barriers for a Shared-Memory Cluster of 1024 RISC-V Cores
CPU cache, main ram & disk are all treated the same at the software layer. All memory accesses are somehow expected (in theory) to be O(1).

The best you can do with such a model is try to predict space (access pattern etc). On the other hand, cellular automata would make it much more obvious and benefit both small & big programs.

Parallelism is ultimately the duplication of space. If one bucket isn't enough, you get a second one. But with our space-unaware ISAs you need some cooperation from your OS, all the layers above and predict as best you can.

TheMode··on Implementing Fast Barriers for a Shared-Memory Cluster of 1024 RISC-V Cores
Not sure if this is on topic, but couldn't a processor designed to run cellular automata scale better?

I have doubt that it is possible to scale an architecture that by design attempt to hide space.

TheMode··on Show HN: Marsha – An LLM-Based Programming Language
How do you plan to update such natural language code? Words change meaning. This is what I meant by stable
TheMode··on A world where people pay for software
The problem then isn't that people refuse to pay for software, but that it needs permanent maintenance. Feels like a lot of busy-work.
TheMode··on A world where people pay for software
There is intrinsic complexity involved in distributing physical goods. Software complexity is mostly made up.

Would billions solve software distribution & longevity? How?

TheMode··on A world where people pay for software
Why do we insist on making software paid? Wouldn't it make more sense to work toward making software more stable so I could decide to make a calculator app during my free time, and have it somehow still used 200y later?

Software is stupidly simple to distribute, but for some reason one of the hardest to keep. Obviously if we cannot use any software of the past, we are stuck with developers having to maintain old or new solutions.

TheMode··on Show HN: Marsha – An LLM-Based Programming Language
> Right now, it’s not that reliable, of course, but eventually it will be. As everything else, it will evolve

What make you think that natural languages will ever become reliable/stable? It hasn't been for millennia

TheMode··on ‘Everyday Utopia’ Review: The Road to Nowhere
> If kindness is the default response to your fellow human.

You cannot guarantee constant kindness, you will need to answer to violent responses as well, and be sure that it doesn't snowball.

TheMode··on PoisonGPT: We hid a lobotomized LLM on Hugging Face to spread fake news
May she goes to 320
TheMode··on PoisonGPT: We hid a lobotomized LLM on Hugging Face to spread fake news
As a general guideline, I tend to believe that anything that has lived X years will likely still continue to exist for X more years.

It is obviously very approximative and will be wrong at some point, but there isn't much more to rely on.

TheMode··on PoisonGPT: We hid a lobotomized LLM on Hugging Face to spread fake news
Because it has been the case for billions of years, and we adapted our assumptions as such. We have no strong reason to believe that we will figure out ways to indefinitely improve these chat bots. It may, but it may also not, at that point you are just fantasizing.
TheMode··on Fairphone 4 is coming to the US
> Good luck turning those into silicon with any kind of performance.

It doesn't have to be the hardware ISA, nothing would prevent the hardware manufacturer from including a compiler.

> Because string comparisons are slow. Non-standardized hints are not a basis upon which software can be built.

The comparison will only happen once, I do not think that we should argue about 2-3 string comparisons heating our CPUs. And you can definitely build software this way, you just need to work on the way the user map its hardware to the software.

> I can write a library that implements all the APIs needed to run discord on older versions of Android

But the hardware is there, the problem is that the mapping must be done through low level code.

> Your OS can't design a GUI for you, unless you're assuming the OS is also an artificial general intelligence.

I am not speaking about AI, but I do believe that our OSs could help us draw an interface from data. There are many UI creation tool, but they aren't meant to be real-time.

> GUI apps are complex to make because their behavior is complex.

They are complex to write, but very simple to describe (if you accept to give up on some details). I could describe my HN page layout to you way faster using english than html/css. GUI apps are complex because we are trying to map them to weird standards. Good luck implementing a CSS parser.

> You can totally port discord to an arduino! Get it to boot linux, run a web browser and open discordapp.com.

You can theoretically do it yes, in the same way developers could in theory port their apps to every single platform current and future. But in practice it isn't the case, and my calculator app will likely stop working in 5 years because of some weird API change.

> I think the core issue you're trying to address is fragmentation. Unfortunately it's a natural result of people interacting with one another, not something you can fix with good design or software. It ends up leading to a lot of wasted work, but it's also a massive drive to innovate.

I believe otherwise, instead of fighting against new platforms by exposing restrictive standards, I want to embrace the different platforms by allowing developers to write what they app should do instead of how. If your apps want to draw pixels, they should just draw pixel. How the windows must open is completely irrelevant and the OS/user should be able to figure that out.

TheMode··on Fairphone 4 is coming to the US
> 2 hours is pushing it for pretty much anything.

bf could, lambda calculus as well, or potentially cellular automata. Also implementing IO is still important, as the apps depend on it. What I am saying in my case is that the hardware manufacturer should expose the basic hardware features as functions (so immutable, there is nothing to update here) and you would then be able to implement whatever your app is written in and reuse the primitive hardware functions.

> Ok so in order to make it fast we're not going to use strings,

Why would strings be slower? These would be part of the static binary. These calls being hint and not necessarily standardized is an important part. Standards are the same as environments, they always evolve.

> Applications want to know whether the system has support for a syscall, so we return an error if they don't exist. This is how Linux syscalls work.

You may want to do something with the call even if the guaranteed syscall isn't there. I am meaning the string as a hint, not as an api

> but whoops switch gestures were added in version 6 but this customer is using version 5. The absense of this syscall is fundamentally incompatible with my game, so I guess I'll put "requires version 6" on the website.

Switch gestures cannot be linked to a software version. It is hardware. As long as you can listen to touch input and optionally multi-touch you have physical support for all gestures. It being limited to version 6 or above is an arbitrary limitation, and indeed will cause the software to delimit what's supported. Whereas if your software only exposed a "has there been a switch gesture" visible to the users, they could decide that actually a button press should be considered as a switch, or they could use a separate library that convert touch inputs into a yes/no switch, or perhaps that their devices already come with some hardware accelerated switch gesture control that they can plug into it.

> As long as new things are being invented/written you can never have full backwards compatibility.

The problem is that when making software you are forced to reinvent the whole chain. I simply cannot make a calculator app with the guarantee that it will be able to run decades from now, I need to include the binary that open the window, get the OpenGL context, write the boilerplate so I can draw individual pixels, etc.

But what if my compiled program only contained basic flow logic and an input and output? Essentially a function. And when users run it, how that function behaves with the environment is device specific and as the calculator developer I couldn't care any less.

Obviously, if you make a VR game it will be pretty hard to emulate it on a gameboy, but there is nothing justifying that I cannot make my own discord port on an arduino (except speed, but this is a convenience)

> Just to be thorough this is fully possible right now - intercepting unknown syscalls and showing a prompt - but there's simply way too many and their behavior too complex for it to be of any use. Especially non-experts would have exactly zero chance.

I agree, that's because we do not assign proper meaning to these syscalls. Users wouldnt know what to do, I am not saying that we need to expose raw file descriptors or make the user handle async i/o. I however believe that we should make this option more viable, for example by allowing applications to transform whatever they want into an environment request so they become more straightforward. And the less syscall you do, the easier it will be for users to make their ports.

TheMode··on Fairphone 4 is coming to the US
> The vast complexity of modern software and hardware comes from the ever more complex environment they interact with.

100% agree, hence my suggestion to completely remove environment access from the instruction set. No syscall.

> It runs on ARM - an easily interpretable instruction set.

I give you 2 hours to write a brand new fully spec compliant ARMv8 interpreter, 3 hours to write an android VM to run on my windows laptop.

> Discord not running on older phones is entirely due to them depending on newer operating system APIs. It's not the instructions that changed, the environment did.

The instructions allowed them to depend on platform specific features, which is what I want to prevent.

Instead of calling some random android `external_is_switch_gesture` syscall the app should request a boolean/bit given a string "Has there been a switch gesture?" and expect the result of that syscall to be what they asked for.

Then, it would be up to the OS to decide how to interpret that request, maybe that the string is part of some standardized way to retrieve a gesture input in which way automate it, but if it is not you could simply prompt the user to chose what to give the application given a list of all the possible environment access.

TheMode··on Fairphone 4 is coming to the US
This is because you are still assuming software being developed the same way. Could you give me an example of potential risk that is absolutely impossible to solve no matter how we change the entire computing process (from users running the app, to the app developer, and to the os developers)

I am not suggesting anything that would increase development time, in fact it is the opposite. Having to explicitly support multiple platforms is hell for both developers AND users

TheMode··on Fairphone 4 is coming to the US
It is indeed not possible if we keep making software the same way. But it doesn't have to be.
TheMode··on Fairphone 4 is coming to the US
I fully understand your concerns, but still I believe that you aren't asking yourself the right question. Why do you need to port newer Android versions on older devices at all? It seems like the real problem to me.

Why do running newer software must depend on a newer operating system? Do you believe that everything that is part of the android codebase is necessary to run a chat app?

Part of the problem is that we seemingly gave up on trying to make software stable, and now we are wrongly putting the blame on hardware manufacturers for not wanting to spend their whole life supporting it

TheMode··on Fairphone 4 is coming to the US
> Every single useful device on earth that is connected to the internet needs to be updated regularly.

Could you explain me why?

I am not saying that developer should simply make software bug free, I know that this is impossible, I however believe that you could heavily reduce friction point by simply having less code, and reducing the software reliance on the hardware/OS

Monolithic projects like Android prevents it from happening, you have to depend on that huge codebase to run any software, and as every software must follow Android update path, you need to continuously update your hardware

TheMode··on Fairphone 4 is coming to the US
I believe that the root problems are programs having direct access to environment, being compiled down to hardware instructions, and these instructions not being easily interpretable (without having access to an already made interpreter)

These problems cause software to depend on highly specific platforms [1] that prevent any hardware from being standalone-ly sustainable.

* Environment access creates the opportunity for security risks, and dependencies that cannot be fulfilled on different platforms (e.g. asking for touch input on a desktop device)

* Being compiled to hardware specific instructions obviously prevent the same software to run on different hardware, rendering them obsolete sooner than otherwise necessary

* These instructions being hard to implement prevent individual users from creating their own interpreter, therefore creating the need for a centralized entity to provide it.

In other word, my suggestion would be to create a new target platform that compile down to a very understandable instruction set ("understandable" referring to the amount of time it would take for a new developer to fully implement it) and leave environment access out of the spec (How the software convert an input request to your mouse position remains platform specific).

This way, all software becomes permanently available without depending on any external entity, but new devices would still be free to improve the process

[1] - https://support.discord.com/hc/en-us/articles/213491697-What...

TheMode··on Fairphone 4 is coming to the US
I will likely have some software compatibility/security issue by using a 10y old phone. Theoretically I do not have to, but software is designed with constant internal requirement changes.
← PreviousPage 3 of 6Next →