The only thing worse than a friend overstaying their welcome is an odd acquaintance you never really liked overstaying their welcome. The same is true when it comes to web technologies and design practices. Some things are just so awful it’s tough to imagine them ever being conceived, much less sticking around for a decade. Here are the top 5 things I’d like to see go away forever. (more…)
Archive for the ‘Web Programming’ Category
5 Things That Need to Go Away from the Web
Friday, July 16th, 2010Minor Updates
Saturday, April 3rd, 2010I recently updated the tooltips that pop up on the header and footer links so that they have a slick little animation rather than just appearing after a slight delay. It’s a small change but I think it makes a big difference and to be honest, I’m always looking for an excuse to spend some more time with jQuery.
WAMP, Framework, Illustrator, and CMSeses
Friday, March 5th, 2010First of all, what is the plural form of CMS? Anyone? Anyone?
As part of the never-ending learning process I have decided to dedicate the next few weeks to a lot of projects I should have started years ago. To begin, I finally installed a working WAMP environment on my machine so that I can test server -side code, including CMS installations, locally. This should save me hours upon hours in development time in the future.
I also finally finished developing my own front-end web framework. It’s a hybrid of the 960 Grid System, my own default style preferences which I use in the vast majority of my projects, and 6 jQuery plugins which I always reuse. I realized after a while that I just kept running into and spending hours solving the same problems with each project I started, so I instead decided to work out all of the nitty-gritty details and create one clean web page with all the bells and whistles that works in all the major browsers. Now I should be able to just copy that source folder and apply project-specific colors and images and be done with most of the markup.
I’m also finally taking the time to learn all that there is in Photoshop and to learn Illustrator. I’ve never done vector illustrations before but as I’m doing more and more design work it’s becoming a dire necessity. I’ve only been at it a week and it’s been a bit more difficult than I would have hoped, but within a few weeks I should have the basics conquered.
Getting more familiar with the various CMS systems available is also a major item on my to-do list over the next few weeks. I’ve been using CMS Made Simple and Wordpress, and I’ve decided that I just plain don’t like Joomla. I think I’ll take a look at the latest offerings from Wordpress and CMS Made Simple as well as checking out Cushy CMS and maybe Drupal. Does anybody have any CMS recommendations?
Some Flash
Saturday, January 30th, 2010Ok, a lot of Flash. That’s what I’ve been doing lately. I miss my beloved XHTML, CSS and jQuery quite a lot but I’m starting to do some more fun things with Flash at least. One of my recent projects involves creating a dynamically generated scrolling image gallery. When working on this I realized I needed some kind of a formula to calculate the horizontal spacing of each image so that they would appropriately spread no matter how many images were there. It took me hours to finally work out because, well, I ams not so goods with the maths anymore.
If anybody is looking to do something similar, I’ll save you the time by sharing with you the formula I finally worked out.
(TotalWidth - 2 * padding - LastPictureWidth) /(NumberOfPictures - 1)
One Year
Saturday, January 9th, 2010Well, the blog has been live on this site for just over a year now. It’s crazy to think that at this time last year I had never touched any blog software, had not yet programmed any database interactions, didn’t even know what jQuery was, and could barely remember how to make a simple tween in Flash.
In this next year I hope to keep learning, get more involved in the local development scene, and maybe make some better use of this blog. Hopefully I’ll find the time to post some code tutorials and more snippets of wisdom.
W3, I can’t hear you…
Monday, November 30th, 2009Although I’ve always been astounded by how differently the various browsers treat code and how one developer’s approach to a problem can differ so greatly from another’s, it’s only recently really, I mean really truly, dawned on me how ridiculous this all is. At the heart of the problem comes the fact that so much of the W3’s work is ignored whether it’s by major corporations releasing browsers or by stubborn developers who are just going to stick with what the know. If a restaurant blatantly disregards an FDA guideline they are closed down but if company providing half the world with an internet browser blows off the W3 nobody thinks twice. If a lawyer tries to make an argument that violates the Constitution his argument is dismissed but if a developer blatantly disregards a W3 recommendation there’s no consequence. Just imagine all of the frustration and pointless bickering we would rid ourselves of if we all just listened to what the experts are telling us.
CSS vs Tables, the Eternal Struggle
Thursday, October 22nd, 2009Less Markup
A div based layout uses a fraction of the overall markup that tables do. Well styled divs replace the need to put align, height, and width properties in your HTML, they eliminate table rows and cells that do nothing but contain a blank space, and they reduce the amount of nastily nested ending tags that often reside at the bottom of our pages. Essentially, tag soup becomes tag tartar.
- Less markup means smaller file size for faster loading.
- A higher content to markup ratio for improved Search Engine rankings results from div layouts. Additionally, search engines can better navigation and group content found in the divs and lists used in CSS design.
- Less code means fewer opportunities for coding errors.
Quicker Development
Although frustrating and seemingly mired with problems at first, creating websites with divs and CSS actually takes far less time and effort than creating a table based site. As with any technology, you just need to take a little time to learn it.
- Being familiar with div based layouts can drastically decrease the amount of time spent marking up a design. It is, after all, less code to write.
- Using a CSS framework offers even further improvement. Creating the first draft of the latest project I worked on took less than 30 minutes.
- A review of the BluePrint framework can be found here: http://net.tutsplus.com/tutorials/html-css-techniques/a-closer-look-at-the-blueprint-css-framework/
- This article details and compares the work that goes into creating the same site in tables and in CSS in an unbiased and judicial manner: http://articles.sitepoint.com/article/tables-vs-css
- This blog post reaffirms my sentiments about CSS being difficult to learn at first but rewarding in the end. It also makes an excellent comparison to properly coding with CSS and properly coding in Java: http://mcarthurgfx.com/blog/article/tables-vs-css-really-
Visual Consistency
After having created dozens of sites both with and without tables I have found that with div and CSS layouts it is much easier to achieve a visual consistency throughout the site.
- It is difficult to get every page to appear the same when using deeply nested tables due to the fact that one missed td or one missed spacer row causes text and image margins to appear off.
- During the development process any change made to the table structure of one page needs to be replicated on others. This becomes cumbersome even after only a few pages have been created and often a change made on one page fails to make it to the other leaving inconsistent layouts between the pages.
- One needs only to begin typing after a <div> tag near the top of the page rather than finding the proper table row 150 lines and 6 indentations into the code when using divs and CSS.
Code Readability
A basic div consists only of <div> and </div> tag while a basic table consists of <table><tr><td></td> </tr> </table> . All of these tags become further complicated with nested tables which eventually create a behemoth JSP which is difficult to dissect. Once the time is taken to learn div layouts reading through the page markup is extraordinarily easy. Unfamiliarity with the technology is not legitimate grounds for dismissing it as div layouts with CSS only take a few weeks to learn.
- I once taught a back-end developer div layouts for some admin pages on a website. Having no CSS and div experience he picked it up in a few hours and was amazed and how much simpler the JSP became.
- Using a CSS framework and div layouts my team was able to create the basic layout and integrate into it some image generating back-end code in less than an hour.
Improved Maintenance
Most will agree that the true power of CSS is in the way it allows a site to be redesigned or revamped without having to touch every single page in the site. Using a CSS driven div layout makes it possible to update the appearance of a site on a much more frequent basis without great effort.
- Although we go through painstaking detail to separate business and action logic in our Java, PHP, and .NET code we make no efforts whatsoever to separate content from layout in our page design. A well coded HTML page contains almost nothing but content while the CSS file contains all of the layout properties. Just as we create business, action, domain, and DAO classes for separation of work and easier maintenance in back-end code, we should do the same on our front-end.
- This article reviews the merits of CSS and comes to the conclusion that the separation of content from layout is the cornerstone of CSS: http://www.michaelthorn.co.uk/web-design-tables-versus-css.php
- In order to change the layout of a table based site one must edit each and every page since the formatting properties are on the page. When changing the layout of a CSS driven div layout, it is possible to achieve site-wide dramatic changes with a few minor changes to one CSS file.
- The classic example of this is: http://www.csszengarden.com/
Select a design under the “Select a design” section to watch the site change its appearance completely without altering the HTML markup whatsoever. This demonstrates how much change one can make by only altering a single CSS file when using a div layout.
Javascript/DHTML
All modern JavaScript/DHTML/AJAX techniques rely on div layouts, with the obvious exception of tools designed for sorting and manipulating tables. Creating advanced DHTML interactions is time consuming and frustrating when using tables.
- The DOM structure for a div based site is much simpler than a table based site meaning that DOM traversing, a crucial component of many JavaScript functions, is far easier in a CSS layout.
- A great deal of DHTML simply consists of rewriting CSS rules on the fly. If the original HTML relies on tables instead of CSS for its formatting properties, this incredibly integral functionality of DHTML is rendered moot.
- Virtually all jQuery, MooTools, and Scriptaculous plugins and examples are coded to interact with div layouts on the page. Relying on tables makes it difficult to integrate the wealth of wonderful JavaScript tools into our projects.
Browser Quirks
The battle cry of all of those who dismiss div layouts is that it is not well supported by browsers. This is a fair argument but it is also an argument whose legitimacy is diminishing over time.
- IE6, by far the most problematic browser, can be targeted with IE6 specific style sheets.
- Most browser inconsistencies actually arise from minor coding mistakes which some browsers forgive while others do not. Simply correcting these mistakes often fixes these problems.
- CSS resets eliminate all browser default styles meaning that as you start your actual development your site will render consistently.
- CSS Frameworks like BluePrint come already tested and guaranteed to render correctly in all major browsers, usually back to IE6.
- Tables themselves do not render consistently across all browsers and are actually often much more difficult to style since many of the table and table cell properties such as “align” and “bgcolor” are deprecated as of HTML 4.01 (source).
Modern Design
Many modern design techniques are far easier implemented with CSS div layouts than they are with a table structure. Tiled backgrounds, drop shadows, and rounded corners are just a few of the examples of prevalent design trends made much easier with CSS.
- This website, as well as many others like it, feature fantastic designs that can only be realized through CSS: http://cssremix.com/
Thinking Ahead
With CSS3 on the horizon it is clear that all future advances in HTML markup are going to be done in a table-less CSS driven manner. Quite simply, there is a ton of new functionality being developed for CSS based layouts while nothing new is happening for tables. It is crucial to begin understanding CSS now as to not be completely left in the dust in the upcoming years.
- This article demonstrates some of the amazing CSS techniques on the near horizon: http://net.tutsplus.com/tutorials/html-css-techniques/11-classic-css-techniques-made-simple-with-css3/
That’s Not Flash
Thursday, August 13th, 20099 out of every 10 people who contact me about web design/development projects list Flash as one of their website requirements. Despite this, I have yet to talk to a single client who actually needs Flash on the site. For whatever reason, the general public seems to associate ANY interactivity and movement, no matter how basic, with Flash. I’ve heard all of the following reasons for why people think they absolutely need Flash on their site:
- Embedded Videos
- Photo Galleries
- Drop Down Menus
- Menu Hover Effects
- Dynamic Content
It’s funny enough that all of this BASIC website functionality is easily accomplished without Flash, but when you start thinking about the excellent interactivity that can be achieved with DHTML and Javascript libraries like jQuery and Prototype, Flash starts to seem incredibly obsolete. I don’t know who out there is informing everybody that they need Flash on their website, but man, it has to stop. My emails to clients are really turning into broken records, listing the project requirements one by one and explaining how that’s not Flash and why it’s better that way.
eCommerce
Monday, April 27th, 2009eCommerce has pretty much been the bane of my web development existence since I really got started making sites. The problem is mostly that EVERYBODY wants to sell stuff online without realizing any of the costs or work that go into. I think a lot of people assume that online shops come at little no cost and then are just floored when I quote a price above $1000 for design, CMS, and eCommerce. In reality, $1000 is a joke of a price but it’s enough to dissuade many people. Clearly, those who give up on their store aspirations after hearing a 1k price tag were never serious in the first place- could you even imagine expecting to start any other serious business with less than $1000?
The real problem is that with each eCommerce job I don’t do I feel like I’m falling farther and farther behind, which is never good in the high speed world of web design. Are there any designers/developers out there who know of some foolproof, low cost eCommerce systems that can convince clients that spending some money is actually worth it?
More handy links
Saturday, April 11th, 2009A very nice looking design gallery:
http://csscreme.com/
A gorgeous shopping cart system
http://bigcartel.com/
Just about every programming book you could ever want online, FREE!
http://docstore.mik.ua/orelly/
Archives
Categories
- CMS Applications (14)
- CMSMS 1.6 - Beginner's Guide (8)
- Freelancing (6)
- jQuery (3)
- Musings (2)
- Projects (8)
- Uncategorized (5)
- Web Design (12)
- Web Programming (17)
-
Recommended Reading
