It's quite appropriate to view a stream of ethernet frames as infinite, in the sense of being of indeterminate size (infinite = without end). If you don't have infinite data-structures (which really just means that the language is taking care of all the bounds checking for you), your code will be cluttered with all kinds of termination checks.
When you have a process that produces a boundless amount of information (and the IO examples given are such processes), and you don't know how much of it you might need to consume, an infinite data structure might be an appropriate abstraction.
It's a little pedantic to point out that in reality, any actual stream will be finite in length, and it completely misses the point. The point is that Haskell makes it possible to model these indeterminately long streams with compact and logical syntax. The only penalty is that the programmer needs to be comfortable using and understanding more abstract programming concepts.
Sure, and there is also special veterinary apparatus for hoisting animals up and onto their side, but this isn't what I meant. By cow-tipping, I mean the activity where a group of people steal into a pasture at night, find a cow that's obliging enough to just stand in one place, and tip it over for fun. I'd be willing to bet that no-one has ever actually done this. It's curious how well known this activity is, despite the fact that no-one has ever done it. I think it's a symptom of the fact that in the current age very few people have much experience of farm life, so an implausible but humorous (if you're into animal cruelty as humour) activity is accepted as a common occurrence.
I feel kinda silly for commenting on this, but it's a bit of a pet peeve of mine, so here goes: despite being part of the canon of crazy high school hijinks, cow-tipping is not actually feasible, as far as I can tell. I grew up on a dairy farm, so I can attest to the facts that: 1. Cows DON'T SLEEP STANDING UP! 2. Being a prey species, they don't sleep very deeply, nor for very long. You can't walk into a pasture in the middle of the night without waking the entire herd; a crew of rowdy teenagers invading the meadow at night would tip them off (argh, unintentional pun) pretty quickly.
While I'm as disgusted as anyone by the whole Enron mess, Ken Lay seems to have believed in Enron pretty much right to the end. Sure he sold stock, but only to cover loans he previously received which he used to buy more Enron stock. A recent NYT article points out that his net worth as of the end of 2005 was something like $625,000, so the captain went down with the ship, so to speak. He seems more greedy and incompetent than evil, it seems to me.
Good point. By 'naive FT', I mean the discrete FT algorithm obtained by a dense matrix-vector multiplication, where the matrix entries are the appropriate complex exponential coefficients, and the vector is the list of time domain samples.
Great summary, but you are describing a general Fourier Transform, not necessarily a *fast* FT. FFT refers to a specific divide and conquer algorithm that has O(n*lg(n)) time complexity, rather than the O(n^2) time complexity of the naive FT algorithm. Here n is the number of discrete samples, i.e. the size of the problem.
FFT is to naive FT as quicksort is to insertion sort. Both quicksort and the FFT are considered to be among the top ten algorithms of the 20th century.
I strongly disagree with this. Having followed his writing for a while now, I think he has a real passion for cinema, as well as an impressive store of knowledge about film. If you're looking for some really exciting and challenging moviegoing experiences, flip through his list of Great Movies, available on his website. Of course, his opinion is of no more importance than anyone else's, EXCEPT for the credibility he gains from this vast store of movie knowledge, and his generally entertaining and funny writing style.
For those of you who remember the classic UNIX rts xbattle, I suggest trying Europa http://europa.mochasoft.ca/.
Very simple, but very addictive. Unfortunately, not too many people play it these days.
A number x is algebraic if p(x)=0 for some polynomial p. So sqrt(2) is algebraic, with p(t)=t^2-2, but Pi is not, a fact that is difficult to prove.
Transcendental numbers are those that are not algebraic. They are often obtained by limiting processes, making them inherently more complicated objects.
levy: the imposition or collection of an assessment
levee: an embankment for preventing flooding
Anal-retentiveness (retention?) aside (almost wrote 'asside'), the frontline article is pretty good. I wish the site were a little faster with the Realplayer streams, though.
Now, instead of four billion years, they've got to explain in it 250 million years. Given that they've already posited that mankind's ancestors appeared about 50 million years ago, they're down to a mere 200 million years to go from single-celled to upright and walking.
An 80%-95% extinction rate doesn't necessarily mean starting from single-celled organisms again, though you would expect the more complex organisms to suffer greater extinction rates, since they're presumably more dependent on particular environmental conditions.
So long as some complex organisms survive a mass extinction, the level of complexity in the system is preserved. The level of diversity can recover much more quickly than the level of complexity.
The following analogy might be useful: suppose a global catastrophe occurs, causing a total breakdown in human civilization, and we all revert to the state of the proverbial hunter-gatherer. Would it take us another 10,000 years to get back to 2004 levels of technology? Presumably not, since the information on how to redevelop the lost technology would still exist. It's slow and uncertain work to innovate in the first place -- it's a lot faster to relearn what others have already done. I'm wandering a little off-topic with this analogy, maybe, but while I'm here, I may as well put in a good word for the novel "A Canticle for Leibowitz", which touches on this theme.
Back in undergrad, two guys from U of Waterloo gave a talk on Java and this little xbattle clone they had written called Europa. Man did that thing ever suck up my time...
If anyone's nostalgic for xbattle, they should give it a try: europa.mochasoft.ca
When you have a process that produces a boundless amount of information (and the IO examples given are such processes), and you don't know how much of it you might need to consume, an infinite data structure might be an appropriate abstraction. It's a little pedantic to point out that in reality, any actual stream will be finite in length, and it completely misses the point. The point is that Haskell makes it possible to model these indeterminately long streams with compact and logical syntax. The only penalty is that the programmer needs to be comfortable using and understanding more abstract programming concepts.
Sure, and there is also special veterinary apparatus for hoisting animals up and onto their side, but this isn't what I meant. By cow-tipping, I mean the activity where a group of people steal into a pasture at night, find a cow that's obliging enough to just stand in one place, and tip it over for fun. I'd be willing to bet that no-one has ever actually done this. It's curious how well known this activity is, despite the fact that no-one has ever done it. I think it's a symptom of the fact that in the current age very few people have much experience of farm life, so an implausible but humorous (if you're into animal cruelty as humour) activity is accepted as a common occurrence.
I feel kinda silly for commenting on this, but it's a bit of a pet peeve of mine, so here goes: despite being part of the canon of crazy high school hijinks, cow-tipping is not actually feasible, as far as I can tell. I grew up on a dairy farm, so I can attest to the facts that: 1. Cows DON'T SLEEP STANDING UP! 2. Being a prey species, they don't sleep very deeply, nor for very long. You can't walk into a pasture in the middle of the night without waking the entire herd; a crew of rowdy teenagers invading the meadow at night would tip them off (argh, unintentional pun) pretty quickly.
Judging from this NYT article, there may not be much left for the government to take.
While I'm as disgusted as anyone by the whole Enron mess, Ken Lay seems to have believed in Enron pretty much right to the end. Sure he sold stock, but only to cover loans he previously received which he used to buy more Enron stock. A recent NYT article points out that his net worth as of the end of 2005 was something like $625,000, so the captain went down with the ship, so to speak. He seems more greedy and incompetent than evil, it seems to me.
Good point. By 'naive FT', I mean the discrete FT algorithm obtained by a dense matrix-vector multiplication, where the matrix entries are the appropriate complex exponential coefficients, and the vector is the list of time domain samples.
FFT is to naive FT as quicksort is to insertion sort. Both quicksort and the FFT are considered to be among the top ten algorithms of the 20th century.
I strongly disagree with this. Having followed his writing for a while now, I think he has a real passion for cinema, as well as an impressive store of knowledge about film. If you're looking for some really exciting and challenging moviegoing experiences, flip through his list of Great Movies, available on his website. Of course, his opinion is of no more importance than anyone else's, EXCEPT for the credibility he gains from this vast store of movie knowledge, and his generally entertaining and funny writing style.
For those of you who remember the classic UNIX rts xbattle, I suggest trying Europa http://europa.mochasoft.ca/. Very simple, but very addictive. Unfortunately, not too many people play it these days.
Transcendental numbers are those that are not algebraic. They are often obtained by limiting processes, making them inherently more complicated objects.
levy: the imposition or collection of an assessment
levee: an embankment for preventing flooding
Anal-retentiveness (retention?) aside (almost wrote 'asside'), the frontline article is pretty good. I wish the site were a little faster with the Realplayer streams, though.
Now, instead of four billion years, they've got to explain in it 250 million years. Given that they've already posited that mankind's ancestors appeared about 50 million years ago, they're down to a mere 200 million years to go from single-celled to upright and walking.
An 80%-95% extinction rate doesn't necessarily mean starting from single-celled organisms again, though you would expect the more complex organisms to suffer greater extinction rates, since they're presumably more dependent on particular environmental conditions.
So long as some complex organisms survive a mass extinction, the level of complexity in the system is preserved. The level of diversity can recover much more quickly than the level of complexity.
The following analogy might be useful: suppose a global catastrophe occurs, causing a total breakdown in human civilization, and we all revert to the state of the proverbial hunter-gatherer. Would it take us another 10,000 years to get back to 2004 levels of technology? Presumably not, since the information on how to redevelop the lost technology would still exist. It's slow and uncertain work to innovate in the first place -- it's a lot faster to relearn what others have already done. I'm wandering a little off-topic with this analogy, maybe, but while I'm here, I may as well put in a good word for the novel "A Canticle for Leibowitz", which touches on this theme.
Back in undergrad, two guys from U of Waterloo gave a talk on Java and this little xbattle clone they had written called Europa. Man did that thing ever suck up my time... If anyone's nostalgic for xbattle, they should give it a try: europa.mochasoft.ca