31 October 2021

Why Logging Is Important

Why you need logging before you realize you’ll need it. Because when the user says, “I ran into an error…” but then fails to tell you the details, or the order of events leading up to it, and even the error itself, logging would save you.

Instead of saying, “well, let me know if you run into it again, and write down the exact error and everything you did before it happened,” you can say, “alright, I can see what happened after I just looked in the logs.”

Category: Code, held in drafts too long, Rant, System Administration | Comments Off on Why Logging Is Important
25 October 2021

Development, Automation, and Saving Time

(Note to the reader: this post has actually been a draft for a number of years.)

I’m a developer. I write code. Also, I’m just one guy with limited resources, so I can’t be spending a bunch of time testing my code in a bunch of different environments, or making sure that every single little change I make doesn’t have some unknown catastrophic ripple effect.

So I automate my life. I take advantage of freely-available tools. As much as possible.

How, you ask?

Self-Hosting Isn’t Worth It (sometimes).

First off, I don’t bother trying to do everything myself. I used to host my own code repository (a really, REALLY long time ago), and this took excess time to:

  1. setup
  2. configure
  3. maintain
  4. work with (use)
  5. keep updated
  6. handle security crap like SSL (you know, changing the website to https://….)

So I use GitHub. I’ve used SourceForge.net in the past, and it was alright for my first everyone-can-see-it code repository, but GitHub just feels nicer to work with. Going from SVN to Git was a hell of a learning curve, but totally worth it (yes, SourceForge now supports Git, but not when I switched). All my code gets out into the world, others can see it, and I get a tiny bit of exposure.

That said: self-hosting is a lot cheaper, if you’re willing to sacrifice time for money (like if you’re a poor nerd 🤓).

Continuous Integration is Very Important.

Unit testing helps avoid introducing bugs that have a nasty ripple effect. I’m not that great at getting massive code coverage with it, but I’m getting better at it.

The other thing is that, really, I can only directly (read: easily) test with the version of PHP available to me. Which is usually the newest version. And my server, or the servers that would potentially use my code, don’t necessarily have that new of a version… so I need to have something test against those old versions. That’s where Travis-CI comes into play.

So I setup the GitHub repository to work with Travis-CI. Every time I push something to GitHub, Travis-CI gets notified. They spin up a fresh new virtual server for each version of PHP that I declared my code to be compatible with. And they run all my tests in that environment. Oh, and they email me the results. WIN.

Semantic Versioning is Important.

Putting readable, easy-to-understand version numbers in the code makes life easier. Well, usually, except when I fall into “version hell,” where this project requires that project which requires another project, and none of them can decide on a version of a related project that they both like. Yuck.

Anyway, I’ll probably write more on this later. Maybe. If you’re lucky. (And I have time… Which is basically never.)

Category: Code, PHP, Rant, Software Development, System Administration | Comments Off on Development, Automation, and Saving Time
22 October 2020

Updating an Old Blog

It’s pretty clear I haven’t updated this site in a long time. Time to change that.

There’s a couple of things that I need to do. On this site, on my server, and maybe in life: limit the things I’m using, and use those things more often.

I’ve removed a couple of my websites. Not very well, honestly, but they’re gone now. I’ll work on giving them a more graceful “death” when I have more time. I don’t think they were getting that much traffic anyway.

More updates!

I’ve been writing a bunch of sh*t in my journal (a.k.a. diary). Which is fine, whatever. But a lot of that stuff could have instead been posted online, because it’s interesting, and it’s not really what I consider journal-worthy.

It’s clear I need to get back into programming on the side. I’m not sure how I’m going to get that done yet… but I’ll figure it out.

Category: Rant, Uncategorized | Comments Off on Updating an Old Blog
13 March 2017

Impending Server Changes

I’m going to be making some changes to the server.  I recently had my server “hacked”, which was basically just some skiddie finding a way to post one of those pharmaceutical spam ads on a couple of my WordPress sites.

Hacked - I do not think it means what you think it means.
Hacked – I do not think it means what you think it means.

I’m taking this time to figure out a couple of things.  The plan is:

  • figure out how to use Let’s Encrypt for HTTPS (for TTORP, the Story Teller Forum, and my Fitness Forum).
  • find a way to deploy + update WP sites via git (including initial setup)
  • work on a better CMS for Crazed(Sanity) sites
  • update my “deploy” system to work with GitHub and generic git (not just BitBucket.org)

That’s actually quite a bit of stuff.  It’s going to take a while to get this all setup.  It’s equally possible that I’ll post about impending downtime as I am to simply just do it: pretty much all my sites are (extremely) low traffic.  So, there, I said it.

Category: Code, PHP, Rant, Software Development, System Administration | Comments Off on Impending Server Changes
26 October 2015

The Truth About Family

There’s two kinds of family. There’s the kind that you’re forced into at birth, and there’s the kind that forms out of close relationships.

Some people think that “real family” somehow are more important than anyone else. They believe that the family you’re bonded to through DNA–your blood relatives–should be held in the highest regard, forsaking everyone for them.

Sometimes blood relatives have a strange sense of entitlement.  They think that because DNA connects you, that somehow they’re automatically more privileged.  They deserve more from you, and should be given more slack.  That they automatically have a place in your inner circle.

But here’s the truth, at least the way I see it.

The family that has formed around you are sometimes more important.  They don’t have the same sense of entitlement: in order to get into your inner circle, they had to prove themselves.  They fought for you.  Bled for you.

So who is more important?  Hmm.

Category: Rant | Comments Off on The Truth About Family
30 September 2015

How I Got Here…

I posted something on Facebook the other day, with a couple of pictures (last year vs this year) and a brief statement that I’d gone from 324 lbs to 287 (37 pounds lost). A co-worker asked me how I’d done it, and I gave a short answer… which later I realized was far too short.

So what has changed?  What did I do to get here?

That’s a good question.  And there’s a lot to think about, and I probably won’t give credit where it’s due, but I’ll try.

First, I drew my line in the sand.  I was in the fight of my life, for my life, a fight just to survive.  My health was spiraling out of control, and I needed to do something, not just plan and think, but DO something.

I started going to the gym.  I got a membership at the YMCA, went there with a buddy (thanks, Prophet), and put my nose to the grindstone.

I logged every trip to the gym, with very few exceptions.  The only way you can see change is if you track it.

I started seeing some changes, added some muscle and lost some weight…. but I needed more.

I added racquetball to the mix, because it was fun and got me moving.  Even though Prophet (and later my son) kicked the snot out of me, I had fun.

I learned to sweat, and to enjoy sweating.  I learned that it was okay to huff and puff, to have to stop to catch my breath, because that pounding in my chest was my heart telling me I was still alive.

Nerd Fitness - Join the Rebellion
Nerd Fitness – Join the Rebellion

I found this awesome website jam-packed with information, called Nerd Fitness.  No pushy sales, no need to buy anything to get help.  It actually took me a while to figure out what there was to buy.

I started investing in my health: I gave up going out to eat every morning so I could afford a gym membership.  I asked for–and received–a membership to the “Nerd Fitness Academy”, a one-time fee that’s turned into the best investment I’ve made.

Logging stuff was a huge thing, so I finally took an interest in an awesome little app called My Fitness Pal.  I used it to track food intake, and to track carbohydrates, so I knew how much insulin to take.  Insulin and blood sugar levels have all been logged religiously in a cool little app called OnTrack by Medivo.

gallery_5603_173_202964 gallery_5603_173_125417

The graphs above show what tracking progress really means.  The one on the left has all the individual readings, while the one on the right uses daily averages.  They cover slightly different time frames, but that little gap–the funny little line between October & January–is when I started caring.  When things started turning around.  That was the end of 2013, into the beginning of 2014.

I started walking more.  I embraced the Walk to Mordor challenge, going so far as to start work on my own app to track it (yeah, it’s still in the works).

When my knees started giving me problems from walking too much (especially with stairs), I got myself a bike.  When I started, I could barely get around the block… now I feel like I’m slacking if I only get 15 miles a week.  I only feel really accomplished when I hit the 4 mile mark on a single ride, though I generally limit myself to an hour a night.

So that’s what I’ve got so far.

It wasn’t a simple thing.  It wasn’t some crash diet.  No “juicing” or 90-day crash diets.

I hope you enjoyed reading about it.  Feel free to ask questions or whatever in the comments below.

Category: Health, Rant | Comments Off on How I Got Here…
18 August 2015

Solving the Puzzle

Sometimes a puzzle presents itself to you. Sometimes you’re aware of the puzzle, of it’s nature, and sometimes you just have this little… thing, this irritating little itch that you can’t seem to scratch.

Solving the puzzle can be straightforward.  The answer comes to you in a moment, in a flash of brilliance–or common sense–and then you move on.  But then there are those puzzles that take longer.  Hours.  Days.  Weeks.  Months.  Even years.

“What the hell are you talking about?”

I solved one of those puzzles.  It was a puzzle I’d been working on for years, one that I was only casually aware of, but it was really digging at my (crazed)sanity.

This particular puzzle was one whose nature was in programming.

“I’m not a programmer.  This is gonna suck.”

I won’t get into the details; hell, that would bore the crap out of me.  And I’m the one that’s excited about it.

With programming puzzles, you’re almost never sure if it’s truly complete.  With a real puzzle, you’re told straight out of the box that there’s 250 pieces and it’s 15″ x 15″.  With programming, it might be five pieces, and be 50′ x 50′.  Or it could be 50,000 pieces, but only be a few inches wide and a few feet long… it’s just impossible to know.  And when you get to a point where you think, “gosh, I think it’s done,” you realize there’s a whole bunch more pieces that suddenly showed up.

And the other thing is, sometimes there are pieces of the puzzle that you don’t even realize are pieces.  You hold onto this little bit of information, because you know it’s important, but it just doesn’t seem to have correlation… until all of a sudden, you go, “holy crap, this thing here hooks onto this other thing…”

Yep.  It’s like that.

Category: Code, Living With Linux, PHP, Rant, Software Development | Comments Off on Solving the Puzzle
7 May 2015

TTORP and Play-by-post

So for a while now I’ve been running a roleplaying game with a couple of friends.  I’ve been running it over email, since one of the players is on the other side of the world–literally, he’s in Japan–so we have differing timezones.  Getting together hasn’t been particularly easy.

The email system started out just fine.  More than fine.  I finally whet my appetite for storytelling.  I got a lot of writing done.  Vivid imagery was had by all.  And I imagined this particular game–played out before, many years ago–in a whole new way.  It was awesome.

Then, for many reasons, it stagnated.  Updates stopped happening.  I stopped pushing, players stopped pushing, we just…

We just… stopped.

I figured the real way to get this done was to have a forum.  A bulletin board system, where we could post stuff, and everyone would get email notifications, and that would somehow fuel the game.  Somehow a forum would give our game the proverbial “kick in the pants” it needed.

I searched high and low for something I could use that was already built.  Software I’d used before, new stuff, easy stuff, hard stuff…

All the things I had to install myself made big promises that completely failed to get fulfilled.

One promised this simple interface that was all “Web-two-point-oh-ish,” easy to use, easy to read.  I used a production version of it, it was awesome… but completely exploded when I tried to install it.  For reasons that completely baffled me.

The next one was an “oldie but a goldie,” one that seemed pretty simple back when I’d previously used it.  It seemed like I could just set it up, configure some permissions, and go… and after a week of fiddling with permissions and settings and having locked myself out more than a few times, I gave up.

So then I tried taking a really simple piece of code for forums and modifying it myself.  “Hey,” I thought to myself, “this way I can tie it in with TTORP directly!  Total win!”  Nope.  I tried a couple of them, but they both required a monolithic amount of work to get the minimal amount of functionality that I required.

Right now, I’ve got a forum setup that my users were supposed to use.  And it’s imposed limitations on the game that I didn’t foresee: I can’t set any sort of permissions, so either you can see the forums–all of them–or you can’t.  That means I can’t have separately stories going for each player that others can’t see.

I’m not sure what I’m going to do to fix this yet.  Maybe I’ll go back to email.  Maybe I’ll try to perservere with the current forum.  Or… maybe… something else.

Category: Rant, Software Development | Comments Off on TTORP and Play-by-post