10 posts
in June - 2007
The line between web design
Posted Friday, June 29, 2007 1:17:04 PM by Zoe Gillenwater

There's no black and white distinction between what constitutes plagiarism and what doesn't. Sometimes its obvious, but often it's not clear if a new piece has crossed over the murky line. This includes design plagiarism.
An outside organization asked my employer for permission to use one of our web site designs for their own site that they wanted to create. I'm the designer of the site in question. We've explained to the organization that they may use the HTML and CSS from our site if they put a credit to me as the original author of the CSS inside the code — after all, markup is not really something you can copyright, especially the simple, no frills stuff I used on this small site.
But we've having trouble getting them to understand that though they can be influenced by the design, as any designer can, they can't blatantly copy it. They can have a similar layout and look, but they can't use the same images or content. This organization definitely wants to work with whatever guidelines we give them — they don't want to violate our copyright or step on our toes at all — but they don't appear to understand the distinction yet. I can't blame them.
How do you distinguish between sites that just have a similar style or layout and sites that are copies? I remember my art teacher in high school always telling us that we had to make our art at least 30 percent different from whatever source file we were using as inspiration (usually a National Geographic photo, since we had a whole floor to ceiling cabinet of old issues). I have no idea where she got this 30 percent figure from, and I still don't really know how I would evaluate if something was 10 percent different versus 40 percent different.
I gave the person who requested our design this guideline to tell if his design was plagiarizing or not: Once your design is different enough that someone could conceivably believe you created it without ever having seen our design, you should be safe. If someone came across your design and accused you of copying our design, could you reasonably defend your work by saying you'd never seen our site before, that it's just a coincidence?
By this, I don't mean to imply that if someone saw both designs they would have to be able to see no similarities, but rather that there could be some possibility the two designs were created independently. They could think it's possible that one used the other as a starting point, as long as they could also accept the possibility of the opposite.
Do you think this guideline holds water? Is it too loose? Too restrictive? Do you have a more precise way you determine what is just inspiration and what is copying, in terms of web design? I'd love to hear your thoughts on this in the comments.
Category tags: Designing for the Web, Dreamweaver
Posted by Zoe Gillenwater
Add comment |
View comments (4) |
Permalink
|
Trackbacks (0)
|
Digg This
Making Buttons Work in Flash CS3 (ActionScript 3.0)
Posted Wednesday, June 20, 2007 7:08:55 PM by David Stiller

At the time of this writing, Flash CS3 is still brand spankin’ new on the shelves. For some lucky folks, whose companies presumably have volume discounts with Adobe, the latest version of Flash is already in their hands — has, in fact, already been installed without any fanfare or training. Some of these designer/developers are finding, quite suddenly, that button symbols no longer seem to work in Flash CS3 (I’ve seen quite a few panic posts already on the Adobe forums). What gives? Is Flash broken? Not a bit of it! :) Let’s see what’s going on.
ActionScript 3.0 is a new language
The truth of the matter is, ActionScript 3.0 is different, in many respects, from AS2 or 1. (As it happens, it’s also the same in many respects, which can be a source of frustration for experienced users, but chin up!) One of the most basic, familiar things people do in Flash is to assign some ActionScript to a button. In former versions of ActionScript, this could be done in a number of ways, as explained a bit in “Museum Pieces: on() and onClipEvent().” In AS3, the rules have changed. There were at least four ways to handle events in the past — on() and onClipEvent(), dot notation, addListener(), and addEventListener() — and AS3 mercifully reduces those four down to one consistent approach. Honestly, this makes it easier.
Here’s how it goes. Let’s say you have a button symbol on the Stage. Select it, give it an instance name in the Property inspector. Now that it has an instance name, it has become accessible to ActionScript, which now has a unique way of identifying it from any other objects present. In a keyframe script (select a keyframe in line with the button, preferably a keyframe on its own layer), type the following:
myButton.addEventListener(
MouseEvent.MOUSE_UP,
function(evt:MouseEvent):void {
trace("I've been clicked!");
}
);
And that’s it. Why not select the button itself? What’s wrong with good old on()? For better or worse, direct attachment of code is a thing of the past. ActionScript 3.0 simply doesn’t support it. In fact, you’ll notice that the Behaviors panel is dimmed when a FLA’s Publish Settings are configured for AS3. Why? Because Behaviors rely on on() or onClipEvent(). Change your Publish Settings to AS2 or 1, they come back.
In the above short sample code, myButton represents whatever instance name you chose for your button symbol. If you actually used myButton, you’re good; otherwise, change the above code to match what you chose.
The classes that define button and movie clip symbols both inherit much of their functionality from a class called EventDispatcher, which provides that addEventListener() method. This method is what “wires up” such objects to respond to events, such as a “mouse up” occurrence, where the user has clicked, then released, the mouse. There are two required parameters (more, if you’re interested — see the EventDispatcher class entry for details), and they are this: a) what event to listen for, and b) what function to perform when the event occurs.
In this case, we’re listening for MouseEvent.MOUSE_UP. To see what other events are available, look up the MouseEvent class (or the Event class itself, which has many inheritors of its base functionality). The function inside any event handler is going to receive an object of its own (here, a MouseEvent object) that gets passed in as a parameter. In the above sample, that parameter is the arbitrarily named evt (for “event”), and that object contains a number of useful properties, including, for example, target, which refers back to the object that dispatched it.
Change that trace() statement from "I've been clicked!" to this, for example:
trace(evt.target);
… and you’ll see a reference to the button itself. The SimpleButton class defines button symbols in AS3, so look up that class to see what further properties are available. You could trace the button’s instance name, for example, by using this expression:
trace(evt.target.name);
… which makes sense if you consider what the expression means. Again, when the user clicked the button and released, a MouseEvent.MOUSE_UP event was dispatched. When that occurred, that dispatch included a MouseEvent instance as carry-on luggage. Because of our event handler, a function received that instance (and its luggage) by way of an evt parameter. That evt parameter is the incoming MouseEvent instance, and according to the MouseEvent documentation — make sure to click the “Show Inherited Public Properties” hyperlink under the Public Properties heading — MouseEvent instances have a target property, which points to the object that dispatched the event. Because that object was a button symbol (an instance of the SimpleButton class), we know that any reference to it has a name property.
This differs from the way such event handling was done in AS2. For button symbols, it went like this:
myButton.onRelease = function():Void {
trace("I've been clicked!");
}
Notice the lack of an incoming parameter. To refer to the button itself, from inside that function, you could use the global this property:
myButton.onRelease = function():Void {
trace(this._name);
}
In ActionScript 2.0, the property that points to a button’s instance name is _name (with an underscore). Same principle, different approach.
Enjoy ’em both
If the new approach flies over your head, just go to File > Publish Settings, select the Flash tab, and change the version of ActionScript back to AS2 or 1. But I encourage you to at least take a few stabs at the new way. As the months go by, you’re going to see plenty of AS3 stuff on the horizon. Fortunately, Flash CS lets you take your pick of the language desired.
Category tags: Flash
Posted by David Stiller
Add comment |
View comments (34) |
Permalink
|
Trackbacks (0)
|
Digg This
Horn Blowing
Posted Wednesday, June 20, 2007 12:54:45 PM by Jim Babbage

Toronto Star Interview on Digital Photography
I'm a big believer in post secondary education and have been working with Centennial College as a teacher for many years. Recently, thanks to the Centennial College press contact, I was interviewed by the Toronto Star to share my thoughts on Internet resources for digital photography.
I thought I would post this here because both myself and another instructor supplied several links about digital photography. If you've got a digital camera - or even a film camera - you might find some of the links in the article helpful.
Category tags: On the Personal Side, Photography
Posted by Jim Babbage
Add comment |
View comments (0) |
Permalink
|
Trackbacks (0)
|
Digg This
reCAPTCHA - Simple and Accessible
Posted Saturday, June 16, 2007 10:50:13 AM by Stephanie

For anyone who knows me well, the most shocking part of this post is that I actually, finally, put my own web site up. Yes, after 2 years of "Coming Soon," I've actually launched my site focued on training, speaking and coding. One of the things I learned (which I knew, taught, but obviously wasn't practicing) is--let the content dictate the design. Oh my word--I had three designers work on the site over the past two years before I realized I should practice what I preach and let the content, semantically marked up, determine the design. So much better than trying to force the content into your preconceived design notion--at least when you'd like to accomplish something. Special thanks to Carolyn Wood (editor-in-chief of Digital Web and owner of Pixelingo) for all her hard work with me on this (and for continually kicking my butt)!
Meanwhile, something I found in the process of creating this site, I wanted to share with you guys. Due to the spam I receive on my blog and the form on my old site, I really wanted to make it more difficult for the bots. However, I'm also very concerned about accessibility with the current CAPTCHA products I'm aware of. Enter reCAPTCHA. This one actually gives the user the ability to interact with the CAPTCHA by viewing the image and typing it in--even with JavaScript turned of. And if they prefer, they can have the challenge spoken. I've not had the ability to have a non-sighted user test it, but it seemed to work well for me when listening to it. Best of all, it's free!
They have one other product which I'm also using -- Mailhide. You enter the email and they generate some code that you put into your page (I doctored mine a touch) and, in the same way, it forces the user to solve a reCAPTCHA challenge to get your email. Of course, I'm sure nothing is foolproof, but having a little protection is better than nothing at all. Have a look!
Category tags: Accessibility, Dreamweaver, JavaScript
Posted by Stephanie
Add comment |
View comments (7) |
Permalink
|
Trackbacks (0)
|
Digg This
TODCON 2007 in review
Posted Thursday, June 14, 2007 11:13:17 AM by Paul Davis
TODCON 2007 RULED!
Ok, this was the best TODCon ever (exceptions listed below) and here are my top reasons:
- It was the largest so far!
- Great speaker line up with many new speakers
- Good deal of regulars attended and I always love seeing the regulars
- Adobe was there in force! (and they are a really great bunch of people, took time to speak to everyone they could and accepted everyone's suggestions and opinions to make the products better).
- Ken - wow, managed to handle questions very diplomatically and with great patience (and yes, we want everything)
- Randy - was sent to speak to the extension developers, which was me and Tom Muck - we had excellent conversations with some good dialog, really appreciated your time!
- Christian - yes, Spry's code base is too big and, yes, I know you'll work on that :-) I enjoyed the conversations with you a lot and appreciate the time you spent talking with me (and the ideas you gave me for products I could make!)
- Sharon - congrats on the promotion to manager! And thanks for the discussions on the product and helping us realize the daunting task of quality Adobe faces each cycle.
- Greg - thanks for the dinner! And for bringing Steph in on time for her keynote session!
- I got to meet some wonderful small business people, some who'd been around for a little while (like the bike shop guys from Tallahassee - go Noles) and some who are just starting out (like Carrie Enders - CKA Creative who is transitioning from print work to web design work with a focus on small business).
- Met the crew from lucidus (or, found out they were the crew from lucidus, already having known them a little while) and that was cool!
- Found some new opportunities from several attenders via networking!
- Got to pick up the slack on giving Green a hard time.
- Several really good dinner conversations and good eats too!
- Found out that, in fact, I can survive drinking Pepsi instead of Coke products.
Some exceptions are:
- Chris Flick wasn't there, nor was Sheri and other regulars, they were really missed.
- Barbra had to leave early and I didn't get to spend any time chatting with her
- Vegas, in June, is still very very hot
- I didn't have an internet connection through the first half of my AJAX/server side presentation - but I was able to recover!
- Missed out on Chaz's BBQ dinner (heard he is a great griller!)
- Didn't get to meet with a lot of the new attenders this year.
- I have to wait another year to go to the next one (once Ray recovers from this one and wants to do the next one!)
As usual, the conference was better then the prior ones. Hopefully next year, everyone can attend and we will have a better conference then before! A special thanks to Judy for the ride to the airport!
Category tags: Blogs and Blogging, Community MX, On the Personal Side, This and That, Web Business
Posted by Paul Davis
Add comment |
View comments (0) |
Permalink
|
Trackbacks (0)
|
Digg This
Goin' on a Safari...
Posted Monday, June 11, 2007 2:46:46 PM by Big John

A web buddy has just hipped me to This.
See that item down in the left corner? Safari now has a shiny new version number, and it works on the PC too. So old Stevie has entered the PC Browser Wars, eh? That should stir the pot a bit.
Category tags: Blogs and Blogging, Community MX, CSS, Designing for the Web, Dreamweaver, JavaScript, Mac, Mobile, Web Business
Posted by Big John
Add comment |
View comments (0) |
Permalink
|
Trackbacks (0)
|
Digg This
The Eve of TODCon
Posted Friday, June 08, 2007 9:43:44 PM by Jim Babbage

It's coming. In two short days, TODCon will be here once again. And I can't wait.
Bright lights, big city, geeks . . . what more could someone ask for?
And the line up looks great. Some very cool topics will be covered. No doubt much fun will be had in the city that never sleeps.
If you're attending for the first time, you're in for a treat. If you're a veteran (like me and many others) it will be great to hook up with all of you again. If ya can't make it this year, save them nickels and book your spot for next year. It's a great networking and learning experience for everyone. Not to mention the most fun a geek ever had.
I'm holding two sessions this year, one about Fireworks integration with Bridge and Photoshop and the other on working with the new pages and sub layers features in FW.
It's been fantastic to see what Adobe has done as they bring all the products into the Adobe family. New life (and I believe new respect) has been breathed into Fireworks. As the sole true web graphics program in the Adobe line, I'm seeing lots of new users coing on board. Many are skeptical, but once they see how fast they can work in Fireworks without having to switch applications, I think they'll be sold.
Old friends, I'm looking forward to seeing you. I hope to make some new friends too. I can't wait to see everyone.
Category tags: Community MX, Designing for the Web, This and That, Web Business
Posted by Jim Babbage
Add comment |
View comments (0) |
Permalink
|
Trackbacks (0)
|
Digg This
Mind Your ints and uints
Posted Friday, June 08, 2007 3:37:49 AM by David Stiller

ActionScript 3.0 introduces new data types galore, and two of the funniest looking are easily int and uint. For one, they belong to an ultra-elite group whose names are fully lowercase (the third is void). For two … well, I mean … uint. Come on. ;)
What are these data types, and what are they good for? Let’s take a look.
The words and numbers
The words themselves are abbreviations of “integer” and “unsigned integer,” so that’s at least a start. Contrasted with the familiar Number data type, which can be an integer or fractional number, like 6.26, int can only be an integer. What about uint, then? What does the unsigned part mean? This gets a little interesting, actually.
Technically, the Number data type is an “IEEE-754 double-precision floating-point number” (see the ActionScript 3.0 Language and Components Reference’s Number entry for full detail).
A number typed as Number can take up as much as 53 bits of memory (over 6.5 bytes), ranging all the way from 1.79e+308 down to 5e-324. To put this in perspective, one million — a number which, in dollar bills, would make any of us happy — is 1e+6. That means 1.79e+308 is a 1 with 308 digits after it, most of which are zeros. This is an insanely huge range! It effortlessly blows away the measly six zeroes of a million.
On the other hand, int is a 32-bit number (only 4 bytes), ranging from 2,147,483,647 down to -2,147,483,648. That’s a range of over 4 billion positive and negative integers, which seems plenty good to me. In all my years of working with Flash, I haven’t yet asked it to count to two billion in either direction. If you’re doing a lot of number crunching in AS3, you can save a bit of memory by using ints instead of Numbers, if integers are all you need.
So … unsigned integers. The word “sign” in this context refers to the implied “+” in front of positive integers or the “-” in front of negative ones. Unsigned integers don’t have a sign, and in Flash that means they’re positive — always. uint numbers range from 0 to 4,294,967,295 — the same range as ints, just shoved completely into the positive half of the number line. When might you use a uint in Flash? Well, any time you want to shave bits off your number … but only for integers, and specifically only for positive integers.
A “gotcha”
A friend of mine, Rothrock, recently pointed out an interesting quality of uints that he noted on the Adobe support forums. Here’s a quick illustration via code:
var n:uint = 0;
trace(n);
What would you expect to see in the Output panel? Zero? You betcha. The variable n, typed as a uint, is set to 0, and 0 it is. Now let’s subtract 1:
n -= 1;
trace(n);
What will the Output panel show this time? Negative one? No way! uints can’t be negative. What you get is 4294967295, which means the imaginary pointer has jumped from the left edge of the uint number line to the right edge.
Why is this good to know? Well, if you happen to be using a uint in a for loop, and you happen to be counting down rather than up …
for (var i:uint = 0; i > -10; i--) {
// code here
}
… that i > -10 expression will never evaluate to false. i will always be greater than -10, so this for loop will go on looping forever.
The moral of the story? Don’t use uints to count backwards — unless you want to be counting for a very long time. ;)
Category tags: Flash
Posted by David Stiller
Add comment |
View comments (0) |
Permalink
|
Trackbacks (0)
|
Digg This
New Web 2.0 tool needed
Posted Thursday, June 07, 2007 10:44:09 AM by Zoe Gillenwater

You'd think that the perfect Web 2.0 recipe organizer would already exist online — after all, they have a tool for everything else! — but I have yet to find it.
Food blogs are really big now, and though I don't food blog myself, I have gotten hooked on reading them. In fact, I pretty much get all my recipes these days from food blogs and never look in my cookbooks. Why would I? They're not searchable, they don't have beautiful full color photos of every recipe, recipes aren't backed up by real people's comments of how they liked it or adapted it, etc. Online recipes really are the way to go.
I began bookmarking each individual recipe in del.icio.us, as do many other food bloggers and their readers, because you can tag each recipe bookmark with all of its main ingredients or other characteristics (like "low fat," "easy," "Indian") and then use those tags to search for recipes that contain the mixture of characteristics you are looking for. So, I could find all recipes tagged with the combination of "dinner," "low carb," "chicken," and "garlic" by using the plus signs by each tag listed as a "related tag" to further filter down. I could also just do a search within my bookmarks if I was looking for something very specific.
This system worked exactly as I wanted, with these exceptions:
- no photos of recipes from the pages
- no rating ability
- no ability to add items to my list that aren't online
The rating ability wasn't a big deal to me, and I could also do without the ability to add my own recipes (I was fine with maintaining both an online and offline paper recipe collection) but I really, really wanted the photos. I searched high and low for an online tool that had the abilities of del.icio.us but with the added ability to choose a picture from the page you're bookmarking to associate with the bookmark. I found a number of online recipe organizers that came nowhere close to what I needed, and a number of social bookmarking tools that let you have a thumbnail of the whole page associated with the bookmark but not an individual picture that you can choose from within the page itself.
Finally I found Kaboodle, which is billed mainly as a wish list and shopping site. I thought it did everything I wanted except the rating, so I was thrilled. But I was wrong — it actually lacks the essential search tool of combining multiple tags to search that is the strength of my current system in del.icio.us. You can view all your items with a specific tag, but then can only filter those by keywords within their titles, instead of by further tags.
So, I'm still without the perfect online recipe manager, and undecided whether to stick with del.icio.us or Kaboodle. If anyone has a suggestion for what to use, I'd love to hear it! In the meantime, I have no problem with someone stealing my idea for the perfect online recipe manager and becoming the next big Web 2.0 success story — just please let me be the first person in your beta.
Category tags: Blogs and Blogging, On the Personal Side, This and That, Usability, Using the Web
Posted by Zoe Gillenwater
Add comment |
View comments (1) |
Permalink
|
Trackbacks (0)
|
Digg This
Using the Debugger Panel to Sleuth
Posted Sunday, June 03, 2007 11:14:47 PM by David Stiller

Not long ago, I answered a forum question at Community MX where the solution arrived entirely because I used the Debugger panel to find what I needed. The developer’s issue took all of ten seconds to pinpoint, but it solved a real need. It couldn’t have been easier, either, so I’ll share what I did, hoping it helps someone else just as quickly.
The need was this: the developer was using the MediaPlayback Component (a precursor to the FLVPlayback Component) and wanted to disable a tiny, built-in triangle button that toggles a zooming/fullscreen-view of the FLV. The Component Inspector panel shows no parameter to configure this button, and it doesn’t appear anywhere in the Components Language Reference. What to do? Debugger panel to the rescue.

After having dragged an instance of MediaPlayback to the Stage and pointing it at an FLV, I used Debug > Debug Movie to run the SWF in the Debugger panel (the menu location in Flash 8 was Control > Debug Movie). When a SWF opens in cahoots with the Debugger panel, you have to click the big green arrow button to get everything started — don’t worry, you can’t miss it — and then all sorts of behind-the-scenes things come to light.
In this case, I set my gaze on the left side, which showed me the dozen or so nested movie clips that comprise an instance of MediaPlayback. One, in particular, caught my attention (yup, the highlighted one). I clicked the triangle arrow and saw that path reference change from what it was to _level0.instance1._chrome._toggleNE._minimize. Bingo!

I knew from experience that “instance1” is the first in a pattern of automatic instance names Flash will give objects without instance names. I knew I could change that to any old arbitrary instance name — and that would have been visible in the Debugger panel too, by the way — so I suggested to the developer that he type the following into the Actions panel:
instanceName._chrome._toggleNE._maximize.enabled = false;
… where instanceName should be replaced by the actual instance name of the MediaPlayback Component. And that did it. :D So what’s that enabled part? That’s a property of the MovieClip class, and it disables event handling for that clip. In fact, if desired, two lines would both disable and hade the button:
instanceName._chrome._toggleNE._maximize.enabled = false;
instanceName._chrome._toggleNE._maximize._visible = false;
Now … truth be hold, not many folks use the Media Components anymore. This isn’t a blog entry that will help countless readers with that particular Component, but that isn’t my aim. My aim is to show that the Debugger panel can be used to discover the inner workings of Macromedia/Adobe objects in addition to troubleshooting your own work. Hope that comes in handy for you! :)
Category tags: Flash
Posted by David Stiller
Add comment |
View comments (1) |
Permalink
|
Trackbacks (0)
|
Digg This
10 posts
in June - 2007


Blog RSS feed












