So, wait, let me get this straight. Reverse-engineering the drivers for use on non-Xboxes is "hacking" and "unintended" use of a Microsoft product, but Microsoft is only too happy to sell this product to advertisers? Because you don't have to be a rocket scientist to realize that the advertisers will not be using an Xbox.
We've fielded quite a few safety critical systems that perform well. In fact, large commercial aircraft are landing autonomously these days, a feat well beyond high speed parallel parking with a puny little car.
Err, no it's not. Landing large aircraft is easy, that's why we did it first.
Don't confuse easy with complex. An aircraft model might be complex, but it is understood, and thus the math makes it easy. Sliding an arbitrary car across arbitrary ground is NOT easy, as we don't understand the math behind it. Without a model, it's very hard to implement closed-loop controls. What's interesting here is that they mix an open-loop control that works in a particular situation with a closed-loop control that doesn't and get a system that is capable of correcting itself but works with arbitrary situations.
This would be the equivalent of landing the aircraft in some unmodeled phase of flight, such as in a spin. Now *that* would be impressive.
1) Yeah, that's just wrong, and missing the point. We can guide missiles into tiny spots because we have incredibly good models of their flight path. We can drive a car into a tiny spot in exactly the same way. What's interesting here is that they mix together a LQR controller with open-loop, in a way that does not require hand-tuning and gives excellent, repeatable results.
If we had a dynamic model of the car as it were sliding sideways, I'm sure we could use Lie brackets to discover all sorts of interesting accessible trajectories. But we don't. So this is pretty good control, and might quite possibly be a step toward the type of controller we have in our brain (able to use a combination of open-loop (I did this last time and it worked) and closed-loop (what I'm doing isn't working, I need to adjust) controls)
2) True, but even more likely: if your automatic-parking Mercedes scratches my car while parallel parking, who's responsible for the damage? You (as the driver) or Mercedes (who promised that this feature would work)?
3) As another poster stated, since you don't mean it, it must come naturally. I think many people find parallel parking a chore and would rather have a machine do it for them.
4) Yup, tough toodles, kid. Your freedom to kill others is only a freedom to the point at which we cannot find a better solution. If you were complaining about not being able to go somewhere you want, I would be behind you 100%. However, you seem to be complaining that you consider it a freedom to drive how *you* want to. Considering the atrocious results (both accident rates and people making moronic decision to buy tank sized SUVs because "they're safer"), this "freedom" is pretty poorly exercised.
How this post got modded up is beyond me. It demonstrates the most amazing lack of knowledge on the subject. What is impressive here is that we have a computer doing something a human does. That's always impressive when it's done the first time, and you get mad street cred when it's reproduceable. There are many, many things humans do that we do not understand how to model and thus cannot yet control. Heck, we don't even know how to tell a robot to walk through a crowded room of people (do I ask my boss to pull back from the table, or brush up against my mother-in-law?), so parroting that someone can do it better is hardly impressive. "Someone" cannot be manufactured, micronized, improved on, or reproduced countless millions of times.
Oh, and in case you didn't notice, the last author of this paper is Sebastian Thrun, head of the Stanford project that won the DARPA Grand Challenge and took second place in the DARPA Urban Challenge. I suggest you read the paper in order to understand what's being proposed here, and then we can talk shop.
IAACE. (I Am A Controls Engineer)
Oh, I completely understand why you like it. The function itself doesn't even bother me. What bothers me is the name. If I say "you've got a range of options to choose from when programming, from C++ to Python," 100% of people would understand both C++ and Python to feature in the list. When we talk about functional programming, I understand programming that can be read outloud. This might be incorrect, but it's the way I imagine it should be.
So, really, it's not a programming problem at all, it's just a terrible syntax problem. There's a myriad of bad and confusing function names that can be imagined, and more than a few seem to have wound up in Python.
P.S. I'll have to look into the advantages range gives you. What you describe makes it seem like a nice function, in spite of the name.
You say you don't like 'len' as a name for a length function, that you would prefer using the name 'length'. Well, python is so superior, that you can fix that problem really fast in your code:
length = len
That *is* a neat feature.
My only beef is that it can't help to solve the mess that is everyone else's Python code. Once I'm programming in Python, all these things will seem very natural. (It can't be worse than C!) But for people who are new to Python, and just want to modify a tiny section of code in someone's script because it almost, but not quite, does what they want it to, all the myriad Python bizarreness jumps up and bites them.
Oh, please. What hogwash. You're making an assumption that not liking enforced whitespace means not having consistent style and respecting whitespace norms for all published programs. Anyone who does serious programming is capable of instantly figuring out whitespacing, even when it's inconsistent. If it's code that's been incorrectly formatted, it's dreadfully easy to fix it. Matlab, for instance, will automatically apply correct indents to an entire file, so I imagine that that's a feature available on many other editors.
What's hard to figure out on your own is uncommented code. Should Python mandate comments, then? (Maybe just!)
You do realize there's no dynamic typing in F#, right? It's very rigidly typed, in fact, more so than C/C#/Java - it won't let you use an int where a float is expected! (it's the price you have to pay for type inference - it doesn't play well with ambiguity)
I do. They're not quite the same beast, but since I've programed a lot in C the question of dynamic typing or not is not so important.
On the whole, it looks like what you're looking for is actually called Ruby.
Really? I had always thought of Ruby as a web language. Thanks for the tip, I'll look into it.
I'm going to say something anathema to the
The love comes from all the cool things that Python can do, for free. Dynamic typing,
The hate comes from the sheer lunacy that is Python syntax. Forced whitespacing doesn't suit my debugging style (why not just have the compiler recognize either whitespace or accolades?); functions names like len() are just, frankly, idiotic (length() is much more readable to beginners, and takes only a few extra milliseconds to type for experienced users); and the way of working with indices is just weird (2:5 means the 2nd, 3rd, and 4th elements, but not the fifth; range(2 5) gives you 2 3 4, but not 5.).
Python reminds me of many of these incredibly powerful scientific projects that never got used by a non-scientist until it was far too late to make changes. range() is a good example of this, as while it perfectly emulates "for i=2; i < 5; i++", it is NOT what you expect to get when you say, outloud, "I want a range of numbers from 2 to 5". Having contributed to Scilab, I should know as I'm equally guilty of this kind of thing.
If F# can fill this void, by giving functional programming with functional syntax, I'll probably stop my Python experiments and move directly to F#.
Although to be honest, I'd love to find a python front end that uses non-insane syntax and then simply precompiles it into python syntax at run-time. Then you don't have the MS, Windows, and
P.S. I'm not looking to start a flame war about force whitespacing. There are really good reasons to like it. All my programs have consistent whitespacing, except when I debug (I like to put debug programming all the way against the margin, that way there's no possibility of ever forgetting it in the code)). However, you can't have it both ways on readability vis-à-vis function names and indices.
Wow, way to overgeneralize. Having spent 8 years in the EU, I can guarantee that that's not what I lived. France, for instance, required none of that.
Maybe next time you'd like to say the countries you were in, instead of just the blanket "EU"?
I'm in the last hectic months of writing before finishing my PhD. Months where I need absolute peace and quiet and a full withdrawl from the world.
Easiest. Challenge. Ever.
"Don't drop acid, take it pass-fail!" -- Bryan Michael Wendt