Archive for the ‘Web and Graphic Design’ Category

Web Design: Working With Clients

So I’m not going to pretend that I’m an expert at freelancing, because I’m certainly not. However, I do have some experience, and I think after your first few times doing freelance work, you learn a whole lot. So I figured I’d offer up some advice to those of you who may be getting into the freelance web design or graphic design business.

1. The most important thing you can do for a freelance job is write a contract! A simple one page contract can go a long way in encouraging both you and your client to abide by specified timelines, payment dates, etc. In all likelihood you’ll never even need to threaten your client with breach of contract, but it is nice just to have the comfort. You should write you contract in a way that indicates a timeline for the project. This will encourage you to keep on top of your work, as well as make sure your client provides any materials that you need in a timely manner. It also makes sure you can’t get screwed over if they “aren’t happy” in the end (you’d be surprised how much people will try to reduce the price after you’ve already agreed on something). Clients also have the tendency to ask for something, agree on a price, and then ask for more without wanting to pay more. For these reasons specifically, ALWAYS get a contract written up and signed before you begin any work. (For sample contracts, check this out (make sure to edit this to apply to YOUR situation!), or if you’d like, shoot me an email and I can give you some advice).

2. Make sure your client is aware of their responsibilities (because even though you are the freelancer, they almost always need to provide you with something). The best way of doing this is to include deadlines for the client as well as yourself in the contract. These deadlines are often dates that you need content by to finish the website, or logo materials to work on the designs. Timeliness of your client’s deliverables will affect the timeliness of yours.

3. Ask your client for a list of websites that they like, with details of why they like them. Getting this information will help you understand the design aesthetic that your client appreciates, and give you an idea of how they might want their users to work through their website. It might also be helpful to sit down with them as they discuss this, and even ask them to visit their competitor’s websites if you are working with a business.

4. Make mock-ups before you start coding anything. When presenting mock-ups to your clients make sure to do four things. First, always make multiple options. Presenting one looks cocky and stingy. When you present multiple designs, ask for critiques (both positive and negative) on all of the design possibilities, but have them pick one. Then incorporate those critiques into the final design. Second, present your mock-ups in PDF format. PDFs are by far the most professional way to send documents. Sending Photoshop or Illustrator files is unprofessional, and they can rarely be opened by clients. Sending jpegs/gifs is lame because then your client is opening up your design in random programs. Keep it consistent with PDFs. Third, use “lorem ipsum” dummy text. It fills the page realistically without requiring actual content from your client or you. It isn’t worth wasting your time coming up with realistic content, just make it look good while you are working on the mock-ups. Fourth, it helps to present your mock-ups in a browser window skin. This will help your client imagine what the website will really look like live to their users. Looking at the design outside of a skin is like looking at a photograph outside of a frame. Sure there is information there, and sure it might look good, but it sends a much different message in the frame.

5. Figure out ahead of time how your client will be updating their content. There are many possibilities including you updating your client’s content, the client using a content management system, or if the client using Dreamweaver or plain markup after you tutor them. These three options will most likely impact how your code the website.

6. Find out what other things you can do for your client on top of their website! There is no better place for more business than the people you already do business with. Many clients just getting into the web also need help with other graphic design needs (such as logos, letter heads, business cards, etc.) or will want you to do updates on their site, or SEO work for their site. This extra work leads to extra cash. Just make sure to include it all in the contract from the start.

7. Get a feel for your client’s expected website users. If you have a good feel for the people that will be using the website you design and/or create, then you’ll be able to do an infinitely better job at creating the website.

Got any other questions? Let me know!

Dreamweaver Versus Notepad

So whenever I tell people that I write my markup in a txt editor, they immediately ask why I don’t use Dreamweaver. I think that the debate over using a prepackaged HTML/CSS/etc. editor versus a plain old text editor is a very interesting one. However, because I’m right all the time, I’ve got the answer!

It seems to me that when you are learning HTML or CSS, or even Javascript or PHP, you should really learn in a text editor like Notepad. This is how I taught myself almost everything I know today, from scratch. The text editor will offer you no guidance. It cannot check your code for missing closing tags or quote marks; it cannot validate your markup, and it won’t auto-complete anything. In my opinion, this is the best way to learn a language. It truly forces you to understand what you are doing, and encourages you to write clean code because admittedly, the process is more arduous. I find that my understanding of HTML and CSS came out of having to track down my missing tags or incorrect CSS.

Now luckily, there are some proprietary editors out there like Dreamweaver. I’ve used Dreamweaver many times, and find myself using it more and more often. Once you feel you have mastered whatever language you are learning, then you should feel comfortable moving towards one of these proprietary editors because they do have a lot of benefits. Now that you are careful in your coding, you can reap the benefits of Dreamweaver automatically closing tags, checking for errors, validating your code, and autocompleting many other things as well.

Dreamweaver is especially nice when working with multiple files (like if you are using PHP with array and master/template files). It colors different parts of your code to help your mind parse the information out more easily. It even has a split view so you can see the end result along side your code. I personally don’t like this feature because it just encourages backtracking in your already well learned coding skills.

So, my advice? Learn in Notepad, then move on to Dreamweaver!

CSS – IE6 Bugs and Hacks

In a few previous posts, I’ve mentioned the all too scary issue of cross browser compatibility. In particular, Internet Explorer seems to always come up, and even more specifically, Internet Explorer 6 (or IE6). There are dozens of bugs that arise with IE6 because of how the browser reads HTML and CSS. I’ve found the best solution when you encounter a problem with how IE6 renders your code, google it. But, to make things easier for some of you, here is a compilation of some of the most serious problems that I have encountered with IE6, and if their is a good hack or fix for it, I’ll tell you about that too.

1. Padding discrepancy:
IE6 and below calculate the width and height of sizable objects differently than other browsers. This issue is easy to demonstrate with the following example of a div’s css:

div.example{
   width: 100px;
   height: 100px;
   margin: 10px;
   padding: 5px;
   border: solid 2px black;
}

Normally, this div should be rendered as actually having a width and height of 114px (100px defined width + padding-left of 5px + padding-right of 5px + border-left of 2px + border-right of 2px). Though this might seem counter-intuitive, it actually makes sense when you consider wanting to define space for copy or images, but still have padding with a background color (for example). IE6 and below makes the mistake of still defining the width and height of the div as 100 each, meaning the actual usable space inside the padding and border is now down to only 86 pixels.

There are two fixes to this. One is avoid using padding, and use margin instead (which is not included in the same way that padding and border are) when working with objects with defined width or heights. This is what I tend to do, because it doesn’t require using a hack. However, this is not always possible, especially when you are working with divs that have background colors and text inside. So, the best hack I’ve discovered so far is actually the underscore. Yeah, that’s right, _ does wonders when put immediately before a CSS style definition because every browser except IE6 ignores that line. So what you’d want to fix the above problem is the following CSS:

div.example{
   width: 100px;
   _width: 114px;
   height: 100px;
   _height: 114px;
   margin: 10px;
   padding: 5px;
   border: solid 2px black;
}

IE6 will read the first width definition, but then correct it with the second, whereas other browsers will simply skip over the second definition, leaving you with uniform renderings for the div!

2. PNG transparency:
To bring you up to speed, PNGs are far superior to GIFs in every way but one: IE6 displays PNGs with transparency incorrectly. Obviously, there are two fixes yet again. One is avoid using PNGs with transparency and use GIFs when transparency is necessary. I personally do not want to do that because the transparency on PNGs is much better than GIFs (GIF transparency can look rasterized in comparison). The other solution is some handy dandy javascript. There are a lot of these out there. You can check out this one or just google “png fix”. The only issue with these fixes is they often cause problems with background positioning for images. Sadly, you’ll have to live with that bug if you want to fix the first bug…

3. Double margin with floated objects:
Let’s say you have a div that you float to the left for positioning. Then you give it a margin on the right and bottom to give it some space before the next object begins. IE6 has a bug where it will actually double the right margin because the object is being floated. This is incredibly annoying and 100% a bug (as opposed to a discrepancy in how the browser will render something). To fix this evil little bug, add a display: inline style definition inside the floating object. That won’t work 100% of the time, so if it doesn’t work, then use an _margin: definition with half the margin that you defined. For example:

div.example{
   float: left;
   margin-right: 10px;
   margin-bottom: 10px;
   display: inline; /*This will usually do it and is much easier to apply*/
   _margin-right: 5px; /*This ALWAYS works, but is more tedious and technically not valid*/
}

As discussed above, the underscore is only read by IE6 and below but will be ignored by other browsers. This should be used when display: inline will actually mess with your layout, or if for whatever reason it does not work properly.

4. Inability to center divs using auto margins
Centering a div is easy unless you are using IE6. Normally, a div with a defined width and a left and right margin setting of “auto”, will automatically center within it’s parent element. However, IE6 doesn’t like that. To fix it, add a simple “text-align: center;” definition to your html and body tags. This of course will center all of your copy, so add a “text-align: left;” to all of your other tags that might contain copy (p, div, h1, h2, h3, a, etc).

Got other bugs? Got other questions? Got other fixes? Post a comment! Also, check out the second installment of IE6 bugs!

SEO Simplified

SEO or Search Engine Optimization is a very complex process. People make a living doing SEO work for other individuals. Entire companies exist that tout the best SEO practices. Well, for the simple minded, for the not so wealthy, and just for the interested, let’s break down what SEO really is and what simple steps you can take to help out your own site.

Okay, first a definition. Simply put, Search Engine Optimization is an attempt to get your website higher up on search results run by Google, Yahoo, et cetera. Why is this important? Don’t you want visitors!?! Search engines are the best marketing tool out there. You’ll never come close to getting more direct or referral traffic than search traffic to your website (unless you are as big as say facebook.com for example). Even the biggest of businesses such as Amazon.com still rely very heavily on search traffic. So how can you push yourself higher on those results?

Well, there are countless articles out there trying to tell you how to perform SEO. I’m not saying you should listen to me, in fact, I consider myself a novice when it comes to SEO, but I do have a few easy suggestions that just about anyone can do.

1. Make sure to set up a redirect between the www and non-www version of your website. Search engines see http://www.example.com as a different site than http://example.com. If you set up a permanent redirect, then search engines will bump you up higher, links to your site will be consistent. Here is a great tutorial on it.

2. Register with sites like dmoz and yahoo and zoominfo. These sites are essentially listings of websites and companies and people. Being listed on these helps show search engines that your website is essentially more reputable than websites not listed there. Yahoo costs money, but dmoz is free. Hurry up though, it can take months for them to get you on the list!

3. Write a BLOG!!! I know, ironic right? The reason that I started this blog in the first place was to drive more traffic to my site. Sites with blogs have tons more content, and because the content is constantly changing and updating, it is much more likely to pop up in search results. Even more than that, people might start bookmarking your blog posts on sites like del.icio.us and digg.com. Bookmarks on these sites can drive hundreds of visits in under an hour once they are posted. Also, when there are bookmarks to your site from these websites, search engines use that as another form of validation that your content is useful, just like being listed in those conglomerate sites mentioned above.

4. Get lots and lots of links to your site. The more links that exist on the web to your site, the better. Search engines see those links as even more validation for your content. Try establishing relationships with other businesses you work with on a regular basis and get them to link to your site in return for a link to theirs. Make a facebook page for the website with a link. Anything that will add more links to your site out there in the web is good!

5. Lots of content, that you update, with good header tags. Google is known to use the content of a website to determine what is on it. Go figure right? In the past, all search engines used the Meta Keyword and Description tags, but then people started stuffing their tags with thousands of unrelated words in hopes of landing on tons of search results. As a result Google, and many other search engines have followed suit, do not use them anymore. Stick to under a dozen keywords, and then just pay attention to your content. Having useful header tags (h1, h2, h3, etc), lots of good content, preferably that you update, and purposeful images will do wonders.

6. Check out Website Grader. This site will help you keep track of your progress. As with any of these tools, take it with a grain of salt, but so far, this is the best one I’ve found on the web. I use this site regularly to continually improve my SEO. I think a year ago, I was sitting at a grade of about 26 (my site performed better than 26% of all websites), and now look at me with that beautiful score you see on your right. That’s pretty amazing considering I’m just one person with a small website. That’s how much Website Grader helped! Any other suggestions? Let me know!
The Website Grade for www.davidjrush.com!

Screen Resolution: Size Matters

800×600 or 1024×768 or 1280×800 or 1280×1024? I could keep going, but that won’t do any of us much good. One of the first questions you should be asking yourself when you set out to design a website is what screen resolution are you shooting for? The easy answer as of December 6th, 2008 is 1024×768 (that is width by height for those who are confused).

However, it does get a bit more complicated than that. There are two things you should consider, your target audience, and your future website. Based on the age and demographics of your target audience, the distribution of screen resolutions will change. Young and hip audience? Targeting upper class users? Assume that a larger percentage of your audience will be using larger screens. As for your website, you may have a dire need to shoot for a larger screen size because you need the space. Or perhaps you think you can sacrifice screen size because you really don’t have much content and you’d rather accommodate everyone. These are all things you should think about.

However, the bottom line is, around 30-40% of your users (again, as of December 6, 2008) are using 1024×768. Another 30-40% will be using 1280×800 or 1280×1024. Those are your two to pick from, but again, unless you want to inconvenience 30% of your users, 1024×768 is your sweet spot. You’ll have about 5% of your users still with a 800×600, but honestly, they need to upgrade. By the time a group drops to around 5%, it is worse to inconvenience 95% of your users to help the other 5%. Lastly, whatever is remaining in your percentage will be even larger resolutions.

Keep in mind that these things change over time. Within a few years, 1024×768 will be outdated, and we’ll be shooting for 1280×1024 or something else. Always track your users. I highly advise using Google Analytics. This tool allows you to gather information on everything to enhance your user experience. There will be another post on this topic in the next few weeks.

Now, another quick lesson. With 1024 as your target width, you actually need to be designing for about 990px. At least, that’s what I’ve always shot for. This is to take into account a scroll bar when your content goes below the fold. Also realize that 768px is a huge overestimate. After you factor in a windows bar, browser title bar, menu bar, URL bar, bookmark bar, and tab bar you’ve lost anywhere between 100 and 200 pixels. I’ll be writing another post on wrapper divs and sticky footers to help center your content regardless of screen resolution, as well as a post on sticky footers, which will keep your footer at the bottom of the screen unless content pushes it down further.

Thanks for reading, stay tuned!