Category: Shackled


To morfik or to make things work

I think it’s about time I bitch about Morifk (www.morfik.com).

Morfik is a RAD (Rapid Application Development) tool, designed to make it easy to produce applications that reside on the net (in a browser to be accurate), allowing the programmer to do all the code in either Object Pascal, Visual Basic or C#. That idea is fine and if they got it right it would be a great thing to have. But, as you may have guesse already, Morfik doesn’t live up to it’s own promises.

The first thing you may notice when you start using Morfik is that you often have to resort to using custom built data extraction routines, unless you are doing stock webpages (in which case it would have been smarter to simply have made a template webpage and sell that) — if you do not use one  of the (few) standard layouts, you are simply not going to have any use for the database aware components of Morfik. This means using webmethods and rebuilding what is essentially the same routine over and over again (code sharing is not a strong point of Morfik).

Another thing you will soon notice is that the date type is handled differently on the server and in the browser — the (to me) most odd thing is that it’s the browser that handles dates the best. In the end I had to code my own date type that doesn’t make use of server or browser specific code (of course I still need a browser and a server implementation, but since they are identical, that’s a minor issue more than a problem).

The company behind Morfik calls Morfik the WebOS, but in reality it feels more like you’re writing software for a set of operating systems that have to communicate over the most complex channel they could think of — raw socket programming in C is less complex (not really, I’m just frustrated).

Another strangeness of morfik is how text is handled. You cannot do things like casting a character to an integer and then print the result (that is the numeric value of the character) — that means that I, for example, am not able to search and replace anything out side the basic English alphabet, since I have no idea what morfik is using nor what external datasources are using. Which brings me to another point. Morfik uses unicode. Or it claims to do. Or that is, Morfik claims to be using unicode when it doesn’t claim not to do so. That is, Morfik doesn’t really do anything with unicode. In fact, Morfik doesn’t seem to be doing much really. If you try to print the danish letters ‘æ’, ‘ø’ or ‘å’ (or the capital equivelant) you get garbage — and since you have no idea what the numeric values are and (strangely) you cannot compare those letters with themselves once they have been outside of morfik, there is no way to replace them with the html codes for those letters (nor should you have to — morfik should just do things right). In order to replace these letters I had to copy the result of printing them a HTML page and use those results to search and replace all instances with the HTML codes for the letters — of course, this doesn’t work with Reports since they use an entirely different character set. In reports I can’t use either trick (casting or copying) to get it fixed.

These issues and problems are not related to the Morfik program though — the problems with the IDE are enough to make you cry. Random crashes, lock-ups and plain weirdness is abundant. For example, I often get an error message that says “Cannot copy to clipboard”, when I hit CTRL+X. The content is always copied but the original is never deleted. Also when viewing datatables (either internal or external) I often get no result at all, which locks up the database components of Morfik forcing me to shut down and restart the IDE to restore it.

I wish I could be allowed to do things in PHP. Sigh.

Fallout 3 sucks

Some of these points are known to about every single person who has every heard of Fallout 3 (and especially those who play it). It’s a rant with no purpose but me letting steam out.

I got a Playstation 3. Then I got a couple of games. I knew that Fallout 3 had been released for the Playstation 3, and while my stationary computer is more than capable of running Fallout 3 in terms of hardware, I do not have Windows installed (and no, it’s not an option to install it) — so I got Fallout 3 for Playstation 3. Now, I love the Playstation 3 and can’t wait for people to see what potential it has. The Cell is a kickass processor — read some technical docs on it, wikipedia is definitely not enough.

Before I got the game, I was quite nervous that I would be getting some crappy rip-of of the Fallout franchise so I decided to read some non-commercial reviews (that is by people who are not paid to write nice stories or are too biased towards crappy FPS games) and found two reviews which seemed to be by people who likes Fallout as much as I do. The most important quote from these reviews where

Fallout 3 is Oblivion with guns

Having never played Oblivion, I figured it would be an advancement from Morrowind (which I have played a bit of and kinda liked a bit), so I got the game (still rather nervous).

Now, when I got the game, I looked around in a few shops and found that I could get the PS3 version for 550 DKR (that’s danish kroner) or the Windows version for 450 DKR. Let’s just repeat that — 550 DKR, An increase of 22.22% from the Windows version, for a console where there has yet to be made a single illegal copy of a game This is important because illegal copies has been used time and time again as argumentation for inflating the price of video games (oddly enough only for Windows, never for other platforms), but still the  Playstation 3 version is the more expensive one. I would have expected the reverse to be true at best, at worst that the price was the same. Finally I managed to find a shop that gave me a discount so I only had to pay 500 DKR, but the standard price (actually, the only other price I found) is 550 DKR — which includes webshops. They would have given me a discount on the Windows version too, also at 50 DKR (which means the price difference is 25% (500/400)).

Booting the game, I find several fundamental flaws in how the game develops, the basic premises and mechanics and just about anything else. I did say I love Fallout, right? Well, I love Fallout so much, in fact, that I have given a great deal of thought to just why I love Fallout. I have completed Fallout, Fallout 2 and Fallout: Tactics (which is an excellent tactical game in it’s own right, but is not a Fallout sequal). It all come down to detail. See, in Fallout and Fallout 2 details are only important when they are important. The player is never forced to figure out some detail or play a mini-game unless it’s important. That’s what the character is there for. Instead, Fallout and Fallout 2 are about exploration and expanding your world. You explore a world, which should be completely void of life (since it’s been devastated by several very large nuclear detonation), but instead you find that the world is teeming with life (although rather absurd lifeforms). Oh, and the people in the world are really cooked. Please also note that guns where actually not that important in Fallout or Fallout 2 (though it often was to me). The game spent more time on exploration, dialog and related events than combat (at least it does when I play it). Dialog and quests where often complex and combat was simple.

On anther note, regarding the main character — in Fallout and Fallout 2, the main character is actually rather unimportant. In the first game the main character is picked at random to go out and find a new water chip and in the second game, it was planned for the main character to meet another chosen one, sent prior to the game starting. In Fallout 3, Three Dogs keeps talking about the main character and his father (who seems to be trying to save the world, at least), which brings me to yet another point. Fallout and Fallout 2 have such great stories because they are much smaller than the world, but the world contains a lot of similar sized stories — some stories in Fallout 2 can take as long as the main quest to complete, and can involve more complex dialog and world interaction than the main quest. In fact, the main quest in Fallout 2 can be done in about 30 minutes (with a bit of luck).

In Fallout 3, I find the reverse is true. I constantly have to play stupid mini-games (lockpicking, hacking), combat is almost constant and exploration is almost negligible and dialog is reduce to the most basic form. Combat on the other hand is complex and a shift has been made from turnbased to real time (V.A.T.S. is still real time) and now, players have to repair their equipment (which for some reason requires you to have two of the same type or an NPC which charges money). Fallout 3 is a first person shooter (possible the best one, but still, it’s a first person shooter). V.A.T.S. reduces some of the nastiness of playing action packed games on consoles so I’m not going to bash that too much. V.A.T.S. does have one very large and one minor flaw. The large flaw is damage to gear. In V.A:T.S. you hurt your weapons more than if you don’t use V.A.T.S. (but do more damage) the small one is that combat cannot be exclusively V.A.T.S., because Action Points do not replenish once a V.A.T.S. “round” is complete.

Let’s get back to the price issue again. Like I wrote, I paid 500 DKR for my copy for Playstation 3, paying 22-25% more for a game that cannot (yet) be copied illegally. But wait — that’s not all. I don’t get the same game as the Windows version. See, the Playstation 3 version doesn’t have support for keyboards or mice (which is an absolute must] for games like these), you cannot play multiplayer games, don’t get a G.E.C.K., and (likely) will never be able to use G.E.C.K. modules — that is, you pay more for than alternative versions, and get far far less. I’m not going to talk about bugs, since that’s a completely different issue. Software engineering is not easy and complications (especially for a completely new platform) are impossible to avoid — bugs will exist.

I think Bethesda did a few things wrong here. First of all, Fallout is Oblivion with guns. This, if true (I never played Oblivion), seems rather silly. Why not just make Oblivion with guns if that’s what they wanted? Fallout is not about guns and the game style of Morrowind (which I assume is copied to Oblivion) is not really suitable for the Fallout world. The nice graphics of Fallout 3 are in fact, also not really something that fits too well with the Fallout universe. Fallout and Fallout 2 could have had nice graphics and more realistic animations, but didn’t. I think the style of the graphics fits perfectly with the style of game found in Fallout and Fallout 2, but in Fallout 3, I find that they clash — there are way too many details and too little content.

In conclusion I’d say that Fallout 3 was not made by people who knows and plays Fallout, Fallout 2, or even Fallout: Tactics (which is more of a followup to Fallout 2 than Fallout 3 is).

After java 1.6 has been released and Sun has managed to get several programs running on the same virtual machine, I see a bit of problems brewing.

This shift is ofcourse a great boon in the benign programmers hands — he can save a few preciouse bytes in the main memory, if the user need the same program run more than once or the same class is loaded by more than one program (happens a lot). It does also allow more sinister purposes.

Suppose that I wanted to infect your machine whith a virus. Now, I don’t know anything about your machine other than you use some software that uses the Java 1.6 class library. I would then only have to write some “update” to this class library which contains viral code. The new code would then be called everytime, say, the java.lang.ArrayList class is used. This is something that happens quite a lot.

Now, ofcourse it would be very easy to get rid of this virus — just reinstall the JRE and you are back where you started. That is, unless ofcourse I included some decompiler in my virus, that would start scanning every java program you have and start including my source in the main method and neatly recompile it again. This would make it almost impossible for you to get rid of the virus again.

A lot of these things where possible in the 1.5 version of the class library and the old JVM from Sun. It’s just easier and faster to see the results now.

Follow

Get every new post delivered to your Inbox.