Become a fan of Slashdot on Facebook


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×

Comment Re: Fortran (Score 2) 366

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...

Comment Re:Summary of all future comments. (Score 1) 149

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.

Comment Re:Physical Door security. (Score 2) 303

...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.

Comment Re:Maybe Apple just has the better position? (Score 1) 250

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.


Comment This speed limit is reckless (Score 5, Informative) 582

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!

Comment RXVT (Score 1) 352

...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...

Comment Re:long methods and coupling (Score 2) 497

Two points: experimental, and cognitive
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:

for( int i=0 ; i<dingbat_max ; i++ ) {...

Comment Re:You're the problem (Score 3, Informative) 497

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...

Slashdot Top Deals

"The following is not for the weak of heart or Fundamentalists." -- Dave Barry