Wednesday, February 22, 2006

CSS Rant

Is it just me or is CSS and tableless HTML the most frustrating language combination ever produced? I've programmed in C++, Basic, Fortran, VBScript, Perl, Javascript, HTML, UNIX shell languages, and in proprietary languages like those used for Matlab and Mathcad. None of these come close to having so many unintuitive methods of accomplishing simple tasks. The VI text editor comes to mind, but by virtue of the fact that few people even know what it is should attest to the fact that usable commands actually mean something.

At first I thought I was losing it, or I was just plain going crazy, but I don't think I am any more. It used to be a line break meant a line break. Aligning something vertically (which is important in a vertical scrolling interface) was as easy as pie. No more.

My hat goes off to those fearless and talented people who are able to make the new HTML work for them, but as a language in and of itself, CSS2 sucks badly. I understand the need to separate code from formatting and having web standards, but it's like the idea separating church and state, or communism. It's great in theory, but not so easy to execute in practice.

For example, when programming in HTML, I knew that when something didn't line up, it was because my table structure was screwed up. There are only three tags in a table (table, tr, and td), so troubleshooting wasn't so bad. With CSS, if the layout isn't working it's because the "float" wasn't set to "block" or the "text-padding" was interfering with the "div padding", or "clear" wasn't set to "none". It now takes 4 commands to center the content of a page, since the "center" tag is now deprecated.

CSS isn't all bad. Creating a grid of images is now super-easy, and we can celebrate the fact that a standard actually exists. However, I liked the days when browsers would gracefully resolve HTML inconsistencies.

What's even more upsetting is the tone of some of the CSS standards nazi's. "If you don't conform, you are evil" is pretty much the message. Thanks big brother, but as it currently stands, CSS2 is not an efficient programming platform. That doesn't mean that having standards are bad. Tag-based and object-oriented languages that can be shared across platforms and channels are very much welcome. It just shouldn't be at the expense of usability. Vertical and horizontal alignment should be easy.

I'll still continue learning it CSS2 and adding table-less formatting to my development toolset. However, with the added difficulty of programming in this way, table-based HTML still has a long and fruitful future ahead of it. As far as I'm concerned this is just a fad that every developer will have to suffer through in order to stay on top of their game. Eventually there'll be so many different workarounds for dealing with the programmatic roadblocks, we'll be back at square one with sites that exploit loopholes to make things work. It's just the nature of things I guess.

Tuesday, February 14, 2006

What I've Learned So Far In 2006

Walking on my hands: I started Capoeira back in December and it's taken me this long to take more than 4 steps reliably.

A Little Portuguese: Music is a big part of Capoeira, and everyone has to sing, in Portuguese, and play an instrument. Not so easy when you only know one language.

CSS2 and Tableless HTML: I've used stylesheets, but never to the degree needed to produce table-less web pages. It took me a whole week to be able to make what would have taken me a few hours in table-driven HTML. However, I did learn a few shortcuts with this method.

AJAX: An acronym for Asynchronous Javascript and XML. Being able to pull data from a server and present it without refreshing the page was what I liked most about Flash. Now I don't need flash to do it.

PHP: ASP Classic is slowly dying and seems like a dandied up ColdFusion, which I abandonded years ago. So, I'm starting to learn PHP. It's going to take a long time to convert all my VBScript classes.

Kali-oeira: I've been fooling around trying to see what would happen if I applied Kali timing and weapons work with Capoeira movements. I can't tell if it's any more effective, but it looks neat.

Mavens, Connectors, Salespeople: I downloaded the audiobook "The Tipping Point" by Malcolm Gladwell, and learned some interesting stuff. According to the book, there are 3 personality types that make trends happen. Mavens are information brokers. They collect information to help people and are considered authorities. Connectors have massive networking skills. They pass information around easiest. Salespeople convince others of the importance of information. They make believers out of even the most cynical people.

Garlic Pills: I've had a virus of some sort for the past month, and chewing garlic tablets helped out a lot ... for a while. Then I got the feeling they were destroying the lining in my throat. I guess I shouldn't have taken that many.