Blog Posts


Not quite yet. I almost got it, but there are a few bugs.

First, I am unable to use apostrophes in new posts because the hashtag finder is turning the HTML entities into links. Which makes them display very broken.

Second, I need to decide how the URL rewriting is going to handle multiple pages of posts for a particular tag. This isn't a terribly difficult problem, but I want a clean and consistent solution.

Posted 17 Jan 2019 by Brian

Blog Backup Tool

I wanted to be able to backup the blog posts from my database without having to log into database manager, so I created a page just for that. I can't see any reason it shouldn't be public, as the content of posts already is, so Here's a link!

On a related topic, dates in javascript are a little funny to get formatted nicely. Compare this stackoverflow answer for javascript with This php documentation for the date() function.

I've been spoiled by php. :/

Posted 15 Jan 2019 by Brian

Backend Mobile View

Basically, the backend was separated into two columns. Stacking them on mobile would be tedious to use, because you'd have to scroll a lot. Now, it just slides left and right with css transitions to let you see what you need.

That probably doesn't make much sense, but I can't really show what's going on here because the backend is not publicly visible, but I've added the creation of a demo version of the backend to my todo list. Not sure when I'll get to that, but for now, I can use the backend on my phone. So that's cool.

Posted 14 Jan 2019 by Brian

Custom Text Links

Quick feature today, didn't take a lot of effort to add custom text links!

But y'know, more than zero, which is why I've only done it now. If you haven't seen Game Maker's Toolkit and you're into game design, then you're missing out.

That's... What the link goes to... In case you were scared to click it.

Posted 8 Jan 2019 by Brian

Pretty URLs

Yep, all working now on the front end. Even got those differences from the local to the remote server down to a single change on a file I rarely upload. But I clearly still do not understand RewriteCond. Googling for the exact problem I want to solve (do something different on local server) was able get what I wanted, but I don't know why my method was not working.

Specifically, I was trying to test if the URI contained a particular string. But either I was doing it wrong, or that's not possible. But It works, so I'm not complaining.

The URL for each individual post is
vp/ for viewpost.php.
someid/ for the post id
some-title-of-a-post which is just for show

Because the title portion is ignored, you can actually leave it out for a shorter link. Handy. But you'll still get redirected to the correct url by php.

Posted 7 Jan 2019 by Brian

Updating a Live Site

It's kinda nice to have such low traffic that you can safely experiment with a live site, knowing how unlikely it would be that you'll disrupt a viewer. There is an obvious downside though.

Now, I just need to figure out how to get my local server to more accurately reflect the remote so I don't need to do that anymore. With the minimum amount of work. :P

The problem is that the local server has multiple sites on it, so I can't use the root as a starting point for links. But, I don't want to switch out the local server every time I switch the project I'm working on. You might call that a first world problem, but it's really just a question of efficiency.

Posted 7 Jan 2019 by Brian

40KB Game?!

That's the size of a game on the original NES. Some masochistic developer called morphcat decided to make a new game that would work on the original hardware. In the process, they made the rest of us look pretty lazy.

Check out the explanation of how it works:

This game looks like a modern indie, but it runs on the same hardware that gave us some very well designed and fun, yet almost certainly less visually tight. It proves that the industry of video games has evolved, but not just because we have better hardware. And it also proves that software is in a pretty sad state right now.

Just the php of my website wouldn't fit on an NES cartridge. Everything does not need to be optimized to the same extreme. But I think there's still a lesson here.

Posted 3 Jan 2019 by Brian


I was part of a game jam. We made a game! It's fun, you should check it out:

Game jams don't always yield results this nice, but when they do, it's a good feeling.

Posted 2 Jan 2019 by Brian

The Year of Our Lord Two Thousand Nineteen

It's. Gonna. Be. Great.

I don't think much of new year's as a celebration. It represents an arbitrary division of time. But humans like organization. So, being able to categorize events by time is actually pretty useful. It allows you to stop worrying about what was messed up about the previous day/month/year, and focus on making the next arbitrary division better. The other side of the coin involves making sure you don't try to coast on the successes of yester[whatever]. Keep improving!

This is why new year's resolutions make a lot of sense. But, they often fail. I'd hazard a guess that this is because people place too great an importance on the year division. Try this: Don't wait for a new year. Make a monthly resolution, a weekly resolution or even a resolution for just one day.

That advice might not resonate with everyone, but here's an example. If dieting for a whole year is scary, or impractical, just try one month. Then, at the end of January, you can congratulate yourself on the success and celebrate with that slice of cake. But, at that point you can renew your resolution for February. Or wait 'til March. Either way, if you mess up from time to time, you can reset yourself each month, instead of waiting a whole year.

Think about it this way: Now your measuring the success of your resolution on a scale of 0 to 12 instead of pass/fail. I guess you could measure how far into the year you made it, but it could be harder to recover from failure that way.

Have a Happy 2019!

Posted 1 Jan 2019 by Brian

Feedback from user filled forms

If a user inputs some info into a form and there are multiple problems with it, which error should be reported to the user? Or should all of them be reported?

Ideally, I suppose I should be reporting the errors with JS as soon as the problematic data was entered. That sounds like the least painful for the user, and not atypical. I can easily imagine being frustrated by a system that required me to re-enter a new password, usually twice, because I'd mis-typed my old one. And I might then be told that my new password is invalid for some reason.

But you probably shouldn't check the old password that way. Of course, you shouldn't leave your computer with the password typed in anyway, so maybe that would be fine.

This is where it's best not to try to make things entirely foolproof. I'll drive myself crazy.

Posted 31 Dec 2018 by Brian


You found me! I'm Brian Bogedin. This is my website and blog. Obviously. Anyway, I'm a full stack web developer and game programmer operating in Southeast Michigan. I do freelance, too, so feel free to contact me with business inquiries. Thanks for stopping by!

Ping me:


This blog!

I'm making this blog from scratch. No CMS, frameworks or libraries! Just MySQL, PHP, JS, HTML and CSS. Is it necessary to create a blog from scratch? No, but it is great for learning, and customization. Does your blog have hashtags?

Website for a youtube channel that creates instructional and entertainment videos about illustration. I built the site and manage giveaways there from time to time. Currently working on a miniature custom CMS so that the site owner can administer the giveaways without my assistance.

SECO Tools

I do some work here and there for a company that sells mill tooling. Most recently built a batch processor for their tool converter. Basically, it takes a bunch of competitor product numbers and returns the information on tools offered by SECO with similar specs. Still needs some user friendliness enhancement, but it's currently only for internal use.


This is a small couch multiplayer game made in gamemaker for a game jam I organized with some friends. Up to 6 players use controllers or the keyboard to fire rockets on the side of their city to rotate a planet and avoid incoming missile. The trouble is, everyone else is trying to rotate the same planet! Download it on!


Mulitimedia engine being developed by my friend, Josh Powlison. Plays audio, video, comics, text, and kinetic novels. Cool stuff. I'm helping out a tiny bit. See the demo here.