Author Archive

Troubles When Developing With AJAX

For those that are not familiar with AJAX, the word is an acronym for Asynchronous JavaScript + XML. AJAX is not new to the scene. In fact, even the newest advances in AJAX are at least five years old. Yet AJAX is becoming the buzz word in developing. AJAX is a very powerful technology that allows you to build a website with incredible functionality without users having to refresh the web page they are on. However, there are some “bumps� in the road when trying to utilize AJAX.

What does AJAX do? Basically, it makes it possible for a group of techniques to have interactive web applications to use Javascript to process XML/XHTML, with CSS, in a browser without having to reload the entire web. In other words, AJAX allows the browser and web server to synchronize the exchange of data, making the interaction and reloading of each web page faster.

One of the problems with Ajax is that its updates often contain information retrieved from a script running on the server side. It is very common for a browser to not display any kind of visual indication that any portion of AJAX is loading. The developer can’t see this interaction first hand, so it’s difficult to see exactly where to go in the application to be able to determine whether the client-side JavaScript is correctly communicating with the server or not. A solution for this is why it’s imperative to insert a visual indicator that will allow you to know something is occurring. You can use a visual swirl very similar to the ones used when a light box image is loading.

Another solution is to use Firebug to monitor HTTP communications. Let’s say that the page did not load as expected, or didn’t render precisely. By using the Firebug feature you’ll be able to determine if the HTTP communications flow is processing properly as the page loads, followed by including the jQuery library and the correct interaction of the server-side-script with the inclusion of the JavaScript mechanism. By using Firebug you will be able to see if the HTTP payloads between the client and server are communicating properly.

Another problem with AJAX is the problem of getting the “Back Button� on the browser to work properly in the JavaScript application. Developers asking for problems in their web applications if they fail to install a way for their content to reload automatically if the user tries to use the browsers back button. This happens when developers over use AJAX without trying to balance with other technologies.

Many developers and designers forget that despite the advanced technologies and the amazing evolution of the web, there are still some users that do not have a strong and stable internet connection. A good example of this is seen if you have ever played internet poker and noticed how many delays there are because other players keep losing their internet connection. There are still users that have small monitors and dial-up modems. Not everyone has a Mac Pro Quad-Core Intel Xeon “Nehalem� processor with a 30� monitor.

As a web developer or designer, there are times when you might consider using other means of interaction with your users to allow you to reach a wider audience. AJAX requires interaction with XML and JavaScript which will leave users with poor connections out in the cold.

As I mentioned above, a designer or developer to be successful and be able to reach a larger audience needs to have a balanced platform. I am not suggesting that you need to eliminate AJAX technology, because it is a super way to develop intriguing JavaScript applications. What I am saying is you must make sure your code is efficient and clean and you use AJAX sparely, or as needed. You also need to make sure you have all your bases covered and that all of the AJAX support information needed is in the proper place. Remember, the more AJAX running, the slower the web pages will load, which is completely opposite of the reason AJAX is so powerful.

One final point – search engine spiders have extreme difficulty trying to pick up content when AJAX is trying to load large amounts of text. Hence, the content isn’t published and indexed properly. Spiders need static content to be able to read it.

Ajax developers at times might need to develop almost two types of applications if they want to build an online application good for Firefox and Internet Explorer browsers that could require a lot more time for application development. The end result however, is well worth it. A highly efficient Ajax based application does not only provide eye catching features but could easily provide a highly effective application with processing speed that almost rivals any simple web-based application.


CSS Techniques I Dreamed About When I Started….

When I was first introduced to CSS, my mind exploded with possibilities that CSS created, which lead to thoughts of what it could provide me as a web designer. CSS provided the bridge between web designers and web developers. We have all seen situations where a developer created almost the perfect website, yet it didn’t have the appeal that a good front end designer could present. Now with CSS, you could have both in a seamless creation of perfection.

I imagined where designers might discover easier ways to code, and developers would find easier ways to design, to the point where they would become synonymous with one another. I dreamed of ways that cumbersome HTML coding could be replaced with efficient and quick CSS code allowing cleaner, yet more stylistic website pages.

Web developer gurus have traditionally used PHP, JavaScript and Ruby as the languages they regularly use. Now there are some folks that are simply taking PSD and converting it to XHTML and CSS, and proudly declaring themselves web developers.

Not all dreams are good dreams. One of the fears I had is there would be designers and developers over using CSS variables and constants as found in PHP, to the point where they re actually making their style sheets longer. They also face the problem of being able to write their code that can be easily understood when reading it. As long as designers and developers make sure they are always efficient in writing their code and knowing when to use CSS variables, or when they should be using selectors.

I liked being able to use CSS to define colors as word-colors like blue, yellow, green and such. But then I noticed that during W3C validation, it would produce error warnings. W3C ants every color defines by numbers. Normally that isn’t a problem, however if you are designing a page that has extensive colors and shadings, it becomes difficult to remember what each code represents. It is very difficult to track. However, if you write your code as below, it is then a simple matter of reading your code if you need to make a change.

  • $tan = “B7722D”
  • $cream = “F5C350”
  • $menuUp = “E9AB54”, // lite tan
  • $menuDown = 473729”, // dark gray

SEO optimization is being discussed on everywhere, from individuals to design studios soliciting customers, and most of them skip over CSS as a simple and free solution. There are actually several websites that offer CSS Optimization tools. Some of them are relatively easy to use, and there are those that are fairly complex and harder to use. Most of them produce incredible results. Basically what they do is compress CSS files to allow them to load quicker, by merging similar classes, removing useless properties and whitespace, etc., will make some of the code harder for you to read. However, with larger CSS files it can condense the file that it really makes a difference in page loading times.

Even if it only saved 10% of the standard loading time, that alone would be significant over a course of a month or a year. Any time savings is beneficial considering there is a good chance of saving a viewer from leaving the site and going else where on the net. It is recommended that the designer or developer always keep a copy of the readable CSS code so that if they ever needed to make any changes it could be done quickly and easily to find what you need to change, and then it can be re-optimized.

Many broadband users might not think this matters much, as most websites seem to load fast for them, but if each site you went to loaded even 10% faster, think of all the time it could save you over the course of a week, a month or even a year. The bandwidth savings for the website operator can also be immense. I would recommend that you always keep a copy of your human readable CSS code so that if you ever need to make any changes it does not take you a long time to figure out what you need to change, and then you can re-optimize it.

The CSS optimizer that appears to be best is “Icey’s CSS Compressor” which out performed all of the others, with the added benefit of displaying the compressed code in color making it easier to see the changes that had been done.

All in all, CSS is here to stay, and is actually only limited by our dreams. CSS can be what you want it to be, or it can be something you want to avoid. However, that would be your loss. If you are new to CSS, read and experiment with it all you can, so it is truly an amazing tool for website creation and esthetics simplification.


7 Warning Signs of a Nightmare Client

In the modern world of design and development, dealings with your clients are somewhat akin to romantic relationships. For one, both sides expect a certain level of standard and class from each other. Both are prepared to give, and both want to achieve something in that relationship. Second, just like when you’re on a date, your relationships with clients are governed by a set of largely unspoken rules, the strict adherence to which will define what the outcome of the date will be, and how long the relationship is going to last. And finally, for the union to be pleasant and lasting, the relationship needs to be more or less equal in terms of bargaining power.

While making the customer happy, do not forget yourself

In our culture of consumption, where the focus is all too closely set on satisfying the customer (who, as we all remember, is the proverbial king), we tend to forget, that not all of us live in the Kingdom. In many situations what your company wants is simply a finite network of steady clients (happily, the monogamy does not apply to business), on which it could rely and which would allow for growth in the future. Many businesses, especially those in the early stages of their development, make the mistake to follow the mass production logic, attempting to satisfy each and every customer no matter the cost. In reality, however, this model is not sustainable in the majority of cases. Since your capacity is more or less fixed in the short term, the quality of your clientele really matters. Just like with a romantic relationship, once in a while you have to ask yourself whether you are getting what you want from your clients. A set of bad clients will hurt the work satisfaction, lower the quality of your results and simply suck out all the pleasure of what you are doing.

Bad customer types to watch out for

Unfortunately, it is only possible to judge the quality of a client after you have worked together for a while. Nevertheless, there are some typical features lousy clients possess, and they should warn you of the trouble impending.

    The “extra freebie” client.

This one wants nothing less but perfection. He always finds a little detail that can be improved, or a tiny bit of extra functionality that would really improve the product. Of course, he wants you to stay within the same budget. And you do want to help him, since this client is not so bad, and keeping him satisfied seems like the right thing to do. Well, here is a trap: these little extras tend to accumulate into a heap of additional work no one is paying for.

Defense: make very precise agreements on what the scope of the project is, and do not be embarrassed to charge for the extras. That is, unless your prices are so high that perfection goes without saying!

    The “you should know what I want” client.

In most situations, you know the particularities of your product better than your client does. As result, the customer might want to delegate the decisions on specific details to you. The freedom to do your thing seems great at first, but for some reason these clients are never happy with your choices when it comes to paying the bill. It turns out they had a “hunch” the product would look otherwise, even though in the beginning they had no specific ideas at all.

Defense: first, just like in a good romance, you need to communicate well. Make sure the client understand the minute details of your choices. Second, the trick is to offer such a client several alternative variations of the product. When he chooses, the option to blame you for the consequences of the choice exists no longer.

    The “old virgin on a first date”.

This kind of customers does nothing but hesitate. They ask tons of questions (even the buying ones!), and they always seem like the contract will be signed tomorrow. Yet it never does, there is always some minor detail delaying the process. You spend time and energy pursuing a dead end lead, but only realize it after a good while.

Defense: you need to firmly decide how far you are willing to go to court a customer, and do not yield into temptation to cross that line. No need to abruptly end the relationship altogether, just be aware that this client has yet to prove his value, and act accordingly.

    The “control freak”.

This type cannot simply let you do your job. He will trust his doctor and car mechanic with his life, but there is no chance in hell he will respect your expertise over his own common sense. He will examine every single detail of the project and provide the most detailed instructions on each and every one of them.

Defense: while this type of client is not as bad as some others, his overly involvement does slow you down and increase communication costs. There is not much to do against it, though you can simply decide not to continue with this client in the future.

    The “discount” guy.

Some people believe that cheaper is always better. In this naïve belief they will seize every opportunity to get a lower price from you. It is tempting to accept, since it seems that little profit is better than no profit, doesn’t it?

Defense: while in the short term this might be true, such strategy may hinder your long term development both financially and psychologically. You can still work for the pocket change in certain situations, but be aware of the consequences. Better to keep your game at the level you feel comfortable with.

    The “lazy daisy”.

An average design and development project is a two-way street. While the work is mostly on your side, the client still needs to help along the way by providing the necessary information, making the critical choices and so forth. Spoiled by the consumer culture, many people expect simply to pay their money and receive the completed product without actually participating. More often than not it is an illusion on their part, but it is you who will be held accountable.

Defense: initiating a project, make sure the customer understands what will be required of him. Establish milestones in your project and agree to discuss them with the client, when appropriate.

    Let’s be flexible on the payment

Finally, the most dreadful client of all is the one who doesn’t pay on time. You can power through all the other bad situations, but receiving no money for the job you’ve done is just something that that spoils your relationship at once.

Defense: be polite but firm with the client who has a payment problem for the first time. Seriously consider firing the client who does this twice. Alternatively, work out a different payment arrangement which your client agrees on, and make sure to enforce it.

In conclusion you should remember, it is up to you to control the long-term relationships with your clientele. Do not be afraid of firing a bad customer, it is the only way to open a spot for a good one. Good luck!


Copyright © 1996-2010 BlogmyQuery - BMQ. All rights reserved.
iDream theme by Templates Next | Powered by WordPress