THAT Blog
When it comes to Photoshop vs. Fireworks, many people will try to compare these two top-notch design programs, and with good reason. Both have amazing design capabilities and the ability to do similar things in terms of Image-editing, design creation and more. However, as a designer (and a Photoshop loyalist), I would have to say that they are each equally good at what they have been made to do; Photoshop can’t be beat for image editing and there isn’t a better program out there for Web design than Macromedia’s Fireworks (it should be noted that Adobe has owned Macromedia for the last two years).

» Read More

Ok, so I have been teetering with the idea of whether using a open-source CMS (Content Management System) or creating one from scratch. Here at THAT Agency we have many clients that we do constant maintenance for their content, SEO and more. So when do we as developers feel the need to actually create a private label standardized CMS instead of the plethora of open-source one's currently available on the market.

One place i found with a ton of open source Content Management System applications was ta da www.opensourcecms.com This site breaks down many of today's CMS applications and shows you their features; even side by side comparisons. But wait one second. What if you can't find one that meets all your personal needs that you need and you really don't want to have a developer tweak an open source one? Then obviously the solution is to create your own right?

In my personal developer opinion, I would much rather create my own and use THAT; then tweak an already existing one. Here is why:

1. With tweaking or adding to an already existing project, you run that risk of your changes being screwed up if a patch is developed for something in the actual application.

2. You can have more control of your application if you develop it yourself.

3. It is easier to tweak your own code than tweak someone else's.



So what to do?


If your plan is to develop a complete system for your clients, why not create your own CMS (Content Management System) and have it ready as an addition to the great work you do!




Recently I've been giving Fireworks a run even though I've been using Photoshop for nearly 10 years and much to Neil's credit, I'm starting to like it. Both applications have their strengths and both have their weaknesses. Though I'm excited to be learning and using a different application there are certain items that I'll most certainly revert back to Photoshop to complete. For now it's just another tool in my ever-growing graphic arsenal. Here are some of the strengths and weakness I've come across so far:

Fireworks: Strengths
1. It's fast and optimizing graphics for web is extremely streamlined
2. Item manipulation as far as layout, graphic placement and overall use of the app for complex UI is very easy and intuitive, reminiscent of Illustrator or Flash.
3. Effect and tools are very similar to Photoshop so a lot of key commands are similar
4. It's made for web graphics, gifs, jpgs, pngs and handles all very well

Fireworks Weaknesses (that I've encountered):
1. CMYK image conversion is awful - changes blues and greens like no other
2. Large files and multiple frame layouts slow the app down to a crawl
3. Limited filters, layer styles and effects
4. No sub category support in the layers menu
5. Awkward paint and draw tools even though they are similar to flash, they fall short in comparison to Photoshop
6. Masking effects are difficult to control or edit without full release of the mask and location
7. No "browse" images feature

I'm still a loyal Photoshop designer but Fireworks is slowly but surely winning me over with it's shear speed and overall performance. The memory leak is very similar to Photoshop's but not quite as severe. Photoshop will probably still remain my primary image manipulation app but when it comes to UI (user interface design) I'll be moving to Fireworks.

Adobe's new Creative Suite 3 is coming out soon and even though Fireworks was a solid Macromedia app I was surprised to see them keep it on the roster and not replace it with Image Ready. The future of Fireworks looks pretty bright, it looks like the app is here to stay.
Most of the challenges when working with CSS and PHP developement are "making it work" in all browsers. Previewing properly is the designers main concern and the difference in browsers makes things a little difficult. Some browsers have all kinds of bugs when it comes to previewing CSS, especially transparent PNG's. Yeah, I'm talking about you Internet Explorer 6. In order to get things to work properly designers are forced to write backwards compatible hacks, IE6 fixes and tons of extra code just to make sure the users experience is as consistent on your office PC as it is on the much beloved office/home Macintosh.

Upgrading your browser is usually one of the easiest things to do but some people love to hang onto what they know. I'm personally not a fan of Internet Explorer but if you must use it, use the newest version, IE7. Most of it's new perks are directly influenced by Firefox and it tends to render most CSS2 properly, making our jobs just that much easier. It's more secure than older versions and seems a bit easier to use all around.

On to my favorite - Firefox. Simply put, it's the best browser out there. It seamlessly renders CSS2 properly, has loads of add ons like Firebug, NoScript, Extra toolbars and plugins and so much more. On top of that you can easily customize the "look" of your browser by downloading Firefox Themes. No more shall you be stuck under Explorers blue thumb! Best of all it's open source so developers are constantly adding new tools and extensions to make life on the web a convenient and enjoyable experience.

Either way, upgrading your browser will help with both useability, security, consistency and performance. Older versions of browsers have been exploited, broken down and buggy and though you may still have some bugs here and there life's only getting better with every new version. So keep up the rest of us and happy browsing.
PHP was at one time known as "Personal Home Page" but evolved into something so much more powerful than just that. It's officially now known as "PHP: Hypertext Preprocessor" and what that means is that unlike Javascript which executes within the browser, PHP executes before it even hit's the users screen. A PHP script is not sent directly to the client by the server; instead it is parsed by the PHP binary or module, which is server-side installed.

No more worrying about whether or not your user has Javascript enabled - it matters not with PHP. The output from PHP looks and smells like pure html and to the untrained and trained eye, it is.

So, why should you be using PHP?
There are endless reasons why but I'll narrow it down to just a few. As an open source product, PHP is well supported by a talented and vigilant production team. PHP can and will run on all major operating systems without flaw. Because PHP allows you to separate HTML code from scripted elements, you will notice a significant decrease in development time on many projects. In many instances, you will be able to separate the coding stage of a project from the design and build stages. Not only can this make life easier for you as a programmer, but it also can remove obstacles that stand in the way of effective and flexible design.
Recently a large client of ours sent us a link to a website that featured some very well done streaming video. The video featured an interactive spokesperson that walked you through some of the features and benefits of their products. But what struck us as well done was the pace at which the video loaded. The footage began almost immediately and the playback was very smooth.

So how did they do it? They used a format called Flash video or Flv. There are several ways to stream video over the internet but flash is a good option because 95% of internet users already have the flash player installed. Another benefit to using the flv format is its ability to "scrub" or "buffer". Scrubbing is a setting that allows the flash player to get a feel for the bandwidth speed so it can preload a certain amount of data. The "scrubbing" guarantees that once the video begins, the playback wont be interupted. Prior to export the developer can specify the amount of "scrub" in seconds. A good and safe amount of scrub is 10 seconds but I prefer to use 5 seconds. If the download speed is high enough, scrubbing is avoided all together and playback begins without delay.

In addition to scrubbing it is also key to use good compression. One good thing about video and compression is that the constant movement of video tends to hide the compression. In other words, heavy compression on a static jpeg image is much easier to detect than heavy compression on a video file. When it comes to video dont hold back on compression - otherwise the files will remain huge and playback will be comprimised. Integrated into the flash 8 video encoder is a very easy to use and effective compression utility.

Streaming video on the web is a great way to add life to your project and with quality development tools like flash and the Flash 8 video encoder it doesnt have to be a pain.



Wikipedia's Definition:

Ajax, shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is meant to increase the web page's interactivity, speed, and usability.

The Ajax technique uses a combination of:

- XHTML (or HTML) and CSS, for marking up and styling information.
- The DOM accessed with a client-side scripting language, especially ECMAScript implementations such as JavaScript and JScript, to dynamically display and interact with the information presented.
- The XMLHttpRequest object is used to exchange data asynchronously with the web server. In some Ajax frameworks and in certain situations, an IFrame object is used instead of the XMLHttpRequest object to exchange data with the web server, and in other implementations, dynamically added "script" tags may be used.
- XML is sometimes used as the format for transferring data between the server and client, although any format will work, including preformatted HTML, plain text, JSON and even EBML. These files may be created dynamically by some form of server-side scripting.

Now, what does that mean in laymans terms?

Well, let me give you a brief history first. Most people believe that AJAX is a relatively new technology. However, remote scripting was developed over a decade earlier by Microsoft. While the term "AJAX" was arrived at in 2005, it ancestory has been around for quite some time now.

AJAX was developed mainly to improve the overall user experience. Nothing is worse that having a fast internet connection and still waiting for page after page after page on a site to load while it exchanges information with the server. With AJAX a user can land on a web page and in seconds, be off and running, while a majority of the data is still loading behind the scenes. Pages do not need to be reloaded each time information is submitted.

For example...

Have you ever tried to book a hotel room and before you could even pull data back for your travel dates, the browser window timed out because the page took so long to load. Well, if that booking engine was created using AJAX technology, while you insert your travel critieria the page is automatically loading all room type information in the background. So as soon as you hit that submit button, you will have your desired information almost instantaneously.

We did just that when THAT Agency utilized AJAX to build Sol Melia a custom booking engine that would communicate with an existing XML that all room data was loaded into. Check out the results...http://booking.paradisuspalmareal.com.
Taking advantage of your .htaccess file can save you in several ways when it comes to running your website. Broken links, bad browser behaviors, changing domain names and unwanted guests are problems we all face. One way to remedy these issues is to take adantage of the .htaccess file when it comes to broken links.

Within the .htaccess file you have the ablitiy to (301) redirect a broken or missing page to a new url or a replacement page at any time by using the code below. The reason this is recommended when removing or moving pages within the site is the search engines tend to keep they're links regardless of the outdated copy. Especially if your site doesn't have a high traffic rate or get spidered often. Users coming from the search engines will hit missing or broken pages and get a 404 error and thus not getting the benefit of your site or content.

Search engines as well will hit 404 errors and eventually stop spidering or penalize you for running errors on your site via missing or broken links.

» Read More

So, why should you validate your CSS and XHTML code? There are many reasons but primarily so the so the site functions and looks exactly the way you intend it to. Another important reason is that search engine spiders don't necessarily act like web browsers in the fact that once they encounter an error some simply quit and move on to another page or even worse, stop coming to that page all together. Which mean that the search engine is kind of penalizing the site pages for invalid code.

It could be as simple as making sure you've got the right Doctype at the top of your XHTML document. Is it XHTML 1.0 Strict, XHTML 1.0 Transistional, HTML 3.2 or HTML 2.0? Making sure you've got the right type of document is always the first step in the process of validating your site. Some Doctype's don't allow things like "target="_blank" for opening new windows. Something simple yet it will show up as invalid code.

A great resource for making sure your site pages validate is brought to you by those handy dandy people over at the World Wide Web Consortium (W3C.org). They have several free online validators for XHTML and CSS and more so you've got no more excuses.

Their tools will lay out each error encountered and will often give you some idea of how to fix it. Having clean and valid code is just another way of making sure you're on top of your SEO and coding game.
When it comes to search engine optimization, flash sites are generally regarded as somewhat of a problem. The problem lies in the fact that the text content of a swf (flash) file is not readily available through view source like an html site. Instead the text is embedded into the swf and therefore is not indexable by the search engine spiders. This presents a problem for sites built using all flash.
Luckily, The developers at Deconcept have this flash SEO situation under control and have broken it down for the rest of us.

Here's how it's done: First design your page as if you aren’t using Flash at all. To do this, design an HTML page that contains a summary of what is covered in your site (the content). Then using "swfobject.js" you tell the browser to display the flash while the search engines actually index your HTML summary. This causes Google to skip the Flash swf files and only index the HTML (the content). When a viewer with a browser that supports Flash visits your site, they will only see the Flash content. This technique basically lets a 100% flash site be treated just like any other html page as far as search engines are concerned.

Heres a preview of the code that allows the search engines to index html content but display the flash instead:

<div id="flashcontent">

This is replaced by the Flash content if the user has the correct version of the Flash plugin installed.

Place your HTML content in here and Google will index it just as it would normal HTML content (because it is HTML content!)

Use HTML, embed images, anything you would normally place on an HTML page is fine.

</div>

<script type="text/javascript">

// <![CDATA[

var fo = new FlashObject("flashmovie.swf", “flashmovie", “300?, “300?, “8?, “#FF6600?);

fo.write("flashcontent");

// ]]>

</script>

For a full breakdown as well as the source files visit deconcept here: