What’s the point of HTML5 Boilerplate?

This isn’t a rhetorical question, I’m genuinely trying to understand what the point of this package is. I’m sure a lot of people have invested a lot of time and energy to it, but maybe I’m just missing something.

And I did read the “Why it is good” section on the project site, but still couldn’t figure out why all of this shouldn’t be known to a designer to begin with as it seems to me that this stuff is a collection of Googlings or stuff that can be resolved by browsing the spec page for a bit. And browser quirks aren’t something that will trouble you if you keep to sane uses of CSS and HTML; a lot of problems can be avoided when following the rule of Less is more.

Cross-browser compatible (IE6+, yeah we got that.)

IE6 is dead. Supporting a dead or dying browser makes no sense at all and, realistically speaking, any “advanced” feature you’re trying to push via HTML5 on your site will be thoroughly broken on it anyway.

Browsers that matter (I.E. ones you want to push your flashy new site on) will likely have other issues besides how well it renders every pixel on screen. Besides that, “cross-browser compatible” is usually a byword term for “not accessible” so in essence there’s a lot of mutually exclusive stuff pushed with the package with regard to accessibility.

HTML5 ready. Use the new tags with certainty.

Modernizr allows you to do this already and most browsers (even the old ones) simply treat a lot of the new architecture tags like <article>, <section> or <nav> as just a div by default.

Video and audio are the sticking points for most HTML5 sites with media and while you can do embedding fairly easily, the hard part is the codec standard (which none of the major vendors are agreeing on) so that leaves the embed tag you choose a non-issue compared to the codec headaches.

Optimal caching and compression rules for grade-A performance

jQuery caches dynamically loaded scripts as does Modernizr and most web hosts already have mod_deflate enabled for HTML, CSS and JavaScript.

Best practice site configuration defaults

Less is more. See above.

Often times, if you’re struggling to make a layout look exactly the same as a mockup, you’re writing more markup and not effective markup. CSS and HTML only get complicated when you try to do things that are best left doing with images rather than pure markup.

Mobile browser optimizations

Less is more (2). See above.

Also, modern mobile browsers are fully capable of rendering a page meant for a full screen; Mobile browsers have a zoom feature. The issue isn’t the rendering, it’s the data plan. Worry more about “how much” you’re sending to the mobile device rather than “how” it’s rendered.

Progressive enhancement graceful degradation … yeah yeah we got that

Less is more (3). See above.

Browsers that will render HTML4 will render HTML5 without issue for the most part. CSS 3 with conditional 2.1 or older may help with older browsers, but what will really help a visitor is a helpful reminder (if they’re on IE 6) that they’re using a dangerously insecure browser and should upgrade right away. Let’s be more concerned with our civic duty to protect the web and its users than how pretty our sites look for a change.

IE specific classes for maximum cross-browser control

Less is more (4). See above.

There’s a line in Star Wars Episode IV: A New Hope by Princess Leia to governor Tarkin

The more you tighten your grip, Tarkin, the more star systems will slip through your fingers

Sensible control is a better option than “maximum” control. You want your site to look good (“perfect” is a dream until we all start using the same browser; at which point I’d rather not be developing for the web) so think about this… what is it that you’re trying to accomplish with your site? And does your preoccupation with perfection keeping you from accomplishing it?

Handy .no-js and .js classes to style based on capability

Less is more (5). See above.

Sensible use of CSS 2.1 and 3  will get a great deal of the same functionality as JS. I’d much rather see designers become familiar with 2.1 first as there are a lot of basics that get skipped that lay a good foundation. You would be amazed at how little markup you actually need to get a good result.

Also, JS gets ignored by three kind of visitors :

  • JS Disabled, but capable – Aren’t interested in being bothered with ads or other flashy nonsense and will likely be interested in the content rather than presentation. Be concerned with the quality of the content and just make it available without hurdles.
  • JS Incapable – Usually screen readers, text only or other such specialty browser. CSS is only applicable for accessibility.
  • Bots – Don’t need CSS anyway.

Again, here is a good case for using sensible CSS rather than clever CSS.

Console.log nerfing so you won’t break anyone by mistake.

This is vendor specific stuff that shouldn’t be encouraged too much. Firebug is fine and all, but if something “breaks” something else, it’s usually a result of poor encapsulation.

Also… Less is more (6). See above.

Never go wrong with your doctype or markup!

Never underestimate a novice developer’s ability to break the unbreakable. I remember Adam Savage of the Mythbusters once giving a presentation and mentioned how surprised he was that actors were able to break welded steel on certain stage props (back in his prop making days) by merely handling them. If there’s a way to break it, they will find it. Also of note, Less is more (7) and the less markup you have, the less you will likely break it.

An optimal print stylesheet, performance optimized.

If your HTML5 layout can’t be made printer friendly with the following :

body { color:#000 !important; background:#fff !important;}
aside, footer { display:none !important; }

You’re doing it wrong or doing it too complicated.

Also… Less is more (8). See above.

iOS, Android, Opera Mobile-adaptable markup and CSS skeleton.

Less is more (9). See above.

As mentioned before, mobile devices today aren’t the text only readers of yesteryear. When multi-touch is becoming commonplace, your chief concern should still be bulk, not pixel perfection.

Fun fact: A pixel is not really a pixel on a mobile screen.

.clearfix, .visuallyhidden classes to style things wisely and accessibly.

Never been a fan of hacks. You can bash IE all you want, but there are ways to get around it without resorting to too much CSS witchcraft. And since Less is more (10), you automatically improve accesibility by simply not piling too much on the browser to begin with and taking a browse at the above linked spec page for HTML5 and CSS3 at w3schools.

.htaccess file that allows proper use of HTML5 features and faster page load

Also guarantees to break any CMS. There are some things in the default .htaccess that do make sense like denying access to hidden folders or log and other such special files, but then there are other things that are completely pedantic or just plain asinine. Like forcibly rewriting http://www.example.com into example.com. Honestly what’s the big deal?

And measures like setting session.cookie_httponly makes sense if you don’t use JavaScript to manipulate cookies on your own web application. This is a classic case of more security not necessarily being better than just better security. You should be vetting your application for SQL injection and XSS vulnerabilities and not handicapping yourself. Security is a process, not a destination, and the .htaccess isn’t something to be casually played with. You’re better off not having a .htaccess file there at all and instead a link to the OWASP page so anyone who downloads the package can familiarlize themselves and understand what it is they’re doing rather than copy > pasting.

And then there’s this :

# Force the latest IE version, in various cases when it may fall back to IE7 mode
#  github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it’s installed for a better experience for the poor IE folk

This may be a secret to a lot of people and you may not know this about IE users, but please believe me when I say this, it’s completely true. Most IE users DON’T GIVE A SH!# ABOUT WHICH JS ENGINE THEY HAVE!!

If your site needs a JS engine swap to make it work better on IE7, then it’s more poorly designed than IE7.

Also, did I mention Less is more (11)? See above.

CDN hosted jQuery with local fallback failsafe.

I’m fairly certain that the Google library or the one hosted by Microsoft are unlikely to be unavailable unless you’re hosting your site in Iran or China (do they block ajax.googleapis.com?) Other than that, this is a 3 second fix for anyone using Modernizr or jQuery.

Think there’s too much? The HTML5 Boilerplate is delete-key friendly. :)

Enter-key friendly will always leave less cruft in your code than delete-key friendly.

Here’s all you need to start with HTML 5 (add more as necessary) using just the bare essentials to get going.

A basic index.html file

<!DOCTYPE html>
<html lang="en-us">
<head>
	<meta charset="UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />

	<title>Site title</title>
	<script type="text/javascript" src="lib/modernizr.min.js"></script>
	<script type="text/javascript">
		var spath = "lib/";
	</script>
	<script type="text/javascript" src="lib/loader.js"></script>
	<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
	<div class="page">
		<header>
			<div class="title">
				<h1><a href=".">This is a site</a></h1>
				<p>Some sorta description</p>
			</div>
		</header>
		<article>
			<section class="column two-thirds">
				<h2>Section header</h2>
				<p>This is where your main content goes.</p>
			</section>
			<aside class="column one-third">
				<h3>This can be the sidebar</h3>
				<p>Put your links and stuff here.</p>
			</aside>
			<footer>
				<p>Copyright and stuff here</p>
			</footer>
		</article>
	</div>
</body>
</html>

You can download Modernizr here. Using modernizr, here is the loader.js file (gets the basics downloaded including jQuery, validation and jQuery UI).

if(!window.jQuery)
Modernizr.load([{
	load: "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
}, {
	load: "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"
}, {
	load: "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.min.js"
}, {
	load: "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"
}, {
	load: spath + "yourlib.js"
}]);

You can add more of your own libraries as necessary, but yourlib.js can be just a jQuery specific code file.

$(function () {
// More of your stuff here
});

And here’s a usable style.css that you can run with.

/* Default */
body
{
	font-family: "Segoe UI" , Tahoma, Sans-Serif;
	font-weight: normal;
	font-size: medium;
}

@media screen
{
	/* Reset */
	body, div, header, article, section, aside, footer,
	p, h1, h2, h3, h4, h5, h6, ul, li, blockquote,
	form, fieldset, legend, input, textarea, select,
	table, td, th, hr
	{
		margin: 0;
		padding: 0;
		border: 0;
		line-height: normal;
	}

	body
	{
		font: normal 86% "Segoe UI" , "Myriad" , Tahoma, Sans-serif;
		color: #333;
		background: #fff;
		margin: 0;
		padding: .7em;
	}

	div.page
	{
		width: 80%;
		max-width: 1200px;
		min-width: 800px;
		text-align: left;
		margin: 0 auto 1em auto;
	}

	/* Headings */
	h1, h2, h3, h4
	{
		font-weight: normal;
		padding: .4em 0 .1em 0;
	}
	h1
	{
		font-size: 230%;
		color: #a33;
	}
	h2
	{
		font-size: 150%;
		padding: .4em 0;
	}
	h3
	{
		font-size: 140%;

	}
	aside h3
	{
		border:1px dotted #aaa;
		border-width:0 0 1px 0;
	}
	h4
	{
		font-size: 130%;
	}
	h5
	{
		font-size: 120%;
	}
	h6
	{
		font-size: 110%;
	}

	/* Page segments */
	article, header, footer, hr
	{
		clear: both;
	}
	header
	{
	}
	article
	{
		width: 100%;
	}

	header:first-child
	{
		margin: 0 0 1em 0;
		border: 1px dotted #aaa;
		border-width: 0 0 1px 0;
	}
	footer
	{
		border: 1px dotted #aaa;
		border-width: 1px 0 0 0;
	}

	aside
	{
		background: #f8f8ff;
		box-shadow:3px 3px 3px #ddd;
		border-radius:3px;
	}

	hr
	{
		background: #a33;
		height: 1px;
		margin: .5em 0;
	}

	/* Paragraphs */
	p
	{
		line-height: 140%;
		padding: 1em;
	}

	.column p
	{
		padding:1em 0;
	}

	section p
	{
		padding: .2em 0 1em 0;
	}
	aside p
	{
		padding: 1em !important;
	}

	form p
	{
		line-height:normal;
		padding:.2em .5em .5em .5em !important;
	}
	header p
	{
		padding: 0 0 1em 0;
	}

	footer p
	{
		font-size: 90%;
		color: #000;
	}
	blockquote p
	{
		padding: .4em 0;
	}

	/* Block content */
	blockquote
	{
		background: #f5f5ff;
		border: 1px dashed #aaa;
		padding: .4em 1em;
		margin: .5em 0;
		border-radius:.5em;
	}

	/* Columns */
	.column
	{
		float: left;
		margin: 0 2% 0 0;
		padding: .2em 0;
	}

	.half
	{
		width: 47.4%;
	}

	.two-thirds
	{
		width: 64.7%;
	}

	.one-third
	{
		width: 31.3%;
	}

	.one-fourth
	{
		width: 23%;
	}

	.one-fifth
	{
		width: 18%;
	}

	/* Images */
	img
	{
		vertical-align: middle;
	}
	a img
	{
		border: 0;
	}

	/* Links */
	a
	{
		color: #a33;
	}
	nav a
	{
		color: #a33 !important;
	}
	h1 a, h2 a, h3 a, h4 a
	{
		text-decoration: none;
	}
	h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover
	{
		text-decoration: underline;
	}

	/* Pager */
	nav.page
	{
		font-size:120%;
		padding:1em 0;
		clear:both;
	}

	nav.page strong, nav.page a
	{
		font-weight:bold;
	}
	nav.page a
	{
		text-decoration:none;
		font-size:90%;
	}
	nav.page a:hover
	{
		box-shadow:2px 2px 2px #ddd;
	}
	nav.page strong
	{
		font-size:120%;
	}

	/* Tags */
	aside p.tags
	{
		line-height: 200% !important;
	}
	a.tag
	{
		padding: 7px 3px !important;
		text-decoration: none;
	}
	a.tag:hover
	{
		text-decoration: underline;
	}
	a.x1
	{
		font-size: 11px;
	}
	a.x2
	{
		font-size: 12px;
	}
	a.x3
	{
		font-size: 13px;
	}
	a.x4
	{
		font-size: 14px;
	}
	a.x5
	{
		font-size: 15px;
	}
	a.x6
	{
		font-size: 16px;
	}
	a.x7
	{
		font-size: 17px;
	}
	a.x7
	{
		font-size: 18px;
	}
	a.x8
	{
		font-size: 18px;
	}
	a.x9
	{
		font-size: 19px;
	}
	a.x10
	{
		font-size: 20px;
	}
	a.x11
	{
		font-size: 21px;
	}
	a.x12
	{
		font-size: 22px;
	}
	a.x13
	{
		font-size: 23px;
	}
	a.x14
	{
		font-size: 24px;
	}
	a.x15
	{
		font-size: 25px;
	}

	/* Lists */
	ul, ol
	{
		margin: 1em 2em;
	}
	ul li, ol li
	{
		margin: 0 0 .3em 0;
	}

	/* Form elements */
	header form
	{
		float: right;
		margin:3.5em 0 0 0;
	}
	header form legend
	{
		display: none;
	}

	fieldset
	{
		border: 1px solid #a33;
		border-color:#a33 #ddd #ddd #ddd;
		box-shadow:3px 3px 3px #ddd;
		margin: 0 0 1em 0;
		padding:.3em;
	}

	.column fieldset
	{
		min-height:15em;
	}

	legend
	{
		font-size: 130%;
		padding: .2em .3em;
		margin: .2em 1em 0 1em;
	}

	input[type^='button'], input[type^='text'], input[type^='password'], textarea
	{
		border: 1px solid #999;
		border-radius:.3em;
		background: #fff;
		color: #575757;
		padding: .4em;
	}
	.column input[type^='text'], .column input[type^='password'], textarea
	{
		width: 90%;
	}
	input[type^='text']:focus, input[type^='password']:focus, textarea:focus
	{
		border-color:#a33;
	}
	textearea {
		font: normal 100% "Segoe UI" , "Myriad" , Tahoma, Sans-serif;
	}

	input[type^='submit'], input[type^='reset'], input[type^='button']
	{
		cursor: pointer;
		background: transparent;
		font-size: 120%;
		color: #a33;
	}

	label input:not([type^='checkbox']), label textarea
	{
		display: block;
	}
	label span
	{
		font-size: 75%;
		font-weight: bold;
		color: #a33;
	}

	input.error
	{
		color: #000;
		background: #fcc;
		border: 1px solid #a33;
	}

	label span
	{
		font: bold 75% sans-serif;
		color: #a33;
	}

	label.error
	{
		padding: 2px;
		color: #fff;
		background: #f33;
	}
}

@media print
{
	body { color:#000 !important; background:#fff !important; }
	aside, footer { display:none !important; }
}

/*
Chocolate? This is doo doo baby!
- Dave Chappelle
*/

I do know that HTML5 Boilerplate is doing a very good job of promoting HTML5 Boilerplate.

All in all, it seems to be a solution to a problem that doesn’t really exist. Or maybe I’m wrong.

Advertisements

Three praises of cloud computing

This was, once again, a long winded comment that I decided to turn into a post. I really need to work on my verbal diarrhea.

In response to Nicholas Sinlock‘s Three critiques of cloud computing post yesterday, here is the opposite point of view. (Please check out the rest of his posts. They’re well worth your time.)

First, let me address some of your critiques…

I can certainly understand your reservations as well as Stallman’s. While the criticisms are valid, they also side-step a bit of our own history re: computing. That is to say all computing endeavours started out with abysmal reliability, questionable control, and imaginary security.

These are not excuses for lackluster performance today, but by relative comparison of the platforms of concern, specifically Gmail as in Stallman’s example, they are actually at a head start. However, the fact that this is merely emerging technology, these concerns may yet to be addressed to a degree computing experts will be satisfied. Give it a couple of years ;)

Addressing Gmail :
I don’t use a web browser to access my accounts. Considering I have a dozen or so email addresses and I’ve subscribed to dozens more newsgroups, I use Mozilla Thunderbird, an open source mail client, instead.

And specifically addressing Google’s ownership of Gmail :
Hey, they’re no worse than Hotmail, Yahoo! or Hushmail. It’s rather unrealistic and quite silly to expect everyone to run their own mail daemon if that was Stallman’s expectation. In this case many of us have no choice but to use a hosted service anyway. Besides, privacy is always relative on the Net when it comes to email.

The trap that wasn’t

I don’t view this as just more proprietary creep (a la feature creep) as Stallman does. The platforms offered today, as is the case with many icons in prolific use, are only the tip of the iceberg.

We have alternatives to proprietary software in quantities (and qualities) never dreamed of before. In fact there are several that are only available as OSS. As far as idea bins go, CC software is right up there with the Operating System in terms of developer magnetism.

I can see OSS alternatives to CC proprietary competitors today in as soon as 3-5 years. In the same spirit as Wikipedia and the Web Archive, it is only a matter of time when free alternatives are brought to light sponsored by good samaritans, if not idealistic ones. Where slogans like “knowledge should be free” reign all over these projects, it isn’t too much of a stretch to see even the likes of Ibibilo getting into this.

I see the proprietary and paid CC providers as a major motivator for the creation of free alternatives and may even bring about the end of vendor lock-in, in regard to desktop publishing and office software.

This isn’t 1997

… When browsing the Internet was a matter of clicking on one of those icons found on the desktop of a Windows PC that came bundled with Prodigy, Earthlink, AOL, MSN etc…

Considering the nosedive in bandwidth prices these days for hosts as well as the proliferation of higher speed networks for homes, access and reliability are quite a bit higher than they were back when I was in high school.

We’re already depending on machines run by someone else in day-to-day life. So much so that we barely notice. Every time we book a flight, or buy something online, or check into a hospital, or do something as mundane as check our email, we’re relying on systems run by someone else.

The reason why this magnificent ballet works isn’t because it’s perfect, but because it’s continually being perfected. In other words, since the first Internet node came online, we’ve done nothing but perfect the system. It’s the procedure and path of perfection that makes it all work, not “Perfection” as a destination.

Instead of driving across the country, we’re booking flights instead. We’re taking the chores related to working out of our hands so we can actually focus on the work. E.G. Looking for service stations, checking tyres, checking oil, checking maps etc… are all part of going to work if you live some distance from it. But by booking the flight, we can focus on the actual meeting.

All I’m doing in the cloud is just handing over the chores of work so I can focus on the work itself. The question, then, isn’t “do I hand over control?” It’s “do I need to control this aspect of it?”

Considering :
CC won’t be limited to the current providers.
And, not all CC providers will be run by incompetent nitwits.
And, not all CC servers will be located in the U.S. where court orders are optional for violations of privacy…

…I think it’s a reasonable choice given the alternatives. In fact, dare I say, it may be a safer alternative than storing all your content at home where it’s, potentially, easily available to anyone entering without your permission.

Redundancy is cheaper in bulk

Hardware and software failures are just a part of life for those of us who spend so much time on our computers. However, if I can have the option of datacenter calibre redundancy and storage capacity, I would certainly go for that.

Though the cost of computing hardware is always falling, it never seems to fall fast enough to keep up with my software. And I’m not even talking about games. OpenOffice, Gimp and Audacity in particular seem to balk at my 2Ghz 2.25Gb RAM Aspire 9200. Of course, I was listening to music, surfing and had all of those applications open at the same time and had Photoshop running for some reason… But that’s beside the point. *cough*

If I could get a raid 5 array and 7 – 10 drives, I certainly would.
If I could get failover in that array without lifting a finger, I certainly would.
If I could get all those drives in 1.5 TB increments, I certainly would.
If I could get unlimited replacements for them, I certainly would.
…But I can’t afford it.

But if I’m buying software and hardware for a company, then I certainly would be looking into a couple of raid arrays. Maybe not in those exact specs, but it’s something to look into. I would probably look into two arrays in fact. One for storage, and another for applications.

As I mentioned above, I think it’s only a matter of time before open source alternatives are available for CC platforms. And I think one of the biggest sellers is in the office and school arena where there are potentially dozens to hundreds, if not thousands, of computers all using the same set of applications.

I think CC software will find quite a nice market in the office and in school. Not to run over the Internet, but over the local network. I hope there are developers already implementing this as it seems like the next logical step to bulky, locally installed, software.

Imagine, if you can install a CC bundle on a local server for easy access… Considering the majority of processing takes place at the terminal and only save/backup operations take place at the server, you’re actually reducing the vulnerability by splitting the work between your terminal and the server.

If for some reason your terminal were to fail, and you had your work saved locally, it’s possible that some to most of it will never be recovered. After all, how many offices or schools do you know where each and every computer saves to a raid array?

But if you had a central server for applications and another server for saving, if there is a failure in either one, your options are far more varied. If the save server fails, your data will still be saved in the array. If not in the backups. It’s a lot easier to backup one or two servers than to backup an entire collection of computers. It’s also a lot easier to restore one or two servers than to restore an entire collection.

CC, as far as I’m concerned, is the next logical step after the diskless client. There are already implementations of “installed” software running on the server, but if the option of running the software locally via a browser is available, then I say go for it!

CC software has the potential to reduce costs by a huge margin. If only because we won’t have to rely so much on local storage for our files. Portability will also skyrocket, as a lot of energy and space is reserved for storage on mobile devices such as laptops. And with the advent of free alternatives, I’m sure, it will be well worth the wait.

The corporate bulls@%&! reference

It seems that people have tough time wading through every new term that comes up in the “Web 2.0” world, so I have tried to be helpful here in your effort to navigate the cyber waters. Hopefully you will see that the terms themselves are perfectly harmless, but those who come up with them and use them at every opportunity are a different matter entirely.  Without further ado…

  • Web 2.0

    Sadly, it doesn’t exist. This is a contrived term used to introduce such human-contact-removing devices, as social bookmarking sites, video sites such, and other user generated content sites. These places are nothing more than public sink-holes (despite the occasional nugget of gold) that have somehow become fashionable due to the use of over-sized text in buttons, redundant and/or inappropriate JavaScript and Flash® usage, conflicting and malformed CSS, unusable “Tag Clouds” as well as the graphic overuse of the Georgia font.

  • AJAX

    Otherwise known as JavaScript. This has been the bane of disabled users and accessibility experts on the Internet since the 90’s. The idea is that certain content can be dynamically loaded or modified without refreshing the whole page. While this may seem like a good idea, it actually breaks the “Back” button on your browser. In short, it’s a poor-man’s Flash®, but more fashionable since it was hobbled together with dozens of script libraries that increase your page download size by about 50% – 70%.  (As we all know, clothing that looks like it’s about to fall apart is very fashionable. If you don’t believe me, take a look at any award show.) A great substitute for “real” content. I’ve designed multiple sites for disabled individuals and it almost makes me cry to think how poorly an AJAX infected site would perform on a screen-reader.

  • Evangelism

    Another brilliant idea contrived by this guy. It’s an “art”, therefore, it has arbitrary constructs here and there which would fit right in that “Philosophy” class you took as a business major to fulfill your requirements. Go ahead and take a read, it follows just like a step-by-step guide on how to create your very own cult. After all, who needs substance in a “cause” if you’re passionate about its hype. The unfortunate side-effect is that some people use “Evangelism” as a free license to spam everywhere. They don’t consider it to be spam because they “engage” (very thinly) in conversation before plugging their product. How is this different from spam? They do it personally and it’s content targeted. Since no automation is involved, it’s perfectly OK… Makes sense to me!

  • SPAM

    See : “Evangelism”

  • Promotion

    See “SPAM”

  • Experience

    Are you familiar with Usenet or IRC? I’m not kidding… This is what some people consider to be part of their “experience”: Your time spent wading through spam and chatrooms.  Actual experience in practical problem solving may be optional. It’s not like you’ll never have a point-by-point list of troubleshooting tips on your lap, right? What’s next? People putting “blogging” as part of their “experience”?

  • PDF

    Portable Document Format. Almost guaranteed to be followed by a link to the Adobe® Reader since it was put together by people with “Experience” who weren’t aware of the alternatives. This format was originally intended to make sure that presentational text and images are properly displayed on any platform. But just like “Evangelism”, everyone with a lot to say decided it was a good idea to cram plain text that would otherwise have been fine as HTML. Nothing says, “we care as a company” like alienating your disabled customers.

  • Mashup

    See “SPAM”

  • Rich Internet Application

    The holy grail of unemployed college graduates. It is essentially the combination of “Web 2.0”, “AJAX” and “Experience” on the part of the content authors, so you can look forward to brilliant eye-candy with 100% style, 100% inaccessibility and 0% substance.

——————- 

Well, that’s all I can define for today with my limited patience. Once I recover from the trauma of having to, in a somewhat dignified manner, define these terms in far more detail (without the double-talk and space-filling BS) than the creators of said terms bothered to do, I will try and post more.

Dear One Trick Ponies:

Is it better to create something useful and unoriginal or useless and original?

That’s the double-edged sword by the developers behind Twitter Blocks. Being original, often results in the product being viewed as useless as… well… they haven’t figured out a use for it yet. Conventionally speaking, the product is completely useless (emphasis on conventional) as so obviously demonstrated by the criticism surrounding the launch. But, it still gets used and, considering many of the other web apps out there, it is very original (at least in implementation).

So what have you developers created recently that could be considered original?

Content Management Framework?

Reworded Content Management System. Yeah, like the several billion other CMS’s out there… What’s the point? The only time to create something from scratch would be for an incredibly minimalistic CMS for a very unique project. There are plenty of them to choose from, but not many that aren’t bloated or otherwise overly “feature rich”.

Blog?

A stripped down or otherwise modified CMS anyway. I could have used a custom blog engine to write this, but why should I? What would be new unless it was for a significantly unique job? Next…

Gallery

NEXT…

Web Application Framework?

Not-Invented-Here syndrome. Granted there’s an appropriate place for every tool, but come on… Unless it uses a completely new concept in frameworks, what’s the point? There are already thousands of MVC tools out there that can be easily adapted. The only thing less original than a CMS is a tool to build CMS’s.

In keeping with my position that 50% – 70% of all programmers are con-artists (something I will not change until I have good reason to) the only talent most people seem to have is adapting (or stealing) code that already exists, making a few changes and selling it as your own. So I’m right!

I may be influenced, somewhat, by my belief that services are more significant and tangible than a product.

It’s easy to criticise something as useless (which is stupid in itself, considering people found a use for the Pet Rock), but it’s much harder to be original in anything at all.