Let’s Make Sure That we Enhance the Good Name of Web Developers

If you’ve spent more than a few days building sites or software you’ve had an email or call where the client mentions:

> It’s pretty simple, it won’t take long. Really I could do it but I just don’t have the time.

It certainly gets my hackles up to hear that since it’s typically a ploy to get the pricing as low as possible, but it’s also more than that as stated by [this article][timeest].

> The real reason I’m annoyed is not that their estimate is wrong. It’s that they assume that they can even make an estimate. That’s because as developers we unconsciously realize that the way a layperson naturally estimates complexity breaks down when it comes to software.

Dan goes on to talk about how the layperson estimates time and why it falls apart on software projects. I think he gives a bit too much of a pass to experienced developers estimating a project, we all underestimate all but the simplest projects for a few reasons.

1. Things crop up (which he acknowledges) and we almost always anticipate that things will go smooth.
2. Clients start throwing out dates and we want to make them happy so we say ‘yes’.

Not much one can do about the first item except add more padding the more complex the project is. The second item has a solution, stop being so nice and learn to say no!

Sadly there are a few former clients out there that have fallen victim to me being too nice, if you end up picking up those projects after me sorry.

Lets all try and be better developers by learning to say no instead of blindly accepting dates, and lets realize that things happen so pad your time. Seriously web developers are getting a bad name and we can do something about it.

[timeest]: http://danshipper.com/non-technical-people-cant-estimate-developmen “I’m Sure it Will Only Take You a Few Days to Code”

Changing the default ‘required’ in cformsII to an image

I recently had a client request a red asterisk instead of the default (required) that comes with cformsII the wordpress plugin. As it was actually my first time using cformsII in any fashion I started with a quick search to see if there was a documented work around to make this happen. While I did find a way to change the default text to a * which I could then have applied a colour to I wondered further if I could do it with an image. I realize that an image was not required for my circumstance but since I was digging into the CSS a bit I figured I should find out if this was possible just incase it ever came up in the future.

If you’re going to do this start by copying the CSS from cformsII into the stylesheet for your site. I learned through a few trials that this is way easier especially if you’re using a code editor with a built in FTP client for editing remote files. Once you have picked through the CSS and styled the code how you like it we’re off to the races.

The (required) text is surrounded by a span and class as seen below:

Code Snippet
<span class="reqtxt">(required)</span>

In the stock CSS you will find that there are a few lines of CSS to display the look of the required text. I deleted all of them and combined the styles to simply:

Code Snippet
span.reqtxt, span.emailreqtxt {text-indent:-5000px; display:
inline-block; background: url(http://filepath/asterisk.gif)
 no-repeat; width:15px; height:15px;}

This is partly things I learned from the CSS Sprites technique (text-indent) and partly trial and error. I had actually tried the same code while I was trying to edit CSS from withing cformsII and it didn’t work inside there. I am not sure why but I assume that I made a typing error the first time. You have to set the display value to inline block or the images will collapse and not be seen. Also don’t forget to define the width and height of the images.

I also tried to set the font-size to 0px but found that in IE it rendered small lines that was the text. After I realized that I tried text-indent again and it worked. I did find that a negative text indent number was required as with a positive one the (valid email required) text did not indent.

This method will allow you to display any image in place of the (required) text on the page. If your client decides to add more (required) fields at a later date it will also continue to work with the new fields. The only thing I was unable to get client proof was the legend. I hand coded the legend at the bottom of the form. This means that if my client adds a new form it will not automatically show the legend at the bottom. I feel this is only a minor draw back as the symbol is widely used for the same meaning and the implementation of a legend at the bottom of the form is marginal in time taken.

You can see the technique in use here.If anyone else has better options for implementing an image replacement for the (required) field I would love to hear about it in the comments.

Cool Web Developments

Surfing through my RSS feeds today I came upon a number of very cool web developments that I thought I would bring to your attention.

IE 8 InPrivate browsing. Pulled from ArsTechnica. Looks like IE 8 may mean that analytics programs we use to track our site traffice will no longer work. One of the features of InPrivate will be blocking of objects embedded in your sites (like google analytics). If a user has this turned on  us web designer may never know for sure that IE 6 is dead or what screen resolutions best suited for a particular clients website. While there are benefits to this technology from a user’s privacy point of view it could be tough for people designing websites.

Our second chunk of news I first saw at Lifehacker but now also appears on ArsTechnica. Ubiquity is a prototype Firefox extension that adds a command line interface to your browser. To send a link to someone now you have to right click and then roll down to ‘send link.’ Ubitquity works something like Quicksilver or Launchy in that invoking it with a key command would allow you to start typing “email this to wife” and suggestions for the action would come up. A neat way to interact quickly with web pages but if your not already a Quicksilver or Launchy user it may be hard to get people on board. I don’t see my wife using this. If you’re interested head to the download and watch the tutorial video.

We’re almost done…. Many of us web professionals are devote followers of the Twitter (at least I am). I sometimes wonder how much information is gleaned about me from my posts. Not from the people that I follow or the ones I don’t block from following me but from the public timeline. I know that I can make my tweets private but that means I have to approve everyone and that is a waste of my time. Enter Status a project from Chris Coyier over at CSS-tricks. While not exactly like twitter there are some similarities. Many companies use twitter for tracking quickly where each other are. While twitter works for this it does expose people to the scrutiny of the wider public. Status is designed around private groups. You can start one or be invited into one. The purpose is to simply list where you are and what you are doing. This really has applications for distributed companies or companies dealing with some remote employees. I personally don’t have a great application for it right now but it has been bookmarked.

Finally how about some advice to budding web designers and developers. Basically it is a round up of advice for those that are starting out in the web industry. A good read for anyone who has been in for a long time or those just starting.

Enjoy the reading.