The rational inference is federal debt as a percentage of federal tax revenue because thats the resource that the federal government has. The GDP does not belong to the federal government, or to the states.
Users are randomly assigned the Ookla or M-Lab application.
Note: the M-Lab application currently does not work with Safari, Chrome, and Opera web browsers.
Really? So the 3 most standards compliant browsers arent supported?
The flaw is that there are no tactical variations that work. The biggest stack wins.
Defensive bonuses are a wash when its stack vs stack. All my attacking units have been given +20%, +45%, or +75% city raider promoted, a bonus meant to counter cultural defenses, walls, and fortification bonuses.
If you sit there in the city waiting for that stack vs stack and your stack is mostly city garrison promoted, I can just wipe your civ clean of land improvements and come back in about 1000 years when you are hopelessly behind. The upshot here is that most of your units need to be tailored for attacking, not defending, so that you can force the confrontation if you have to.
Its stack vs stack, and both civ3 and civ4 were designed to be multiplayer. Civ3 had the army units, and that proved worse than it is in Civ4. Civ5 is forcing the issue by not allowing stacks and I think thats a good thing. Tactics. Tactics. Tactics.
It is you that seems to not be playing any competitive Civ4.
Catapults damage at most 4 to 6 units. A stack of doom is 20 to 30 melee units, also with 5 to 10 catapults. You can slam my stack with collateral catapults, but then I slam your city defenders with collateral catapults. Unless your city has a big stack in it, its going down to my stack.
You've got exactly 1 turn to hit my stack with catapults, because I blocked the path to my stack as it approached your city.
In human vs human play, the only defense to big stacks is bigger stacks.
80386's never had integrated math coprocessors. The 80387 was a separate chip (I had one!), socket compatible with the 80287.
The 80486 was the processor where DX meant integrated mathco. Not well know is that the 80487 was a full blow 80486DX chip, and when placed in the mathco socket, it completely disabled the "main" socket.
I would love a return to uniform class-based suffixes. For example, the 80386SX vs 80386DX. Although "SX" and "DX" isn't descriptive, its UNIFORM. The SX chips were running a 16-bit bus and the DX chips were running a 32-bit bus.
Later Intel moved to Pentium vs Celeron, but Celeron itself wasnt uniformly descriptive (beyond meaning "shit") of the differences between them. Some Celerons had their cache's cut in half, others were simply a lower clock rate, still others were a combination of the two.
I strongly suspect that its Intel's (unreliable) FAB process causing many partial duds that creates the need for so many variations in their line. So many variations in fact that its just not a good idea to make most of the differences obvious.
As far as AMD's line, the number of cores is always in the full name of the product: "Phenom II x4 965".. still, that "965" number is itself meaningless information. It doesnt tell me shit other than that its better than a "955" (at least there is that!)
What makes you think that the stats the unit carries doesn't already reflect "different types of units?"
What you are asking for is attribute customization via an ill placed stacking mechanic. The very same mechanic which so totally dominates human vs human civ4 play today because there is no alternative other than stack of doom vs stack of doom.
Consider this mechanic:
You have Warriors, and you have Swords. You can combine them, to make Swordsmen.
You have Warriors, and you have Horses. You can combine them, to make Horsemen.
You have Swordsmen and Horsemen. You can transfer the Horses to the Swordsmen, making a Knights unit and a Warriors unit.
See how silly your objection is? Your desire to have "different types" can easily be accounted for in other ways. The Knights units attributes can full account for the fact that it consists of Men + Swords + Horses.
In Civ4 its important to protect your veteran units as well, especially because many of the unit promotions get progressively better. First City Raider promotion is +20% city attack, second promotion is an additional +25% city attack, and third is an additional +30% city attack. The same is true for the City Garrison line (+20%, +25%, and +30% City Defense = +75% City Defense)
But then it would also make perfect sense to be able to combine two or more decimated companies into a battalion, while maintaining the experience and combat abilities. Also... combine companies into a battalion, battalions into regiments, regiments into armies.
This may very well be the case. I could see leaving the current healing mechanic behind, instead requiring units to recruit from cities (or combining existing units) in order to regain full effectiveness. City recruitment costs could be used as a balancing mechanic as well, by requiring production proportional to the "damage" being "healed." Currently we can have a hundred units all healing for free simultaneously, which is equivalent to an amount of production far greater than the entire civ commanding those units.
..the only problem is, the civ4 stacks of doom arrive thousands of years before aircraft are invented.
It isnt until airships that the stacks of doom start their decline in importance, because prior to that it only takes a few forward units to shield the stack.
The hardest early counter mechanic to stacks of doom would be unit upkeep cost (stacks are expensive), but thanks to the specialist mechanics, early warmongers simply chop out libraries, temples, and markets and run a specialist economy for research and money. Money isnt a problem when you can set your research slider at 0% and still keep up on techs.
Now I barely touch assembly for processors like the Core I7, Athlon X2 64 & al. Not due to the complexity of the assembly language who keep being 'easy', but due to the extreme complexity of these processors. When you put together the number of instructions executed in the same cycle, the deep of the instruction pipeline, the heuristic branch prediction, some out of order execution,.. all the tricks a modern processor use make it very very hard to beat for example the intel C compiler with your own hand crafted assembly.
The Core line of processors are much simpler than the end of the Pentium line. Its really not that difficult to understand what the processor is doing (its not magic, its reasonable steps), and in fact men like Agner Fog have made it easy for you to become informed. The AMD64 line is also pretty simply.
I agree that ICC is very good. Its clearly the best C compiler on the planet, but its still not outstanding. Thats why people who specialize in optimization can still carry large salaries. Its true that there isnt a large market for optimization experts, but the market that is there desperately needs them.
It forced us to think around corners. It made us think through what the control structures really were, and how they were implemented." is moot - assuming he's not joking, if you really want to train that way of thinking, you're much better off learning Assembler.
Most of the experienced assembly programmers I know started with an old-school basic (gw-basic, basica, one of the rom basics) and today also program in a BASIC derivative (VB, PowerBasic, TrueBasic, etc..)
None of them enjoy C++.
I often hear C++ programmers declare that learning assembly is stupid, that processor are too complicated now to write efficient assembly, and so on.
I do not think that these things are a coincidence. Basic programmers from the 70's and 80's turned into tinkerers, while C programmers from the 70's and 80's turn into architects. Its counter-intuitive when you first think about it, but it seems to be the truth. That Basic programmer had a lot of architecture done for him but had to struggle to tinker, while that C programmer had tinkering handed to him by the language but had to struggle with his own architecture. Each eventually masters what is difficult on the field they play in, while taking for granted that which is easy.
Regardless of the target language, if I need a project lead for a large application I would want a good solid architect, but if I want a library written (perhaps even for that large project) then I would want that heavily experienced tinkerer on the job.
Resellers would benefit from getting together and purchasing in very large volumes, but in practice they just dont get along. Thus creates the need for Distributors.
Distributors supply many Resellers, so they act as a proxy of that deal the Resellers can't agree on amongst themselves. The Distributor gets a much better volume discount than any Reseller can individually, so both Distributor and Reseller can gain from this arrangement.
The manufacturer gains because their operation is much more efficient when they have large negotiated orders to meet, instead of an unpredictable stream of small orders.
I recently did a semi-extensive study of the various quad core desktop processors available on NewEgg, leveraging the public benchmark results from PassMark to gauge their overall relative performance. I used the NewEgg prices and simply computed the number of benchmark points you get per dollar.
The only Intel chips that are competitive with AMD's on this metric are the Q8300, the i5-750, and the Q8400.. in that order, with only the Q8300 ranking better than ANY of the AMD chips on this value metric.
Here is the actual list I made up. Score is the PassMark score, the price is the NewEgg price, and the calculated value is score/price. Higher is thus better.
The Intel linup:
Phenom II x4 940 "Black", score = 3645, price = $156, value = 23.37
Phenom II x4 945 "Black", score = 3500, price = $150, value = 23.33
Phenom II x4 955 "Black", score = 3876, price = $160, value = 24.23
Phenom II x4 965 "Black", score = 4253, price = $180, value = 23.63
If you dont need the horsepower, then the Q8300 is the best at $150. The i5-750 makes a strong showing ay $195, but it is NOT a better processor for the money than AMD's Phenom II x4 965, which is both cheaper at $180 and scores better.
Note that these are also the "Black" edition AMD's which have unlocked multipliers, so they are also an overclockers dream if thats the route you might want to take.
I want the entire worlds population to exist for the express purposes of keeping me alive and well for as long as imaginably possible.
Period.
The sad reality of the American situation is that if YOU break your leg and then have it mended, thats going to cost thousands upon thousands of dollars, but if YOUR DOG breaks its leg and then you pay to have it mended, the cost will be under a grand. The reason for this is that SO MANY PEOPLE HAVE HEALTH INSURANCE FOR THEMSELVES, BUT NONE FOR THEIR DOG.
Note that I am not saying that they do erase them sequentially. The modern SSD firmware tracks how recently sectors have been written and occasionally moves very long-lived data to the blocks it knows have been most frequently erased (because they track that.)
These strategies are basically those employed by long understood cache algorithms, but replacing the time-cost metric with a wear-cost metric.
How is a typical static wear levelling algorithm likely to kick in in a way which prevents an unacceptable slowdown during one pass, while at the same time squeezing out max writes to all physical blocks?
All operations on an SSD can be done in parallel. While the SSD doesnt expose a parallel interface to the host system, it can still do work in parallel internally, such as performing an erase cycle on multiple blocks simultaneously, erase many blocks while writing to another, write to many erased blocks simultaneously, and so on.
The modern SSD has quite a bit of RAM available to them, but unlike a conventional drive, most of this RAM is not used as a cache. They use this ram as a buffer so that they can do many operations only loosely related to the current host command (a command such as write sector #N) simultaneously. A command to write a sector may trigger many internal operations, such as load up the contents of an arbitrary block and then start an erase cycle while simultaneously it is writing that sector (or many recently written sectors) out to one of the already erased blocks.
So in short, it is not an in-practice performance problem to literally erase-cycle the blocks sequentially. If that about-to-be-erased block had valid sectors in it, then read the entire block into RAM, queue all of its allocated sectors for writing, then erase-cycle the block.
A 500GB SSD can be entirely over-written ("changing all the data on the medium") over 10,000 times. No wear leveling needed here. 10K writes is the low end for modern flash.
Lets suppose you can write 200MB/sec to this drive. Thats about average for the top enders right now.
It will take 2,500 seconds to overwrite this entire drive once. Thats about 42 minutes.
289 *days* of constant 24/7 writing to use of the flash.
Now.. and this is the key point.. will a platter drive survive 289 days of constant max-throughput writing? The answer is no. You will burn the platter drives physical components way before that.
The rational inference is federal debt as a percentage of federal tax revenue because thats the resource that the federal government has. The GDP does not belong to the federal government, or to the states.
Users are randomly assigned the Ookla or M-Lab application.
Note: the M-Lab application currently does not work with Safari, Chrome, and Opera web browsers.
Really? So the 3 most standards compliant browsers arent supported?
If you can't make a salad for less than the cost of a McD's meal, then you are .. ummm... stupid?
Seriously. An entire head of lettuce is only a few bucks. 5 fucking pounds of carrots will run you a couple bucks. Salad dressing is a couple bucks.
This is all enough for more than a couple salads.
You arent beating that at a fast food place. You must be stupid.
Apologists shrug it off. News at 11.
The flaw is that there are no tactical variations that work. The biggest stack wins.
Defensive bonuses are a wash when its stack vs stack. All my attacking units have been given +20%, +45%, or +75% city raider promoted, a bonus meant to counter cultural defenses, walls, and fortification bonuses.
If you sit there in the city waiting for that stack vs stack and your stack is mostly city garrison promoted, I can just wipe your civ clean of land improvements and come back in about 1000 years when you are hopelessly behind. The upshot here is that most of your units need to be tailored for attacking, not defending, so that you can force the confrontation if you have to.
Its stack vs stack, and both civ3 and civ4 were designed to be multiplayer. Civ3 had the army units, and that proved worse than it is in Civ4. Civ5 is forcing the issue by not allowing stacks and I think thats a good thing. Tactics. Tactics. Tactics.
It is you that seems to not be playing any competitive Civ4.
Catapults damage at most 4 to 6 units. A stack of doom is 20 to 30 melee units, also with 5 to 10 catapults. You can slam my stack with collateral catapults, but then I slam your city defenders with collateral catapults. Unless your city has a big stack in it, its going down to my stack.
You've got exactly 1 turn to hit my stack with catapults, because I blocked the path to my stack as it approached your city.
In human vs human play, the only defense to big stacks is bigger stacks.
80386's never had integrated math coprocessors. The 80387 was a separate chip (I had one!), socket compatible with the 80287.
The 80486 was the processor where DX meant integrated mathco. Not well know is that the 80487 was a full blow 80486DX chip, and when placed in the mathco socket, it completely disabled the "main" socket.
I would love a return to uniform class-based suffixes. For example, the 80386SX vs 80386DX. Although "SX" and "DX" isn't descriptive, its UNIFORM. The SX chips were running a 16-bit bus and the DX chips were running a 32-bit bus.
.. still, that "965" number is itself meaningless information. It doesnt tell me shit other than that its better than a "955" (at least there is that!)
Later Intel moved to Pentium vs Celeron, but Celeron itself wasnt uniformly descriptive (beyond meaning "shit") of the differences between them. Some Celerons had their cache's cut in half, others were simply a lower clock rate, still others were a combination of the two.
I strongly suspect that its Intel's (unreliable) FAB process causing many partial duds that creates the need for so many variations in their line. So many variations in fact that its just not a good idea to make most of the differences obvious.
As far as AMD's line, the number of cores is always in the full name of the product: "Phenom II x4 965"
CivI wasnt really a new concept. Its a 4X game and wasn't even close to the first.
It was based on the older Empire game, whos history is actually somewhat interesting.
What Sid did was make it graphical, with an epic tech tree that mimics human history.
What makes you think that the stats the unit carries doesn't already reflect "different types of units?"
What you are asking for is attribute customization via an ill placed stacking mechanic. The very same mechanic which so totally dominates human vs human civ4 play today because there is no alternative other than stack of doom vs stack of doom.
Consider this mechanic:
You have Warriors, and you have Swords. You can combine them, to make Swordsmen.
You have Warriors, and you have Horses. You can combine them, to make Horsemen.
You have Swordsmen and Horsemen. You can transfer the Horses to the Swordsmen, making a Knights unit and a Warriors unit.
See how silly your objection is? Your desire to have "different types" can easily be accounted for in other ways. The Knights units attributes can full account for the fact that it consists of Men + Swords + Horses.
In Civ4 its important to protect your veteran units as well, especially because many of the unit promotions get progressively better. First City Raider promotion is +20% city attack, second promotion is an additional +25% city attack, and third is an additional +30% city attack. The same is true for the City Garrison line (+20%, +25%, and +30% City Defense = +75% City Defense)
But then it would also make perfect sense to be able to combine two or more decimated companies into a battalion, while maintaining the experience and combat abilities. Also... combine companies into a battalion, battalions into regiments, regiments into armies.
This may very well be the case. I could see leaving the current healing mechanic behind, instead requiring units to recruit from cities (or combining existing units) in order to regain full effectiveness. City recruitment costs could be used as a balancing mechanic as well, by requiring production proportional to the "damage" being "healed." Currently we can have a hundred units all healing for free simultaneously, which is equivalent to an amount of production far greater than the entire civ commanding those units.
..the only problem is, the civ4 stacks of doom arrive thousands of years before aircraft are invented.
It isnt until airships that the stacks of doom start their decline in importance, because prior to that it only takes a few forward units to shield the stack.
The hardest early counter mechanic to stacks of doom would be unit upkeep cost (stacks are expensive), but thanks to the specialist mechanics, early warmongers simply chop out libraries, temples, and markets and run a specialist economy for research and money. Money isnt a problem when you can set your research slider at 0% and still keep up on techs.
The pieces can represent anything (battalions or regiments, for instance), so it makes perfect sense.
I think you have fallen into the "OMG IT DRAWS A SINGLE WARRIOR, IT MUST BE A SINGLE MAN!" trap.
I know who you work for. You'll be needing a new job starting in July.
Now I barely touch assembly for processors like the Core I7, Athlon X2 64 & al. Not due to the complexity of the assembly language who keep being 'easy', but due to the extreme complexity of these processors. When you put together the number of instructions executed in the same cycle, the deep of the instruction pipeline, the heuristic branch prediction, some out of order execution,.. all the tricks a modern processor use make it very very hard to beat for example the intel C compiler with your own hand crafted assembly.
The Core line of processors are much simpler than the end of the Pentium line. Its really not that difficult to understand what the processor is doing (its not magic, its reasonable steps), and in fact men like Agner Fog have made it easy for you to become informed. The AMD64 line is also pretty simply.
I agree that ICC is very good. Its clearly the best C compiler on the planet, but its still not outstanding. Thats why people who specialize in optimization can still carry large salaries. Its true that there isnt a large market for optimization experts, but the market that is there desperately needs them.
It forced us to think around corners. It made us think through what the control structures really were, and how they were implemented." is moot - assuming he's not joking, if you really want to train that way of thinking, you're much better off learning Assembler.
Most of the experienced assembly programmers I know started with an old-school basic (gw-basic, basica, one of the rom basics) and today also program in a BASIC derivative (VB, PowerBasic, TrueBasic, etc..)
None of them enjoy C++.
I often hear C++ programmers declare that learning assembly is stupid, that processor are too complicated now to write efficient assembly, and so on.
I do not think that these things are a coincidence. Basic programmers from the 70's and 80's turned into tinkerers, while C programmers from the 70's and 80's turn into architects. Its counter-intuitive when you first think about it, but it seems to be the truth. That Basic programmer had a lot of architecture done for him but had to struggle to tinker, while that C programmer had tinkering handed to him by the language but had to struggle with his own architecture. Each eventually masters what is difficult on the field they play in, while taking for granted that which is easy.
Regardless of the target language, if I need a project lead for a large application I would want a good solid architect, but if I want a library written (perhaps even for that large project) then I would want that heavily experienced tinkerer on the job.
Volume discounts.
Resellers would benefit from getting together and purchasing in very large volumes, but in practice they just dont get along. Thus creates the need for Distributors.
Distributors supply many Resellers, so they act as a proxy of that deal the Resellers can't agree on amongst themselves. The Distributor gets a much better volume discount than any Reseller can individually, so both Distributor and Reseller can gain from this arrangement.
The manufacturer gains because their operation is much more efficient when they have large negotiated orders to meet, instead of an unpredictable stream of small orders.
I recently did a semi-extensive study of the various quad core desktop processors available on NewEgg, leveraging the public benchmark results from PassMark to gauge their overall relative performance. I used the NewEgg prices and simply computed the number of benchmark points you get per dollar.
The only Intel chips that are competitive with AMD's on this metric are the Q8300, the i5-750, and the Q8400.. in that order, with only the Q8300 ranking better than ANY of the AMD chips on this value metric.
Here is the actual list I made up. Score is the PassMark score, the price is the NewEgg price, and the calculated value is score/price. Higher is thus better.
The Intel linup:
Core2 Quad Q8200, score = 3255, price = $184, value = 17.69
Core2 Quad Q8300, score = 3570, price = $150, value = 23.80
Core2 Quad Q8400, score = 3668, price = $170, value = 21.58
Core2 Quad Q9400, score = 3756, price = $190, value = 19.77
Core2 Quad Q9505, score = 4016, price = $240, value = 16.73
Core2 Quad Q9550, score = 4291, price = $260, value = 16.50
Core2 Quad Q9650, score = 4559, price = $330, value = 13.82
Core i5-750, score = 4219, price = $195, value = 21.64
Core i7-860, score = 5570, price = $280, value = 19.89
Core i7-870, score = 5871, price = $540, value = 10.87
Core i7-920, score = 5590, price = $289, value = 19.34
Core i7-950, score = 6309, price = $570, value = 11.07
Core i7-960, score = 6727, price = $590, value = 11.40
Core i7-975, score = 7101, price = $970, value = 7.32
The AMD lineup:
Phenom II x4 940 "Black", score = 3645, price = $156, value = 23.37
Phenom II x4 945 "Black", score = 3500, price = $150, value = 23.33
Phenom II x4 955 "Black", score = 3876, price = $160, value = 24.23
Phenom II x4 965 "Black", score = 4253, price = $180, value = 23.63
If you dont need the horsepower, then the Q8300 is the best at $150. The i5-750 makes a strong showing ay $195, but it is NOT a better processor for the money than AMD's Phenom II x4 965, which is both cheaper at $180 and scores better.
Note that these are also the "Black" edition AMD's which have unlocked multipliers, so they are also an overclockers dream if thats the route you might want to take.
... or the guys who "pack" his truck.
Do you mean the Throwers?
It is a known fact that Throwers are more efficient than Placers or Tossers.
Exactly.
I want the entire worlds population to exist for the express purposes of keeping me alive and well for as long as imaginably possible.
Period.
The sad reality of the American situation is that if YOU break your leg and then have it mended, thats going to cost thousands upon thousands of dollars, but if YOUR DOG breaks its leg and then you pay to have it mended, the cost will be under a grand. The reason for this is that SO MANY PEOPLE HAVE HEALTH INSURANCE FOR THEMSELVES, BUT NONE FOR THEIR DOG.
Its all fun and games when someone else pays.
Note that I am not saying that they do erase them sequentially. The modern SSD firmware tracks how recently sectors have been written and occasionally moves very long-lived data to the blocks it knows have been most frequently erased (because they track that.)
These strategies are basically those employed by long understood cache algorithms, but replacing the time-cost metric with a wear-cost metric.
How is a typical static wear levelling algorithm likely to kick in in a way which prevents an unacceptable slowdown during one pass, while at the same time squeezing out max writes to all physical blocks?
All operations on an SSD can be done in parallel. While the SSD doesnt expose a parallel interface to the host system, it can still do work in parallel internally, such as performing an erase cycle on multiple blocks simultaneously, erase many blocks while writing to another, write to many erased blocks simultaneously, and so on.
The modern SSD has quite a bit of RAM available to them, but unlike a conventional drive, most of this RAM is not used as a cache. They use this ram as a buffer so that they can do many operations only loosely related to the current host command (a command such as write sector #N) simultaneously. A command to write a sector may trigger many internal operations, such as load up the contents of an arbitrary block and then start an erase cycle while simultaneously it is writing that sector (or many recently written sectors) out to one of the already erased blocks.
So in short, it is not an in-practice performance problem to literally erase-cycle the blocks sequentially. If that about-to-be-erased block had valid sectors in it, then read the entire block into RAM, queue all of its allocated sectors for writing, then erase-cycle the block.
How about this for an argument.
A 500GB SSD can be entirely over-written ("changing all the data on the medium") over 10,000 times. No wear leveling needed here. 10K writes is the low end for modern flash.
Lets suppose you can write 200MB/sec to this drive. Thats about average for the top enders right now.
It will take 2,500 seconds to overwrite this entire drive once. Thats about 42 minutes.
So how long to overwrite it 10,000 times?
Thats 25,000,000 seconds.
Thats 416,667 minutes.
Thats 6,944 hours.
Thats 289 days.
289 *days* of constant 24/7 writing to use of the flash.
Now.. and this is the key point.. will a platter drive survive 289 days of constant max-throughput writing? The answer is no. You will burn the platter drives physical components way before that.
Most RAID configurations *are* geared towards performance. Yes, redundancy too.
Perhaps the most common is RAID5, because it offers increased performance, with redundancy that can withstand any single drive going down.