Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
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: My gripes with the first 2 (Score 1) 525

No one is saying nulls are always bad. What's being said is that nulls should never mean "indeterminate state". They should always mean something.

You say it's a missing relationship. But that's one example of a meaning for null. One that makes sense to someone who's doing database work all the time, or who thinks of object graphs as databases. It's certainly not the only use people make of nulls.

Comment Re:My gripes with the first 2 (Score 1) 525

Absolutely, loading something from a file is a case where you would want to allow null returns, optionally also an error code.

But many other functions are either guaranteed to be able to return the correct value, or to have a suitable default.

My point is to know the difference, and only allow nulls when you have a good reason to. Never because of an ill-defined "there might be an error".

Null has to mean something. It should never be a vague possibility because "shit happens".

I don't think we have different opinions on this.

Comment Re:I'll document it tomorrow (Score 1) 525

I find that whenever I try to set a hard, fast programming rule, I find side cases where I honestly probably should break it. It doesn't matter what the rule is about - spacing, line wrapping, what belongs in a class vs. a standalone function, what files to put various pieces of code... whatever rule I make, I find cases where it probably would be better for me not to follow it.

The same happens with comments. I'm very much in the school of long, descriptive function names and variables that are self-commenting. I hate coming across old, outdated comments that no longer apply to the code; with long, descriptive variable and function names, you can read what's happening and it's always up to date. And often that's enough. The code says what it's doing, it's straightforward... job done.

But that's not always enough. Because it's one thing to say what's happening. But it's another thing to say "why". When was the last time you put the word "because" in a variable or function name? That's what comments should be for. Not what you're doing, but why you're doing it. Sometimes code just needs descriptive variable and function names. But sometimes you really need the "why" explained.

Comment Re:I'll document it tomorrow (Score 1) 525

Or the more annoying:


void fn193(dt_1011 a)
{
/* BEGIN FUNCTION */

/* IF a is greater than 5 THEN*/
    if (a > 5)
    {
/* Loop 10 times */
        for (int i = 0; i < 10; i++)
        {
/* Call fn828 with arguments a and i */
            fn828(a, i);
        }
/* end IF statement */
    }
/* end FOR loop */

...

/* END FUNCTION */
}

.... without ever having mentioned why they're doing any of it. Yes, someone who used to work here actually programmed like that. A comment on almost every line, and none of them at all useful. :P

They did sometimes have function headers. Unfortunately they were mostly cargo-cult style copies, full of meaningless cruft and long-outdated information, and... it almost hurts me to say this... doublespaced. ;)

Comment Re:Object relational impedance (Score 1) 525

Well, we don't happen to have money to hire a database designer, to invent the SQL queries that would do what 20 lines of Perl over JSON file can do.

Actually, we do use the relational database, except for the most wildly varying entries, there's a text field, which contains the JSON objects. I mean, if the field "measurement" may be an int, a float, an enum, an array, an array of arrays of variable length, containing int, float, NULL or NaN, or a structure composed of a string and three booleans, yeah, that can be normalized into a bunch of tables, and queries for these can be written, but... seriously, why?

Comment Re:Why no 4k footage of the moon? (Score 2) 47

You said both the Moon and Mars. Can you not even read your own posts?

FYI, there are not "millions of people" who would like to sit around staring at a picture that only very slowly changes. And there's no point to live video anyway because there's no action; you can just broadcast stills and interpolate between them if that's what you want. All stills that NASA captures are released publicly for people like you to oggle at.

Lastly, in case you're actually curious, there are four missions active at the moon right now: ARTEMIS P1, ARTEMIS P2, LRO, and Chang'e 5-T1. The former two don't have cameras; they're simple satellites for studying radiation and magnetic fields. Chang'e 5-T1 is just a test mission for China to advance its technology for future moon missions. LRO is the only one that takes pictures. You can see them here. Unlike Mars, a well designed spacecraft like LRO (although not a cheap spacecraft) could have enough bandwidth for streaming live HD video. But LRMO is quite reasonably designed for science, not screensavers. It has three cameras. Two are black and white cameras which are more like a telescope (as with most spacecraft cameras) - black and white for maximum resolution (every pixel measuring brightness rather than every several combined pixels). I don't know if you've ever tried to capture video through a telescope while moving relative to the object you're trying to capture, but as a general rule it doesn't work very well, and there is nothing about the hardware that's setup for video processing. The third is a wide angle colour camera... "wide angle" in that the camera images are many times wider than they are tall, designed for capturing (nonaligned) strips of the surface in seven spectral bands (which do not correspond directly to what the human eye sees, but are most useful for determining the composition of the surface)

Not that they would ever waste such an expensive instrument's time on capturing a glorified screensaver for Slashdot ACs.

If you want a screensaver satellite, find someone who's willing to pay many tens to several hundred million of dollars to make a fancy screensaver.

Comment "I'll be ready for extensions." (Score 1) 525

"If I write this program in an easily extensible way, expanding this later will be a breeze."

Lots of classes, rich inheritance trees, broad project on top of a robust framework, making adding extra modules fairly easy. Your program is clean, well-documented, and has a logical structure, all according to best practices. It's also about 4 times bigger than it would really need to be, it takes 3 times as much RAM (primarily due to loading all the neat frameworks and libraries that you used "not to reinvent the wheel" even if you only use one or two simple functions from these), but who cares, this is the modern paradigm, and everything is automated and works so smoothly you can be nothing but proud of it. Now just to support it, fix some bugs, and implement extra features.

Then the new requirements arrive, you look at the email, you look at the top level schematics of your system and you realize, with a sinking feeling, that you never imagined the system would need to be expanded *that* way. And that this particular framework doesn't support this approach, and never will, because its authors decided they never plan to support it, or that the target platform doesn't support, and can't ever support the kind of libraries you use, or that you currently depend on a piece of hardware to do a job which you will need to write from scratch, or the new legal requirements (which are not disputable; new law says so) go completely against your system philosophy, which provides equivalent but completely different functionality, or the essential library just has been discontinued, and new security holes have been found in it...

Or at the very least, you realize that a feature that amounts to ten lines of code performing a really simple tricks requires you to create ten different files, two thousand lines of code, config and extras, and modification of several existing files, because the way the extensions of this type are applicable is writing a plugin which is a separate project with a whole non-trivial instantiation of framework, build system, security, and compatibility with your smart dynamic plugin loading mechanism. What would amount to pasting a 12-line function called once per tick from the main loop, amounts to a three-week project building the plugin/wrapper for that 10-line snippet.

You CAN NOT foresee future requirements. You CAN NOT plan all possible future extensions ahead of time. And the more you plan for, the more "flexible" you try to be, the larger and more rigid your project becomes in areas you failed to foresee, and the harder it will be to adapt it for these.

Yes, leave hooks for stuff you have it on a good authority WILL happen. Do not try to plan for every eventuality though. Write good clean code that does what it's meant to do, and doesn't try to be ready for anything else. It will be *easier* to expand once the time comes.

Comment Re:Any photos of the entire Earth? (Score 1) 47

LM doesn't mean Lunar Lander, it means Lunar Module. I don't know why you expect NASA's search engine to find things when you call them by the wrong name. Do you expect it to turn up pictures of the space shuttle if you type in "Space Bus"?

As for your other stuff, you're clearly trolling, and I don't feed trolls.

Comment Re:I think (Score 1) 47

Thankfully the URL is easy to remember... just like images.google.com.

It's kind of amusing searching for keywords that you wouldn't expect to show up on a NASA image search. For example, I found a Native-American juggling hoops, old ladies line dancing at a farmers' market, kids dressed as Men in Black dancing underneath the Shuttle Endeavour, people using the primary mirror of James Webb to take selfies, actress Nichelle Nichols (Uhura) singing, NASA's hip-hop dance team Forces In Motion (travels around middle schools teaching Newton's laws), James Ingram singing "I believe I can fly" in front of Bill Nye, NASA administrator Dan Goldin laughing with (hopefully not at) a "bubble boy" in a protective suit, enough frames of someone testing out a spacesuit to make a stop-motion dance video, and a bunch of other unexpected weirdness.

Comment Re:Why no 4k footage of the moon? (Score 1) 47

What are you talking about? We''ve been sending some damned impressive cameras out into space of late. Heck, even not just "of late". Have you seen the HiRISE images of Mars? Forget 4k, you can download those in 8k.

Now, if you're talking constant live 4K video footage, the problem isn't the cameras, it's the bandwidth over such huge distances.

Comment Perfect timing (Score 2) 47

The timing on this is perfect. A group I'm in is working on a book and right now going through trying to get copyright permission on all of the images we want to use (and sometimes you can't get it without paying fees, or can't get in touch with the author). Having such a huge wealth of public domain images all together on one seemingly well-designed search engine will be great for finding substitutions.

Too bad there's no ready substitution for figures from papers, however :P For a nonprofit book a lot of the big servers charge around $50 per image. Which for a full length book (dozens of figures) is thousands of dollars. Most authors are very nice about granting permission, but the journals are all about cash.

Slashdot Top Deals

Philosophy: A route of many roads leading from nowhere to nothing. -- Ambrose Bierce

Working...