> Ruby is a nice language, but I don't think it > comes out of an educational background. Its > syntax is cleaner than Perl's but doesn't seem > like it would be all that intuitive to > non-computer users either (both Smalltalk and > Logo seem better in that regard).
I don't know Logo, but I think non-programmers would find Ruby a lot more intuitive than Smalltalk. In Smalltalk, 2 + 3 * 4 is 20. In Ruby, it is 14, just as you'd expect it to be.
Python is a better choice choice for newbies, and it has some good primers. However, Ruby still has an edge. It has much better booleans. It doesn't care about indentation (the most frustrating thing for a newbie is when a program doesn't work because of something that is *invisible*, like a Python program that misbehaves because it has a tab where the programmer believes it has spaces.)
Ruby also continues to be natural as you learn more. You don't have to use weird kluges to get class variables. There's no diamond-inheritance headache (Ruby mixins accomplish anything you might want multiple inheritance for, but more cleanly). No doc-string abuse. And Ruby's more flexible syntax increases the likelihood that a newbie's program will actually run, which greatly reduces the newbie's frustration (an especially important issue if the newbie is a kid).
I second that. It's slightly dated, but it is
much clearer than any other linux book I've seen.
And it is clear by virtue of good writing rather
than by restricting itself to the trivial. It would be great if he came out with a new edition.
Looked at the link you gave -- this just looks like regular spread spectrum stuff. Interesting, but is it a panacea? In the military applications for which this was originally developed, it made a lot of sense; but imagine thousands of spread-spectrum users operating at once. Each one of them is noise to all the others, noise that can only be surmounted by turning up the power. But if they all turn up the power, they get nowhere.
Another problem is range. Because of the differing attenuation of different frequencies and because the highest frequencies propagate pretty much along the line of site, you will get very bad distortion. Not enough to matter over the distances concerned on a typical battlefield, but I doubt you could call your mom cross-country with it.
This isn't to knock the technology, which is cool and which is nice to see in civilian uses, but just to suggest certain limitations. I'm sure someone more knowledgeable than me could make a better case, telling us how much use spread spectrum could get before it is saturated.
Re: "A radio signal can be modulated within an almost infinite range." You don't understand the problem. Consider a radio signal. For our purposes it is an Electric vector whose strength and direction varies with time. If it is a sinusoid, it is a "pure" frequency, and occupies a single point on the spectrum. But even if it is not a sinusoid it can be considered as the superposition of (generally infinitely many) sinusoids. This viewing of a time signal as a superposition of sinusoids is the Fourier transform. Now a lot of natural and technological constraints really depend on the frequency content of a signal rather than directly on its time content. If you make a rapid modulation of the signal, you are automatically using very high frequencies. Thus your signal gets the high fequencies' problems
It's really natural, once you get used to it, and the syntax enforces good style. As for the tabs...don't use true tabs! Use emacs python-mode with the tabs meaning a certain number of spaces.
> Ruby is a nice language, but I don't think it
> comes out of an educational background. Its
> syntax is cleaner than Perl's but doesn't seem
> like it would be all that intuitive to
> non-computer users either (both Smalltalk and
> Logo seem better in that regard).
I don't know Logo, but I think non-programmers would find Ruby a lot more intuitive than Smalltalk. In Smalltalk, 2 + 3 * 4 is 20. In Ruby, it is 14, just as you'd expect it to be.
Python is a better choice choice for newbies, and it has some good primers. However, Ruby still has an edge. It has much better booleans. It doesn't care about indentation (the most frustrating thing for a newbie is when a program doesn't work because of something that is *invisible*, like a Python program that misbehaves because it has a tab where the programmer believes it has spaces.)
Ruby also continues to be natural as you learn more. You don't have to use weird kluges to get class variables. There's no diamond-inheritance headache (Ruby mixins accomplish anything you might want multiple inheritance for, but more cleanly). No doc-string abuse. And Ruby's more flexible syntax increases the likelihood that a newbie's program will actually run, which greatly reduces the newbie's frustration (an especially important issue if the newbie is a kid).
Currently, Ruby is interpreted, not byte-compiled.
It is, however, the most enjoyable scripting* language to program in.
* Or post-scripting, or VHLL or whatever the heck you want to call languages like Ruby, Python and Perl.
I second that. It's slightly dated, but it is much clearer than any other linux book I've seen. And it is clear by virtue of good writing rather than by restricting itself to the trivial. It would be great if he came out with a new edition.
Looked at the link you gave -- this just looks like regular spread spectrum stuff. Interesting, but is it a panacea? In the military applications for which this was originally developed, it made a lot of sense; but imagine thousands of spread-spectrum users operating at once. Each one of them is noise to all the others, noise that can only be surmounted by turning up the power. But if they all turn up the power, they get nowhere.
Another problem is range. Because of the differing attenuation of different frequencies and because the highest frequencies propagate pretty much along the line of site, you will get very bad distortion. Not enough to matter over the distances concerned on a typical battlefield, but I doubt you could call your mom cross-country with it.
This isn't to knock the technology, which is cool and which is nice to see in civilian uses, but just to suggest certain limitations. I'm sure someone more knowledgeable than me could make a better case, telling us how much use spread spectrum could get before it is saturated.
Re: "A radio signal can be modulated within an
almost infinite range." You don't understand the
problem. Consider a radio signal.
For our purposes it is an Electric vector whose
strength and direction varies with time. If it
is a sinusoid, it is a "pure" frequency, and
occupies a single point on the spectrum. But
even if it is not a sinusoid it can be considered
as the superposition of (generally infinitely
many) sinusoids. This viewing of a time signal as a superposition of sinusoids is the Fourier transform. Now a lot of natural and technological constraints really depend on the frequency content of a signal rather than directly on its time content. If you make a rapid modulation of the signal, you are automatically using very high frequencies. Thus your signal gets the high fequencies' problems
It's really natural, once you get used to it, and the syntax enforces good style. As for the tabs...don't use true tabs! Use emacs python-mode with the tabs meaning a certain number of spaces.
"Who here would ever really need windows tilted at some neck-wrenching angle whilst actually trying to get something done?"
Well, me. I like to slouch in my chair and stick my feet up on the desk while typing sideways. Oink!
Do I have to worry about the Vigor Assistant too?
oink!