Blog Posts

Game Jam! Team Spirit!

I was part of another #GameJam. This time we decided to enter an actual game jam on itch.io. The theme was spirits, and there was a rule that there be no text in the game. We had a lot of fun with this one. The official jam was a bit longer, but we only spend about 12 hours on the game. It's not too shabby, check it out!

Team Spirit

#gameDev #gameMaker

Posted 7 Apr 2019 by Brian

Introducing Radish

I've been working on getting comments working for the #blog, but I got a little sidetracked. Anyone who's worked with #HTML knows that you end up doing a lot of stuff over and over again. That's why #frameworks exist. I was skeptical of most of these frameworks for a while, because I didn't consider anything that they offered to be of much use.

Then I started adding comments to the blog.

So, I get it. But I still don't like the mentality of frameworks. It's all closed up, hard to understand how they work, all or nothing, install it with NPM (it's definitely easier that way -_-), blah blah blah. I don't like it. If I'm working with a team, or need to get stuff out quick? Cool, frameworks got me covered. But for my personal stuff?

There's #Radish
Radish - The JavaScript Starter Kit - Github

Just a collection of various small, easy to comprehend, simple functions that take care of the most repetitive stuff that I have to do all the time. Is it very complete? Intuitive? I don't know, but it's a work in progress. And I'd love to hear your suggestions.

#WebDevelopment

Posted 28 Mar 2019 by Brian

createElement() vs createDocumentFragment()

I've been working on some #JavaScript to help populate pages with data returned from #AJAX requests. Generating #HTML elements or duplicating existing ones is pretty important for that sort of code. #Josh recommended checking out document fragments as they might be able to help. So I did. They can, but it depends what you're trying to do. In my case, it doesn't make much of a difference, as long as you put all the elements to be added into one container node before appending to the document. Otherwise, you could take a performance hit.

Check out this StackOverflow discussion for details on the differences.

#WebDevelopment

Posted 28 Mar 2019 by Brian

Chrome Bug w/transitions

I have discovered a minor #CSS #bug in #Chrome. I don't think it existed before, because I don't remember the issue that I am now seeing. It does not occur in #Firefox.

The button element has User Agent Styles for text and background color. If you set these to something else, but also have a transition on those properties, you will see a transition on page load. This transition will change from the user agent style, to the style you set. This ONLY applies if you are using a linked style sheet. Which, you are, because you don't want to have to update styles on multiple pages. I assume this is not restricted to the button element, that's just my example.

My biggest problem was that this caused my buttons to change size because I had the transition set to 'all'. I changed it to only affect the required properties, and the brief color change is much less noticeable.

Maybe someone will bump into this and save themselves a headache.

Posted 12 Mar 2019 by Brian

Symbolic Links Revisited

I think they're broken. On #Windows anyway. As far as my logic understands, any running program should not know that they even exist. But #xampp can tell. Or at least, I think Windows is just feeding it directories as if it could tell. This is a little rough to explain.

Say we have a #PHP file on an #Apache server in a directory, but that directory is actually what Windows calls a junction (A type of symbolic link). If I 'require' another php file with a relative link like '../', where is the server going to look?

My first guess? The directory above the junction. It took me nearly an hour to determine that it was looking in the directory above the TARGET of the junction. Maybe that's the way that should work for some reason. But I do not know what that reason is. If Windows had any kind of proper sandboxing, it'd be a major security hole.

I do seem to be good at finding the #CornerCases.

Posted 8 Mar 2019 by Brian

Speed up CSS

I learned about a new #CSS attribute that's pretty cool: will-change.

/* Warns the browser transform will be updated a fair amount */
will-change: transform;

It basically tells the browser "hey, this attribute's probably going to change on you, so you better be ready." I don't know exactly how it works- if it pre-processes most likely updates, passes processing to the GPU, etc- but it fixed some problems with moving elements smoothly on mobile for me.

MDN actually says it's "intended to be used as a last resort" which is always a good sign for a new web standard IMO. It's good to keep our devices on their toes.

I'm betting we'll see it being abused to heck if it hasn't been already. It may just become the new !important.

#WebDevelopment

Posted 7 Mar 2019 by Josh

That Cast Button

Chrome wants to let you cast any video or audio from a phone. Even if you don't want it to be castable.

Fortunately, the fix is pretty easy. Just use:

video.disableRemotePlayback = true;

This will prevent a cast icon from showing up on videos that you don't want your users to be able to cast, like background videos.

Why isn't it instead something like

video.remotePlayback = false;

though?

Probably not for a good reason. It may be that since unset booleans default to false in most programming languages, this was easier to implement and have videos default to being castable. But I feel like it's pretty sloppy.

That's the fix anyhow.

#WebDevelopment

Posted 4 Mar 2019 by Josh

Blog has moved!

Hey! If you're reading this, then you already noticed, but the #blog is now located at blog.bogedinbr.com and bogedinbr.com now has a bit of a front page for our development services. That page could use some work, it's a bit of a process. Of course I say "our" because #Josh and I are going in on this together. Should be fun!

Does the blog need to be a #subdomain? Probably not, but it's #cool right? Just another thing about #WebDevelopment that I understand even better now.

Posted 20 Feb 2019 by Brian

Havoc Button

If you copy and paste the below into the dev console on most #websites:

var script=document.createElement('script');
script.src='https://joshpowlison.com/wut/havoc-button.js';
document.head.appendChild(script);

You'll get a nice button in the top-left corner of the screen that reads "Havoc".

I needed to do something silly as a break from my serious work, so I made this. It adjusts the CSS of elements on the site at random so they get all wonky. You can click the button multiple times, and it can even affects its own CSS.

Have fun!

Posted 13 Feb 2019 by Josh

Solving Through Subtraction

Most of my #WebDevelopment work has been fixing broken #websites. And the first thing I do on any of these projects now is to start removing whatever I can.

Buggy #Wordpress site? I start deactivating plugins. If the website breaks further, I reactivate the plugin temporarily, but so far I've always been able to remove at least several plugins without it impacting the website at all. Usually the plugins that do impact site functionality can easily be replaced with some vanilla webcode.

Buggy non-Wordpress site? I start replacing #frameworks with vanilla webcode. It becomes easier to read, less convoluted, and it's easier to integrate the external code that really does matter (like Google Analytics code).

I call this process Subtraction. To me, it's an all-around win: the code is easier to read and faster to edit for me and future developers, and the website runs faster. Often Subtraction will solve the problems in and of themselves, or simplify the problems far enough that a solution is easy to implement (rather than trying to work around existing, conflicting webcode, which is often a problem).

Now, my first instinct on any project is to see what I can delete, and move forward from there. And I've always been glad that I took that step.

Posted 12 Feb 2019 by Josh

About

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: brian@bogedinbr.com

Projects

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?

DrawingWiffWaffles.com

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.

Geospin

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 itch.io!

Showpony

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.