This is not true. She does discuss how some countries and regions of the world use the Internet less, or not at all, and thus Transformer/BERT are training on the linguistic habits of the most affluent of the world.
It was still an extremely scattergun approach. I'm moderately familiar with NLP but nothing in that paper really had traction overall, it was more of a list of mildly bad things than anything huge.
The last time I looked at browser benchmarks was in 2016 when Google released benchmarks to brag about its performance over Firefox and Edge. It appears Webkit has released JetStream2 to benchmark JavaScript, WebAssembly and web workers, among other things. But I can't find data showing Mozilla Firefox is ~20% slower than Chrome/Edge today.
Using Firefox to evaluate Rust performance is probably not a good idea since only parts of it are written in Rust today.
But it's the first time I hear someone say that Rust is supposedly fundamentally slower than C++. I don't believe this to be a statement that can be substantiated, seeing that some of the fastest programs out there (ripgrep and hyper to name just two) are written in Rust.
But they use llvm instead of gcc for c++, and gcc is in average 20% faster than clang.
Therefore, rust is 30% slower, at least on heavily optimised programs.
And hyper is not the fastest http server, but the actix one is one of the fastest yes.
> Facts: On average rust is 10% slower on the banchmarkgame
That does not show it's 10% slower on average; it shows that C++ is 0.9917938291x as fast as Rust. They both have some where they win by 30%, most are closer, Rust is just faster on average.
> But they use llvm instead of gcc for c++,
C++ g++
g++ (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
> What kind-of time measurements? What kind-of average?
I interpreted the parent to mean a simple average, so I did exactly that: calculated the percentage for each, and averaged them. In the colloquial term, "mean".
IMO the jury is still out. I am pretty sure that C++ veterans that can cleverly utilise any and all performance tricks (minus resorting to an assembly language) and can thus beat any other language.
But I -- like yourself -- am much more interested in the applicability of a language in everyday tools, plus in getting the most performance with the least amount of dark magic involved.
BTW, `ripgrep` definitely made me work better and faster.
I can tell you that developer salaries are growing. I have tried telling my senior management that the average senior developer salary in Boston will go from 120k in 2014 to 140k by 2017. I don't think that 16% can be called "exploding", since it's just 5% y-o-y, but it's definitely growing faster than the rest of the economy, and one of the few jobs where "real income" is growing.
Finally, my observation is that the biotech boom in Boston has created unique housing pressure in Boston, particular South Boston, Cambridge and the North End (East Boston is the only affordable place). So many biotech IPOs in the area have created newfound millionaires over night, and helped support a housing boom in the area. Combine this with DraftKings, Wayfair, Buildium, Amazon acquiring Kiva Systems, Samsung acquiring LoopPay, and other major tech companies coming into the area over the last 5 years, and you suddenly have markets where there is huge competition for labor but really expensive housing. This necessarily entails salary hikes or relocation. Relocation requires the board to negotiate with other states to relocate talent, which is always treacheous for high end white collar jobs.
If you want metrics to validate your assumptions, I recommend using CareerBuilder rather than these newer places like Hired.com. CareerBuilder has great analytics tools which show you where your salary offerings rank competitively.
Also, I can say that I don't think our problem is really salary, so much as the fact that so many developers lack adequate training in _engineering_, which entails solving real problems related to total cost of ownership, stability/uptime, throughput, etc. If you work for a _product company_, it is very hard finding these kinds of engineers, for two reasons: (1) they tend to become specialists or architects, but your replacement reqs are generalist roles like full-stack developers (2) 60% of all developers are contractors, and never acquire sufficient depth to solve real hard engineering problems.
End note: I work for erecruit, enterprise staffing software. I have tons of data about the market.
Yes. Hercules is a software implementation of z/Architecture, and so it is capable of running z/OS, z/VM, and z/VSE. Hercules also implements ESA/390 (including SIE) and so it can run OS/390, VM/ESA, and VSE/ESA, as well as older versions of these operating systems such as MVS/ESA, MVS/XA, MVS/SP, MVS/SE, VM/SP, VSE/SP, and DOS/VSE.
But (and this is a big but), these operating systems are all IBM Licensed Program Products, whose conditions of use generally restrict their usage to specific IBM machine serial numbers. So you cannot just copy these systems from work and run them on your PC, as this would almost certainly be a violation of your company's licensing agreement with IBM.
Also, why does your ampersand-forms code return string objects for error messages? Seems very limiting, and a pain in the butt to extend. If you have a getErrorMessage() method, why aren't you returning an ErrorMessage object, which clients can then extend with error types (hard/soft, failure/warning/information), etc. Technically, it should just be an Error object. This would then lend itself well to advanced composition, where I can write program interactions in terms of signals (raising Error objects and Success objects, etc.)
In this case, they're meant to be as simple as possible and the individual field-views can do whatever they prefer, as they're the ones rendering them. The parent form only gets a `valid: true` and a `value` from the child. Since these are error messages meant to be used directly as error messages to users, it didn't seem like a big gain to do anything more.
With regard to "pain in the butt to extend" you could use `extend` and just replace that one method that returns those string, right?
Forms really are a pain, we tried to create a simple contract between a form-view an it's child field views that was as flexible as possible so you could easily write more input types.
1. The problem of adding more input types, as well as expressing more functions over existing and additional (unbound) input types, is a classical computer science problem called The Expression Problem.
2. It's really not about 'parents'. It is about workflows. "Can you lift 50 lbs?" may be a dependency for another question.
3. It's simple dependency inversion to use a list of Success and Failure objects to determine the state of a Submit button. This way Submit.Enabled = !list.Any(i => i.Failure). Why should Submit be responsible for knowing the structure of a form, such as fragile parent-child relationships that have no basis in reality.
4. There are really two kinds of dependencies. Layout and workflow. It's too easy to commingle these. Spreadsheets, for example, contain no such visual dependency between cells, only flow.