I gave myself the Christmas gift of finishing a project.
December 27, 2022, 2:04 am

I have so many projects that will never be finished. So many half started, or incomplete things. FilmsWith will probably never be "done". Hell, I've rewritten that thing in like 4 different languages now. A bunch of projects I will keep unfinished forever as lessons for bad ux or design.

But I've been working on my apptools for EVER. The first commit was in 2018, but that was just when I first moved it into github. Just before my Christmas break, I finally moved two chunks of it in to separate repos. Core CSS and QJS. Over the last two weeks, I have been absolutely thrashing through QJS and the routing system. I think I can make great things with it. But also I started writing documentation for it.

One of the reasons I never felt like I could promote apptools was because it was a hodgepodge mess of stuff I had thrown together. QJS has come a long way recently, mainly because I started writing the documentation. While writing it, I started testing all the old things I had made and forgotten about. Now they're tight. And they work exactly how I want them to... for the most part.

And it's good. I think it's very good. I think it might be one of the best things I ever made. I have probably said it here before, but people used to tell me I was a creative person, and I would always argue with them. I'm not a creative. I'm a puzzle solving programmer. That's what I love and what I'm best at. I'm a way better engineer than an artist. And I'm a pretty good artist.

I'm not actually done with the documentation yet. Now that I've written it all out, and gone through all the testing of the code, I want to see what I can build the way of a documentation website with this tool. Now that I have the code in a working state, I don't think I'll constantly be seeing the limitations of my own tools, and instead just be able to use them to move forward.

If you want to peruse the current state of the docs, they're here. That page is made with both the QJS and Core libraries, and it is very exciting. I can't wait to do more. I am going to go to sleep and sleep forever.

In which I have a new job
October 6, 2022, 1:23 pm

I've started a new job. I'm working for PUBG. Well, actually I'm working for a company called Krafton. They're a parent company that purchased PUBG. But I don't get paid by Krafton. It's all very confusing. Working for a modern game company is almost certainly going to be a confusing labyrinth of company names and organizations. But whatever it is, I work there now, and it's cool.

I work with cool people. I feel like I know what I'm doing. And I definitely don't know what I'm doing. :D I mean I do. I know how to program. I know how to code. I know how to design. And I know how to work the game of thrones a bit. But there's so much minutia that is new and different at any new job you'll get to. I'm still figuring it all out.

We had a design layout issue yesterday, and between me and two other extremely smart frontend engineers, we couldn't come up with a "simple" solution to it.

The concept is this:
  • A list of circle icons.
  • When just enough icons for one row can be shown, show one row.
  • If it is necessary to show more rows, show them as alternating even and odd count rows.
  • Whenever possible avoid having a single hanging item in the last row.

It's that last item that really throws everything into issue. It changes this problem from one that's possible, to one that turned out to be very difficult / near impossible.

And this is when every engineer / designer has to be willing to make compromises. Either compromises on how much work you're willing to put in to solving a problem as an engineer, or how much outlier design goofs you're willing to allow in to a solution which allows a 95% success rate.

After sitting down and pushing some things around, a solution was come to, but it wasn't easy, small, or perfect.

See the Pen even odd grids by Hamilton (@bronkula)

on CodePen.

Ultimately I think it is, however, an elegant solution. It solves for most of the problem, while solving entirely the spirit of the design. Sometimes this solution results in hanging last rows. But that compromise is so that the design always tries to take up as much horizontal space as it can. When it comes to responsive designs you MUST be willing to compromise and figure out what you're willing to give up to reach as close to your goal as possible. Sometimes the math just DOES NOT allow what you envisioned.

In which I updated a bunch of old projects that none of you will see.
August 22, 2022, 2:37 am

So this weekend has been a bit of a whirlwind of coding.

Two weeks ago, I started watching a video on how to make a python game using a library called pygame. Creating a Stardew Valley inspired game in Python. It's a pretty decent 6 hour tutorial on some basics of game design. It's incomplete in terms of its game outcome, but it will get anyone interested in the topic pretty far into the start of some concepts.

The thing is, I don't really want to learn python. Not really. Not right now. I already know javascript. And the two languages aren't THAT divergent, so I thought I'd give a shot at converting his example into javascript.

The immediate problem I ran into is his use of the pygame library. Its documentation is... rough. But the thing is, I've made a lot of libraries in my time, including math, graphics, and querying concepts. I just needed to bring them all together, and sort of adapt any interesting pygame concepts I came across.

So I started into it. And after about a week, I was doing pretty well. And then on friday something terrible happened. Well this whole time I had been diving through old code, to see if any of my stuff I'd already written was compatible to be brought into this project. But then I started looking through old projects and applications on my server.

You guys, a few months ago I updated my php installation to php8. I don't regret this. But it broke like 10 of my websites immediately when I did it. After making sure all of the sites I could think of were fixed, I moved on. But this weekend I found more. And more.

I found old scripts like my file browser that weren't working. And then trying to fix that made me realize my php package manager wasn't working. Then I made myself a link page to some behind the scenes projects of mine and realized my sql manager wasn't working either. Then I noticed a bunch of my old AAU example files weren't working either. It was a mess.

Slowly but surely over the course of this weekend I've been not only fixing php8 bugs, but I've been adding to and completing a bunch of old projects. Hell, I'm writing this in my blog editor, and I've even started updating the css and layouts of that tool as well.

I'm writing some of the best code I've written in years. I'm way better at javascript and php now than I was even 6 years ago, and both languages have improved a ton on their own. For a few years I've had zero motivation to work on my own projects. Getting laid off put me down low for a bit, but I think I'm coming around the corner. Now my only enemy is sleep. And money, I suppose. I wish I could just keep going forever.

Something needed mending
April 20, 2022, 11:53 am

While talking with some students, I noticed some parts of this site need some work. I did some spring cleaning and updated some things surrounding images. You might never even notice anything happened. A couple links were wrong. Some stuff I wrote 6 years ago and I never figured out how to do right, and now that I've learned more, and javascript and css have improved, some of those things could be fixed quite simply.

The march of time goes on, and things that were hard are now easy. Things that were great have crumbled, and some things that we set up long ago and forgot about suddenly find relevance again.

I've created a number of image uploaders over the years. With varying degrees of complexity and ux. But I often don't upload my images here, because it's such a hassle to resize them and upload them and rename them and archive them. It's a whole process. And sometimes my server just won't allow image uploads for php memory reasons.

And sometimes I remember that a long time ago I made a really good image uploader. One that works on mobile and accounts for all kinds of common factors that I want. Because I made it for me. And then suddenly I can start uploading images to my own website again, because it is not in fact a tremendous hassle anymore. In some ways it's a breeze. I did a little more work on my image uploader to make it even smarter, able to handle bigger images, and have a few more bells and whistles, and now it's pretty good. I'm kind of pleased with it, actually. Very pleased indeed.

I also started cataloging all my art recently. Figuring out who I drew, and making sure I had a full size archive of as much of my art created in the last few years as I could find. I'll be slowly leaking that stuff into my portfolio, as I figure out the best way to manage all of that.

Is it bad to not update your blog?
December 30, 2021, 10:29 pm

What if it was extraordinary times? What about then? What if life went absolutely nuts all around you, and you just sort of forgot to update it? What then?

It's been a hot minute since I've put very much on this website. I need to redesign it. I need to rewrite some things (especially an image uploader), and I need to make more of an effort to keep my self honest about my projects by posting about them in public. Let's see... where was I?

This year has been a series of big changes. At the beginning of 2021 I was let go from my full time status at the Academy of Art and I got a job as a Senior Frontend Engineer at a company called IMVU. This job has been really fantastic. But it's the first fully remote job I've ever had. Working fully remote is not something I ever sought, and it's been both freeing and frustrating in a lot of ways. I like to be around people, and if I'm totally honest, when I'm stuck in a house, I find it hard to motivate myself.

I am still teaching at the Academy sometimes. I like it. Not sure how much longer I'll be able to continue, but I think for now if they keep inviting me back, I'll continue teaching a class.

I worked on a number of personal projects. I've been doing a lot of things with themoviedb api. Did a little project with a friend for figuring out which of your friends you're most compatible with, based on the movies you like. And I just pushed a big update to filmswith, a website for browsing movie data, and comparing people and movies together. I rebuilt that app from the bottom up in React, and I've learned so much during the process.

I'm not sure I'd call 2021 a success. When 2020 started, I thought it was going to be such a good year. I had so many plans. In some ways it was great for me. But 2021 just feels like a blur. I'm not sure what to expect in 2022. I just have no idea. But I think I'm going to try to work on more personal projects. Here's hoping I can stick to that. Someone keep me honest.

You don't always need to be understood
October 15, 2018, 9:02 am

Yesterday I saw a car start to make a left in an intersection. After getting about 3/4 of the way through, he stopped just before entering the new lane he should be going into. It's hard to describe in words, because no one would ever do this. He was still in the middle of the intersection when he stopped. The car behind him had to stop as well, but dead in the middle of the intersection.

The second car honked. And rightfully so. A sort of nudging honk that doesn't exactly come across friendly until you step out of yourself and realize that all honks sound the same at their core, and situationally, this was just a short "hey there friend. I noticed you aren't moving, and thought you could use some encouragement" kind of honk.

The first car sort of did a hesitated bounce, then pulled forward. But only about 3 feet and then stopped again.

At this point there are three cars in the intersection, and the two cars behind are railing on their horns. What else could they do? The first car nudges forward a few more feet and then stops again once he is fully into the new lane, but the other two cars are still well out into the intersection, blocking traffic. Horns are honking. Windows are down and people are yelling.

And the guy in car number one steps out of his vehicle. In the middle of the lane, while blocking traffic. He steps out and begins yelling, and although I can't hear it, it's pretty clear the basic concept of what has happened.

He has had a complete breakdown of all of his faculties. He has gone through a barrage of emotions in a short amount of time. He was probably confused at a certain point. Then frustrated. Then suddenly scared. Then angry. Then humiliated. Then entrenched. Then confused again. Then pissed. And all of this probably happened within a 10 second window.

And then he did the only thing some can think of to do in a situation like this. He hunkered down, he backed himself into a corner, and he tried to get the world to recognize his feelings of hurt and fright and anger. Like a new dog barking at people at a party for the first time, he lashed out at anything and everything around him.

A bus pulled up to the blocked intersection and did something you rarely get to see. He got on his megaphone and started blasting at this guy loud and vocal. MOVE YOUR VEHICLE. CONTINUE TO THE SIDE. And the guy, suddenly presented with a solution instead of just loud noises... or perhaps presented with a bigger barking dog... got back in his vehicle and moved forward and to the side.

And I went about my day.

I think there could perhaps be a number of life lessons hidden within this story. And I am a big fan of finding life lessons in the situations one finds oneself. I think one life lesson is that you shouldn't just honk at a problem. Sometimes you need to yell solutions at it, until one sticks.

But I think the lesson most worth learning is actually one that people who need it might find difficult to learn. You don't need to stop the world for recognition every time you're upset. Most others will probably only become upset with you, and their resentment will not improve your condition. And even when someone presents a solution to you, you will have to be willing to become untrenched and accept an outward resolution. If all you want to do is stop the world and make everyone see that you're upset, you are not striving for a solution. If all you're doing is trying to find out whose fault it is, and not move forward, then resolution is so much more difficult.

There is a time and place for anger, for hurt, and for venting. But a person needs to learn to pull over to the side of the road, rather than forcing others to acknowledge the person's own struggles, just for the sake of acknowledgement.

A letter to the past
February 7, 2016, 10:00 am

10 years ago today, I wrote a letter to myself. I was 24, and the letter was written to my 14 year old self. Today I am going to write another letter to 10 years in the past. Here we go.

Think back 10 years, how old were you?

I was 24 years old. I was working at Bison Witches in Tucson, Arizona. I was not yet a kitchen manager, but I was soon to go through a number of big changes in my life, not the least of which was a move to California. I was paying rent for the first time in my life, and working a job that I still consider to be the funnest job I ever had. I made some lifetime friends who I still consider to be my closest, even though I'm near to so few of them these days. I went through an intense drinking phase, that I'm probably lucky didn't lead to any lasting detrimental effects.

If you ran into yourself at that age, what would younger you say?

That person could not have imagined the kind of life I lead now. He would wonder how I could be a teacher, if I never graduated high school. But at the same time, he would be surprised that I bothered to get my GED. He would be annoyed that I play the guitar so little anymore, but he would love that I live near the ocean. He would be excited that I worked in video games for a time, but he wouldn't be surprised that I ended up with a programming job. He would be amazed that I was painting, and he would be so excited that I had an art show.

What would you say back?

I would tell him to work hard when he found a job that was easy. I'd tell him to never be satisfied if he found a job where he couldn't move forward. I'd tell him start painting earlier. I'd tell him that art is where his heart is, but all the money is in tech. I would tell him that relationships are hard, but to pick his line and stand behind it. I would tell him to work on telling people no, and to not stress himself out over other people's projects. I would tell him to get his ass to California, but I'd tell him to skip Buena Park. I'd tell him to learn calligraphy, because that shit comes in handy. I'd tell him to smoke less, drink less, and observe his limits.

In ten years I've gone from my first jobs to teaching at the masters level at a university. I got married, and I got divorced. I moved from small towns to big cities. I went from art to tech to art to teaching tech. I am about to do great things with my life, which is not something my 24 year old self could've really even imagined.

I never thought I would do this thing again, but now I really can't wait to do it again in 10 years. My life has changed dramatically in 10 years again, I can't help but wonder that it will change so much more in the future.

Read my letter 10 years ago

in which i just saw this
February 7, 2006, 6:47 pm

just saw this on doitalone's lj. and i have to respond.

Think back 10 years, how old were you?

i was 14 years old. i was a shy little kid, about to make the biggest change in my life. before i was fourteen i was very shy and introverted, i had never cursed, and the worst thing i ever did was steal a pack of baseball cards. i had very few friends, and i was convinced that i would be a comic book artist when i grew up. when i was fourteen, i got in my first musical play, and it changed my whole outlook on life. i wasn't shy anymore, and i found out i had more friends than i knew i had.

If you ran into yourself at that age, what would younger you say?

my younger self would be dumb founded that i didn't graduate high school, much less that i never went to college. he would say that he couldn't believe i lived at my parents' house as long as i did, and he couldn't fathom why i stopped drawing as much. he would probably be ashamed of me. he would hate the music i listen to. but he would be amazed that i play guitar, so much so that he would probably give up violin right then and there and pick up guitar instead.

What would you say back?

i would tell him to finish school, no matter the cost. at least high school. i would tell him to commit to finishing what he starts. i would tell him to NOT WALK AWAY FROM THAT GIRL. i would tell him to speak up sooner to her, as well, and to not bother chasing girls that are already taken. i would tell him that other people's opinions don't matter as long as he's happy with himself, but if he's unhappy with himself, to change. i would tell him not to spend so much time chasing pipe dreams, and that real money and happiness comes from picking something and becoming it. do one thing well and all the rest will come as it needs to. i would tell him to do whatever it took to get out of chaska. i would tell him to never turn left across a medianed intersection that doesn't have a light. i would tell him to keep those caricature jobs as long as possible. i would tell him that once he found a job, he could do well and enjoy, to do whatever he could within his power to keep it. i would tell him lots of little things that i've learned over time.

i made a lot of mistakes in 10 years, but i also made a lot of good moves. i got mired in a couple holes, and found my way out of other ones. i'm not sure whether my life is better now or not. but it's farther along, and i'm sure there are some words of wisdom i could have used back then, but who knows if i would've heeded them. i was a pretty cocky sumbitch back then.

  • 0