Mastodon Verification Link Blog – Sam Seltzer-Johnston

Jul 06, 2017

Code Zombie: Antlion Survival

I think all developers have something they never quite finished. I’d even go so far as to say that many people have more unfinished projects than they do finished ones. Isn’t that a darn shame…
Anyway, in response to several requests from YouTube commenters over the years, I’ve released the codebase for my Antlion Survival gamemode into the public domain.
I hadn’t even looked at the code for over 5 years. I’m guessing the last time I wrote any code for it was at least 6 or 7 years ago. I’ve grown a lot as a programmer, so my ego has become pretty detached from it.
Here’s the most recent footage of the gamemode when it was still functional in 2010.

Ah the memories…

If the modding community is anything like it was 7 years ago when I originally created this, I’m guessing people will just rip the parts they want out and incorporate them into their own projects. Frankly, that’s alright with me. It’s better than allowing it to continue collecting dust on a hard drive backup.

Still, part of me wants it to become an open source project with multiple contributors, having the original vision realized. If that does happen, I may spend a little time continuing development on it. It’d be fun to go back to my roots as a programmer. Had I mentioned that tweaking/writing GMod Lua scripts was how I initially taught myself to write code? Technically my first language was some dialect of BASIC, but I didn’t do a deep dive into programming until I started using Lua.

Ah yes, those were the days…

Jun 24, 2017

How Sitting on the Floor Accidentally Improved my Posture

I recently moved, and in the process decided to shed a lot of my possessions so that I might lead a more minimalist lifestyle. Among those possessions was a desk that was too large for my temp place, and a chair that wasn’t getting used since I’d been using a standing desk for the past couple years. Setting up another desk seemed like a hassle, so I decided to sit on the floor using my coffee table for the PC/monitor, and a tiny stand-up bench for my keyboard.

Turns out these happen to be perfect heights for what I’m told is good posture, but now I was dealing with zero back support.

No chair or conventional desk. What now? My standing mat became a sitting/kneeling mat. I switched between various cross-legged poses and what I later found out to be called seiza, a Japanese sitting form.

Several people told me not to do this; that it would be painful and unhealthy.

I quickly realized that slouching without back support results in immense pain1. This is where a lot of people say “I told you so”; after 3 days my back was hurting throughout the day. After a week, the pain vanished. I noticed I was sitting up straighter even in chairs with bad back support. I realized that the pain I was feeling wasn’t the kind that indicated something unhealthy. It was muscles being formed. The act of using my musculature to hold my skeleton in place was making my back stronger.

The pain experienced from slouching without back support is so much greater than the pain of forcing yourself to sit up straight with weak back muscles; you have no choice but to build those muscles.

Seiza is an interesting pose. For some reason it gets you to sit up straight whether you want to or not. It’s a little uncomfortable at first, but you get used to it. The Kanji for seiza (正座) literally translate to Correct Sitting. It’s how many Japanese people sit for at least part of their day. The Japanese people I know have commented on how many Americans appear to slouch in general. From a my (gaijin) perspective, the Japanese people I know sit up unusually straight. I think this is because they’ve spent more time sitting without chairs.

I’ve been doing this for about a month now, and am generally pleased with the results. I do everything like this. Gaming, watching videos, programming, web surfing, the works. I think it’d be ideal to have a setup that enables me to go from the floor to a chair to standing at my leisure. There currently aren’t any products that enable that, so I’ll likely need to build it myself.

So yeah, consider trying this experiment at home. I don’t do this at work, but it has still somewhat improved my posture there despite the crappy chair.

  1. I do not exaggerate. I mean seriously immense pain. It feels like your back is about to collapse. 

Jun 23, 2017

Portable C in Japanese

I recently have taken an interest in writing portable code. In part because of my involvement in the Orx Project, and in part because my job requires me to write code that can cross compile and run on multiple embedded platforms.

On a somewhat unrelated note, I was on the hunt for good programming blogs in Japanese. Since I’m teaching myself the language to ostensibly do the things I do daily in said language, I decided to take a crack at search-engine-fu in Japanese.

I seached something along the lines of “C言語 プログラミング portable”. After a bit of surfing, I came across 移植性のあるCプログラミング, which more-or-less translates to “Programming Portable C”. It’s exactly what you’d expect it to be. A bunch of bite-sized posts that focus on a specific aspect of writing portable code. The author hasn’t updated the blog in quite some time. Thankfully writing portable code is vaguely synonymous with using old standards of the language to minimize compiler incompatibility, so it’s not like it needs to be updated to remain relevant.

So can I read it? Well… sorta. I can read the code, which gives me a great deal of context. I can Kanji-pick too, so I can at least get the gist of what I’m looking at. Then it’s relatively trivial to translate the rest with the help of various websites.

I’ve used a bit of the blog for sentence mining, and I’ve learned a few useful coding tidbits from it as well. A lot of it is pretty obvious stuff, but it’s still a nice reference. Who knows? Maybe you could learn a thing or two from some Japanese guy who just wants to write some portable C code. :)

Jun 23, 2017

What if Git Issue Trackers used Git?

On my drive home today I was thinking about how there’s some dissonance between DVCS’s and the issue-tracking systems that accompany them more and more these days. GitHub has one. GitLab has one. Atlassian sorta has two if you count JIRA and Bitbucket separately. And… *drum roll* they’re non-transferrable. What the heck? The repositories are! Why not the issues? Are they not important as well? There’s a lot of project history and meta-documentation to be found in issue-tracking systems.

A Git repository can live anywhere. You can clone it and push it anywhere. It seems strange that issues don’t come along for the journey. I routinely utilize multiple remotes, and where they’re hosted is arbitrary. I have some respositories that exist on Bitbucket, GitHub, and a private GitLab instance. Why? Not important. What’s important here is that each of these have incompatible issue tracking systems.

One emergent pattern I’ve seen is the formation of Wiki repositories: a collection of markdown documents that are loosely coupled to a main repository. They have their own repository history and exist as a sibling to the main repository. Why not do something similar with issue tracking? They have history. They could be coupled to one repository or used across many. Each issue is essentially a document.

There’s a project out there called gaskit that aims to do this, though it seems to still be in its infancy. There’s another one called cil that looks like it’s meant to be used for managing the issues as documents via command line. Neither quite seem to be what I’m imagining, but at least I’m not alone in being frustrated with non-transferrable issue tracking.

2 / 9