Photoshop Awesome Tip

Recently I discovered a tip while watching a Photoshop Killer Tips
video podcast (http://www.photoshopkillertips.com/), that I
wanted to share with everyone.

If you are using a shape selection tool (oval/box/etc) and begin to
draw the shape…. if you press and hold the spacebar you can move
the shape you have drawn. And then if you let up on the spacebar and
continue to drag your mouse it will enlarge/shrink the shape as
necessary.

This little tip has saved me more than a few minutes recently so I
thought I would pass it along. I wasn’t aware you could move the
shape once I began to draw it…. so I would spend time re-drawing
the shape until I got it just right. After watching Matt move a
shape and continue to grow the shape after moving it… I did a
little digging in the online help and was able to determine how it
was done.

The Ajax Experience

Well, after posting about one of the many great things I learned at
The Ajax Experience (in San Francisco), I decided I needed to spend a
few minutes to attempt at a summary of the event.

I attended with a colleague, and we both felt that the show was very
well done and extremely insightful, beneficial for both of us. The
keynotes were well done and informative, and provided by: Edwin Aoki
of AOL, Brendan Eich of Mozilla, Chris Wilson of Microsoft, Kevin
Lynch of Adobe. AOL also provided a cocktail reception on Wednesday
evening including drinks and a fajita bar.

This show is a great show for the developer attempting to get more
into the Ajax movement as well as the seasoned developer wishing to
stay up with current trends, or seeking more details. We were able to
attend an overview of the frameworks or specialized sessions for each
framework (including Prototype, Script.aculo.us, Dojo, jMaki, jQuery,
Ext, qooxdoo, etc). These sessions allowed us to understand better
their focus as well as what they did well. It provided concrete
examples in the slides/demos of how this library works and how
typical code might look.

There were excellent sessions by Douglas Crockford on JSON, Ajax
Security, and Javascript in general. And an overview of Microsoft
Silverlight, Adobe AIR, sIFR technologies, allowed us to learn more
about how to use these offerings.

Finally, the sessions on the user experience and ways to improve it
were very helpful when you consider the size of many Ajax
applications today. User experience is having a much bigger impact on
which products make it and it was great to see topics like
“Anti-Patterns”, or “Ruining the User Experience” to help bring a
focus to this area.

One additional area of focus was performance and tools to help with
that including the recently released Yslow (a plug-in for Firebug)
developed at Yahoo! (http://developer.yahoo.com/yslow/). Another
benefit of shows like this, is to see what tools others are using to
develop/debug/tune these Ajax applications. Some of these gems were
found in the JSView plug-in for Firefox, JSLint for keeping your
javascript clean, Selenium, Aptana (awesome web development IDE based
on Eclipse!).

Prototype Framework for Javascript

After attending The Ajax Experience (many more posting coming on
this event), I was excited to start making use of Prototype to increase
my productivity while coding various Javascript routines and Ajax apps.

If you haven’t seen, or downloaded it yet, you can find Prototype
Framework for Javascript at:
http://www.prototypejs.org/

Probably the biggest time saver for me so far was the $(‘id’)
functionality, that returns a DOM element named id. This is
equivalent to document.getElementById(‘id) …. and has already saved
me tons of time.

However, one item to note…. and it is a simple mistake to make. In
putting together a quick test for this framework, I didn’t consider
that javascript that isn’t in a function can (and usually does) run
before the DOM is loaded. SO I was getting a lot of messages about
the element not having the properties that I was attempting to
modify. After making a “function doInit()” in javascript and
calling it using <body onload=”doInit()”>, then things worked *much*
better.

Again, great library and I believe the $$(‘css3 selector’) will also
save me large amounts of coding.

The great thing about this framework, is that it appears to be
compatible with all the major frameworks, and in some cases is used
inside their framework. So this is a great place to start, if you
are looking at using a javascript framework to enhance your web
applications, or coding style/speed.

CSS Positioning (and when elements space is closed up)

When using relative positioning the space that the element normally needs is NOT closed up as the element is positioned.

However, when using absolute positioning the space that element normally needs IS closed up.

And don’t forget that positioning of an element is based on the “parent” element that was also positioned, otherwise it is the BODY/HTML element.