Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

Are you saying that the only reason he works hard is so that he can keep other people poor?

Not at all, that is not an inference that was intended at all.

It is not important that everyone else not have what he has.

But yet it IS important that he get more than an average person? Your original response made it abundantly clear that he should get more than his peers. Regardless of how much everyone else has, your friend should get MORE?

"MORE" is a relative term; that only has meaning when compared to someone else. You didn't argue that your friend should be able to work hard to get the things that he wants -- you argued your friend should be able to work hard to get MORE than other people.

He is motivated to do what he does because more resources grant him more security and more interesting situations.

EXACTLY. This is what I expected.

I asked those leading questions to illustrate what you suggested with your argument, where you implied he need to get MORE. I expanded that to its inevitable conclusion. But he doesn't really need or want MORE at all does he?

So he would not care whether or not everyone had an equal share of wealth, provided he can get what he wants for himself: sufficient security, and the ability to pursue the opportunities that interest him, and so forth. That would satisfy him.

So it seems he'd be perfectly happy if the average were sufficiently higher, such that he was secure and was able to pursue those interesting situations.

Is demanding that others be inappropriately rewarded a positive personality trait? No.

Define "inappropriately rewarded". Because without context you just wrote that sharing and charity are both negative personality traits.

Reality says that there are limited resources.

Finite yes. But is there less then enough? What if there was enough.

There is only so much food

What if mechanization produced more than we all could eat?

only so much energy

What if we advanced and harnessed enough via fusion or solar or whatever to provide all we need, not just what I need, but enough for everyone to have enough?

only so much oxygen

That's a good example, of something that there currently IS enough of. Nobody has to pay for it. Do you think people who work harder should get more? Do you think layabouts should get less? Do you really have any objection to there being enough clean oxygen for everyone to breath as much they like?

I am perfectly fine with people carving resources out for themselves. I am not okay with people taking resources from the people who are gathering those resources because those people feel that they deserve something just for being alive.

Do you go around carving oxygen out for yourself? Imagine food and energy were available like that. Would you begrudge other people food and energy if you had all you wanted?

I can guarantee you that if you and your friends come to take what me and my friends have created, we will kill you. Thieves are weak. Builders are strong. You have no chance.

Wow, that was a left turn into nutjob absurdity just there at the end. Lets just pretend you didn't go there.

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

Now explain to me why he should be rewarded the same as someone who does not do what he does

Firstly, you cherry picked your friend out of the teeming masses of people who work hard and said "hey this guys doing really great and he works really hard, why doesn't he deserve it!?" Of course he deserves it. I'm not saying he doesn't.

Now go back to that teeming mass of humanity and look at all the people who work just as hard and are living in a one bedroom apartment trying to make ends meet. Do they not also deserve better? Why does your friend deserve 200k per year and they don't?

Trust me, your friend isn't more motivated. He just got lucky. That's not to say the choices he made were not a factor, or the fact that he works hard is not a factor. They absolutely shifted the odds in his favor and he deserves recognition for the effort... but he could just have easily been unsuccessful in spite of his "hard work". Lots of people are.

For just one example of thousands, your friend could have randomly contracted cancer at a young age and it would have completely changed the direction of his life. Lets assume he's still be the same motivated hard working guy today... the years in treatment would have taken their toll, lost opportunities... time away from work and school for treatment, etc...would he have ended up precisely where he is today if he'd had a 7 year struggle with cancer in his early 20s? Its doubtful.

Secondly, the way you've phrased the question, it seems that its not merely sufficient that your friend be satisfied with the quality of his life for its own sake, but that its especially important that he get MORE than most other people? Can you explain to me why you feel its so important that everyone else not have the things your friend has? Would your friends enjoyment of his life be diminished if more other people were rewarded the same as him?

Does your friend really value getting more than you that highly? Is that really the only reason he's motivated to do what he does? Just to have more than the people around him? Is that really a positive personality trait? A virtue? Something humanity should put on a pedestal and say "be like that"?

Why?

I really really really am hoping that you are talking about those people who inherited their money and use their position of power to reap more power rather than talking about my friend who is actually working

You raise an issue here unintentionally -- that only further illustrates the level of blind luck success really is.

Not only do you have bright motivated hard working people who are not successful, we have wealthy people who have done nothing at all.

And this is the system you favor? Because sometimes, if you are lucky (or at least not unlucky), working hard pays off, but probably far less than many of your wealthy peers simply inherited? And if you get unlucky... well... sucks to be you. That's your idea of a good system?

Comment Re:Where the fault lies? (Score 2) 231

Because throwing the keys away on an encrypted drive is more secure than overwriting an unencrypted drive with zeros, as the data recovery experts will be glad to tell you.

But that's a false choice. There is a 3rd option... do both.

Take your most private information, encrypt it, and put it on a flash drive.

Then go and sell or give that flash drive away to someone else.

Are you really going to say... well they don't have the keys, so we're good. Here you go. And hand them all your data intact (but encrypted).

Or would you maybe just maybe think, yeah its encyrpted... but why tempt fate? Maybe I'll erase it first.

I mean is there any good reason NOT to erase it first?

Comment Re:Python for learning? Good choice. (Score 0) 415

But it is a real world coding language.

For sure.

The reason C++ is a bad learning language is that its overwhelmingly complicated -- both the syntax due to all the extensions, but also the evolution of the standard libraries with tons of ways of doing the same thing, and then throw backs for close but not quite 100% complete compatibility with C.

It's really beneficial to approach C/C++ with already having a grounding in structured programming, data structures, etc. And ideally a course in C without C++ so you can see where one ends and the other begins. (And its also a smaller bite to chew.)

I came to C/C++ by way of BASIC then Pascal then C/C++ (self taught in high school) and while that's not really a modern route to take, I think the idea still holds. By the way, the order of languages I was exposed to in university, was Modula2, Lisp, Java, then C++, and then various other courses were in special purpose languages ML, Smalltalk, Verilog, Visual Basic, Maple, there was a course I took that used some pseudo assembler language I've forgotten the name of, and probably a few more I've forgotten about completely. I think I graduated pretty well rounded in terms of exposure to different programming paradigms, which is what I think the program was trying to achieve rather than mastery in any given language.

It sounds like the course you are describing is a more advanced algorithms class -- implementing quicksort, or shortest path finding in graphs... so everyone in it should already know how to program. And C++ honestly sounds like a suitable language to teach that stuff with.

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

You assume that the majority of people are going to use that free time contributing to society.

I assume no such thing. We were only talking about *motivated* people. The one's who wouldn't be satisified by lounging about drinking beer and watching TV.

What are they doing with their free time?

Topping the charts for "happiness" in the world, ranking high as entrepreneurs, opportunity... etc.

trying to claim people would automatically use the vacated time for the greater good of society is incredibly disingenuous.

That's fair, and I didn't mean to say that. As I said, the context of the conversation was "motivated people who work twice as hard as everyone else"... I assume *those* people would find something fulfilling to do, whether its a "contribution" to society or they spend all their time climbing mountains and skydiving is beside the point -- I'm sure they'll be doing something they find interesting.

Comment Re:Python for learning? Good choice. (Score 1) 415

We use white space to communicate our programs' block structure to other humans. Why should we use a different syntax to tell the compiler the same information?

What -should- happen is the compiler flags when the whitespace doesn't match the semantics as an error. Then the programmer can reformat it (automatically in most cases) to match the code, or fix the code if necessary to match the formatting.

Computers should conform to the needs of humans. Full. Stop.

Agreed. And by forcing humans to manipulate whitespace directly and manually you are not conforming to the needs of humans. Full. Stop. :)

Humans cannot 'see' whitespace characters -- that's what makes them white space. Therefore it is awkward to manipulate as a result, and is easily mangled or corrupted by many tools which do not religiously preserve whitespace... because its white space ... and the vast majority of tools view whitespace as token separators not semantic unto itself. And this is because this is how humans view whitespace too for the most part. So what python is doing is weird by human conventions.

Comment Re:Interesting, but not a Turing machine, unless i (Score 1) 26

We're way off in the weeds here, of course, but that's cool. I don't mind playing in the weeds.

Way out there. :)

You've defined a language that can only update eight bits at a time, and additionally you've said it updates them only in certain patterns. That's not Turing complete.

No you are mistaken.

From the point of view of the LANGUAGE, each bit is individually and directly accessible. All the language sees is

0, 1, 0, 1, 0 ...

The implementation of the language however, runs on x86, and uses a byte to represent each 0, and each 1. (as 00000000 and 00000001 respectively.

When the language saves a file out to disk, it writes out its binary bits one bit at a time, but they are each saved as a byte. When it reads them back in, the byte 00000001 is read, and stored in memory as 00000001 in a byte... but the language, just sees 1.

The problem if you try to write a C compiler in the language, is that as far as the language is concerned the first 8 bits of the program it compiled *IS* 11010001, however, what is in the physical computer memory to represent that is 8 bytes each 000000000 or 00000001. What gets written to the file on the disk is the same. The representation of the compiled C program I generated, is mathmatically equivalent to the actual C program ... but it cannot be run as the representation is wrong.

One of the very few things required by the definition of a Turing machine is that is has to be able to update memory one value at a time

The definition of a turing machine places NO restriction on the representation of its "memory".

So you are mistaken or misunderstood what I've done. I am *absolutely* free to use arrays of 8 bit bytes that each contain one of 2 bit patterns to simulate a turing tape.

You've defined a language that can only update eight bits at a time, and additionally you've said it updates them only in certain patterns. That's not Turing complete.

The language doesn't see 8 bits at a time. The arrays of bit patterns are an implementation detail that the language is not 'aware' of.

If we want it to be Turing complete, we can interpret it as one value by saying that the LANGUAGE writes "1" and the HARD DRIVE happens to store that physically with eight molecules.

Ok... yes. Exactly Right. Except that rather than molecules I'm asserting the language simply dumps it to the hard disk using the logical file system already in place (say by Windows or Linux or whatever) the way its stored in memory... as a stream of bytes, containing one of two patterns.

. Fine. The language can write 1010101, 11111, 0000, 01010, or any other series since it's writing one value at a time. Perhaps the hard drive stores "10" physically as 1111111100000000, but the hard drive is going to read back what was written to it. Write a "1", get a "1" back.

Right again. So far so good. The language writes a "1" and it reads back a "1". Yes.

Given that the tape doesn't change what's written to it, the language can write valid machine code and get valid machine code back.

Swing and a miss... ok not a miss... foul ball.

It can read and write "valid" machine code back, subject to the constraint that we view it from within the language / language implementation. If we look at what is actually in the physical computer memory, it is not valid machine code from the physical computers perspective.

This language can compute results that are logically equivalent to machine code, but they are not actually usable as machine code. We can't simply set the ACTUAL CPU instruction pointer to the spot in physical computer memory I'm storing my compiled C program because it is just a sequence of 111111111 and 000000000 ... a representation of the machine code, but not usable machine code itself.

Further because the language *implementation* provides no way of setting the physical bits of the *underlying* computer in an arbitrary way, there is no way to directly compile to usable machine code using this implementation of the language. DESPITE it being a Turing complete language, and despite the implementation being sufficient to simulate a Turing machine.

You can't have it both ways.

Can and do. We have 2 Turing machines!

The language / implementation / system only needs to be internally consistent with the requirements for Turing completeness to be Turing complete. If I *layer* Turing machines such that one runs on top of another one -- which is exactly what I've done by taking an actual computer (Turing machine 1) and implementing my toy language on it (Turing Machine 2). TM1 is therefore effectively simulating TM2 which is fine. But there is no requirement that TM2 be able to directly control TM1 for TM2 to be Turing complete.

TM2 -- might be able to control TM1 -- and in fact in many such layering scenarios this IS possible. But it is not a requirement, and some scenarios exist where TM2 can't control TM1.

Clearly then not all Turing machines are equal in all ways. ;)

They ARE of course equal in the specific way identified by the Church-Turing thesis, which effectively states (amongst other things) that any TM can simulate any other TM (implying that any TM can 'host' another TM).

But it does NOT make any claims about the hosted (or simulated) TM being able to control or directly reprogram the simulator simulating it (ie re-program and control its own host). And it turns out there exist TMs which CAN directly reprogram the TM hosting them, and TMs that cannot.

So to illustrate:

x86 PC (TM1) can simulate ARM PC (TM2), and then of course TM2 can turn around and emulate an x86PC (TM3)... etc ad nauseum per Church-Turing.

Suppose in this case though that TM2, being an emulation of an ARM based system was implemented such that not only can it arrange its own "simulated memory" in arbitrary ways, but can also effectively arrange the memory of TM1 in arbitrary ways, it can also, at least in theory, emit machine code and directly reprogram the TM1 that is simulating it.

It can control and program the *actual* TM1, not just TM3 which is itself a simulation of the same type of computer that TM1 is.

Church-Turing only requires that TM2 be able to simulate TM3, not control TM1.

contrast to:

x86 PC (TM1) can simulate my-toy-turingmachine (TM4), and TM4 being Turing Complete CAN simulate an x86PC (TM5)
Because the implementation of TM4 lacks the ability to arrange the memory of TM1 in arbitrary ways it cannot directly control TM1, even though it can simulate a machine equivalent to TM1. (In this example that's TM5)

Comment Re:Python for learning? Good choice. (Score 2, Insightful) 415

If you're copy-pasting enough code from web forums

Ah yes, because teaching yourself from online resources like the web is a bad idea. And one should always retype everything from scratch despite it already being more or less what you want one window over.

and emails for this to be a problem

Well, not so much in practice, because it's a waste of time, so we have to diddle around with little attachments etc because trying to put any code in the email body directly is likely to barf on itself.

It would be nice not to have to though.

I'd suggest the language is not the only thing that's idiotic.

Of course you would. Attacking my intelligence is really the only way to defend your fanboi love of phython's, despite its ridiculous semantic whitespace.

Because defending semantic whitespace on its own merits is hard.

You know what though, I'd be perfectly happy to use a C++ / C# / Javascript ... IDE that validated formatting to set standard and flagged down anything that wasn't right. So you could look at it and then either fix the code to match how you formatted or (a 1000x more likely) click "automatically reformat" so the formatting matches the code.

That really gives you the best of both worlds. Assurance that the formatting reflects the semantics (a good thing), without actually defining the semantics with whitespace (the idiotic thing).

Comment Re:Python for learning? Good choice. (Score 1) 415

As opposed to pasting misformatted shit that causes confusion and bugs?

Yes, as opposed to that. Which almost never happens.

And I have the IDE reformat code pretty regularly (and before check-in) so the rare case of mis-formatted code that someone might actually be confused by doesn't stick around long.

Whereas in the course of maintenance and composition I mangle (or encounter mangled) python code that needs to be reformatted manually all the time.

So yeah, I'll take the almost never happens and usually is harmless scenario in other languages over the happens all the freaking time and is routinely a PITA scenario that is Python.

Comment Re:Python for learning? Good choice. (Score 4, Insightful) 415

I'm a C++ programmer by trade but there's no way I'd wish that language on a student

Agreed. Its not a learning language.

I only wish Python would allow stricter interface constructs...

I only wish python didn't have semantic whitespace. That's it. Otherwise i like it just fine.

I want the compiler/IDE/whatever to pretty-print and reformat my code to reflect program semantics, not have me spend my time formatting it to DEFINE program semantics.

A programming language that can have its code be destroyed by copy-paste / email / web-forum formatting mangling is simply idiotic.

Comment Re:sure it does. If you sandbox J, it's sandboxed (Score 1) 26

The fact that people often choose to run a program in a sandbox doesn't mean anything about the language(s) the program is written in.

The fact that you can theoretically put any language into a given sandbox or theoretically take it out of one is not equivalent to a real ability to actually do it in the real world today.

It's not easy in any language. It's possible in any.

Imagine a turing complete toy language which only operates on binary values. The only implementation of that language allocates a byte to hold a one or a zero. An "8 bit integer" would require 8 bytes of computer memory. Horribly wasteful I know, but its still a turing complete language.

You cannot implement an x86 C compiler in this language. (At least not today.) Not because the language itself is incapable of computing it, but the implementation of the language lacks the ability to output valid x86 C code that an x86 CPU will execute. If for example, my executable program needs to have its first byte as 110100011, this language cannot output that. I'll get

00000001, 00000001, 00000000, 00000001, 00000000, 00000000, 00000000, 00000001

which can be shown to be mathematically equivalent by a simple function of ignoring the leading 7 bits of each byte and placing the remaining 8th bit into a single byte. BUT this language lacks the capability to actually do THAT in practice.

I could even write an x86 CPU emulator in my toy language and use it to run my "equivalent to x86 but not x86" machine code. The emulator would emulate the 32-bit CPU registers with 32 bytes each containing 1 bit, etc...

But no matter how much I twist and contort, I can't get 11010011 into a single hardware byte. I don't need to do that for the language to be turing complete, since it can *simulate* the ability to do that, without actually doing it.

And THAT is my point. Church-Turing is satisfied by simulation. A simulation of a thing isn't necessarily precisely the same thing as being able to actually do the thing directly.

Now of course, one could re-implement the language differently (allowing bits to set within a physical byte), and then one could do this. But the reimplemention would have to be done in a different language -- one simply could not bootstrap what was needed from the original implementation of the language.

Despite it being Turing complete.

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

I don't follow why you even think I'm arguing that mechanization could or would directly solve this problem?

Why are the children abused and neglected? Seems like there is a cycle in place -- were the parents have unmet problems -- those would need to be identified and resolved to break out of the cycle.

Clearly the fact that the neighborhood is "depressed economically" is a factor -- but the choice of economic system or degree of mechanization isn't going to automatically provide parenting, education, or hope.

Mechanization may alleviate some of the economic factors, but I don't expect it is a solution by itself.

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

What level of mechanization makes it possible?

Essentially: post-scarcity of labor as a mechanized resource.

Humans won't be required to perform labor to produce food, shelter, and menial maintenance tasks.

In such a hypothetical society it makes sense for the society to collectively own that mechanized army of labor.

Comment Re:Misused? Murder is intrinsic in communism. (Score 1) 530

The problem with your assessment is that...

Is nothing. I concluded my post with the observation that there are lots of genuine problems with communism. This is one of them. You've provided an example, good job.

The hypothetical solution to this problem is mechanized labor of sufficient sophistication that it can perform these jobs. The availability of this automated labor, in sufficient quantities such that humans do not HAVE to clean sewers or haul trash etc. A post-scarcity society.

Slashdot Top Deals

It is easier to write an incorrect program than understand a correct one.

Working...