Category Archives: Website Design

Website for the Law Offices of Constance Bessada

DataPlex designed and is now hosting the website for the Law Offices of Constance Bessada, an experienced family law attorney. Her website follows many of her design requirements including page layout, color scheme, and methods of interactivity. Feel free to take a look!

What to do about Bots that kill AWS Micro Instances running WordPress

For one of our customers, we leveraged WordPress and its powerful capabilities to create a rather large website consisted of hundred of pages. Because the expected traffic is to be low, we installed their site on a economical AWS Micro Instance which performed well. In the middle of last night, however, the instance’s CPU utilization percentage hit 100% for nearly one hour. Anyone else accessing the site during this period would have had a sluggish if not unresponsive experience.

AWS Micro Instances are great for testing and deploying simple websites that, by their design and market, won’t be required to work very hard. That said, websites are at the mercy of whoever accesses them from the rest of the Internet. Too many accesses during too short of period can overrun the resource allotment of a Micro Instance.

In our investigation, we discovered that a bot called Aboundexbot was the culprit. The Aboundexbot bot wanted to crawl the entire site and quickly at that, an act which threw the CPU Utilization to 100% because AWS micro instances, as their name implies, are limited to a certain amount of CPU activity per unit of time. Unfortuately, Aboundexbot did not throttle it’s access as do other better behaved bots, and it apparently does not have a built-in mechanism (such as a timeout) to detect when it may be overtaxing a site.

In any case, we decided that we just didn’t want Aboundexbot and perhaps some other badly behaved bot to visit our customer’s site so as the keep the site performing well. Our thought was to add a corresponding “disallow” entry to the “robots.txt” file. However, whereas this is a simple task for a regular website, it is more challenging for a WordPress-based site if it has been installed in the domain root. In that case, all of the site’s root file access go through WordPress’s dynamic page generation, including access to the theoretical “robot.txt” file.

In the WordPress wp-includes/ folder, there is a file called functions.php in which there is a function called do_robots() which dynamically creates a “robot.txt” file on demand. But it’s not very sophisticated, allowing for just two types of output depending on the Site Visibility setting under WordPress’ Dashboard > Settings > Privacy page.

We could have added a plug-in that provided finer robot.txts control, and we still might do that, but to get a solution in quickly, we decided to simply enhance the do_robots() function as follows (our code addition in boldface):

function do_robots() {
  header( 'Content-Type: text/plain; charset=utf-8' );

  do_action( 'do_robotstxt' );

  $output = "User-agent: *\n";
  $public = get_option( 'blog_public' );
  if ( '0' == $public ) {
    $output .= "Disallow: /\n";
  } else {
    $site_url = parse_url( site_url() );
    $path = ( !empty( $site_url['path'] ) ) ? $site_url['path'] : '';
    $output .= "Disallow: $path/wp-admin/\n";
    $output .= "Disallow: $path/wp-includes/\n";
    $fbotmore = file_get_contents('./wp-content/robots.txt');
    if ($fbotmore !== false) $output .= $fbotmore;

  echo apply_filters('robots_txt', $output, $public);

We are currently on WordPress version 3.3.1. Because different versions of WordPress may have different code for this function, use your programming know-how to add the above two boldfaced lines to the function in the most appropriate way. Note that this is not a permanent change as any significant WordPress upgrade will overwrite this change in the functions.php file.

We then located a list of other badly behaved bots and installed our collective list in the wp-contents/robot.txt file which is now included whenever our file is accessed.

For your reference, here is what we came up with for the contents of our robots.txt file. Note that WordPress has a few entries of its own that are placed in advance of this content.

User-agent: Aboundexbot
Disallow: /
User-agent: NPBot
Disallow: /
User-agent: TurnitinBot
Disallow: /
User-agent: EmailCollector
Disallow: /
User-agent: EmailWolf
Disallow: /
User-agent: CopyRightCheck
Disallow: /
User-agent: Black Hole
Disallow: /
User-agent: Titan
Disallow: /
User-agent: NetMechanic
Disallow: /
User-agent: CherryPicker
Disallow: /
User-agent: EmailSiphon
Disallow: /
User-agent: WebBandit
Disallow: /
User-agent: Crescent
Disallow: /
User-agent: NICErsPRO
Disallow: /
User-agent: SiteSnagger
Disallow: /
User-agent: ProWebWalker
Disallow: /
User-agent: CheeseBot
Disallow: /
User-agent: ia_archiver
Disallow: /
User-agent: ia_archiver/1.6
Disallow: /
User-agent: Teleport
Disallow: /
User-agent: TeleportPro
Disallow: /
User-agent: Wget
Disallow: /
User-agent: MIIxpc
Disallow: /
User-agent: Telesoft
Disallow: /
User-agent: Website Quester
Disallow: /
User-agent: WebZip
Disallow: /
User-agent: moget/2.1
Disallow: /
User-agent: WebZip/4.0
Disallow: /
User-agent: Mister PiX
Disallow: /
User-agent: WebStripper
Disallow: /
User-agent: WebSauger
Disallow: /
User-agent: WebCopier
Disallow: /
User-agent: NetAnts
Disallow: /
User-agent: WebAuto
Disallow: /
User-agent: TheNomad
Disallow: /
User-agent: WWW-Collector-E
Disallow: /
User-agent: RMA
Disallow: /
User-agent: libWeb/clsHTTP
Disallow: /
User-agent: asterias
Disallow: /
User-agent: httplib
Disallow: /
User-agent: turingos
Disallow: /
User-agent: spanner
Disallow: /
User-agent: InfoNaviRobot
Disallow: /
User-agent: Harvest/1.5
Disallow: /
User-agent: Bullseye/1.0
Disallow: /
User-agent: Mozilla/4.0 (compatible; BullsEye; Windows 95)
Disallow: /
User-agent: Crescent Internet ToolPak HTTP OLE Control v.1.0
Disallow: /
User-agent: CherryPickerSE/1.0
Disallow: /
User-agent: CherryPickerElite/1.0
Disallow: /
User-agent: WebBandit/3.50
Disallow: /
User-agent: DittoSpyder
Disallow: /
User-agent: SpankBot
Disallow: /
User-agent: BotALot
Disallow: /
User-agent: lwp-trivial/1.34
Disallow: /
User-agent: lwp-trivial
Disallow: /
User-agent: Wget/1.6
Disallow: /
User-agent: BunnySlippers
Disallow: /
User-agent: URLy Warning
Disallow: /
User-agent: Wget/1.5.3
Disallow: /
User-agent: LinkWalker
Disallow: /
User-agent: cosmos
Disallow: /
User-agent: moget
Disallow: /
User-agent: hloader
Disallow: /
User-agent: humanlinks
Disallow: /
User-agent: LinkextractorPro
Disallow: /
User-agent: Offline Explorer
Disallow: /
User-agent: Mata Hari
Disallow: /
User-agent: LexiBot
Disallow: /
User-agent: Web Image Collector
Disallow: /
User-agent: The Intraformant
Disallow: /
User-agent: True_Robot/1.0
Disallow: /
User-agent: True_Robot
Disallow: /
User-agent: BlowFish/1.0
Disallow: /
User-agent: JennyBot
Disallow: /
User-agent: MIIxpc/4.2
Disallow: /
User-agent: BuiltBotTough
Disallow: /
User-agent: ProPowerBot/2.14
Disallow: /
User-agent: BackDoorBot/1.0
Disallow: /
User-agent: toCrawl/UrlDispatcher
Disallow: /
User-agent: WebEnhancer
Disallow: /
User-agent: TightTwatBot
Disallow: /
User-agent: suzuran
Disallow: /
User-agent: VCI WebViewer VCI WebViewer Win32
Disallow: /
User-agent: VCI
Disallow: /
User-agent: Szukacz/1.4
Disallow: /
User-agent: QueryN Metasearch
Disallow: /
User-agent: Openfind data gathere
Disallow: /
User-agent: Openfind
Disallow: /
User-agent: Xenu's Link Sleuth 1.1c
Disallow: /
User-agent: Xenu's
Disallow: /
User-agent: Zeus
Disallow: /
User-agent: RepoMonkey Bait & Tackle/v1.01
Disallow: /
User-agent: RepoMonkey
Disallow: /
User-agent: Zeus 32297 Webster Pro V2.9 Win32
Disallow: /
User-agent: Webster Pro
Disallow: /
User-agent: EroCrawler
Disallow: /
User-agent: LinkScan/8.1a Unix
Disallow: /
User-agent: Kenjin Spider
Disallow: /
User-agent: Keyword Density/0.9
Disallow: /
User-agent: Cegbfeieh
Disallow: /
User-agent: SurveyBot
Disallow: /
User-agent: duggmirror
Disallow: /

To test your change to the do_robots(), just access from your favorite browser your file. Did it work? Let us know.

Hopefully, this change will keep the micro instance from being overtaxed by zealous bots. If you get a bot that simply ignores the robot.txt file, you may have to resort to adding a “deny from” entry in your server configuration, but in our experience we haven’t seem many of those.

DataPlex designs Website for The American Monorail Project

In preparation for the December 2011 MonorailEX trade show in Las Vegas, DataPlex has developed a full-featured website for American Monorail, Inc., a 501(c)(3) education organization. The goal of the American Monorail Project website is to make the public aware of the benefits of modern monorail systems particularly when compared to other much more expensive forms of mass transit.

The American Monorail Project website can be accessed at:

The website has over 200 pages with information, editorial, maps and videos about mass transportation systems and monorails. It is outfitted with a custom-designed home page that provides a slideshow of pictures that automatically convert to videos and play when clicked. Following its educational mandate, the site allows public comments on virtually every page which are moderated by website administrators.

The website demonstrates some state-of-the-art features such as social media connectivity on every page, rich menu drop-downs, and the use of a special scripted font for artistic flair that works in all modern browsers.

Personal Computing Comes Full Circle

Revisiting the Lessons of Timesharing

by Warren Juran

“Those who cannot remember the past are condemned to repeat it.”  George Santayana, might have been talking about how today’s Internet-based computing echoes computer timesharing from the 1960s and 1970s.  How can the lessons learned from that early era of computing help us to design better systems and applications today?  The tale of personal computing’s evolutionary path shows what experienced engineers and developers can bring to the design table.

Once upon a time, computers were so large and expensive that hardly anyone could afford to have one.  Computer users punched their program instructions and data into cards and brought the decks of cards to a computer center.  Operators at the computer center fed the cards into the computer’s input device.  The printed results were available after a considerable wait.  This inconvenient system seemed to take forever to debug software because of the delays after each cycle of correction and re-submission.  There wasn’t much ready-to-use software and the benefits of computing were available to very few.

Computer timesharing let more people enjoy the advantages of “personal computing.”  Hundreds of users could use their own keyboard/printer terminals to share the resources of one central computer.  In the 1960s and 1970s, computer timesharing companies spread around the world, operating large data centers and communications networks to provide dial-up services for their users.  Timesharing companies opened branch offices in large cities and employed armies of salesmen to locate and cultivate new customers.  The new customers could do their own interactive programming, or use extensive libraries of ready-to-use software for their computing needs.

The timesharing companies provided the central computers, communications networks, software libraries, customer support and education, printing services, remote job entry for traditional “batch” computing jobs, client data storage, and a one-stop-shop for word processing, accounting, messaging, engineering analysis and other customer requirements.

Developers of early timesharing systems dealt with issues like utilizing limited bandwidth, providing rapid access to large amounts of data, and insuring that individual users didn’t monopolize computer resources. Tools like “linked lists,” “sparse matrices,” “hashing,” and priority queuing helped improve timesharing systems. Today’s computers and communication networks are vastly more powerful than their early counterparts, but disciplines like Information Theory, Queuing Theory, Distributed Computing and Peer-to-Peer computing can still enhance system performance and reduce costs.

Mobile Computing: Native Apps versus Web Apps

What it Means to Your Organization

by Harry Tarnoff

Our clients often ask about the advantages of mobile applications and the differences between mobile “native apps” and “web apps.” They ask, “How would a mobile app relate to our business, our people, and the products and services we offer? Should our mobile app be a native app or a web app? Should we consider corresponding changes in our business’ IT systems?”

A well-designed mobile app can certainly complement a business’ website and aid in the marketing and sales of the business’s offerings. The selection of a native or web platform will affect an app’s characteristics, what services it can readily provide, and the app’s future evolution. A wrong choice could cripple a start-up or a company launching a new offering. A poorly designed app may never become popular enough to gather a following.

Even more striking is how mobile apps are growing in importance. The percentage of mobile-only users, at 25% today, is estimated to be more than 65% in 2015. This means that, instead of your website, it could soon be your mobile app that tells your customers about you, your company and its offerings. Your mobile apps need the same care, professionalism, and polish as your website and marketing brochures. The quality of your brand must be high for all elements of your public persona.

Fundamental Differences

A “native app” works on only certain devices for which it is targeted. It is written in one of the development languages supported by the target device. A native app runs on the target device and typically stores its data on the device. Native apps can run very fast and can easily interface with any of the device’s hardware and operating system features.

The flexibility of a native app comes at a price, however: Native apps written for one platform, say Apple’s iOS which drives iPhones and iPads, are not compatible with other platforms like Android or BlackBerry OS. Developers spend significant resources to translate, or “port,” their applications to run on each additional device family. Supporting and maintaining similar software for multiple platforms is expensive.

On the other hand, a “web app” is developed using standard web technologies like HTML, CSS and JavaScript. The resulting program, typically accessed through a URL web address, requires only a device with a standards-based browser. An iPhone, iPad, Blackberry, Android phone, or Android tablet can all be suitable clients for the same application.

A web app pulls content from a remote server, so it needs an active WiFi or cellular link. A web app running within a mobile browser generally runs slower than a similar native app, has some restrictions on its user interface, and often cannot take full advantage of special device features.

But the extent of these differences is narrowing. Native and web apps are breaking through their stereotypes. New development platforms let native apps share a common codebase, easing development. Improvements in mobile browsers and new mobile OS features, let web apps mimic their native counterparts and access special device hardware features. Cross-compiling development platforms improve the performance of web technologies.

Business Card QR Codes and the Apple vCard Problem

by Harry Tarnoff

You may have heard the buzz on “quick response codes” – QR codes, typically one-inch square barcodes that are appearing on advertisements, coupons, in stores, even on T-shirts and shopping bags. The idea is someone interested in the product, store or event could whip out their cellphone, take a picture of the code and have the phone’s browser instantly bring up their associated web page with more information. Wouldn’t it be nice to do something similar on business cards so that someone can scan a code and have the contact information automatically added to their electronic address book?

As we opened up our new offices in Downtown Los Angeles, we wanted to do exactly this, not only because it would make it easier for the people to whom we gave our business cards to add us to their devices’ contact list, but it would also demonstrate some high-tech capability on an otherwise non-technical piece of paper – perfect for a technology strategy company. Well, it’s good that we know technology because there were a couple of issues along the way, the solutions for which we are more than happy to share.

The vCard and the QR Code

The generally accepted format for a electronic business card is called a “vCard.” It has been around since the mid-1990′s and is supported by all the major email and CRM programs. A vCard file can be attached to an email message or linked on the web. It is a readable text file with fields for names, addresses, phone numbers, and other personalized data.

QR or Quick Response codes represent an improvement over their UPC bar code ancestors because they can reliably carry more information for easy access by a business’ customers. Instead of a series of parallel lines as with UPC bar codes, QR codes are in a two-dimensional matrix with blacked out squares at certain row-column intersections, much like a crossword puzzle. Customers use smartphones to scan these codes to see more information – typically a web page associated with the codes – about whatever it is that these codes are associated with.

Let’s now say you want to put the equivalent of your vCard on your business card as a QR code. It may be a natural thought to simply put all of the vCard information directly into the code. This is not a good idea. Besides the code becoming too detailed and harder to scan, when someone scans it using a typical scanner app, they would get only the vCard text. The vCard information does not get added automatically to the Address Book unless the app itself is aware that the data represents a vCard and adds it to the Address Book itself. Your potential customers lacking an appropriate scanner application could become frustrated.

What you do instead is what the advertisers do, that is put a single web link into the QR code. This approach has wide support and will undoubted work fine. After all, that is the primary purpose of QR codes, to be scanned and take a user to a predefined web address.

The plan, then, is to create a code that takes the user to a web address which has a vCard file. The device’s browser, seeing that the “web page” is a vCard, will download the contact information and allow the user to add it to the Address Book.

The Apple Mobile Device Issue

While this approach works on virtually all desktops, notebooks, and many mobile devices including those based on Android, there is a big snag when it comes to Apple mobile devices. For years, Apple has supported vCards as the only easy way to export Address Book entries.  However, Apple’s mobile device browsers do not support vCard files. If you scan a link to a vCard file, all you get is a “Safari cannot download this file” message. Oops.

While this oversight will most likely eventually be fixed, it is probably not prudent to march forward adding QR codes to business cards and hope that Apple fixes this problem. Some kind of hopefully temporary workaround is in order.

You could email the vCard to the Apple device. The device will then ask the owner to confirm adding the data to the Address Book. The disadvantages to the approach are:

  1. It is not automatic since the user needs to enter an email address on which to receive the vCard
  2. The user has to give up his e-mail address which he or she may not want to do
  3. Emails are not always fast and reliable, so the user is forced to wait and possibly retry

The Solution

Fortunately, we have a much better workaround. It requires an entry in Google Places (or Google Maps) and administrative rights to a website.

Our DataPlex entry with Google Places has a bunch of business-related information and is a fine place to send someone who scans in the QR code from the back of our DataPlex business cards. The solution is to forward someone on an iPhone or iPad to this alternate URL. If you haven’t already, set up your entry in Google Places.

The Technical Part

The key part of the solution is adding a URL rewrite rule. Although the following is for Apache, there is a similar process for Microsoft’s IIS.

Here are the lines to add to the .htaccess-file on the website for the folder that contains the vCard:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} .*Mobile.*Safari
RewriteRule ^(.*)vcard.vcf$

Your technical staff should, of course, change the third line with the “RewriteRule” to link to the proper map reference. If it is not already active, your staff also should enable the mod_rewrite module.

How this works is, when an Apple mobile user snaps a pic of the QR code in some scanner app, that app launches Mobile Safari to bring up that web page. The .htaccess tells the Apache server, when it sees that the “user agent” (browser ID) has contained within it the text strings “Mobile” and “Safari” to redirect the browser to the URL specified in the RewriteRule.

You can continue to use the same QR code pattern and URL but update the information on your website-based vCard and in Google Places without having to necessarily reprint your business cards.


Visually, what happens after the Apple mobile device user snaps the pic of the QR code, is, within seconds, he or she is looking at a Google Maps page for the business. Once there, the user can click on “more info” (the right-facing arrow in the blue circle) and then “Add to Contacts” at the bottom of the page. It is a bit unfortunate that the Add Contacts button, along with those for “Share Location” and “Add to Bookmarks” are off the bottom of the screen so the user would have to scroll down, but most experienced Apple device users would know this.

If you want to see a working demonstration of a working QR code-based vCard link, just scan the QR code below. It has the link to a vCard on the DataPlex website. If you are using an Apple device, you’ll end up in Google Maps as described above. Otherwise, you will be prompted to download the vCard directly into your Address Book or Contact List.

vCard for DataPlex

Barcodes, especially the new matrix codes such as QR, can be wonderful time-savers for businesses, but they have to be implemented smartly. If you would like to upgrade to the latest in barcode technology, let us help in your deployment of an easy-to-use yet robust system.

A Quick Primer on Quick Response Barcodes

There are regular enterprise business systems, and then there are those exceptional systems that connect to sensors and allow integration with the real-world, simplifying logistics, lowering costs and saving money. We build such systems, and one of the areas our customers ask us about are barcodes. There is a new type of barcode that is sweeping the world, and you should know about how it may improve your business.

It is known as a Quick Response code or QR code. We’ve put together this QR Code Primer in Q&A form to answer the more common questions, and, should you have more, please feel free to contact us to have a no-obligation discussion.

 What are QR codes?

QR codes are bar codes similar to the UPC codes you see at the market but they are organized into rows and columns and therefore are able to contain more information. Customers use their smartphones to scan these codes to see more information – typically a web page – about whatever it is that these codes are associated with. QR Codes caught on big in Japan a couple of years ago and are now just beginning to appear in the United States. The codes can be used for other purposes too, say, within an enterprise to improve workflow (more on that below).

What do they look like?

While the can be any size, they are square and usually not more than an inch high.  Depending on how much data they contain, the dots (or pixels) will range from large to small.

Here are some sample QR codes:

QR code #1 QR code #2 QR code #3

The first code, on the left, is lower-resolution than the others because it contains the least amount of data. As more data is put into the same size QR code, the dots shrink to accommodate. Larger dots are generally better because the scanner is better able to distinguish them. The third code shows that there can be some creativity; some people even alter the dot pattern to show readable letters or images, but that comes at a cost of lower reliability.

How does a business use them?

There are a myriad of uses, even inventive new ones such as scavenger hunts, green ticketing, and furniture assembly. Common QR code uses are for the purposes of marketing, promotion, entertainment, education, information transfer, sales and retail, and workflow:

Marketing increase a business’ exposure and market
Promotion promote new products and special events
Entertainment e-ticketing, paintball targets
Education tests, lessons, report cards, museum guides
Information Transfer transferring business card information
referencing newspaper articles and online sources
Sales and Retail payments, track units sold, units returned
Workflow sequencing, provisioning, inventory control

sample promotional use

Are there alternatives?

Yes, there are the QR code’s ancestors of single row of parallel lines like the ubiquitous UPC code, and there are other matrix bar code formats including specialty ones used in manufacturing to work across longer distances between objects with the code and the scanner. There are new codes being invented all the time such as Microsoft tags, but unless there is a compelling overriding reason, typically we recommend sticking with one of the more common and better supported formats.

What apps are already available?

General-purpose scanner apps for mobile devices are everywhere. Just go to your favorite app store and search for “qr code.” The real challenge is for a business to set up an appropriate system and then generate the codes to be useful in some way. Sometimes based on the nature of the business use a custom scanner apps needs to be developed.

How can my business make use of QR codes?

If you are asking this question, then you already have some idea of how QR codes may be able to streamline your operation or be used to promote some product, service or event.  Some uses are straightforward and require not much more that creating a landing webpage, generating a code with its URL, and printing the code on promotional materials.

cute QR coded presentAs system developers, we are also interested in the area where QR codes hold tremendous promise but not much has yet been done … with business enterprise. These more sophisticated uses require finely tuned apps particularly when the codes are used to track workflow through various states and statuses. For a large operation, the scanning of codes feeds a company-wide enterprise system to keep important databases up-to-date automatically. As one quick example, Starbucks recently announced that it is now accepting QR code-based mobile device payments at 7,500 locations.

Depending on the application, there can be some “gotchas,” even with seemingly benign uses, for example the problem we identified with Apple mobile devices.

cute QR coded presentOur experience with barcodes and scanning goes back a few years when some of our team members designed printers and scanning equipment. As a result of our rapid development ability, our customers have been very happy with our systems including the good folks behind the NBC game show “1 vs 100.” Let us know how we might assist you.

New Case Study – PrefixSuffix

A new case study was added to the DataPlex website today discussing DataPlex’s interactive English language word root reference guides. Read more.

Website Design and Smartphones: To Flash or Not to Flash (Part II)

In Part I, we discussed how relying on Flash for websites can lead to problems with smartphones that don’t support Flash. We recommended the solution of detecting whether Flash is installed and, if not, substituting an alternative such as a non-animated graphic image. But that can be rather boring and not in keeping with your site’s up-to-date and sleek philosophy.

In this Part II, we present how, for our clients, we have created Flash-like effects without using Flash at all. Who says that the alternative has to be a boring static image, right?

One word, JavaScript. JavaScript (JScript for Microscoft’s Internet Explorer) is the de facto client-side scripting language embedded in every modern-day browser that, if utilized properly, can be leverage to provide special effects without the need for Flash. All smartphone have to support JavaScript since so many website use it. Note: JavaScript is not the same as Java which, like Flash, needs to be installed in your browser separately and is not available on all device platforms. JavaScript is the only universal browser scripting language.

Let’s explore a few examples of what we can do with JavaScript.

Example 1:  Rotating and Fading Slideshow

Here’s where a spot in a web page is used to show one picture after another. In the old days, a few years ago, abruptly changing from one image to another was an accepted practice. As designers started to use Flash more, they leveraged Flash’s ability to fade one image out and another back in. Well, JavaScript can do that t0o.

Check out Example 1.

Apple eschews Flash technology, and that’s why there is and probably will never be any Flash support on the iPhone and iPad devices. If you go to Apple’s website, you’ll see them using this effect in many places.

Example 2:  Rotating, Fading and Sectioned Slide Show

One disbeliever who is now a happy client said, “so, you can rotate through images, but what about special effects?” We asked him to mention one, and he said “okay, can you have an image swipe across from left to right in three sections?” We worked for a bit and show him something similar to our second example here, and he was convinced.

See Example 2.

What is going on here is that there are actually several images next to one another, three panes as it were. The JavaScript code rotates through the images in tandem, offset by a small delay to get the desired effect. Note the combined effect of simultaneous sectioning and fading.

Example 3: Two-Dimensional Sectioned Slide Show

Just to prove our point without any doubt, we took our second example with horizontal sections and added vertical sections to generate two-dimensional sectioning with two rows and three columns.

See Example 3.

There are other possibilities limited only my our mutual imaginations. Like Flash, JavaScript can create the following effects:

  • image fade in / fade out
  • image scrolling
  • drop-down / slide
  • changing speed
  • changing color
  • rotation
  • zoom in / zoom out
  • sprite (individual image) control
  • overlaying / superpositioning
  • multiple image morphing
  • synchronization of disconnected animations

JavaScript is not as good as Flash in:

  • video playback
  • accurate sound and video synchronization
  • high frame rates for graphics
  • unlimited text font support
  • realtime user interaction

This comparison does not suggest that JavaScript is every bit as good as Flash in its handling of effects. Far from it. Flash is a much better environment for creating animation because it has a complete development platform for developing its code and a specialized environment in which to execute it.

That said, if you would like the maximum amount of interoperability especially with smartphones, that Flash is that much a better environment doesn’t matter. In that case, turn to JavaScript.

Since JavaScript doesn’t have an Adobe behind it pumping out development environments for creating animation, you will need to turn to a development firm that knows JavaScripts in’s and out’s, matches up what you’d like to see, and provides a custom solution for your site. While that might sound expensive, it’s really not as we have created JavaScript replacements for fractions of what the original Flash effort cost.

*     *     *

In our two-part article, we hope we’ve expanded your thinking about how not to use Flash, at least not for every animation. We would enjoy hearing from you if you’d like to see if we can help with your site animations.

DataPlex web designers update caterer’s website

Our professional web designers updated the web site for Cynthia Brooks Catering of Pasadena, California. We replaced their Flash-based slideshows with ones based on Javascript so that they website is viewable from smartphones and the new iPad.

Cynthia Brooks Catering webpage