Untitled
World's End Girlfriend - 100 Years Of Choke
16,095 plays

vuroro:

altik-0:

So, I think this is going to be a bit long. I’ll keep the majority under a read-more, but:

Got linked to Octopus Pie a few days ago, and it’s a fantastic comic I couldn’t recommend highly enough. It’s very long, and it’s not really one of those you can come in from the middle and just skip the rest, but if you grind through I promise it’s completely worth it.

And the rest is after the break.

Read More

Read More

Read More

vuroro:

OK, so, a while ago, I mentioned that I began seeing more and more ants in our apartment. I thought I had a vague idea of their source, but I wasn’t sure exactly where they were coming from.

Last night, my mate noticed there were a few ants on one of our small succulent plants, particularly on…

Oh, never thought this video would ever be useful!

https://www.youtube.com/watch?v=IGJ2jMZ-gaI&app=desktop

EDIT: sorry, posted from my phone. There’s a non-mobile link.

That’s for fire ants, but I bet other ants can set up in even smaller space.

So, I think this is going to be a bit long. I’ll keep the majority under a read-more, but:

Got linked to Octopus Pie a few days ago, and it’s a fantastic comic I couldn’t recommend highly enough. It’s very long, and it’s not really one of those you can come in from the middle and just skip the rest, but if you grind through I promise it’s completely worth it.

And the rest is after the break.

Read More

vuroro:

I want to start an art project, so I dug out an old Nikon camera of mine that I’d found in high school. After it had gone unclaimed for a week, I got to keep it, and my dad discovered it was a pretty expensive little thing - $200, one of the nicest point-n’-shoot cameras you could get at the time.

Now I’m looking at the specs, and almost any smartphone you can get has higher megapixels than this thing.

I had to do a school project developing an Android app that would take photos from your camera, and let you drag, scale, etc. them around the screen to make terrible collages.

Well, I was working on that, and my app would crash as soon as I put in a second picture. Reason: the pictures my camera took were ~4000x2000 pixels and storing one of them filled up all of the memory on the device. :|

Portlandia: good show!

I have a tendency to not really do my homework over the weekend, instead opting to play tetris, or poke around on Reddit. However, I’ve recently taken to watching entire seasons of TV shows in my bouts of procrastination, and this weekend’s foray was a little sketch comedy show: Portlandia.

Read More

Terrible Lessons Learned From C (pt. I)

Enums and Bitmasks are the best!

Especially when working on software like a game, you find often certain lines of execution need to change based on what state the program is in. For example, if you’re paused, you should skip over all the main update loop stuff, but instead you should run pause menu update stuff. It gets even messier when you start talking internal states in the software.

In C, the nicest way (at least that I’ve found so far) to accomplish this is to track what state you’re in, and branch on those states. In the pause example, you would track “this game is now in paused mode”, and at the top of your logic loop you just switch on the enum you created to give nice names to these states, and you end up with something like:

switch (state)
{
case normal:
 normalFunc();
 break;
case paused:
 pauseFunc();
 break;

default:
 error();
}

And the thing is, this is perfectly fine for C. You split those functions out to a few different files if they get too messy, and your code actually stays quite maintainable.

But now enter Object-Oriented Land, after training yourself on that sort of system, and you start saying to yourself “Okay, I’ve got these room things which have a few different options for implementation, so maybe I’ll just branch on cases and track a state for the class. Works in C, so it must be good!”

The problem is, this is not so nice and clean as in C. Now, in order to maintain your code, you can’t really split out the helper functions as you would in C to keep things clean. They’re basically private helper functions, so those functions get stuck in the same file and you bulk up your code massively, giving you a huge headache to deal with down the line.

So, how do you do this nicely with clases? With classes.

Okay, that might sound dumb, but here’s the thing: a good portion of the time you have these state-based execution paths in OOP (at least in my experience), it’s because you say something like “This room could have enemies, or it could have a shop, or it could…”. In C, you’re usually looking at “This program should branch depending on user input…”.

The subtle difference here is that if a class’s “type” isn’t going to dynamically change (like it very well might in the C case), you don’t need to track it at all, nor do you need to branch. Just create a base class and use inheritance to do your job for you - that’s what it’s for.

Plus, now you get a huge upshot. In C, if your various states have some shared code between states (I need to update the enemy attacking stuff in standard execution, as well as when the user opens their inventory, but not when paused), you have a mess on your hands trying to get this code to merge. In OOP, just create another nested level and youre golden. Granted that doesn’t always work, but if it gets too convoluted, you can probably reorganize the structure to make things work out.

An extension to this idea is tracking values in bit-fields. By doing that, you are able to pack more data into a small space, and vastly optimize large fields of repeated types of data. At some point, you just start doing it by habit in other programming, especially to keep track of these states we just talked about.

This pushes a much more menacing and probably pervasive issue in programming: premature optimization. Yes, if you only need 8 values for some integer, and 16 for another, sharing bits saves space. However, if you just start doing that by default, you make your code almost illegible (because shifts and masks to get values is a lot less intuitive to an outside party than just calling a property name), and further very difficult to modify later.

But I’ll get to these other issues in more depth in a later post.

hawkules:

imagine a video game where you create a hero whose destiny is to save everyone, but throughout the game you start making harder and more questionable decisions, and the game gets darker and darker. and in the end you’re just standing there, clutching the controller and finally realizing you were playing the villain all along

It was good. Highly recommended. Don’t expect to have much fun, though.

Counterfeiting vs. Proxies

Lately there’s been something of a brouhaha in the Magic community related to counterfeiting cards. I’ve been thinking about this, since I’m quite equivocally against this behavior, yet it seems somewhat contradictory with my earlier stance on hacked Pokemon. So, I’m posting some further thoughts on the issue.

Read More

Source Code posting script -->