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

typodupeerror

## Comment Re:The mixed-mode problem (Score 1)238

The solution to that problem is pretty easy.

If it becomes a problem, I imagine cars will begin to detect this and email a snapshot of the license plate plus evidence to local law enforcement. The end result would probably be much care in your actions around automated cars, as they will report your reckless driving.

## Comment Re:Beginning of the End (Score 1)143

This has been known for several months.

## Comment Re:I Want to Believe. (not) (Score 1)312

I am not addressing your arguments because I am not attempting to argue with you. While I could certainly allow this to become an argument over the results of applying relativity in the case you describe, I am not inclined to do that.

I am instead attempting to explain something to you, which is not the same thing. I do believe I know the source of your misunderstanding, which is what I am attempting to address.

The abstract concept of the infinite cannot be translated into the real world, you must be able to come up with a finite value for any practical application (or even an observation allowing one to test a theory.)

You can represent values on paper which do not exist in the real world. Ex: I can draw a unicorn, but trying to go find one would likely be a waste of time.

You are attempting to derive a physical result from something that is unphysical. This leads you to an interpretation of the world around us which is more restrictive than is implied by observation.

The note that you are a mathematician is amusing to me, my girlfriend asked me what I was doing the other day, and my reply was "trying to convey a point to someone... probably a math student."

If the student part is incorrect I apologize, but that comes from the constant arguments along the lines of "other guy is an idiot... who eats babies." This is not something you see often from those older than about 25, as it usually hurts your case more than helping it, and that is around the point by which most people will understand this.

It is unfortunately no longer a holiday, and my time is limited. You either get what I am saying or do not.

The mods liked that initial post because it clearly and concisely explained why your interpretation of reality is not necessarily the correct one.

## Comment Re:I Want to Believe. (not) (Score 1)312

I think you misunderstand your reference. The line "Assume tachyons exist and special relativity is correct" is a logical contradiction, and I will attempt to explain why.

The thought experiment you linked requires a logical violation which any person of reason knows to be impossible (specifically, greater than infinite energy.) It is not predicted by relativity, it is a discussion of what would happen if you tried to apply it in a situation to which you cannot apply it.

Einstein did a lot of this kind of thing (it was probably fun for him to discuss it.) It is not part of his theories on relativity, and you should probably look at it more as a discussion of the consequences of applying his theories in situations they are not meant to cover.

You are assuming greater than infinite energy AND time travel to even put it forward as an argument...

I see the greater than infinite energy requirement as a hard physical limit to the theory, and an implied limit for the equations involved. While this limit is not explicit in relativity, I think we can safely assume that Einstein did not intend for the theory to apply in a situation which requires greater than infinite energy.

As you approach the speed of light, energy input must approach infinity. To cross it requires a greater than infinite amount of energy.

This is impossible, both in theory and practice. This is not just a "we do not know how" situation, it is absolutely impossible within relativity.

If you do not understand why greater than infinite is absolutely impossible... I am not sure what else I can do to explain it.

He was aware that infinite + 1 does not really exist, you are apparently not. It is a "what if?" not a prediction.

Relativity is a physical theory, if you take it beyond this point you are talking about a purely mathematical construct. You cannot apply this to the physical world, as infinite + 1 does not exist here.

Relativity therefore prohibits producing a tachyon. It is impossible according to the theory due to the greater than infinite requirement, not the causality violation which this inappropriate input would produce.

Trying to do so anyway makes me think of the saying "garbage in, garbage out."

Everyone who initially discussed that was aware that it is an impossible scenario when they did so, which is why they assumed it for the purposes of that argument. They determined that the already impossible scenario would also produce causality violations, which means relativity breaks down here. This does not detract from the theory, as you cannot get this result with any valid input.

It is in fact theoretically impossible to produce a tachyon within relativity. Absolutely impossible.

If FTL communication is discovered at some point we are no longer living in a world ruled by relativity, and this must be accounted for. The theory prohibits this, and relativity has no appropriate application in an FTL scenario (this is WHY you get a causality violation.)

Causality is not relativity, it is merely that cause precedes effect. I am saying that while your observation of cause and effect may not be correct, it still does not allow you to change the past.

The cause comes before the effect, despite your observation of the order of events.

Let us construct a thought experiment of our own by taking a trip to sci-fi land:

Two advanced alien species are at war, and they have the capability to move objects from one point to another in the universe without crossing the space separating these two points (FTL.)

Side A fires an FTL missile which destroys a ship on side B.

The observation in half of the relativistic light cone will be that effect preceded cause (the missile destroys the ship before it is launched.)

So what happens?

1) Causality violation means that side B can fire their own FTL missile, destroy the ship on side A that launched the first one, and "undestroy" the one on side B by changing the past.

2) Causality remaining intact means that while side B can fire their own FTL missile and destroy the side A ship, the side B ship will remain destroyed, as this event has already happened.

I am stating that the observation of the order of events is inaccurate due to the introduction of FTL, and the second scenario is the correct one. Cause still comes before effect despite the fact that the order in which you observe events does not show this.

The information on the cause is relativistic, the information on the effect is not. You cannot use relativity to determine cause and effect here, but cause still came before effect.

## Comment Re:I Want to Believe. (not) (Score 1)312

He did, it is also known as an Einstein-Rosen bridge.

I do not believe that he made a statement one way or another as to if he thought it would actually allow causality violations though. In some cases it would be a definite no, but it may be possible in others.

As it is entirely theoretical at this point we obviously cannot determine that.

## Comment Re:I Want to Believe. (not) (Score 1)312

I am aware of this. Again, FTL communication is prohibited by relativity.

FTL communication would allow the imposition of a single frame of reference for all observers in the context of that communication, in order to allow communication it would be a requirement.

In this situation cause and effect must be viewed in that frame of reference. The timing of events may differ in your local frame of reference, but the order would be preserved in the frame of reference used by your communication.

To preserve causality all that would be required is that all observers use this frame of reference to determine cause and effect.

You would *not* be able to observe an object traveling faster than the speed of light without violating causality.

## Comment Re:I Want to Believe. (not) (Score 1)312

You seem to have entirely missed the point of most of that... but as I noted a lot of people have real trouble with it, and I have free time to explain it better as it is a holiday.

You cannot use relativity to predict what would happen in an FTL scenario, because it is not possible within relativity. Not possible as in there is no way to do it, it does not exist. You are making a conclusion based on a theory which absolutely prohibits the scenario you are describing.

You cannot get to the speed of light with a massive particle (never mind exceed it), and energy without mass cannot travel at any other speed (although you can affect the speed of light in a certain medium, so let me be clear that we mean "speed of light in a vacuum" as the limit.)

The prediction of relativity is that FTL does not happen, not that time travel exists when it does. To restate it again (man is this horse dead) relativity says that tachyons do not exist. They are not an aspect of relativity, they are prohibited by it. Any method of FTL communication is necessarily outside relativity.

Let us define some of this better, so that the argument may make some sense to you:

1) Improper time coordination:

One or both parties are willing to put their finger on the hour hand and move it to suit their needs. Their exchange does not violate causality because they bent the rules to make the scenario possible. This is not what you are talking about, but is a valid way the exchange you described can happen.

2) Assuming time travelling signals:

If you assume a signal can arrive before it is sent, you can obviously violate causality. This is exactly what you are talking about with that argument, but the outcome is taken as a given before the argument... It is however another valid way the exchange you described could happen.

3) A change in the maximum speed at which information can propagate:

Under relativity the maximum speed at which information can propagate is the speed of light. I am speaking of any method which allows you to send information such that it arrives at the destination before a light speed signal would (FTL.) This changes the maximum speed at which information can propagate.

How this occurs does not really matter in this context. It could be a completely unknown at this time fundamental force which does allow acceleration beyond this speed without greater than infinite energy, a way of sending something without it actually passing through the space separating the two points, whatever.

And now that definitions are out of the way...

The argument here is over what would happen in a situation in which there is a way to pass information such that it arrives before a photon could under relativity, more specifically if it must allow a causality violation.

You say it must necessarily allow effect to happen before cause, I say that is not assured.

The clock synchronization statement is to get rid of the first scenario I listed, as I mean to assume that both clocks are stating the same thing. If they are in motion relative to each other you must account for this (such as we do with GPS.)

It is easier to assume they are at rest with respect to one another (and does not detract from the argument to do so.) This lets us do away with relativity and use a Newtonian view of the universe with respect to the status of their clocks.

I suppose I can clarify this further by saying two points three light hours away from each other, but also with no relative motion with respect to one another (or anything else that would cause time dilation for either observer with respect to the other, such as gravitational forces.)

This leaves us with only the causality implications of the signal traveling faster than light (which is the discussion.)

This signal does not need to allow a causality violation, as no matter how "fast" it gets there the signal will never be received before it is sent (even if the time on both clocks does not change between when it is sent and when it is received.)

If a signal can transverse the three light hours in one second, you have FTL communication. You cannot however send the message, have the other party receive it, and send it back before it was sent.

Causality would be intact, but relativity would not.

The degree to which FTL communication would require changes to relativity depends upon how it is achieved, so that is difficult to speculate on. I will point out that while our world view changed when our understanding moved from Newtonian motion to relativistic motion, it does not mean that Newtonian motion is wildly inaccurate. What happened is that we understood more, and now have a theory which includes both what Newton described, and additional behavior which it did not. Relativistic effects are outside newtons theories of motion and cannot be described within it, much like FTL is outside relativity.

This may very well happen with relativity as well at some point in the future, as our understanding of the physical laws of the universe is most certainly not complete.

## Comment Re:I Want to Believe. (not) (Score 5, Informative)312

Your example says absolutely nothing about violation of causality due to a change in the maximum speed at which information can propagate. You are either describing a situation in which there is improper time coordination, or you are assuming time travelling signals to start with.

While there are no known methods by which information can propagate faster than light...

If something were to be discovered which could do this it would not necessarily violate causality, it would merely prove that relativity is either incorrect or incomplete (even if it were to allow instantaneous travel to any point in the universe, and the new maximum speed is therefore infinite.)

In order to violate causality you would need to be able to receive a message you sent before you sent it.

Instant propagation of information would likely allow a universal clock across all space, and you could coordinate time by that. You would need to adjust for the faster travel time if you are synchronizing your clock based on the speed of light, but it would be trivial to do that anyway.

Under relativity it is undefined what would happen if you could travel faster than light, as the theory does not allow this. It is basically not usable in this case, and trying to do so would be foolish (it simply does not cover what you want to do, and you obviously have information that Einstein did not when he came up with it if you are communicating FTL.)

If I could send this post beyond the edge of the known universe and back with zero travel time I still cannot read it before it is written, and causality remains very much intact.

The only thing that would change is that if you are three light hours away, I could get a message to you three hours before an electromagnetic signal would be capable of. We would be able to converse in real time instead of with the delay, nothing else.

If you could produce the post I just wrote before I wrote it, you would have a causality violation. No rate of travel allows this, no matter how large it is.

I am not sure why this is so hard for many people to understand.

## Comment Re:Good habits (Score 1)793

That last time I did that...

The client asked if I could give them a Java version of what was an already existing C program. The logic was easily translatable to Java, so I did that.

What happened of course is that I copied it to a Java class, changed the few things I needed to, and gave it to them.

It was very much C code wrapped in a Java class, but honestly what else would you expect in that case?

## Comment Re:Maybe because it compiles down to the metal... (Score 1)793

You know there are no pointers which reference an improper address because you are the one who assigned the address.

You know that your array is large enough because you either allocated an appropriate amount of space, or assured that you only read enough from your input to fill your static buffer.

You know your string is null terminated because you put the terminating null there.

Most of these will cause a crash, and are therefore easy to find... but these are the kind of mistakes that an experienced C programmer very rarely makes. The learning curve on C (or C++) is the real problem, as there is a period in every programmers career where they are new.

## Comment Re:Maybe because it compiles down to the metal... (Score 2)793

Diagnosing and fixing memory leaks is in fact trivial. Not only are there very good tools to tell you what is leaking, but it is extremely uncommon for someone to make this kind of mistake if they are an experienced C programmer.

If this is a real problem in your code, it probably means you have too much code dealing with memory management. This is almost always a result of being a new programmer (or at least new to having this kind of control.)

## Comment Re:Control (Score 1)793

The C standard defines many things explicitly that other languages do not. The minefield exists in all languages with more than one implementation, it is just that in C you get a map with known mine locations, and areas which you should probably check for mines before you go walking there.

C compilers are generally by far the most stable, as the operating system is also written in C. If the system C compiler contains major bugs... chances are that the operating system is very unstable as well.

## Comment Re:Recursive? No, very iterative. (Score 1)622

None of those languages are stupid or awful, they all have their place.

C: Any even reasonably decent compiler will bounds check for you if you ask it to, there is simply no point outside of a debug build in most cases.

All of the errors you mentioned are an error in any language. Reading or writing past the end of an array is as much an error in Java as in C, not initializing a variable is an error in both Java and C (the NULL pointer.) You can trap the page fault in C if you want and pretty much give the exact same result anyway, but a crash is a crash. It does not matter to your user if it is the operating system noting an access violation on some memory, or a Java program encountering an exception that it cannot recover from.

C++: Yes it includes everything (you want kitchen sinks?... what color?) I will admit though, I recently was very glad that TR1 regex exists in C++, it saved me from having to write that program in Perl (in true C++ style, it even offers you the choice of any popular regex syntax.)

Mostly people who primarily write C++ do not use the entire thing, many basically are writing C with just a few extra features in use.

Java: Significant defense against a bad programmer (part of why it is so verbose.) It is a godsend for large projects where you may have many programmers of unknown quality.

If you turn a new (or simply bad) programmer loose in your large complex Java code base for a few weeks they will be unproductive.
If you turn a new (or simply bad) programmer loose in your large complex C++ code base for a few weeks... I hope you have backups.

## Comment Re:Recursive? No, very iterative. (Score 1)622

If "most tasks" means reading some XML document or HTTP post and writing it to a DB... then yes, Java is about as fast as C.

This is probably what most people who write software for a living do, so it works. I should also mention that pretty much any language works here, they are all fast enough for this (some differences, but close enough that it just does not matter.)

If you are talking about a program that does some simple CPU calculation like listing prime numbers, it will also be somewhat close (although a decent C implementation should be slightly faster.)

If you are talking about something more complex, this is not so true. There are types of solutions that are simply not available to you in a language which does not allow you to manage the layout of your address space. It becomes more important when your address space is much larger than physical memory, such as a modern 64-bit program (not that current implementations actually give you 64-bits of address space), or a 32-bit program from the era where 64MB of memory was normal.

For the quick example:

If you have a task that has a large but limited number of possible results (enough to more than fill physical memory) the obvious choice is to make a list, and if you need to add or update a result you look it up (which means you either crawl the list, or you sort it and search it.)

This is nearly optimal in Java, or pretty much any language which manages memory for you.

There is a better (as in far faster) solution available in C though. You can allocate enough space for all possible results and calculate the index of the result you want. All pages (a 4k block of memory corresponding to a Page Table Entry... which is basically hardware memory managment) end up being noted as zero filled and no physical memory is actually allocated until you write a value to that page (you do not use malloc() for this, you use the operating system allocation functions.)

Why is this so much faster?

Because it completely avoids all of that time intensive sorting and searching (or list crawling.)

The C lookup is a very quick calculation that probably involves numbers which already reside in a register (or at least some level of the CPU cache.)

The Java lookup requires that you read from memory enough to do a binary search on each list (not to mention when you add to it and need to resort the list... even fast insertions in a sorted list are not that quick.)

The C version will usually use less physical memory as well (not assured as there is a pathological case where one value on each page is updated.)

In a complex enough program, this can easily lead to a run time which is several orders of magnitude lower than the Java version.

You may contest by saying the Java version is not performing 10,000 times as many operations, so how can it be so much slower?

The answer here is that CPU speed has very little to do with how quickly most programs execute these days. It is almost always memory bandwidth or latency that will be your limiting factor.

The calculation involving a couple of numbers already in a register is extremely fast, the random reads from main memory are not. In needing to transfer more from memory for the lookup, you are also competing with the information the program really does need to read from memory (and any overhead the JVM imposes.)

There are many other things which you can do in C but cannot do in Java, but this is one of the easier to understand ones.

In short, if you write the same program in C and Java, they will be somewhat close in speed. You can however frequently write a C program that is much faster, produces the same results, and is not possible to write in Java.

Removing control of memory from the programmer restricts the solutions which are available to you quite a bit.

I should also note that managing memory is not really all that much of a burden. If 10% of your code is memory management, you probably botched it badly.

## Comment Re:Good question (Score 1)2416

An overview as well as the full text is available at http://www.healthcare.gov

If you have no legal background I would recommend using the overview, which does cover things like this without a full reading of the law. The law itself is 1000 pages, and even as large laws go is not easy to read (not that I am claiming to have read the entire thing.)

If you want to read it anyway, the page numbers 45 - 48 mostly cover what you want.

The sections you want are:

SEC. 2705 [42 U.S.C. 300gg–4]. PROHIBITING DISCRIMINATION
AGAINST INDIVIDUAL PARTICIPANTS AND BENEFICIARIES
BASED ON HEALTH STATUS.

And the section you really want on premiums (which I will quote the truly relevant part of):

‘‘SEC. 2701 [42 U.S.C. 300gg]. FAIR HEALTH INSURANCE PREMIUMS.
‘‘(1) IN GENERAL.—With respect to the premium rate
charged by a health insurance issuer for health insurance coverage
offered in the individual or small group market—
‘‘(A) such rate shall vary with respect to the particular
plan or coverage involved only by—
‘‘(i) whether such plan or coverage covers an individual
or family;
‘‘(ii) rating area, as established in accordance with
paragraph (2);
‘‘(iii) age, except that such rate shall not vary by
more than 3 to 1 for adults (consistent with section
2707(c)); and
‘‘(iv) tobacco use, except that such rate shall not
vary by more than 1.5 to 1; and
‘‘(B) such rate shall not vary with respect to the particular
plan or coverage involved by any other factor not
described in subparagraph (A).

# Slashdot Top Deals

"All the people are so happy now, their heads are caving in. I'm glad they are a snowman with protective rubber skin" -- They Might Be Giants

Working...