Hacker Newsnew | past | comments | ask | show | jobs | submit | puppet-master's commentslogin

original promise: Firefox for Android, like Chrome but with infinite extensions written by people just like you for people just like you

new promise: Firefox for Android, underinvestment in UX you'll definitely hate and 12 potential extensions exclusively approved by a committee of parasitic boomers too far gone to be competitive on the contemporary labour market.

Absolute garbage. However way this cut, one team or otherwise, they clearly didn't have the SLIGHTEST clue about the primary value prop of their main product for its users. Today's Mozilla is organizationally incompetent, and I genuinely worry (user for decades) that this time it truly is beyond rescue. That the situation on Android has persisted for almost a year already tells you all you need to know: Mozilla appears not to even possess the nervous system to respond to the obvious pain and misery of its users from that disastrous Android UI rewrite. They seem utterly deaf and dumb, almost like it were already a cadaver. Reminds me of Yahoo


Followed instructions for 21.04 (distro = "hirsute"), greeted with complaint about binder missing. Found some bug report on the web suggesting I must rebuild my kernel to enable binder. Noped out of there.

Looks like a nice effort though. Is this some problem specific to 21.04 kernel config?


I have seen an error like that with anbox before, but it was not on Ubuntu. I just had to mount the binderfs and it stopped complaining. Might be worth a try:

    mount -t binder binder /dev/binderfs
https://brauner.github.io/2019/01/09/android-binderfs.html


In Ubuntu kernels the Android modules are named "binder_linux" and "ashmem_linux" so:

  sudo modprobe binder_linux
  sudo modprobe ashmem_linux
Where $version is the kernel version, for -generic kernels they are in the package "linux-modules-extra-${version}-generic" and for -lowlatency "linux-modules-${version}-lowlatency". On -generic the modules-extra may sometimes not be installed by default.


Also if you have secureboot on,you won't be able to load ashmem because it's not signed by default by ubuntu. That is without signing the module yourself. I have waydroid running in 21.04 without any issues.


I'd much rather they relicensed early if they can, to set expectations and to ensure talented people actually get to sustain its development, rather than parasitic jobsworth FAANG types who will inevitably drive development at Amazon. Free software in this context is very dead, let's not pretend network and channel effects of AWS were ever envisaged in the 1980s when most "contemporary" free software licensed were designed.


You can do reasonable 1080p at 3Mbit with h.264, if these were live streams you could fit around 130k sessions on the machine. But this workload is prerecorded bulk data, I imagine the traffic is considerably spikier than in the live streaming case, perhaps reducing the max sessions (without performance loss) by 2-3x.


Reproducing ancient defects from the CGI spec in the process, such as the inability to represent duplicate header names.


RFC2616 says this:

"It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma."

So, if the implementation folds the multiple headers into one with the various values as a comma separated list, it should all be compliant. I don't know rust well enough to tell if this one is compliant...it reads like it is not (looks like last header wins): https://github.com/deislabs/wagi/blob/main/src/http_util.rs#...

Edit: It seems RFC7230 keeps most of that language, but makes one exception for Set-Cookie, but that's outbound in this context so it doesn't apply.


Wonder why they wouldn't pass in the whole request on stdin? That would also mean that instances could be pre-started in anticipation of a request and not just when one is already waiting.


On passing environment variables instead of the full request, probably to make it more accessible to get started with the existing popular languages (C, Perl, Tcl, Shell Scripts, mostly) without having to write all the request parsing. There was also less "stuff" in the request than today. No cookies, no file uploads, and so on. They also passed things in that weren't in the request itself, like REMOTE_ADDR, REMOTE_HOST, SERVER_PORT, PATH_INFO and so on. So it seemed natural to just put everything in environment variables, other than the $CONTENT_LENGTH bytes that followed the header.

As for the fork() per request, I believe mostly because they were starting with requirements where avoiding fork() wasn't important. Conserving memory was probably more important, given the timeframe. CGI programs that leaked memory would have been common if they were daemons. For most web servers, there also probably weren't that many requests.

It was also a common existing pattern. Many of the services on unix boxes worked the same way...one daemon (inetd) would start instances of daemons per request and they would serve only one request.

That said, NSAPI appeared pretty quickly after CGI, then FastCGI, etc. Still pushing environment variables for headers, but stopping the request->fork->exit pattern and allowing persistent daemons.


To allow processing of large request and response bodies. Imagine a 1Gb PUT or GET. You don’t want to spend 1Gb RAM for handling those. And you also don’t want to wait multiple minutes to hours to have the body buffered and can actually present it to application logic.


Not sure I follow. A reasonable framework would stream both the incoming request as well as the response. If the WASM module wants to read the whole thing into memory, it's free to do so, but you could have it process the request piecemeal. It's just reading the request from a file descriptor and writing the response to another one. Not that different when those fds are actually sockets.


Oh sorry. I misread it and thought you are asking why the request isn’t passed in complete form as an environment variable too. I guess you are asking why the request headers are not transferred via stdin too? My guess it’s just because that’s how CGI works. It prevents from having apps do the parsing work. Plus what could be passed wouldn’t be the original request anyway. If the Webserver handles http2 or http3 headers would always need to be repacked into a format that the script understands.


Is this open source?


Pulling their ads briefly from YouTube a few years back certainly achieved some good


Parent comment likely refers to kernel CPU time accounted for in the generating process. If an application passes an audio sample to PulseAudio, it is charged for (at most) a memory copy and one or two syscalls, while PulseAudio is charged for the time spent in the kernel driver.

Pulseaudio burning CPU during silence is usually due to an application holding open a channel that is either really playing silence or is keeping the Pulseaudio machinery awake. You could blame the apps, but IMHO that is definitely a Pulseaudio problem


Unhindered access to the Internet for children means unlimited access by advertisers, politicians and advocacy groups to push literally whatever they want into the child's head, regardless of what that might be. For example, should it be possible for an organization like Prostasia ( https://4w.pub/prostasia-normalize-pedophilia/ ) to have unmonitored and unlimited conversations with a child through its media campaigns?

The Internet as some amoral ocean of voluntarily accessed objective knowledge is such an unbelievably naive old meme by now that it is extremely disappointing to still see it crop up on HN. Humans have sorely limited attention bandwidth, and we live in a world where every bad actor (including even the Taliban https://old.reddit.com/r/MalangKhostay/ ) has learned how to game attention to push every manner of ideological garbage down our throats in tiny increments. As an adult it's almost impossible to avoid falling prey to influencing tactics on a daily basis, why would we expect children to be more adept at navigating a global and almost completely unregulated media machine?


Flat design is basically a form of elitism. In order to understand how and why the computer works, you must subscribe to a cathedral of thought that exists at this stage more or less to protect itself and celebrate its own brilliance, because any real invention in the UI space had already basically topped out by the late 90s.

From this perspective, we have flat UI for essentially the same reason we're starting to see the formation of tech unions. It has been a long time since a lot of our industry has done anything new or even productive, and much of what we do is entirely self-serving, creating a kind of fragility that ultimately threatens the workforce. Endless UI churn producing worse and worse designs isn't a problem, it's a symptom that is impossible to ignore.


While I'm mostly there with you, I feel like it's a bit too strong to call it elitism. It does assume the user has background knowledge and quickness to recognize the difference between an icon, label, and clickable button and some part of these decisions come from some insularity amongst ux designers may be, so it might stem from some out-of-touch-ness but it's probably more unintentional than being elitist.


User Interface expertise was lost way back 20 years ago. There has been a constant onslought by aestheticians and minimalists on the very definition of Design. Design used to be less creative and more objective. It was about addressing the requirements of a product, how best it can serve the user and empathizing with the operator. Now, it means how best to market to the user, brainwash them with glitter of aesthetics, numb them with animations, and tell them to open up the wallet. Make that sale, functionalism be damned.

So here we are. Witnessing complete destruction of the field of Design by commercial optimization and shareholder maximization syndrome. Thrift baby thrift.


Try https://www.gnome-look.org/p/1372444 the good old Mist from gtk2 resurrected for modern gtk3, and qt4/5 apps take the gtk-style. Problem solved. (For now)


Didn't know XView, Athena widgets, Win3.1, System 6, and more were elitist.


I don’t necessarily agree with the post you’re responding to, but the intent seems to be to criticize the lack of visual distinctness between elements, not the lack of pseudo-3D-style rendering.


Windows 3.1 UI was not flat design.

And even things like System6 weren't that _flat_. There were subtleties on their UI that gave a little depth to some stuff. But one could argue the _flat_ in their UI was some sort of answer to the limitations of their time.


Have you tried

[1] https://www.gnome-look.org/p/1372444 ?

I'm feeling very comfortable with it in GTK2/3 and QT4/5 apps.

Fits perfectly with the built-in theme metal2 from IceWM.

Use this with a filemanager like

[2] https://gitlab.com/antix-contribs/zzzfm

for an optional desktop, and give a shit about what Gnome does.


Elitism... fashion, style, trends...


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: