Here is a quick tip for those using animations with the JQuery library.
I just tracked down a weird issue with a JQuery Animation. The functionality of the page was very similar to an Accordion. Click an image, the content collapses using the slideDown() function. Click again, the content expands using slideUp(). The structure of the content was a table wrapped inside a container DIV:
<td>Content la la la la la </td>
Not rocket science, right? This effect rendered flawlessly in Firefox shrinking and hiding the content incrementally. In I.E. 6, even though the containing div shrank incrementally, the content was visible up until the end of the animation, ruining the effect.
Through Divide and Conquer, I discovered the table had a css rule "position:relative". Removing this rule made the animation behave without bleeding through.
Model-Glue is a very powerful and robust ColdFusion Framework. When solving application problems with Model-Glue there are recurring solutions that work well for particular problems. Up until now, one would have to troll the various blogs hoping the right keywords unlocked google to reveal a proper solution. While effective, this method is also time consuming.
Todd Sharp has developed and released the Model-Glue cookbook. Following the common cookbook format, this timely and relevant application will hold collective wisdom on how to use the Model-Glue framework for fun and profit.
If you want to learn more about Model-Glue, please check the Model-Glue cookbook for interesting tips and solutions for everyday programming. It even has an RSS feed for you!
If you are a Model-Glue expert, or you have found some interesting solutions with Model-Glue, share them with the simple Entry Form. Adding an entry to the Model-Glue Cookbook is easier than blogging and you get full credit.
I admire Todd Sharp. He is an effective community leader, generous with his time and efforts. I mean, look at what he has done in just the last 3 months:
- Snip-a-thon contest
- PPTUtils Project
- Model-Glue Cookbook
Todd gets my vote for Most Deserving of Adobe Community Expert Status
Have you heard about Uni-Form? Go look at it now. Isn't that a very nice, functional and compelling HTML form? It is also xHTML valid and accessible! Uni-Form is quite possibly the nicest looking form markup out there.
Matt Quackenbush, also Kalendar Team Member, developed and released a set of custom tags that produce the Uni-Form structure. Build awesome, functional forms fast!
Thanks for your work Matt! My forms, and my fingers Thank You.
Duplicating code is Bad! When designing software, take great pains to avoid duplication of code. After all, if an application has a lot of duplicated logic, or cut/pasted processes, it is very easy for parts of the system to get out of wack. A small tweak here, a short change there and next thing you know there are bugs and inconsistencies galore.
As software engineers, we are trained to spot and avoid this duplication. There are whole mantras dedicated toward this end (DRY Don't Repeat Yourself). There are whole books dedicated towards refactoring out commonalities for the goal of improving software quality. This is a very important topic and duplication is one of the easier Code Smells to uncover.
Sometimes the same warning flags will pop into mind when working with an XML driven framework. "Should I really duplicate this line of XML repeatedly in my application?" and "Am I designing my application effectively?" are thoughts the reasonable programmer has. After all, if duplicating code is such a poor idea, why is duplicating XML configuration any different?
The reason it is different is what the underlying XML represents. It represents Code! Code that has been written and tested and debugged Code that performs vital purpose in your application. We aren't duplicating this code, we are duplicating a reference to the code. A type of shorthand, if you will.
If, for example, you have functionality for checking for an authorized user, and such code is wrapped into an XML snippet like this:
<message name="verifyUserLogin" />
You would be perfectly fine replicating this line of XML wherever you needed User Login Verification. The line of XML is very simple, with a clean syntax and very easy to implement without error. When the rules defining User Login Verification change, simply update the single section of code referred to by the XML snippet.
Properly designed XML configurations represent complex processes in a syntactically simple manner. So feel good about duplicating your lines of XML. Happy Coding!
As I went to grab my lunch, Chinese Takeout, I couldn't help but notice this awesome customized Honda sitting in the parking lot. Anyone want to bet this car belongs to a single man?
I am a bit fan of Do It Yourself, but this is a multi-stage mistake. During any part of the process, from wood selection, to bolting it on to painting it a fetching silver after bolting it on, this guy could have changed his mind.
Here's to you Silver Wooden Honda Wing guy for not caring what the world thinks!
Where is the Debugger or Profiler running? Why, localhost, I presume.....
Recently I installed Flex Builder 3 on a new machine and experienced an error when running/debugging Flex applications. What would happen is:
- I run a Flex application
- A popup loads asking "Where is the debugger or profiler running?"
- I select localhost
- The popup briefly disappears
- The popup returns asking "Where is the debugger or profiler running?"
Another message that showed up is "A connection to the debugger or profiler could not be established by Adobe Flash Player 9"
Clicking the cancel button removed the popup and continued running the Flex application. The debugger was not working properly.
After some searching and some trial and error, I found the Flex Debugger runs on port 3434. Unblocking this port in the firewall allowed the debugger to connect on localhost.
Surprisingly, this wasn't documented very well. I hope this helps someone else. Programming in Flex without the debugger makes Homer something something...
The popup has come back! Oddly enough, the debugger runs now. I am very glad for that. However running any compiled Flex/AIR code brings up this silly "Where is the debugger?" popup. If anyone has an idea how to supress this, please let me know.
The Lenovo x61s is one of the best Ultra Portable laptops on the market. I have confidence in Lenovo quality and would purchase this laptop without hesitation, were it not $11,000.
I propose Lenovo mail me a well equipped x60s and I'll perform a fair review and post it here. If I were to spend such a significant amount of money on a laptop, I would expect it to preserve my data after a Car Crash. I would also expect it to function in the weightless environment found during an Alien Abduction. (I've got to get the pics on Flickr or no one would believe me.)
Thankfully, Lenovo posted such videos of laptop tests in car crashes (very cool when the laptop hits the wall and flexes), water tanks (a bit hokey) and weightless environments (plain awesome). You can view the videos on Lenovo Vision.
Here are some other reasons why I like Lenovo
- Offers XP in addition to Vista
- Linux Friendly
- Has large office in RTP, North Carolina
- Legendary Reliability
- Laptop keyboard designed to withstand accidental liquid spillage up to 60cc
- Has super-sweet Ultra Portable line. (x60 and x60s)
I need to purchase an Ultra Portable this year. I hoped Apple would release their new hardware in time. It looks like they won't. Stay tuned for any sweet deals on Lenovo!
You can find me on the ColdFusionCommunity.org site at http://www.coldfusioncommunity.org/profile/DanWilson
You aren't on ColdFusionCommunity.org yet? Well, sign up quick, before all the free memberships are gone.
Yes, I'll be your friend....
Recently I removed Windows Vista and installed Windows XP on the Toshiba A215-S7428. The Windows XP installation is complete and functioning properly. Due to the driver incompatibilities, this process was much more annoying than I thought it ever could be.
To get this to work, you have to pretty much forget the Toshiba site. It is mostly unhelpful and will send you over the edge. Instead, one must dig down deep into the operating system. One must manually edit driver inf files. One must deal with trying to find a driver for "Unknown System Device".
Fortunately, some unnamed kind soul has done all the hard work for you. I have been asked by unnamed kind soul to say the following: