Latest Articles and Blog Entries
Sitepoint's "Web Site Revenue Maximizer" - Why?
posted Jul 1, 2008 at 06:14:56 PM by Doug Gibson.
As I've previously mentioned, I've become a fan of some of Sitepoint's development books lately. However, they've been mailing me about their special promo price for their latest "kit" (book+CD-ROM) called "The Web Site Revenue Maximizer." Their special price (ends today) is $149, and it will soon be nearly $200. For a split second, I thought about ordering before the special expired just to be able to fill in any gaps in my knowledge on this subject. But upon checking out the table of contents and sample chapters, I was left wondering "why bother?" Sure, price positioning is a decision everyone has to make for products, and Sitepoint's kits are priced fairly high, targetting professionals. Sitepoint can sell a few hundred or thousand of these kits promising that readers will make the money back and make some serious cash. But with the other excellent free resources out there, I don't see the point in buying into this kit in the first place.
Continue reading "Sitepoint's "Web Site Revenue Maximizer" - Why?."
Leveraging CSS is 75% Markup and 25% CSS
posted Jun 29, 2008 at 12:17:14 PM by Doug Gibson.
I really planned to do more ColdFusion blogging, but I find myself more intrigued by CSS lately. After all these years there still seems to be some mystique about CSS to some developers and designers alike.
Over the past couple of years I've been refining my process for creating site layouts and modular CSS. During that time, most of the refactoring involved has been reworking parts of the markup to be more modular or to use markup that meets my (now) more strict semantic requirements (than when I first started using CSS) and provides all of the hooks for the techniques I may want to apply with CSS. I'm still refining some smaller things here and there, as I discover new techniques.
I recently returned to working on the application that I did my very first table-less CSS layout on, and looking at the markup, I can see what a difference semantic markup makes!
I've been using CSS since 1998 (more heavily in 1999), but didn't really know the best practices in markup until the last few years, making my initial efforts at CSS layouts frustrating attempts of trial and error - not unlike the experience of using CSS in Netscape 4! I actually abandoned my first attempt at redesigning Metalunderground.com in CSS because the layout was too complex for me to pull off. I finally opted for a wrapper table and minimally nested table layout. (Note: Metalunderground.com has since been redesigned twice, first using CSS and then a recent underlying code cleanup, which helped immensely for general coding and CSS-specific techniques).
As many developers and designers can attest, learning CSS itself isn't as hard as knowing which techniques to use in various scenarios, the drawbacks to certain techniques, and how to work around browser-related bugs. Some techniques such as floats versus absolute positioning are purely CSS, but a number of other techniques are based on how you've chosen to mark up your document.
Compound that with the sad truth that many web designers and developers - even experienced ones - don't really know proper HTML or XHTML, much less the best practices of semantic markup, and you can see why CSS still appears difficult after all these years. I was in the same position about five years ago, having used CSS for several years, but still struggling with CSS layout due to not using the best practices for the underlying markup or knowing the proper techniques to use.
So why is it that many developers don't know proper HTML or XHTML? I've encountered all sorts of reasons for this - legitamate and not - over the years. Here are some of the reason that web developers and designers may not know basic proper (X)HTML markup and therefore may have trouble with CSS layout:
Continue reading "Leveraging CSS is 75% Markup and 25% CSS."
Get Sitepoint's Photoshop Book As A Free PDF
posted May 31, 2008 at 09:28:48 PM by Doug Gibson.
I've recently become a fan of Sitepoint's web development books - especially their front-end (CSS and JavaScript) and design books. They don't usually offer much ground-breaking material, but they are good at getting one up to speed on current practices and qualifing the benfits and drawbacks of various techniques.
Sitepoint recently offered up their 278 page book, "The Photoshop Anthology: 101 Web Design Tips, Tricks & Techniques," for a limited time free PDF download. I passed on buying this one simply because I don't have a recent version of Photoshop, and unfortunately all the good tutorials and resources are for Adobe Photoshop CS1 (many are CS3 now) and up.
It could be that Sitepoint is planning to update this book to a new edition, as Adobe CS4 is around the corner. Sitepoint previously release a Rails 1.0 book for free download as well, but sent out an email about the Rails 2.0 book and upgrade options. They could be using a similar tactic for this PhotoShop book, but free is still free, so go download it.
Web Developer, Web Designer, or Graphic Designer?
posted Apr 24, 2008 at 08:52:48 PM by Doug Gibson.
Apart from the disturbing statements I heard about ColdFusion while job hunting earlier this year, another thing that I found interesting was the terminology used for front-end work.
Since I was also looking for CSS work, among other things, I was called for quite a few interface design and web designer positions. It's been a while since I had been job hunting prior to this, so I hadn't really given much thought as to my position title. Afterall, I don't usually pay attention to my title at the places I work even, as they are often made up by Human Resources or other people who don't know the technology much less have any rhyme or reason to them. So "web developer," "software developer," "software engineer," "programmer," etc., (with an optional designation of 1-4 or 1-5) - it doesn't matter to me as long as I am getting paid according to my experience and doing what I like to do, which basically comes down to utilizing my array of skills and having some input into the decision making process on the project.
Back to the topic at hand though. I usually just refer to myself as a "web/application developer." Six years ago I would never have considered myself a "web designer" or a designer at all. Sure, I've been using CSS since the early days (Netscape 4) and Photoshop since version 3, when it came on floppy disks, and have an art background, but I do not have the raw artistic talent and I am generally just not creative on demand (in the artistic sense).
Yet, after hearing all of the types of jobs I was being contacted about, and was actually qualified for, I began to accept the title of web designer for two reasons. First, CSS is how you implement design these days, afterall, and I've gotten pretty good with my CSS layout skills and making them extremely modular. Second, a web designer is simply someone who designs sites and who understands (and respects, IMO) the medium. It has always peeved me when "designers" - who, in light of this discussion, I would now call "graphic designers" instead of "web designers" - push the boundaries without considering the web as a medium and the consequences of their actions on that medium or the landscape of users out there.
In broad terms, considering the web as a medium means understanding the basics of usability and accessibility. These areas span designing for different people and different devices (with different resolutions and various levels of support for underlying web technoligies such as HTML, JavaScript, Flash and more). Wow, those are some broad qualifications for a web designer, who several years ago was traditionally focused on making the site look pretty with graphics. But in reality, a web designer needs to be well-rounded and versed in these areas as well as capable of implementing a design in modern standards-based methods. Without those skills, the person is merely a graphic designer, or perhaps less than spectacular web designer.
Continue reading "Web Developer, Web Designer, or Graphic Designer?."
dgibson.net Going On Another 7-Year Hiatus
posted Apr 1, 2008 at 04:11:32 PM by Doug Gibson.
Dgibson.net going on another 7-year hiatus? Nah. There really aren't any good April Fools pranks that I can play here, on my personal blog. However, I thoroughly enjoy this time of year and creating ficticious stories for posting on my other site,
Metalunderground.com.
You can check out the stories we ran today as well as in previous years with the links below:
- April Fool's Day, 2008
- April Fool's Day, 2007
- April Fool's Day, 2006
- April Fool's Day, 2005
- April Fool's Day, 2004
- April Fool's Day, 2003
Some of the better April Fools I've seen done today are as follows:
- World of Warcraft Announces the Bard Hero Class (I don't even play, but this is really well done)
- World Of Warcraft: The Molten Core (not so funny, but you have to watch the video on that page - it's classic!)
- New Xbox 360 Spring Line
I'll update as I find some more really good ones. I wasn't really impressed with Google's attempt this year, but they've had some great ones in the past.
Tagging vs Categories, and Hybrids Thereof
posted Mar 27, 2008 at 10:07:46 PM by Doug Gibson.
After tweaking my CSS (still in progress on some minor things such as code displays and the comment form), and implementing SES URLs, the next thing I planned to implement is a tagging system. This sounds pretty simple, but as I debate the best way to go about it, I've become paralyzed in thought over it.
The flexibility of tagging is a strong point and the primary reason that tagging caught on several years ago. The many-to-many relationship of tags to the items being tagged make tagging work where hierarchical categories simply do not.
It's great for the general user to label things however they want without restriction. But as any seasoned user of del.icio.us (I have nearly 2500 bookmarks at the time of writing this article) knows, this flexibility eventually turns into chaos. Inconsistencies become apparent as you find that some of your items were tagged singularly and some plurally. People make their own compound tags differently, using dashes, underscores, or dot notation - and some people are inconsistent in that as well. If you start out simple, you may find the need to add more tags later on for greater descriptiveness.
I'm not necessarily seeking a system that will address all of the above issues. Rather, I am looking for a way to create some more order within a flexible tagging system. I could come up with some simple solutions like adding a parent key to each tag's database entry, which would allow for some hierarchy (however messy it would be to take advantage of on SQL 2000 right now). Thinking of some other projects I'd like to use this codebase for, I would also like to be able to have groups of tags that are not in a hierarchy. I.e., the tag group is not selectable as a tag. For example, perhaps I am writing tutorials and want to tag them by technologies used as well as difficulty level (beginner, intermediate, advanced). I could use a flexible tagging system for this, but interface-wise it makes sense to have these tags grouped rather than be free-form entry tags.
While I could certainly construct my own ad-hoc system, I'm wondering if anyone has any experience or has read about more robust taxonomies that may address my needs and could point me to some articles or examples.
Implementing Search Engine-Safe (SES) URLs
posted Mar 14, 2008 at 04:40:38 PM by Doug Gibson.
I recently implemented SES (Search Engine Safe) URLs here on my blog for the first time ever. I read a number of posts about it. Techniques range widely from using Apache's mod_rewrite, which I initially favored, to using a Java servelet, to using ColdFusion to parse out the URL (similar to what Ray Camden does on Blog.cfc), to using 404 and missing template handlers.
In addition to the many techniques, there are many different angles to approach the topic. Several terms seem to be used interchangeably, but I think there are really different intentions behind each of them. There are Seach Engine Safe URLs, Friendly URLs, Pretty URLs, and Meaningful URLs.
What I would call a friendly URL or pretty URL is one that is coded to be the shortest possible. So the following URL:
http://dgibson.net/blog/categoryid=1
might be represented by a short, memorable and typable URL such as:
http://dgibson.net/blog/coldfusion
These types of URLs require a lot of assumptions in your specific application. If you know them upfront, you could implement this in CF or Apache just the same. But then you need to have a different rule for actual articles (as opposed to the category page).
However, I was not worried about the looks of my URLs so much and going to that extreme. The basis for Search Engine Safe URLs - and my choosing them - is two-fold:
First and foremost to avoid the use of a standard query string, which can hinder low-ranking or new web sites from being fully indexed. Surely Google, et al can index dynamic content by now, but they tend to not index dynamic content on newer sites as aggressively. By not using the query string, all of your pages appear static to the search engines, and therefore get index more thoroughly.
Second, by including a URL stub (a human-friendly, keyword-rich URL version of the headline), you are both making the topic of the article known from looking at the URL and stuffing it with some keywords taken from your headline, which should help your search engine ranking.
Like I said, I initially planned to use Apache's mod_rewrite facilities. I've used them before, but when doing so, the URL is always updated in the browser's address as well, which is not what I wanted. Perhaps there's a way around this, but I wasn't feeling like exploring that method because it has a drawback in flexibility compared to the ColdFusion method I ended up going with.
So I implemented SES URLs through ColdFusion. I decided that I might as well let CF do the heavy lifting since I will be dynamically writing out the href URLs in ColdFusion anyway.
Continue reading "Implementing Search Engine-Safe (SES) URLs."
SES URLs To Blame For Duplicate Feed Items
posted Mar 13, 2008 at 10:15:43 PM by Doug Gibson.
My latest article, CSS: Overcoming "background: transparent" In IE seems to have shown up in my RSS reader at least four times. It looks like this is one of the down-sides to my implementation of Search Engine Safe (SES) URLs, which I plan to discuss in more detail at a later date.
Because I tweaked the headline, the actual link to the article has changed as well, and therefore the GUID in my RSS feed is changed, making it look like a new, unique article. Some systems generate a unique GUID based on a hash of the content, so any change would trigger duplicates.
I just thought I'd mention that as a caveat. I'll definitely have to consider my headlines more carefully before publishing an article in the future. Sorry 'bout that.
CSS: Overcoming "background: transparent" In IE
posted Mar 11, 2008 at 11:33:49 PM by Doug Gibson.
Following up on my previous blog about the bug I encountered when upgrading to Eric Meyer's latest reset.css v1.0, I thought I'd share some thoughts and a possible solution to the problem.
To backtrack a bit, reset.css is a special CSS file created solely for the purpose of eliminating browser default issues and cross-browser compatibility problems by explicitly setting the styles of elements to be the same in all browsers.
When applying the latest version of Eric Meyer's reset.css, all of my table row striping disappeared due to the introduction of background:transparent; into the main declaration.
Thanks to Eric's explanation, I now understand the issue to be a bug in Internet Explorer, affecting even version 7. He commented on the previous post:
What's happening is that in order to make it look like the 'tr' has a background, IE copies that value to the 'td' elements in the row. It's a visual sleight-of-hand to cover the fact that IE can't actually style 'tr' background. The reset changes the 'td's back to transparent.
The simple solution is to remove the offending background:transparent; from the main reset declaration.
But there is a simple enough CSS solution as well, requiring just a few more declarations or more selectors to the existing declarations. Using the descendant selector, I can keep the reset.css as-is and keep the exact same classes on my 'tr's in tact and make the CSS work even in Internet Explorer with some additional rules.
Here's a sample of my old CSS that was affected:
Continue reading "CSS: Overcoming "background: transparent" In IE."
Meyer's CSS Reset v1.0 Doesn't Play Well With IE
posted Mar 8, 2008 at 02:24:34 PM by Doug Gibson.
Building this new blog/site with all of the best practices in mind that I can think of has been an adventure. I had planned to blog more in-depth on some CSS-specific things (and will), but this issue popped up and I thought I'd share it.
When I saw that CSS-god Eric Meyer had updated his CSS Reset file to version 1.0 and given it a permanent home, I immediately checked it out and integrated the changes into my reset.css file. Granted, it's still mostly Meyer's file, but with some small tweaks.
By way of some background - a reset.css is a special CSS file created solely for the purpose of eliminating browser default issues and cross-browser compatibility problems by explicitly setting the styles of elements to be the same in all browsers.
It wasn't until I had posted the changes live - yes I did test locally first - that I noticed something was amiss with the CSS in Internet Explorer. Upon further testing, both IE 6 and 7 were affected. The main area that seems to be affected are my tables in the admin area, which no one can see of course. In particular the table row striping and highlighting of inactive/draft records was gone. Yet everything looked just fine in Firefox.
The way I stripe my table rows is fairly common inline ColdFusion inside of a query loop - not ideal in some ways, but effective.
<tr <CFIF currentrow MOD 2>class="greybar"</CFIF>>
I changed all sorts of stuff in my main CSS, added greater specificity to the rule in question, added !important, all to no avail. I gutted my table of recently added col and colgroup tags. Nothing.
I removed the reset.css from the header and *poof* it worked again. Finally I noticed a new line of code in the global reset:
Continue reading "Meyer's CSS Reset v1.0 Doesn't Play Well With IE."
Irony...
posted Mar 4, 2008 at 10:05:04 PM by Doug Gibson.
...is sitting down and watching The Biggest Loser with a big ol' bowl of ice cream :-) Or is that foreshadowing? Maybe if I was in a movie myself.
For the record I don't watch those reality shows - my wife does. I was just there for the ice cream!
URL/Query String Spam - Poor Man's Referer Spam?
posted Feb 29, 2008 at 05:33:49 PM by Doug Gibson.
It hasn't been two full months since I re-lanched this site as a blog using ColdFusion and I am seeing a new form a spam. I was tipped off by some error emails that my error handling kicked off.
What is happening is that I am seeing a number of requests error out because someone is inserting URLs (all foreign, e.g, .it, .ch, .ru, and a couple .com's so far) in place of my articleid query string parameter.
http://dgibson.net/blog/article.cfm?articleid=http://www.somespammyurl.ru/blah/
Continue reading "URL/Query String Spam - Poor Man's Referer Spam?."
Metalunderground.com Linked To National News Story
posted Feb 24, 2008 at 03:28:28 PM by Doug Gibson.
For those who do not follow heavy metal news daily, my site, Metalunderground.com, got a little publicity recently when it was linked to the arrest of a man for making death threats to the nu-metal band Korn. Ultimately he was arrested for making death threats on the FBI's web site (who threatens bands on the FBI's web site?), but apparently this guy was one of my site readers (abusers and trolls) that I banned in 2006, linking Metal Underground to a national news story.
You can read my supporting evidence and commentary in full, here on Metal Underground.com.
This is not really the kind of publicity I want for the site or for heavy metal. But the incident has sparked a good deal of support for the job done in moderating the site, from comments to emails. Being a heavy metal site, I try very hard not to be a heavy-handed moderator and I let a LOT of stuff slide (except for personal attacks). After all, metalheads are often rebellious and don't want to be censored. I have a bad language filter on the comments just to keep the language from getting out of hand (and getting the site banned from every search engine and parental watch software under the sun), and new readers often complain about that when they first encounter it!
I just thought I'd share that to say "hey look at me, my site's on the news" as well as point out some stuff that people might not think of when talking about online communities and moderation, etc. - the rules are not the same for all types of communities by far. This isn't something you'll always think about when reading blogs on site building and blogging unless you are one of the exceptions.
Gainfully Employed Once Again
posted Feb 10, 2008 at 01:04:25 AM by Doug Gibson.
I am gainfully employed once again. Thanks to all who sent me leads and forwarded my info on to anyone else in an effort to help me find work.
After having about half a dozen things fall through at once in the week my severance ended, I decided it was time to give up the pursuit of freelance/contract work (as a means to make a living) and get a real/full time job once again. Despite the freelance thing not working out, it was an eye-opening learning experience and I now have a much better idea of what that entails should I go that route in the future. Had I known it would not work out, however, I would have definitely spent a bit more time on my other web site ideas and redesigns.
I'm happy to be back at my former job - the one before the recent one who laid me off - now as a full-time telecommuter. With all of the familiar faces there, I feel like I've been gone 6 months instead of 2 years! I won't mention my employer by name, because I have no intention of blogging about my job and do not want my thoughts expressed here associated with them in any way.
Disturbing Statements Regarding ColdFusion Hiring
posted Feb 5, 2008 at 12:00:00 PM by Doug Gibson.
In my recent job search, I heard two separate statements that don't bode well for ColdFusion as a whole. On one occasion, a recruiter at a large staffing firm mentioned that there are a lot of ColdFusion developers, but not a lot of experienced or senior ColdFusion developers (in the Baltimore/Maryland area specifically). Who knows why that might be the case. Obviously, that's good for me, having 8 years experience in ColdFusion and a broad and deep knowledge of its capabilities, but it is somewhat disturbing to hear overall.
In another instance, I was interviewing for a position and I inquired as to why the job posting did not mention ColdFusion specifically, yet the company's flagship application was built on ColdFusion. The interviewer proceeded to tell me that in the past if they include ColdFusion in the requirements, they get inundated with poor quality resumes and developers. So the company had included a number of requirements in the job posting, but omitted ColdFusion. The interviewer also commented that they don't necessarily need a CF developer, as they would consider hiring someone with other server-side programming experience since ColdFusion is easy to learn.
Poor quality of resumes/developers is nothing new. I assumed it is par for the course in hiring, but I have heard similar statements from past employers as well as companies that friends work at regarding ColdFusion positions. I've just never heard of outright not listing ColdFusion as a requirement in the job posting as an alternative or remedy to the situation.
Now I've banked my future on ColdFusion. There are too many other technologies and facets of web development to learn and I'd rather focus on learning those than learning a new back-end language and the ins and outs enough to become truly proficient. Plus I believe in the direction ColdFusion has been headed, even if I don't totally buy into the Flash an Flex stuff. But hearing these statements from people in hiring positions does raise some concerns for me over the future of CF. Certainly there are a lot of talented CF developers out there, but it sounds as if the talent pool is not large enough to support the infrastructure of clients who use ColdFusion. Or perhaps it's simply "watered down" substantially with inexperienced developers. It's definitely food for thought.
Why Turning Pro-Blogger In January Is A Bad Idea
posted Jan 18, 2008 at 12:00:00 PM by Doug Gibson.
As mentioned previously, I have been looking for short term contract and freelance work since being laid off. I have aspirations of becoming a "pro blogger" one day, or at least to supplement my freelance income with a decent blogging income. However, seeing the sad state of online advertising in January, I've decided to pour 90% of my efforts into looking for freelance work.
The seasonal aspect of online advertising is something I've always kept in the back of my mind with respect to when I could potentially attempt to do blogging full time. For anyone out there with similar thoughts, I don't recommend quitting your job in January to become a pro blogger!
In general, advertising revenues are a bit low at the start of each quarter and require some ramp-up time. However, at the start of the new year, which is also after the advertisers' big holiday spend, online advertising is horrific. Ad networks' fill rates are low and CPMs are roughly cut in half or worse. It is normal for things to not start ramping up until mid-February, and even then the CPMs and fill rate - and therefore overall earnings - may be a bit "off" until well into Q2.
So when is the best time to turn pro blogger? It really depends on the type of site(s) you run. Like advertising, many niches have seasonal trends as well. Looking at the advertising trends alone, and assuming you have an existing blog or three, I would advocate watching your earnings trends through April and May and if all looks well, consider making the jump in June. The more preparation and traffic building you can do leading up to that point, the better. I would not make the jump any later than October, however, because then your window for building traffic before the holiday season is over is very small and you'll be facing the the first quarter draught of the next year very soon afterwards.
What the earnings threshold is for an individual to feel comfortable leaving his or her day job to go pro blogger is another question entirely.
Looking For A Job Is A Full-Time Job
posted Jan 15, 2008 at 12:00:00 PM by Doug Gibson.
Looking for a job can be hard work and very time consuming! This is especially the case when you are looking for short term contract and freelance work, and being fairly selective about which opportunities you'll take. I could take a job in Washington, DC in a second, but I'd really rather not commute 2-3+ hours a day if I can help it. I've been telecommuting the past two years and had a 15 minute commute (and part-time telecommute) for three years before that.
But back to the actual topic I was meaning to discuss. Looking for work is hard work. I've been busier than ever the past few weeks and not even working (much). One of the most time consuming parts of starting a job search is posting your resume on various job sites and recruiter/staffing firms' sites. I've been talking to a lot of staffing firms (Aquent, Robert Half, TEKSystems, KForce, etc.) and most of them have their own proprietary site that you need an account on to be considered for their positions, even though I see most of their positions from job aggregator Indeed.com.
The time consuming part is that it's not just enough to upload your resume. Most of these sites then try to parse the information out into data fields, and you need to go through each of your job entries and clean this data up. I've been in the computer industry for almost 14 years now, so their are a fair number of entries there. I probably spent the better part of two or three days just getting my information in to these various online systems. Then, of course, you talk to the recruiters, and many require an interview with them before they will really consider you. This is all expected, but I was just shocked at how tedious the online process has become.
The other aspect of looking for freelance work is researching and discovering the best venues (sites) to find freelance work on in the first place.
Luckily most sites have RSS feeds now and many, such as Indeed.com, have RSS feeds for specific search results. RSS has been the real life saver once I got everything going in my job hunt. I don't know when I would find the time to visit all of the individual job boards I've responded to jobs on if I wasn't finding those postings via RSS.
Happy New Year, Find A New Job!
posted Jan 5, 2008 at 12:00:00 PM by Doug Gibson.
I was laying on my couch on New Year's day, half dozing off with a headache, when I got the vague but ominous call. The next day I was officially laid off from my current job as part of a company downsizing effort. I took some solace in the fact that 9 other people were in the same boat and the Maryland office was being closed entirely in the next few months but it was still quite a shock as I'd never been on this end of the layoffs. I also heard from a number of other people who I know or correspond with online who had been laid off at the beginning of the year and apparently this is a fairly common occurrence.
I already had plans to relaunch dgibson.net as a blog, but now I've pushed that effort ahead so that I can begin blogging and use this site to leverage my chances of landing some freelance work. Dgibson.net had not been updated for close to 7 years, sometime after I got married, so the redevelopment is much overdue anyway.
In the meantime, I'll be doing some house-cleaning and rounding out the template design and populating it with information, and likely blogging about my job hunt and other web development topics as well.