48 posts

Converting a list item to a string in a Python for loop

Recently I was experimenting with a project to scrape some information from LinkedIn and was very close to completing my script but I was having difficulties getting my for loop to work since the square brackets from the list values were causing BeautifulSoup4 not to work.

This is the error I was running into. As you can when I print the value for the URL I’m iterating through its being read/stored with the square brackets (‘[‘, ‘]’) which is mucking things up for my scraping module.

After a bunch of searching and multiple attempts (turn the item into a string and try to replace out the square brackets, print without square brackets and save as new value for a variable, etc) I finally found something that worked!

It was as simple as this.

for ListUrl in urlList:
    url = ''.join(ListUrl)

I joined the value from the list (in this case just a singular value since I was iterating through one item in the list at the time) to the other values (in this case no other values) with nothing (” without anything in between means you’re not assigning a value for your separator, if I’d used ‘-‘ instead for example there would be a hyphen in front of my URL and connecting any other URLs that were being joined together to the first one).

This removed the square brackets from my list value and turned it into a string at the same time. Awesome!

Hopefully this helps others who are experiencing the same struggle, :D.

Reverting a bad commit and removing it completely from Github

Let’s say you accidentally commit and push a file full of passwords (like a .env file) that you don’t want other people to want and now it is part of your public project on Github? How do you get rid of that? Fear not, follow these two commands and you’ll be back to before you took that ill-fated action.

Before beginning, make sure that you backup any files and changes you’d like to preserve elsewhere as your work in the repository will be wiped back to where you were at your previous commit.

git reset –hard HEAD^
git push origin +master –force

(Note that here I used “master” as that was the branch I was working on, you’ll want to change “master” to whatever your branch name is and use that in the command)

Useful links: https://stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github

readlink: command not found

I’ve been working on a bunch of projects that involve Python and a decent amount of commands written and issued in terminal. At one point, I was trying to boot up a local server for a web app I was running and kept running into the error “readlink: command not found”. After a ton of searching and attempting to understand what was going on, I was able to find a solution that solved my problem and allowed me to get back on track.

The core of this issue is changes made to your .bash_profile that renders it unreadable or unparseable so you need to jolt it out of that state to allow it to function normally again.

The answer here on Stackoverflow ultimately led to me solving my problem.

It is happens when you just copy the line (below) into the .bash_profile without removing the quotes (‘xxxx’)
export PATH=’/usr/local/bin:$PATH’

To resolve, just run in console:
export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

Then, edit again the file removing the quotes:
vim ~/.bash_profile

The terminal commands that I ran locally ended up looking like this

Nicholass-MacBook-Pro:post-covid-19 nicholaspezarro$ export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Nicholass-MacBook-Pro:post-covid-19 nicholaspezarro$ source ~/.bash_profile

Hopefully this helps you out if you’re having this issue!

Measure What Matters – Broken into Bullets

I recently read Measure What Matters as our new executive at Humble Bundle is introducing OKRs as a means to drive the company towards our goals. The book was surprisingly interesting to read and made a good case for OKRs and the different ways in which you can use them. What follows below is the summary I made of the points from the book. Hopefully they can be helpful to some of you, :).

Objectives and Key Results

Choose OKRs that are a stretch. 100% completion is not a requirement.

It can take some time to build out OKRs (6 months to a year or more). You may want to start with a smaller pilot group and build up from there.

OKRs help departments come together to make sure that everyone is meeting their goals.

OKRs should not be tied to compensation. Tying to compensation leads to sandbagging of numbers.

OKRs can be adjusted midway if they are no longer relevant but adjustment should be accompanied by discussion and consensus.

The OKR creation process should be transparent and collaborative. OKRs are not meant to be assembled from on high and handed down as directives. The best top level OKRs end up being reflected in the OKRs written by individual contributors.

Progress on OKRs should be tracked continuously in smaller portions than the time period for the OKRs themselves (e.g. Weekly for Quarterly OKRs).

OKRs do not have to be quarterly or annual. They can be multi year endeavors if the situation calls for it.

OKRs do well when paired with CFR (Conversations, Feedback, Recognition). CFR allows for the steering of employees and keeping them on track rather than catching issues or optimizations outside of the moment when they are relevant (and avoids recency bias).

OKRs allow for the whole organization to move in the same direction on key goals and initiatives (e.g. Operation Crush). By using OKRs, a company can be much more agile and avoid the sluggishness that comes with size and scope.

OKRs provide clarity for everyday decision making and prioritization. Does this help me to achieve my OKR?

Key results should not exceed 3-5 per OKR.

OKRs should be graded (0-1, Green/Yellow/Red) to assess progress once the period has been ended.

For OKRs to succeed, a culture of trust and collaboration needs to exist. Individuals should be free (and safe) to fail. Without the right environment to operate within the potential unlocked by OKRs will continue to be held captive.

OKRs allow managers to scale through their direct rapports.

OKRs need to be transparent and publicly available. An active culture of viewing others’ OKRs is healthy and allows co-workers to direct themselves in an efficient fashion and plan for the needs and capabilities of other teams as a part of their process.

Getting everyone on board for OKRs may require consistent nudging and will likely require continuous effort to preserve and expand upon them.

OKRs provide clarity in challenging times and allow companies to re-evaluate their approach before its too late if they aren’t making needed progress.

Stretch goals can produce truly formidable results (Google Chrome rollout, push to 1 billion hours viewed for YouTube).

OKRs produce a meritocracy by tracking progress and results and not limiting recognition solely to those who speak the loudest or happen to be in the limelight.

OKRs bring focus and allow companies to commit fully to their priorities.

OKRs can also contain things like staying true to a company’s values and continuing to put users first (e.g. Zume and not sacrificing quality of ingredients in the push for growth and efficiency).

Different departments should collaborate to find what they can do to help each other succeed. OKRs should open up dialog for this to occur naturally.

Preventing Keyboard Language Switching

“Hi everyone. I’ve been gone for a while but I’m back with what I consider to be a very helpful tip. I’ve been playing a lot of WoW recently and have been frustrated multiple times by my keyboard changing to French keyboard thus preventing me from being able to type “”/”” until I manage to revert it. After some searching I realized that if I hit Left Alt and Ctrl at the same time it switches to my other keyboard. I’ve included a step by step approach below to remove the hotkey for switching keyboards (you can still easily swap between them using the menu accessible through the toolbar).

That’s all for now. I hope you found it useful. Have a pezant day!”

Heroes of the Storm – Black Screen Fixes

“I just started HotS a few days ago as my girlfriend got an invite (I have yet to receive one) and she has been kind enough to let me use her account to play. It’s an interesting game with a very different feel from DotA 2 and I have been enjoying it thus far. But, as soon as I installed it on my computer. I was met by a strange black screen where it swapped between the desktop and the black screen until I would forcibly close the program. After looking online for some fixes I eventually came to a combination of approaches that worked for me and wanted to share them with everyone.

Step 1: If you have a high resolution like 1920 x 1080, set your display resolution down to 1280 x 720. Apparently the game has issues with loading into a higher resolution like initially (on the first run). Once you’re in the game you can return your display to its previous levels and adjust the in-game resolution values accordingly.

Step 2: Once I booted up the game I could only see the UI with a bit of the game showing up in the minimap area. My fix was for this was to follow the instructions posted by Velnrak (a mod) on the Blizzard forums. After changing Antialiasing to Application-controlled for HotS in the Nvidia control panel I was able to see the entirety of the game properly again!

Step 3: If you’re still having trouble, you can try changing the variables file in your x:User/Documents/Heroes of the Storm folder and adding in a value:displaymode=0 to the variables there (a reader also suggested changing it to value:displaymode=1 if you’re still having issues. Might work for you!) . I didn’t have to end up doing this but it may help.

These are the fixes that I found worked for me. Hopefully they help you out as well.

That’s all for now. Have a pezant day!

Note: If you liked this article. Consider donating or installing this Chrome Extension I made that gives me credit for your Amazon purchases (by adding in my referral tag when you’re browsing Amazon).


The Next Big Patch: Looking over 6.82 – General Changes

“Though the general changes aren’t quite as glamorous as the item and hero changes they also carry a great deal of significance. There are many livability changes (like the fountain change, changes to Ranked All Pick, and pathing fixes) but the majority of the general changes are actually quite significant for those of us who play and love this game. A jacked up Roshan, new rune, increased juke potential and more await!


Fountain area is now at a higher elevation level | Fountain vision increased from 1400 to 1800 | Fountain attack range increased from 1100 to 1200 | Fountain True Sight increased from 900 to 1200

Fountain camping is no longer like shooting fish in a barrel. And, though I do miss beating on the opposing team mercilessly after a crushing victory, it makes sense to try and discourage this type of behaviour. Fountain camping was just an extension of an already painful experience for the other team and 97% of the time served merely to prolong their suffering. The 3% that were edge cases where the fountain camp resulted in the other team coming back weren’t quite enough to justify the suffering that so many had to go through on a regular basis. Note: These stats are clearly made up but I hope they are somewhat representative.

Reworked terrain surrounding the Roshan area | Reworked terrain around the Dire bottom lane | Reworked terrain below the Top Radiant Tier 1 Tower
Reworked the area to the left of the bottom Dire Tier 2 Tower | Moved Dire bottom Tier 2 Tower back very slightly | Added an alternate path to the north of the bottom lane Side Shop
Added an alternate path to the right of the bottom Dire Tier 1 Tower | Added a new ward spot near the bottom Dire Tier 2 Tower| Added a new ward spot near the top Radiant Tier 2 Tower | Added a new ward spot between Roshan and the Dire bottom lane | Bottom Lane Dire creeps now arrive slightly closer to the Dire Tier 1 Tower | Top Lane Radiant creeps now arrive slightly farther from the Radiant Tier 1 Tower 

Added a bunch of extra paths which provide many more options for ganking, escaping and juking. These changes make the game much more dynamic during the laning phase because it is much more difficult to ensure one’s safety by standing in a certain position. The addition of various paths through the trees also makes heroes with flying vision potential (Beastmaster, Treant with Agh’s, etc) as it is more difficult to juke them with the new paths (whereas you have a much better chance now that you can split off in many more directions than you could before). These new paths have resulted in a great deal of confusion for me and my friends but I really like the possibilities that they have added! A great change.

The new ward spots are nice and give some more options for warding later on in the game (they also help with keeping an eye on those crazy new juking spots).

Added a Bounty Rune [?] – 50 XP +5/min and 50 gold +2/min | Two runes now spawn in the river every two minutes. One of them will always be a Bounty Rune | Runes are replaced every two minutes if they are not picked up

The bounty rune is an interesting addition. When I first read the patch changes I thought that it gave you a 50XP/Gold boost and throughout the rest of the game you got an extra 5/2 per minute (with that effect being stackable with additional runes). Unfortunately, for those long of us obsessed with long term returns, this is not the case. But you do get an instant boost in gold/XP when you use it which is nice.

The addition of the bounty rune and the 2 rune spawns per 2 minutes means that there is no longer any guesswork in going to a rune spot. This adds an awesome element of supports, offlaners and mid laners contesting rune spawns regularly which makes the early game a little bit more interesting and dynamic. It also favors heroes that are able to contest those types of situations more successfully.

Finally, this change brings heroes that are able to move to runes quickly and present a significant threat 1v1 into a better position for the mid lane. Along with the changes to the courier (huge cooldown increase for boost) it looks like Icefrog and Valve are trying to dissuade people from spamming bottle crow and going mid with any hero they like. I, for one, favour this change as it really was getting a bit tedious/ridiculous seeing all sorts of silly choices for mid justified by the ability to bottle crow.

Denied creeps now give less experience [?] | 50% experience instead of 36 per.

Denied creeps giving less experience than before means that denies will have more impact in lane. Greater rewards for players with the ability to balance last hitting and denying.

First Blood bonus gold decreased from 200 to 150

Part of the range of changes made to reduce the impact of early game momentum. 150 gold is still important but 25% less than 200 and a 50 gold difference is somewhat significant early on.

Reworked the bonus area of effect XP | Reworked bonus area of effect Gold and Streak ending

These changes resulted in a huge shift in kill rewards that people were referring to as “”rubberbanding””. Basically, if you had a huge lead and allowed heroes with large net work/kill sprees to be killed suddenly you found yourself even or below the opposing team. These changes were toned down significantly in following patches and were further reduced in 6.82c.

This change only affects the extra Gold given if within an area after a kill.
It does not affect the natural Gold received for killing a hero of a certain Level/Streak.

VictimLevel = Level of the Victim

1 Assist: Gold = 125 + 12 * VictimLevel
2 Assist: Gold = 40 + 10 * VictimLevel
3 Assist: Gold = 10 + 6 * VictimLevel
4+ Assist: Gold = 6 + 6 * VictimLevel
The player that got the last hit now also gets the area of effect bounty.

VictimLevel = Level of the Victim
VictimNW = The victim’s Net Worth
EnemyTeamNW = Enemy team’s total Net Worth
AlliedTeamNW = Your team’s total Net Worth
NWDifference = ( EnemyTeamNW – AlliedTeamNW )/ ( EnemyTeamNW + AlliedTeamNW ) (minimum 0)
NWFactor = NWDifference * VictimNW

1 Hero: Gold = 40 + 7 * VictimLevel + NWFactor * 0.5
2 Heroes: Gold = 30 + 6 * VictimLevel + NWFactor * 0.35
3 Heroes: Gold = 20 + 5 * VictimLevel + NWFactor * 0.25
4 Heroes: Gold = 10 + 4 * VictimLevel + NWFactor * 0.2
5 Heroes: Gold = 10 + 4 * VictimLevel + NWFactor * 0.15​

VictimLevel = Level of the Victim
VictimXP = Total XP of the Victim
EnemyTeamXP = Enemy team’s total XP
AlliedTeamXP = Your team’s total XP
XPDifference = ( EnemyTeamXP – AlliedTeamXP )/ ( EnemyTeamXP + AlliedTeamXP ) (minimum 0)
XPFactor = XPDifference * VictimXP

1 Hero: XP = 20 * VictimLevel + XPFactor * 0.5
2 Heroes: XP = 15 * VictimLevel + XPFactor * 0.35
3 Heroes: XP = 10 * VictimLevel + XPFactor * 0.25
4 Heroes: XP = 7 * VictimLevel + XPFactor * 0.2
5 Heroes: XP = 5 * VictimLevel + XPFactor * 0.15

In combination with these changes, the gold for ending a spree is in turn reduced, from 125->1000 to 100->800.

Factors have now have been reduced to:

* AoE Gold NWFactor reduced from 0.06/0.06/0.05/0.04/0.03 to 0.05/0.05/0.05/0.04/0.03
* AoE XP XPFactor reduced from 0.3/0.3/0.2/0.15/0.12 to 0.23/0.23/0.2/0.15/0.12

Glyph of Fortification cooldown is now refreshed whenever you lose a Tier 1 tower | Tier 2 Tower’s armor increased from 20 to 25 | Tower bounty gold for destroying Tier 1/2/3/4 reduced from 264/312/358/405 to 160/200/240/280 (denied is 50%)

These tower changes are a godsend when playing against pushing lineups. After witnessing the destruction that was the TI4 finals it is a relief to see that the power and momentum available to a pushing lineup has been reduced substantially. DotA is a game about objectives but the complexity and depth of the game was being compromised by the overwhelming power of a pushing lineup.

In Captain’s Mode, the 3rd ban phase order is swapped

This restores a bit of balance to the picking order

Reworked how All Pick works in Ranked Matchmaking

All Pick in Ranked MMing now progresses with each team taking turns to pick heroes one by one. It has brought a surprising amount of structure to the mode and greatly reduced squabbles over lanes, roles and the likelihood of the other team holding out attempting to counterpick. Now, if no one has picked within the duration everyone begins losing gold and a forced random occurs 30 seconds in.

Randoming has also become more difficult as you cannot random and repick into a hero. If you random you are forced to random again, making it a much more risky decision than before.

Aegis duration decreased from 6 minutes to 5

Adds urgency to push after taking Roshan. Again, not giving as much time for teams to build on early momentum. Bumping it down to 5 minutes gives them that much less time to prepare (farm, pick off, etc) before the Aegis expires.
Roshan’s Slam area of effect increased from 250 to 350 | Roshan’s Slam damage increases by 20 every 4 minutes

Roshan was a bit of a pushover in the mid to late game. This change mostly effects heroes with summons that would have been able to take him on quite easily later on by just letting the summons tank. Lycan and Nature’s Prophet are particularly affected by this change. I like it, removes some of the ease of soloing Roshan and pushes him more towards being a team objective.

Centaur Conqueror’s Swiftness Aura has been moved to Hellbear Smasher
Hellbear Smasher Attack Time increased from 1.35 to 1.55
Hellbear Attack Time increased from 1.35 to 1.5
Centaur Conqueror Attack Time improved from 1.65 to 1.5
Centaur Courser Attack Time improved from 1.35 to 1.3
Dark Troll Summoner’s Ensnare duration increased from 1.5 to 1.75
Satyr Banisher HP increased from 240 to 300
Satyr Banisher movement speed increased from 300 to 330
Satyr Banisher attack range reduced from 600 to 300
Satyr Banisher Base Attack Time improved from 1.8 to 1.7
Satyr Banisher’s Purge cast range increased from 200 to 350
Wildwing Ripper’s Toughness Aura now works on Siege units

In general, netural creeps have become stronger and more useful for heroes that can take control of them. Chen and Enchantress are going to be pleased with these changes.

Fixed some rare edge cases with pathing malfunctioning

Yay for bug fixes! Goodness, those pathing issues were so annoying when they did occur. Thank goodness this was fixed.

The following abilities can now be cast on Spell Immune allies: Ice Armor, Surge, Alacrity, Nature’s Guise, Chakra Magic, Recall and Mist Coil

Buffs for the heroes that happen to carry these abilities.

The following buffs are now properly dispellable: Chilling Touch, Thunderstrike, Inner Vitality, Alacrity, Chaos Meteor, Shadow Word, Liquid Fire, Shadow Strike, Warcry, Concussive Shot, Overpower, Mana Leak, Curse of the Silent, Press The Attack, Poison Touch, Flame Guard, Whirling Death, Viper’s Poison Attack, Sticky Napalm, DK’s Frost Breath, Whirling Axes, Walrus Punch’s slow

Nerfs to heroes that use these abilities. But brings a bit more of a standard to the way abilities work and are dispellable.

Dark Pact/Kraken Shell/Aphotic Shield/Press The Attack/Time Lapse no longer have a special condition for purging the following otherwise unpurgeable spells: Poison Nova, Heaven’s Halberd, Ensnare, Eye of Skadi slow

These are buffs to the above abilities are they can no longer be purged in these edge cases. It is also a nerf to the corresponding heroes that carry the abilities (Slark, Tidehunter, Abbaddon, Legion Commander and Weaver).

A great set of changes with the map and rune changes really shifting the way that the game flows. With the tweaking to the way that the new kill rewards we find ourselves with a nicely balanced patch with plenty of new content to enjoy. I’ve been enjoying it thus far despite my loss streaks.
That’s all for now. Have a pezant day!

Note: If you liked this article. Consider donating or installing this Chrome Extension I made that gives me credit for your Amazon purchases (by adding in my referral tag when you’re browsing Amazon).


The Next Big Patch: Looking over 6.82 – Item Changes

“Items are a hugely important part of the game and, though the changes aren’t quite as grand and far-reaching as the hero changes, these adjustments still make a pretty big difference (especially the new item, bottle and TP costs, the flying courier and ethereal blade changes). So, without further dithering, let us dive into these changes!

Armlet of Mordiggian

  • Recipe cost reduced from 700 to 600

A slight cost adjustment. Reduces the total cost of the item from 2600 to 2500 (~4% less).

Assault Cuirass

  • Assault Aura no longer displays its debuff on the enemy if the carrier is not visible

A nice change for heroes with a shadowblade or innate invisibility who would have had to be careful about the debuff showing otherwise. Now you’ll have to be super aware to notice that your armor has dipped suspiciously in order to figure out that they are nearby.

Black King Bar

  • Avatar spell immunity duration and cooldown are now tied to the hero, instead of the item [?]
  • Minimum immunity duration increased from 4 to 5

No more buying a new BKB to get that fresh duration. I really dislike BKB so anything that makes it a little less prevalent throughout the entirety of the game is a plus to me. This means a lot for heroes that rely heavily on BKB and would have been able to continue refreshing their BKBs once the duration got too low.

Blink Dagger

  • Gold cost increased from 2150 to 2250

:'(, Blink Dagga Dagga. Such an amazing item, it was inevitable that it eventually be toned slightly as it was just too great. I like that they’ve elected to make it a bit more difficult to obtain rather than reversing the removal of the mana cost. This keeps those awesome plays open but reduces it’s strength a bit.


  • Now requires Soul Ring and a 800 gold recipe instead of Perseverance (1600 vs 1750 total gold)
  • No longer grants +10 damage (other bonuses stay the same)

Bloodstone is no longer a huge pit that you throw all of your gold into in the hopes that you will end up getting a lot of kills after you purchase it and have near infinite mana regeneration. With the change from a Perseverance to a Soul Ring you can purchase Soul Ring early on and build it into a Bloodstone later on when it suits you. A great change for heroes that tend to build into Bloodstone.


  • Gold cost increased from 650 to 700

50 gold is one more last hit required to get that bottle for your mid hero. Though it may not seem like much it does add up and puts it a little further out of reach. In combination with the changes to the flying courier and the rune spawn adjustments it looks like they are seeking to severely restrict bottle crowing and have mid be a more favourable place for heroes that can make their way to runes quickly and contest them well.

Boots of Travel

  • Teleport cooldown reduced from 60 to 50

 This adds to the value proposition of BoT. Aside from saving you the 100 gold it now costs to purchase a teleport. It also shaves a delightful 10 seconds off of the usual cooldown for Teleportation. This means that you’ll be able to flee from those difficult situations that much quicker. I really like purchasing BoT later on in the game in order to free up an item slot (usually occupied by a TP) and this makes it that much more appealing to purchase.


  • Butterfly now has an active ability, Flutter, which can be cast to trade Butterfly’s evasion for a 20% movement speed bonus for 8 seconds. 35 second cooldown. [?]

 A great little addition to Butterfly. 20% movement speed increase is nothing to balk at. And as long as you’re fleeing or chasing you won’t mind the temporary loss of your evasion. Adds another dimension to an item that was viewed a little less favourably due to the fact that it could be countered nearly entirely by the purchase of an equivalently costed item (MKB).


  • Cloak, Hood and Pipe magic resistances now stack like all other normal magic resistance do

 Not sure how this was set up before but I imagine it has something to do with the streamlining of various mechanics in the game.

Crimson Guard

    • New Item that is formed from Vanguard and Buckler

Crimson Guard:

Vanguard (2225)
Buckler (800)
Recipe (825)
Total: 3850 gold

250 HP
+6 HP Regen
Passive Damage Block (80% chance for 40/20 melee/ranged)
+5 Armor
+2 All Stats

Active: Guard – Gives nearby allied heroes (750 range) +2 armor and a damage block shell that has a 100% chance to block 50 damage. Lasts 9 seconds. Cooldown 70.
Passive: Damage Block – Gives the wearer a chance to block damage from each incoming attack based on whether the equipped hero is melee or ranged.
Note: Guard only affects heroes. Has the same no stacking mechanic as Pipe of Insight/Mekansm for 70 seconds.


  • Intelligence bonus per level increased from 13/15/17/19/21 to 13/16/19/22/25
  • Energy Burst mana cost increased from 180/160/140/120/100 to 180

 The 100 mana cost at level 5 for Dagon was a bit much and this makes it a little less spammy later on in the game. Most heroes would never upgrade Dagon all the way to Dagon 5 but it does hurt heroes like Tinker (who also suffered as a result of the E-Blade nerf) who now have to manage their mana a little more carefully.

Diffusal Blade

  • Recipe cost reduced from 850 to 700
  • Agility bonus rebalanced from 25/30 to 20/35
  • Feedback rebalanced from 20/36 to a constant 25

 Diffusal Blade now offers more agility at the second recipe level but drains a lot less mana. This helps heroes who pick up a casual Diffusal Blade but is quite a tragic change for heroes like Phantom Lancer who absolutely love the Feedback portion of the item and consider it to be the item’s strength.

Ethereal Blade

  • Ether Blast now has a projectile [?]
  • Ether Blast now only turns the caster ethereal if they target themself

 Ethereal Blade is no longer the do-it-all nuke and protect yourself tool. Now you have to choose whether you want to render your target ethereal and damage them or save yourself. This item gave a little bit too much reach to certain spellcasters in the late game and made them pretty un-enjoyable to play against. Though it was a nerf for those spellcaster types it is certainly a buff for more physical damage based heroes like Morphling who like to pick up an E-blade for themselves.

Finally, the change from an instant to a projectile makes it dodge-able and removes a portion of the absolute certainty that once existed with regards to the final fate of your victim (formerly a quick, painful death).

Eye of Skadi

  • Frost Attack attack speed slow increased from 35 to 45

 Eye of Skadi was basically ignored most of the time so this buff makes it an even more important item to consider when playing a hero that could benefit from it. A constant 45 attack speed slow is quite significant when facing off against the opposing carry in the late game. We may begin to see this item being picked up more often.

Flying Courier

  • Base movement speed increased from 350 to 430
  • Flying Courier now takes 50% extra damage from melee heroes
  • Flying Courier Speed Burst cooldown increased from 40 to 90
  • Flying Courier Speed Burst duration reduced from 20 to 4
  • Flying Courier Speed Burst speed increased from 522 to 650

These changes to the courier make it more vulnerable as boosts come far less frequently. Increasing the damage taken from melee heroes helps them with  trying to pick off the courier (as before it was quite a fruitless proposition for the most part).  Though this change makes my courier much more vulnerable, I do like the fact that it encourages you to put a bit more thought into your decision before pushing on the courier sprint button.

Helm of the Dominator

  • Now provides +3 HP regeneration (to match its components)
  • Dominated units now have 250 bonus HP

 Nice little buffs to HotD. The regeneration will help with sustaining it’s holder and bring things a bit more into synergy. The extra 250 bonus HP helps you bring creeps along with you into battle (and not just use them purely for stacking). Neither of these changes are huge but they do help a bit with making the item better.

Hood of Defiance

  • HP regeneration increased from 8 to 9 (to match its components)

 Nothing to see here.

Linken’s Sphere

  • Linken’s Sphere only blocks Wrath of Nature’s initial bounce, not subsequent bounces
  • Linken’s Sphere only blocks Lightning Storm’s initial bounce, not subsequent bounces
  • Nether Ward no longer triggers Linken’s Sphere
  • Lightning Bolt now triggers Linken’s Sphere when targeted at the ground
  • Maelstrom and Mjollnir no longer trigger Linken’s Sphere

 A mix of changes for Linken’s Sphere. Not included in this change log are that Fissure no longer triggers LS and Static Link now does. Not too consequential and people will still be picking it up for the same reasons that they did before.


  • Recipe cost increased from 600 to 700

 After the changes to Maelstrom we’ve been seeing it built on pretty much every hero. The recipe cost increase seeks to make it a little less tempting to purchase on every single hero that benefits from attack speed.

Manta Style

  • Mirror Image vision type changed from Unobstructed/Flying to Ground [?]
  • Recipe cost reduced from 900 to 800

 Manta Style no longer temporarily gives Flying vision when creating illusions. This removes the opportunity for sneaky plays to spot out an enemy hero juking away or a fleeing courier.

The recipe cost reduction is nice and for those of us who aren’t 360 NO SCOPE MLG PRO it’s a net improvement for the item.

Mask of Madness

  • Recipe cost reduced from 1000 to 900

 MoM has seen a lot of play on a few core heroes (Faceless Void most notably amongst them). It’s an interesting item with pretty significant advantages and trade-offs so I’m happy to see it being given a chance to have it’s day to shine.


  • Restore mana cost increased from 150 to 225

 50% increase in mana cost is nothing to scoff at. Makes Mekansm much more mana intensive and pushes it towards being suitable solely for heroes with larger mana pools. Heroes like Doom (who is already struggling with a Devour mana cost increase) will find it pretty difficult to sustain all of his various mana costs along with Mekansm.

Pipe of Insight

  • HP regeneration increased from 8 to 9 (to match its components)

 Nothing major.

Refresher Orb

  • Reset Cooldowns cooldown increased from 160 to 185

 25 seconds on top of the previous 160 seconds adds even more gravity to using this item. You’d better have some pretty significant cooldowns to be resetting if you’re going to be popping it.

Ring of Protection

  • Armor increased from 2 to 3
  • Gold cost increased from 175 to 200

 The armor increase is a bargain when you consider that the gold cost was only increased by 25. It does make it a bit tougher to pre-purchase and bring out to lane with you than before though. Overall, a buff for RoP though.

Sentry Ward

  • True Sight area of effect increased from 800 to 850

 Making life for invis heroes and wards a little more difficult.

Shadow Blade

  • Shadow Walk invisibility break damage increased from 150 to 175

 An extra little punch for shadow blade users. Moving towards strongly encouraging users to try and get that initial hit off before using other abilities.

Shiva’s Guard

  • Freezing Aura no longer displays its debuff on the enemy if the carrier is not visible

 Similar to the AC changes. Helps Shiva’s Guard users sneak around if they happen to be invisible or hidden.

Town Portal Scroll

  • Gold cost reduced from 135 to 100

One of the largest changes in this patch. A 35 gold reduction is not significant for roles that generally would be fairly well off in terms of gold generation but for the hard support roles saving 35 gold is a pretty important change. It looks like Icefrog is moving towards making the support role a little bit less arduous (reduction in cost of boots, wards, etc) which I support to a certain extent as it makes it more attractive for people to try it out and actually support their teammates.

Overall, a bunch of good changes. An exciting new item. Plenty of measured and reasonable adjustments. The large changes are the TP scroll cost reduction, flying courier changes, bottle changes, Butterfly active being added, Ethereal Blade projectile, Mekansm mana cost increase and BKB duration being tied directly to the user.

That’s all for now and I’ll be back with thoughts on the last few changes soon. Have a pezant day!

Note: If you liked this article. Consider donating or installing this Chrome Extension I made that gives me credit for your Amazon purchases (by adding in my referral tag when you’re browsing Amazon).


The Next Big Patch: Looking over 6.82 – Damage Type Changes

“A few abilities and damage type mechanics have been reworked. There are now three primary damage types and a Spell Immunity Piercing status with each. Each ability now carries a notation in the tooltip indicating these.

The three damage types are Physical, Magical and Pure.

Physical is affected by Physical Armor, Magical is affected by Magical Damage Resistance and Pure is affected by neither.

Magic Immunity has now been renamed to Spell Immunity. Spell Immunity only defines if Spells interact with it, not how damage itself is handled. This means that on its own Spell Immunity status does not reduce any damage.

Black King Bar, Repel, Rage and all other previous forms of “”Magic Immunity”” now grant Spell Immunity status and a 100% Magic Resistance bonus.

In the vast majority of cases, the interactions are still the same, however an example of a case that would be different is if an ability has both Spell Immunity exception and has Pure damage type. Previously the damage would not have any impact, however now it does.

Ability Tooltips now have these fields:

-Damage Type: Physical/Magical/Pure
-Pierces Spell Immunity: Yes/No

If the Damage Type is not Magical it will be colored differently to make it easier to notice. The same is true in cases where Pierces Spell Immunity is Yes.

There have been a few abilities rebalanced with these mechanics in mind. In some cases the intent is to maintain similar balance, in other cases as an adjustment to their balance.


  • Acid Spray damage type from Composite to Physical (still pierces Spell Immunity)
  • Acid Spray damage reduced from 14/20/26/32 to 12/16/20/24


  • Nightmare damage from HP Removal to Pure


  • Wild Axes damage type from Composite to Physical (still pierces Spell Immunity)
  • Wild Axes damage reduced from 90/120/150/180 to 70/100/130/160


  • Primal Split Earth Spirit’s Pulverize damage type from Magical that pierces Spell Immunity to Magical (No longer pierces Spell Immunity)


  • Doom damage type changed from Magical that pierces Spell Immunity to Pure that pierces Spell Immunity
  • Doom damage reduced from 30/50/70 to 20/35/50 (Aghanim’s Scepter from 50/80/110 to 40/60/80)


  • Echo Slam initial attack is now the same Magic damage type as the rest of its damage (initial damage no longer pierces Spell Immunity)


  • Midnight Pulse damage type changed from Magical that Pierces Spell Immunity to Pure that Pierces Spell Immunity
  • Midnight Pulse damage reduced from 4/5/6/7% to 3/3.75/4.5/5.25%


  • Diabolic Edict damage type changed from Composite to Physical (still pierces Spell Immunity)
  • Diabolic Edict damage reduced from 12.5/25/37.5/50 to 9/18/27/36
  • Diabolic Edict now deals 40% more damage to towers (same overall damage per second as before)


  • Laguna Blade Aghanim’s Scepter damage type changed from Magical that Pierces Spell Immunity to Pure that Pierces Spell Immunity
  • Laguna Blade Aghanim’s Scepter no longer increases damage, only the damage type is changed [?]

Lone Druid

  • Spirit Bear death now deals 10% max health as Pure damage instead of 100/200/300/400 composite damage


  • Heartstopper Aura is now negative regeneration instead of HP Removal [?]


  • Land Mines damage type from Composite to Physical (still pierces Spell Immunity)
  • Land Mines damage reduced from 300/400/500/600 to 225/300/375/450
  • Suicide Squad, Attack! damage type from Composite to Physical (still pierces Spell Immunity)
  • Suicide Squad, Attack! damage reduced from 650/850/1150/1550 (350/400/450/500 partial) to 500/650/850/1150 (260/300/340/380)


  • March of the Machines damage type changed from Magical that pierces Spell Immunity to Magical that does not pierce Spell Immunity

Vengeful Spirit

  • Wave of Terror damage type from HP Removal to Pure that Pierces Spell Immunity


  • Fatal Bonds now shares the same damage type that is dealt into it, before it is reduced [?]
  • Fatal Bonds damage percentage from 20% to 25%
  • Flaming Fists damage type from Magical that pierces Spell Immunity to Magical (No longer pierces Spell Immunity)


  • Last Will damage type from Pure to Magical (Still does not pierce Spell Immunity)
  • Last Will damage increased from 400/500/600 to 550/675/800

Urn of Shadows

  • Changed from HP Removal to Pure

Additional Notes:

1) Composite Damage: This damage type has been removed. There are no longer any abilities which use Composite Damage.

2) HP Removal: This is no longer considered a Damage Type, and its remaining uses are as an alternative cost to Mana for spells to use (Sunray, Burning Spears) or as functional HP modifications (Armlet, Sunder, etc). These are now considered usage costs in the game and are never lethal.”

Casting: It’s a Lot of Work but very Rewarding!

“For those of you who have been following my work, you know that I’ve been working on improving my casting ability by commentating on various games (a lot of them from TI4). Recently, I had the distinct pleasure of having the opportunity to cast 9 of the qualifier games for the DotA 2 Canada Cup. Despite my attempts to prepare for it, it was quite the different experience from casting games on my own with a very limited audience (or, most of the time, none at all). The first day was a bit rocky as I adjusted to all the hidden difficulties behind running a stream for a tournament like having music available to play before and after games, the challenges with camera control, keeping one’s voice in good shape, and many other considerations. With the help of Capt’nCanuck, the organizers of the DotA 2 Canada Cup and our wonderful viewers I was able to make great strides and really improve on my casting.

Below are some of the games I had the pleasure of casting!

[youtube_video clip_id=””GPGZCiYA43I”” hd=””true”” width=560 height=315]

[youtube_video clip_id=””hHlHrpMwSe0″” hd=””true”” width=560 height=315]

Having been so involved in a tournament made me ever so cognizant of the rigors of running a tournament, providing the commentary and making sure everything is going on as it should behind the scenes. I look forward to continuing to work with other excellent organizations and having the opportunity to witness more exciting DotA firsthand!

Note: If you liked this article. Consider donating or installing this Chrome Extension I made that gives me credit for your Amazon purchases (by adding in my referral tag when you’re browsing Amazon).