297 karma · joined September 3, 2013
As for "you fundamentally can't make code released under Apache more restrictive down the road", isn't that exactly what LibreOffice (LGPLv3) people do when they import patches from Apache OpenOffice (ALv2)?
I'm not sure you can easily do that, unless all the contributors assign their copyright to you. You can trivially tighten the license (eg. by adding GPLv3-released code in a LGPL or even Apache codebase) but to loosen it you need approval from all the copyright holders (which is doable, but also a huge pain).
40 years from now, you will probably be able to invoke journalctl on the system and parse the dumped output as plain text. Or call gunzip on the compressed logs, $DEITY knows if we will be still using gzip by then. And if the system does not boot, you won't be able to connect the peripherals anywhere else... :)
That said, I'd be far more at ease writing a SQL query to extract analytics from logs than cooking up some regexes and doing complex stuff with awk.
And I find the --since/--until parameters to journalctl far easier than matching dates by regex. Or even the --boot parameter to restrict logs to a specific boot, which with would be probably doable with awk but definitely not as trivial.
I think that binary logs give you some compelling features, without taking away any: you can always just dump the logs on stdout and use grep as much as you want. :)
I guess nobody ever advocated putting stuff in a binary file with an undefined format. Databases, syslog-ng, elasticsearch and the systemd journal all have a defined format with plenty of tools to access the data in a more structured way (eg. treating dates as dates and matching on ranges).
I agree the issue at hand is not just binary vs. plain text, it's more "how much you want to structure your data".
The classic syslog format is very loosely defined, with every application defining its own dialect, each with its own way to separate fields and handle escaping. To fix that you could store the log data as JSON as many online services are doing. But once you have JSON, grep is no longer enough to properly handle the data even if it's still plain text. Now that you have both a quite verbose format on disk and the need for custom tools, why not store the log as binary encoded JSON (eg. something like JSONB in PostgreSQL)? Or make it even more efficient with an format optimized for the specific usage? Add some indexes and you get more or less what databases, ElasticSearch and the journal do.
Also keep in mind that most of the logs right now gets rotated and compressed with gzip, I'd doubt that the above binary formats are less resilient to errors than a gzip stream.
Indeed, but afaik there are methods to mitigate it (NSEC3) and more refined ones in development (NSEC4, NSEC5).
Reimplementing the whole LibreOffice in JS/CSS/HTML is totally another beast (see https://news.ycombinator.com/item?id=9263233 about WebODF).
Of course they have a strong vision, and popping up proposing something that has already been discussed to death and rejected won't be the most pleasing experience ever (it happens all the time here, I don't even want to imagine how tiresome it should feel for them).
Truth to be told, the systemd community has been reported as one of the most welcoming and productive environment in the FLOSS ecosystem.
Now that socket-activated services may see more widespread usage, hopefully someone interested will add to `netstat` the ability to tell who is listening on the socket and not only who opened it (all the data is available in /proc, which netstat is using already).
And in the meantime there's always `systemctl list-sockets`.
Nope, systemd only opens the socket and passes the fd to Apache.
> Or is it launching Apache on demand like some sort of advanced inetd?
Yes. Since it's already init's job to start services, it does not make any sense to have a different system to start socket-activated services.
Debian is committed to support sysvinit for the next release at least. I really doubt anyone in Debian will add dependencies on systemd "just because": if they do so they may have compelling reasons (eg. ConsoleKit is unmaintained and broken) and the correct reaction would be to fix the issue (eg. like the ConsoleKit2 people are trying to do) rather than forking Debian just to ignore the issue.
Not that forking Debian is bad and people should not do it for whatever irrational reason if they want: it's just that in this case there's no rational reason the same task couldn't have been carried over in Debian itself other than the fact that in your own fork you may accept lower quality contributions more easily.
The GPL was instrumental in forcing people to behave when nobody knew what to do, and it has been so successful that now people expect the behaviour enforced by it even when using more permissive licenses.
That said a gpg signature could be a good thing to add.
The data is more or less split like that:
224M usr 90M lib 67M var 11M boot 5,8M bin 3,3M sbin 2,9M etc
Of course with some customizations one can do a lot better, but this is just a straight Debian installation with documentation, locales, translations, manpages, etc.
With the old Pi it was not possible because the CPU only supported the ARMv6 instruction set, while mainstream distributions (Debian, Ubuntu, Fedora, etc.) all require ARMv7.
Fortunately the just released Pi 2 sports Cortex-A7 Cores which use the ARMv7 instruction set, which made this possible without any full rebuild.
Before jumping to conclusions, please verify what the code really does. C is a complex beast and what's "obvious" may not be such.
Relying on such niceties (as weird as it may seem, to a C programmer those are niceties) is what you gain if you are willing to trade them for portability (strndupa() is a GNU extension).