Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror

Slashdot videos: Now with more Slashdot!

  • View

  • Discuss

  • Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

×

Comment: Re:contamination? (Score 1) 127

by Zordak (#49174611) Attached to: Supreme Court Gives Tacit Approval To Warrantless DNA Collection

Aside from the huge privacy issues, I'm even more concerned that they would screw up collecting it. Everyone sheds DNA. Who is to say that the DNA they collect is actually from the person they think it is? DNA gets all mixed together after it leaves a person's body.

That's what juries are for. The prosecution presents evidence that the defendant's DNA was found at the scene of the crime. The defense attorney then attacks the credibility of the evidence, for example by offering an alternative theory for why his DNA was there, or attacking the method of collection to raise doubt that it's actually his DNA the police collected. (He doesn't necessarily have to provide his own DNA sample. Defendants aren't obligated to prove their innocence.) Then the investigator explains why the collection method is sound. At the end of the day, the jury decides whether the defense has raised a reasonable doubt.

Comment: Re:Nothing wrong here. (Score 2) 127

by Zordak (#49173589) Attached to: Supreme Court Gives Tacit Approval To Warrantless DNA Collection

This comment makes absolutely no sense. Where does probable cause come from, except from an investigation? How do you expect police to do their job if they're only allowed to start collecting evidence after they get a warrant, which must be supported by evidence?

The purpose of a warrant is to allow the police to breach your otherwise constitutionally-guaranteed reasonable expectation of privacy. A warrant permits police to search your home, person, vehicle, or other private space without your permission. Other than such private spaces, police don't need permission from anybody to investigate. They certainly don't need a warrant to search a crime scene, where you have no legally-protected reasonable expectation of privacy.

Comment: Re:As the majority pointed out (Score 1) 127

by Zordak (#49173419) Attached to: Supreme Court Gives Tacit Approval To Warrantless DNA Collection

so they follow you around until they see you throw away a cup, or a piece of gum, or sneeze and toss the tissue away in a public place. Then they amble up and help themselves.

That sounds like "police work" to me. I'd rather police spend their time doing things like staking out suspected criminals than doing what the NSA does.

Comment: Re:File extensions? (Score 2) 479

by TheRaven64 (#49172059) Attached to: Why We Should Stop Hiding File-Name Extensions

There are two problems. The first is that the OS allows you to run porn.jpg.exe having downloaded it from some random place on the 'net. I don't think that either OS X or Windows do: they'll both pop up a thing saying 'You are trying to run a program downloaded from the Internet, do you really want to?', which isn't normally something that happens when people try to open a file so ought to trigger them to avoid it (if it doesn't, then seeing the .exe extension probably won't either).

The second is that the OS allows programs and other file types to set icons at all before their first run. This also leads to confused deputy-like attacks where you think you're opening a file with one program but are actually opening it with something that will interpret it as code. The solution to this is probably to have programs keep their generic program icon until after their first run. If you double click on something that has a generic program icon, then you probably intend to run it...

Comment: Uh, what? (Score 2) 80

by TheRaven64 (#49171381) Attached to: Khronos Group Announces Vulkan To Compete Against DirectX 12

an LLVM-based bytecode for its shading language to remove the need for a compiler from the graphics drivers

This removes the need for a shader language parser in the graphics driver. It still needs a compiler, unless you think the GPU is going to natively execute the bytecode. If you remove the compiler from a modern GPU driver, then there's very little left...

Comment: Re:c++? (Score 2) 372

C++ is a language that is very good for generic programming. It doesn't really meet Alan Kay's definition of OO (and he's the one who coined the term), nor does it pass the Ingalls Test for OO. It has classes, but method dispatch is tied to the class hierarchy so if you want to really adopt an OO style you need to use multiple inheritance and pure abstract base classes, which is a very cumbersome way of using C++.

The worst C++ code is written by people who are thinking in C when they write C++, but the second-wrost C++ code is written by people who are really thinking in Smalltalk. If you're one of these people, then learn Objective-C: the language is far better at representing how you think about programs.

Any programming language can be used to write code in any style. You can write good OO code with a macro assembler if you want. However, every language has a set of styles that fit naturally with the language and ones that don't. You can force C++ to behave in an OO way, and it sort-of works, but it's not using the language in the most efficient way.

Comment: Re:C++14 != C++98 (Score 1) 372

The main advantage of auto is in templates, where the type is something complex derived from template instantiations. You simply don't want to make it explicit. Oh, and in lambdas, where explicitly writing the type of the lambda is very hard (though you generally cast to std::function for assignment). As to using a float instead of an int... I have no idea how you'd do that with auto. The type of auto is the type that you initialise it with. If you're using a platform where you don't have hardfloat, then why do you have APIs that return floats? There's your bug, the use of auto was just a symptom.

And if you've never seen anyone use the algorithms library, then you must be using C++ in a very specialised environment. I've not seen any C++11 code that didn't use std::move. I've rarely seen a nontrivial C++ file that didn't use std::min or std::max, and most code will also use std::copy. The only code that I've seen that didn't use the algorithms library included is own, poorly optimised and buggy, versions of several of them.

Comment: Re:c++? (Score 2) 372

First, WindowsMaker doesn't use Objective-C, it's written in C. However, GNUstep, which is the open source implementation of the Cocoa frameworks (originally the OpenStep specification, but they're tracking Apple changes) could use more help! Oh, and we support (on *NIX) a superset of the Objective-C language that Apple supports on their products, so I wouldn't say that Obj-C is more limited on Linux.

That said, and I say this as the maintainer of the GNUstep Objective-C implementation, I'd recommend C++, but with the two caveats:

  • C++ is not an OO language. It sort-of supports OOP, but writing OO code in C++ is not the natural way of using the language.
  • Don't look at any version of the language before C++11. It's just terrible and will damage your brain.

C++11 and C++14 have cleaned up C++ a lot. With shared_ptr and unique_ptr, you can write code with sane memory management. With perfect forwarding, lambdas, and variadic templates, you can write code that has most of the benefits of a late-bound language. I like a lot of Objective-C, but Apple broke the 'simple, orthogonal syntax' when they added declared properties and a few other things. Any successful programming language eventually becomes a mess of compromises and ugly corners. Some, like Python and C++, start that way, but at least C++ has been slowly improving over the last couple of versions.

The one thing where Objective-C is still a clear winner is in writing libraries that want to maintain a stable ABI. This is insanely difficult in C++ because the language doesn't have a clean separation of interface and implementation and relies a lot on inlining and static binding for performance. The down side, of course, is that once you have a library in Objective-C you're limited to consumers who also want to use Objective-C.

Oh, and Qt GUIs suck beyond belief on OS X - not sure what they're like on Windows, but I wouldn't recommend them for a portable UI. Good MVC design and a native UI is the only way to go if you really want a cross-platform GUI app that doesn't suck.

Comment: Re:1.2 what? (Score 1) 197

Budget cutbacks.

In careful consideration of this, and in light of the seriousness of the problem, I have determined that the appropriate reaction is to seize Canada. I'm pretty sure that congress will determine the commerce clause covers it, anyway. I'm writing my crook^w legislator this evening.

The next person to mention spaghetti stacks to me is going to have his head knocked off. -- Bill Conrad

Working...