... and once you've finished composting them, don't forget to turn your electric heating up a notch.
I burn my private papers on my fire, and it helps heat my house. I may create a little extra CO2++, but at least it's largely sustainable (unlike gas or the fossil fuels used to produce electricity). More importantly, there are zero generational or transmission losses - the heat's produced right where it's used. Can't get more efficient than that.
> (if I'm not mistaken, if you had a perfect sphere, any object > inside of the sphere feels zero gravitational force
Err... did you mean to say this? It's not zero-gravitational force, otherwise coal-miners would float around!
You only feel the gravitational force of the sphere below your feet. As you get closer to the centre of the sphere, the force drops towards zero. As you say, the mass above you cancels the distant mass on the other side, so if you were inside a hollow sphere, you'd feel no net force at all. Being underground is like being just inside hollow sphere A, which is filled with solid sphere B. A's field cancels out, and B is all that's left; as you go deeper, B becomes smaller, and so does its gravity.
I suspect you already know this, because of the way you phrased the rest of the post, so I'll just shut up now...
The actual speed that light achieves travelling through different materials varies according to the material. It goes much slower through glass or water - hence refractive effects.
When people talk about the speed of light as a theoretical maximum speed, as in relativity, they're normally referring to its speed through a pure vacuum.
Most astronomers agree that the density of interstellar material is way, way lower than would be needed to make any appreciable difference to the speed of light - water only slows it down by 30% and there are about 1e23 water molecules per cc in normal earth water. Even in a dense dust cloud in space, there might only be one atom per cc. (Quick note - that's a total guess, but I recall the estimate that outer space contains only a few atoms per cubic mile, so I'm throwing in a factor of a 1e10 to make up for it!)
On the other hand, there have been a lot of discussions as to whether the speed of light may have changed over the life-time of the universe, which would make our size figure wrong. But if the speed of light changes, it affects lots of things - rates of atomic reactions, strengths of fields and forces, masses of particles. So if it were different, there's a bit of a consensus that the universe in the past would have been a lot more different to now than it appears to have been. It's an interesting idea though.
Of course, one way in which universal expansion does "thin" the light is to dilute its energy, and hence reduce its frequency. And that's why we get a red-shift, which is how we know that there's expansion at all. So, actually, you're right! - but it's energy, not speed that's affected.
One, as has been observed, is that the power issue is to do with managing the heat generated by the CPU, not the costs of providing that power.
The other is that an increase in component count doesn't imply a proportional decrease in gate count. A large amount of chip space is devoted to wiring and module interconnections, so just because the gates are twice as big doesn't mean that the die needs to be twice as big. In fact, if the extra transistors can be "snuggled in" to the existing cell designs, then you might find that the gate sizes don't increase much either.
It might even help - the power supply tracks won't need to be so meaty!
Now, it may be that reversible systems require a massive increase in hard-to-place transistors and long wires - in which case the above doesn't apply! But I guess my point is that the relationship between component count and chip area is non-linear - I remember when we first started working with CMOS instead of NMOS, and it became clear that just because there were twice as many transistors, it didn't mean that the gates were twice the size.
>You might also ask yourself why you're working ten hours a day. Trust me, on your deathbed >you're not going to look back and ask yourself, "darn, why couldn't I have worked *just >a few more hours*?!?"
:-) Yeah, but it depends if you like and respect what you do.
Some (not all!) of my happy memories are of times when a group of us put serious effort in at work and achieved something nobody thought we could do. And some of my regrets are of times when work became "just a job", and we failed to achieve much because there was no spirit.
It was written by Edsger Dijkstra (one of the most influential thinkers in software design). A great guy. Died last year, I think.
But he wasn't talking about teaching - he was talking about conceptualizing - in particular, about reasoning in software development and mathematics. He argued that visual design tools in programming made you focus on the thing that was made visible, (which is usually the easy bit), rather than the hoards of less visible possibilities, wherein lie bugs, limitations and assumptions.
He's probably right - although I know enough programmers who have problems expressing the basic requirements to suggest that a bit of vision can upgrade a hopeless programmer into a fairly hopeless one. It may be that his reasoning explains why visual programming tools have never replaced the text editor for anything other than very simple software development, just as graph plotters haven't replaced equations for mathematicians!
But this has nothing - much - to do with teaching or learning....well, judge for yourself, here's the original:
To be honest, I don't think the parent post is relevant - the quote is selective and out of place. Interesting to be forced to become aware of that, though: it's a non-obvious subtlety about progression from novice to expert.
Cheers.
Richard Feynman might not agree!
on
Head First Java
·
· Score: 3, Insightful
Good try - but Dijkstra wasn't talking about education, he was talking about abstraction. Remember his example? - where he mentions drawing an "abstract triangle", and how as soon as you have drawn a specific triangle, then you have made concrete decisions: "does it have an obtuse angle" etc. Dijkstra's point is that when you represent a general concept using a specific example, you get blinded to the possibilities offered by alternative examples. And he's right - to a certain degree.
You see, the counter to this is Richard Feynman. Do you recall in "Surely You're Joking?" when he mentions how he'd try to understand mathematicians by visualizing everything they said? "Take a set (a ball) - disjoint (two balls) - and then add hair, slice them up etc etc". I've used that technique ever since I read about it when I'm following arguments, and it works a beaut. It worked for him, because the mathematicians had probably not got their heads out of the equations to look at what they were doing.
So I think visualization is great (or even essential) for following a line of a complex argument or learning a technique - and that's where diagrams come in. However, unless your visualization is a perfect representation of the thing you're learning, it won't instruct you much about where the process *doesn't* work (unless it fails for your chosen example!). For instance, you won't find many pictures that can show you a nice OO class relationship, whilst simultaneously telling you much about *inappropriate* relationships.
In programming, mathematics, and any other "reason-oriented" activity, it's these negative cases that catch you out: the exception cases and unexpected inputs, the accidental divisions by zero - in short, the assumptions that you build in because you're focusing about the one way it should work, not the ways it won't. And so in practice, good experienced programmers need to clear their mind to see what they've written, not what they *think* they've written, and that, I think is Dijkstra's point.
But it's not got a lot to do with learning a new craft. And that's why good teaching books have good diagrams and plenty of manageable, relevant examples.
BTW - a good case of what Dijkstra is talking about is shown in the ancient search for the truth behind Euclid's 5th Postulate - where people got bogged down for centuries because they thought that the LINES and POINTS in geometry had to correspond to lines and points on a flat surface - plane geometry. But as soon as they abstracted it and stopped visualizing it, and treated LINE and POINT as abstract entities which simply obeyed the Rules, it gave rise to spherical and hyperbolic geometry. "Godel, Escher, Bach" tells the tale nicely!
You're only bound by patent law as a creator of new stuff. If I invent a new mouse-trap and patent it, and then you start manufacturing them without my consent, then I can come after you for infringement, but not your customers. On the other hand, the court can award me damages that make up for the lost sales, and can award further damages if it's agreed that I lost out in any other way (which I might reduce if you agree to issue a product recall, for example).
Problem is that just the threat of this is enough to prevent a customer from switching to your product if there's a plausible chance of it being terminated. And if you can't afford to fight me, then you have to settle.
Folks like IBM, M$ etc don't have this credibility problem, because, if threatened, they can point at all the IBM (M$ etc) patents that the accuser is infringing, and they can offer a cross-licence agreement as compromise. An IBM person once claimed that their patents' ability to coerce cross-licensing was worth 10 times their raw licence value.
It's just like Mutually Assured Destruction. My ability to blow up your cities is far less valuable to me than the fact that my bombs deter you blowing up mine. In fact, I probably don't give a damn about your cities!
But then, if you're a toymaker or something - you make real things - you bump into patents all the time. The difference is that our craft is expanding at a fantastic rate, so there are gzillions of patents. And most patents in our field are still current - if you make puppets from wood, most patents that matter are long expired.
Didn't they think about it? Well, if you're a big co, then these patents are your weapon against small companies that come up your ass. They start to bite, then you start hitting them with patent suits and threats, and they either die or they cooperate. Joke is that these are the people that patents are meant to "protect".
The other "they" in the question - the politicians - mostly don't know the difference between developing new programs and wiping their bottoms. So no. But that's not their fault: I know some programmers who don't know the difference either...
You are, I think, confusing patents with copyright.
If I have a patent on, for example, "dynamically installed software for controlling auto-sensed computing equipment" (ie plug and play), then it doesn't matter whether it's written by you or Fred Bloggs' brother, in C or Lisp or Java. If the software does what my patent describes, then its ass is mine, and I dictate the license terms. It's the idea that counts.
Of course if *I* wrote the software, and you used it in your own products, then whether that's legal becomes a copyright issue. If you sidestep the copyright and do a clean-room re-implementation, I'll whack you with the patent.
The specific danger with software patents is that there are so many of them, covering so much, that no real software engineers can ever hope to avoid them all. So all our code is legally disputable. OSS is particularly at risk because there is no revenue stream to build a fighting fund to defend against patent infringement claims, or to pay licence fees on patents which it (almost inevitably) does infringe.
"Cause of death: Criticizing moderations on Slashdot."
Pretty unusual way to go though. :-)
Seriously though, you think it was humorous? I thought it was serious ... maybe not. Shall we ask?
... and once you've finished composting them, don't forget to turn your electric heating up a notch.
I burn my private papers on my fire, and it helps heat my house. I may create a little extra CO2++, but at least it's largely sustainable (unlike gas or the fossil fuels used to produce electricity). More importantly, there are zero generational or transmission losses - the heat's produced right where it's used. Can't get more efficient than that.
And it's free.
> (if I'm not mistaken, if you had a perfect sphere, any object
> inside of the sphere feels zero gravitational force
Err... did you mean to say this? It's not zero-gravitational force, otherwise coal-miners would float around!
You only feel the gravitational force of the sphere below your feet. As you get closer to the centre of the sphere, the force drops towards zero. As you say, the mass above you cancels the distant mass on the other side, so if you were inside a hollow sphere, you'd feel no net force at all. Being underground is like being just inside hollow sphere A, which is filled with solid sphere B. A's field cancels out, and B is all that's left; as you go deeper, B becomes smaller, and so does its gravity.
I suspect you already know this, because of the way you phrased the rest of the post, so I'll just shut up now...
The actual speed that light achieves travelling through different materials varies according to the material. It goes much slower through glass or water - hence refractive effects.
When people talk about the speed of light as a theoretical maximum speed, as in relativity, they're normally referring to its speed through a pure vacuum.
Most astronomers agree that the density of interstellar material is way, way lower than would be needed to make any appreciable difference to the speed of light - water only slows it down by 30% and there are about 1e23 water molecules per cc in normal earth water. Even in a dense dust cloud in space, there might only be one atom per cc. (Quick note - that's a total guess, but I recall the estimate that outer space contains only a few atoms per cubic mile, so I'm throwing in a factor of a 1e10 to make up for it!)
On the other hand, there have been a lot of discussions as to whether the speed of light may have changed over the life-time of the universe, which would make our size figure wrong. But if the speed of light changes, it affects lots of things - rates of atomic reactions, strengths of fields and forces, masses of particles. So if it were different, there's a bit of a consensus that the universe in the past would have been a lot more different to now than it appears to have been. It's an interesting idea though.
Of course, one way in which universal expansion does "thin" the light is to dilute its energy, and hence reduce its frequency. And that's why we get a red-shift, which is how we know that there's expansion at all. So, actually, you're right! - but it's energy, not speed that's affected.
Two problems with your comments.
One, as has been observed, is that the power issue is to do with managing the heat generated by the CPU, not the costs of providing that power.
The other is that an increase in component count doesn't imply a proportional decrease in gate count. A large amount of chip space is devoted to wiring and module interconnections, so just because the gates are twice as big doesn't mean that the die needs to be twice as big. In fact, if the extra transistors can be "snuggled in" to the existing cell designs, then you might find that the gate sizes don't increase much either.
It might even help - the power supply tracks won't need to be so meaty!
Now, it may be that reversible systems require a massive increase in hard-to-place transistors and long wires - in which case the above doesn't apply! But I guess my point is that the relationship between component count and chip area is non-linear - I remember when we first started working with CMOS instead of NMOS, and it became clear that just because there were twice as many transistors, it didn't mean that the gates were twice the size.
>you're not going to look back and ask yourself, "darn, why couldn't I have worked *just
>a few more hours*?!?"
Some (not all!) of my happy memories are of times when a group of us put serious effort in at work and achieved something nobody thought we could do. And some of my regrets are of times when work became "just a job", and we failed to achieve much because there was no spirit.
Remember this?
:-)
Java is like the Taj Mahal.
JavaScript is like the Taj Mahal Tandoori Restaurant, New Orleans.
Or something like that
It was written by Edsger Dijkstra (one of the most influential thinkers in software design). A great guy. Died last year, I think.
But he wasn't talking about teaching - he was talking about conceptualizing - in particular, about reasoning in software development and mathematics. He argued that visual design tools in programming made you focus on the thing that was made visible, (which is usually the easy bit), rather than the hoards of less visible possibilities, wherein lie bugs, limitations and assumptions.
He's probably right - although I know enough programmers who have problems expressing the basic requirements to suggest that a bit of vision can upgrade a hopeless programmer into a fairly hopeless one. It may be that his reasoning explains why visual programming tools have never replaced the text editor for anything other than very simple software development, just as graph plotters haven't replaced equations for mathematicians!
But this has nothing - much - to do with teaching or learning....well, judge for yourself, here's the original:
http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD696. PDF
To be honest, I don't think the parent post is relevant - the quote is selective and out of place. Interesting to be forced to become aware of that, though: it's a non-obvious subtlety about progression from novice to expert.
Cheers.
Good try - but Dijkstra wasn't talking about education, he was talking about abstraction. Remember his example? - where he mentions drawing an "abstract triangle", and how as soon as you have drawn a specific triangle, then you have made concrete decisions: "does it have an obtuse angle" etc. Dijkstra's point is that when you represent a general concept using a specific example, you get blinded to the possibilities offered by alternative examples. And he's right - to a certain degree.
You see, the counter to this is Richard Feynman. Do you recall in "Surely You're Joking?" when he mentions how he'd try to understand mathematicians by visualizing everything they said? "Take a set (a ball) - disjoint (two balls) - and then add hair, slice them up etc etc". I've used that technique ever since I read about it when I'm following arguments, and it works a beaut. It worked for him, because the mathematicians had probably not got their heads out of the equations to look at what they were doing.
So I think visualization is great (or even essential) for following a line of a complex argument or learning a technique - and that's where diagrams come in. However, unless your visualization is a perfect representation of the thing you're learning, it won't instruct you much about where the process *doesn't* work (unless it fails for your chosen example!). For instance, you won't find many pictures that can show you a nice OO class relationship, whilst simultaneously telling you much about *inappropriate* relationships.
In programming, mathematics, and any other "reason-oriented" activity, it's these negative cases that catch you out: the exception cases and unexpected inputs, the accidental divisions by zero - in short, the assumptions that you build in because you're focusing about the one way it should work, not the ways it won't. And so in practice, good experienced programmers need to clear their mind to see what they've written, not what they *think* they've written, and that, I think is Dijkstra's point.
But it's not got a lot to do with learning a new craft. And that's why good teaching books have good diagrams and plenty of manageable, relevant examples.
BTW - a good case of what Dijkstra is talking about is shown in the ancient search for the truth behind Euclid's 5th Postulate - where people got bogged down for centuries because they thought that the LINES and POINTS in geometry had to correspond to lines and points on a flat surface - plane geometry. But as soon as they abstracted it and stopped visualizing it, and treated LINE and POINT as abstract entities which simply obeyed the Rules, it gave rise to spherical and hyperbolic geometry. "Godel, Escher, Bach" tells the tale nicely!
You're only bound by patent law as a creator of new stuff. If I invent a new mouse-trap and patent it, and then you start manufacturing them without my consent, then I can come after you for infringement, but not your customers. On the other hand, the court can award me damages that make up for the lost sales, and can award further damages if it's agreed that I lost out in any other way (which I might reduce if you agree to issue a product recall, for example).
Problem is that just the threat of this is enough to prevent a customer from switching to your product if there's a plausible chance of it being terminated. And if you can't afford to fight me, then you have to settle.
Folks like IBM, M$ etc don't have this credibility problem, because, if threatened, they can point at all the IBM (M$ etc) patents that the accuser is infringing, and they can offer a cross-licence agreement as compromise. An IBM person once claimed that their patents' ability to coerce cross-licensing was worth 10 times their raw licence value.
It's just like Mutually Assured Destruction. My ability to blow up your cities is far less valuable to me than the fact that my bombs deter you blowing up mine. In fact, I probably don't give a damn about your cities!
You got it. It's deeply crazy, evil stuff.
But then, if you're a toymaker or something - you make real things - you bump into patents all the time. The difference is that our craft is expanding at a fantastic rate, so there are gzillions of patents. And most patents in our field are still current - if you make puppets from wood, most patents that matter are long expired.
Didn't they think about it? Well, if you're a big co, then these patents are your weapon against small companies that come up your ass. They start to bite, then you start hitting them with patent suits and threats, and they either die or they cooperate. Joke is that these are the people that patents are meant to "protect".
The other "they" in the question - the politicians - mostly don't know the difference between developing new programs and wiping their bottoms. So no. But that's not their fault: I know some programmers who don't know the difference either...
You are, I think, confusing patents with copyright.
If I have a patent on, for example, "dynamically installed software for controlling auto-sensed computing equipment" (ie plug and play), then it doesn't matter whether it's written by you or Fred Bloggs' brother, in C or Lisp or Java. If the software does what my patent describes, then its ass is mine, and I dictate the license terms. It's the idea that counts.
Of course if *I* wrote the software, and you used it in your own products, then whether that's legal becomes a copyright issue. If you sidestep the copyright and do a clean-room re-implementation, I'll whack you with the patent.
The specific danger with software patents is that there are so many of them, covering so much, that no real software engineers can ever hope to avoid them all. So all our code is legally disputable. OSS is particularly at risk because there is no revenue stream to build a fighting fund to defend against patent infringement claims, or to pay licence fees on patents which it (almost inevitably) does infringe.