Kanye always had lyricism as one of the staples of his raps and he reminds everyone how good he is once again; but don’t be fooled, he’s also a baller!

The Benz, or “whip”, as they are usually referred to, he drives is colored like Miracle Whip, a mayonnaise-like sauce, but it’s also a miracle whip, meaning that you need to be blessed to drive it but also that they’re so expensive you need a miracle to afford one, something like your mom meeting a big producer in the street and getting you the biggest hook up of your career.

These two lines were spit for the first time by Kanye in the studio and instantly mesmerized Jay Z. This is probably the reason why Roc-A-Fella ended up signing him, while Capital pulled on the deal.

And I said, “yo Jay I could rap.” and I spit this rap that said “I’m killin y'all niggas on that lyrical shit, mayonnaise colored Benz, I push miracle whips.”, and I saw his eyes light up when I said that line…

This video is processing – it'll appear automatically when it's done.

Bunch of rookies… S/o to my friend and mentor Shawn. We the real dynasty.

This video is processing – it'll appear automatically when it's done.

:(

This video is processing – it'll appear automatically when it's done.

Unreviewed Annotation 1 Contributor ?

What is this?

The Genius annotation is the work of the Genius Editorial project. Our editors and contributors collaborate to create the most interesting and informative explanation of any line of text. It’s also a work in progress, so leave a suggestion if this or any annotation is missing something.

To learn more about participating in the Genius Editorial project, check out the contributor guidelines.

Loading...

As Ben Horowitz says in the 4th chapter of “The Hard Thing About Hard Things”, you shouldn’t hire someone because she doesn’t have big weaknesses since she won’t be able to help you build a world-class company but rather a company without any big weaknesses. If you want a world-class company, hire people with world-class skills even if they lack skill in some departments.

Marc uses the same logic when looking for startups to invest in, if you always go with the safe choice you’ll probably never be able to have a huge return.

This video is processing – it'll appear automatically when it's done.

Every post title is like this usually: [W-L] Class [DD-MM-YYYY]. The id for each deck is composed of:

  • Its result
  • Its class
  • A unique number which corresponds to the Reddit post ID. This way when I read the database and see something is wrong I can simply copy that, paste it after http://redd.it/ and find out what’s wrong.

After the id is created the script adds it to the json file. Once it’s gone through ALL the posts, it saves the json and ends the script.

This video is processing – it'll appear automatically when it's done.

This code is repeated for all the 9 classes of Hearthstone but I omitted it for brevity. What it does is basically keeping count of how many times each class is used. This is the structure of the json (including the data!):

"classes": {
        "count": {
            "Warlock": 3, 
            "Warrior": 9, 
            "Paladin": 32, 
            "Priest": 28, 
            "Hunter": 18, 
            "Druid": 21, 
            "Miracle": 0, 
            "Handlock": 0, 
            "Rogue": 30, 
            "Mage": 68, 
            "Shaman": 37, 
            "Zoolock": 1
        }

This video is processing – it'll appear automatically when it's done.

Instead of saving the name of the card and the number of copies as a value in the database I add the card n times to the decklist, where n is the number I obtained earlier. This way it’s easier later to check if the deck has exactly 30 items and it’s therefore a valid one.

About the if inside the loop, after a few test runs I realized that sometimes these words still slipped in there and avoided the checks before, so I manually added a rule that skipped them. Deck has the “:” because without it it’d be 4 chars long and automatically removed by a filter at the beginning.

This video is processing – it'll appear automatically when it's done.

If the line passed all the controls above it means that it’s an actual card name, but we still have to get the number of copies inside the deck. To do that:

  • We split the string and create a list of all of its elements as single items.

  • We check them one by one to see where the “x” is.

  • If what we find is inside the list of card names with an x, we skip it. If not, we found the “2x” in the line.

To avoid problems with special cases or other weird formatting I used that if that checks what number was after the multiplier instead of removing the x from the string and using int().

After checking that there’s no – or asterisks (I don’t want Italic text, damn it Genius) caused by the list formatting of Reddit, the script recreates the card name without trailing whitespaces or other weird characters and adds it to the deck.

This video is processing – it'll appear automatically when it's done.

There are all the lines of text that are not good:

  • If it’s an empty line, we pass it.
  • If it’s more than 30 characters, we pass it. It must be some sort of note about the deck or something, surely not a card name.
  • The only card name shorter than 4 characters is “Hex”, so I create an exception for that.
  • If there’s an exclamation/question mark or an http call, it’s definitely not a card name. It’s a note about the deck or a imgur hosted screenshot of the decklist/proof.
  • People usually add the 12 wins prize screenshot at the end along with notes. The last line takes care of those cases.

These “filters” are in order of how they might appear in a post, so that the script is as fast as possible.

This video is processing – it'll appear automatically when it's done.

The first thing to do is checking if the post is a meta post; in that case, we’re on to the next one.

If it’s not, meaning that it’s an actual deck, the script creates an empty list and reads the OP of the page which is the selftext.

This video is processing – it'll appear automatically when it's done.