Stefan Mischook
February 19, 2005
NOTE: This article is theoretical – CSS tables are not supported by the browsers yet, and cannot be used. I wrote this article to make a few points and to expose people to lessons learned in software development: that grids are an excellent way to layout user interfaces.
Stefan
–
Grid layout patterns are commonly used in creating software interfaces – in web design we call them ‘tables’.
But today HTML table based layout is generally frowned upon because:
- HTML tables render/display content in a fixed format/style that might not display properly in certain types of browsers.
- Tables semantic meaning is thought to represent tabular data – like a spread sheet. Thus using them for page level layout is just wrong … gosh darn it!
There are other reasons why some web designers will say HTML tables suck:
- HTML tables cause code to be bloated and thus pages will take longer to download.
- HTML tables will make your website less search engine friendly.
- HTML tables will make your websites less accessible.
The last 3 points are myths and should be ignored – I covered that in other articles.
That being said, the first point about tables imposing a fixed format/style (where formatting and structure are intertwined – that’s bad,) is very real and very important. It is so important in fact, that I will do what I can to avoid table based layout despite the extra work and problems this can cause.
It’s a terrible shame
Using a grid/table to create UI’s is intuitive, too bad that table based layouts are so controversial … but there maybe is a light at the end of the web UI tunnel: CSS table layouts.
What the heck are CSS tables?
From the W3C:
‘The CSS table model is based on the HTML 4.0 table model, in which the structure of a table closely parallels the visual layout of the table.’
Now in English:
CSS tables are just a set of CSS attributes that you can apply to (probably) div tags to create a ‘table’. Check out this code snippet and things should clear up:
<div class=”table”>
<div class=”row”>
<div class=”cell”>
<p>Yallow!</p>
</div>
</div>
</div>
This is an official W3C specification, I’m not inventing anything here!
So why invent CSS tables when we have HTML tables?
The answer is simple young grasshoppers: to gain the advantage of table based layout while avoiding the problems (mentioned above) with HTML tables:
- HTML tables format content in a fixed structure that might not render properly in certain browsers.
- Tables semantic meaning is thought to represent tabular data – like a spread sheet. Thus using them for page level layout is just wrong.
CSS tables can’t be used in any browser today, so why mention them?
I have two reasons why I wrote this article:
- To educate people of this long term possibility and maybe to start stirring things up – it would nice to have this web design tool.
- To make a point about grid based layouts: they have merit and should be considered.
Stefan Mischook
read more
February 18, 2005
A lesson in Real-World web design.
I wanted to let you guys in on a lesson I’ve learned more than once:
DON’T BE SEDUCED BY AN EXOTIC TECHNOLOGY NOBODY USES!
Once and a while you may come across, what would seem to be a ‘killer’ piece of software, or maybe a cool new programming language – something in that would appear to give you some advantage.
That MAY be the case, but many times, it isn’t really so – think twice before your leap!
Consider these points:
- You will have to learn this new thingamabob – that takes time.
- Often, new thingamabobs excel in one area and stink in others – problem is that it can take time to figure this out.
- Listen to the king: “Wise men say, only fools rush in.”
Do you notice a pattern here?
Yes, it’s all about time. All this junk (software, programming languages, markup languages etc…) have one purpose in the end: to save you time.
Keep that in mind when you approach things – ask yourself:
‘Will using this save me time?’
– –
read more
February 17, 2005
It looks as though IE7 will be breaking many commonly used CSS hacks and thus many Web Standards based pages – this adding credibility to my articles critical of the overly zealous Web Standards movement.
Direct from the IE7 blog:
“We’re starting to see the first round of sites and pages breaking due to the CSS fixes we have made. We would like to ask your help in cleaning up existing CSS hacks in your pages for IE7. It is has been our policy since IE6 that under quirks doctype we will not make any behavioral changes so that existing pages will continue to render unmodified, but under the strict doctype we want to change behavior to be as compliant as possible with the web standards. For IE7, we introduced new CSS functionality (see Chris’ blog post for the full list) and cleaned up our parser bugs. This leads now to several CSS hacks failing. If you are using IE7 (you are MSDN subscriber or received a copy at the PDC) you may notice major sites breaking due to the use of CSS hacks and the strict doctype. ”
In a nutshell: the forward compatibility argument is now proving to be flawed (as I’ve been stating for a long while) and now many of these Web Standards based websites will have to be updated to work in IE7! So much for forward compatibility…
read more
February 17, 2005
For the last 6 years I’ve had total control over my deployment environment (running my own servers,) and never had a problem with Java.
Recently I moved to commercial 3rd party hosting, where I had a private JVM but no control over my server set up. To make a long story short, I have now been dealing with Java deployment hell … Java is not playing nice.
My experience
After 6 years of enjoying the comforts of having my own server, for whatever reasons, I moved to 3rd party hosting. What took me by surprise was how hard it was to find a suitable Java hosting company. I went through 4 before I found a company that actually was able to do the job properly.
–
One of the big selling points of Java has been the write once and run everywhere theory – sounds great and apparently people have had a lot of success with this … but my experience has been something else.
A couple of tips:
- If you can, deploy on your own servers: Java is much easier to handle when you control the box.
- Never go with Java hosting that shares the JVM.
Without a private JVM, you cannot restart the server (Tomcat, Resin etc) and so updating classes and property files are a pain. And since you are sharing the JVM, anybody’s code might take your app down.
Anecdote: With the first host, when I uploaded my simple POJO based application (that had been working on my servers for a couple years with no problems) I took down the whole bloody server! Strange that this still happened despite the fact I had had the same configuration?
Anyway, they gave my ass the boot and I had to move on to my next victim!
🙂
Conclusion:
Java is brittle in a shared environment, hard to configure and problematic – it sucks. I think this is a symptom of the Java community’s need to over-engineer everything and shows how Java is no longer suitable for small and medium size application development.
The alternative:
Right now I would go with PHP because it is easy, fast and everywhere. It’s not the perfect language but it makes building web applications really easy compared to Java.
read more
February 16, 2005
A quick overview of what a web designer needs to know.
Topics covered:
1. Pillars of Professional Web Design.
2. The Future of Web Design.
3. Getting your first web design Job.
Pillars of Professional Web Design:
The Definition:
I am referring to the sum total of what a web designer should know. The fact that we can now define this is a great thing.
I the recent past, a web designer was more of a vague profession, if one at all. Most ‘web designers’ were actually graphic designers moonlighting as web designers. They did not really understand the medium at all and we still see symptoms of this in websites all over the Web.
Symptoms that include sliced images, heavy pages, no thought or support for things like SEO, usability, accessibility, maintainability et cetera. In fact still today, many ‘web designers’ would have a hard time writing even simple CSS code.
The Pillars Of Professional Web Design
· HTML, CSS
· Basic Design
· Usability
· Accessibility
· SEO
· Best Practices
read more
February 16, 2005
Making a website easy to navigate is one of the most important things you can do as a web designer – if a website is not easy to navigate, people will quickly leave.
Over the years, every type navigational layout (system) has been attempted, and now we know the 2 best ways to create navigation for websites:
- Left aligned ‘master’ navigation menu using CSS buttons or links. And ‘breadcrumbs’ navigation running across the top of the page.
- A close 2nd would be to have the ‘master’ navigation float on the right. But since book layouts (table of contents) are left aligned, left aligned is best for navigation.
read more
February 16, 2005
Every other day it seems, I have to suffer an assault of stupidity in one form or another. This time around, I am suffering the foolishness of shipping companies.
I send and receive packages on a regular basis … you’d figure that this common task would (and should) be a trivial thing by now …
–
Stupid shipping company #1: Canpar.
When receiving packages, it is rare that I can choose the shipper. But when I do have the choice, I ask for anyone but Canpar.
Why does Canpar suck?
- They only make two deliver attempts (all the others make 3) and then they’ll ship your package back.
- They cannot give you a time of delivery during the day – they can’t even give you a ball park time!
- They have no easy to access pickup location to get packages – unlike the post office.
My story:
I get a delivery notice on Monday saying they missed me and that they will back Tuesday in the afternoon. So I wait all day Tuesday because if I miss this 2nd attempt, the package gets shipped back.
Tuesday comes and goes with not so much as a phone call. I call them and make arrangements for the package to come Friday. Friday comes and I wait all morning and into the afternoon, with still no word when the package will arrive, so I give them a call.
I figure that in the age of cell phones, they could call the driver and we could coordinate … nope: Canpar tells me that they can’t reach the driver! That high-tech capability (of calling drivers via cell phone,) seems is only for the local pizza delivery guy.
So I sit here waiting, wondering, if Canpar will stiff me yet again!?
The Post Office Rocks
It’s sad to see when a government entity (the post office,) is able to provide a far superior service than a commercial entity. We all know that government is insanely wasteful and inefficient. But let me tell you, the local post office kicks most private /commercial shipping companies asses:
- The post office has easy to find (they give you an address on the slips) locations to pick up packages.
- Pick up locations are always close by.
- Shipping via the post office is much cheaper.
–
I wonder if I will get my package today?
Stefan Mischook
read more
February 16, 2005
For the last several years, when asked about what programming language that I thought people should jump into, I would automatically make Java my first choice – things are changing now.
There is growing appreciation for flexible dynamic scripting languages (like PHP, Python) over strongly-typed compiled languages like Java.
Why?
I see two big reasons why people are looking to the scripting languages as a viable alternative to Java:
- Speed of development.
- Ease of use.
There is no argument (among sane people,) that you can build applications in a scripting language in a fraction of the time that it takes to build the same application in Java.
The Java zealots would argue:
- Scripting code will not be maintainable.
- Scripting code will run too slow
About code maintainability:
The reality is that code maintainability has as much to-do with the programmer as it does with the language – you can write crappy Java that is not easy to maintain or extend … I’ve seen it more than once – maybe even 3 times!
🙂
The same thing can be said of scripting languages …
Another interesting point, is that you can usually write an application with far less code than you would in Java – many times we are talking 1/4 to 1/5 the code! A thousand lines of code is much easier to maintain than 5000!
About speed of code execution:
Again, many times that comes down to the programmers skill. Having said that, the evidence shows that for many applications, the scripting languages out there run more than fast enough.
Anecdote: PHP seems to be fast enough for Yahoo.
The old argument that Java people used when defending Java’s speed (relative to C++ ) can be applied to scripting languages: computers are really fast these days … as such the difference in execution speed (most of the time) is negligible.
Java’s ever increasing complexity- benefits the few at the expense of the many:
It seems to me that the Java community has made the platform more and more complex (in favor of huge projects,) at the expense of productivity of small to medium sized projects. The problem is, that the vast majority of the projects out there are small and medium sized.
Conclusion
I’ve written most of my software in Java over the last several years, I like Java. But these days I don’t look to Java anymore because it just takes too much time to get anything done. Even small Java applications have a lot of overhead in just setting up – xml descriptors, frameworks etc. I’m not even going to get into the verbosity of the code itself …
These days I look to PHP to write my web apps – it’s just too easy and fast to ignore. PHP has got some baggage from its’ roots of being a ‘web designers language’ but it is fast, has support from big players like IBM and most important , it’s everywhere!
What about Ruby?
Looks very cool, but it is a marginal language – nobody uses it these days. Last I checked, in comes in as the 28th most used language – below COBOL, Python, VB … you get the idea.
read more
February 14, 2005
GETTING YOUR FIRST WEB DESIGN JOB
People have been asking for this one, for a long time – I’ve been a total scatterbrain lately with heaps of half-written articles and tutorials!
I must have about 60-70 pages worth of material on everything from web design tips, PHP programming, how to create a database in MySQL, negotiating a web contract – all of them about half finished!
Before I go on with the article on the web design business, I have to say that I have relearned one thing in the last 3 months: do one thing and finish it! I think this is so important, that I’ve even come up with an expression:
‘If you’re half way there, you’re nowhere!’
Wow, I’ve coined my first expression! Keep it in mind when you’re doing your thing – whatever it may be.
GETTING YOUR FIRST WEB DESIGN JOB
One of the first question people ask, is how do you actually get a web design job? This has all to do with your presentation – how the client perceives you is more important than reality!
read more
February 14, 2005
Once you and your client have agreed on a price (for your web design work,) it’s time to get some cash!
Why do you need to get money before you start the work:
Two major reasons:
- You need some sort of commitment from the client – nothing guarantees a commitment like cash!
- Respect: you need to establish respect for your services. By getting a payment upfront, you are establishing a professional relationship.
How much should you ask for?
I work with one of two payment structures:
- Two equal payments – 50% up front and 50% when the job is done.
- Three equal payments – 33% up front, 33% on delivery of the first draft and 33% when the job is done.
The 2nd option is much better because it’s easy to get the first draft out – this way you’ll have 66% of your money relatively quickly.
On the other hand, it can take a long time before the client signs off on the final. Option #2 is especially handy when you have clients who take forever to respond to your questions causing the project to drag on.
– –
OK, I wasn’t going to mention it, but there is a 3rd method of getting paid … and that’s not getting paid because you didn’t get a payment up front!
Always get a payment up front!
Stefan Mischook
read more