Navarr's Tech Side The Technical Side of my Life

4Apr/102

Making Google Analytics Work in XHTML

I was moving my website, Google Voice for Outlook, over from HTML5 to XHTML5 today, and as soon as I did the basic content negotiation filters in PHP so that it would send the appropriate headers if the client supported XHTML as well as only outputting the <?xml if the client supported XHTML, I checked my developer tools to find a JavaScript error.  It was Google Analytics, of course.  document.write doesn’t exist in XHTML, after all.

The fix was simple, replace the current four line inclusion code with:

<script type="text/javascript">
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	var script = document.createElement("script");
	script.src = gaJsHost + "google-analytics.com/ga.js";
	script.type = "text/javascript";
	document.getElementsByTagName("head")[0].appendChild(script);
</script>

This will work fine, unless of course you have no head tag.  In which case you should replace getElementsByTagName(“head”) with getElementsByTagName(“html”).

2Feb/101

Needed in (X)HTML 5 – An extension to the Meta Tag

I was thinking today, while reading an article about redirect – that there is currently no way to accurately and semantically tell a user/bot that a web page is located somewhere else when you only have access to static (X)HTML files.  However, there is a workaround a lot of people use that dampens usability, and there is an attribute whose name would seem to imply that a way to do it should be possible.

By this of course, I’m referring to <meta http-equiv="" />.

Currently, people wanting to relocate their web pages rely on an older value to this tag that seems to have been originally designed for moving one person from one page to another in a set increment of time:

<meta http-equiv="refresh" content="0;URL=http://domain.tld/location" />

This doesn’t appear to be what this value should be used for, and has very negative consequences for search engines and parsers.  Instead, don’t you think we should be using http-equiv to its full potential?

To this, I propose the addition of <meta http-equiv="location" />, to properly match the HTTP Header for redirection.

I think there should be two ways to use this:

<meta http-equiv="location" content="http://domain.tld/location" /> and

<meta http-equiv="location" content="301;http://domain.tld/location" />.

Obviously, the second example gives us both a *three digit* HTTP Code, and the URL for redirection.  Since HTTP codes are only three numbers (though in the future may be greater digits) there still should not be any problem.

Tagged as: , , , , , , 1 Comment
30Oct/080

What I wished Template Code Looked Like

<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tpl="http://www.smarty.net/v/3"><tpl:strip>
    <head>
        <title><tpl:var name="siteName" default="My Website" /> | <tpl:var name="pageTitle" default="Page Title" /></title>
        <tpl:createTag name="link">
            <tpl:property name="rel">stylesheet</tpl:property>
            <tpl:property name="type">text/css</tpl:property>
            <tpl:property name="href"><tpl:var name="cssDir" />/default.css</tpl:property>
        </tpl:createTag>
        <tpl:createTag name="link" rel="stylesheet" type="text/css">
            <tpl:property name="href"><tpl:var name="cssDir" />/christmass.css</tpl:property>
        </tpl:createTag>
    </head>
    <body></body>
</tpl:strip></html>

20Feb/081

Using XFN with FOAF

So, before I just start splattering your screen with Acronyms, lets define a few, eh?

  • FOAF: Friend of a Friend - An XML Schema containing information about you, as well as a small bit of information, or links to information, about the people you know.
  • XFN: XHTML Friends Network - A Microformat generally used in links to other sites or pages to identify that person's relevance to you, such as "contact", "friend", "acquaintance", "met", "muse" and etcetera.

Generally, you wouldn't combine an XHTML standard with a different XML Schema.  But, I've personally decided the best way to use the two together.

First, declare the XHTML namespace in your FOAF file.  This is with all the others, and generally looks like xmlns:xhtml="http://www.w3.org/1999/xhtml".

Next, go to where you have included your contacts.  For each <foaf:knows> tag, add inside of it xhtml:rel="contact" or similar, following the XFN standards.

And voila!  You now have XFN and FOAF working together.  Of course, the only problem is that nobody quite supports this standard yet, but it will hopefully come in the future.

My Guidelines for using XFN in FOAF is that it should be used when referencing another <foaf:Person>.  In fact, if you want, you should probably even add xhtml:rel="me" to your own <foaf:Person>.

5Jan/080

About the Author (part 1)

There are some people reading this tech blog of mine, so, I guess I should introduce who I am, eh?  Considering that most people reading this are people I've never talked to before, or some of the people that know me online.

My name is Navarr Barnier.  I'm a sixteen year old student at Klein Collins High School in Houston, Texas.  I work in PHP, (X)HTML, XML, CSS, and am starting to get familiar with JavaScript.  I considering myself a Web Developer.  I can't really do anything with layouts, but code and backend, they are my friends.

Recently, I've started being more active in the Web Design and Development Community.  I've joined the mailing lists for Microformats, became a member of the DataPortability Google (and Facebook) group, Joined the APML Facebook group, and started the process of getting a spot in the HTML5 W3C working group.

I hate the terms, but I love the concepts of Web 2.0, Web 3.0, the Semantic Web.  The internet is truly moving in a good direction.  We are truly entering the Information Technology age.

Those are the basics.  When I post Part 2, I'll cover over what www.gtaero.net is as well as its future.

5Jan/081

Depressing Validation Results

On a whim, I decided to attempt validating every website I mentioned yesterday.  Overall, XHTML won out the results.  But they are depressing none the less.

  • XHTML
    • Blogger (This Blog)
      • XHTML 1.0 Transitional
      • FAILED
      • 70 Errors
    • Opera
      • XHTML 1.0 Strict
      • PASS!
    • FireFox (Mozilla)
      • XHTML 1.0 Strict
      • PASS!
    • Facebook (Home Page for signed in user)
      • XHTML 1.0 Strict
      • FAILED
      • 659 Errors (wow.)
    • MySpace (Home Page)
      • NO DOCTYPE FOUND (FAILED)
    • Twitter (Home page for signed in user)
      • XHTML 1.0 Strict
      • FAILED
      • 82 Errors
    • W3C (Home Page)
      • XHTML 1.0 Strict
      • PASS!
  • HTML
    • Microsoft (Home page)
      • HTML 4.0 Transitional
      • FAILED
      • 31 Errors
    • Yahoo!
      • HTML 4.01 Strict
      • FAILED
      • 294 Errors
    • Apple
      • HTML 4.01 Transitional
      • FAILED
      • 4 Errors
    • Google (non-iGoogle homepage)
      • NO DOCTYPE FOUND (FAILED)
    • WHATWG (Homepage)
      • HTML 4.01 Strict
      • FAILED
      • 5 Errors

PASS/FAIL Results:

  • XHTML
    • 3/7 Passed
  • HTML
    • 0/5 Passed

The Results are bad enough as they are for the XHTML websites, but not a single HTML website validates, not even the WHATWG.  Irony much?

3Jan/0823

Why HTML should become a dead language

Go ahead, take a gander around the Internet.  Lets see who is using HTML, and who is using XHTML.

  • XHTML
    • Blogger [Served as HTML]
    • Opera [Served as XML]
    • FireFox (Mozilla) [Served as HTML]
    • Facebook [Served as HTML]
    • MySpace [Served as HTML]
    • Twitter [Served as HTML]
    • W3C [Served as HTML]
  • HTML
    • Microsoft
    • Yahoo!
    • Apple
    • Google
    • WHATWG

As you can see, the "newer" websites are serving in XHTML.  A few of them Transitional (mainly websites where users can input HTML), however, a large number of them are marked as XHTML 1.0 Strict using the W3C DTD.

On to my main point, HTML should NOT receive an update.  The primary reason people want it to, is because it is FAMILIAR to designers and developers.  However, HTML is very lax on how it is interpreted, a little too lax in my personal opinion.

An Example.  <input type="text" disabled>.  The tag does not end.  Its interpreted as a single tag, and disabled means that its disabled.  I, myself, find this to be horrible, horrible code.  In XHTML, all tags must end, and all properties must have a value.  Which is easier to program, an HTML or an XHTML parser?

Probably the XHTML.  HTML was not designed to be parsed, and is really quite a pain to attempt to parse using such things like Regex, considering how lax of a language it is.

In my own personal opinion, HTML should become a dead language.  Some people hold on to it, let them.  Let them continue making their websites in Archaic HTML 4.  But do we really need to run an update to it?  No.  We should, move to XHTML.  XML has already proven to be a very dependable language.  Its used in such popular applications like Jabber, and Twitter, and is used commonly with AJAX, which is the height of the "Web 2.0" Revolution.

So why are we trying to revise it?  Why can't we adopt a stricter set of rules so that they can better be implemented?  In my personal opinion, work on HTML should be halted, and moved to XHTML.  I still believe that the W3C and WHATWG should work together on a new version of XHTML.  XMLEvents and XForms should adopt the magnificent features that Web Forms 2.0 has created.  Again, this is my personal opinion.

EDIT: Added What Some sites are served as.  Its actually pretty depressing.

3Jan/082

XHTML2 vs. HTML5

What the hell is up with this fanboy war?  The web design community has already started getting used to XHTML, but now the WHATWG group wants the continued update of HTML?  Isn't that a step backwards?

HTML was wild, unordered, and controlled by the browser vendors (at least from what I've seen), however, XHTML was started and controlled by the W3C group, making sure that it gets properly implemented, however, the WHATWG group doesn't like it.  They want to stay with their old fashioned <b> tags.

I admit, web designers from the 90s have gotten used to the old style HTML tags, and its still what they're teaching in school, but that is no reason to stay with it.  Technology changes over time, this is the same for any tech profession, the data will change, and then you'll have to learn something new.  This isn't just the case for tech jobs, but jobs that use computers.  Microsoft publishes a new Operating System, your company updates, and you need to re-learn it.

XHTML1 supports backwards compatibility with HTML for the old authors who are still getting used to it, and so that browsers can still render old code, XHTML2 doesn't, but all browsers should properly implement both.  But by creating HTML5 and "XHTML5", WHATWG is requiring browser vendors to include yet another set of standards into browsers in order to properly display the internet.

Personally, I have yet to find a website that uses HTML5.  Most websites have already started using XHTML, and so I truly believe that implementing a new version of HTML is a step backwards.

If the WHATWG group wants to continue their efforts (like their wonderful work with Web Forms 2.0), I think their best bet would be to join the W3C's work with CSS and XML Events, and XForms, don't you?  If the two worked together, instead of fighting about such silly things, then maybe standards could be developed a lot faster, after all, the W3C does seem to be taking a long time to update and recommend standards.  Lets get things done faster, I want to start using XHTML2 and CSS3 already :-p

3Jan/080

First Post

This is the first post for my new technical blog.  What will go here?  Well, probably stuff like XHTML, CSS, HTML, Dave Winer, Twitter, and other random useless things that have something to do with the internet.

I'm not really sure how to start off this blog but by breaking the third wall and recognizing its a blog.. or does that only work in Cartoons and Movies?  Either way, Third wall broken, Hello Audience :3

I guess that is all for now, I'll write some more later.