I have an annoying personality trait. OK, I am certain that I have more than one, but I am writing today about obsession; I tend to be tenacious when I can't get something to work the way I believe it is supposed to work. It has often been observed that when presented with a software problem that blocks progress, I can become obsessed with resolving it. A few years ago, my mother came to Atlanta to visit me when one such software problem was plaguing me. She could tell how unfocused — on everything but the problem — I had become. After a few hours of "last ditch efforts," I walked away from the problem only to think of the proper solution a few hours later. Luckily, that solution worked and I was able to spend quality time with my mother after a couple of late hours of coding.
Last week, another error presented itself. This time, the problem was a weird error I was getting from Flex while receiving data from ColdFusion. You see, I'd decided to take ColdFusion 9's ORM implementation for a spin and applying what I'd learned to a Flex project I've been working on. The logic for learning ColdFusion's ORM implementation was this: first ColdFusion ORM, then Java ORM/Hibernate, then .NET's Entity Framework which is used a lot at Measured Progress, my new employer. While I don't plan on becoming a full-time ColdFusion developer — or Java or .NET developer, for that matter —it is always good to acquire new skills to use when a good server-side developer is unavailable.
When learning new technologies, there are always risks when things get complicated. I typically always believe I've done something wrong. I obsess over my code to find errors. I double check documentation. I ask my peers. I isolate the problem. I have my code reviewed. I consult with people who have more experience than myself for advice. Typically, the process doesn't move past the "I ask my peers" stage but this time it was different.
I was having some strange symptoms using Flex Remoting with ColdFusion. You see, I uninstalled and reinstalled ColdFusion 9 on all of my systems recently. Since then, none of my past Flex projects were working correctly. Errors were appearing where they were not before. Value objects were not being serialized. It wasn't a big deal at the time; not only was I unemployed, but the contract projects I was working on were not using ColdFusion. Recently, when I started working on a ColdFusion/Flex/AIR project, I had focused my efforts on the ColdFusion side of things before beginning work on the Flex code. With the server-code working well, I proceeded to move on to the "easy" part of the code for me: Flex. Unfortunately, that is when I began seeing an error every time I received typed value objects from ColdFusion.
ReferenceError: Error #1065: Variable * is not defined.
That's right: Variable *. I have no idea what that means. No one else I spoke to knew what it meant. I'd bet that only one or two software engineers at Adobe, those who worked on the AMF serializer, would have any idea what that error meant. Needless to say, it was perplexing. After pursuing the matter for hours, whining on Twitter, consulting the CF-ORM-DEV Google Group, and spending time screen sharing on Skype with Eric Fickes I finally decided to consult with the smartest developer that I know: Sim Bateman. He steered me toward the solution. After looking at the results in Charles, we saw that the correct value object was being passed from ColdFusion, but there were some capitalization issues with the class names and properties of these classes. Then, the cause of the problem became clear. Inside the services-config.xml file located inside ColdFusion's wwwroot/WEB-INF/flex folder is a setting that, by default looks like:
Ah, the wonders of the ColdFusion. I am pretty sure that I've seen this setting before, but to the life of me I don't believe I've ever needed to change it. With this setting, names Coldfusion Components (CFCs) classes will always be lower-case as will each of the property names inside those classes. So, if I am expecting a value object named User to arrive from ColdFusion, I would not get one with force-cfc-lowercase set to true. You will get an ObjectProxy object.
For typical Actionscript uses, we needed that setting to be:
With this change to the services-config.xml file, and subsequent restart of ColdFusion, we can have class names like User and properties like firstName in both our CFCs and Actionscript value objects. While I am fairly certain that most ColdFusion developers out there already knew this, but I wanted to make sure that if the error ever came up for someone else, a Google search might bring this blog post up for them. After making this change, my ORM CFC files came across the wire properly and the error went away. And things are making a lot more sense.
Now I have to make up for the hours of time that were wasted because I forgot about a setting inside a ColdFusion config file.Comments (0) | Print | Send | del.icio.us | Digg It! | Linking Blogs
Announcement: New Job!
As of February 1, 2011, I am a full-time employee of Measured Progress, "an industry leader in the development of customized, K-12 student assessments for schools, districts, and states." Measured Progress is a Non-Profit Organization, so their culture is a little bit different from what I've grown accustomed, which will probably be a really good thing. The contract work that I've been doing for this organization recently has exposed me to some extremely smart people, so I know my work is cut out for me. It's time for me to step up my game, something I've been looking to do since being released by my former employer back in August 2010.
My title at Measured Progress is Enterprise Architect, Rich Internet Applications (RIA) and I will have my hands full with all things RIA at the company. I plan to assist the company in transitioning to more effective user interfaces, user experiences and expand their ability to deliver these improvements to more platforms and devices than they currently service. I will be spending the better part of the first half of 2011 completing the project I am currently assigned and becoming more oriented to the Measured Progress organization and culture.
Announcement: Relocation In-progress
As part of my new position with my new employer, I will be moving to the Boston area to be part of the Nimble Innovation Lab at Measured Progress in Newton, MA. I am currently looking for a home to lease for my move in the Spring. Thank God they agreed to a Spring-time move, as they have been getting pounded by snow this Winter just like the rest of the Northeast. My move to the Boston area is a big deal; I've lived in Atlanta for the past 22 years, and you know how dicey change can be for someone as old as me. I am looking forward to these big changes and will be focusing on taking full advantage of the opportunities set in front of me this year.
Announcement: RIA Radio Lives On!
With InsideRIA closed, you may be wondering "RIA Radio WTF?!?" Well, we are quietly trying to find a new home for hosting our podcasts. More news soon, but no worries.Comments (4) | Print | Send | del.icio.us | Digg It! | Linking Blogs
Let's face it: you won't see me in a lot of sessions at MAX. Where you'll find me is on the show floor in the Community Lounge recording episodes of the RIA Radio podcast (please drop by and say hello). But if I were able to attend sessions like a normal MAX attendee, this is what I would think I would chose. I should reveal here that I am writing this up for selfish reasons. I really want to have this list so that I can watch the videos of these sessions from the comfort of my home. Seeing how I can't attend many and even if I did I would need to choose only one of many sessions in a time slot, making this list now will help me remember to watch Adobe TV in the future.
Every year I try to remind everyone that if you attend MAX and only go to sessions, you're probably only getting one tenth of the value of the conference. I think adding to the professional connections in your life can really have a big impact on your career. Try this: make a point of meeting at least two people every day. Lunch time is a great time to do that. Sit at a table where you don't know a single person and introduce yourself around. Make it casual. Ask people what they think of the conference so far and what sessions they were looking forward to.
Speakers: if this list doesn't mention your session or doesn't mention you by name, sorry. Don't take it personally. Choosing sessions made difficult by the many talented speakers every time slot. Consider this an opportunity to pitch your session to the masses.
And remember that these picks are my personal picks based on what I want to see. Feel free to pick your own set of sessions using the MAX Session Scheduler.
Take a look at the MAX Session Scheduler and read along with me:
9:30AM: The general sessions at MAX tend to be really good (unless they allow the CEO of a recently purchased company drone on and on) so don't miss any of them. The MAX Scheduler says that the title of "Welcome to the Revolution." I hope to see a lot of really cool and exciting things in this session, the least of which will be new devices like the Samsung Tab device.
2:00PM: After lunch, the choices that spark my interests are: "Deep Dive into Flash Player Rendering," "HP Innovation: Reinventing How Adobe Professionals Work" and "HTML5: Half-baked, Baked, or Ready for the Table?" Stephanie Sullivan's HTML5 session edges the others out because she's always a good presenter (No pressure, Steph!), but I am interested in what Lee Thomason has to say about the Flash Player.
3:30PM: I am excited for the "Flash Platform for TV: A New Ecosystem" session which I am sure will be hot if discussed in the morning's General Session. Google TV sounds like an exciting area of growth in which people are already creating companies to take advantage of the opportunities this platform will provide. If that session is full (and, trust me, it probably will be) the next session on the list (and the one I would probably attend anyway) is Terry Ryan's "Multiple Screens, One Server." I've been using Flex with ColdFusion a lot these days, so gaining more insight on how I can leverage what I know to be used with other devices will be extremely helpful.
5:00PM: I think the winning session of this time slot has to be Chris Griffith's "Creating Compelling Mobile User Experiences: What You Need to Know." Chris is a smart guy who is ready to hit you with the knowledge. Also interesting is "How to Develop AIR for TV Applications." (Are you seeing a theme here?)
Meet the Teams: I always find the Meet the Teams sessions a bit maddening. All I can do is ask you: Don't be that guy who complains to the team for 30 minutes about a bug and doesn't give anyone else a chance to ask any other questions. It might be better to talk with them afterwards. Making a personal connection might assist in creating change better than making awkward moments. At least that has been my experience.
8:30AM: Tuesday starts with regular sessions, and what a tough slot that is. I expect to hear snoring in some of these sessions (but at least they're attending. Wednesday morning, many will be snoring in their hotel rooms instead of in sessions). Renaun Erickson's "How to Build Great Mobile Games using AIR for Android" is my top pick but only because I've seen James Polanco and Aaron Pedersen's "Flex Component Development" session before. If you are a Flex developer and want to get the low-down on components, these guys will fill your head with goodness.
10:00AM: Tuesday's General Session is titled "User Experience: the Next Generation," which I think may be Star Trek-themed like the Sneak Peeks session later in the day, should be good.
1:30PM: "Streamlining Development Processes with Powerful Tools from the Flex Ecosystem" has caught my eye, especially with all the presenters: Jerry Dietrich, Heidi Williams, Mark Piller, David Boswell, & Adam Christian.
3:00PM: While "Building Language Learning Tools with Flash Catalyst, Flash Builder, and Flash Media Server" looks very interesting, the "Magazine Design in the Brave New World of Digital Devices" session wins my attention. I have several clients interested in this technology and need to get a firsthand look at it while learning from the experiences that folks at Adobe, Wired Magazine, the New York Time, Martha Stewart and Gartner have had using this technology.
5:00PM: It's Renaun Erickson to the rescue again this time with David Knight and "Developing Well-Behaved Android Applications using Adobe AIR." But if mobile isn't your thing, take a look at the RJ Owen and Juan Sanchez session "Screens of Possibility: Pushing Multiscreen Experiences with Spark and Flex."
6:00PM: If you miss Sneak Peeks, you're an idiot. Period. What were you thinking? Ugh.
8:00AM: Don't tell me you're burned out or hung over! First sessions on the final day of a conference are just as good as all the others! I'd pick "Deep Dive into Mobile Development with the Flex SDK" with Glenn Ruehle and Chiedo Acholonu. The "Deconstructing the HTML5 Mobile Development Workflow" session is also attractive.
9:30AM: While I am interested in "FlexPMD: Your Canary in a Coal Mine" I'll have to say this "Designer-Developer Workflow Panel" session is compelling. HEY! I'm in that session! DOH!
11:00AM: Once the fire department gets all the tear gas out of the convention center after our panel, "Creating Testable Flex Applications" with Digital Primates Michael Labriola and Jeff Tapper would be my second choice only because I've seen them do this presentation. "Rapidly Building Flex RIAs with Spring BlazeDS Integration and Spring Roo" with Jeremy Grelle gets the nod here.
1:30PM: If you missed Lee Brimelow's "Flash, Flex, HTML5: Ouch, My Head Hurts!" session earlier in the week, here's your last chance to see it. Be warned: This session may be clothing optional. Second choice: "Performance Tips and Tricks for Flex and Flash Development"
3:30PM: "RIA Design and Development Workflow Examined" is the best choice here because the lovely and talented Michelle Yaiser will be presenting with that troll, Leif Wells. Sadly, it looks like more people have signed up for "Flex/ActionScript 3.0 Architecture and Dependency Injection Frameworks Overview." Drat.
5:00PM: The "Creating Assets for Mobile Component Skins with Flash Catalyst "Panini" session looks interesting because I seldom get to see Serge Jespers present. Everyone is excited about the "New 3D Features for Flash" session that it is already full. Also interesting: "Designing PDF Portfolio Layouts with Flash Builder 4"
I hope this list compels you to visit the MAX scheduler and fill out your schedule. And please, no wagering.Comments (1) | Print | Send | del.icio.us | Digg It! | Linking Blogs
FYI, there is an upcoming Kelby Training Seminar on Location Lighting Techniques in Atlanta. Click the image for more info:
Comments (0) | Print | Send | del.icio.us | Digg It! | Linking Blogs
Last night's Adobe User Group of Atlanta hosted photographer Jim DiVitale presenting on using Photoshop Creative Suite 5. We've been lucky to have Jim present at past meetings. He lives in Atlanta but travels a great deal. I could imagine that some folks who travel the world presenting might want to be left alone when they get home. Jim has been accessible to us and we're always glad he presents!
I wanted to say a few words about Jim here because I don't think his experience, know-how and presentation skills are recognized nearly enough. That's not to say he hurting for business; Jim is doing well. I, personally, feel that his name doesn't come up nearly enough in my social circles, so I wanted to put together an "elevator pitch" to those of you listening who may not know Jim DiVitale:
Jim Divitale is an Experienced Photographer. I'll be the first to admit that I know jack-diddly about real photography. I've held many expensive cameras in my hand and never really thought about the science and artistry that goes into creating a good shot. Jim has been handling a camera for more than 30 years. That means he knew what he was doing well before all this digital madness came along. His client list is extensive as are the types of work that he's done in the past. But here's the bigger deal. Jim has taken what he's learned about photography into the digital age. During his presentation last night he walked the attendees through all the things they need to consider when shooting photos for a customer --- color considerations, delivery to a computer screen, light metering, delivery to a printer. These are all things that I never think about and I have to wonder if most photographers think about it like Jim does.
Jim DiVitale has Know-How. Jim DiVitale goes beyond the camera, using Photoshop CS5 to perfect shots, improve shots, and even create images that may not be possible without his own knowledge. The shots he takes are pretty great, but when he's put into situations where he's not allowed to bring in lighting equipment or where he has no control of the environment, Jim knows what to do at the location so that his end product will be successful. It doesn't seem like lemonaide from lemons, more like impossibly great shots from chaos. Certainly, being able to experiment with camera and lighting on location along with his solid Photoshop skill, Jim has become a master.
Jim DiVitale is a Great Presenter. Jim DiVitale is popular with members of the Adobe User Group of Atlanta for many reasons, but the main reason is that people learn from him. When Jim presents, people always take notes. Whether it's how to set up lighting at a location, how to set up a computer for viewing or printing images or what the correct key combos are inside Photoshop, Jim gives his audience a lot of valuable information. This is information that can save you minutes or hours of work. It could save your whole shoot.
I look forward to seeing Jim at future user group meetings.
Comments (0) | Print | Send | del.icio.us | Digg It! | Linking Blogs
After a long delay, I am pleased that Flex Authority Issue 3 has shipped to subscribers. While this was not the way anyone planned things to happen, my focus is now on getting Flex Authority back on track.
I am excited to announce the schedule for the upcoming issues of Flex Authority. Below are our themes and publishing dates for our next two issues as well as a sneak peek at what our sixth issue will be about. Feel free to offer to write on a suggested topic, suggest other theme-related topics or simply suggest a topic that you would like to write about. We typically advise our authors to write articles from an advanced point of view so that our all of our readers may get something from every issue. Typical article length is between 2000 and 3000 words.
Flex Authority Issue 4
Theme: Future Flex
Description: This issue covers the next version of the Flex SDK and all the new features that developers have to look forward to in 2010. Along side of the Flex SDK is the next version of the IDE now named Flash Builder. With the Flash Builder Beta 2 publicly released at Adobe MAX 2009, everyone has access to the IDE but do they know everything that they can do with it?
PLEASE NOTE: While we have quite a few articles already in our editorial, we are still looking for some articles about skinning, as well as any number of advanced topics.
Articles Due: November 16, 2009
Publish Date: December 20, 2009
Flex Authority Issue 5
Theme: UX (basically user experience design)
Description: This issue covers user experience design and all the related areas. Think of this issue as a primer for developers looking to create better applications through the application of user experience design.
Flex UX 101
10 Things to Avoid in your Next Flex Application
Why Are Users Not Using Our App?
Success Story: How UX Saved the Day
Using Flash Catalyst Effectively with Flex Developers
Smoothing Out the Designer and Developer Workflow
Topic Submissions Due: January 11, 2010
Articles Due: February 1, 2010
Publish Date: March 15, 2010
Flex Authority Issue 6
Theme: Flash Player 10 and Flash Player 10.1
Description: In this issue we dive into all the new features of Flash Player 10 and Flash Player 10.1. Consider this a primer for all the new features in the Flash Player for Flex developers who haven't used them yet.
Audio and Sound Features of Flash Player 10 (Microphone Access)
Flex and P2P (Peer Assisted Networking)
Global Error Handling
HTTP Streaming of Video
Topic Submissions Due: March 8, 2010
Articles Due: April 5, 2010
Publish Date: June 15, 2010
Please assist Flex Authority and myself in providing our community with great content. I can be contacted at leif[dot]wells[at]gmail[dot]com.
Comments (2) | Print | Send | del.icio.us | Digg It! | Linking Blogs
I just wanted to point folks to the Summer of Flash Podcast page on my blog. I thought it might be good to have a place on my site where the podcast that features Garth Braithwaite, Stacy Mulcahy, Zach Stepek, and myself droning on and on about the Flash Platform. The "info" links are to the InsideRIA site pages that Garth put together for us, but I wanted to put all the information in one place so that I can refer people to it.
I totally enjoy recording this podcast. It is so much fun and honestly it's almost therapeutic for me. I don't work in a work site environment where there are a lot of Flash and Flex developers. In fact, I am the only one in the office who does that type of work, so getting to "hang out" online with the Summer of Flash crew is pretty healthy.
I want to thank the people at O'Reilly who have been so supportive. This was their idea and I feel lucky to have been asked to come along.
Oh, boy. Did I just say that hanging out with Stacy was healthy? What was I thinking?Comments (1) | Print | Send | del.icio.us | Digg It! | Linking Blogs
I am pleased to announce that the first episode of O'Reilly's InsideRIA Summer of Flash podcast has been released.
In this episode, Garth, Stacy, Zach and I discuss the recently released Flash Catalyst Public Beta and what we like and dislike about the product.
We're continuing to record episodes and have lined up a few people from the Flash Platform to waterboard... er, grill for infor... er, interview about all things Flash.
If you have any thoughts, ideas, questions or requests, feel free to leave them in the comments for my entry here or at the entry on the InsideRIA site.
Comments (0) | Print | Send | del.icio.us | Digg It! | Linking Blogs
I'd like to officially announce my new role in the Flex community; I am now the Editor-in-Chief of Flex Authority magazine. Flex Authority was started last year by House of Fusion and currently is in production for Issue 3.
Back in February 2008, I was helping my friends Tom and John with 360|Flex Atlanta by allowing them to send packages to the Roundbox Global office so that they wouldn't have to pay the insane storage fees at the conference site, which happened to be a couple of miles from our office. Needless to say, the pile of boxes got fairly impressive fairly quickly. Adobe sent posters and t-shirts, there were boxes of "The Cluetrain Manifesto" , and a ton of other stuff.
Then a call came in from Judith Dinowitz requesting assistance transporting some printed materials, fliers for the attendee bag they were having printed in Atlanta to avoid some difficult shipping costs. I believe that is the first time I had heard about Flex Authority. Judith confirmed that it was in the works and that they were going to launch the magazine in the middle of 2008. My reaction was, as with a lot of things that promote the community I work in every day, "What can I do to help?"
And help I did. I was Technical Editor for several articles in the first issue, authored a "10 Questions with..." column with Adam and Dave from the Merapi project , and even took the time to write a couple of filler pieces at the eleventh hour. I was excited about Flex Authority and hopeful for its future.
Flash forward to January 2009. Judith calls me to discuss a change in the magazine management; the position of Editor-in-Chief was open. She said that my name had risen to the top of the list of candidates. She presented me with an opportunity, one that I was sure I'd regret letting pass.
The Editor-in-Chief position at a magazine the size of Flex Authority isn't a high paying gig. In fact, I am not getting paid at all. The position requires a lot of reading and re-reading of articles, balancing grammatical and technical corrections while considering the author's voice, herding cat-like authors, technical editors and copy editors who are balancing full-time jobs (and lives) with a magazine schedule; it's not an easy job. Sure, I'll avoid the stereotypical publishing industry traps like hard drinking, chain smoking and womanizing, but those activities actually sound like rewards compared to these responsibilities.
So, why did I agree to become Editor-in-Chief of Flex Authority?Comments (12) | Print | Send | del.icio.us | Digg It! | Linking Blogs
Adobe Community Events
for March 2009
Monday, March 2, 2009, 7PM
Atlanta InDesign User Group
InDesign and Flash: The Digital Transition
Paul Omeda, Chris Stalcup
Wednesday, March 4, 2009, 6PM
Atlanta ColdFusion User Group
Thursday, March 12, 7PM
Atlanta Adobe XD User Group
Wednesday, March 18, 6PM
Atlanta Flash and Flex User Group
Tuesday, March 24, 7PM
Adobe Flash Platform User Group
Simplified Logic's Andrew Westberg
Digital Rights Management and the Flash Platform
Thursday, March 26, 7PM
Adobe User Group of Atlanta
Illustrator CS4 with Adobe's Robert McDaniels
Monday, March 9, 7PM
Atlanta Flex & Actionscript Coders
Monday, March 16, 7PM
Wednesday, March 18, 7PM
AIGA - Atlanta
Wednesday, March 25, 6:30PM
Thursday, March 26, 7PM
Atlanta Web Design Group
Comments (0) | Print | Send | del.icio.us | Digg It! | Linking Blogs