Not my experience with environmental modelers.
In particular, they have weaknesses with respect to (1) algorithms; and (2) how the implementation interacts with the hardware. Generally, it is coded in a "sloppy vector" style tailored for the limitations of 1980's vector supercomputers.
Case in point # 1: in the mid-90s, recognizing that emissions modeling is a linear operator problem instead of a data processing problem not only made the code much more elegant, it also reduced the run-time from 11 supercomputer-hours to 163 Sparc-2 seconds.
Case in point # 2: a little recoding to respect how memory access patterns interact with microprocessor based systems reduces the run-time of (my custom of) the WRF meteorology model by 40%
Case in point # 3: restructuring the microphysics and the vertical-mixing codes in WRF and in CMAQ from "sloppy vector" style to "vertical-column style" reduces the scratch-variable memory usage for a typical case from about 500 KB (larger than L2 caches) to about 4KB (much smaller than L1, on almost anything), the number of lines of code by 30%, and the execution time by a factor of 8.
The copyright-absolutist position is this:
My life is *my* performance before God and all mankind. As soon as it is recorded, that recording is a copyright work for which I own the copyright (unless there is a specific written contract to the contrary), according to US Code Title 17. And use of that work without my permission for commercial gain is felony copyright infringement.
Felony copyright infringement is exactly the behavior all these data-gatherers are doing.
FWIW.
This violates Federal Law, in particular the Magnussen-Moss Act (15 USC 2302(c)) requirement that says warrantors cannot require that only branded parts be used with the product in order to retain the warranty.
The smart-tv action being described is the production of derivative works for copyrighted works (all those TV shows...) without the permission of the copyright holder and for a profit. This is felony copyright infringement, plain and simple.
As is the insertion of ads into web pages by ISPs, FWIW.
Also not a server admin -- but admin for multiple workstations and portables.
You've reproduced my experience exactly, except that I'd say "in even the last couple of months" instead of "in the last couple of years."
And I've been running and administering Linux systems since the mid-Nineties (i.e., over twenty years).
Frankly, modern Fortran (F-90 or later) is a very well-structured programming language, at a higher level than (more structured than, and safer -- not as subject to buffer-overruns -- than) C: character-strings and multi-dimensional arrays are first class citizens in Fortran. And for what it's worth, I've written more than 15K lines of production Fortran in the last month...
Even worse: people who think they know everything but in fact know only bad ways of doing things, and who are too arrogant to take correction.
Example: EPA's CMAQ air quality model. The first requirement is that this model support regulatory application: in particular, it must maintain adequate chain of custody of its own data to stand up in court; silent data corruption is completely unacceptable. However, one of the primary developers NEVER checks the status of operations that may fail -- e.g., MPI communications. Thanks to the arrogancew of this developer, there are at least 453 failures to follow this standard. IMNHO, the model is completely untrustworthy.
And as the original systems architect for that model, that makes me VERY unhappy.
...and replace the standard (short) hinge and lock-striker screws with steel screws long enough to anchor through the door-frame into the framing behind it. 3.5-inch stainless steel screws are excellent for this. Combined with a good (steel?) door, no one is going to bash it down easily.
Apple says that DOJ misquotes the previous court opinion, and then gives what it claims is the correct quote. One of them is deliberately misquoting, and that should be cause for disbarment and further sanctions.
Having read significant chunks of Apple's response: Either Apple is lying to the court about legal precedents or DOJ is lying to the court about those precedents, and it should be a simple matter to determine which one is the liar. And lying to the court should be cause for disbarment and for further sanctions.
It is very well established in the civil engineering literature how to set the speed limit for safety. Outside of exceptional circumstances the best rule is to establish the speed limit at the 85th percentile of traffic speeds (i.e., so that 85% of the traffic is going less than that limit). Unfortunately, politicians think they know better than the established engineering. They think that their wishes trump the facts.
Those who set that speed limit are acting in reckless disregard for the safety of the public. As is that CS professor--and he should know better!
...and is customizable from the command line: I have a set of about three dozen color-customizations, one for each remote host I work on. My menu has "run an ssh remote session on this customization of RXVT" for each of those hosts. Can't do that with most of these new-fangled terminal emulators...
Part of the reason is this: while it's provable that you can use ifs and whiles to eliminate all gotos, the proof also demonstrates that code-length may grow exponentially in the number of gotos eliminated.
Not to mention that sizeof forces hlen+sizeof(struct frag_hdr) into size_t, which very probably is not unsigned int (it is not, on any of the systems I've owned for the last decade at least). Therefore overflow_usub is seriously bogus in and of itself.
Two points: experimental, and cognitive
Experimental:
the evidence shows that the minimum bug-rate occurs for methods of somewhere between 300 and 500 lines.
More than that and it really is too complicated to comprehend, most of the time. Less than that and you think "It's simple" and don't pay proper attention.
Cognitive: magic numbers
2 - 3 is the number of levels of recursion you can keep in your head at one time. Nested logic structures and call-stacks should never require you to look more than 3 levels deep to understand them.
6 - 7 is the number of distinct objects you can keep in your head at one time. Never require that the reader keep track of more than that. If you think you need to, it means you haven't properly thought out your problem yet.
Side-note: Names that are too long fall afoul of the same effect: they force you to concentrate on how to read the name, rather than what the object means. Complex names should only be used for rarely-touched global entities; local scratch-variable names should be shorter -- the extreme being single-letter "i" for loop counters:
Donald Knuth has stated that he is in favor of these kinds of "structured GOTO's".
There is a theorem that in general, GOTO's can be replaced by WHILE's and flags. What is generally not mentioned is that in the general case, the size of the resulting code grows exponentially in terms of the size of the original code.;-(
As it happens, we do not get exponential growth for the "break out of the loop" cases...
...but copyright violation for commercial gain is not just a civil-suit issue, it is a felony (a crime), and should be prosecuted by the feds.
not just a photograph, but a full history that does constitute "performance art", protected under both USCTitle 17 and the Berne Copyright Treaty.
The copyright-absolutist position is this: My life is *my* performance before God and all mankind. As soon as it is recorded, that recording is a copyright work for which I own the copyright (unless there is a specific written contract to the contrary), according to US Code Title 17. And use of that work without my permission for commercial gain is felony copyright infringement. Felony copyright infringement is exactly the behavior all these data-gatherers are doing. FWIW.
This violates Federal Law, in particular the Magnussen-Moss Act (15 USC 2302(c)) requirement that says warrantors cannot require that only branded parts be used with the product in order to retain the warranty.
I instigated this for environmental models two decades ago, and it makes life lots easier. And more error-free.
Of course, there are those DB idiots who won't learn from history, and keep trying to reverse that decision... ;-(
(When I'm doing GIS or scientific visualization I need a _lot_ of pixels!)
What does "full screen" even mean in that context?
And the chance that I'll have any kind of consistent interface, when thousands of app-writers are rolling their own? ZERO!
As is the insertion of ads into web pages by ISPs, FWIW.
Why doesn't systemd?
Also not a server admin -- but admin for multiple workstations and portables. You've reproduced my experience exactly, except that I'd say "in even the last couple of months" instead of "in the last couple of years." And I've been running and administering Linux systems since the mid-Nineties (i.e., over twenty years).
Frankly, modern Fortran (F-90 or later) is a very well-structured programming language, at a higher level than (more structured than, and safer -- not as subject to buffer-overruns -- than) C: character-strings and multi-dimensional arrays are first class citizens in Fortran. And for what it's worth, I've written more than 15K lines of production Fortran in the last month...
Also Fortran. Needed it for a physics course in 1969.
Example: EPA's CMAQ air quality model. The first requirement is that this model support regulatory application: in particular, it must maintain adequate chain of custody of its own data to stand up in court; silent data corruption is completely unacceptable. However, one of the primary developers NEVER checks the status of operations that may fail -- e.g., MPI communications. Thanks to the arrogancew of this developer, there are at least 453 failures to follow this standard. IMNHO, the model is completely untrustworthy.
And as the original systems architect for that model, that makes me VERY unhappy.
...and replace the standard (short) hinge and lock-striker screws with steel screws long enough to anchor through the door-frame into the framing behind it. 3.5-inch stainless steel screws are excellent for this. Combined with a good (steel?) door, no one is going to bash it down easily.
E5-1660 v4 (8 cores, 20M Cache, 3.2-3.8 GHz.
64GB RAM
Screen: 1xDell 27" 2560x1440; 10 KDE workspaces @ 3200x2256 virtual (==72 megapixels)
512GB SSD, 20GB RAID5 + 12GB RAID0
Mandriva 2015
Compilers by Intel, Sun, PathScale, GNU
Apple says that DOJ misquotes the previous court opinion, and then gives what it claims is the correct quote. One of them is deliberately misquoting, and that should be cause for disbarment and further sanctions.
FWIW.
Or if you want me to look at it, pay me my fully-loaded rate for that wasted time (note that there is a 0.25-hour minimum).
Those who set that speed limit are acting in reckless disregard for the safety of the public. As is that CS professor--and he should know better!
...and is customizable from the command line: I have a set of about three dozen color-customizations, one for each remote host I work on. My menu has "run an ssh remote session on this customization of RXVT" for each of those hosts. Can't do that with most of these new-fangled terminal emulators...
Part of the reason is this: while it's provable that you can use ifs and whiles to eliminate all gotos, the proof also demonstrates that code-length may grow exponentially in the number of gotos eliminated.
Not to mention that sizeof forces hlen+sizeof(struct frag_hdr) into size_t, which very probably is not unsigned int (it is not, on any of the systems I've owned for the last decade at least). Therefore overflow_usub is seriously bogus in and of itself.
Side-note: Names that are too long fall afoul of the same effect: they force you to concentrate on how to read the name, rather than what the object means. Complex names should only be used for rarely-touched global entities; local scratch-variable names should be shorter -- the extreme being single-letter "i" for loop counters:
There is a theorem that in general, GOTO's can be replaced by WHILE's and flags. What is generally not mentioned is that in the general case, the size of the resulting code grows exponentially in terms of the size of the original code. ;-(
As it happens, we do not get exponential growth for the "break out of the loop" cases...