Attack Speed is an intuitive concept governed by unintuitive, arcane calculations and mechanisms. Everyone can understand that more attack speed means attacking faster, but the exact nature of the math can induce headaches.
To make this easier, we'll start with an oversimplified formula.
Attack Speed = Base Attack Speed * (1 + Attack Speed Bonuses)
Every champion has their own Base Attack Speed. These range from 0.579 to 0.694 attacks per second depending on the champion. Because of how the formula works this value is very important to a champion's ability to scale with Attack Speed. To reach 2.0 attacks per second a champion with 0.694 Base Attack Speed only needs 188% Attack Speed, whereas a champion with 0.579 Base Attack Speed needs 245%, a 57% gap worth roughly 1500 gold. A higher Base Attack Speed clearly results in substantially greater benefits from Attack Speed bonuses.
Champions also gain Attack Speed as they level, similar to how they gain AD. These range from 0.98% per level to 3.84% per level, including level 1. This Attack Speed functions the same as any other Attack Speed Bonuses.
So a level 18 Shaco with Madred's Bloodrazor and Berserker's Greaves has 65% Attack Speed from items, 54% from levels and a Base Attack Speed of 0.694 attacks per second. Attack Speed Bonuses are added together, so filling out the the formula we get:
Attack Speed = 0.694 * (1 + 119%)
Attack Speed = 0.694 * 2.19
Attack Speed = 1.520
If we replace Shaco with Nautilus, we only have 17.6% Attack Speed from levels, and a Base Attack Speed of 0.613, giving us:
Attack Speed = 0.613 * (1 + 82.6%)
Attack Speed = 0.613 * 1.826
Attack Speed = 1.119
As you can see, both Base Attack Speed and a champion's innate Attack Speed per level can have a huge influence on their scaling.
However, there's more to Attack Speed than that. The oversimplified formula ignores the effect of Attack Speed Debuffs, such as Frozen Heart or Malphite's Ground Slam. Factoring those in the equation changes.
Attack Speed = (Base Attack Speed * (1 + Sum of Attack Speed Bonuses)) * (Product of Attack Speed Debuffs)
Because of how this formula works Attack Speed Debuffs are incredibly powerful. Consider what happens to our Shaco when fighting an opponent with Frozen Heart's 20% Attack Speed Debuff.
Attack Speed = (0.694 * (1 + 119%)) * (1 - 20%)
Attack Speed = (0.694 * 2.19) * (0.8)
Attack Speed = 1.520 * 0.8
Attack Speed = 1.216
Shaco's final Attack Speed is reduced to a level equivalent to having only a 75.2% total Attack Speed Bonus. Because the 20% Debuff affects all attack speed as a multiplier it's as if Shaco lost 43.8% Attack Speed. The more Attack Speed a champion has, the greater this effective loss becomes.
Multiple Attack Speed Debuffs are multiplied together, so if our Shaco was affected by both Frozen Heart and Ground Slam the calculations are as follows:
Attack Speed = (0.694 * (1 + 119%)) * ((1 - 0.2) * (1 - 0.5))
Attack Speed = (0.694 * 2.19) * (0.8 * 0.5)
Attack Speed = 1.520 * 0.4
Attack Speed = 0.608
In this case our unfortunate Shaco is actually attacking slower than his Base Attack Speed. He effectively has -12.4% Attack Speed, making such an auto-attack heavy champion essentially worthless. This crippling combination is a key part of why Malphite has been a top ban.
As a matter of trivia, Attack Speed has both a cap and a minimum. You can't exceed 2.5 attacks per second, or go below 0.2 attacks per second. The circumstances for approaching either number are extremely rare, but not entirely improbable. There is also one confusing exception to the rules for debuffs, the passive effect of Randuin's Omen. For whatever reason, Randuin's Omen's passive is treated as a negative Attack Speed Bonus rather than as an Attack Speed Debuff. You won't often encounter situations where these tidbits are practicable, but they're interesting nonetheless.
What is useful is applying the understanding of Attack Speed mechanics to champion theory. Not too long ago AD Kennen was used in tournaments in place of traditional AD carries, and a large part of his success came from his excellent Base Attack Speed and Attack Speed per level. Combining his 0.690 attacks per second with his 3.4% Attack Speed per level, Kennen has the highest innate Attack Speed in the game. Despite only having a nominal AD steroid, Kennen's superior base stats and scaling allowed him to be a serious contender at the tournament level.
Similarly, Twitch is currently flying under the radar. Of the traditional AD carries Twitch has the highest Base Attack Speed and Attack Speed per level. That he also has an extremely strong Attack Speed steroid only adds to his hidden strength. It's only a matter of time before someone figures out an appropriate team composition and Twitch rises from the depths of obscurity.
Understanding Attack Speed isn't quite as critical as other mechanics, but for the teams that want to be on the bleeding edge of composition and champion theory it's another important piece of the puzzle.
Friday, August 31, 2012
Thursday, August 30, 2012
Patch Day: Late August
Today's patch notably comes without any new champion whatsoever, not even a note about requiring further testing on the PBE. Of course, this doesn't mean there's nothing to talk about.
Alistar is getting some much needed nerfs, and in the right places. He's been banned consistently for quite some time, largely because he's been the ideal jungler for the current meta. His ganks are amongst the strongest in the game, while his farm requirements are amongst the lowest. Nerfing his movement speed and his headbutt range cuts into his ganking power significantly, but he'll still be a very strong jungler regardless.
Corki gets a thorough smacking with the nerf bat. The modification to his passive is the most notable of his changes, as it reduces his auto-attack damage significantly. Due to the mathematics of the true passive it's roughly a 10% auto-attack damage nerf late game. That's a very strong nerf, and will hurt Corki significantly.
Diana's nerfs are reasonable, and she'll likely still be incredibly strong afterward. Her base damage and innate tankiness remain very high. The key change is the cooldown nerf to her ultimate, which forces Diana to be much more thoughtful about its use. She is now, as she should have been in the first place, very reliant on her Q for sticking power.
The Eve changes will significantly help both her laning and her jungling, but she remains an odd champion. She's much more at home in a gank composition meta, which no one is currently running. Should that become common she'll see a resurgence of popularity, but until then she's not likely to see the limelight.
Ezreal is the least-nerfed of the three popular ADs. What made Ezreal's W strong wasn't its damage as much as its attack speed slow. Landing a W in a skirmish bottom meant winning the skirmish, as your opponent's damage potential plummeted. This hasn't changed, and buffing Q only makes Ezreal stronger. Expect him to utterly dominate whenever played by someone who can aim.
Gragas' ultimate has long been known for its ridiculously short cooldown. With cooldown reduction he's been able to throw potential game winning barrels every 36 seconds for some time. The nerf is warranted, but saddening for long time Gragas players. The mobility nerf is notable but less important, as ultimately the mana cost won't matter.
Graves' changes can be hard to wrap one's mind around due to the arcane and mysterious nature of Attack Speed. However, the end result of the changes is that with a typical build Graves will be auto-attacking 10% slower than before. This is roughly equivalent to the Corki nerf, though via a different vector.
Nerfing Karthas' wall hurts his laning phase more than anything else. It will still be great for cutting off fleeing enemies, or countering an initiation.
Katarina's damage scaling has been nerfed significantly, likely as a counter-weight to her passive's change. Previously getting a reset on her ultimate required near-maximum CDR and three dead enemies, meaning it was pretty common for her to get her ultimate back with only one foe left to attack. With this change 2-3 deaths will ensure a reset, warranting a slight nerf on her other damage sources.
It surprised me how little Twitch is played. These buffs are very slight, and likely are aimed at putting him on the radar rather more than anything else. I expect that eventually people will learn the power of a Twitch kill lane, and we'll see him become extremely popular.
This was a nerf-heavy patch, but they were all warranted. We'll see if Syndra's patch doesn't bring with it a greater proportion of buffs for needy champions.
Alistar is getting some much needed nerfs, and in the right places. He's been banned consistently for quite some time, largely because he's been the ideal jungler for the current meta. His ganks are amongst the strongest in the game, while his farm requirements are amongst the lowest. Nerfing his movement speed and his headbutt range cuts into his ganking power significantly, but he'll still be a very strong jungler regardless.
Corki gets a thorough smacking with the nerf bat. The modification to his passive is the most notable of his changes, as it reduces his auto-attack damage significantly. Due to the mathematics of the true passive it's roughly a 10% auto-attack damage nerf late game. That's a very strong nerf, and will hurt Corki significantly.
Diana's nerfs are reasonable, and she'll likely still be incredibly strong afterward. Her base damage and innate tankiness remain very high. The key change is the cooldown nerf to her ultimate, which forces Diana to be much more thoughtful about its use. She is now, as she should have been in the first place, very reliant on her Q for sticking power.
The Eve changes will significantly help both her laning and her jungling, but she remains an odd champion. She's much more at home in a gank composition meta, which no one is currently running. Should that become common she'll see a resurgence of popularity, but until then she's not likely to see the limelight.
Ezreal is the least-nerfed of the three popular ADs. What made Ezreal's W strong wasn't its damage as much as its attack speed slow. Landing a W in a skirmish bottom meant winning the skirmish, as your opponent's damage potential plummeted. This hasn't changed, and buffing Q only makes Ezreal stronger. Expect him to utterly dominate whenever played by someone who can aim.
Gragas' ultimate has long been known for its ridiculously short cooldown. With cooldown reduction he's been able to throw potential game winning barrels every 36 seconds for some time. The nerf is warranted, but saddening for long time Gragas players. The mobility nerf is notable but less important, as ultimately the mana cost won't matter.
Graves' changes can be hard to wrap one's mind around due to the arcane and mysterious nature of Attack Speed. However, the end result of the changes is that with a typical build Graves will be auto-attacking 10% slower than before. This is roughly equivalent to the Corki nerf, though via a different vector.
Nerfing Karthas' wall hurts his laning phase more than anything else. It will still be great for cutting off fleeing enemies, or countering an initiation.
Katarina's damage scaling has been nerfed significantly, likely as a counter-weight to her passive's change. Previously getting a reset on her ultimate required near-maximum CDR and three dead enemies, meaning it was pretty common for her to get her ultimate back with only one foe left to attack. With this change 2-3 deaths will ensure a reset, warranting a slight nerf on her other damage sources.
It surprised me how little Twitch is played. These buffs are very slight, and likely are aimed at putting him on the radar rather more than anything else. I expect that eventually people will learn the power of a Twitch kill lane, and we'll see him become extremely popular.
This was a nerf-heavy patch, but they were all warranted. We'll see if Syndra's patch doesn't bring with it a greater proportion of buffs for needy champions.
Wednesday, August 29, 2012
Jungling: Super Fast Ganks
What makes this route compelling is fairly obvious. It's a double-buff, level 3 gank which comes so absurdly fast that even solo lanes may still be level 1. In the video Ashe Bot is only level 2 because she mindlessly pushed through the first two creep waves. The advantage of having both buffs and all of your abilities during a gank, which comes right as most lanes look to start skirmishing, is monumental.
This route fills the time gap between the common level 2 and level 4 ganks nicely, and combines many of the best features of both. Unlike a level 2 gank both of your buffs have been secured, so the cost of being counter-jungled is minimal. Unlike level 4 ganks your targets often haven't had time to invest in their escape abilities. While not flawless, it's a powerful tool to place in a jungler's arsenal.
The use of Karthas, a fairly controversial jungler, was an intentional choice designed to highlight the universality of this route. You don't have to play Nunu to use this route, or for it to be so ridiculously fast. Any jungler given a sufficient leash to save Smite for the second buff camp can follow this route. The only requirement is a little extra help from your team.
When I employ this route my goal is typically to snowball a sidelane. While you can gank middle with this route, the short lane ensures an earlier level 2 and easier escapes; if my goal was to snowball mid I'd rather do a faster level 2 gank. Whether the gank succeeds or fails you'll still have nearby camps you can clear before making a second pass, making this setup ideal for camping a lane.
The biggest threat to this route is a Smite steal at your first buff. This was actually employed by SK during the EU Regionals to shut down CLG's jungler. On top of the Smite steal they sent their team to secure CLG's other buff as well. While you're not likely to encounter a counter-jungling strategy of that level in solo queue, it's a danger to consider.
Super fast ganking is an important tool to have in your arsenal as a jungler. Practice it both with help and without, and then use it demolish unsuspecting lanes. While professional teams have been employing this method for months now, people still don't seem to expect it in solo queue.
Tuesday, August 28, 2012
Quote: On the Proving Grounds
"That's one small map for ARAM, one giant sink for our time."
-Neil Armstrong
-Neil Armstrong
Monday, August 27, 2012
Thought: Competitive Ethics
The finals between Curse and Dignitas this weekend have created quite a stir. There are a wide range of opinions flying around, and mine would only add to the chaos. Instead, I'd like to try to throw some facts and objective analysis into the mix.
The first and most important fact is that while this is League of Legends' first major match-fixing incident, it is not the first (nor will it likely be the last) case of match-fixing in eSports. StarCraft, StarCraft 2, and even Counter-Strike have all had match-fixing scandals in the past. Match-fixing is as problem for all eSports, not League of Legends specifically.
Second, match-fixing is damaging to any sport, but particularly eSports. Currently eSports are attempting to gain mainstream traction. Whenever an incident of this nature occurs it undermines the credibility of eSports and the organizations associated with them. We are still in the crucial developmental phase of eSports, and scandals like this roll back the efforts of thousands of people.
Finally, League of Legends is currently in an especially sensitive position as an eSport. It currently dwarfs all other eSports in terms of viewership, and in many ways is doing for eSports in North America what everyone hoped StarCraft 2 would do. It's also taken off like wildfire in Korea, the home of eSports. League of Legends is, in many ways, the eSports leader worldwide, which means anything adverse that happens in its competitions can have far ranging impacts.
So while it's unfair to ignore the history of match-fixing in eSports when considering the events of this weekend, League of Legends is naturally under greater scrutiny than other games due to its privileged position and the tenuous situation of eSports. Despite the small scope of this incident it is nonetheless a big deal because of the context.
In the long run I don't believe this particular case will do more than provide fodder for meaningless "DotA vs LoL" or "LoL vs SC2" discussions, but had this been a higher profile event or involved throwing matches rather than simple prize-splitting and ARAMs it could have been much, much worse.
The first and most important fact is that while this is League of Legends' first major match-fixing incident, it is not the first (nor will it likely be the last) case of match-fixing in eSports. StarCraft, StarCraft 2, and even Counter-Strike have all had match-fixing scandals in the past. Match-fixing is as problem for all eSports, not League of Legends specifically.
Second, match-fixing is damaging to any sport, but particularly eSports. Currently eSports are attempting to gain mainstream traction. Whenever an incident of this nature occurs it undermines the credibility of eSports and the organizations associated with them. We are still in the crucial developmental phase of eSports, and scandals like this roll back the efforts of thousands of people.
Finally, League of Legends is currently in an especially sensitive position as an eSport. It currently dwarfs all other eSports in terms of viewership, and in many ways is doing for eSports in North America what everyone hoped StarCraft 2 would do. It's also taken off like wildfire in Korea, the home of eSports. League of Legends is, in many ways, the eSports leader worldwide, which means anything adverse that happens in its competitions can have far ranging impacts.
So while it's unfair to ignore the history of match-fixing in eSports when considering the events of this weekend, League of Legends is naturally under greater scrutiny than other games due to its privileged position and the tenuous situation of eSports. Despite the small scope of this incident it is nonetheless a big deal because of the context.
In the long run I don't believe this particular case will do more than provide fodder for meaningless "DotA vs LoL" or "LoL vs SC2" discussions, but had this been a higher profile event or involved throwing matches rather than simple prize-splitting and ARAMs it could have been much, much worse.
Friday, August 24, 2012
Prognostication: Recap
It's been three months since I made my predictions regarding junglers, so it's time to see how well I did. The answer, not so well.
Amumu: While he did become much more popular, it was nowhere near to the extent of the now permanently banned Alistar and Malphite. If they weren't banned, he might not have become popular at all.
Hecarim: My prediction was completely off. While the community now recognizes Hecarim as a good jungler, Skarner has reentered the scene with a vengeance. Skarner is in the top 25 most played champions, while Hecarim barely makes the top 80.
Shen and Kayle: While I'm technically correct that they didn't become dominant forces in the jungle, it's a heck of lot easier to predict what won't become popular than what will. I award myself no points for these.
Sejuani: Riot hasn't given her any buffs my prediction here was fairly meaningless. She has seen a slight uptick in use, but nothing else. I maintain that if she's buffed she'll easily become a top pick.
In the end, my predictions were mostly failures. I will probably take another stab at it in the near future, but not until after I've nursed my poor ego's bruises and wounds.
Amumu: While he did become much more popular, it was nowhere near to the extent of the now permanently banned Alistar and Malphite. If they weren't banned, he might not have become popular at all.
Hecarim: My prediction was completely off. While the community now recognizes Hecarim as a good jungler, Skarner has reentered the scene with a vengeance. Skarner is in the top 25 most played champions, while Hecarim barely makes the top 80.
Shen and Kayle: While I'm technically correct that they didn't become dominant forces in the jungle, it's a heck of lot easier to predict what won't become popular than what will. I award myself no points for these.
Sejuani: Riot hasn't given her any buffs my prediction here was fairly meaningless. She has seen a slight uptick in use, but nothing else. I maintain that if she's buffed she'll easily become a top pick.
In the end, my predictions were mostly failures. I will probably take another stab at it in the near future, but not until after I've nursed my poor ego's bruises and wounds.
Thursday, August 23, 2012
Mechanics: Penetration and Reduction
Penetration and Reduction, whether Armor or Magic, are important stats for any champion looking to do significant damage as a game continues forward. They can also be fairly befuddling.
The first source of confusion is the separation of the stats themselves. This is the unfortunate, but necessary, result of game mechanics. Reduction is a debuff, granting its benefit to anyone attacking the affected target or targets. Penetration is a personal stat that benefits only the holder. Because Penetration does not benefit the team it can be balanced to give a greater personal benefit, whereas Reduction is usually found only on expensive items and support champions. Without this separation either some support champions would lose a critical benefit or carries would see diminished effectiveness from several key items.
As a further complication both stats can appear in two forms, flat values and percentages. In effect, Penetration and Reduction are actually four stats in all. Because of these two forms the order in which the stats are applied becomes highly relevant, and has actually changed over League of Legend's history.
In the earliest days of the game these stats were applied in the following order:
% Reduction
Flat Reduction
% Penetration
Flat Penetration
This, however, lead to a number of problems. Because % Penetration was applied before Flat Penetration the combination of the two was extremely potent. Building Armor or Magic Resist felt largely useless because the vast majority of it would be meaningless. Between Last Whisper and Armor Penetration runes and masteries a tank's 200 Armor would shrink to 85, and a non-tank's Armor would often be completely irrelevant. Because of these issues Riot altered the order.
The new order became:
% Reduction
Flat Reduction
Flat Penetration
% Penetration
In addition, both Last Whisper and Armor Penetration runes received nerfs. The net result was that our hypothetical 200 Armor tank would still have 104 Armor after penetration, and a non-tank would actually have a significant chunk of armor remaining.
At that point % Reduction was only found on Nidalee's Bushwhack, so its place in the order of operations wasn't particularly problematic. However, by the time of the second Kayle rework a large number of champions were now sporting % Reduction effects. Wukong, Jarvan, Renekton, Trundle and now Kayle all had them. This was a potential disaster, as not only was Flat Penetration applied after % Reduction, but so too was Flat Reduction. Riot wisely headed off the problem by changing the order again, and that change is still in place today.
The order as it is now:
Flat Reduction
% Reduction
Flat Penetration
% Penetration
Since the release of Wukong very few other champions have been given % Reduction, and with good reason. The combination of % Reduction and Flat Penetration remains very strong, though not abusively so.
So after all that history, what are the practical applications?
First, and most obvious, if you're one of the 10 champions with % Reduction then Flat Penetration can be very valuable. How valuable depends on the strength of your % Reduction ability and its ease of use. Wukong and Jarvan love Flat Penetration because of their simple yet strong % Reduction Abilities. Jayce and Shyvana, on the other hand, don't really care as their abilities aren't as effective or easy to use.
Less obvious is when to stack Flat Penetration on champions without % Reduction. Few AD carries stack Flat Penetration because it is hard to come by and delays their vital items. Bruisers sometimes grab Brutalizer if they're ahead in an attempt to press their advantage. AP carries, however, will often attempt to exploit a strong mid-game through a combination of Sorcerer's Shoes, Haunting Guise, and Abyssal Scepter, even if they aren't already fed. It's a tough call that depends a lot on a champion's role, skill set, and the game's circumstances. The most important rule to keep in mind is that Flat Penetration, while less effective late-game, is nonetheless effective; unless your item slots are all full it's better to build other items rather than foolishly sell your Flat Penetration items.
You can also build team compositions around stacking Reduction effects. This was once popular, but became rare after dragon and Baron became immune to these effects. It used to be that a team with Nidalee and Trundle could tear through Baron in the blink of an eye. This team composition was nerfed in order to make Baron less than the be all and end all of the late-game. It's still effective against tanks and their teams, but not so effective that anyone has found a compelling reason to revive such team compositions.
Hopefully Penetration and Reduction have become less mystifying, or at least more interesting, as a result of this post. It was far more history-heavy than math-heavy, but hopefully my chronicle of the long forgotten past was not as dull as some history lessons can be.
The first source of confusion is the separation of the stats themselves. This is the unfortunate, but necessary, result of game mechanics. Reduction is a debuff, granting its benefit to anyone attacking the affected target or targets. Penetration is a personal stat that benefits only the holder. Because Penetration does not benefit the team it can be balanced to give a greater personal benefit, whereas Reduction is usually found only on expensive items and support champions. Without this separation either some support champions would lose a critical benefit or carries would see diminished effectiveness from several key items.
As a further complication both stats can appear in two forms, flat values and percentages. In effect, Penetration and Reduction are actually four stats in all. Because of these two forms the order in which the stats are applied becomes highly relevant, and has actually changed over League of Legend's history.
In the earliest days of the game these stats were applied in the following order:
% Reduction
Flat Reduction
% Penetration
Flat Penetration
This, however, lead to a number of problems. Because % Penetration was applied before Flat Penetration the combination of the two was extremely potent. Building Armor or Magic Resist felt largely useless because the vast majority of it would be meaningless. Between Last Whisper and Armor Penetration runes and masteries a tank's 200 Armor would shrink to 85, and a non-tank's Armor would often be completely irrelevant. Because of these issues Riot altered the order.
The new order became:
% Reduction
Flat Reduction
Flat Penetration
% Penetration
In addition, both Last Whisper and Armor Penetration runes received nerfs. The net result was that our hypothetical 200 Armor tank would still have 104 Armor after penetration, and a non-tank would actually have a significant chunk of armor remaining.
At that point % Reduction was only found on Nidalee's Bushwhack, so its place in the order of operations wasn't particularly problematic. However, by the time of the second Kayle rework a large number of champions were now sporting % Reduction effects. Wukong, Jarvan, Renekton, Trundle and now Kayle all had them. This was a potential disaster, as not only was Flat Penetration applied after % Reduction, but so too was Flat Reduction. Riot wisely headed off the problem by changing the order again, and that change is still in place today.
The order as it is now:
Flat Reduction
% Reduction
Flat Penetration
% Penetration
Since the release of Wukong very few other champions have been given % Reduction, and with good reason. The combination of % Reduction and Flat Penetration remains very strong, though not abusively so.
So after all that history, what are the practical applications?
First, and most obvious, if you're one of the 10 champions with % Reduction then Flat Penetration can be very valuable. How valuable depends on the strength of your % Reduction ability and its ease of use. Wukong and Jarvan love Flat Penetration because of their simple yet strong % Reduction Abilities. Jayce and Shyvana, on the other hand, don't really care as their abilities aren't as effective or easy to use.
Less obvious is when to stack Flat Penetration on champions without % Reduction. Few AD carries stack Flat Penetration because it is hard to come by and delays their vital items. Bruisers sometimes grab Brutalizer if they're ahead in an attempt to press their advantage. AP carries, however, will often attempt to exploit a strong mid-game through a combination of Sorcerer's Shoes, Haunting Guise, and Abyssal Scepter, even if they aren't already fed. It's a tough call that depends a lot on a champion's role, skill set, and the game's circumstances. The most important rule to keep in mind is that Flat Penetration, while less effective late-game, is nonetheless effective; unless your item slots are all full it's better to build other items rather than foolishly sell your Flat Penetration items.
You can also build team compositions around stacking Reduction effects. This was once popular, but became rare after dragon and Baron became immune to these effects. It used to be that a team with Nidalee and Trundle could tear through Baron in the blink of an eye. This team composition was nerfed in order to make Baron less than the be all and end all of the late-game. It's still effective against tanks and their teams, but not so effective that anyone has found a compelling reason to revive such team compositions.
Hopefully Penetration and Reduction have become less mystifying, or at least more interesting, as a result of this post. It was far more history-heavy than math-heavy, but hopefully my chronicle of the long forgotten past was not as dull as some history lessons can be.
Subscribe to:
Posts (Atom)