Friday, September 4, 2015

This neat trick lets you win more LoL matches

TARGET AUDIENCES: LoL Players, MMO/MOBA players, and my family & friends


I have recently changed my approach to games/work/open-source. Including playing fewer video games.

OK, that wasn't a neat trick. (See: clickbait, and some parodies of it.) It was a hard 14-year lesson.

But I decided to play just 1 match of League of Legends (5v5 ARAM mode as the randomly-chosen character Zyra) last night. On my secondary desktop.

The entire match, I was distracted by work, open source ideas (Bureaucrax IMS on JBOSS BPM), and potential convos/presentations. Yet I did amazing!

KDA: 19/9/39
Massive Damage!

Here's what I did differently:
(In terms of generic MMO game jargon. To those who think this is all Greek, bear with me, or skip this 1st list.)
  • As I walked backwards for health, I watched the team fight/skirmish rather than my character. 
    • I focused on my surroundings rather than on a progress bar.
  • I'd cast my very powerful "ultimate spell", which has an instantaneous cast time, but has a long delay. During the delay, I did not focus on watching it so that I could ascertain whether it would succeed or not., Instead, I focused on re-positioning my character. After the delay, I observed whether it had any effect.
    • Think "fire and forget"
    • That video describes it as a "short delay". But it normally seems like an eternity! It is long enough for you to get ambushed if you do not reposition properly (which is likely because you have to get close to the enemies to cast it.)
  • I played against a character with an extremely tricky stealth move (Wukong), and the player was very good at faking it! He faked it part of the time, but not always. Yet I quickly recognized some of his patterns, and cast my basic spells in anticipation of what he was likely doing, rather focusing on saving my own hide..
    • I normally HATE playing against Wukong!
    • It was super-effective.
    • LoL Players: Remember that Zyra has AoE rooting & damage. So whether WuKong started faking 1 second ago or is still faking, he is likely without the radius/fat-line of your spells when they land.
  • I was not afraid to use my gap-closer (snowball) to maximize the effect of my ultimate spell. I instantly recognized each opportunity to do so, and acted on it.
    • Zyra's ultimate is extremely powerful, but you need to be close enough when you cast it. And the timing on when to affect the team fight with it  (hard CC + damage) is critical.
  • When we seemed to be deadlocked, I viewed the scoreboard and determined that Lux was the biggest threat. After about a minute of skirmishing, our Thresh hooked (pulled + CC'd) her successfully. I took advantage of the opportunity to kill Lux with the rest of my team. 
    • Lux had the highest KDA on enemy team, and Lux's frequently are the biggest threat.
  • Earlier, our team was flaming Thresh for failing to land hooks. So after that successful hook and subsequent killt, I said something like "gj thresh" and then "Lux had the highest KDA." He replied to the 1st message like "you too."
    • The team chat was more positive the rest of the match.
Also, in general:
  • I was more willing to take risks. These risks didn't always pay off, but they generally did.
    • To determine how much risk there was to a move, I relied on my previous knowledge and my sense of timing. 
    • What do I mean by "sense of timing"? It is very important in LoL. For example, the timing in terms of how long until enemies arrive back on the front-lines after dying and respawning. (The time increases throughout the game, and you have to factor in when each enemy player died.) Similarly how long until spells (powerful/flexible abilities) can be used by the enemies again.
    • Generic MMO Jargon: For example, I gap-closed and cast my basic spell combo on enemy players when they were presumably retreating through the bush (invisibly) after they blew their combo (visibly.) (I can do this because my gap-closer (snowball) also makes them visible.) There was a risk that I would not see all the other enemies when I gap-closed, or that they would arrive in time to help the retreating player, but eyeballed that risk by being observant enough.
  • I noticed opportunities for myself, or mistakes that the enemy players were making. And then I would capitalize on them within a split second.
    • Yet prior to that split-second, I was distracted!
    • Generic MMO Jargon: For example, I noticed when enemies blew all their spells and were on cooldown, and were probably escaping through the bush (where they can hide). Then I would gap-close with snowball (which also makes enemies visible) and cast my combo of basic spells.
  • I focused on surprising the enemy team, and was generally successful. 
    • It is easier to surprise enemies when they're distracted by your teammates. (Obviously)
  • I focused more on the positioning / actions of enemy players than my own positioning and resources (health and mana) throughout the match.
  • I focused on where enemy players (especially a lone Lux) were moving towards, and were likely to change their movement towards, rather than focusing on my position & their position over the next 0.5 seconds.
    • I remember when I first started driving. I learned to focus on the road far ahead of me, rather than the road right in front of me, in order to successfully drive down the center of the road.
  • I did not focus on what other players were presumably thinking of my playstyle, or whether any of them thought I was contributing successfully.
And perhaps best of all:

  • I noticed these changes in my playstyle after I subconsciously made them!

In League of Legends, I feel like The Goddamn Batman, but with s/death/failure/ :

Or perhaps I have Jedi Reflexes.

Of course I don't! Jedi Reflexes aren't real. But Batman is! (See below.)

Yes, the LoL servers were moved closer to my apartment (as well as the political/economic capital of the world.) Thus my ping dropped to 38ms. I noticed this early game after I flashed out of danger at exactly the right time. Yet I think I was more calculated/observant (paying attention to my enemies rather than my own health bar) when I made that decision.

And there were probably a few more changes I could list.

And yes, this post is specifically addressed to one of my friends.
(He screams in anger while playing LoL, and convinces himself that matches are lost, despite still winning afterwards about 1/6 of the time.)

It is also addressed to another friend. He doesn't play LoL. But he taught me that Batman has no super-powers; only super-wealth.

Batman also went on a "retreat" in the Himalayas, just as I went to Flock. It was even more awesome than my senior-year high school retreat!


Even though 1 match isn't statistically significant, it was sufficient for me personally. Because I reflected on it.

And like usual, I still repeatedly forgot to activate my expensive item for 2.5 seconds of invulnerability when the enemy kitty jumped on me. I guess I'm not a Jedi, or Batman, yet.

And to my family members who often told me that I learned nothing by playing games:
Nah Nah Nah Nah Nah Nah

Saturday, August 29, 2015

Why I wrote my last blog post

A lot of people have been asking why I wrote my last blog post, or have been blogging in general.

Here's why:

  1. I failed to adopt the pomodoro method about 2 years ago. If I blog about it, and highlight the important details, I feel like I am more likely to stick with it.
    1. Consider the analogy of learning to program by typing out the code vs merely copying & pasting the code. If you type out the code, you learn it significantly better.
    2. Consider the analogy of learning how to derive an equation vs merely knowing the equation. If you understand the theory behind something, you understand it better, and you value it more highly.
  2. My family has told me that I should use a diary over the years. I've only used it occasionally. I am essentially using a private diary again, but some lessons I feel like I should share with others.
  3. My family has tried to persuade me repeatedly over the years that playing video games is a waste of time. Although they are indeed a less productive use of my time than contributing to open source projects, they are extremely good ways of teaching people lessons about life.
    1. Just as Star Trek is a "morality play set in the future", video games are often great ways of teaching people lessons too.
    2. To a degree, it wasn't that I was playing video games that was a waste of time. It was that I was playing the wrong video games. I played "Prince of Persia: The Sands of Time" in 2003-2004, and that game was all about rewinding time. But I recently played Assassin's Creed III. And the lesson from AC3 is that the past is read-only, the present is read-write, and you have to learn from the past to save the present/future.
  4. I feel like my family/friends (fraternity brothers) will be very happy for me when they read my blog. Some fraternity brothers already have, and they have given me great feedback (although not in the form of comments on my blog.)
  5. Yes, I do feel like I have lessons to share with open-source projects. But I have now learned that I need to persuade them with code rather than with words.
  6. As Scott Adams (Dilibert author) wrote for his "Robots Reads News" comic strip:
Developing it is a system :-) I’m learning as I go.

Update 2015-08-30: Added #6 (Robot Reads News) with quote

Tuesday, August 25, 2015

How I learned to stop being a perfectionist, and when FAILURE is OK

Fate has ordained that the men who went to the moon to explore in peace will stay on the moon to rest in peace.
- President Richard Nixon, in the event of a disaster besetting Apollo 11
The Soviet Union launched Sputnik 1 ... on October 4, 1957... (They) didn’t announce the launch until the next day.
(The Soviet first stage engines) repeatedly failed in flight tests. It is a more catastrophic failure in flight than on a test stand.
On the cloud-base model... you can fail quickly, and at a low cost, and the net result is more innovation.

In 1997, I played The Curse of Monkey Island.

You see that screenshot? No matter how you respond, you cannot die.

And this next screenshot? You are actually still alive. The game is simply parodying other games where you can die.

And this was my favorite point-and-click adventure game of all time!

However, I sucked at it. I would spend days trying to figure out each puzzle unsuccessfully. It took me months to reach the end.

I never played the adventure games where you could die. So part of that scene's humor was lost me.

Compare that to a game that I started playing about 1 month ago:

Yes, a game based on the books by the murderer himself.

Uh oh.

I have a bad feeling about this.

Limited amount of time? I am not used to this!

What! I made a mistake?

Dear God No!

Needless to say, in this game, mistakes are fatal. Especially in level 1.

I have already broken the Planet Fedora copyright policy. So this post will not be in the Planet Fedora.

There's another reason too:
Khaytsus> mikedep333: I, personally, am tired of your spamming your blog.
mikedep333> Khaytsus, you have persuaded me to blog less often.
Khaytsus> Spam less often too.  That'd be great.
mikedep333> K, I will send the commands to my botnet
* Khaytsus shakes

Middle School: Perfectionism & Math

From 1999 to 2001 (7th to 8th grade), I attended middle school. In 7th grade, I was promoted from regular math class to honors math class.

It took me a while to understand the theory behind each equation, but once I understood it, I understood it extremely well. And I could infer things from the theory extremely well.

And I daydreamed about math! In addition to video games.

At one point I went to a math competition at my future high school's annual math competition for middle schools. Each middle school team had 5 students. Our team received 50 points. I received 20 points.

40% of our team's score! I scored higher than some entire schools even! Why? Because I understood the theories extremely well.

High School: Perfectionism & IT

Starting 9th grade, I attended that high school. I applied to the IT internship there. But I wasn't initially accepted.

Although my resume was not as impressive as at least 1 of my friend's who was initially accepted, I was rejected for another reason. As I walked past the office of the 2 IT employees, I heard them reading aloud the "referral" letter from my math teacher. She mentioned that I was "slow" to learn theories.


I was accepted into the IT internship program mere days later. And over time, IT replaced math as my passion. Nay; it was my obsession. I daydreamed about IT instead of math, and less and less about video games.

However, throughout those 4 years, my math skills deteriorated.

I have always been a slow writer, but a decently fast (or very fast) typist. So as the derivations got longer, I could not keep up in in my notebook as my teacher derived equations on the board.

And I spent the minimum amount of time possible doing math homework. I spent the maximum amount of time on IT (and video games) instead.

So needless to say, I had a very poor understanding of the Math theory, even though I received "good enough" grades.

Until I started reflecting on my life over the last week, my greatest regret has always been neglecting my math skills.

Sophomore year, even though a got an OK grade in the class, I failed the semester geo-precalc exam! It was the first F I had ever seen!

I was devastated, and daydreamed about going back in time.

Needless to say, that daydream did not come true.

I did great in almost every other class though, especially history. But there were still signs that I was a perfectionist.

For example, senior year, I took multiple AP exams. The last exam was the AP history exam, I was not quite good enough at budgetting my time. I had 10 seconds more of writing. The school administrator shouted:
Pencils down.

I kept on writing. So he shouted again:
Pencils down!
It was clearly directed at me. I got to complete the paper though in those 10 seconds though.

And I did not get penalized.

Case Western Reserve University: Electrical Engineering FAILURE

For 1.5 years at CWRU, I tried to become an electrical engineer.

At one point I told my (IT intern) friend that I wanted to design and develop operating systems. He told me that I should go into computer science instead.

I am not sure what I was thinking. I was probably thinking that EE was more "well-rounded."

I had always been fascinated by operating systems. "The most complex things created by man." And remote desktop was my favorite feature of them.

Yet with my poor math skills, this was hopeless.

So I failed. And I did not let go.

I made other mistakes too. Do to my actions, I was not accepted into a generic-sounding-but-nerdy fraternity. Only years later, did I realize that those actions were social mistakes.

So I moved onto a new college. And just like a video game score, my GPA was reset
But years later later, I would daydream about being conferred an honorary degree from CWRU. So I still hadn't learned how to accept failure.

Penn State: IST & Superficial Success

At Penn State, I majored in Information Sciences & Technology.

I did significantly better.

For example, in 1 class, my instructor said that another student and I were the 2 best students in the entire class. There was a group project due and he put the best 5 students into the same group, so that we would not "do all the work" if talent were evenly distributed across all groups.

That other student and I were the only 2 who knew how, and were willing to use version control though.

I also joined an engineering fraternity. So clearly my social skills had improved. They actually offered me a bid after I rushed only 1 evening; they were that impressed.

And I met a business major who failed to become an EE also. He failed Calculus II 3 times! And he had a better attitude than I did.

I did internships, and landed a job.

But there was one class where I did not complete the work, and did not withdraw in time, so I got an F. Again!

And that F continued to haunt me. I wanted to retroactively withdraw. I felt like I had "unfinished business" and that "I'll be back" (in person) to get the retroactive withdrawal completed.

Working World: Pencils Down

As I have been working, I have heard repeatedly from my manager:

Pencils Down

Although I have heard it less often over the years, so clearly I have been improving.

The Last 2 weeks: Learning Long Overdue lessons

2 weeks ago I attended Flock.

And I have been doing a lot of self-reflection over the last week. And reflection about open source.

And the fact that I hated playing Game of Thrones was the perfect example of what I was doing wrong.

I have long thought about about my education like how I played Monkey Island. I cannot reload the past. I have to make more decisions on my feet, If I want to survive in George R. R. Martin's video game. Because Game of Thrones is more similar to the real world than Monkey Island is.

To avoid perfectionism, I should follow the pomodoro method. 30 minute blocks are great for budgeting time.

Yes, my physical pomodoro timer broke (on its own) 2 years ago. It was a piece of crap. But I can find a smartphone app if nothing else.

I feel I have lessons to share about The Init Wars. And I could spend time trying to explain them.

But then I realized a great lesson that was already shared by Jonathan Corbet.

Some of us will remember the multi-year dispute over the devfs filesystem,
 He goes onto explain:

If systemd turns out to be an equally bad idea, it can be removed in the same manner. It is entirely possible that we'll eventually look at it the way we look at devfs — as an experiment in the wrong way to solve a problem. Or perhaps it will be seen more like sendmail: the best solution available at the time, but one that few of us wish to deal with now. However things turn out, if it becomes clear that there is a better solution than systemd available, we will be able to move to it.
So what Jonathan is essentially saying is that "it should be OK to fail."

And failures can be creative ways for testing your system too. Google SREs simulate Zombie Apocalypses. On their production environment!

And in general, I feel like every open source project needs an upstream project, or an experimental branch. Perhaps even some upstreams even need an upstream? Where it is OK to break APIs and ABIs. Or merge features that the BDFL won't accept yet. Where it is OK to fail. Where failure is cheap.

How can failure be cheap in today's open source projects?
  • Cloud infrastructure. You should be able to re-spin up your entire open source project's infrastructure automatically. And give out numerous badges for breaking it.
  • 100% insistence on best practices like automated testing, and packaging standards. If a package/feature cannot meet these, let downstream decide whether to accept it. Even if downstream is an upstream for something else.
  • In general, lowest possible maintenance/labor.
  • Process implemented as automation rather than bureaucracy.
Consider some more advice:
Scott Adams' Secret Of Success: Failure
The way I see open source based on Scott's advise, it is not enough to be passionate about what you love. You need to be passionate about it, and then realize that your are failing in 1 aspect or another. Either through your own self-reflection, feedback from others, or both. If you spent 12 hours solving a problem, but solved it successfully, you probably should have used a pomodoro timer. After 2 30-minute blocks, you should have used your judgment about whether to continue.

Some lessons are worth spending 12 hours on. Most are not.

I told myself I would finish this blog post by 22:00 tonight. And I shall do so.

America may have lost the space race initially. But we made steady progress towards the moon landing, largely by testing our stage 1 rockets on the ground; where failure was cheap. We had to build test facilities before we could test them, which the soviets did not do. But that was project management; and that's why we need business majors, not Commisars.

My failure at EE may not have been cheap financially. But it became valuable personally once I reflected on it.

Same thing for my other failures.

And remember those AP exams? I got a 3 on Calculus. But I got 5's Microeconomics, Macroeconomics, and History.

And even astronauts had to comply with bureaucracy: Once they landed downstream.