3,067 karma · joined September 17, 2012
It's great that browsers can achieve more functionality previously exclusive to native applications, but anytime a code editor written in JavaScript to be run in a browser is announced, I wonder one thing: why don't we try to come up with a client/server protocol that would allow you to use your local editor, which is already fully customized to your needs? Is the idea that the files being edited are remote and therefore the only thing that would make sense is improving extensions like "It' All Text!" or wasavi?
It ought to be enough if one can trigger opening a buffer in a local editor, which accesses a local webserver provided by your browser, backed by the textarea, and having a means of updating the textarea on save via a POST issued from, say, Emacs to Firefox's textarea-httpd.
Still, despite its flaws, C is the common layer we have to expose an API that you want to be consumed everywhere. That, or a message passing interface with a client/server architecture. A client/server design may lead to zombie servers, while a tightly coupled C API might crash your application, though you can isolate the C API consumer in a supervised and automatically restarted server you talk to with messages, so that's the more flexible API to have.
The Rust rewrite of parts of Mercurial by Facebook is a no-brainer and given the possibility of GC-less C API in Rust, I wouldn't be surprised if a built-in-Rust C API for Mercurial were to follow. I don't like Rust when compared to high-level languages, but it's a viable C replacement with compile-time exclusion of certain bug classes, so I can get behind such a project. That said, the soundness bugs reported on github are worrisome, so I wouldn't trust Rust's checker to be correct or exhaustive, just yet. It's still a step up from C, that's undeniable.
tldr: Git is still faster overall, but those who want to extend a dvcs choose Mercurial for its API that exposes the data structures in a stable manner, albeit in Python, which limits use cases.
If you completely disassemble your Detroit-branded car, you will be surprised how many countries supplied parts for it, from all across the world, including Europe, Japan, China, etc.
This isn't advertised as much, but for some components, Japan is the world leader due to quality, despite the situation of their overall economy. Just like Germany supplies many components or instruments you won't read about on news sites. Fifty percent of the world's surgical equipment is manufactured in Tuttlingen (Germany). Over 400 medical supply companies are situated there. It's like the Shenzhen of medical tools in terms of concentration and market penetration. It's even more interesting in the context of what you wrote, if you look at where the rest of the surgical supplies come from.
Therefore, given that you trust a car which consists of many components built outside the US, and your surgeon probably operates on you with tools made in Germany, everyone is already trusting the global economy and "evil countries" with their lives.
Now, to answer your question about email providers, I'm with StavrosK here that using a Russian or Chinese service is safer if you're a European or US resident because of data access laws. The US govt is still fighting Microsoft to provide access under US laws to data stored in European data centers, now in revision after initial defeat. You should still encrypt or skip email for sensitive communication, but the ease with which the government that can imprison you can access your emails is proportionally more difficult the farther away from your region and its close allies you get.
EDIT: My impression is that the global economy began in earnest with the great European resource grab (or robbery if you like) via sea shipping across the globe, and it only got more global with time and stayed mostly on sea.
Fair point, though instead of worrying about that, I think the real solution is to have test-only keys and also make sure logs can be shared without fear of leaking data.
It's a non-trivial problem to solve, especially with caching of artifacts involved. You'd probably want to run a sandbox inside a vm and secure the vm itself first, while having only ephemeral storage attached. Barring a container escape via just read/write/execve allowed inside the sandbox, which could probably also used to escape the surrounding vm, there isn't much you can do if you support running random stuff in a CI job.
Actually, maybe CI needs to be limited to tools that can run on something like ZeroVM.
Limiting persistent state and spinning up machines (vm or bare metal) for each job, while having no permanently active job runners, sounds like another defense to consider.
That said, I very much doubt any of the CI services goes to such great lengths, given the limitations involved.
The important points are that such a distro will quickly improve the situation of clang and libc++ compatibility across the board and exercise the alternative toolchain a lot more. In fact, there isn't much incompatible code out there, and it's been fixed mostly due to efforts of Debian, FreeBSD and of course Apple and Bitrig and Gentoo. FreeBSD is the leading force behind making lld a viable alternative to binutils ld and so far ThinLTO (which works with binutils, to be clear) is exclusive to llvm, so there's that.
EDIT: Next, I predict a linux distro will, after having switched to musl, also support llvm/compiler-rt/libunwind/libc++ as base toolchain instead of gcc/libgcc/libstdc++
There are some features which are so far exclusive to FreeBSD but go under the radar of the wider community of developers. In addition to CloudABI, Capsicum is another one, which, while not perfect, seems largely ignored/unused/reinvented outside FreeBSD. The LLVM-based base system is another one, which is partially matched by Bitrig. FreeBSD needs to market their features better, like pledge(2), libressl or systemd or docker are doing it.
https://outflux.net/blog/archives/2016/09/26/security-things...
https://outflux.net/blog/archives/2016/09/27/security-things...
https://outflux.net/blog/archives/2016/09/28/security-things...
https://outflux.net/blog/archives/2016/09/30/security-things...
https://outflux.net/blog/archives/2016/10/03/security-things...
https://outflux.net/blog/archives/2016/10/04/security-things...
And naturally some stuff is exclusive to linux upstream, though grsec will benefit from those automatically if they deem it good enough.
Is this a unique feature or how is this handled on illumos or Solaris?
Agreed, but I hope that systemd starts focusing on stability and fixing the regressions they've introduced compared to sysvinit. systemd machines are the only instances of Linux since 1995 where I've had intermittent random hangups during startup and sometimes shutdown. I never thought about startup and shutdown before systemd. It just worked, and if there was a problem, it was reproduceable and a real error (usually configuration), not systemd random fault. I don't use CentOS, maybe their systemd integration is actually reliable.
SMF or Nosh