<<Previous Archive | Next Archive>>

Should I watch Road to Guantanamo?

Tomorrow the movie The Road to Guantanamo will start to be shown here in Austria. And I don't really know if I should watch it. The problem: I already was shocked by the movie preview of this one shown before the Da Vinci Code which I watched last week. And this might not be a good combination together with my already really bad opinion about the U.S. politics (you know, not because they are ignoring human rights, torturing and kidnapping people, doing massacres in Irak like in Vietnam before but also because they are openly destroying our environment, invading countries with officially forged arguments etc.) I know that movie isn't objective, but hey - all that war propaganda and the rubbish we get to see on CNN and told by the politicans isn't either. So maybe I should give it a try.
I am also wondering if people in the U.S. are watching that movie. And if so, what will they do? Nothing as usual?
Two shocking related news: In Britain, they arrested and questioned the actors of that movie under the pretext of anti terror laws some months ago. Second: Currently, 75 prisioners in Guantanamo are staging a hunger strike and the commander of that detainment camp is telling that this is a known technique of Al-Kaida. Huh? Speechless.



Editor progress week 8 - Textures & new movement tools

Yes, I know, I should stop posting this stuff every week, but this program is in the beginning, and every time I work a bit on it there is a new nice feature to show, and it is fun to share it. :)

The first obvious new feature is a texture browser, it shows all loaded textures and makes it possible to select them. It is able to display textures in multiple rows and columns automaticly and scales them to fit into the window. There is currently no way to set the selected texture into a material or onto an object, but I'm going to add this soon.
Another bigger change: I rewrote the movement, scale and rotation tools completely. As you can see on the shot - the red box is selected - it now works similar to Blender or Maya. After playing around a lot with the old tools I noticed that it is easier this way to manipulate the scene.
And a last note: Several people asked me about that tool, here are some answers: The name of the editor displayed on the window is just a placeholder, I have no name for it yet. Designing: I simply hand code everything, I don't use any editor for it. Beta test: Sure, planned. As soon as it is usable, but this will take still some months or at least weeks. Purpose: Test tool for Irrlicht, Scenegraph editor, item placer. Vertex/Polygon editing: Maybe later. Plugins: Sure.



The read-only blog phenomenon

You are blogger and nobody is commenting your articles and posts? Feeling a bit ignored, lonely and confused because of this? Are you really that boring? Well, I don't think so, you're not alone. I didn't find any statistics, but I estimate that only about 0.1% of all blog readers will ever comment blog entries. Maybe this is how our society works, maybe people are too lazy to type their opinion, and maybe they think they've got no opinion, or none important at all.
Here is some news for you, readers: Bloggers really LOVE comments. Write whatever you want, even the most stupid thing you can think of, it's great for bloggers to read other thoughts and opinions on their blogs and in this way it is like a small reward.
Some weeks ago I noticed that when I was telling some of my experiences or ideas to people I didn't know before or didn't see for a long time and they sometimes would interrupt me with the words "I know, I read your blog", which kind of surprised me. After this I was ranting in this blog about the fact that nearly nobody of the average 500 (WOW!, btw) visitors each day is commenting, and funnily this helped a bit, people are now writing comments. Thanks a lot for that.
So, dear desperate commentless blogger: Keep on blogging. They'll read it, they simply just don't have the idea that a comment would be nice.



Web 2.0

I never thought it was a good idea to name the recently hyped AJAX web development technique 'Web 2.0'. In my opinion it is useful for some very few toy applications like maybe flickr or maps.google.com and helps improving web services, but I don't think that AJAX is that revolutionary to claim that this will be the foundation of a new web area. Did you ever really think of editing letters or pictures via a website? Or did you ever try out live.com? It's horrible, a user interface nightmare. Ok, maybe the technique still has to evolve a bit and browsers are not prepared for it yet.
O'Reilly recently trademarked (servicemarked? whatever) the name 'Web 2.0' for use in their conference names and is sueing people using it. Maybe at least the name Web 2.0 will disappear now slowly and people will use a more adeqate name for it. Ok, I doubt it, but at least I may be allowed to hope. :)



Editor progress week 7 - mixing GDI, OpenGL and D3D

Again, I made some very small progress with the editor I'm writing. It now looks like this:

The most interesting new thing is the material editor tab to the left. It works just like the property window but has some additional features, for example a control which shows the 4 textures of the currently selected material parameter entry (an SMaterial structure for those familiar with Irrlicht). This new control is quite special: Because I didn't want to need to copy texture data from the 3D device into main memory, I simply draw that control using the 3D device. And in addition, I'm mixing drawing here with the GDI, the black border and the separators are drawn using the Windows graphics device interface, later I'm also going to show some text on it. I think some other editors are doing this in a similar way, for example Maya or the Unreal Level editor.



Password: Ficken

Access data of about 100000 users of an online dating service have been revealed, it is not known how exactly. Ok, this happens from time to time. The funny thing about it: Heise.de analyzed the passwords of the users and found out that the most used pw was '123456'. Pretty creative, eh? But more interesting: The second most used password was: 'ficken' (=german, to fuck). 404 users used this one. :)



Creating your own allocators in C++ is fun

...especially when using VisualStudio 6 to do this:
Warnung C4786: 'irr::core::array<irr::core::string<char,
irr::core::irrAllocator<char> >,irr::core::irrAllocator
<irr::core::string<char,irr::core::irrAllocator<char> > >>
::array<irr::core::string<char,irr::core::irrAllocator<char> >,
irr::core::irrAllocator<irr::core::string<char,irr::core::
irrAllocator<char> > > >'
: Bezeichner wurde auf '255' Zeichen in den
Debug-Informationen verkürzt
Meaning that it truncated debug information, just as it does when compiling STL stuff too sometimes. And yes, I've got a german version of VisualStudio 6. :) Nice that someone invented #pragma warning's. :) But don't be shocked, no, I'm not using VS6 to develop that stuff, I just checked all compilers including gcc if it works at all.



Global warming

Isn't it forbidden to produce bullshit like that? This one is even worse. OMFG. Well, at least they don't try to relate global warming to terrorism. (But remember, the global average temperature IS related to the approximate number of pirates.)



No, you won't get any T*MB RAIDER N*DE PATCHES from here

How much fun is it to play T*mb Raider with a nacked Lara Croft? Must be a lot of fun, according to my website statistics. About every quarter hour somebody is visting irrlicht3d.org because he searched for 'T*mb Raider Legend N*ude Patch' or something similar. Irrlicht3d.org is on the first or the second page of the search results, of various popular search engines [also depending on which version of the engine you are looking (.es, .co.uk, nl, .de, .com, etc)]. Hurray.
Deleting the entry which leads them here? That would be boring. :) Also, maybe it would't help at all, search engines can be like elephants.



Small tip for Opera users

After I've converted some people to use Opera, most of them asked me how to set up the windows so that surfing is more fun. I.e. just like I configured that browser, with the bookmarks to the left and without that senseless space wasting toolbar:

That's really a bit tricky, maybe they'll improve this in a newer version. Currently, you have to do this:

Select Tools -> Appearence. Choose the Toolbars tab. Click on that tool bar and choose 'off' as on the screenshot. Done.



Links updated

Updated some entries of the 'Blogs I read' section below. There are more blogs I read, but these are updated regularly. :)



Allocators and what they do

If you are a C++ programmer, you might have used the STL already. And if so, you might have come to a point where you saw classes named Allocators. In short, those simply are objects wrapping new() and delete().
Why would you need such a thing? You can do several useful thing with that, for example optimizing the speed of your containers by using some sophisticated allocation scheme. Or even better: Preventing that your application crashes at certain points, when you are using template containers through different modules, like different .exe and .dll files. Simple example:

In this sequence diagram above, a program named main.exe is asking a module named Irrlicht.dll the return some text. Irrlicht.dll is doing this by creating a string object, which then allocates some internal buffer to store the characters. The string objects is returned to main.exe and then destroyed afterwards to free the allocated memory holding the strings characters. The problem: Because string is a template object, the delete() call is done inline for the heap of the main.exe. But because the memory has been allocated in the irrlicht.dll heap before and not the main.exe heap, the application will crash. That's not nice at all. Solution:

The difference is obvious: The string is not allocating its memory by itself but delegates this to an Allocator. This class is able to allocate and deallocate the memory from the right heap, and the container won't crash anymore. Really simple.
Last week I implemented this for the most important Irrlicht containers with the result that they now work independently from the heap where they have been created. And the concept of Allocator objects really is useful: Because at some places of Irrlicht you can be sure that a container never will get used in another heap, I was able to write a second Allocator object which ignores heaps and can allocate memory a bit faster. (Of course with the constraint that it never will be used in another heap, otherwise it would crash.)
I never had problems with Irrlicht containers and different heaps before in programs I wrote, but because the Editor I'm currently writing is exchanging a lot of data with Irrlicht it has become necessary. Sorry that this took so long. :)
(BTW: I created the diagrams with UModel 2006, Altova's UML tool.)



Editor Progress Week 6

This week I invested my time in one of my favorite tasks when creating GUI applications: Drawing icons. I absolutely suck as artist. So I sat down for several hours and drew about a dozen icons. I hope they are ok, but they could be improved for sure. They should represent some of the most important scene nodes of Irrlicht and appear in the toolbar, in the scene graph explorer, and I hope later in the menu as well:

Other tasks completed this week are the creation of a scene node factory mechanism inside Irrlicht, making it easily possible to create all those scene node types at runtime (useful for the toolbar or when loading irrlicht scenes from files) and extend Irrlicht with new ones. And I added allocators - a long user demanded feature for all irrlicht template containers (I think I'll blog shortly about this in the next few days).
And today I thought about adding some more file importers. I know, Irrlicht already is capable of importing 12 different 3D file formats, but some users already contributed some new useful ones, and I would like to add one or two other popular formats. Or maybe improve the COLLADA loader a bit. Lets see.



RIP Rockstar Vienna

Rockstar Vienna is dead. A coworker told me this morning, but I couldn't believe it, until I read Jurie's blog post this evening. It's a bit shocking, especially because I know several people working there, but the most shocking thing is how they did it. Looks like none of the employees knew this and they have been dismissed by security guards. Strange. Also, this will have great influence on the Vienna game development scene. I hope not only bad ones, but I fear.
Ahyes. What a *coincidence* that this happened coincidentely with the E3.



I'm a spammer

According to my ISP, I am a spammer. They are accusing me of sending out tons of mails, and if I don't stop, they will cut my internet connection. the mail looked like that:

Sehr geehrter Kunde,

Uns liegen Aufzeichnungen vor, die belegen, dass von Ihrer IP-Adresse aus elektronische Post als Massensendung oder zu Werbezwecken verschickt wurde. Da eine solche Handlung gegen unsere Nutzungsbedinungen (http://subscriber.chello.at/support/fair_use_policy.html#email) und geltendes Recht verstoesst, moechten wir Sie bitten in Zukunft davon Abstand zu nehmen.

Sollten sich derartige Vorfaelle wiederholen oder gar haeufen, koennten wir uns gezwungen sehen Ihren Versendezugang ueber die chello-Server bzw. je nach Schwere sogar Ihren Anschluss still zu legen. (....snip)

Uh. I really didn't spam anyone. The only possibility is that a spam bot infected my PC. But I really didn't find one, and I cannot imagine how this could have happened, having all security patches installed, using a (stupid) router, firewalls, alternative browsers and other stuff like this. Hm. What now? Reinstall windows?



This is my blog

For those who didn't know: This is my blog. My own very personal small piece of the www. I am blogging here whatever comes to my mind. If you don't like it, just don't read this blog. Simple as that. :)



Editor Progress Week 5

This week I didn't make much progress with the editor. At least you don't see anything new, most changes and additions happened under the hood. The only visible new feature is this:

It's the property window. It already works, and properties of any scene node can be read and changed with this. Pretty boring, right? But the cool thing about it: Everything is done automaticly now. I don't have to code reading and changing methods for all properties of every single scene node type now. I simply implemented a generic, pretty powerful interface for accessing and changing properties of Irrlicht objects. This interface gives access to the attributes of every scene node. Useful for scripting languages, debuggers, xml serialization - or a property window of an editor. Nice. :)



Bush Go Home

I just requested vaction, for june 21th. That's when a war criminal will come to visit Vienna, Austria. So I will have time to participate in the demonstrations. I think there is no better way to show our government, the EU, and the world what really a lot of people think of this guy and his politics. And that we should stop supporting it.



Converted to Opera

Looks like I'm a perfect missionary, converted another soul to opera. Yay. But of course, that browser isn't perfect either. It's just software after all. And in this case, it is written in C++ and with Visual Studio, as I just 'discovered':

Yep, they can be tricky, those pure virtual methods. You really don't expect an objects vtable to change when it is destructed. Or who knows how they managed to create that bug.



Direct Physics

From a job page at microsoft.com:

The Windows Graphics and Gaming Technology group is looking for a software design engineer to join a growing team responsible for developing Direct Physics

Direct Physics? Nice. The death for physics middleware?



Migrating from C# to C++, and from Windows.Forms to wxWidgets

During the last 4 weeks, I started to write a small 3D editor. I started it in C#, using Irrlicht.NET and Windows.Forms for the UI. But three days ago, I decided that it would be better to stop development and restart it with C++ and wxWidgets, before it would be too advanced. The main reason behind this decision was that it would be simpler to improve Irrlicht simultaneous with the Editor, and easier to try out different approaches to new features, because writing everything in C++ removes the need to write and use wrapper code in managed C++. So I sat down and ported - or better - completely rewrote the editor from scratch. This is the result:

A simple 3D editor, with nearly the same functionality, once written in C# and once in C++

There are small differences between these two versions, for example some toolbar icons or menu entries are still missing, and the docking controls look a bit different due to the completely unrelated used docking frameworks, but everything works and is usable. It is quite interesting to compare the results of this work. For example, the common myth (which I believed too, until now) that you are developing applications faster with C# is now dead for me. You cannot compare the development time of these editors (about 32 hours for the C# version and about 5 for the C++ version) because a lot of user interface research went into the first one. But you can compare amount of code: The C#/windows.forms editor needs about 70 KB of code, while C++/wxWidgets only needs 36 KBytes. Thats quite a difference. And interestingly, the code does exactly the same on both sides, I'm using libraries for the same stuff in both versions.

And there is another interesting thing: The C++/wxWidgets version is way faster. The C++ application starts up instantly (C# version always needs some seconds), all views and trees update faster, moving of windows is faster (repainting 3D stuff) and I even have the subjective impression that clicking buttons is presenting results faster. So now, where is the advatage of C# again? I'm a C# fan, but now a bit disillusioned. But who knows, maybe C# just is a bit slower when it works with mixed mode assemblies.



Infectious

If blogging was an illness, it would by highly infectious. New blog, gedankensplitter. Looking forward to see more posts.