Follow Slashdot stories on Twitter


Forgot your password?

Comment Re:This just in: chemistry still works (Score 1) 104

To be honest, that in itself is probably worthy of notice. It is not a self-evident truth that all the laws of physics work exactly the same throughout the entire universe. There have, for example, been quite a few theories that have postulated that some of the fundamental constants may vary over space and/or time.

Therefore, just the confirmation that chemistry actually does seem work the same 11 billion years ago on the other side of the known universe is certainly not worthless knowledge. It may also have provided some knowledge about how long it takes for oxygen to accumulate in the evolution of a galaxy (though that may well have been known previously).

Furthermore, of course, it is a great verification of our observational capacity. Though the existence of water may not have been unexpected, our ability to observe it is quite something to marvel at, if I may say so.

Comment Re:The Basics. (Score 1) 592

In that case, I'd say that Python is the new BASIC. I, too, grew up with BASIC, but I see no reason I would be any worse a programmer today if I had used Python instead (if it had existed back then, of course).

Python is just as simple as BASIC when it comes to syntax, I think. Possibly even more so, since you don't need to name variables after their data type, and the indentation stuff (for all of its flaws) is rather intuitive. It has the familiar print statement from BASIC (though one could argue that a similar input statement might not have hurt, rather than having to use sys.stdin).

Furthermore, Python does actually support much more complex data structures than BASIC does. Of course, beginner courses shouldn't be delving too deeply into those things, but nevertheless, Python scales a lot better than BASIC, so that it actually can be used for real programs (performance issues aside).

That being said, I wouldn't mind if beginner courses were held on microcomputers with no operating system, in assembler. One cannot become a good programmer without knowing what a computer really is, and starting from the beginning might not be a horribly bad idea. After all, assembler never was hard, just impractical.

Comment Re:doesn't sound too secure yet (Score 2, Informative) 367

When you're managing native code, it only takes one slip-up to hand over the keys to the kingdom. That slip-up may be as simple as a two byte exploit, but it's a slip-up none the less. One must be VERY careful with native code because there is no way to prove that it is safe to execute natively.

Hypervisor features in modern processors simplify the issue somewhat, but it is still not proven that hypervisors are without exploits.

That's not at all true, though, and you certainly don't need any supervisor CPU features. It is quite easy to run native code completely securely -- all you need to do is set up a private virtual memory space for the managed code, and only provide it with a call gate to your own program code through which it can do controlled requests. It's done at large scale -- it's called a "process" in normal OS parlance. You may have heard of the term

The normal problem is just that the operating system gives too much privilege to all processes, such that any running process can access the filesystem, the network stack, can allocate limitless amounts of memory (swappable memory, but nevertheless) and so on. However, that's a problem with the operating system, not with the CPU. In fact, later versions of Linux has a special process mode called SECCOMP, in which the process may only call exit(), read() and write() (the latter two only on already open file descriptors), which could certainly be used to implement Google's idea completely securely.

The problem in this case, that the OP complained about was that Google seems to only blacklist certain program data bytes, which is most likely unsafe, as there are probably other code paths left that could be used to execute unsafe code that noone would have thought to blacklist.

My point is just that there's no reason to think that a JVM is inherently more secure than an x86 CPU. It's just the Java class library that's more secure than your standard off-the-shelf operating system.

Comment Re:It most certainly isn't child pornography! (Score 4, Insightful) 668

I think that the phrase you are trying to say is 'Nothing'. Other than the title of the album it is simply a picture of a naked individual. If anyone finds it sexually arousing then perhaps there it is something wrong with them and not with the cover?

I'd like to respectfully disagree, because there's a difference between "arousing" and "sexualizing". The picture is not arousing, but I would certainly agree with the GP that the image is sexualizing, in the sense that it focuses on the girl's purported sexuality (though not in a way meant to arouse, or at least not obviously intentionally so). As the GP says, the girl's pose makes it quite clear that she doesn't just happen to be naked.

I certainly would not call it pornography, however, as the picture does not seem to be intentionally taken to be arousing. That's not really the matter here, though, I think. You state that you think that this is an extension of society's problem with accepting that people are born naked, but I would disagree with that, too. I rather think that this is just a problem with society taking its zeal against child pornography much too far.

The zeal against child pornography is, to a very large extent, justified, but what has come to pass is that society has turned from the actual reasons why child pornography is bad, to a general stance against child pornography in whatever shape, form or nature it appears in. That's why this image is being censored. It's close to being child pornography, and therefore it must be immediately banned, and its creators burned at the stake. Preferably immediately!

What they miss is, of course, that child pornography isn't just bad because it exists, but because of the effects it has on the children involved. Outright child pornography more often than not has children either being abused, or being fooled in such a way that they will come to regret it later in life. Furthermore, the very usage of child pornography fuels the industry that causes such crimes to be committed. Of course, that's a bad thing and should be stopped by society. In this case, though, that hasn't happened. The Wikipedia article makes it clear that the model has expressed that she does not regret the picture, and there's no reason to think that these things will fuel the child pornography industry in any way. No crime has been committed, and there's no reason to censor or punish anything.

Furthermore, the zeal against child pornography has definitely been taken too far. I'm seeing it being used to power anything from censorship to surveillance, and I am not convinced. It's like the Spanish inquisition! Is it a hideous crime to abuse children to produce child pornography? Of course! Is it worse than murder? Very doubtfully so. Should the enforcement against it affect our civil liberties? Definitely not!

Comment Re:Tabs are EVIL (Score 1) 997

I disagree, and very much so. The Tab character has always been defined to forward to the next column which is divisible by eight, and programs breaking that standard are causing lots more trouble for me than many other things.

Furthermore, the stylistic differences in coding standards go far beyond merely the level of indentation. Arguably even more important are such things as trailing braces, spaces after keywords and between infix operators, and where to indent to begin with (the GNU coding style, for example, uses "half-level" indentation for the braces around code blocks in C). Those things won't change just because you change the tab stops.

Thus, I must conclude that changing the tab stops to achieve the effect you want is nought more than an ugly hack, and one which definitely causes interoperability problems. You wouldn't even be able to cat a file written like that to a terminal and have it format properly!

If you want to adopt your own style to a program you're writing on, you should simply use a program like indent.

Comment Re:I like Python (Score 1) 997

I set tabs to take up four columns. Eight is (visually) too big. Visual Studio's default is to make a tab go up to the next divisible-by-four column, so you're way off-base saying "all reasonable programs interpret tab characters" as forwarding to the next divisible-by-eight column.

Well, I never did consider Visual Studio a reasonable program, though. Even Microsoft's terminal emulators are wise enough to interpret tabs by the standards, so they're just being inconsistent in their decision to use non-canonical tabs in VS. Reasonable text editors make the tab key forward 4 columns (or whatever the user wants, or triggers auto-indentation like in EMACS), but do not emit an ASCII 9 character just because of that.

That was my chief complaint - Python doesn't have a standard that I'm aware of.

I'm sorry that you have that experience. I, for my part, have never once seen a Python program that has not been indented in levels of 4 columns. That is also what you see in all example code in the Python docs.

My professor uses three spaces for each level of indentation. I use a single tab.

I see. I thought your problem was that you used a text editor that put a Tab character (in the sense of being an ASCII 9) into the file to mean four spaces, and that your professor simply used 4 space characters (in the ASCII 32 sense), and that that was causing the trouble. Obviously, you have a real problem (and you should probably yell at your professor for not using 4 columns indentations).

How, exactly, is my editor supposed to know that when I paste from code sample X it should replace three-space-indentation with tabs, but from code sample Y it should replace two-space-indentation with tabs? I would actually complain if my editor tried to do that for me, because half the time it would be wrong.

Indeed, I agree, and there is no way that your editor could know that. I'd just like to clarify that neither I am a great fan of Python's use of whitespace (though I haven't had any problems with it, so I haven't cared either). I just thought you were having the old problem of using a stupid editor.

Comment Re:I like Python (Score 1) 997

Well, it's one thing that most editors will let you redefine tab. If nothing else, at least that lets you cope with code that is written with ill-defined tabs.

The difference is that Eclipse (and I think Visual Studio as well, now that you mention it) use non-canonical tabs by default, without you having to ask for it.

Comment Re:I like Python (Score 1) 997

I know a whole lot of really good programmers. That I know of, none of them have tabs set to 8 characters. Most use 4, some use 3. I prefer 2.

You seem to be confusing the Tab character (ASCII 9) with the idea of "indentation in programming". Indeed, I too use 4 columns for each step of indentation (though it's worth noting that the Linux kernel source and many other projects do use 8 columns per level).

However, that is quite separate from the Tab character as such, which works like I described in all reasonable programs (forwards to the next column divisible by 8).

Therefore, arguing how the Tab character works is quite different from ignoring how people work. People should be allowed to change their levels of indentation indeed (and they can in Python as well -- Python only requires that they be consistent, not that they use indentations of 4 columns each), but that is not the same as letting editors interpret the Tab character any way they want.

The problem is that some editors written by clueless people (Eclipse, I'm looking at you) do take the liberty to redefine the Tab character, thus producing code that is illegible to everyone else, and I'm guessing that that is what HeronBlademaster is having trouble with.

I just don't get the huge benefit of it. Forcing code to be readable? If they didn't use whitespace as syntax, you could run it through tools that fix it up automatically! Plus any programmer that's so lazy that they don't get that right is going to write pretty shitty, undisciplined code, and it's not going to get better in Python. The drawbacks seem to seriously outweigh the benefits.

I generally agree with you here, though. I, too, dislike Python's forced indentation rules. I can't really say I care that much either, though. It's not like it breaks the entire language (except, of course, when people use broken text editors).

Comment Re:I like Python (Score 1) 997

I can't copy his code into mine without manually replacing his spaces with tabs, and vice versa.

In that case, your editor is doing something hideously wrong. Python's parser follows the traditional rule that a tab forwards to the next column divisible by 8, which is how all reasonable programs interpret Tab characters.

Many programs that have functionality for writing Python code avoid the use of tabs completely, though. Emacs being one of them.

Comment Re:NetworkManager (Score 1) 865

If you're using Debian or Ubuntu, you'll probably want to check out wpa_action. Just check the manpage. It allows you to control the wireless interface with the normal /etc/network/interfaces file and a wpa_supplicant config file, and in a very convenient manner allows you to set individual IP settings for different network.

Comment Re: Embedded Linux does ipv6 too (Score 1) 241

I'm not really sure what you're getting at. IPv6 isn't all that complex in my view, and I'm usually the first one to complain about exaggerated complexity. At its base level, I'd even say it's less complex than IPv4, since the pure IPv6 protocol contains fewer features (no IP-level options, for instance) and has all the extra features stacked on top of it in protocols layered above.

Sure, there are lots of things that can be implemented on top of IPv6 which entail a lot of complexity, like mobility support, but in most implementations, you can just leave that out. The implementations in the larger operating systems like Linux, the BSDs and Windows are very complex indeed, because they support most of the higher-level functionality, but I see no reason why simpler implementations would have to be bothered with that. I'm very curious as to what complex features or layering violations it is that you are referring to, because I cannot think of anything in particular in the base specification.

The greatest mistake in the IPv6 standard, in my view, is the fact that it specifies IPSec as required functionality, but I don't think that will be a problem. When makers of embedded devices start implementing IPv6, there's no chance they'll be implementing IPSec, and the requirements specification will probably be split into something like "base" and "full" support, the former not requiring IPSec.

Comment Re:ip -6 route (Score 1) 241

I don't know what to do if it keeps reappearing, though.

Which it does, though. RAs are usually repeated every once in a while (and Vista is no exception), and each time it is repeated, the kernel adds a new route through it again.

That, and sometimes I've encountered 5-10 Vista laptops on the subnet, and it starts becoming a pain to remove all the routes.

Slashdot Top Deals

"Little else matters than to write good code." -- Karl Lehenbauer