Hacker Newsnew | past | comments | ask | show | jobs | submit | El_RIDO's commentslogin

I can recommend the WP Super Cache plugin[0] - it can generate pre-gzipped static sites and then you can setup your webserver[1] to prefer those, or non-compressed static files and only when not in cache actually bother passing down the request into PHP.

Gives me an 97 and 88 respectively[2] on that pagespeed tool.

[0] https://wordpress.org/plugins/wp-super-cache/

[1] https://github.com/simonrupf/docker-php-wp/blob/master/etc/n...

[2] https://pagespeed.web.dev/analysis/https-bobcat-dssr-ch/0ziq... / https://pagespeed.web.dev/analysis/https-simon-rupf-net/auk5...


> What is hard, is dual stack networking. Dual stack networking absolutely sucks, [...]

Clearly you have gotten some unfortunate hands on experience with those edge cases. In my uses the dual-stacking of IPv4 & IPv6 has been a big benefit in that I have to worry a lot less about locking myself out of systems, as I can always reconnect and correct configuration mistakes on the second stack.

Comparing the IPv4+IPv6 dual-stack story to the one from the 90s of IPv4 with IPX/SPX (Novell Netware) and/or NetBIOS (Microsoft Windows), the current state is a lot more smooth and robust.

I've so far only run into 3 issues over the years (2013 till now). A local train operator running IPv6 on routers that didn't properly support non-default MTU sizes (fragmented packages getting dropped) and Microsoft where Github is still IPv4-only and Teams recently developed an IPv6-only failure on a single API endpoint.

Should we ever turn off IPv4 during my working life-time, I hope we have at that point introduced a successor to IPv6, so I can keep using a dual- or triple-stack solution, using different network protocols for robustness.


Sigh I work at a company that not long ago added support for applications written to use SUPRA to their portfolio. It's not dead yet, there are companies out there still running it in production and willing to spend money to replace it, while keeping their business logic.


Where I work we still use Software AG's Natural for mainframe programming. It's not really a bad language for what it is (very much focused on database programming). The main limitation is that they never created or provided great mechanisms for something like a standard library, so we do a lot in Python now, and occasionally other languages.

From my perspective, the standard libraries of languages like Python and Java, as well as effective package managers such as pip or npm or cargo, have raised the bar so high that it is difficult for old, specialist languages to compete in most cases. Although the security problems of the package managers give me some pause.


And to add one more option to the comments (beyond [frontend] + php-fpm):

Nginx Unit https://unit.nginx.org/ - like Apache + mod_php runs as a single service, handles the multiprocessing of php (and other languages), static files, reverse proxy and even lets you configure both itself and php via a single configuration (either as a file or dynamically at runtime, via a socket): https://unit.nginx.org/configuration/#php

Here is an IRL config example: https://github.com/PrivateBin/docker-unit-alpine/blob/master...

The resulting container image can be pretty small: https://hub.docker.com/r/privatebin/unit-alpine


The B-29 was the first bomber with a pressure cabin. This allowed it operate at a high altitude for a longer time than other bombers of the era, staying out of flak range, etc. I imagine that was part of the reason for the high development cost.

Prior to that bomber crews operated using electrically heated flight suites, gloves and used oxygen masks, when reaching those altitudes.

http://www.303rdbg.com/uniforms-gear3.html https://en.wikipedia.org/wiki/Boeing_B-29_Superfortress#Pres...


Correct, Spamassassin will not classify emails be default. But it does include a Bayesian classifier and tooling that can be used to train it with curated ham and spam emails. It does require extra steps to set this up and feed it selected maildirs (for example, exclude inbox, spam and trash for training ham).

https://spamassassin.apache.org/full/3.0.x/dist/doc/sa-learn... https://cwiki.apache.org/confluence/display/spamassassin/Bay...


It's the same censorship-model as with mail servers: You can use a big shared hoster and the rules of that hosts country and their policies apply. You can run your own and you will have to deal with any local legal requirements and get to set (but also have to enforce) your own policies. In reality, (self-)censorship is the smallest of your problems, spam and abuse of your service is what you'll be mostly dealing with.

For a small instance with only a handful of friend and family accounts that effort (spam, abuse, legal stuff) will take less than 1h per month. On a large instance that can become a full persons job.

Source: I'm running my own fediverse instance since 2011 (using Friendica, predates Mastodon) - as well as my own mail server.


This was a common criticism in my circles (friends, work colleagues, acquaintances in tech meetups) in the mid-to-late 00s with Facebook: They called all contacts "friends" and in German that really sounded off to many of us. You wouldn't be "friends" with your relatives or boss or colleague at work, for example, those are entirely different kind of relationships. We assumed that this was a badly translated Americanism.

Google Plus and it's "circles" of contacts was a better design in that regard.


This tool does have it's appeals to folks that run web applications behind web servers in containers.

For example, in this project we use nginx + php-fpm to serve some PHP app:

https://github.com/PrivateBin/docker-nginx-fpm-alpine

It uses s6 to handle nginx + php-fpm services, meaning we have to maintain configuration for s6 services (written in execline), nginx webserver configuration files (nginx proprietary format) and php-fpm (INI format).

I've created a fork that replaces that stack with nginx unit:

https://github.com/PrivateBin/docker-unit-alpine

No need for a service manager and both webserver and php configuration are in one file[1]. What is not well documented IMHO is that you don't have to load the config at runtime - if you place the JSON file in the (compile time changeable) /var/lib/unit directory it will be loaded on startup, similar to a traditional /etc config file. But it also will get updated at runtime, if configuration is uploaded on the config socket, making it persist service restarts, hence /var is more appropriate than /etc.

[1] https://github.com/PrivateBin/docker-unit-alpine/blob/master...


> What is not well documented IMHO is that you don't have to load the config at runtime - if you place the JSON file in the (compile time changeable) /var/lib/unit directory it will be loaded on startup, similar to a traditional /etc config file. But it also will get updated at runtime, if configuration is uploaded on the config socket, making it persist service restarts, hence /var is more appropriate than /etc.

Thank you very much for this example, and calling out the config file option.

Do you find that you get any use from the config api in your setup (vs pushing a new container)?

I imagine it might be more useful if nginx unit acts like a k8s ingress like setup?

As for:

> both webserver and php configuration are in one file[1].

That's just the line in the Docker file:

  COPY --chown=${UID}:${GID} conf.json /var/lib/unit/
I found the actual file more illuminating:

https://github.com/PrivateBin/docker-unit-alpine/blob/master...



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

Search: