Abstract Page Header

About Me

Dragon of Shuu profile picture art

A motivated developer who finds joy in coding great projects and more.

Following Coding Patterns

I like to follow many rules of programming to make my code easier for others and myself to read, as well as making my code sharper and more reusable.

DRY Code

"Don't Repeat Yourself"

I focus on writing DRY code. DRY code makes your code consistent, and easier to read.

Early Returns

Early returns avoid your code from being too long, and allows you to avoid repetitive if/else statements too.

NO if/else

Having large if/else statement blocks make your code hard to follow. Removing if/else statements is easy when you use early returns.

Extract Methods

When code inside of a function gets to large, it can be hard to read and make sense of. When this happens, you should extract code into its own function.

Componentization

Code should be componentized and separated as to avoid close coupling between code.

Timeline

My First Code

I first started to learn how to code when I was just 9, when my dad hooked up a stop light to a Windows 98 computer. We wrote code in basic, and we were able to turn the stop light lights on and off using simple code.

An image example of the basic code I wrote
An image example of the basic code I wrote

My First Computer

My first computer was simple: a Raspberry Pi: a mini credit card sized computers that ran rasbian (a sub-distro of debian). This is where I first started writing Python 3.4, and realized just how much I liked the language, and I would go on to create simple text-based decision making games.

A picture of a raspberry pi letting you clearly see the heatsinks and parts of the circuit board.
A picture of a raspberry pi letting you clearly see the heatsinks and parts of the circuit board.

My First "Good" Scratch Project

While learning Python, I also played a lot with Scratch, a simplified block based programming language. I made a program that would ask the user mathematical questions. When I created it I told my class just how proud of it I was: "It generates two random numbers between a certain range, randomly adds, subtracts, multiplies or divides, and asks the user the answer, and matches with what it was predetermined." Later on for fun I would also create my own 2D side scroller game engine inside of Scratch too.

The math project is still public, and can be found here if you still want to try playing it.

A picture of the Scratch project in reference: code to the left, game to the right.
A picture of the Scratch project in reference: code to the left, game to the right.

My First Website

At this age, I was super slow at typing. I had to take a typing class to improve speed. At first I was terrible, but got very fast quickly, and ended up having a lot of extra time. So when I completed all the required lessons I asked myself: "How do these websites work anyways?" That's when I created my first really really simple website. The teacher was so amazed, and I was so excited, I got the principle to come see my website, which then sparked the creation of a new class at that school called "Creative Coding".

My First Time Cheating on Math Homework

When I started to really get into Python, I decided I needed to make something more useful, and object oriented. I hated how hard and how long the math homework I got was (even though I love math, it was just busy work). This is when I learned and used the Python module named SymPy for solving symbolic math. I utilized object oriented concepts to make the menus clean, and keep the logic organized.

When I completed the program, I asked my teacher if I could use it for homework and tests, and they allowed me to, and thus I cheated on my homework and tests.

You can find the program here.

A code snippet of MathIsEZ.
A code snippet of MathIsEZ.

My First Database

Eventually I ran into the head of technology of my school district (I'm serious), who said they had an internship for fixing chromebooks, and when I told him about what I do he saw a lot of potential.

That's when he mentioned he had cradlepoint routers that would turn cellular data into wifi, but their metric data would be cleared every 30 days, and he wanted a long term solution to storing the data. All he said was to use ElasticSearch to store the data, and gave me the documentation to retrieve the data.

I created a virtual machine to hold the database, and to periodically run my Python to retrieve, manipulate, and store the metric data. The project is public, and is retrievable here.

A code snippet of receiving and manipulating data.
A code snippet of receiving and manipulating data.

My First Programming Language

After completing High School, I decided I needed to do something more algorithmically challenging. When playing with the Flipper (a multi-tool hacking device), I realized the programming language they were using for key-injection was missing major and basic programming features, which is why I created my new programming language using Python.

Image of DucklingScript: A language for key injection.
Image of DucklingScript: A language for key injection.