That's sort of the point. We have no evidence that they've always been the same, only that they've been the same in the last couple hundred years, but we talk about them as if its taken for granted that they can't change, without evidence.
Right, that's why I like to shy away from tricksy algorithms. There's all sorts of tricksy things you can do with recursive functions as well -- that might even make them run faster -- but whenever I write a recursive function, I always write two parts to it: 1) Base Case. 2) Recursive step. It breaks the problem down nicely, and I can see clearly where the base case is going to stop recursion.
But if your application is running on multiple processors using multiple threads, that's not the case. You can run your application multiple times and see different results depending on which threads execute the fastest. And in the worst-case scenario, you get dead locks that are a nightmare to debug.
This only happens with badly written code, or with tricksy code. It is actually possible to write safe parallel code, and it's not hard.
To safely write parallel code, you do this in your main loop (after setup): 1) Computation step within your processor's data 2) Communication step with your neighbors 3) Barrier and Check for Termination
If you do this, you'll never get the race conditions that you mention, and the computation and communication steps become very easy to write.
For example, imagine you're doing some sort of stencil operation over a large array (which generally involves doing math with 3x3 or 5x5 chunk of the array at a time). You start by splitting the task over your N CPUs, and telling them where they fit into your processor geometry. For example, you might have a 1024x1024 array, distributed across 16 CPUs in squares of 64x64 data. Each step, each CPU does the following: 1) Run the stencil operation() over its private data. 2) Communicates the boundary values to its neighbors. 3) Barriers (waits for everyone to catch up) and checks for termination Repeats.
No matter how fast or how slow the various CPUs/cores are, you won't get a race condition.
This is a design for a rather homogenous computer, of course, but the article is talking about 8 core CPUs. In practice, you'd do some sort of load balancing to shift extra work away from heavily loaded cores/CPUs, but that actually doesn't change the core design, you just to track the changing processor geometries. Use KeLP if you really want a powerful geometry toolbox.
In a Grid environment, a different paradigm is usually employed, of course.
As someone who got a master's in computer science with a focus in high performance computing / parallel processing, and have taught on the subject, *yes*, it does take a bit of work to wrap one's mind around the concept of parallel processing, and to correctly write code with concurrency. But *no*, it's not really that hard. Once you get used to the idea of having computation and communication cycles over a processor geometry, it becomes little more difficult to write parallel code than serial.
It's like of like when people see recursive functions for the first time. If they don't understand the base condition and inductive step, then they can easily fall into infinite loops or write bugs. Parallel code is the same way... just a bit more tricky.
The Raptor actually doesn't usually use rails, per se. It holds the missiles inside of the wing to keep a stealthy profile, and opens a door and ejects a missile clear of the airframe when it wants to fire.
>>That they did this without making me nauseous also deserves some sort of award. I seriously wonder how they did it.
Really? I've never gotten nauseous from any (non-VR) game before, not even from some of the weird infinite loops I'd fall into in Portal, but I actually feel sick to my stomach after playing Super Mario Galaxy.
Re:Only proved tachypsyche is not cognitive
on
Can Time Slow Down?
·
· Score: 1
Yep,
Depending on your perception, you can either see a roundhouse kick coming in at you as a blur, or you can mentally slow time down so you can see the foot coming at you, so you can dodge or block it.
When I talked with Tony Gwynn a couple months ago, he said he did the same thing with baseballs.
Heh, I read a book or two a week, sometimes more, sometimes less. I'm usually working on three or four books at once (I keep one in my car for reading when I'm at a restaurant by myself, one at my fiancee's house, etc.)
A quick estimate of my bookshelves and boxes of books in my closets, I have somewhere between 1k and 2k books, by the age of 29.
The RC5 contest, 10 years ago, was the first one to harness the concept and prove the validity. I know Slashdot loves using phrases like "the next big thing", but Grid computing has been around and been useful for a long time now.
Ditto. They made a stripped down version of what people have been playing on Starcraft or Warcraft III for nigh-on a decade now, and it's GotY? Pfft. What's going to be GotY for 2008? Desktop sheep tag?
IMO, 2007 was an awesome year of gaming. My own (biased) ordering would go: Portal Bioshock Civ IV: Beyond the Sword Puzzle Quest Team Fortress II All Wii Games, as a gestalt Call of Duty IV? Yeah, I guess.
So the book isn't really about hacking vim. It's about using vim, which is a difference.
My favorite VIM hack was when I added a command that would tie in with search, and fold down all the areas that aren't within 3 lines of the searched term. So if you're going to change the name of a variable, you just search for the name of the variable ("/variable_name") and then all the sections of code that don't contain it magically fold away, and you can flip through it real fast making the name changes. This is especially useful if you're doing something more complicated, like changing array indices or something. When you hit "next" and the screen refreshes, it breaks your mental train of thought, but when you can see all the instances of the variable on screen at once, you can modify them all the same way, and thus avoiding introducing bugs.
They rejected the patch, though, saying it was better for some VIM script instead of modifying the main application./shrug
Read Dark Rivers of the Heart by Dean Koontz. Not only is it my favorite book by him, but it's not really horror at all, but a modern story about confiscation laws in a government gone awry.
>>Lamarckian evolution was proved false long ago; just because a group of people isn't educated and therefore doesn't make use of their intelligence does not mean that their children will be stupid.
Intelligence does have a genetically inheritable component to it, but it is just a component. Obviously the quality of education and a person's own drive to learn are important as well.
>>EVERY Final Fantasy lets you do this (well, all the ones I've played). Just go to gamefaqs and look at the "challenge faqs" if you don't believe me.
Look at FF12. All the characters are identical. Ok, some base stats are a little different, but all of the characters can buy the same licenses, use the same gear, etc. There's really no reason for there to even be 6 people in the party (except as "extra lives") since only 3 can be on screen at once.
I much prefer the FF1 system. I've tried and beaten the game with 5 different builds, with the 3 white mages and one red mage being the hardest, I think.
Yeah, I've always wanted to set up a little clique with my friends and award each other all the ridiculous "barnstars" they have.
Best of all, since JayJG is part of an administrator clique, when I posted a negative comment on his user page about his behavior, he called it ridiculous and had an admin friend of his remove it within 30 minutes.
Accountability? Nah. Not more important than cliquishness.
I statistically analyzed the data after both the 2000 and 2004 elections, after allegations of voter fraud emerged, especially about the electronic voting machines being rigged. I didn't find any evidence of fraud, and disproved the Berkeley study which claimed to have proven voter fraud. (Essentially, what they did was create a model to predict how people would vote in 2004, and when the results didn't match that model, they claimed that as evidence of fraud. Though they disguised this fact with lots of numbers and big words.)
And biased and slanted and corrupted to whatever editor claims he "owns" the article in question, to the point that while it's editable by everyone, it'll probably just get reverted to make whatever point the owning editor wants it to be.
In this regard, the EB *is* a much more neutral source. You don't see a biography/article which does nothing but trash the person in question, because the editors didn't like him/her. On wikipedia though, this is standard operating procedure.
While I used to really like wikipedia, after seeing all the bullshit that they pull with their little cliques and POV-pushing, I think I'm pretty firmly in the anti-wikipedia camp now. Not that it's not useful, but more that the community is completely batshit insane/dysfunctional.
All these magic "genes" they find that "cause" behavior tend to have something like 1% to 20% of the total causes to the behavior. But the media always reports it as "The God Gene!" "The ADD Gene!" "The Novelty-Seeking Gene!"
That's sort of the point. We have no evidence that they've always been the same, only that they've been the same in the last couple hundred years, but we talk about them as if its taken for granted that they can't change, without evidence.
>>it doesn't make any sense to say things like "both P and not-P" or "neither P nor not-P"
Yes, statements like "neither good or evil" are nonsensical.
Oh wait, they're not.
Not everything has binary values, even though Platonists try to ram everything into a binary value.
Here's a better question:
Which constants have been the same since the start of the universe?
Waving your hands in the air is not an acceptable answer.
Right, that's why I like to shy away from tricksy algorithms. There's all sorts of tricksy things you can do with recursive functions as well -- that might even make them run faster -- but whenever I write a recursive function, I always write two parts to it: 1) Base Case. 2) Recursive step. It breaks the problem down nicely, and I can see clearly where the base case is going to stop recursion.
But if your application is running on multiple processors using multiple threads, that's not the case. You can run your application multiple times and see different results depending on which threads execute the fastest. And in the worst-case scenario, you get dead locks that are a nightmare to debug.
This only happens with badly written code, or with tricksy code. It is actually possible to write safe parallel code, and it's not hard.
To safely write parallel code, you do this in your main loop (after setup):
1) Computation step within your processor's data
2) Communication step with your neighbors
3) Barrier and Check for Termination
If you do this, you'll never get the race conditions that you mention, and the computation and communication steps become very easy to write.
For example, imagine you're doing some sort of stencil operation over a large array (which generally involves doing math with 3x3 or 5x5 chunk of the array at a time). You start by splitting the task over your N CPUs, and telling them where they fit into your processor geometry. For example, you might have a 1024x1024 array, distributed across 16 CPUs in squares of 64x64 data. Each step, each CPU does the following:
1) Run the stencil operation() over its private data.
2) Communicates the boundary values to its neighbors.
3) Barriers (waits for everyone to catch up) and checks for termination
Repeats.
No matter how fast or how slow the various CPUs/cores are, you won't get a race condition.
This is a design for a rather homogenous computer, of course, but the article is talking about 8 core CPUs. In practice, you'd do some sort of load balancing to shift extra work away from heavily loaded cores/CPUs, but that actually doesn't change the core design, you just to track the changing processor geometries. Use KeLP if you really want a powerful geometry toolbox.
In a Grid environment, a different paradigm is usually employed, of course.
As someone who got a master's in computer science with a focus in high performance computing / parallel processing, and have taught on the subject, *yes*, it does take a bit of work to wrap one's mind around the concept of parallel processing, and to correctly write code with concurrency. But *no*, it's not really that hard. Once you get used to the idea of having computation and communication cycles over a processor geometry, it becomes little more difficult to write parallel code than serial.
It's like of like when people see recursive functions for the first time. If they don't understand the base condition and inductive step, then they can easily fall into infinite loops or write bugs. Parallel code is the same way... just a bit more tricky.
Ditto, I've been to some talks there, and it's an awesome place.
>>It also has the capability to support externally mounted weapons:
Hence I said, "doesn't usually use rails".
The ordinance launching system is really pretty neat.
The Raptor actually doesn't usually use rails, per se. It holds the missiles inside of the wing to keep a stealthy profile, and opens a door and ejects a missile clear of the airframe when it wants to fire.
Best of all, we can stop Conserving light, and eliminate Daylight Savings once and for all!
>>That they did this without making me nauseous also deserves some sort of award. I seriously wonder how they did it.
Really? I've never gotten nauseous from any (non-VR) game before, not even from some of the weird infinite loops I'd fall into in Portal, but I actually feel sick to my stomach after playing Super Mario Galaxy.
Yep,
Depending on your perception, you can either see a roundhouse kick coming in at you as a blur, or you can mentally slow time down so you can see the foot coming at you, so you can dodge or block it.
When I talked with Tony Gwynn a couple months ago, he said he did the same thing with baseballs.
>>Do nerds no longer enjoy reading?
Heh, I read a book or two a week, sometimes more, sometimes less. I'm usually working on three or four books at once (I keep one in my car for reading when I'm at a restaurant by myself, one at my fiancee's house, etc.)
A quick estimate of my bookshelves and boxes of books in my closets, I have somewhere between 1k and 2k books, by the age of 29.
SETI?
http://en.wikipedia.org/wiki/Distributed.net
The RC5 contest, 10 years ago, was the first one to harness the concept and prove the validity. I know Slashdot loves using phrases like "the next big thing", but Grid computing has been around and been useful for a long time now.
Ditto. They made a stripped down version of what people have been playing on Starcraft or Warcraft III for nigh-on a decade now, and it's GotY? Pfft. What's going to be GotY for 2008? Desktop sheep tag?
IMO, 2007 was an awesome year of gaming. My own (biased) ordering would go:
Portal
Bioshock
Civ IV: Beyond the Sword
Puzzle Quest
Team Fortress II
All Wii Games, as a gestalt
Call of Duty IV? Yeah, I guess.
Nope, but I still have the original VIM patch around somewhere...
Ah:
http://www-cse.ucsd.edu/~wkerney/vim_bill.README
http://www-cse.ucsd.edu/~wkerney/vim_bill.tar.gz
No, no, he already knows the answer even though he hasn't started the study yet -- it's global warming!
Man, I love Science.
So the book isn't really about hacking vim. It's about using vim, which is a difference.
/shrug
My favorite VIM hack was when I added a command that would tie in with search, and fold down all the areas that aren't within 3 lines of the searched term. So if you're going to change the name of a variable, you just search for the name of the variable ("/variable_name") and then all the sections of code that don't contain it magically fold away, and you can flip through it real fast making the name changes. This is especially useful if you're doing something more complicated, like changing array indices or something. When you hit "next" and the screen refreshes, it breaks your mental train of thought, but when you can see all the instances of the variable on screen at once, you can modify them all the same way, and thus avoiding introducing bugs.
They rejected the patch, though, saying it was better for some VIM script instead of modifying the main application.
Read Dark Rivers of the Heart by Dean Koontz. Not only is it my favorite book by him, but it's not really horror at all, but a modern story about confiscation laws in a government gone awry.
>>Lamarckian evolution was proved false long ago; just because a group of people isn't educated and therefore doesn't make use of their intelligence does not mean that their children will be stupid.
Intelligence does have a genetically inheritable component to it, but it is just a component. Obviously the quality of education and a person's own drive to learn are important as well.
>>EVERY Final Fantasy lets you do this (well, all the ones I've played). Just go to gamefaqs and look at the "challenge faqs" if you don't believe me.
Look at FF12. All the characters are identical. Ok, some base stats are a little different, but all of the characters can buy the same licenses, use the same gear, etc. There's really no reason for there to even be 6 people in the party (except as "extra lives") since only 3 can be on screen at once.
I much prefer the FF1 system. I've tried and beaten the game with 5 different builds, with the 3 white mages and one red mage being the hardest, I think.
Right. What does a cofficient do? Report stats on making coffee?
Yeah, I've always wanted to set up a little clique with my friends and award each other all the ridiculous "barnstars" they have.
Best of all, since JayJG is part of an administrator clique, when I posted a negative comment on his user page about his behavior, he called it ridiculous and had an admin friend of his remove it within 30 minutes.
Accountability? Nah. Not more important than cliquishness.
I statistically analyzed the data after both the 2000 and 2004 elections, after allegations of voter fraud emerged, especially about the electronic voting machines being rigged. I didn't find any evidence of fraud, and disproved the Berkeley study which claimed to have proven voter fraud. (Essentially, what they did was create a model to predict how people would vote in 2004, and when the results didn't match that model, they claimed that as evidence of fraud. Though they disguised this fact with lots of numbers and big words.)
And biased and slanted and corrupted to whatever editor claims he "owns" the article in question, to the point that while it's editable by everyone, it'll probably just get reverted to make whatever point the owning editor wants it to be.
In this regard, the EB *is* a much more neutral source. You don't see a biography/article which does nothing but trash the person in question, because the editors didn't like him/her. On wikipedia though, this is standard operating procedure.
While I used to really like wikipedia, after seeing all the bullshit that they pull with their little cliques and POV-pushing, I think I'm pretty firmly in the anti-wikipedia camp now. Not that it's not useful, but more that the community is completely batshit insane/dysfunctional.
It's true.
All these magic "genes" they find that "cause" behavior tend to have something like 1% to 20% of the total causes to the behavior. But the media always reports it as "The God Gene!" "The ADD Gene!" "The Novelty-Seeking Gene!"