<< | Next Archive>>

How to remove all useful comments from your blog

Since I implemented my own very simple Anti-Spam system on this blog - the one where you have to enter a specific word into the comment form when posting a comment - the amount of comments on each entry of this blog has dropped significantly. Yes, the spam is gone, yay. But also real, user written comments are not many anymore. It seems to be posting comments is now a bit too complicated? Hm...

Stupid, Non-Working Anti-Spam Mail Links getting out of hand

Recently, some companies and even individuals thought it might be clever to classify any incoming mail as spam, and return it to the sender instantly. The returned mail will then contain a a link to click in order to "unlock" that mail, so that the receiver will get it.

Sounds clever. But it doesn't work. If people using this kind of spam prevention system are trying for example to register in a forum, a board or similar, they usually get a mail by the forum, to confirm their email adress. And said mail will also be blocked. No one will ever click on that stupid link in the automatic "this might be spam!!" mail, in order to unlock it. So the mail adress will never be confirmed, and the user of such a system will not be able to take part in most forums and boards in the www.

Not sure who thought this would be a good idea. But recently, I've seen quite a few of such mails, being bounced off of the two internet forums I'm currently running. Dear anti-spam fanatic sys-admins: I'm not planing to spend my time clicking your stupid links, fixing your spam problem for you.

App signing and certificates - a PITA

When creating apps or updates of existing apps for the Mac App Store, there is one thing which really is annoying: Signing your apps. The process itself isn't difficult, its basically automatic. But setting up your build environment to correctly work for this is honestly a pain in the ass: You need to generate certificate requests, generate the right certificates from them, install them correctly in your system, and set your XCode projects up correctly to use them. Additionally, you need to do this multiple times Since I also do freelance work for other companies, I've done this so many times now, that every time I get a certificate related error message, I now have memorized what to do in case of which error. And you get a surprisingly high amount of different problems and errors from this part of your project.
Compare this to the simple signing process in the Google's Play Store, for Android apps: You only need to generate one key file, once. And it works for everything. It couldn't be easier. It's that easy that one of the product I am working on (yes, it's CopperCube) is now able to generate and sign android apps correctly, and users are loving the simplicity of that. Should I ever build in Mac App Store or iOS support into CopperCube, this will not only be a huge PITA for me, but also for the users, I guess. It would be nice if apple could simplify this process a bit in the future.

How I doubled Android 3D game scene quality with 4 lines of code

The feature to generate Android apps is new in CopperCube, and if you published an Android app with lots of textures, polygons and character data using CopperCube version 4.0, it was possible that you would get something like this instead of a working app:

This happened when the app was running out of memory. Huge scenes with lot of textures need a lot of memory. Imagine, a texture with 512x512 pixels, standard 32 bit depth per pixel takes not 1MB of memory as you would expect, but about 1.4MB of memory, because of all the mipmaps needed (= 1048576 + 262144 + 65536 + 16384 + 4096 + 1024 + 256 + 64 + 16 + 4). With lots of and even bigger textures, this gets very much quickly. You probably already have seen the CopperCube backyard demo scene (Flash or WebGL version):

Creating an android app from that would for example cause that app to crash. No wonder, it is a really big scene with 82 high resultion textures and 4 lightmaps, and additionally an animated 3D character walking in that scene which has 4000 polygons and 36 joints (which is an unneccessary high amount of joints, dear 3D artists, btw) and 2100 animation keys. But since I released CopperCube 4.0.1, even this one runs smoothly on an Android device:

Great, eh? In fact, Android apps generated by CopperCube now start up much faster and require about half the amount of memory needed. How did I manage to do that?
The short answer: Lazy texture loading. It's a very, very small and simple change to the rendering engine, but this causes a major memory bottleneck to go away, and causing a lot of apps to work nicely now.
When starting a game or 3D app, you ususally do this: But I've now changed this to the following: By this change the loading process of course is much faster, and even better: The textures get loaded later, when there isn't much other stuff at the same time in memory (like currently loaded and transformed other data), cirumventing the memory bottleneck. And should the app run out of memory again, then you are able to put some not recently used textures out into the trash and load them later in when they are used again, if ever, by the same process.

For the Android port of the CopperCube engine, this was a change of 4 lines of code. But apps now start about 4-10 times faster, and can handle about twice as many textures. Everything of course depending on the specific app. But it's a really nice step forward with very little effort. Sometimes its the simple things. :)