The AoS bot that I originally wanted to make

crossposted from the BnS forums:

A few years back I thought of exactly this, a decent bot. At that time I did not have the experience to actually create AI but I started slowly working on a client implementation in JavaScript anyway. My imagination ran aloose: if I could make excellent AI, I could start a clan of “noobs”, watch everybody get rekt in League, and then reveal how I did it. Built-in inaccuracies and limitations would prevent any detection of ESP, because the AI would hypothetically only be able to view the map and within its line of sight, perform some limited communication, and have a reasonable (and adjustable) hit/miss percentage. The bot could also build prefabs, and other bots could join in or defend as they are building.

I thought about a design for such a system of bots for a very long time, and I looked at some dumb bots some people around here made in Python. But I wanted the “unauthorized” approach, so I was not inclined to create a serverside script. I wanted a clientside approach that would be controlled by the bot master’s computer, so that I could simply and inconspicuously deploy three or four well balanced bots on a server. The problem, of course, is that there is a limit for clients per IP address.

The problem in the holistic sense when I envisioned this concept was not the algorithmic portion as it was the implementation and the time that it would take to complete this undertaking, which I repeatedly underestimated. Moreover, I was not familiar with three-dimensional A* or machine learning concepts. I was eager to learn them, which is really what matters. But time always turned out to be the greatest deciding factor in all of this. My time was always fragmented; 15 minutes doing this, 15 minutes doing that, rather than a solid slot of 3 hours of project time. And due to school, my free time varies from 3 nice hours of relaxation to absolutely nothing.

Many of you think that this is my excuse all the time for not being able to do anything. But it’s true, and so my disposition to commit to things has fallen. That’s why I never carried out the whole bot thing in the first place. I just did the backend and that was it. You want to pressure me into doing it for that AoS of the Future project, fine. You want to pressure me into doing it so I can fill your servers with future-proofness, fine. You want me to do it for the betterment of all your little FPS projects, fine.

Suffice to say, a well scripted bot would be perfect in imperfection. But I am not one to do it.

On computer terminology

I see in many books certain attempts to ease the apparent pains of using computer terminology.

For example:

With the help of Tim Berners-Lee, the Internet became popularized with the creation of the World Wide Web.

This simple statement becomes this convoluted paragraph:

With the assistance of Tim Berners-Lee, a computer technology was developed that allowed computers to communicate each other through what became known as the World Wide Web, which people could connect to through new software such as America Online and CompuServe that came in floppy diskettes. Thus came the existence of the Internet.

Authors continue to be extremely cautious in introducing computer terminology in their writings. But the truth is, who doesn’t know what the Internet is these days? Who doesn’t know what software is? And when authors do use the terminology, they often surround it with these metaphors so as to try to compare it to tasks once done by hand. “The Internet, like a pair of telephone wires, …” “With the advent of the microprocessor, computers once the size of rooms became smaller than the ‘a’ in this book…” This is the virtual world we’re talking about here. There is no substitute for these things.

No. Heck, no. If you’re going to include words like “axle” and “spigot” in a book and don’t bother defining them, then don’t bother with “die size” or “parallelization” either. Suck it up and make people learn the jargon. Don’t talk to them as if they were elderly people.

On Anki: 14 months on

Since January 27, 2015, the first set of cards that I had inputted on Anki, I have learned 550 kanji. No, not just stared at for 5 minutes… LEARNED!

When I first heard about spaced repetition, I thought the forum posts were too good to be true. But they prescribed the same advice: Anki. Anki. Anki. Study every day. Mine the crap out of Japanese and fling it into Anki. And I haven’t had any complaints about the system ever since that day, not because I’m an optimist who only looks at the positive side of “good” things, but rather because it’s (1) a scientifically proven model that accurately works with, not against, the dynamics of the brain, and (2) because once you set it up, you can study from wherever the heck you want. I study on my phone because it’s the most convenient, but I have to input new notes on the computer because it would take an eternity and a half doing it on a tiny phone with an even tinier keyboard.

(more…)

The phoenix

After receiving a carefully timed letter from the people at MIT – as if they knew perfectly the stages of grief of an MIT applicant – my confidence almost immediately reemerged after flipping through the pages. It reassured me that these people aren’t demigods, they’re real people who took the time to document the fun in their lives that they have over there.

My brain somehow took what I knew about MIT, who you’re up against, what it takes, what kind of people get admitted, and the passion I’ve had for it since I was twelve, and melded it together. And that evening I felt, since a long long time, that I was intellectually driven by a purpose. I got to work right away: I constructed “the path to success,” what needed to happen between now and the day that I apply, in order for me to successfully assert my worth.

Yes, I missed many opportunities I could have seized, but humans are not built to perfection, and like I’ve said, are influenced by circumstance. It’s hard to get to MIT, and that’s an understatement. And if I truly want to get there, then I will. If I want to be successful, then I will. If MIT has to be the impetus to get off my lazy butt and do what I love, then I will.

I never cared about the prestige and the fame, but rather the people and what they do. The engineers, the coders, the mathematicians, those are my people! I wish there was somebody at my school who would love to talk about Lagrange points and Taylor series. But there’s really nobody to compare to. I’m unique, and thus the doors are not closed.

And even if they find me uninteresting, I have options. The world is growing, and MIT’s officers know that they cannot possibly expand the campus. The people just get better and better; the 10% of soon to be 8 billion people in the world.

The science fairs are over and the competitions. No more awards. It’s time for me to just show off my projects, unadorned and unappreciated, to the world.

So here we go. Another phoenix is rising out of the ashes.

Back to our roots

I’ve been reading a bit on how extremely difficult it is to get into MIT. It appears that nowadays the classes are just the amalgamations of all the “best” people in the world. The admissions website makes the process seem easy. But these people are telling me that you have to be in IOI, be a champion at a couple things, make a bunch of cool stuff (not just one thing), rek high school, make friends, do sports/band, the whole extracurricular shebang (be president of everything), AND somehow live?

That is devaluing rather than valuing human life right there. Because by abusing the opportunities you’re given, you’re basically draining the life out of everything. Being the best is putting yourself first at the cost of everyone else, regardless of how many people you led or helped. You trod on everyone’s faces and now you expect them to smile back.

If that’s the kind of college I want to go to, where people idolize their hobbies and do studying on steroids, then heck no! I want a balance. I don’t want to feel alone working on a project, but then again, I don’t want to be pushed into doing things from 6 AM to 1 AM every day.

I don’t really know what I prefer anymore. For so long I’ve lived “alone,” i.e. nobody really helps me in my projects or homework. I just do it. I have not assimilated into the American collective identity.

But then again, maybe I should stick to my guns. MIT might have what I want. For all I know, there is a snake eyes chance of getting accepted. Even if I don’t, MIT has a much better grad school anyway.

But since I doubt myself, I am going to ease the pressure on myself. By doing things for fun and profit rather than for college, I’ll get a better result. I am unencumbered trying to fit myself in a nice suit. I don’t prevent myself from doing stuff because “going to college is a higher priority.” I go to college because I do not prevent myself from doing stuff.

My faith in humanity has been restored

Some-faith-in-humanity-has-been-restored

I don’t know how, I don’t know when, but I feel better now. Not sure for how long I’ll feel better, but certainly I feel somewhat more confident of my abilities now.

That said…

LameBoy

LameBoy debuggerIt’s going okay. Right now it’s clocking at about 5.5k lines of code, so evidently still in its infancy, but we are making progress fairly quickly. I had to break everything so that I could add a layer of abstraction. It’s just a matter of cleaning up Denton’s crappy code and future-proofing it.

(more…)

On the current state of learning how to code

Since 2012, numerous organizations have proliferated to teach people of all ages to begin programming. A famous example is Hour of Code.

Back then, when I was eight or so, I did not have those opportunities. You couldn’t Google “programming for kids” and have something more functional than Scratch come up. And Python was not so popular back then, much less geared toward beginners. Consequently, I had to put up with VB.NET until such resources came about, and people actually started caring just a bit about youngsters who wanted to seriously pursue coding.

But after all that – the hours of code have passed, you’ve mastered the docs after poring them over – what now? How would a nine-year-old ever start doing anything more constructive with coding than “Hello World” and bubble sorts and turtles without lurking forums and having some autonomy?

An epiphany

Many people seem to be stuck in this cycle of misery: that their life hasn’t gone “as it should have been,” that they’ve made too many mistakes, that they just want a chance to start over, that everything is impossible now, that all the windows of opportunity are gone forever now.

But I have realized that what you call “mistakes” is actually a particle of individuality.

I’ll give you an example. Sometimes during the day, I feel really stupid for doing simple math wrong; other times, some brilliant idea pops up and never gets written down; and sometimes, the intelligence just comes out and I do a couple of hundred lines of well written code in an hour or two. The stupid and the smart moments, and how we tolerate them – that’s individuality.

One too many times have I seen people who don’t care about individuality. You have to be the ideal person: the “best” person. You wanna be the guy who does a 200 day streak on GitHub, because without it you’re nobody. If you’re not part of the hive mind, you’re an outlier. These days, the clusters of people are crystallizing; it’s harder to be an outlier. You’re either in the regular, ordinary people cluster, or you’re in the “I-started-coding-when-I-was-two” hyperintelligent cluster. Suddenly, the outliers grouped and it became a cluster on its own.

And what if you’re in the middle? Are you an outlier? Are you a nobody? Or are you a ripe individual?

How about this: let nobody judge you. Exalt yourself when you must; humble yourself when you can. Do not let people view your dark side, just as people on Earth never see the other side of the moon.

Don’t think about the scatterplot. Think about you, the point. It sounds selfish, but it’s not, because if you think about the scatterplot then you will feel like a grain of sand. You will be overwhelmed, because there is someone better than you but no best in sight. Do not be overwhelmed. You are not a grain of sand, because if you were, you could only be picked up by the wind and carried away, stomped on and be destroyed. But you can move. And because you can move, you are self-conscious and therefore a powerful entity of the universe.

If you want to win, stop trying so hard, be an individual, and that in itself will be a victory. The victor isn’t the one who gets the trophy, the victor is the one who made the most out of the contest, the one who helped, the one who put up a fair fight against his adversary, not the one who spent six hours practicing the day before. Such dedication is not what the human body was designed for. It was designed for survival. Is this what you call survival? Clearly it is not survival, because it is at the cost of yourself.

To survive is to be the individual. If it means breaking from the trend, do it. If it means fighting the stream sometimes, do it. (But please, you should follow the streams most of the time.) If it means looking like a madman trying to get a point across, do it. If it means getting 900 downvotes trying to bring a message across, do it. Persecution is not a barrier. There are no barriers, because the individual is only bound by the desire to be free.

So do it. Be the individual. Forget about fighting against the big stream of time. There is an expanse of time ahead of you.