Wednesday, June 15, 2011
The art of the vacuum
"What is this obviously Gimped(like the image editor) picture doing on my screen?" "That's the memory mnemonic that helps you remember and helps me prove my point." "I don't like it." "Yes, but you will remember that you didn't like it, and that will help you remember the rest of the post." "Or it will help me remember me tying your arms in a square knot."
-- The Mcdursy brothers
You might be wondering, what place does a vacuum cleaner have in the lair of a techno-geek? We don't spill food, and when we do we always have our minions lick it up off the titanium floor one crumb at a time. Yet why do we still find them in almost every lair? Why should the modern techno-geek of today consider having one?
The answer is simple, computers NEED vacuumed. Seriously, if you want to keep your machine around, you should vacuum it regularly. It will vary for different machines and different climates, but I find once a month is usually pretty safe. Vacuuming is something that can only be trusted to the highest minions, and sometimes can only be done by the geek itself.
You may not believe me, or you may think you haven't the time. I was once of a similar mindset, and have recently come to greatly appreciate my decision to vacuum regularly. Why this recent burst of pride and appreciation?
You guessed it, another tech support trap. Well, this time it wasn't really a trap, more of a likes to have friends and money(or money anyway,) so it was only a small step away.
A very small step.
So anyway, I get a call from one of my non-geek connections saying they have malware. Yea that figures, non-geek kinda goes with that. I accept the job, and have them drop off the computer. I didn't have time to look at it right away, so I just stuck it in my task stack near the top.
It ended up sitting in my lair for almost a week before I got to it. Yea, the thing was filled with malware, running slower than a snail carrying an anvil, and seemed to be lower on RAM than it should have been. So I do a little bit of malware hunting, which is really hard since the thing is apparently part of some kind of botnet based on how it prevents you from using it while still using up so many resources.
I decide to open it up and vacuum it out, knowing non-geeks don't do that very often. I also had to put the drive in a different machine and run anti-malware scans from an external system. So I pop the thing open. What I saw made me sorry I hadn't bought that digital camera I had my eye one. The thing was basically a huge roach nest. This was annoying on a number of levels. For example, that machine had just sat in my lair(which now has roaches) for almost a week.
Anyway, it took me two hours to get the mess cleaned up. They'll probably be finding stuff left over from that incident jammed into tiny little crevices I couldn't vacuum or didn't think to. Even after that, I found that there was a thick layer of dirt encrusted on top of the CPU's heatsink which was behind a permanently attached fan. If you turn the machine off and open it up, you can feel the heat by holding your hand a few inches away, and you will burn yourself if you touch. That didn't come off easy either.
Yet all of this could have been avoided if they had simply taken it upon themselves to vacuum their machine out every once in awhile. Even non-geeks, it's very simple. Just open the case and clean out any dust(or bugs) you see.
So if you haven't opened your case in awhile, you might consider checking for bug infestations and cleaning the dust out.
Oh, and for those of you who haven't witnessed me ranting previously, you just did.
--LazerBlade
Monday, June 13, 2011
How do you take your coffee?
Foreward: If you get these jokes, good for you. If you don't get these jokes, good for you anyway because you're lucky. Note that you can only enjoy this article fully if you happen to be a trekkie.
Not Foreward:
Ask twenty people and you will probably get at least ten different answers. Well, twenty coffee drinkers anyway. Some only drink black coffee, others can only stand it with amounts of creamer that almost make me sick. Some take one lump of sugar, others two, some take only cream. Even after all that, you have espresso, cappuccino, latte, and all kinds of other variations which make coffee available to more people.
As a geek, I myself drink coffee at times. I'm highly irregular in every way however, and it's hard to put my finger on any habits. I've narrowed it down to mood and activities. Duh, staying up late working on a project equals drinking coffee. However, sometimes I drink it for the heck of it, sometimes I can't get enough of it, sometimes I just like the flavor at the moment, etc.
How I take my coffee is a can of worms in of itself. I've narrowed it down to mood. If I wish I had more time in my schedule, I often find myself diluting it with things like cream or milk, sometimes to extreme amounts. If I'm frustrated, I often find myself brewing a *very* strong pot and drinking it black. Then again I sometimes add extra sugar for the extra energy, or sometimes just mindlessly dump whatever is in front of me in the cup on the way back to my computer.
You may find it interesting that a person with my heredity would be influenced by things like frustration or wist-fullness. For those of you who don't know, I'm half Vulcan, about a quarter Klingon, and then another quarter Italian. It's hard to think such of a half-Vulcan, but remember what happens when you mix Vulcan and Klingon blood, let alone get Italian mixed in there.
Anyway, I tend to channel my feelings into things like how I take my coffee, so there's no need for worry about my 11 year mating cycle causing me to seek a warriors honorable revenge of my woman by putting the hit on you. Yea, mixing those together can create some interesting situations. ;)
I guess this is what happens when I try to write a whole article on coffee with too much of it in my system.
*SIP*
--LazerBlade
Sunday, June 12, 2011
Infiltrator - Season 2, Part 1:
Hazzah for being back in the business. Yea things are going pretty slow due to school, more of a fact of life than a variable. Anyway, I haven't got a whole lot to show, but I figure a little is better than none.
I finally got some rudimentary physics simulation coded in Ray3D, and I've been having a blast playing with it. I basically just set the boss to be a rigid body and turned on bounding box rendering(which you might not be able to see without clicking to zoom in). I've just been tweaking settings and experimenting with different gravity and collision methods.
One thing that's gotten left out of the story, is the part about the lasers. I just basically threw something together that will let you fire 30 times and then stop. The stopping is basically a safeguard that makes sure you don't run past the array length and crash the system(if you're lucky). I don't check for collisions to make the lasers die or anything. This is quite horrible for a number of reasons, and I've been putting it off because it kind of works. Let that be a lesson about throwing together temporary solutions.
I'm also adding more variables to the config file, making it less hard-coded. I'll probably eventually separate it out into several files for different categories making things more data driven, but I'm not there yet. I also discovered that preserved surface normals are not a given, which can lead to some really weird lighting situations.
Other than all that, I've done little more than experiment with the size of the boss, knowing it will become an important factor in scale later on. The scaling apparently also has effects on surface normals, which in turn contributes to the lighting problems.
I guess that sets me up for about 3 hours of work on this project so far. The new time budget is 500 hours, which is because I'm aiming for something fairly ambitious. I know it's probably another project that's doomed to failure, but aren't those ones the most fun?
--LazerBlade
I finally got some rudimentary physics simulation coded in Ray3D, and I've been having a blast playing with it. I basically just set the boss to be a rigid body and turned on bounding box rendering(which you might not be able to see without clicking to zoom in). I've just been tweaking settings and experimenting with different gravity and collision methods.
One thing that's gotten left out of the story, is the part about the lasers. I just basically threw something together that will let you fire 30 times and then stop. The stopping is basically a safeguard that makes sure you don't run past the array length and crash the system(if you're lucky). I don't check for collisions to make the lasers die or anything. This is quite horrible for a number of reasons, and I've been putting it off because it kind of works. Let that be a lesson about throwing together temporary solutions.
I'm also adding more variables to the config file, making it less hard-coded. I'll probably eventually separate it out into several files for different categories making things more data driven, but I'm not there yet. I also discovered that preserved surface normals are not a given, which can lead to some really weird lighting situations.
Other than all that, I've done little more than experiment with the size of the boss, knowing it will become an important factor in scale later on. The scaling apparently also has effects on surface normals, which in turn contributes to the lighting problems.
I guess that sets me up for about 3 hours of work on this project so far. The new time budget is 500 hours, which is because I'm aiming for something fairly ambitious. I know it's probably another project that's doomed to failure, but aren't those ones the most fun?
--LazerBlade
Wednesday, June 8, 2011
Hungarian notation
Hungarian notation
Is the devil. Or not. Or maybe it's simply a neutral element like a ham and cheese sandwich. Meh, let's just write some philosophical and overly cynical prose about it. Oh, and those of you who aren't familiar with programming ideas or don't like reading about them, may get in line at the volcano entrance to my lair.
Hungarian notation originated way back in the day. It came from people who didn't like proper variable naming, and had no concept of which information was useful or merely a waste of space.
Hungarian notation is basically one of two systems where you prefix your variable names with extra info about them. So if your variable which is called "numCustomerSunglasses" was an integer, then by one system you would change it to "iNumCustomerSunglasses." By another system, you might classify it like so if it was used for stats analysis: "statNumCustomerSunglasses."
I am/was EXTREMELY opposed to Hungarian notation, and I noticed something in my code today:
if(pDebug)
{
...
debug = true;
}
This is a form of Hungarian notation, and a perfect example of why it's so foolish. I scanned my code and found that some version of myself has been accepting method parameters with the same names as class members accept with a 'p' before the name.
This is quite a bad idea for a number of reasons. Probably the biggest is that it breeds confusion and bugs over forgetting to put the 'p' there or forgetting to leave it off, and then not noticing whether or not it's there when you're reading through the code again later.
Perhaps the biggest problems with Hungarian notation come from what it's original root must have been. That root is taking things that should be spelled out in simple English, and reducing them to terse, hard to remember symbols which often must be looked up. This increases coding time, increases debugging time, and is merely the product of the dreams of those inexperienced in coding.
Really "good" Hungarian notation can get variable names like "rgfpBalance" spread all over your code. And I kid you not, thats a perfectly typical name by that system.
I have a bigger beef with "systems Hungarian", which is basically a worse version of a classic coding mistake. In typical code:
// an integer
int variable;
And in "systems Hungarian":
int iVariable;
As you can see, I hate Hungarian notation. This is probably the only occasion on which I have denied the right of balance. That's where I spend the better part of the post ranting about something, and then try to balance it out with some kind of optimistic statement about the pro's of what I'm ranting about. But this time I'm going to leave it without any form of balance, as I feel such behavior is inexcusable. And yes I'm getting it out of my code, so don't accuse me of being hypocritical.
--Lazerblade
Monday, June 6, 2011
Cyberspace - Almost a week later
So, I posted a few days back about cyberspace and cyberpunk visuals. I even included a nifty cyberspace visualization I threw together pretty quickly. I ended up liking it, and couldn't stop tweaking around with and improving it.
I finally pulled myself away from tweaking for a whole nine hours in order to render an animation for you:
I admit, the camera motion is pretty simple and a bit too fast, but I still like it. In fact, I'm thinking about contributing it to that web-show I mentioned I was making music for. I showed it to the rest of the crew and they're liking it, so it will probably evolve into the main cyberspace visualization of the show.
I can change the animation in a pinch, so I would only have render times to worry about. I could just wait for the very rare occurrence of the phenomenon where I get more than six or seven hours of sleep.
Yes, we still haven't released our first episode yet. Did I just say we? I'll probably be one of the main contributers, and I'm already an official part of the group. Be a little patient, links will come when the first episode it out.
I'll probably keep improving this, as there aren't any kind of little glowing things flying around. I should also add some kind of fish eye camera effects and some motion blur. That will probably make my already ridiculously over-sized composite network even bigger, but meh.
I finally pulled myself away from tweaking for a whole nine hours in order to render an animation for you:
I admit, the camera motion is pretty simple and a bit too fast, but I still like it. In fact, I'm thinking about contributing it to that web-show I mentioned I was making music for. I showed it to the rest of the crew and they're liking it, so it will probably evolve into the main cyberspace visualization of the show.
I can change the animation in a pinch, so I would only have render times to worry about. I could just wait for the very rare occurrence of the phenomenon where I get more than six or seven hours of sleep.
Yes, we still haven't released our first episode yet. Did I just say we? I'll probably be one of the main contributers, and I'm already an official part of the group. Be a little patient, links will come when the first episode it out.
I'll probably keep improving this, as there aren't any kind of little glowing things flying around. I should also add some kind of fish eye camera effects and some motion blur. That will probably make my already ridiculously over-sized composite network even bigger, but meh.
Friday, June 3, 2011
Infiltrator: reflecting and rethinking.
So, I started infiltrator back in March. It was destined to be an Ogre3D project in the style of Hovertank3D and Descent. Time passed, and things changed. I ended up dumping Ogre3D to stick with my Irrlicht based Ray3D engine. I threw away the non-vertical movement thing to go for a pure Descent style game. Then I showed a little progress for awhile, before updates for Infiltrator disappeared for over a month.
That was before, but now it's now, which isn't before. The sky is also a blueish color, not all goldfish are really gold colored, if you feed a baby goat rotten eggs it will barf pure uranium on you, and a handful of other obvious things.
Shrug.
Anyway, where was Infiltrator in that time? Did I forget and abandon it? What was that you heard about physics integration? What effect is this having on my time budget? Such questions as these which some of you surely have are the reason for this post.
So, why there were there no updates? Simple: Infiltrator wasn't progressing. There were two reasons for this. The first reason was that I started having boatload sized school chunks leaving very little time to spend on Infiltrator. This hasn't really worn off yet, and isn't likely to subside for awhile, so I'll have to get used to squeezing what little time I can in on weekends and such.
The other reason was that I had a really clever and sneaky programming problem. I decided to integrate physics using IrrBullet, which was apparently one of those things... You know, the kind where everyone gets it working using a totally different solution unique to their setup, and very few people have the same set of nightmare inducing problems. Yes, nightmare inducing, literally. But that's for another post. It took me awhile to make it work okay?
I will admit, that really killed my initial plan for a 250 hour time budget. Integrating physics alone probably took about fifty hours right off the top. That would put me at 78 hours, and I'm just getting started building the base for the game. I admit, a lot of that time went to wasted Ogre3D work and that physics integration fiasco, but part of that just goes to show that this is a way bigger project than I had originally thought or even planned.
All of these things led me to start rethinking Infiltrator. I will reassign a time budget, which will start at zero even though I already have some work done. I'm also rethinking the scope of the game. Things like whether or not I will take it to the point of integrating composite effects into Ray3D, how many levels I want and how complex they will be, whether or not I will be replacing some enemies with higher detailed ones, etc.
I'll get back with Infiltrator Season 2 part 1 once I have a little more to show. All I have right now is a really simple rigid body demo for the barebones physics integration I have. Once I channel this into the game and apply it usefully, or decide I don't need it and go on without physics, I will be ready to show some of the work.
Anyway, happy don't trip over a rotten onion and fall down the stairs ending up breaking your face on your neighbors autographed $5300 electric bass day.
--LazerBlade
Wednesday, June 1, 2011
Cyberpunk Visuals
How many of you have seen cyberpunk or cyberspace visuals in one form or another? A lot of you huh? Well, as a techno-geek, I'm here to over-analyze it for you. Let's say you want to have cyberspace in your game, or maybe you want to add that extra cyberpunk touch to the visuals. Maybe you just want a new desktop background. Whatever the case, I love this subject, so it should be fun to read. ;)
There are basically three kinds of cyberpunk visuals. The first, are cyberspace visuals. You have glowing things on top of black or near black, probably lots of other glowy things flying around. You can throw in some 0's and 1's for good measure, and maybe some assembler language. You can have big glowing towers, grids, circuit-board designs, or whatever else you want.
Some examples of cyberspace visuals:
Then you have urban visuals. These are basically demonstrations of industrialization, dystopian societies, and a post apocalyptic world. Common themes include Night time cities, places that look like they've been bombed out a hundred times over, huge buildings, and dark alley style places of the underworld.
Examples:
Even after urban visuals, you have cyborg visuals. These are here to express the ideas behind the combination of man and technology more directly. Cybernetic implants, people with wires hanging out of their heads, androids, and others are prominent here.
Examples:
Cyberpunk visuals aren't extremely strict however. They also seem to range from doing nothing but communicating ideas to being there only for the visual appeal. All in all, it's not that hard of a style to recreate. Naturally, cyberspace visuals are the easiest, as they contain no real world objects. Urban visuals are usually in the middle, needing a lot to be done, but not necessarily in extremely high detail. And cyborg visuals tend to be the hardest, especially if they are CG and even more so in real time. This is because of the huge amount of detail required.
I can even crank out some cyberspace visuals right now...
.
That took less than an hour. It was pretty simple really. I used gimp to draw me up a long string of zeros and ones, then slapped them onto a bunch of transparent flat quads. After that I took the schematic's I'd drawn up earlier and stuck them on a floor plain. I threw in some solid wireframe towers and a solid wireframe monkeyhead, and then was ready for post-processing effects. That was actually the hardest part, and if you don't believe me, then take a look at my composite network in blender:
See what I'm saying?
Anyway, duplicating cyberpunk visuals isn't that hard, and can be really fun. That said, if you're having trouble doing cyberpunk visuals, you can always start by trying to duplicate another cyberpunk scene. This way you'll learn a lot about how cyberpunk visuals work while getting ideas for things to use in your own creation.
As I implied, cyberpunk visuals are fairly loose. There isn't some set of rules that I check a scene with to decide whether or not it's cyberpunky. To quote cyberpunkreview about what loosely describes cyberpunk:
"Cyberpunk is about expressing (often dark) ideas about human nature, technology and their respective combination in the near future."
This is basically the same for cyberpunk visuals. Cyberpunk visuals are simply visual expressions of cyberpunk ideas.
Hm, I like that picture I made. I think it will be my new desktop background for awhile.
--LazerBlade
Subscribe to:
Posts (Atom)









