Blog

How I got into programming

How It All Began

The story of how I got into programming starts in June 2006. I had just come out of a StarCraft game and at the time my home channel was a random channel decided by the Battle.Net server, which at the time was something like StarCraft USA-1. Well, I had noticed an advertising bot advertise a channel called Op TriviaHost. To my interest I decided to join the channel and see what it was all about. There were a number of people in there trying to answer questions to a trivia bot. Hm, interesting! I eventually discovered through their op bot OnlineGaming that they had a website, http://www.triviahost.tk (dead now, but the forum still exists here). Later that month I started to explore around the forum and came across the help section which referenced a program called StealthBot. So, I decided to download it and logged in for the first time.

Playing With Code

I eventually discovered that with StealthBot you could expand its functionality through plugins, a file made up of code designed to change how aspects of the bot work in different scenarios. This was quite intriguing to me, because at the time I thought, and still do, that that was an awesome concept. So, one day I decided to experiment and attempt to replicate the functionality of some of these plugins by writing my own. After some time I was able to make my own plugin that, even though it did basic stuff, was the start of a new interest of mine.

Taking A Class

August of that year I went to college, although I didn’t take very many classes. One of them was an introductory C++ class. During the class I started my own forum based around programming since I partly wanted to use it for class communication, and some of the people in the class did show up on the forum and talked among themselves. The class only had 8 homework assignments and did not cover advanced topics on the language. I ended up learning C++ on my own time outside of class than I ever did while in class. I would go on to write various small programs, one of them being a plugin creator for StealthBot.

With Like-Minded Individuals

For the next few years I would jump into various communities, some of them being programming communities. One such community was Revision 77 which was the first community where I got to do more for myself than I had done before. We had a VNC help tool where “clients” could download the tool if they needed help and if one of us was available, the program would connect them with one of us and we could provide tech support to them that way. That was a good way for all of us to be more useful with our time as it meant we could collaborate with each other as well as help the community out. One project I started in that community was the R77 Plugin Manager, a project that would allow us to host plugins on our server and have a way for others to easily access them, check for updates and more. While I didn’t know it at the time, that community would be the inspiration for Code Speak. I was also involved with my first group project while in that community, a plugin created by 5 of us to enhance StealthBot’s moderation capabilities, called Advanced Moderation.

Beyond Revision 77

Since that time, I have been in a few other programming communities, been in various group projects and created a few projects that I would consider personal successes in different ways. One of them was a program called VectorNet, designed to act as a chat system with channels, the ability to whisper users, channel moderation and even a Tic-Tac-Toe game built in. A few others took after the concept and wrote their own implementations of it. I would eventually create Code Speak, another programming community designed for like-minded individuals which has since become a platform for me to do what I love best and to share some of my life with others. In late-2011 I joined the development team for a Minecraft community called Innectis and would eventually take over as its leader until shortly before its collapse.

While this is but a taste of my journey into programming, it should give you a good primer for how it all started and where it has gone.

Status Update 10-28-2018

  • Added a link to my discord server on the live chat page
  • Replaced links on the Innectis archive forum so that they aren’t broken anymore
  • archives.codespeak.org now redirects to https://www.codespeak.org/archives/
  • The following locations will now redirect to their respective GitHub release pages
    • https://files.codespeak.org/projects/maelstrom/
    • https://files.codespeak.org/projects/simplicity/
    • https://files.codespeak.org/projects/bnet-to-irc/

7 Stages of Friendship

Ever wanted to be a good communicator? I think we all have at one point in our lives! This is something that I’ve struggled with. It can be hard to know what to say to someone else, not knowing how they are going to react. Fortunately, I found some guidelines that I think will help a lot of people out. When using them, They sure helped me out, even if I still make mistakes. All it takes is practice to get them right.

7 Stages of Friendship, written by Ed Dickerson and Bill Underwood, is a list of 7 stages that a friendship goes through. At each successive stage in the friendship, more trust is involved than the last. You aren’t just going to explain to a newly made friend your darkest secrets, are you? You have to understand the stage you and another friend are at first. The 7 stages are summarized below, showing the kinds of conversation that is expected at each level.

The Seven Levels of Friendship

  1. Surface: Weather, time of day, general information–the kind of thing you might say to someone in a queue at the grocer’s or the airport
  2. Facts and reports: More specific information, including personal, but not private information such as name, marital status, occupation, time of next bus, etc.
  3. Opinions and judgements: What you think about a whole range of things from current events, sports, your favorite TV show – to religion, politics and morality
  4. Feelings: Your personal emotional status and reaction to various situations
  5. Vulnerability: Admitting your faults to another
  6. Intimacy They can tell you about faults you do not see in yourself
  7. Complete: Total openness, total trust

I really feel that understanding these stages can help anyone to be a better communicator. You can read more on Ed’s article here.

Tips For Starting A Minecraft Server

Since my time as a Minecraft community developer and owner, I’ve come across a number of resources that I think anyone wishing to start a Minecraft server should be aware of, if they are not already aware of them. Existing server owners may find this information useful too.

The list of resources I recommend are listed below:

  • Paper Minecraft Server
  • World Edit
  • Fast Async World Edit
  • Dynmap
  • NuVotifier

Paper Minecraft Server

Paper is a fork of the popular Spigot Minecraft Server, including more performance fixes and features than Spigot provides. Designed as a drop-in replacement for Spigot, Bukkit plugins are also supported. You can read the documentation for Paper here.

World Edit

World Edit is the go-to plugin for world manipulation. Whether you are working with exact coordinates, rotating a build or copying a structure from a different world or even server, world edit is for you. It is a tried and true plugin for those wishing to use an aid for building structures and manipulating them. You can read more about it here.

Fast Async World Edit

Fast Async World Edit (FAWE) is an extension to World Edit that greatly improves performance when placing blocks and adds other features as well. It increases performance by hooking World Edit, converting block operations from synchronous to asynchronous. There are also a number of modes for placing blocks that can be used. This plugin is absolutely essential if you use World Edit. You can read more about it here.

Dynmap

Dynmap provides map functionality for your Minecraft worlds. Using technology similar to Google Maps, you can see your whole world and navigate around it. Providing features such as live player positions, web chat and map markers, this is an excellent plugin for showcasing your worlds. You can view the plugin page here.

NuVotifier

A fork of the popular Minecraft plugin Votifier, NuVotifier is a plugin that allows players to get notified when a vote is made for their Minecraft server. It is also compatible with Votifier so a drop-in replacement is possible. To read more about it, click here.

NOTE (9-22-2018): As of Minecraft 1.13, Fast Async World Edit is now built on top of World Edit. You no longer need to use World Edit alongside if you use Minecraft 1.13+.

My Experience With Cyberbullies

I’d like to tell you a story about my time on the internet and being cyber bullied. Most of the abuse that I can remember took place on Blizzard’s game service Battle.Net. I have experienced abuse elsewhere, but I’m going to focus on Battle.Net for this post. What has happened is significant enough that I’d like to address it, how I felt, and how it affected my life afterwards. Something to know before proceeding with the rest of this post is that some of the kinds of people I interacted with on Battle.Net were getting away from their own problems in life, and I just unfortunately happened to stumble across their path.

One thing about me is that I’ve never wanted to lash out at someone who was picking on me. Also, I took offense to things that others may not have taken offense to. I was never the kind of person who wanted to attack others, so I never felt that I wanted to defend myself with equal or more force than what was applied to me. This comes from a desire for not wanting to inflict any kind of harm on the other person. I was pretty careful with how I chose my words, if I chose any words at all. But sometimes it was hard to choose the right words and I’d get stuck in an awkward situation, on more than one occasion.

One of the earliest memories of cyber-bullying was in a trivia community called TriviaHost. I wasn’t sure why at the time, but I was a prime target for others to pick on, or let their feelings out on. Looking back at those times, I may have tried to speak on things I didn’t have much knowledge on. Other times were probably when I tried in earnest to become more than just a member, a moderator, or someone who could help out in the community. This was around 10 years ago or so ago, and the bullying would increase over time.

On Battle.Net I had my fair share of trolls. I think one thing that added to it was because I was in a group who would often joke with each other albeit in more rough ways than I was used to. I of course lashed out at this, and was taken advantage of repeatedly.Then I became the butt of jokes. Of course that’s not a good place to be in, but I didn’t know any better to get out of that situation. I was just a nice kid. That kind of set the stage for other occurrences.

One of the worst levels of treatment I had was actually one of the biggest reasons why I stopped caring about Code Speak on Battle.Net. Someone on Battle.Net was able to worm their way and steal 4 of my channels I had on Battle.Net through various means. For an act such as this, it was pretty devastating to me, because I had worked those channels up, and they were already established with members. Every time a channel got taken over, I’d have to advertise for a new one. Of course this tired others out, over the constant announcement of new channels (using a popular forum for Battle.Net communities at the time). A lot happened to me on Battle.Net, more than I would ever wish on the worst of my tormentors.

What has it done for me as a person? I think in part it made me stronger in some areas, and in others I lost a lot of confidence in myself. Fortunately, I’ve gained a lot of that confidence back. Most kids with this kind of background are bullied in school. Fortunately for me, that wasn’t really the case; it was simply the online interactions that were the worst for me. I made poor choices by not defending myself then, but need to always stand up for myself now.

I’m being open about this here because I want you guys to know what it was like and how it felt. I felt horrible. I felt used. It’s never a good thing to have to go through. It shouldn’t happen. People shouldn’t have to lash out at others for what they’re going through, they should instead be able to talk honestly about what they’re going through. Why me? Why am I the one? Why do you have to find enjoyment through my torment? So many questions to ask.

Let me speak to those who bullied me. Guys, you probably were going through moments of stress in your life and wanted someone to take it out on, or had other reasons for doing so. I will never be ok with what you did, but understand that what was done is done. Just know that you can still talk to people about what’s going on. Your current solution doesn’t have to be at the demise of someone else. Find someone you trust. Anyways, let me get this off my chest, I forgive you.