Categories
Geek / Technical General

Anti-spam Measures Taken

I recently talked about the huge amount of trackback and comment spam I’ve been receiving. I’ve added a WordPress plugin called Bot Check to prevent comment spam by requiring readers to enter a code from a random image in order to get comments submitted.

Trackback spam, on the other hand, might have to go through another plugin, if it exists. The Mod_Rewrite Trackback Spam Blocker would be great, but it isn’t compatible with WP1.2, which is what I am running.

Categories
General

Learning Kyra: Some Tidbits of Info

The Learning Kyra series to date:

  1. Learning Kyra
  2. Learning More Kyra
  3. Learning Kyra: Attack of the Clones
  4. Learning Kyra: Tiles and Z-Ordering
  5. Learning Kyra: Hit Detection

I’ve spent some time just reading through the documentation for SDL and Kyra. I’ve also tried to pick up what I can at Kyra’s forums on SourceForge.

For instance, GlDynArray has been removed from the library for the next update. I can substitute std::vector<> though, which for all intents and purposes means very little has changed except for a redirection/abstraction. For now, I need to use it when doing hit detection, but I shouldn’t rely on it for my own code.

I was thinking about the need for more complex animations and Actions for an individual sprite. For example, a sprite may have a standing animation. When you press the space bar, an attack animation should run, but I might not want it to loop over and over. Was I going to have to keep track of how many frames of animation there were for a given Action in order to make sure it doesn’t loop?

Nope! Turns out that Kyra’s KrSprite class has functions for determining the number of frames for an animation and for getting the current frame. Now I can do something like the following:


if ( theSprite->Frame() >= numFrames )
{
// then the ATTACKING animation is over and should change state
}

I also found that a sprite can clone itself. In my June GID, I had these fuzzy creatures multiplying, but I loaded in a resource from a file and created a sprite from the resource. I originally thought that I could optimize it by storing the resource to be used later, but I could further optimize by just using the Clone() function to create a new sprite. I could also use GetResource to get a pointer to the resource used by an existing sprite if I really needed it.

I want to work on some code to test what I’ve learned to see how well it works. I can get something substantial completed this week.

Categories
General

A Game I Will Never Make

I will never make a Texas Holdem Poker game. Ever.

Why? Because hundreds of trackback spam and comment spam just came through the past couple of days. One was for male impotency pills. The rest were for some online poker sites.

And if I do make a poker game, I would fear that people would assume that my company is the one behind all of the spam that I’m sure others also get. I don’t need the bad association.

Who can face themselves in the mirror knowing that they are making money by being so much of a nuisance? When these spams trickled it, they were manageable. Now I am afraid that if I don’t periodically check in a few times a day, I’ll be overrun. Luckily I manually approve these comments so that they don’t get published, but it is getting to be a lot of work.

Categories
General Linux Game Development

Fight Cancer; Donate for Research

I just found out that John Hall, former Loki worker and author of Programming Linux Games is fighting against stage IV (metastatic) Melanoma and is trying to raise money for cancer research. He is writing about his ordeal at http://overcode.yak.net/3.

PLEASE DONATE TO THE FIGHT AGAINST MELANOMA

Some friends and I have formed an American Cancer Society Relay for Life team called Team Melanoma. Our main goal is to raise money for cancer research. Please donate to our team through the following page:

http://www.acsevents.org/faf/r.asp?t=4&i=99915&u=99915-86454580

All money goes to the American Cancer Society. We’re asking for our donations to be used for melanoma research.

I haven’t donated to many charities in my life. I don’t exactly have an income that encourages donating to others. Still, thinking about it, I don’t currently have expenses that discourage donating to others either. Cancer is a disease that always affects “other” people, so when you find out that a bump or a tumor that you’ve been calling “no big deal” is actually a big deal, it is always a punch in the gut.

Please donate what you can.

Categories
General Personal Development

Hey, It’s What I’m Used To

I love reading Blog of Helios. To say that this guy is passionate about getting people to use a superior operating system is an understatement. He tends to get quite emotional when he finds that people come to him for help with computer problems that could have been prevented if they would just stop using Windows. Sometimes the stories are humorous.

His recent post, Only The Names Have Been Changed To Protect The, Uhh…Well, You Put A Name To It, is one example. He basically describes the story of “Richard” and his “garage”. His garage will be perfectly fine for months, then fall apart. And he tries to build it again. Using the same faulty parts. Every time. People easily break into it. The garage producer tries to sell security and locks afterwards.

Helios shows him his own garage. It has great uptime. It hasn’t crashed. He admits that someone probably could break into it if they were incredibly determined, but it is so secure that it deters most people from trying too hard. So when Helios offers to help Richard build a secure and stable garage, what does Richard do? He declines, citing:

I know my kind of garage. I mean, I’ve had this kind of garage for years and I don’t mind paying for it even if it means all the maintenance hassles. It’s just what I’m used to.

Obviously, Helios is talking about people who insist on using Windows even though they know what problems come with it. But this story also describes people who won’t try to accomplish their goals.

“I’ve worked this job for years. I can’t just quit. I actually like it here, even if there are some problems.”
“I’d love to get in shape, but I’m not that bad anyways. A little meat on my bones is good, right?”
“It’s so hard to quit smoking. Besides, we’re all going to die anyway. What difference does it make?”

In so many situations, a person will easily complain about his/her lot in life. At the same time, this person will make excuses to avoid making any changes to make life better. How many times have you tried to justify your inaction? Are things too hard to do? Too boring? Are you afraid of losing stability, even while complaining about a lack of stability? Are you afraid of what other people might think of you? Are you afraid of what you think of yourself?

When you find yourself wishing things were better, stop and think about what it is that would actually make it better. Wishing you had more money isn’t very good though. You need to be clear about your intentions. Wanting enough money to pay for the new house you’ve always wanted is much better than just vaguely wanting more money.

Once you know what your problem actually is, you can work to solve it. Clarity is incredibly important. Vague, wishy-washy goals aren’t goals at all. They seem to promote a sense of helplessness. When you say to yourself things like, “Oh, if only I had more time” or “I could do it if I wanted to” or “Why bother doing it since I’m just going to do a bad job anyway”, then you are only hurting yourself. You are convincing yourself that you will never accomplish anything, and then it becomes a self-fulfilling prophecy.

So many people get upset when they get a virus or when Windows corrupts their file system. But they just reload and try again. And again. And again. “Macs are too expensive.” “Linux is too hard and command-line-ish for me.” “Hey, it’s what I’m used to.”

It’s what I’m used to. Whether it involves migrating from an one operating system to another or migrating from one way of living to another, you are making a choice. When you choose the familiar over the strange but better, what does that say about you? What do your excuses say about you?

When you realize that the excuses you make are just a flimsy defense against the unknown, you can take charge of your own life. You can get that job. You can live a healthier lifestyle. You can have better relationships. You can do anything because you know that it is up to you to do so. Feeble excuses and mediocre expectations are your enemies. Understand why you have them, and then defeat them.

Categories
General Politics/Government

Legally Blog

I found out that the EFF has published a Legal Guide for Bloggers.

Whether you’re a newly minted blogger or a relative old-timer, you’ve been seeing more and more stories pop up every day about bloggers getting in trouble for what they post.

The difference between you and the reporter at your local newspaper is that in many cases, you may not have the benefit of training or resources to help you determine whether what you’re doing is legal. And on top of that, sometimes knowing the law doesn’t help – in many cases it was written for traditional journalists, and the courts haven’t yet decided how it applies to bloggers.

But here’s the important part: None of this should stop you from blogging. Freedom of speech is the foundation of a functioning democracy, and Internet bullies shouldn’t use the law to stifle legitimate free expression. That’s why EFF created this guide, compiling a number of FAQs designed to help you understand your rights and, if necessary, defend your freedom.

A great guide, especially for people who aren’t supposed to be getting paid to blog but do. B-)

Categories
Geek / Technical General

Wikis and Collective Knowledge

Wikis are great resources for collective knowledge. Wikis are counter to the culture in which copyright and patent laws encourage scarcity and “mine vs yours” debates. When everyone in the world is involved in a project, you would think it would break down, but they don’t. You would think that defacement would be a huge problem, but it isn’t. Most defacements are caught within minutes on Wikipedia, for instance. Anyone can make changes, but anyone can revert changes as well.

Wikis are great because anyone can make changes. Something missing? Add it! Spot an error? Fix it yourself! It’s open source hacking, but you don’t have to know how to program to participate. You just have to know how to write. It’s been used to document things publicly, such as software projects, but it is also used privately. Supposedly The New York Times used an internal Wiki for its staff.

I’ve contributed to a few Wikis, and I know more changes have been made since then by others. Post a comment and let me know what your favorite Wikis are!

General wikis:
Wikipedia: the free, online encyclopedia
Wike-Wiki: documentation on using Wine
Wiki Science: a Wiki about Wikis?
A Wiki in the Desert: about the game A Tale in the Desert

Game Dev:
Game Programming Wiki
Indie Wiki
Game Programmer’s Wiki
PixelateWiki
UnrealWiki: about the Unreal Engine

Programming:
GCC Wiki: about the Gnu Compiler Collection

Technical:
KDE Wiki: about the popular, open source desktop
Gentoo Linux Wiki: all about the popular Gnu/Linux distro
Linuxquestions.org Wiki: learn all about Linux

Categories
General Personal Development

Barriers to Success

Top Barriers Limiting You From Your Dream Job is an article that is making its way around the blogs. It’s a good reminder that it is very easy to make excuses for not accomplishing anything. Lack of time, fear of change, obligations, and the fear of being wrong are among the 10 items listed.

I really wish that I had learned years ago that “I didn’t have enough time” is not a valid excuse. Today I know that a lack of time isn’t really a lack. Every day has 24 hours. Every day is the same. If I didn’t have time to do something specific, the problem is more about my lack of committment and action plan than about the lack of a 25th hour. I didn’t really do a lot of game development these past two weeks. Is it because time went by quicker? No, it is because I let other things take up the time I would normally dedicate to development. Playing Wizardry 8, for instance. B-)

On another note, the human imagination is amazing. As children, we used the imagination to play games or pretend to be something bigger than we are. We’re super heroes! We’re firefighters! We’re saving the princess! Making the world a better and safer place!

As adults, most people use their imagination to worry. It’s always used to worry about the negative consequences. Imagination is rarely used to explore opportunities. I think that the fear of being wrong is just another symptom of the problems of “acting your age”.

Today, there are so many paths to success. Allowing any of these 10 barriers to prevent you from being great would be a tragedy.

Categories
General

Open Source Business Models

Forbes.com’s article “The Open Source Heretic” is about Larry McVoy, the CEO of Bitmover, and his comments on how open source business models are not sustainable.

Bitmover makes BitKeeper, a version control system system ideal for distributed developers. The Linux kernel currently uses it, and it has been given to the open source community to use free of charge. Until now. Apparently some developers wrote add-ons for the product, but doing so is in violation of the licensing terms. After arguing with some members of the development group, McVoy decided that he wouldn’t provide free support anymore. For more info, see Red Herring’s “An End to Free Linux Support”.

Anyway, McVoy made a lot of comments in the Forbes article regarding open source business models. Nothing truly innovative comes from it. If you take away the hardware companies that are funding most open source developers, the model fails. He can’t think of any way that open source can fund itself…

And though open source software may be “free,” sometimes you get what you pay for, McVoy says. “Open source software is like handing you a doctor’s bag and the architectural plans for a hospital and saying, ‘Hey dude, if you have a heart attack, here are all the tools you need–and it’s free,'” McVoy says. “I’d rather pay someone to take care of me.”

Oh! Oh wait! What’s this?! One of those business models! McVoy, you’re a genius! Since most people don’t give a damn about the code, and they don’t care to learn, and if they are willing to PAY for someone else to do it for them, THAT’s a business model. There is a demand, and you supply it. Huh. Who’d have thunk it?

I didn’t like how the Forbes article kept insinuating that “open source” means you have to give away your code for no cost. For instance, I use Debian as my distro of choice, and I use many of the packages. I only get the source for something when I explicitly ask for it. With Debian and most distros, I can get the source independent of the binary, but legally Debian doesn’t have to provide the source unless they provided me a binary for code under the GPL.

There are other business models. Dual licensing works wonders. Just ask Trolltech about their Qt library. Or id, which gives away the source to their old game engines and yet doesn’t find people trying to redistribute the original and proprietary Doom game data with the source code. There are embedded devices running open source, and I’m sure those hardware manufacturers aren’t too keen on going back to running proprietary and expensive operating systems. Zope was way more successful after the source was released than before it.

Support. Consulting. Custom development. Web services. Hosting. For some reason these are supposed to be the exclusive domain of software that is not open or Free? Right.

Once again, “FOSS” is not mutually exclusive with “commercial. “McVoy understands open source as well as anyone on the planet”, according to the Forbes article because his non-open source was used by many open source developers. While it is possible for someone who is against FOSS business models to be an expert on it, I’m a bit skeptical. Time and time again we’ve found that Coca-Cola isn’t exactly an expert on drinking patterns when they release drinks like “New! Lemon-Lime-Grapefruit-Extreme-Diet Coke”, and yet lots of soft drink drinkers use their products.

Categories
Geek / Technical General

Support for Gnu/Linux Systems

People who use Windows have a couple of huge advantages over people who use Gnu/Linux: games and hardware/service support.

Defeating the no-help desk is an article on Newsforge that talks about how to get around tech support that isn’t helpful if you run something other than what is explicitly supported.

What you should never reveal

Many call centers bill by the call, so they are focused on the number of calls they complete, not the number of problems solved or the degree to which customers are satisfied. In these situations, the phone support person you’re calling has one duty: to get you off the phone as fast as possible without breaking the rules. There may not be as much concern for whether your problem is solved as you’d like. That means that the support person’s first strategy may be to find a reason why he cannot help you. If so, your response should be to eliminate every reason that he might have to end the call.

I’ve worked part-time at a help desk for a few years. In the beginning the goal was to solve problems. Near the end of my employment I was told by someone that the new goal was to get off the phone within two minutes. I wasn’t told in an official way, so I didn’t pay attention to it. What I found was that I was making a lot of people happy by actually solving their problems, especially after others might have gotten them off the phone fairly quickly.

But this post is not about poor service. This post is about support issues when running Gnu/Linux.

A lot of companies have a policy of not supporting anything but users running Windows and maybe Mac OS X. Sometimes this policy makes sense, such as ActiveX controls or DirectX issues. Fine.

How about ISPs? They provide a network connection, and NOTHING about the operating system you use should matter. Yet if you don’t run exactly what they require, you’re out of luck. In my area, I had a choice between cable and two DSL providers. I asked questions. The general idea:

Cable company: “We offer one package. You can use one computer. It must run Windows.”
Local phone company’s DSL: “We offer PPPoE, so it isn’t always on, you must login to use it each time, and we require you to run Windows.”
Speakeasy DSL: “We give you a network connection. So long as it isn’t illegal, you can do whatever you want with it.”

Speakeasy was way more expensive than either of the other options. I went with Speakeasy anyway. I don’t have to pay extra for each machine on my network. I don’t have to pretend to be using a different OS. I don’t have to lie. I also get very knowledgeable tech support whenever something goes wrong. When I move into a new place, I am making damn sure I get Speakeasy again.

Similarly, if hardware fails, the fact that I am using Gnu/Linux shouldn’t matter. A bad hard drive is a bad hard drive. A fried motherboard or CPU is just that. No, I highly doubt that the fact I was running Firefox instead of IE matters. I don’t think that Gnu/Linux use prevents someone from replacing the CD drive. At this point, drivers don’t matter. The fact you don’t support the use of the device under Gnu/Linux doesn’t matter. Imagine telling someone using Windows that a failed hard drive can’t be supported because Service Pack 2 isn’t supported or the use of non-Microsoft products on the system voids the service support contract.

Well, in that case, there might be enough people that think that they have no choice in the matter and give up. They’re used to it by now. People have been conditioned to be afraid of the computer. If something goes wrong, they are conditioned to believe that it is their fault and nothing can be done. “We don’t support it” is simply translated as “Do exactly as we say or else you lose all of your photos and term papers!!”

I like computers. I am not intimidated by technology. I made sure I was knowledgeable enough to have a choice. I didn’t like the idea of Microsoft’s Activation, so I made Gnu/Linux my main operating system. These days it is easier than ever for people to do this switch, especially with distros like Knoppix, Ubuntu, and others. Unfortunately, “we don’t support it” forces people to stay with an otherwise lacking system like Windows. “My digital camera won’t on Gnu/Linux?” “I just paid $300 for this printer and there are no drivers for it?!” “I have to run Windows just to check my email?!?”

So there are a few options to get support:

  • Keep Windows around, either on a second machine or a dual boot configuration.
  • Lie about what you’re using, requiring that you’re knowledgeable.
  • Not use the service or hardware.

Some people find one or more of the options unbearable. Hardcore Free Software people wouldn’t want to use Windows nor would they want to lie about what they use. Others would be hard pressed to do without the service or hardware. Either way, everyone loses.