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


Forgot your password?

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: Very soon (Score 2) 90

by zmooc (#49354681) Attached to: How long until our skies are filled with drones?

I've thought about this a lot; obviously it's inevitable that police will start using quadcopters more and more (they already do) and probably it's a matter of time (I'd say about 5-10 years) before small autonomous drones start supporting police work, for example tracking suspects.

At the same time, drones will become cheaper and cheaper and I'm afraid many of us nerds won't be able to resist letting them out, looking around, racing eachother through the mall, spying on the girl next door, those kind of things. And you know what? They're pretty much anonymous; nobody's going to trace the drone that crashed into your backyard (or into a police drone) back to you if you do it well.

And then there will be terrorists; it's going to be a matter of time before a plain old stupid terrorist attack is carried out using a drone. But that will be only the beginning; while they may sound like SciFi fantasy, assasination drone-swarms will very soon be almost trivial to create. You WILL see video footage of people being attacked by hordes of drones in the not too distant future...

And that will be the end of privacy as we know it. Once we've had enough of annoying nerds and their drones, terrorists and their drones and criminals and their killer swarms, we will start doing something about it. And that something is not going to be pretty; in order to be able to trace a drone back to a person, continuous surveillance is inevitable. Unauthorized drones will probably be shot automatically.

And if we're really unlucky, all this will result in drone parts without DRM-support becoming illegal to own...

This is not going to be fun at all.... :|

Comment: No (Score 1) 515

by zmooc (#49329939) Attached to: A Bechdel Test For Programmers?

The Bechdel test is about content, not about authors.

Furthermore, there are reasons to assume the average women is less interested in programming than the average male. Science seems to indicate this difference in interests is already present in newborns. I can strongly recommend this documentary on that subject:

Also, I strongly suspect nearly all good programmers to have some kind of autism spectrum disorder (ASD), often undiagnosed, simply because that "disorder" makes them exceptionally good at tasks typically performed by programmers. ASD is prevalent in males 4.3 times more than in females.

All in all there are more than enough valid reasons to assume the gender gap in software engineering is absolutely normal and is here to stay. I don't see why this subject is even worth discussing; it's about as interesting as the gender-gap amongst nurses: not interesting at all.

Comment: All programming languages suck (Score 0) 177

by zmooc (#49233147) Attached to: Preferred programming paradigm?

I wish I could pick "Whichever i right for the job" but I have not found any programming language to be right for any job at all. There's typically a least worst one, but the right one...? This is only partially due to the available programming languages; the available compilers/VM's/interpreters are part of the problem as well.

One crucial critermium for me is that whatever code I write, especially in my private projects, is some level of guarantee that my code will still run in 10 years. In order to be able to guarantee that, the programming language should not be controlled by a single entity, it should be free and open source and it should have at least a small community actively working on it. As far as I'm concerned this disqualifies all the .net-based stuff, a lot of the Google-stuff like Go and Dart.

There are 3 main projects I'm working on: my day-time job is building a high-traffic webfacing platform, my software synthesizer hobby project and my computer vision hobby project. Let's discuss the three of them.

Let's first discuss my day-time job. This is easy; we use Java and since we build a platform with an API and since we value backwards compatibility, this will remain Java. It does the job and it does it fast, organized, stable and good. Library availability is very good. There's not too much wrong with it although concurrent programming can be a pain. Also, there's an extreme amount of boiler plate code required, often making it feel horribly inefficient and needlessly complex, especially when comparing it to your typical functional programming language, which can be much more expressive and powerful in terms of syntax.

To my software synth then. This is extremely CPU-intensive and proper vectorization is a must-have. While java nowadays does a little bit of auto-vectorization, back in the days it was completely absent. For something like a full-blown software synthesizer, you're pretty much limited to the languages supported by gcc, which does auto-vectorization very well. Also, a garbage collected language is not really the best choice when you need a certain level of realtimeness, which is exactly what a software synth needs. I endup up using C++, which seems like an obvious choice for a software synthesizer, which naturally consists of many polymorph components. It works and it is superfast. But OH MY GOD what a mess it is to do concurrency well, to manually manage memory and to find proper libraries. Most libraries are written in C with a C++-shell as an afterthought. Even worse is the fact that just about nobody in the Open Source C++ library-world appears to give jack shit about backwards compatibility. And then C++11 came around. OMFG. Some libraries require it while others turn into a big mess of warnings and errors. Having waded through all that it turns out that some of the new features make C++11 officially the language that's completely impossible to understand.

Which brings me to my attempts to make a decent GUI for my software synth. It's in gtkmm+cairo now and it works, but I would never ever write a GUI in C++ again. HTML5+JavaScript beats any alternative hands down in usability, portability, expressiveness and what's more. The only problem is... it's JavaScript. Let's just say there's a reason that Microsoft came up with TypeScript. Oh and there's the multithreading problem. JavaScript is effectively single threaded (unless you count hacks like Web Workers as a "solution"). As such, even if all other problems were fixed, JavaScript (or any future generation like TypeScript or ECMAScript 6) is completely unsuitable for anything that needs performance. No dice.

On to my image processing hacks. Obviously, speed and parallel processing are crucial once again. Auto-vectorization and thus gcc are a must-have (at least for now), but in gcc this requires writing lots of simple for-loops. Its tedious; obviously your typical image processing stuff would be extremely suitable for writing in a functional language that would "hide" those millions of for loop. Making matters worse is that my GPU is going to be much better at the type of calculations I'd like to do, but that can only be achieved by integrating yet another - not general purpose - programming language, which is typically restricted and/or fits very badly in my source code.

In general, I would have hoped we'd have a proper, consistent, fast and easy way to express our ideas and to just have a computer run them without having to deal with the multitude of shortcomings each available option has today. To me, the lack of such a language shows how extremely immature our field actually is. I still believe we are going to agree on a single expressive, generic and universally accepted language one day so we can all focus on implementing that properly instead of spending our days looking for libraries, tuning garbage collectors, dealing with locks, manually marking code for running as SIMD or on a GPU or FPGA, parallelizing simple loops and you name it. And I'm pretty sure C, C++, Java and JavaScript are not amongst that language of the future. I would expect such a language to be a functional language without the hassle of dealing with IO and I would expect such a language to be as accessible and consistent as Java without the Garbage collector. I would expect it to automatically optimize parallell processing and offloading to SIMD, GPU or FPGA.

What I would expect such a language to be, is a combination of what Rust does for memory management, Erlang does for parallel processing, any pure functional language does for expressiveness and correctness. And I would expect it to automatically offload code to GPU just like gcc uses auto-vectorization. I just want to write down my idea and leave the implementation details to my compiler or VM. But I don't think this language is around just yet...

Comment: Stupid (Score 1) 318

Unlike an atomic bomb, creating autonomous drones with a machine gun (or simply a suicide payload) can probably already be done today, using mostly of the shelf components and software. A terrorist attack using a swarm of these things or even a simple murder by suicide bombing drones is probably very feasible today. I'm surprised (and relieved...) this has not happened yet.

While I'd very much like to see a world without autonomous weapons, that's just not going to happen; they're just too simple to make. Prohibiting them makes no sense. Instead, we need to work on our defense. I expect to see cities guarded by swarms of armed drones in the very near future. It's the only defense against hostile swarms of drones.

Comment: Re:Not all audiphiles are like this (Score 1) 418

by zmooc (#49025901) Attached to: $10K Ethernet Cable Claims Audio Fidelity, If You're Stupid Enough To Buy It

"I am quite interested in good rendering of favourite music, so are a few friends. We do indeed try out hifi gear, but that doesn't mean we all fall for this snake oil product."

"So far I find speakers having the largest influence on the end reproduction quality."

Unless you have really bad speakers, the distortion introduced by the acoustics of your room will be significantly worse than the distortion introduced by the speakers, amplifier, cables and D/A-convertors combined, even when using a nearfield monitoring setup. So in general, spending more money on better-than-average hifi gear without first spending lots of money on room acoustics does actually sound quite foolish to me.

Comment: Most people hold their mouse different (Score 1) 431

by zmooc (#48897461) Attached to: Ask Slashdot: Where Can You Get a Good 3-Button Mouse Today?

"(...) my hand categorically rejects two button mice â" the dangling ring finger causes me genuine physical discomfort (...)"

I recently noticed that a colleague that suffers from RSI and was in the process of trying different mouses holds his mouse different from what I do; I hold keep my ring finger and little finger both on the right side of the mouse, either stacked on top of each other or with both fingertips touching the desk surface. Mouse movement is controlled only using the thumb and the ring finger; the rest of my hand is normally not touching the mouse except for my finger tips. Forefinger controls the left mouse button, middle finger controls the right mouse button and the middle button/scroll wheel can be controlled by both fingers. I've always held my house that way and being a long time X-user, I have always used 3-button mice.

Having noticed that difference, I tried holding my mouse the way my colleague did: one finger for each button. This causes major strain in my hand (exactly the place where my colleague had troubles), probably because my fingers have different lengths. So I went around the office, asking people how the held their mouse and whether they had complaints. Turns out, most people held their mice in a way similar to how I do it. Those that didn't had more trouble with their hands.

I'm not saying you should switch hand-on-mouse position; everybody's different. However, you might want give it a try.

Comment: Re:We already are (Score 2) 319

by zmooc (#48773577) Attached to: How Close Are We To Engineering the Climate?

No no no no. We are not engineering the climate at all. We're just being human beings doing human being things like filling our biosphere up with CO2. We're just nature doing its nature thing.

We are making some attempts at engineering the climate, though, namely attempts at minimizing our CO2 output, but this has not had any real effect whatsoever.

It doesn't become engineering until you do it on purpose. We do not do that. Also note that it is nature until you start to "manage" or "engineer" it, at what point it stopt being nature and starts being "cultivated". Geo- and climate-engineering aim to finally destroy all nature by conserving it in an artificial way and thus making planet earth one big museum.

Just let nature be nature. Even if it destroys humanity. Nature doesn't need us, weed need nature.

Comment: Re:Why stop with rides? (Score 1) 160

by zmooc (#48763499) Attached to: Over 30 Uber Cars Impounded In Cape Town

I think you don't get what Uber is up to. They don't care about the sharing part, they don't care about their drivers. They just want to get as big a market share as possible and they want you to have their app on your phone. And then ... they're going to wait.

Because what Uber understands is that in the near future we will not have drivers. We will not even have steering wheels. Or parking spots. Or traffic lights. Or people owning their own car. Or multiple lanes. We probably don't even have people that are allowed to drive a car. And we almost certainly will not have trains, subways or buses anymore. Instead We we all just be driven arounnd in a self-driving car owned by some big company. And Uber is planning to be that company.

Comment: Re:Automated manufacturing (Score 2) 327

by zmooc (#48707569) Attached to: The Coming Decline of 'Made In China'

Some time ago I researched long-term trends in employment by sector in the Netherlands. Employment in all sectors is declining except for few: entertainment, hospitaliy, (medical) care, "sales", automation, recycling. I suspect the latter two to go into decline sooner or later as well. As long as we manage to prevent extreme concentration of wealth with the owners of the automated production there shouldn't be a real problem; we're all going to entertain each other and care for each other and sell each other stuff.

Comment: Re:Proof by assertion? (Score 1) 285

by zmooc (#48703945) Attached to: Study: Red Light Cameras Don't Improve Safety

The party crashing into the rear was tailgating (or not paying attention). The party slamming the brakes apparently either failed to notice that someone was tailgating or chose to ignore it. Compare this to situations where one party runs the red light; in this situation the other party is completely innocent and did not have and serious option to prevent the crash.

Comment: Bullshit (Score 1) 335

by zmooc (#48703779) Attached to: Out With the Red-Light Cameras, In With the Speeding Cameras

Oh there's the bullshit again. Red light camera's do increase safety. They may not decrease the number accidents but typically DO decrease casualties. But much more important, they reduce innocent victims. Instead of innocent people dying because some idiot slammed into the side of their car, we now mostly have 50% victims that either crashed into another car because they were tailgating and we have 50% victims that were incompetent drivers that failed to appreciate their surroundings, especially the idiot tailgating, and slammed the brakes in a panic.

Even if red light cameras would't increase safety, they would distribute casualties in a much fairer way, lowering the number of innocent victims and increasing the number of not-so-innocent victims. Red-light camera's increase effective self-determination.

"One Architecture, One OS" also translates as "One Egg, One Basket".