Validating a Blogspot template

The Yoboo valid XHTMLA couple of days ago I saw one of Garry Conn's posts related to tips about image positioning in a post. One issue that I expressed my opinion on was the fact that the ID attribute of an element needs to be unique on a web page. This is due to the fact that the page will not validate otherwise. Garry replied that he is not at all worried about validation issues, because they are irrelevant to SEO (Search Engine Optimization). What this means is that no matter how many errors a web page has, it will still be indexed and displayed in Search Engines as long as the bots can crawl it's content. I'm sure he's right about this and it's every webmasters choice if he should care about validation or not.

But that's not the reason behind this post. Garry also pointed out that this blog, my beloved "The Yoboo", was also not validating according to the W3C validator. In fact, the homepage had more than 400 errors. That disturbed a little because I'm one of those guys that do care about validation. And with that in mind I set off to fix things.

The first issue I encountered was the fact that this template used a XHTML Strict DOCTYPE. As stated on A List Apart: "a DOCTYPE (short for "document type declaration") informs the validator which version of (X)HTML you're using, and must appear at the very top of every web page. DOCTYPEs are a key component of compliant web pages: your markup and CSS won’t validate without them." Many of the errors were triggered by the fact that the template used an Strict DOCTYPE, rather than a Transitional one. Another way to say this would be: is was formatted as a Transitional XHTML, but declared a Strict DOCTYPE. No problem. This was easily fixed replacing the original declaration with:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

That apparently solved a lot of the validation errors. Now I was down to about 70 remaining. I started to fix the ones that repeated the most. One of them was "document type does not allow element 'p' here". This was caused by the fact that the body of a single post was defined by a P element(paragraph). And inside this paragraph there were several others which represented the header of the post, the content of the post and it's footer. According to the W3C standards, this was an error, so for a easy fix I replaced inside the template the paragraph elements with DIVs. I replaced the sections of the post also because I plan to use standard formatting in the future, rather that the way Blogger does things (I'm talking about the <BR> tags for separating paragraphs). So I also went to Settings in the Blogger Dashboard and under Formatting I've set the "Convert line breaks" option to "No". This of course means that I will need now to reedit all the posts and split them up in paragraphs. I'll do that some day.

After these modification there were only about 30 errors remaining. The problem with these is the fact that they're caused by the Blogspot engine itself. Due to some bad and reckless coding I had a lot of unescaped &'s. Most of them were caused by the blog Pager, the little thing that helps you get back and forward through posts. Because I wanted to get rid of all the errors, at least the ones on the front page, I commented the pager so it will not appear anymore. I'll decide if I'll place it back on the blog. Maybe by the time I do that, it will be valid XHTML.

A few more errors were caused by the fact that the Blog Achive was displayed using Hierarchy style. Switching that to "Flat List" solved the remaining of the errors so the homepage was validating. But I rather liked the Hierarchy style of displaying the archive so I hope that will be fixed as well.

After seeing the beautiful green bar I tried a few more things to make sure there are no more errors, but there were. Another issue arises with the fact that I've opted for inline comments. This creates an IFRAME element which again trows unescaped characters errors. But since I find this feature very useful, I'll let it pass.

And that's the way I managed to validate most of "The Yoboo". Who would have thought that a Blogger/Blogspot template would have so many problems? Of course there are other people that are complaining about these issues, but it seems there is no one there to listen to them. Oh well, at least my blog has the green light to some extent.

Mootools - my brain hurts

mootools logoI've been pretty busy the last few days trying to create a  website template. A special website, one that would provide users with a pleasant and unique experience. Well, at least unique. I don't know what I was thinking. It was a lot of work, seeing as I don't know very much about JavaScript (besides the basic functions) or the MooTools framework. Now I feel sorry I even tried to do something new.

Here's what my torment was all about. I wanted the user to be greeted by the main menu and that's all. Four big buttons on the front page, beautifully colored, Web 2.0 style. I heard somewhere (everywhere actually) that that's the way to go these days. All websites must be compatible with the Web 2.0 standards. Which is pretty stupid if you ask me, since there are no Web 2.0 standards. Several people have tried to define them, but there is no international organization that implemented them. From what I know at least. But let's carry on. The first page is loaded in an invisible container (div), so it can be indexed by the search engines. From the four big buttons, the user can access the main sections of the website. As soon as he/she clicks one of them the animation for the menu kicks in:

  • the buttons get smaller
  • they move to the top of the page. at the same time, the header or logo of the website moves to the left to make room for the incoming buttons
  • the invisible container loads the page that was requested by the user. If the user requested the first page (Home), the current content stays in place because it was already loaded
  • the container appears, but with a height of 0 pixels and gradually increases its size to the required height (this animation takes about 2 seconds)

And then you have a page as you would expect a web page to look. I thought this was great, but I wanted to take it a little bit further. So I added a similar resizing effect to the main container so that each time a user requests a new page, it would shrink to a height of 0px, load the page and then expand to the required height. And all of this was done using the MooTools framework. I could have used Adobe Flash and obtained the same effect, but nooo, I used MooTools. The advantage of this is that the pages are still indexed by search engines. All of them, since all links are in the HTML. "Good!" I said to myself. And then I added "You did a great job!". Had I only knew ...

The problems

I head on over to mootools.net to get the MooTools framework and get started on coding. Once there, I notice the new layout. They probably redecorated. Hit download, skip the text, fetch a full copy of MooTools. Start coding a few things to get in the mood. Five minutes later: "Drag is not defined!" I was like: "What do you mean?!" Head on back to the mootools.net and notice that the Drag class/library (?) needs to be downloaded separately. Apparently there were a few more changes, other than the layout. That's OK, grab all the libraries. Now we're cooking.

Not knowing to work too well with classes (shame on me) and not knowing anything about classes in MooTools, like any other learning eager individual, I went over to Google and started typing all my worries. Google, like a kind and sensible search engine, gave me all the links I needed to solve my problems. Of course, most of them were sending me to the official MooTools forums. Which are not there anymore. Apparently since the release of the 1.2 version of the framework. They were moved to Google Groups for more stability. Noticing that I can't find an example that I can use, I decided not to use classes. I don't really feel like learning anyway. So I did the things the old fashioned way: hard coding every little effect every time I needed it. Not at all nice, but I'll get back to it later.

The main issue with JavaScript is that some people disable it. That's their choise, can't do anything about it. But then I thought: if they have JavaScript disabled, they should still see the content and they should still be able to browse it. Well in theory, it is possible. I mean, MooTools just catches the click event and does something else instead of sending you directly to the page. So having JavaScript disabled should send you to the page, no? Well no. And I have no idea why. I guess it's something related to the way I coded the functions. But I've put that asides for the moment. I'll deal with it later.

After checking that my awesome page was working in both Mozilla Firefox (version 3.0) and the dreaded Internet Explorer 6, I thought about giving it a try from my mobile phone. I have a Nokia N81 8GB and I used the default Nokia Browser. Don't know what version, don't ask. Of course the page didn't work. I've seen the same thing happen as with Firefox with JavaScript disabled: couldn't even get past the front page, the one with the four big buttons. I decided this will be resolved, probably, when I'll fix the previous issue. Which is later.

A few more bugs in the code, both mine and the compressed version of MooTools, fixes, stitches, aches and pulled out hair. I'm now tired. But I got the thing working eventually. The code is not at all optimized, there are the errors I mentioned earlier (and probably a lot more) and by the time I finished, I got bored with the page loading animation. But it was a learning experience. It would have been a lot easier if the MooTools team would have set up a more detailed demo page, like the one from the 1.1 version. By the time I'll try something like this again, they probably will.

Lineage II or World of Warcraft - which is better?

Lineage 2 LogoThis is a question that puzzles me for a long time, although I already know the answer to it. But I won't reveal it just yet. The thing is that each one of these MMORPG (massive multiplayer online role playing game, for those of you that still are in doubt what this post is about) has it's own followers, or maybe dedicated worshipers in some cases. And both games have their own advantages and disadvantages compared to the other. So let me lay things out, from a personal point of view, of course.

First of all, I want to start out by saying this: I know Lineage II and World of Warcraft are not the only online games. I'm just talking about them because they touch the same market segment and they have some of the largest percentage of users. Besides, these are the ones that set the standard in all MMORPG games, and the rest just follow. That's my opinion anyway. And now for the comparison.

From a visual point of view

Putting the two face to face you immediately observe one huge difference in term of design. The world of Lineage II is a lot more close to reality than the one in WoW and the characters tend to look a lot more realistic. The buildings have a certain look that tends to mimic real life castles and towns. On the other hand, WoW has a more cartoonish look to it, The buildings and colors are not so dull, they are vivid. The characters are based on the ones from the famous Warcraft III, also from Blizzard. This difference between them continues throughout the entire world they depict and through the user interface. I guess it's a matter of preference here. Both of them have a certain beauty and fall together nicely.

From a player point of view

There are a lot of things to say here. I doubt I can remember all of them.

World of Warcraft LogoLet's start with the economics. Because both of these games are based on a subscription, the main currency is the online one. The two have a somewhat different way of the representing money, although the basic concept is the same. If in L2 the only currency is Adena (most likely derived from the name Aden, the main kingdom of Lineage 2), WoW goes for the concept of subdivision, which we all now. The smallest coin is the bronze one. One hundred bronze coins are equal to a silver coin and one hundred silver coins are equal to a Gold coin. Simple isn't it?

Another important aspect of an online game: the monsters. There's not much difference here. Sure, the names are different, they're in different places, they look different, but besides that they're practically the same. You still have zombies, wolfs, walking trees and other stuff like that. It's not much to tell here: you kill monsters, you gain experience and money/items and then you kill some more monsters.

Quests: as it would be expected, the quests are different. You can have two online games with identical quests. But of course, the rewards of the quest are the same: experience, items, money. One thing that is different between them and I particularly found useful was the fact that in WoW you can see right from the start of the quest what reward you will receive. That saved me a lot of time on worthless quests.

Races are a subject that I don't want to discuss. Both of the games have several races, each divided into classes and each class with it's own good and bad parts. Trying to compare the two would take ages and I doubt it's even possible, considering the fact that the worlds they live in are not identical.

From a performance point of view

I personally find that World of Warcraft runs a bit smoother than Lineage and I think part of the reason is the fact that the textures in Lineage are a lot more complex, thus harder to render. But I wouldn't bet on that, I'm not a game developer. Also, the sounds might make a difference, but not too much. I tend to believe that the major difference is in the engine used to power the game. Lineage 2 uses the Unreal game engine, while WoW uses it's own World of Warcraft Engine. But that tech stuff is beyond me.

Other resources

If you look around, I'm sure you'll find more information on this subject. Here are just a few of them returned at a quick Google search:

Conclusion

There are a lot of points that have not been discussed and I'm sure fans of either side have a lot of cool things that have not been pointed out here. Well people, I'm sorry, but I'm just too tired and just now I realize that you cannot compare these two. Both of their developers have done a great job in defining them as uniquely a possible and each one of them has it's own edge: like L2 has it's stunning graphics and WoW has it's huge user base.

So, now that we've reached the end of this post, which one do you prefer? Lineage 2 or World of Warcraft?

Divert Your Course

Divert your courseProbably anyone that uses an Instant Messaging service, like Yahoo! Messenger or MSN Messenger, knows about the fact that people share stuff like funny images or text, nice websites and anything else. You happen to come across something you like and you want to tell people about it so you just mass message everyone in your list. But I'm sure I don't have to explain to you how that works.

Today I received one such link, and here it is: Divert Your Course - moonbuggy. It's from a website called moonbuggy.org (don't ask me why, I haven't gotten that far). The most I can tell you about them is you can find all sort of funny or weird stories there. Stuff like these make your day just a little bit better. Besides the fact that this amused me, it is something that happens everyday. I don't mean ship captains asking buildings to move :). I'm talking about people getting too much power and abusing it. I'm not also referring to a specific nation, because people like that are found all over the world.

I guess it's just something with the mind of weak individuals. I'm not sure, I'm not a psychologist (boy oh boy, thats a tough word to spell). In any case, such situations have been depicted even in cartoons and movies. You could call it a template. All situations have a certain pattern they follow and it goes something like:

  • man has no power/respect and is undermined my colleagues/family
  • by a twist of faith man gets power (promotion, wins the lottery, receives an inheritance)
  • man immediately starts to use the power he gained (authority or money) to prove to the world that he is worthy of respect
  • soon man starts to abuse his power
  • in the end two things can happen:
    • man realizes the error of his ways, changes himself and helps people, then a stupid unrealistic ending where everyone stands around the fire, eats marshmallows and they laugh and smile at each other like idiots
    • man makes himself look like an idiot in front of the everyone

Of course, we can see in which category this particular case fits in. But no one can help it. If it weren't for such people, we wouldn't have funny things to read every once in a while.

By the way, today was not the way I expected to be either. It was yet another relaxing day. I'm starting to get used to this kind of "work". But I still think it's the silence before the storm.