eigengrau
eigengrau on Hacker News
How (if you saw that need) did you address permissions concerns, e.g., around any Git users being able to force drop all files from a backend?
Back (long time ago) when I was looking into this, there was no KISS, out-of-the-box way to manage the Git Annex operations a Git user would be allowed to perform. Gitolite (or whatever Git platform of choice) can address access control concerns for regular Git pushes, but there is no way to define policies on Git Annex operations (configuration, storage management).
Might not be super hard to create a Gitolite plugin to address these, but ultimately for my use-case it wasn’t worth the effort (I didn’t really need shared Git Annex repos). Do you tackle these concerns somehow? I guess if people don’t interact with your repositories via Git/SSH but only through some custom UI, you might deal with it there.
It’s been a couple of years since I’ve last used it, but if you want container orchestration with a relatively small footprint, maybe Hashicorp Nomad (perhaps in conjunction with Consul and Traefik) is still an option. These were all single binary tools. I did not personally run them on 2G mem VPSes, but it might still be worthwhile for you to take a look.
It looks like Nomad has a driver to run software via isolated fork/exec, as well, in addition to Docker containers.
> in the current century fonts handle that
Except that they can’t, because (due to the limitations of ASCII), U+0027 had an overloaded meaning, seeing that the character had to cover both opening and closing quotes (as well as being used as a prime tick). Which is why pretty much every font I’ve seen has a straight glyph at U+0027, whereas the glyph at U+2019 is the one you’d usually want for an apostrophe. You can also observe that word processors follow the Unicode standard in this regard. E.g., after typing “they're” into Libre Office, once you copy-paste it, you’ll see that the ASCII single quote has turned into U+2019.
> When text is set, U+2019 right single quotation mark is preferred as apostrophe, but only U+0027 is present on most keyboards. Software commonly offers a facility for automatically converting the U+0027 apostrophe to a contextually selected curly quotation glyph.
https://www.unicode.org/versions/Unicode14.0.0/ch06.pdf
Typographically, U+2019 is the appropriate glyph for quotation marks in English and in some other western languages.
An interesting related project is the AdNW (
http://www.adnw.de/) layout, which was created by defining metrics based on Dvorak’s ideas and running a genetic optimization algorithm on a corpus of German (50%) and English (50%) text.
The symbol layers were copied from the Neo2 layout, which afaik were arranged manually.
> You can't print anything because the language is lazy. Forcing any values to print them can and will result in random operations happening on your store. You can never know which values are safe to inspect. This kills debugging.
I don’t quite follow the conclusion. Forcing values will not result in random operations on the store. Forcing values can only ever create store derivations, which is an internal representation of all derivations that were encountered while evaluating some expression. I won’t ever mutate existing data or remove anything from the store, nor will it actually build anything or fetch cached packages, so forcing values should be unproblematic. Store derivations can later be garbage collected.
Since Nix packages are distribution-independent, once you have it packaged with Nix, you could theoretically skip packaging for Ubuntu etc., but of course that may raise the bar of entry for your users.
This is completely dependent on your location and the size of the company. E.g., when I recently looked into the stats for Germany, the average annual income for a developer in a small to medium-sized company is ~48k€ (~55k$), which is a long way from the 80k figure.
Self-signed will work just as well, since no MTA talking to you requires the cert to be trusted (maybe DANE is required now in that case, but I was also using self-signed before I set up DANE and peers would all use opportunistic encryption.
letsencrypt is a bit cumbersome if you want to support DANE, at least if you don’t run your own DNS or have an API to your provider’s DNS.
German users might also be interested in the AdNW layout (
http://www.adnw.de/). They started out with Neo’s excellent and logical arrangement of the non-alphabetical layers, but replaced the alphabetic layers with a layout created by running an optimization algorithm on a text corpus of 50% English and 50% German text (whereas in Neo the key arrangement was created manually, based on intuition). The metrics they used were largely inspired by Dvorak’s research.
> hard not to wind up on spam lists almost impossible to be removed from
I’ve been running my own infrastructure for years now and know various people that do this also. Not once have I heard about anyone winding up on a blacklist. The only way I could imagine that happening is either a new server inheriting a legacy IP with bad reputation, or possibly running your server inside a home ISP network, which are frequently rejected by MTAs. Is there any other way in your opinion?
It might be prudent to have GnuPG return an error exit code instead of just printing a warning on stderr. Currently, it seems that clients (at least when using the shell interface) are supposed to parse the error stream. And even when they do (which many probably don’t), it’s not necessarily obvious that the presence of warnings indicates to the client that the data should not be used.
In general you don’t need GDPR for that. It suffices to be a copyright holder to the content made accessible on the Wayback Machine.
Interesting! So in that case one could defend the need for escaped whitespace. Still leaves automatic variables, I guess.
My question was aimed at ops generic statement. As for Make, it originally wasn’t clear to me where the issue was supposed to lie. Lines in rule bodies are handed off to the shell, and that whitespace in rule dependencies need escaping didn’t seem surprising since it’s a list (though it’s probably a bug that whitespace in target names must be escaped, since it’s just one token that ends in a colon). But I see now that the expansion of list-valued automatic variables is probably a real Make-endemic issue.
Additionally, not every shell expands variables the way Bourne-based shells do.
I don’t quite see how Unix tools have trouble with spaces in filenames. Could you detail some cases where the space handling is not due to the shell, as opposed to the program being invoked?
> Even if you used ebtables to filter out containers talking to each others' MAC addresses, wouldn't they be able to send broadcast or multicast packets to communicate with each other?
ebtables supports «broadcast» as a destination to match ethernet frames on.
ebtables … -d broadcast
which is equivalent to
ebtables … -d ff:ff:ff:ff:ff:ff/ff:ff:ff:ff:ff:ff
Also, it should be noted that, since it just proxies a single user notebook server, JupyterHub doesn’t support any interaction, sharing, or other collaboration between users (though one could implement some of that by mounting an NFS share inside notebook containers). Still, I’ve found it quite useful for teaching. IIRC, there’s also a project underway to bring collaboration features to Jupyterhub.
I’m confused… The article led me to recheck whether I’m loading the newest Intel ucode update during early boot, and it turns out I am, but the latest ucode revision for my Ivybridge machine is from 2015. Didn’t Intel push microcode updates for all affected systems yet, in preparation for more spectre-related mitigations?
Also, the prior probability of any given artist name being a moniker of Danny Wolfers (Legowelt) is much higher than the average artist. grep says Discogs currently lists 35 aliases for him. Talented and industrious guy.
How does this compare to Brython (
http://brython.info/), apart from missing the Python 3 support? Are there any custom bindings to the browser API?
IIRC, another angle that has been proposed is to switch between the primary and secondary terminal buffers. This way, one could create a file that looks harmless when piped to the terminal but contains a hidden, malicious payload. The victim would, after manual inspection, finally pipe the file to a shell, where the payload would do something evil.
> You can trick isatty, but only if you're very, very set on doing so. It requires allocating a psuedo-TTY, and attaching it.
You can also LD_PRELOAD an isatty shim that returns true. This is occasionally useful when piping the output of tools which disable ANSI colorization with no switch to re-enable that.
> In germany, what you call cheating isnt even considered cheating.
I can also attest that this isn’t universally the case. Our faculty’s introductory programming classes explicitly forbade this, and we went so far to even run automated anti-plagiarism heuristics over the solutions handed in.
I’m not sure how strongly I feel about the policy (or whether it’s still current). There definitely were tendencies in such classes that students who already came in with prior programming experience to be eager to »help out« more inexperienced students by sending them their solutions in verbatim, which led to other students copying at least certain program constructs without grokking them and without having exercised more general problem solving skills associated with the task.
I’ve been wanting a macropad for a while, but to be a really useful complement to the keyboard this would need a display. There appear to exist some OLED solutions, but iirc they were very pricey and probably didn’t support Linux very well.
Unfortunately nobody makes what might be a cheap display-enabled solution, namely a macropad with a regular, large LCD character display matrix, with buttons arranged on the side to each line, like a quickdial.
This is probably not super hard to realize with Arduino (though I would be unsure which interface to use; possibly serial over USB? Then implement an evdev driver?). Getting it nicely looking and sturdy would be much harder, though. So if anyone is going to market something like this let me know. ;)