I need to switch to Linux... BAD (rant)

First off, I want to say that I can't switch to Linux quite yet. I still use Premiere and After Effects to make my videos, and would lose access to a large portion of my steam library if I made the switch. Dual booting is also very slow, and I don't want to have to switch between 2 OSs every time I want to do different tasks (I would have to record video / audio in linux, and then do graphics in Windows). When I can finally get Resolve to install correctly on Ubuntu, Eevee integrates a few more key features, and Steam's proton gets a little better, I will make the switch in a heartbeat.

Now the rant.

I haven't had a single issue with Windows 10 in the three years I've used it, unless you count the slight licensing hiccup I had when I upgraded my Motherboard / CPU, but that was resolved quickly. Things worked more or less how they should, and even though I really like different flavors of Linux that I've used on my laptop, there was really no reason for me to s…

Live Streaming is... weird

Ok, so I did my first live stream a few weeks ago. I didn't think "REALLY slow After Effects work," would be interesting at all to watch, but I figured it would be more of just a way to get some viewers in the chat room and interact with the people who watch my videos, while at the same time getting some work done. I was correct about exactly two of those three things.

It was really fun chatting with people in stream! It's a shame that the chat wasn't recorded, because it just leaves big gaps in the archived footage where I'm not doing anything on screen except typing. I also showed a few things that have absolutely no context without the chat such as:

41:10 This is the first anmation I ever made XD45:17 These are some animations from a small studio I'm currently working for. More on that soon1:38:56 I was looking at a YouTube channel of somebody in the chat. Turns out we knew some of the same people, but he just stumbled on my channel by chance somehow. …

Accountability(); Pt. 2 From failure to success

I've written many drafts of the second part of this, but in truth most of the development was pretty boring.

I mean, I found it fun, but it's incredibly boring to write about so instead I am just going to do a quick overview of the development.

It started out with me learning the Android SDK, which works a lot like C#, however is WAY more flexible and hands on, which I love. Instead of being limited to only designing the interface with the WISYWIG like in C#, you can manually design it will XML, and really dive deep under the hood to tell everything how to link together.

I then built a "Server" application in C# that could be used on the desktop to add and edit the master list of students, and transfer it over to the tablets using .JSON with a push of a button. It was also planed to have this app be the main base for handling the inter-tablet communication.

The app would read these .JSON files from local storage, and display this list with a few extra buttons attach…

Write Ups

Nobody but porn bots read this blog anyways, so I don't think they will mind if I change things up a bit.

For my next few YouTube tutorials I am going to try to do a Write-up along side the video and see how much time that takes. If it takes too long, or not that many people are reading them, I will probably stop, however I'm interested to see how it turns out.

I'll still probably finish up my Accountability posts this weekend with a really quick summary, and post a little more random stuff about freelance work and life.

If you are an actual human, and read this blog, let me know XD

Accountability(); Pt. 1 Intro

Procrastination is a wonderful thing. I meant to start documenting this back in august when I started working on the app, but then I made a promise to myself that I would do it the next day.

Anyways, it's November, so better late then never right? According to blogspot the only people who read this blog anyways are bots from porn websites, so who am I disappointing?

The Basic Premise

As a quick reminder I currently work at an after-school care program for elementary school students, and one of the main things that we have to do is something called "Accountability." Unlike a normal classroom, where a teacher will tend to deal with his/her entire class as a whole IE: Sending them to music, the gym, computer lab, etc, we allow kids to move (somewhat) freely between different rooms, such as the art room, gym, multi-purpose, and alike. This means we CONSTANTLY need to keep track of which kids are in which room as they switch.

Pretty much every school in our program uses the s…

Othello(); Pt. 3 The AI

This is it. The moment I have been waiting for! With the actual game part complete, all that is left is to program the AI (the reason I started this whole project).

My theory on how the AI will work is pretty simple:
1) Check all valid positions
2) Pick the position with the highest outcome of flipped pieces.

The first step is to eliminate all the spaces which are not possible. We know that a space is only valid if it can flip at least one piece, so that means that one of the bordering spaces of an empty piece has to contain at least one piece of the opposite color.

In order to check for this, I run a 3x3 grid over every space, and if the center is empty, then it checks the surrounding spaces for one of the opposite color. If there is one of the opposite color, then it marks that space as "possible." Even though this will still mark spaces that are not technically possible, it narrows it down enough to be useful. The result is this:

From here, I can the "tryFlip()"…

Othello() Part 2: Simple logic

At this point I have all of the drawing code implemented. The pieces and UI are drawn to the board, as well as being able to place pieces randomly on the board (which you shouldn't be able to do, but oh well)

The rules of Othello are simple:

You can capture your opponent's pieces by trapping them in between two of your own. This can be up, down, left, right, or diagonal. You can capture more than one piece if possible.Only pieces directly affected by the current turn are flippedYou can only place a piece if it "captures" at least 1 other pieceThe game is over when no other moves can be made. In order for any of those rules to be implemented, the first rule has to be somewhat working, so lets start with that.

I came up with a basic algorithm in my head, and it ended up working pretty good. It takes the X/Y of the cell the mouse has clicked in, and checks all 8 directions around it for a piece matching your color. If it encounters an empty space, then it stops checking …