6,062 karma · joined September 29, 2011
The point of the original C Standard was to make rules about these things AND not break existing implementations. They recognized that (a) and (b) were in existing implementations and were reasonable, and they chose not to break the existing implementations when writing the standard.
This is similar to the extremely unfortunate definition of the NULL macro. There were two existing styles of implementation (bare literal 0 and (void *) 0) and the Standard allows either style. Which means the NULL macro is not entirely safe to use in portable code.
(1) For simpler cases, wrap in do {} while (0) and break from the loop
(2) For multiple cleanups, use same technique combined with checks to see if the cleanup is required. E.g. if (f != null) fclose (f)
(3) put the rest of the stuff in another function so that the exit code must run on the way out.
In 35 years of coding C/C++, I've literally never resorted to goto. While convenient, this new defer command looks like the kind of accidental complexity that templates brought to C++. That is, it provides a simple feature meant to be solve simple problems in a simple way that accidentally allows architecture astronauts the ability to build elaborate footguns.
It's a perfectly cromulent measure so long as we understand the limitations of the measure. For example, trying to measure the productivity of a day or a sprint? That's silly. Measure the output of a team which does not produce an entire product? Won't work because you'd have to figure out how to apportion the productivity.
If you ask Boeing for soap dispenser parts for these, what should they cost? Boeing charged $149,072 for the dispensers. That's $671 per plane. Is that too much?
If you had to make these dispensers, make sure they conform to rules for aircraft parts and Air Force parts, provide formal responses to bids, etc., how much could you make them for?
It seems high to me. The article says 8000%, which is less than $10 per plane. So while it seems high, it's definitely not 8000% high.
I don't post so it doesn't affect me directly. It affects where the people I follow choose to post.
But this is just one feature of FFmpeg. Usually the heaviest CPU user is encode and decode, which is not affected by this improvement.
It's interesting and good work, but the "94x" statement is misleading.
In C, there are arrays. If you use the identifier that names the array as a parameter to a function, it gets quietly converted to a pointer to the first item of the array and all array size information is lost.
So you can obtain the array size, but only if you are dealing with the identifier that directly names the array. If you attempt the same technique on a pointer to the array, bad things will happen.
Even today, museums and universities sometimes pay for non-rare birds to be collected by shotgun. Collections are needed for certain types of comparative analysis when trying to sus out whether two birds are different species or just variety within a species.
[1] https://blog.education.nationalgeographic.org/2016/05/09/the...
20 years ago the small video company I worked for had a $30K Sony PVM monitor that was probably only 30-35 inches. So the $40K price in 1990 doesn't surprise me in the slightest.
The only thing interesting about this is "biggest CRT ever made" because it shows the limits of CRT technology.
Why are zero-length passwords treated as login attempts for a user with a non-zero password? Why are a cluster of login attempts permitted in such quick succession? There's so many obvious fixes here for what is apparently a common issue.
At least part of the goal of CS 50 at that time was to explicitly weed students. They didn't want undeclared students to waste a whole lot of time on CS only to find out they were not going to be accepted into CS. Instead, they went through one hard course to find out. Perhaps that explains why some of it was overwhelming to some students?
This is not the first Embedded <LANG> attempted. For example, Embedded C++ [1] has been around for a couple of decades and is only used in a few weird places like Apple Device Drivers.
The problem is that if you are so very constrained that you can't afford to have dynamic memory that is reference counted, then you probably have so little memory and functionality that you may as well just use C as an advanced assembly language for the processor.
Earthquake Prediction is filled with cranks. To deal with the issue, there is a neutral set of criteria for "how to test a prediction theory" which involves making predictions in advance with a clear description of what types of events match the predictions and likelihood of event. Geologists can then compare a series of predictions and their outcomes to what would be expected based on historic patterns. Math then allows one to determine if the prediction theory is better than random guessing.
No predictions have yet been better than random guessing.
"My cat walked across the keyboard right before the large earthquake" is not statistically significant.
But calling it "almost copied word-for-word" is not justifiable. On a trivial basis, it's literally not word-for-word in any way. On a more serious basis, there are significant changes in the laws, and enshrining something in an Act which can be changed by future Parliaments is a lot different that enshrining something into a Constitution which is much harder to change.
Also consider how complex a thing you are proposing vs a gas and electric simple solution of "more input gives more output now."
It's all tradeoffs, but responsiveness matters. And in terms of responsiveness steam < diesel < gas < electric. There's a reason both diesel and gas have long coexisted: sometimes you need more responsiveness, and sometimes more constant power. Steam was just too far from acceptable for high speed responsive output.
Your example of needing to read a stop sign isn't a great example. At least in North America, a hexagonal sign is always a stop sign. A better example of your point would be a speed limit sign.