Posted on Leave a comment

Are you valid?

OPML for the Top 20

HTML is hypertext which is nonlinear navigation between related or unrelated documents, ie. links, and markup language with is symbols (in web speak, tags) to indicated to the printer (in web speak, browser) how the content should look and be presented.

The term markup is derived from the traditional publishing practice of “marking up” a manuscript, that is, adding symbolic printer’s instructions in the margins of a paper manuscript. For centuries, this task was done by specialists known as “markup men” and proofreaders who marked up text to indicate what typeface, style, and size should be applied to each part, and then handed off the manuscript to someone else for the tedious task of typesetting by hand. A familiar example of manual markup symbols still in use is proofreader’s marks, which are a subset of larger vocabularies of handwritten markup symbols. [Source]

As bloggers, we tend to write quickly and proof later (yes I generalize but you will see this post on my first draft). The array of blogging tools out there provide handy little WYSIWYG editors to help rush content out. Personally, I disable WordPress’s wysiwyg. These tools allow us to be sloppy and produce bad code/markup. The W3C is an international member organization with the mission of creating Web standards and guidelines. The W3C does not define the World Wide Web but because Tim Berners-Lee, who is credited with inventing the Word Wide Web in 1989 while working for CERN, also created the W3C, and so many industry experts are part of the consortium, W3C recommendations are highly regarded.

The W3C provides tools to validate your markup against the HTML specification. By making sure your website, and a blog is just a website that updates often, has valid HTML you can be assured that page will present its information in most any browser or news reader as you want the person reading it to see it. Non-valid markup can send a browser into quirks mode and the outcome may be unpredictable. Valid markup also lends to more favorable search engine placement. A blogger who takes the time to make sure their site template is valid HTML and that their regular posts are valid HTML making the entire site valid HTML may get higher placement in a search engine than a comparable blogger who does not validate.

That said, there is an argument that validation for bloggers may not be all that important. According to Bug Leak, all the blogs in Technorati’s Top 20 fail to validate.

This probably means that complying to the W3C standards is not a priority for the most popular content creators on the planet. [Source]

The article lists these 20 blogs and the number of validation failures. I was curious to find out what separates these great content creators from RealityMe (of course, I can guess that they have focused topics, thousands of links in, huge readership, more regular posting, etc.) so I added each to my feed reader to gander daily for a bit. I have saved the RSS links as OPML so that anyone can import the same 20 blogs into their readers. Bug Leak points to a great tool for WordPress users called XHTML Validator plugin. This plugin checks the content going into the database (not the actual template) to make sure that your posts are valid. How does one write valid code without knowing what constitutes valid HTML? Simply install the XHTML Validator plugin and begin posting. When it shows you errors, correct them and learn by doing!

Posted on Leave a comment

What kind programs do you write?

I often get asked, "Now, what do you do?" and when I try to explain it I get these blank stares and gapping mouths to which I pause then say, "I make web pages." Their eyes light, heads nod, and they declare, "OOooh!" Quickly followed by a subject change.

What do I really do? Right now I am writing an application that allows service providers to advertise their services. So someone seeking a service goes to the website and enters what they are looking for and the matching providers pop up. Sounds simple enough right? Well, if I do my job correctly it will appear amazingly simple to the end user. The behind the scenes programming complexity is awe inspiring. As a minor example, the administrator has to take requests from service providers to be apart of the website. Then the administrator has to create the service provider profile which implies an administrative website that only the staff can access (roles based security). A profile! That’s simple right? Just a database table with all the descriptions of the provider and services offered right? Not really. In actuality it is a very complex system of related lookup tables. Since I cannot predict all the variants of services and pieces of services that may be offered, the system was built to allow the administrator to dynamically add and remove qualities from the service profile. Certainly a detailed specification could have made that simpler but would have resulted in a limited application where as this one can grow to meet the future needs of the client (I know..the simpler approach would have produced more billable hours in the future..blah blah).

Of course, the service provider has to have their own website to be able to manage the details of their service without having to labor the administrator. However, the client does not want the service provider to be able to make certain changes to the profile without approval. So I have had to create a change request table in the database to accept pending changes from the service providers to be accepted or rejected by the administrator. Now there’s a level of complexity that echoes changes throughout the site!

I love my work!

Posted on 2 Comments

Tech Issue of the Day

Today’s terribly frustrating error causing a long delay in a short process is:

Parameter index out of range (1 > number of parameters, which is 0).

It is the result of this simple insert:

<cfquery name="createrole" datasource="#application.gDataSrc#">
    INSERT INTO #application.projectidentifier#_theroletable {
       fooASInt,
       barAsInt
    } VALUES {
       <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#fooAsIntValue#">,
       104
    }
</cfquery>

UPDATE: Whoops. I see the typo! There is a big difference between {} and (). Should have been:

<cfquery name="createrole" datasource="#application.gDataSrc#">
    INSERT INTO #application.projectidentifier#_theroletable (
       fooASInt,
       barAsInt
    ) VALUES (
       <cfqueryparam cfsqltype="CF_SQL_INTEGER" value="#fooAsIntValue#">,
       104
    )
</cfquery>

Posted on Leave a comment

And an afternoon of troubleshooting goes to one line

So IIS v6 wasn’t letting form variables post. <cfdump var="#form#"> would show an empty structure. CF’s built-in webserver on the development box worked fine. Changing the method from post to get made things even stranger with the query string using &amp; instead of &. I finally found the solution. I had used the obscure html tag <base"

<base href="http://domain.com/">

IIS v6 did not like this. Removing that one line fixed the problem. So much for trying to be the perfect coder.

Posted on Leave a comment

Today’s Technical Challenge

As a web application developer, I am often asked to put a WYSIWYG editor into the application so that the end-user can use the application without having to learn HTML and CSS. There are plenty of free and commercial wysiwyg editors available. (Note to developers: bookmark that link!)

These editors are designed to be customized for your application. You can typically control what buttons appear, what the interface looks like, and so forth. My challenge is to not only change the appearance of the editor, but when the end-user begins typing I need to have that type appear in a default font family (Arial), font size (12pt), and justified to the left. That means if they cut and paste content the defaults need to be applied.

The editor I chose for this project was TinyMCE. I find it far easier to implement than the ever popular FCKeditor (and no..those are the developer’s initials). My editor of choice is typically Xinha.

I have found numerous references to setting content_css : "defaultcontent.css" in the tinyMCE.init and this does change the text as the end-user is typing but the font family select and the font size select menus remain at their default values. When you save, the font family and font size are not saved. Very frustrating.

Interesting!

May 3, 2007 – Adobe, to embed FCKeditor in ColdFusion 8

Adobe has chosen FCKeditor as one of the great new features of its next major release of ColdFusion, code-named Scorpio. Some reviews of it can be found on the web.

For ColdFusion programmers, it will be as easy as defining a tag to see FCKeditor displaying all its power on their pages, right out of the box.
[Source]

Posted on Leave a comment

Immigration Laws Keep Me Unemployed

Over the past year I made several attempts to get out of consulting and back into the corporate world. By being a consultant for a decade, I have evolved a fascinating set of skills which should make me invaluable to most tech companies. However, all interviews ended without an offer.

But immigration laws pertaining to the hiring of foreign workers in the States are tight. And firms have to prove that they can’t find anyone in their back yard to do the jobs they need to fill, before casting their gaze abroad.

This is why U.S. firms hire consultants to publish classified job ads in local U.S. papers, with goal of not finding any applicants.

[Source]

See more comments on the video.

Albeit interesting, that video and information actually has nothing to do with me failing to nail a corporate job. The jobs I missed had more to do with concerns that I could not switch from consulting back to cubeville and a couple required me to do some free work which did not fit into my schedule. Frankly, I failed to market myself well. I believe anyone with a decent skill set can find a good paying job particularly in the tech world.

Posted on 2 Comments

Like quicksand!

So today began with me frantically trying to complete one project so that I could try to finish another critical project and was interrupted with a client emergency which was put on hold until tomorrow. Part of wrapping up project 1 involved getting the data and structure out of a MS SQL 2k database and into a MySQL 5.03 database. Jumped some hoops on that one. The MySQL GUI Tools are fantastic! I still prefer SQLyog for developing queries since it uses the same shortcuts as MS Query Analyzer. Next I had to figure out how to get my CFMX7 server to actually connect a data source to the MySQL server.

Long and short I had to download the mysql-connector-java-5.0.6.zip then put the jar into the web-inf/lib directory. The CFservice had to be restarted of course. Worked like a charm!

Devpapers.com was invaluable although I skipped most of those instructions.

Ended up on a long tech support call trying to figure out why my Motorola v3xx has quit sending SMS text messages and will only send MMS messages. Seems the answer may be to empty everything from the inbox and outbox. That will take some doing!

Time to do more programming. What I’d really like to do is settle in with a scotch and a book or a movie and talk to Cathy.

Posted on Leave a comment

Code Your Own Game!

So Tommy is a World of Warcraft addict. As a programmer, I think my children should know a little bit about coding. I have decided to install Visual Studio Express on their computers and letting them earn computer time by learning about programming. Write Hello World, earn some Youtube time. Write your own game and then play WoW. Actually, I don’t want to set this up as a drudgery so a carrot/reward system won’t work. I am hoping they just find it cool.