Wednesday, July 21, 2010

Getting back into programming

I haven't written any code in about a year, outside of a few small homework assignments. Yesterday I installed Code::Blocks and set up the Allegro library. Code::Blocks is my favorite IDE, mostly because I've been too lazy to try anything else. Allegro is a game programming library for C/C++, which handles graphics, sound, and keyboard/mouse input. It's probably got a few other functions I've never used, but those are the important ones to me.

In the near future the Allegro community may be having a Speedhack contest, wherein the participants try to program an entire game in one 72 hour long period. These are always great fun, even if they never result in me producing anything worthwhile. If the idea for another Speedhack fails to gain momentum, it will be because someone else put forward the idea of doing another TINS. TINS is exactly like Speedhack, but is not Speedhack. TINS is a recursive acronym that means, "TINS Is Not Speedhack."

Either one of these competitions will be a great way for me to jump back into programming. In the meantime, I might throw a small game or two together just for the fun of it.

Sunday, July 18, 2010

Impenetrable security.

Today I made a comment to someone saying that there is no such thing as impenetrable security. Which, while it may or may not be true, is probably the best thing to assume.

I'm just starting on the path to being knowledgeable about information security, and I have no idea how far I'll walk down that path, but immediately after saying this it occurred to me that an alien species with significantly more advanced technology could have effectively impenetrable security simply because we have no understanding of their technology.

Which, by the way, throws the whole plot of Independence Day into question. Anyway, moving on...

But I think an interesting thought experiment can lend some insight into this. Here's how it goes:

Imagine that you have to crack a well-secured modern computer system and find a specific file on it. The twist? You are not from the modern era. Would it be possible, using the knowledge and technology available at the time, to get at that file if you were from the Renaissance? From the height of the Roman Empire? From ancient Egypt?

Pick an place and time more than 100 years in the past.

The further back in time, and the less advanced the culture, the more awesome your success is.

The better the file is protected, the more awesome your success is.

Success must be plausible given the knowledge of the time. Your job is to explain how it's plausible.

Irreversible encryption algorithms are cheating. Even a modern person wouldn't be able to get at the file. Rot 13 is still easy, though.

And no, persons from the modern era are available for you to ask or force into doing it for you.

On the other hand, no actual time limit is imposed. Spending a decade or two reverse engineering the computer until you understand it better is fine.

Waiting around until technology catches up is cheating, and does not constitute a success.

Now, if anyone reads and responds to this, some interesting stuff might happen. Past experience places the chances low, however.

Wednesday, July 14, 2010

Back to Work

I returned to work this week after two weeks of boring freedom. What is my job? I fight a daily battle against insanity while young children try to drag me into defeat. Also, I don't get paid.

I'm supposed to get paid, but a number of issues have delayed getting my name on the payroll. By the time they get me on there I'll have a backlog of several paychecks which, I imagine, will come all at once. So, like, a few hundred dollars all at once. Which will be nice. And in the meantime, I eat one meal a day. Except on days like today when a coworker forces me to accept a free lunch, which makes it really hard to continue believing that there is no such thing as a free lunch.

We took the kids swimming today. Swimming is an exhausting workout. Maybe it's just because I'm generally lazy and slothful, but it's a strain to do one lap in the pool. Luckily the kids love it, so there isn't as much running around chasing after them as there can be at other times in the day. But there is more having chlorine water splashed in your face right after you've just wiped it out of your eyes.

Still, I love my job. Not as much as I would love a job in my field of study (computer science), but it's a great job and once the payroll wrinkles are smoothed over I won't have any complaints.

Also, I jumped off of a diving board for the first time in my life today. I'll make a crazy daredevil of me yet.

Tuesday, July 13, 2010

Minecraft

Minecraft is the sort of game where, from time to time, the people watching you play will ask questions like, "Did you just rain lava down upon your enemies?" or, "Why did you tear apart that mountain with your bare hands?"

The answers to those questions are, respectively, "yes," and, "because it got in my way." Yes, in Minecraft you can pick up lava in a bucket and pour it down on top of the monsters that are trying to eat your face. How satisfying is that? Also, you can literally move mountains, one piece at a time. Take that, mountain! That's what you get for standing between my base and the super-awesome floating island I want to build a castle on!

What, I didn't mention being able to build castles on floating islands? Or the fact that the procedurally generated maps are are about eight times the surface area of the Earth?

Seriously, the only thing this game lacks is magical dust that can only be obtained by mining rocks near the core of the planet. Oh wait, it's got that too!

Minecraft is, basically, a free-roaming adventure game. Currently the only goal is "don't die", but the game is still in alpha. And it can at times be a challenging goal, with zombies, skeleton archers, giant death spiders, and suicide-bombing mutated pig creatures all out to get you.

But what makes me love the game is the ability to freely build pretty much anything you want. Floating island castles are just the beginning. Massive complexes of mines are standard, they pretty much happen by default while you're gathering enough stone for all your other awesome constructions. And it's only natural to build an underground lair into these mines. I usually have several. Underwater bases are common and easy. My dream, as yet unrealized, is to build an underlava base deep near the core of the world.

You can craft a number of tools, plus weapons and armor. Different materials will give you better quality products, with wood or cloth being very low quality, stone and steel being in the middle, and the rare diamond being the top quality.

Basically, it's like everything you'd ever hoped Legos would be, in a video game. Go check out the free creative mode, with no enemies or crafting. And once you've done that, head over to Youtube and look up Minecraft Infdev.

Now, if you'll excuse me, I need to go throw snowballs at pigs while planning out the best way to hollow out a mountain for my home.

Monday, July 12, 2010

Knives and tape and power, oh my!

A couple of weeks ago the power adapter on my laptop decided I was using my computer too much, and that the only way to make me cut back was to stop providing power to said computer.

In other words, my power adapter broke. The little metal bit, the part that actually plugs into the computer, came off of the cord. Now, being the computer-addicted internet junkie that I am, I couldn't let that stand. I shoved the recalcitrant little piece of metal back into place and, although it now required more careful wiggling once in a while, made the power adapter work again.

Flash forward to today. The power adapter cut out, and no amount of careful wiggling would get it to work again. Even wiggling that was less careful and more forceful provided no effect. And so, wielding my +1 knife of geekiness, which for some reason is kept in a drawer in the kitchen, I did battle with the broken end of the cord, slicing it open and exposing its tiny metal innards.

After all that, I grabbed the piece that had broken off weeks ago and, making sure all the little metal bits were connected to the other little metal bits, tried it again. Nothing. I resigned myself to using the shared desktop, which didn't even have Firefox downloaded. After using Internet Explorer (ew) to download my favorite browser, I surfed the web for a while until someone else wanted it, then I went back to my room.

Once there, I noticed that the power adapter to my laptop was unplugged. And had been the entire time. That's right, it's not any more broken today than it was yesterday. Well, at least it wasn't until I went after it with a knife. I felt very stupid for a while.

With the help of some handy electrical tape, I got all the metal bits back into their proper place, plugged it all in, and behold! Power! In addition, while I had the tape out, I taped the cord into position on my computer to eliminate all the careful wiggling that had occupied my time in the last couple of weeks.

If I had a camera, this would be where I'd post a picture of the final product. But, I don't, so I can't, so you'll just have to visualize the electrical tape-covered cord that is taped onto the left side of my computer.

Sunday, July 11, 2010

Writing, programming, Jesus, science, and cats.

Hi! My name is Neil. I love you!

That's the important stuff, the things you should probably know right off the bat. Now here's some boring bio stuff.

I'm 22 years old, getting close to 23. I go to Western Kentucky University, where I'm majoring in Computer Science and minoring in Religious Studies. An odd combination, I know. I'm also considering getting a second degree in Astronomy. I like to program my own games, and I love writing speculative fiction. I'm a devoted Christian with apologetic tendencies, and I absolutely love discussing religion and arguing about the existence of God. I prefer to do this from a scientific standpoint, because I enjoy science to no end. I have an amateur's interest in philosophy, and might take a class or two on it while I'm in college. I'd also love to take a class on formal logic, if I have the time.

That's me in a nutshell. You'll find out more detail as I make more blog posts.